Overall it looks good, but I have a few concerns about findunref.py. First, I gave up trying to understand walk_scm_hg(). I don't know the Mercurial API well enough, and I couldn't find any real documentation on the website. I tried poking around in the Mercurial source, but the comments are sufficiently sparse that I figured it would take me the rest of the afternoon to figure it all out. For example, I have no idea if repo.status() (no arguments) gives you what you need. Putting some comments in walk_scm_hg() would help.
Second, I wonder if symbolic links or lofs paths could give you problems. Test case: the user specifies "/home/kupfer/ws/foo", which is really a symbolic link to /net/somehost/export/kupfer/ws/foo. We want this to work on both somehost and on other hosts. Note that localrepo.root is generated using os.path.realpath(). Third, I found the code overall to be a bit sparsely commented. For example, I think it would be helpful to document that ExceptionList.match() takes a glob pattern. Nits: * checkpaths.sh: - line 105: continuation line should only be indented by 4 spaces * exception_list.open: - lines 8, 14: "ususr" -> "usr" * findunref.py: - Should '.hgignore' be in the built-in exception list? - the error exits all exit with status code 2, whereas I think the C version exits with code 1. It's not documented anywhere what it *should* exit with, so hopefully no scripts are depending on a specific value. But I don't think we should use a different value unless we have a good reason. - line 59: why not just line.strip()? >>>>> "stevel" == Stephen Lau <stevel at sun.com> writes: stevel> Other notes: stevel> o nightly.sh:2795, you can see where I pass the findunref output stevel> through sed to get the output to look like the form of the old stevel> findunref output, that is to say, the usr/closed output will stevel> look like: stevel> ../closed/cmd/foo stevel> and the usr/src output will look like: stevel> ./uts/foo stevel> I'm open to changing that. I just made it that way to stevel> maintain uniformity for now. I personally think it makes more stevel> sense to have it be usr/closed/cmd/foo and usr/src/cmd/foo, stevel> but whatever. Your comments on this point would be stevel> appreciated. The unref-*.out files are structured that way so that `cat unref<mumble>.out` will give you a file list that you can use from the same directory (e.g., ls -l `cat ...`). I don't know if anyone takes advantage of that, but I'd rather not throw it away without good reason. cheers, mike