[PATCH 0 of 5] Grab bag of patches I've been maintaining (v2).

Eric Hopper hopper at omnifarious.org
Sat Mar 15 15:20:49 CDT 2008


These are a grab bag of different changes I've been maintaining for
awhile.  I submit them because it would be nice to stop having to
maintain them myself and some of them would likely be considered
generally useful.

I would really appreciate any feedback people had on these.

Here are some notes on specific patches:

-> Allow hgwebdir collections to follow symlinks.  [1 of 5]

  This patch sets it up so that when you use hgwebdir to serve up all
  the subdirectories that contain repositories it will serve up
  repositories that are pointed to (directly or indirectly) by symlinks
  as well.  It will avoid listing any repository twice even if there are
  cycles in the symlink structures.

  This used to rely on features of stat that only work on POSIX systems.
  I've changed this and now it relies on the existence of
  os.path.samestat and gracefully falls back to not supporting symlinks
  at all if os.path.samestat isn't available.  This is slower, but more
  portable that what I was doing.

-> convert: Allow configuration of an alternate cvsps or alternate cvsps
   command line options.  [2 of 5]

  This is inordinately useful for testing out new versions of cvsps or
  for avoiding using cvsps' cache if you think it may be causing you
  problems.

-> Global option to cause long hashes to be printed instead of short
   ones.  [3 of 5]

  I hate short hashes.  I was very disappointed when even doing
  --verbose stopped causing long hashes to be printed.  --debug is
  really a bit much and so I added a --fullhash option.  But IMHO there
  really should be a --short-hash-length=x option for defining how long
  you want your short hashes to be.  I haven't done this yet, and so
  this patch would add a global option that ideally would be replaced
  later with one that was more general.

-> Change hg-relink to compare revlog heads by way of comparison.  [4 of 5]

  This changes the hg-relink utility program to base whether or not it
  can link files on what versions are in the revlog rather than whether
  or not they have exactly the same contents which allows relinking to
  be much more agressive.  The problem is that revlinks may be broken in
  some cases since revlinks refer to revision numbers not revision
  hashes.

-> Change User-agent field in client to have a lot more info.  [5 of 5]

  I really like this patch.  I think it could be very useful for
  repository maintainers when they're making decisions about things like
  Windows support or moving to a version of Mercurial that doesn't work
  with an older version of Python or other such things.

  Basically it dumps version information for Mercurial and the Python
  being used into the User Agent string in a format similar to how
  browsers do it.

  I've talked about this previously though and Matt said he didn't like
  it.  It does put a lot more information about the client system in the
  user-agent string and I can see how some might object or think this
  was kind of sinister or a privacy problem.  I think the information
  isn't that important and no more than most browsers give out as a
  matter of course.

14 files changed, 214 insertions(+), 97 deletions(-)
contrib/hg-relink               |  203 +++++++++++++++++++++++----------------
hgext/convert/cvs.py            |    9 +
mercurial/cmdutil.py            |    5 
mercurial/commands.py           |    7 -
mercurial/dispatch.py           |    4 
mercurial/hgweb/hgwebdir_mod.py |    2 
mercurial/httprepo.py           |    4 
mercurial/patch.py              |    2 
mercurial/ui.py                 |   26 ++++
mercurial/util.py               |   32 +++++-
mercurial/version.py            |   12 ++
tests/test-debugcomplete.out    |    2 
tests/test-extension.out        |    1 
tests/test-globalopts           |    2 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://selenic.com/pipermail/mercurial-devel/attachments/20080315/5ea421c9/attachment.pgp 


More information about the Mercurial-devel mailing list