David Soria Parra <dsp@php.net> [Thu, 19 Aug 2010 15:04:21 -0400] rev 11994
bookmarks: Check if the bookmark to delete exists on the remote
Patrick Mezard <pmezard@gmail.com> [Thu, 19 Aug 2010 23:13:20 +0200] rev 11993
Merge with stable
Patrick Mezard <pmezard@gmail.com> [Thu, 19 Aug 2010 22:51:09 +0200] rev 11992
win32: remove useless lstat() fallback in nlinks()
The fallback was introduced by
3b4f05ff3130 at the same time than
nlinks(). Apparently it only handles the case where target path
does not exist. Just raise IOError directly.
Patrick Mezard <pmezard@gmail.com> [Thu, 19 Aug 2010 22:51:09 +0200] rev 11991
win32: correctly break hardlinks on network drives (
issue761)
win32.nlinks() was often returning 1 instead of the correct
hardlinks count when reading from network drives. This made
commit or push to a repository on a network share to fail
breaking the hardlinks in the datastore, possibly causing
integrity errors in repositories linked locally on the remote
side.
Here is what the MSDN says about GetFileInformationByHandle():
Depending on the underlying network features of the operating
system and the type of server connected to, the
GetFileInformationByHandle function may fail, return partial
information, or full information for the given file.
In practice, we never got the correct hardlinks count when
reading from and to many combinations of Window XP, 2003, Vista
and 7, via network drives or RDP shares. It always returned 1
instead. The only setup returning an accurate links count was a
samba on Debian.
To avoid this, Mercurial now breaks the hardlinks unconditionally
when writing to a network drive.
Matt Mackall <mpm@selenic.com> [Thu, 19 Aug 2010 11:51:30 -0500] rev 11990
merge with stable
Steve Losh <steve@stevelosh.com> [Wed, 18 Aug 2010 18:56:44 -0400] rev 11989
aliases: provide more flexible ways to work with shell alias arguments
This patch changes the functionality of shell aliases to add more powerful
options for working with shell alias arguments.
First: the alias name + arguments to a shell alias are set as an HG_ARGS
environment variable, delimited by spaces. This matches the behavior of hooks.
Second: any occurrences of "$@" (without quotes) are replaced with the
arguments, separated by spaces. This happens *before* the alias gets to the shell.
Third: any positive numeric variables ("$1", "$2", etc) are replaced with the
appropriate argument, indexed from 1. "$0" is replaced with the name of the
alias. Any "extra" numeric variables are replaced with an empty string. This
happens *before* the alias gets to the shell.
These changes allow for more flexible shell aliases:
[alias]
echo = !echo $@
count = !hg log -r "$@" --template='.' | wc -c | sed -e 's/ //g'
qqueuemv = !mv "`hg root`/.hg/patches-$1" "`hg root`/.hg/patches-$2"
In action:
$ hg echo foo
foo
$ hg count 'branch(default)'
901
$ hg count 'branch(stable) and keyword(fixes)'
102
$ hg qqueuemv myfeature somefeature
Steve Losh <steve@stevelosh.com> [Wed, 18 Aug 2010 18:18:26 -0400] rev 11988
util: add an interpolate() function to for replacing multiple values
util.interpolate can be used to replace multiple items in a string all at once
(and optionally apply a function to the replacement), without worrying about
recursing:
>>> import util
>>> s = '$foo, $spam'
>>> util.interpolate(r'\$', { 'foo': 'bar', 'spam': 'eggs' }, s)
'bar, eggs'
>>> util.interpolate(r'\$', { 'foo': 'spam', 'spam': 'foo' }, s)
'spam, foo'
>>> util.interpolate(r'\$', { 'foo': 'spam', 'spam': 'foo' }, s, lambda s: s.upper())
'SPAM, FOO'
The patch also changes filemerge.py to use this new function.
Brodie Rao <brodie@bitheap.org> [Wed, 18 Aug 2010 10:53:52 -0400] rev 11987
convert: use encoding.encoding instead of locale.getpreferredencoding()
The latter may not return useful results in certain OS X environments.
Brodie Rao <brodie@bitheap.org> [Wed, 18 Aug 2010 10:53:50 -0400] rev 11986
convert: properly set encoding for gnuarch converter
Matt Mackall <mpm@selenic.com> [Thu, 19 Aug 2010 11:14:09 -0500] rev 11985
log: add logging for commands
Matt Mackall <mpm@selenic.com> [Thu, 19 Aug 2010 11:14:02 -0500] rev 11984
ui: add logging hook
Pradeepkumar Gayam <in3xes@gmail.com> [Wed, 18 Aug 2010 06:05:09 +0530] rev 11983
tests: unify test-merge10
Pradeepkumar Gayam <in3xes@gmail.com> [Wed, 18 Aug 2010 06:02:08 +0530] rev 11982
tests: unify test-merge9
Pradeepkumar Gayam <in3xes@gmail.com> [Wed, 18 Aug 2010 05:55:56 +0530] rev 11981
tests: unify test-merge8
Pradeepkumar Gayam <in3xes@gmail.com> [Wed, 18 Aug 2010 05:54:00 +0530] rev 11980
tests: unify test-merge7
Pradeepkumar Gayam <in3xes@gmail.com> [Wed, 18 Aug 2010 05:21:07 +0530] rev 11979
tests: unify test-merge6
Pradeepkumar Gayam <in3xes@gmail.com> [Wed, 18 Aug 2010 05:15:49 +0530] rev 11978
tests: unify test-merge5
Pradeepkumar Gayam <in3xes@gmail.com> [Wed, 18 Aug 2010 05:12:44 +0530] rev 11977
tests: unify test-merge4
Pradeepkumar Gayam <in3xes@gmail.com> [Wed, 18 Aug 2010 05:09:58 +0530] rev 11976
tests: unify test-merge2
Pradeepkumar Gayam <in3xes@gmail.com> [Wed, 18 Aug 2010 05:05:51 +0530] rev 11975
tests: unify test-merge1
Pradeepkumar Gayam <in3xes@gmail.com> [Wed, 18 Aug 2010 04:37:06 +0530] rev 11974
tests: unify test-excessive-merge
Pradeepkumar Gayam <in3xes@gmail.com> [Wed, 18 Aug 2010 04:30:27 +0530] rev 11973
tests: unify test-double-merge
Pradeepkumar Gayam <in3xes@gmail.com> [Wed, 18 Aug 2010 04:26:20 +0530] rev 11972
tests: unify test-copy-move-merge
Pradeepkumar Gayam <in3xes@gmail.com> [Wed, 18 Aug 2010 04:21:10 +0530] rev 11971
tests: unify test-merge-closedheads
Matt Mackall <mpm@selenic.com> [Thu, 19 Aug 2010 10:25:41 -0500] rev 11970
merge with stable
Jeremy Whitlock <jcscoobyrs@gmail.com> [Wed, 28 Jul 2010 23:05:03 -0600] rev 11969
color: enable branches support
This commit updates the branches command to use ui.label for the branch names
and the changeset. This implementation allows assigning colors to the four
states of a branch: active, closed, current and inactive. While you can
configure color for the four states, only current and closed have default colors
of green and black bold respectively.
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> [Wed, 18 Aug 2010 23:37:26 +0200] rev 11968
mq/qqueue: update bash completion
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> [Wed, 18 Aug 2010 23:37:19 +0200] rev 11967
mq/qqueue: add --purge option to delete a queue and its patch dir
qqueue --delete only deletes the reference to the queue, and leaves
the associated patch directory behind. There is no Mercurial-way of
getting rid of that patch directory afterward.
This patch adds the --purge option to qqueue, that deletes the queue
from the list, and also removes the associated patch dir. If the queue
was non-existant, but the patch dir was, it is removed nonetheless.
This is to avoid manual intervention in the .hg directory.
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> [Wed, 18 Aug 2010 23:34:28 +0200] rev 11966
mq/qqueue: commonalise the queue deletion code
Mads Kiilerich <mads@kiilerich.com> [Wed, 18 Aug 2010 02:43:45 +0200] rev 11965
mq: don't inherit default and default-push paths with --mq (
issue2333)
Configuration from the outer repo is inherited to the patches repo when --mq is
used.
In case the patches repo only has paths.default configured but the outer repo
has paths.default-push then the inherited default-push will win. Very
confusing.
Inheriting the default paths is however wrong in all sane cases, so now we
explicitly remove them.
Martin Geisler <mg@lazybytes.net> [Thu, 19 Aug 2010 16:34:12 +0200] rev 11964
test-subrepo-paths: use printf instead of echo
Different shells have different opinions on how to backslashes must be
escaped for echo, but printf is consistent across zsh, dash, bash,
tcsh, and csh.
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Wed, 18 Aug 2010 19:37:23 +0200] rev 11963
parendelta: fix computation of base rev (fixes
issue2337)
Refactor revlog._addrevision() and put the correct base rev in the
parent-delta case: base(rev) should always be equal to the first full snapshot
that is needed by the delta chain, in both parent-delta and tip-delta case.
Before this fix, the base rev was in most case wrong (and in the case where
p1 == nullid, this triggered the bug from
issue2337). This means that
repositories converted to parent-delta earlier are corrupted and needs to be
reconverted.