Matt Mackall <mpm@selenic.com> [Wed, 23 Mar 2011 19:28:16 -0500] rev 13750
# User Dan Villiom Podlaski Christiansen <danchr@gmail.com>
# Date 1289564504 -3600
# Node ID b75264c15cc888cf38c3c7b8f619801e3c2589c7
# Parent 89b2e5d940f669e590096c6be70eee61c9172fff
revsets: overload the branch() revset to also take a branch name.
This should only change semantics in the specific case of a tag/branch
conflict where the tag wasn't done on the branch with the same
name. Previously, branch(whatever) would resolve to the branch of the
tag in that case, whereas now it will resolve to the branch of the
name. The previous behaviour, while documented, seemed very
counter-intuitive to me.
An alternate approach would be to introduce a new revset such as
branchname() or namedbranch(). While this would retain backwards
compatibility, the distinction between it and branch() would not be
readily apparent to users. The most intuitive behaviour would be to
have branch(x) require 'x' to be a branch name, and something like
branchof(x) or samebranch(x) do what branch(x) currently
does. Unfortunately, our backwards compatibility guarantees prevent us
from doing that.
Please note that while 'hg tag' guards against shadowing a branch, 'hg
branch' does not. Besides, even if it did, that wouldn't solve the
issue of conversions with such tags and branches...
Adrian Buehlmann <adrian@cadifra.com> [Wed, 23 Mar 2011 22:58:40 +0100] rev 13749
test-commit-multiple.t: improve committwice.py
- fix bug in replacebyte: parameter fn wasn't used (no harm done)
- remove unneeded matcher
- remove unused local n
- increase test coverage a bit with a second file and some sleeping
- show files changed in revisions
- move print statements out of racy path to make sure it's as racy as possible
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Wed, 23 Mar 2011 23:05:32 +0100] rev 13748
osutil: replace #import with #include, and add a check for it
Patrick Mezard <pmezard@gmail.com> [Wed, 23 Mar 2011 23:33:14 +0100] rev 13747
code indentation fixes
Edouard Gomez <ed.gomez@free.fr> [Wed, 07 Jul 2010 00:06:59 +0200] rev 13746
convert: add bookmark support to the hg sink
Edouard Gomez <ed.gomez@free.fr> [Wed, 07 Jul 2010 00:06:59 +0200] rev 13745
convert: add bookmark support to main command
During conversion, read bookmarks from source repo, filter them and push the
resulting set of bookmarks to destination sink.
Edouard Gomez <ed.gomez@free.fr> [Wed, 07 Jul 2010 00:06:59 +0200] rev 13744
convert: add bookmark support to common sink/source implementation
Adrian Buehlmann <adrian@cadifra.com> [Wed, 23 Mar 2011 11:22:29 +0100] rev 13743
dirstate: reset _lastnormal and _lastnormaltime
on write, invalidate, and clear
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Wed, 23 Mar 2011 16:06:55 +0100] rev 13742
discovery: avoid discovery when local graph is a subset of remote
Immediately sends local's heads to the server to check whether the server knows them all.
If it does, we can call getbundle immediately.
Interesting test output changes are:
- added 1 changesets with 0 changes to 1 files (+1 heads)
+ added 1 changesets with 0 changes to 0 files (+1 heads)
-> The new getbundle() actually fixes a bug vs. changegroupsubset() in that it no longer
returns unnecessary files when file revs are reused.
warning: repository is unrelated
+ requesting all changes
-> The new use of common instead of bases correctly indicates that an unrelated pull
gets all changes from the server.
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Wed, 23 Mar 2011 16:02:11 +0100] rev 13741
wireproto: add getbundle() function
getbundle(common, heads) -> bundle
Returns the changegroup for all ancestors of heads which are not ancestors of common. For both
sets, the heads are included in the set.
Intended to eventually supercede changegroupsubset and changegroup. Uses heads of common region
to exclude unwanted changesets instead of bases of desired region, which is more useful and
easier to implement.
Designed to be extensible with new optional arguments (which will have to be guarded by
corresponding capabilities).
Matt Mackall <mpm@selenic.com> [Wed, 23 Mar 2011 12:38:36 -0500] rev 13740
merge with stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Wed, 23 Mar 2011 13:58:33 -0300] rev 13739
i18n-pt_BR: synchronized with 6783f47d90dd
Wagner Bruna <wbruna@softwareexpress.com.br> [Wed, 23 Mar 2011 11:57:10 -0300] rev 13738
merge with i18n
Stefano Tortarolo <stefano.tortarolo@gmail.com> [Mon, 14 Mar 2011 23:48:17 +0100] rev 13737
i18n-it: synchronized with adf3c4401c5d
Matt Mackall <mpm@selenic.com> [Wed, 23 Mar 2011 09:41:58 -0500] rev 13736
osutil: fix up check-code issues
Matt Mackall <mpm@selenic.com> [Wed, 23 Mar 2011 09:34:22 -0500] rev 13735
dirstate: flush _lastnormal when we see newer filesystem times
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Wed, 23 Mar 2011 09:43:34 +0100] rev 13734
util: add Mac-specific check whether we're in a GUI session (issue2553)
The previous test assumed that 'os.name' was "mac" on Mac OS X. This
is not the case; 'mac' was classic Mac OS, whereas Mac OS X has 'os.name'
be 'posix'.
Please note that this change will break Mercurial on hypothetical
non-Mac OS X deployments of Darwin.
Credit to Brodie Rao for thinking of CGSessionCopyCurrentDictionary()
and Kevin Bullock for testing.
Stefano Tortarolo <stefano.tortarolo@gmail.com> [Wed, 23 Mar 2011 01:14:43 +0100] rev 13733
rebase: allow for rebasing descendants onto ancestors on different named branches
So far we've been denying rebasing descendants onto ancestors, but there are
situations in which this kind of operation makes perfect sense to me.
Let's say we have made a commit (or more), that belongs to branch 'dev', on
top of the named branch 'stable':
... a (stable) - b (dev)
but then we realize that b should belong to branch 'stable'.
In these cases a rebase means: "move these csets from named branch A to named
branch B" and there isn't a valid reason to deny it.
This patch basically doesn't block it, if source and destination are
on different named branches.
The old behaviour still applies for rebases across the same named branch.
Can you think of any tricky corner cases in which this new behaviour could
lead to problems? (I bet there are tons of them...)
By the way, I created a brand new .t because I feel there should be more
tests I can't think of at the moment.
Markus F.X.J. Oberhumer <markus@oberhumer.com> [Wed, 23 Mar 2011 02:33:24 +0100] rev 13732
bdiff.c: rename all variables which hold a hash value to "hash"
Markus F.X.J. Oberhumer <markus@oberhumer.com> [Wed, 23 Mar 2011 02:33:23 +0100] rev 13731
bdiff.c: use unsigned arithmetic for hash computation
Signed integer overflow is undefined in C.
Markus F.X.J. Oberhumer <markus@oberhumer.com> [Wed, 23 Mar 2011 02:33:22 +0100] rev 13730
bdiff.c: cast to unsigned char when computing hash value
Markus F.X.J. Oberhumer <markus@oberhumer.com> [Wed, 23 Mar 2011 02:33:21 +0100] rev 13729
bdiff.c: make all local functions static
Matt Mackall <mpm@selenic.com> [Wed, 23 Mar 2011 09:20:40 -0500] rev 13728
merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 22 Mar 2011 21:27:51 -0500] rev 13727
debugbundle: fix up long line caught by check-code
Matt Mackall <mpm@selenic.com> [Tue, 22 Mar 2011 21:26:19 -0500] rev 13726
wireproto: avoid naked excepts
Stefano Tortarolo <stefano.tortarolo@gmail.com> [Tue, 15 Mar 2011 14:55:16 +0100] rev 13725
mq: fix typo in docstring
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Tue, 22 Mar 2011 09:22:29 +0100] rev 13724
commands: add debugbundle command
Lists ids contained in a bundle file. Useful for testing bundle-related commands.
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Tue, 22 Mar 2011 09:22:21 +0100] rev 13723
wireproto: add known([id]) function
known([Node]) -> [1/0]
Returns 1/0 for each node, indicating whether it's known by the server.
Needed for new discovery protocols introduced in later patches.
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Tue, 22 Mar 2011 07:40:02 +0100] rev 13722
wireproto: fix decodelist to properly return empty list
Needed by tests for next patch introducing known().
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Tue, 22 Mar 2011 07:38:32 +0100] rev 13721
wireproto: fix handling of '*' args for HTTP and SSH
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Tue, 22 Mar 2011 07:38:32 +0100] rev 13720
debug: add debugwireargs to test argument passing over the wire
Tests argument passing locally, via HTTP, and via SSH. This is mainly preparation
for the next patch.
Peter Arrenbrecht <peter.arrenbrecht@gmail.com> [Tue, 22 Mar 2011 07:37:56 +0100] rev 13719
sshserver: drop unnecessary line
Matt Mackall <mpm@selenic.com> [Tue, 22 Mar 2011 12:00:38 -0500] rev 13718
merge: avoid unlinking destination of merge when case changes (issue2715)
Matt Mackall <mpm@selenic.com> [Tue, 22 Mar 2011 11:59:43 -0500] rev 13717
dirstate: introduce a public case normalizing method
Matt Mackall <mpm@selenic.com> [Sun, 20 Mar 2011 20:25:41 -0500] rev 13716
changegroup: minor cleanups
Matt Mackall <mpm@selenic.com> [Sun, 20 Mar 2011 20:21:19 -0500] rev 13715
repair: revlog has an iterator
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
Martin Geisler <mg@lazybytes.net> [Wed, 16 Mar 2011 17:34:13 +0100] rev 13684
i18n: merge with mpm
David Soria Parra <dsp@php.net> [Tue, 15 Mar 2011 10:39:19 +0100] rev 13683
i18n-de: correct translation for some fuzzy strings
David Soria Parra <dsp@php.net> [Tue, 15 Mar 2011 10:20:55 +0100] rev 13682
i18n-de: synchronize with 994510694b1d
thron7 <thron7@users.sourceforge.net> [Sun, 13 Mar 2011 15:35:23 +0100] rev 13681
i18n-de: added translations concerning hardlinks
thron7 <thron7@users.sourceforge.net> [Sun, 13 Mar 2011 15:18:17 +0100] rev 13680
i18n-de: added more translations concerning rebase
thron7 <thron7@users.sourceforge.net> [Sun, 13 Mar 2011 14:16:15 +0100] rev 13679
i18n-de: added translations concerning rebase
thron7 <thron7@users.sourceforge.net> [Sun, 13 Mar 2011 13:04:06 +0100] rev 13678
i18n-de: added translations concerning email sending
thron7 <thron7@users.sourceforge.net> [Sun, 13 Mar 2011 12:52:22 +0100] rev 13677
i18n-de: added translations concerning patches
thron7 <thron7@users.sourceforge.net> [Sun, 13 Mar 2011 12:21:46 +0100] rev 13676
i18n-de: added translations concerning win32text and .hgeol
thron7 <thron7@users.sourceforge.net> [Sun, 13 Mar 2011 11:38:27 +0100] rev 13675
i18n-de: added translations for Perforce conversion options
thron7 <thron7@users.sourceforge.net> [Sat, 12 Mar 2011 18:54:43 +0100] rev 13674
i18n-de: added translations for Subversion conversion options
thron7 <thron7@users.sourceforge.net> [Sat, 12 Mar 2011 18:32:02 +0100] rev 13673
i18n-de: added translation for CVS conversion options
thron7 <thron7@users.sourceforge.net> [Sat, 12 Mar 2011 17:42:17 +0100] rev 13672
i18n-de: added translations for convert.hg.* options
thron7 <thron7@users.sourceforge.net> [Sat, 12 Mar 2011 17:42:17 +0100] rev 13671
i18n-de: translate some strings
Markus F.X.J. Oberhumer <markus@oberhumer.com> [Wed, 16 Mar 2011 23:54:55 +0100] rev 13670
revset: fix a number of highly dubious continue statements
This patch definitely needs a review and would also benefit from
some new testsuite entries.
Markus F.X.J. Oberhumer <markus@oberhumer.com> [Wed, 16 Mar 2011 23:54:55 +0100] rev 13669
graphlog: do not swallow all TypeError exceptions (fix 29c800ee54cf)
Markus F.X.J. Oberhumer <markus@oberhumer.com> [Wed, 16 Mar 2011 23:54:55 +0100] rev 13668
archive: use hardcoded constants when creating .zip archives
Do not rely on local stat constants, which may differ.
timeless <timeless@gmail.com> [Wed, 16 Mar 2011 03:06:57 +0100] rev 13667
hgweb: support multiple directories for the same path
[paths]
/dir = /path/1/*, /path/2/*
timeless <timeless@gmail.com> [Wed, 16 Mar 2011 03:28:56 +0100] rev 13666
templates: provide granularity for future values for age filter
Bernhard Leiner <bleiner@gmail.com> [Wed, 16 Mar 2011 23:09:14 +0100] rev 13665
revset: report a parse error if a revset is not parsed completely (issue2654)
Adrian Buehlmann <adrian@cadifra.com> [Wed, 16 Mar 2011 18:48:59 +0100] rev 13664
config: use util.posixfile
David Soria Parra <dsp@php.net> [Mon, 14 Mar 2011 23:03:56 +0100] rev 13663
bundle: update current bookmark to most recent revision on current branch
We check if the current bookmark is set to the first parent of the
dirstate. Is this the case we move the bookmark to most recent revision
on the current branch (where hg update will update you to).
David Soria Parra <dsp@php.net> [Mon, 14 Mar 2011 20:53:55 +0100] rev 13662
localrepo: do not update bookmarks in addchangegroup
We want to update the current bookmark to the most recent revision on
current branch unless there is a remote bookmark that points to
a different descendant. Addchangegroup is called before we can check for
remote bookmarks.
We don't update the bookmark in addchangegroup anymore to allow proper updating
of bookmarks in pull.
Radomir Dopieralski <sheep@stxnext.pl> [Tue, 15 Mar 2011 18:33:36 +0100] rev 13661
rebase: add -m/--message to rebase --collapse (issue2389)
When collapsing changesets with rebase, you get a chance to edit the commit
message manually, but there is no way to pass this message from the command
line. This patch adds a `--message` (with short form `-m`) and `--logfile`
(with short form `-m`) options to the rebase command. These options suppresses
the generation of the default commit message, and instead use the message
provided in the option (in case of `-m`) or in the file it points to (in case
of `-l`).
If you use this option without the `--collapse` option, it will raise an
error.
Options documentation edited by Patrick Mezard <pmezard@gmail.com>
David Wolever <david@wolever.net> [Tue, 15 Mar 2011 17:50:02 -0400] rev 13660
Updating hgext.extdiff to use revsets
Martin Geisler <mg@lazybytes.net> [Wed, 16 Mar 2011 16:07:06 +0100] rev 13659
merge with stable
Martin Geisler <mg@lazybytes.net> [Wed, 16 Mar 2011 15:34:45 +0100] rev 13658
relink: mark abort message for translation
Martin Geisler <mg@lazybytes.net> [Wed, 16 Mar 2011 15:34:10 +0100] rev 13657
relink: avoid trying to lock the same repo twice
Martin Geisler <mg@lazybytes.net> [Wed, 16 Mar 2011 13:51:47 +0100] rev 13656
relink: format reclaimed byte count nicely
Martin Geisler <mg@lazybytes.net> [Wed, 16 Mar 2011 13:25:12 +0100] rev 13655
test-relink: remove unnecessary ui.username setting