Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Sun, 22 Aug 2010 19:27:09 +0200] rev 12021
contrib/compress: correct ordering of copying
Changelog should always be copied last, otherwise readers can see an
inconsistent repo.
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Sun, 22 Aug 2010 19:26:07 +0200] rev 12020
contrib/compress: refactor revlog copying
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Sun, 22 Aug 2010 19:13:30 +0200] rev 12019
contrib/compress: use store API instead of a collector
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Sun, 22 Aug 2010 18:29:30 +0200] rev 12018
contrib/compress: proper lock handling
Lock the src repo before beginning the compression and lock the destination
repo before copying the revlogs.
Proper handling of exceptions.
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Sun, 22 Aug 2010 18:23:32 +0200] rev 12017
contrib/compress: use hg API to compute the destination path
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Sun, 22 Aug 2010 18:21:30 +0200] rev 12016
contrib/compress: use repo's transaction method
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Sun, 22 Aug 2010 18:18:36 +0200] rev 12015
contrib/compress: remove unused variables
Brodie Rao <brodie@bitheap.org> [Sat, 21 Aug 2010 23:24:52 -0400] rev 12014
tests: unify test-hgrc
Patrick Mezard <pmezard@gmail.com> [Sun, 22 Aug 2010 12:04:15 +0200] rev 12013
tests: remove test-log.out, useless after unification
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Sat, 21 Aug 2010 19:31:59 +0200] rev 12012
revlog: fix docstring
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Sat, 21 Aug 2010 19:30:42 +0200] rev 12011
deltaparent(): don't return nullrev for a revision containing a full snapshot
this allows us to simplify manifest.readdelta and revlog.revdiff
Matt Mackall <mpm@selenic.com> [Sat, 21 Aug 2010 10:48:49 -0500] rev 12010
merge with stable
Matt Mackall <mpm@selenic.com> [Sat, 21 Aug 2010 10:44:57 -0500] rev 12009
tests: fix up bisect test output
Matt Mackall <mpm@selenic.com> [Sat, 21 Aug 2010 10:41:29 -0500] rev 12008
merge: move reverse-merge logic out of filemerge (issue2342)
Matt Mackall <mpm@selenic.com> [Fri, 20 Aug 2010 21:28:14 -0500] rev 12007
bisect: add test for unrelated starting revisions
Matt Mackall <mpm@selenic.com> [Fri, 20 Aug 2010 21:23:47 -0500] rev 12006
merge with stable
Matt Mackall <mpm@selenic.com> [Fri, 20 Aug 2010 17:16:37 -0500] rev 12005
bisect: better message for unrelated starting revisions
Matt Mackall <mpm@selenic.com> [Fri, 20 Aug 2010 15:31:05 -0500] rev 12004
debuginstall: report installpath
Adrian Buehlmann <adrian@cadifra.com> [Fri, 20 Aug 2010 18:26:20 +0200] rev 12003
tests: unify test-glog
Matt Mackall <mpm@selenic.com> [Thu, 19 Aug 2010 17:33:46 -0500] rev 12002
bookmarks: fix long line
Matt Mackall <mpm@selenic.com> [Thu, 19 Aug 2010 17:29:13 -0500] rev 12001
merge with stable
Vishakh H <vsh426@gmail.com> [Fri, 13 Aug 2010 19:42:28 +0530] rev 12000
revlog: addgroup re-adds punched revisions for missing parents
While reading changegroup if a node with missing parents is encountered,
we add a punched entry in the index with null parents for the missing
parent node.
Vishakh H <vsh426@gmail.com> [Fri, 13 Aug 2010 19:41:51 +0530] rev 11999
revlog: generate full revisions when parent node is missing
The full revision is sent if the first parent, against which diff is calculated, is
missing at remote. This happens in the case of shallow clones.
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Fri, 20 Aug 2010 00:17:50 +0200] rev 11998
revlog.revision(): inline deltachain computation
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Fri, 20 Aug 2010 00:17:50 +0200] rev 11997
revlog.revision(): remove debug code
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Fri, 20 Aug 2010 00:17:50 +0200] rev 11996
revlog.revision(): don't use nullrev as the default value for the cache
I is probably a bug if the deltachain computation think there was a cache hit
at nullrev. Use None instead, this will never trigger a cache hit.
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Fri, 20 Aug 2010 00:17:50 +0200] rev 11995
revlog.revision(): minor cleanup
Rename some variables, making the name more obvious (in particular "cache" was
actually two different variable.
Move code around, moving the index preloading before the deltachain computation,
without that index preloading was useless (everything was read in deltachain).
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.
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Wed, 18 Aug 2010 19:45:52 +0200] rev 11962
revlog._addrevision(): make the parent of the cached delta explicit
Martin Geisler <mg@lazybytes.net> [Thu, 19 Aug 2010 13:25:46 +0200] rev 11961
subrepos: handle backslashes in subpaths
Dirkjan Ochtman <dirkjan@ochtman.nl> [Thu, 19 Aug 2010 10:59:37 +0200] rev 11960
help: document stringify templatefilter
Martin Geisler <mg@lazybytes.net> [Wed, 18 Aug 2010 11:59:35 +0200] rev 11959
test-subrepo-paths: moved comment lines to where they belong
Matt Mackall <mpm@selenic.com> [Tue, 17 Aug 2010 17:44:19 -0500] rev 11958
merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 17 Aug 2010 17:41:20 -0500] rev 11957
merge with i18n
Matt Mackall <mpm@selenic.com> [Tue, 17 Aug 2010 17:40:53 -0500] rev 11956
merge with i18n
Wagner Bruna <wbruna@softwareexpress.com.br> [Tue, 17 Aug 2010 12:02:34 -0300] rev 11955
i18n-pt_BR: fix typo in commit help text
spotted by Fred Maranhão
Wagner Bruna <wbruna@softwareexpress.com.br> [Mon, 16 Aug 2010 16:10:30 -0300] rev 11954
i18n: merge with stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Mon, 16 Aug 2010 16:06:10 -0300] rev 11953
i18n-pt_BR: synchronized with 2da0cf99b642
Wagner Bruna <wbruna@softwareexpress.com.br> [Mon, 16 Aug 2010 15:46:00 -0300] rev 11952
i18n-pt_BR: fix typo
Martin Geisler <mg@lazybytes.net> [Sun, 15 Aug 2010 18:58:22 +0200] rev 11951
i18n-da: synchronized with 7fa36341e7a0
Alecs King <alecsk@gmail.com> [Fri, 13 Aug 2010 14:29:30 +0800] rev 11950
log: fix the bug 'hg log --stat -p == hg log --stat'
Before:
hg log --stat -p -r tip # only show stat
After:
hg log --stat -p -r tip # show stat _and_ diff
Renato Cunha <renatoc@gmail.com> [Sun, 08 Aug 2010 15:48:58 -0300] rev 11949
hgfixes: added a fixer to convert changes in the email package
This patch adds a fixer that accounts for changes in python packages, as the
framework provided by lib2to3 is only able to track changes in module names.
This fixer (hopefully) can fix any change in one-level hierarchies.
To exemplify, this fixer can successfully change an import from
"email.MIMEMultipart" to "email.mime.multipart".
Renato Cunha <renatoc@gmail.com> [Tue, 03 Aug 2010 13:18:16 -0300] rev 11948
contrib/setup3k.py: added script to build hg with py3k
This patch implements a script that inherits most of its functionality from
hg's setup.py and adds support to calling 2to3 during invocation with python3.
The motivation of having this script around is twofold:
1) It enables py3k crazies to test mercurial in py3k and, hopefully, patch it
more easily, so it can improve the py3k support to eventually run there.
2) Being separated from the main setup.py eliminates the need to make hg's
setup.py even more cluttered, and enables "independent" development until
the port is done.
Some considerations about the structure of this patch:
Mercurial already overrides the behavior of build_py, this patch tweaks it a bit
more to add support to call 2to3 with a custom fixer* location for Mercurial.
There is also a need of having the core C modules built *before* the
translation process starts, otherwise 2to3 will think those are global modules.
* A fixer is a python module that transforms python 2.x code in python 3.x
code.
Renato Cunha <renatoc@gmail.com> [Mon, 16 Aug 2010 16:35:20 -0300] rev 11947
mq: save qrefresh message for easy recovery in case it fails (issue2062)
Currently, if you start editing a commit message from qrefresh -e and, for any
reason: forget you were editing it, leave the editor open and start qpopping
and qpushing, when you decide to save your commit message, it is going to fail.
This patch copies the commit behavior of saving the message contents in
$HGROOT/.hg/last-message.txt before continuing.
Sol Jerome <sol.jerome@gmail.com> [Tue, 17 Aug 2010 17:38:19 -0500] rev 11946
util: avoid using hashlib on Python < 2.5 (issue2278)
The following patch allows the use of python2.4 with a standalone
hashlib rather than assuming that python2.5 is in use when hashlib is
imported successfully.
Alecs King <alecsk@gmail.com> [Wed, 11 Aug 2010 20:28:39 +0800] rev 11945
ui: differentiate empty configlist from None
Wagner Bruna <wbruna@softwareexpress.com.br> [Fri, 13 Aug 2010 13:11:41 -0300] rev 11944
revset: predicate to avoid lookup errors
A query like
head() and (descendants("bad") and not descendants("fix"))
(testing if repo heads are affected by a bug) will abort with a
RepoLookupError if either badrev or fixrev aren't found inside
the repository, which is not very informative.
The new predicate returns an empty set for lookup errors, so
head() and (descendants(present("bad")) and not descendants(present("fix")))
will behave as wanted even if those revisions are not found.
Greg Ward <greg-hg@gerg.ca> [Fri, 13 Aug 2010 13:16:34 -0400] rev 11943
inotify: show the exact command used to start the server
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Tue, 17 Aug 2010 17:46:10 +0200] rev 11942
demandimport: store level argument on _demandmod instances
The 'level' argument to __import__ was added in Python 2.6, and is
specified for either relative or absolute imports. The fix introduced
in e160f2312815 allowed such imports to proceed without failure, but
effectively disabled demandimport for them. This is particularly
unfortunate in Python 3.x, where *all* imports are either relative or
absolute.
The solution introduced here is to store the level argument on the
demandimport instance, and propagate it to _origimport() when its
value isn't None.
Please note that this patch hasn't been tested in Python 3.x, and thus
may not be complete. I'm worried about how sub-imports are handled; I
don't know what they are, or whether the level argument should be
modified for them. I've added 'TODO' notes to these cases; hopefully,
someone more knowledgable of these issues will deal with them.
Xavier Snelgrove <xs@wxs.ca> [Fri, 13 Aug 2010 13:59:26 -0400] rev 11941
revert: use opts.get
If you want to programatically perform a revert right now you need to
include a date=False parameter due to the use of opt["date"] instead
of opt.get("date").
Pradeepkumar Gayam <in3xes@gmail.com> [Tue, 17 Aug 2010 08:38:31 +0530] rev 11940
tests: unify test-copy2
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> [Sun, 15 Aug 2010 13:29:46 +0200] rev 11939
mq/qqueue: enable renaming of active queue
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> [Sun, 15 Aug 2010 16:48:08 +0200] rev 11938
mq/qqueue: split _setactive
Prepare _setactive to be called without checking for applied patches.
Matt Mackall <mpm@selenic.com> [Tue, 17 Aug 2010 13:22:20 -0500] rev 11937
merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 16 Aug 2010 12:55:42 -0500] rev 11936
templates: add filenolink to raw style (issue2332)
Matt Mackall <mpm@selenic.com> [Sun, 15 Aug 2010 23:13:56 -0500] rev 11935
revlog: optimize deltachain
Pradeepkumar Gayam <in3xes@gmail.com> [Tue, 10 Aug 2010 22:28:52 +0530] rev 11934
manifest: correct readdelta() according to parentdeltas
Pradeepkumar Gayam <in3xes@gmail.com> [Tue, 10 Aug 2010 22:28:30 +0530] rev 11933
contrib: simple extension to practically convert a repo from tip delta to parentdelta
Pradeepkumar Gayam <in3xes@gmail.com> [Tue, 10 Aug 2010 22:28:08 +0530] rev 11932
localrepo: add parentdelta to requires only if enabled in config file
Pradeepkumar Gayam <in3xes@gmail.com> [Tue, 10 Aug 2010 22:27:41 +0530] rev 11931
revlog: append delta against p1
Pradeepkumar Gayam <in3xes@gmail.com> [Tue, 10 Aug 2010 22:27:16 +0530] rev 11930
revlog: teach revlog to construct a revision from parentdeltas
Pradeepkumar Gayam <in3xes@gmail.com> [Tue, 10 Aug 2010 22:26:08 +0530] rev 11929
revlog: deltachain() returns chain of revs need to construct a revision
Pradeepkumar Gayam <in3xes@gmail.com> [Tue, 10 Aug 2010 22:25:08 +0530] rev 11928
revlog: parentdelta flags for revlog index
Martin Geisler <mg@lazybytes.net> [Tue, 17 Aug 2010 17:33:42 +0200] rev 11927
glossary: fixed typo
Martin Geisler <mg@lazybytes.net> [Tue, 17 Aug 2010 17:27:37 +0200] rev 11926
Merge with stable