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

Reply via email to