[PATCH 0 of 5] Grab bag of patches I've been maintaining (v2).
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
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
-> 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
-> 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
Size: 189 bytes
Desc: not available
Url : http://selenic.com/pipermail/mercurial-devel/attachments/20080315/5ea421c9/attachment.pgp
More information about the Mercurial-devel