Matt Mackall <mpm@selenic.com> [Sun, 20 Mar 2011 20:17:57 -0500] rev 13714
changegroup: fix leftover from delta read
Matt Mackall <mpm@selenic.com> [Sun, 20 Mar 2011 20:16:51 -0500] rev 13713
changegroup: drop expensive redundant usage of readdelta for progress
Matt Mackall <mpm@selenic.com> [Sun, 20 Mar 2011 19:43:28 -0500] rev 13712
changegroupsubset: use manifest.readfast to simplify collector
Matt Mackall <mpm@selenic.com> [Sun, 20 Mar 2011 19:43:28 -0500] rev 13711
manifest: add readfast method
Matt Mackall <mpm@selenic.com> [Sun, 20 Mar 2011 19:43:28 -0500] rev 13710
changegroupsubset: simplify filenode_collector
Matt Mackall <mpm@selenic.com> [Sun, 20 Mar 2011 19:43:28 -0500] rev 13709
changegroupsubset: more renaming
Matt Mackall <mpm@selenic.com> [Sun, 20 Mar 2011 19:43:28 -0500] rev 13708
changegroupsubset: simplify prune
Ancestors of nodes linked to commonrevs can be expected to be linked
to commonrevs. Walking graphs of each revlog looking for rare/nonexistent outliers is overkill.
Matt Mackall <mpm@selenic.com> [Sun, 20 Mar 2011 19:43:28 -0500] rev 13707
changegroupsubset: more minor cleanups
- remove more excessive comments
- simplify some sorting operations
- rename some variables
- replace identity with a lambda
Matt Mackall <mpm@selenic.com> [Sun, 20 Mar 2011 19:43:28 -0500] rev 13706
changegroupsubset: minor cleanups
- move some variable declarations
- drop some excessive comments
- use standard variable naming
Matt Mackall <mpm@selenic.com> [Sun, 20 Mar 2011 19:43:28 -0500] rev 13705
strip: simplify collectone
Greg Ward <greg@gerg.ca> [Sun, 20 Mar 2011 17:41:09 -0400] rev 13704
dirstate: avoid a race with multiple commits in the same process
(
issue2264,
issue2516)
The race happens when two commits in a row change the same file
without changing its size, *if* those two commits happen in the same
second in the same process while holding the same repo lock. For
example:
commit 1:
M a
M b
commit 2: # same process, same second, same repo lock
M b # modify b without changing its size
M c
This first manifested in transplant, which is the most common way to
do multiple commits in the same process. But it can manifest in any
script or extension that does multiple commits under the same repo
lock. (Thus, the test script tests both transplant and a custom script.)
The problem was that dirstate.status() failed to notice the change to
b when localrepo is about to do the second commit, meaning that change
gets left in the working directory. In the context of transplant, that
means either a crash ("RuntimeError: nothing committed after
transplant") or a silently inaccurate transplant, depending on whether
any other files were modified by the second transplanted changeset.
The fix is to make status() work a little harder when we have
previously marked files as clean (state 'normal') in the same process.
Specifically, dirstate.normal() adds files to self._lastnormal, and
other state-changing methods remove them. Then dirstate.status() puts
any files in self._lastnormal into state 'lookup', which will make
localrepository.status() read file contents to see if it has really
changed. So we pay a small performance penalty for the second (and
subsequent) commits in the same process, without affecting the common
case. Anything that does lots of status updates and checks in the
same process could suffer a performance hit.
Incidentally, there is a simpler fix: call dirstate.normallookup() on
every file updated by commit() at the end of the commit. The trouble
with that solution is that it imposes a performance penalty on the
common case: it means the next status-dependent hg command after every
"hg commit" will be a little bit slower. The patch here is more
complex, but only affects performance for the uncommon case.
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Sun, 20 Mar 2011 01:16:57 +0100] rev 13703
changegroupsubset: extranodes are no longer needed
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Sun, 20 Mar 2011 00:50:22 +0100] rev 13702
strip: remove usage of extranodes
Instead of computing the exact set of missing revlog revisions, we only
compute the set of missing/broken changesets. The resulting bundle can be
slightly bigger but we will be able to get rid of the ugly extranodes handling
in changegroupsubset.
Patrick Mezard <pmezard@gmail.com> [Sun, 20 Mar 2011 00:22:47 +0100] rev 13701
patch: move closefile() into patchfile.close()
Patrick Mezard <pmezard@gmail.com> [Sun, 20 Mar 2011 00:09:44 +0100] rev 13700
patch: inline patchfile.hashlines()
Patrick Mezard <pmezard@gmail.com> [Sun, 20 Mar 2011 00:08:44 +0100] rev 13699
patch: fix hunk newlines when parsing hunks, not in iterhunks()
Patrick Mezard <pmezard@gmail.com> [Sat, 19 Mar 2011 19:50:55 +0100] rev 13698
i18n: register new template keywords for translation
Matt Mackall <mpm@selenic.com> [Sat, 19 Mar 2011 01:34:49 -0500] rev 13697
annotate: catch nonexistent files using match.bad callback (
issue1590)
Steve Borho <steve@borho.org> [Fri, 18 Mar 2011 13:01:18 -0500] rev 13696
merge with stable
Steve Borho <steve@borho.org> [Fri, 18 Mar 2011 11:36:36 -0500] rev 13695
wix: add new file templates/paper/bookmarks.tmpl
This file was snuck onto the stable branch with
38c9837b1f75
Matt Mackall <mpm@selenic.com> [Thu, 17 Mar 2011 17:08:13 -0500] rev 13694
merge with stable
Miloš Hadžić <milos.hadzic@gmail.com> [Thu, 17 Mar 2011 22:55:02 +0100] rev 13693
push/outgoing: print remote target path even if there's an error (
issue2561)
This is a simple patch to make hg push/hg outgoing print their remote target
path even if the operation fails. I'm not sure if the original behavior was by
design.
This patch also changes one test to reflect the changed behaviour.
Eric Eisner <ede@mit.edu> [Thu, 17 Mar 2011 16:29:09 -0400] rev 13692
subrepo: recognize scp-style paths as git URLs
Patrick Mezard <pmezard@gmail.com> [Thu, 17 Mar 2011 22:17:27 +0100] rev 13691
convert: add svnrev, svnpath and svnuuid template keywords
$ hg -R A-hg log --template '{rev} {svnuuid}{svnpath}@{svnrev}\n'
10
644ede6c-2b81-4367-9dc8-
d786514f2cde/trunk@10
Patrick Mezard <pmezard@gmail.com> [Thu, 17 Mar 2011 22:17:27 +0100] rev 13690
convert/svn: extract revsplit() in a function
Patrick Mezard <pmezard@gmail.com> [Thu, 17 Mar 2011 22:17:27 +0100] rev 13689
transplant: add "transplanted" keyword
$ hg log --template '{rev} {transplanted}\n'
7
a53251cdf717679d1907b289f991534be05c997a
Matt Mackall <mpm@selenic.com> [Thu, 17 Mar 2011 12:00:49 -0500] rev 13688
merge with i18n
Martin Geisler <mg@lazybytes.net> [Wed, 16 Mar 2011 17:43:43 +0100] rev 13687
i18n: merge with stable
Martin Geisler <mg@lazybytes.net> [Wed, 16 Mar 2011 17:42:42 +0100] rev 13686
i18n-da: synchronize with
e9628665b670
Martin Geisler <mg@lazybytes.net> [Wed, 16 Mar 2011 17:38:25 +0100] rev 13685
i18n: don't mark trivial string for translation