Wed, 29 Jan 2014 09:22:31 -0800 revset: added lazyset implementation to author revset
Lucas Moscovicz <lmoscovicz@fb.com> [Wed, 29 Jan 2014 09:22:31 -0800] rev 20448
revset: added lazyset implementation to author revset Performance benchmarking: $ time hg log -qr "first(author(mpm))" 0:9117c6561b0b real 0m3.486s user 0m3.317s sys 0m0.077s $ time ./hg log -qr "first(author(mpm))" 0:9117c6561b0b real 0m0.551s user 0m0.295s sys 0m0.072s
Wed, 29 Jan 2014 09:04:03 -0800 revset: added lazyset implementation to keyword revset
Lucas Moscovicz <lmoscovicz@fb.com> [Wed, 29 Jan 2014 09:04:03 -0800] rev 20447
revset: added lazyset implementation to keyword revset Performance benchmarking: $ time hg log -qr "first(keyword(changeset))" 0:9117c6561b0b real 0m3.466s user 0m3.345s sys 0m0.072s $ time ./hg log -qr "first(keyword(changeset))" 0:9117c6561b0b real 0m0.365s user 0m0.199s sys 0m0.083s
Tue, 28 Jan 2014 16:19:30 -0800 revset: changed limit revset implementation to work with lazy revsets
Lucas Moscovicz <lmoscovicz@fb.com> [Tue, 28 Jan 2014 16:19:30 -0800] rev 20446
revset: changed limit revset implementation to work with lazy revsets Performance benchmarking: $ time hg log -qr "first(branch(default))" 0:9117c6561b0b real 0m3.130s user 0m3.025s sys 0m0.074s $ time ./hg log -qr "first(branch(default))" 0:9117c6561b0b real 0m0.300s user 0m0.198s sys 0m0.069s
Wed, 05 Feb 2014 16:12:03 -0800 revset: added lazyset implementation to branch revset
Lucas Moscovicz <lmoscovicz@fb.com> [Wed, 05 Feb 2014 16:12:03 -0800] rev 20445
revset: added lazyset implementation to branch revset Performance Benchmarking: $ time hg log -l1 -qr "branch(default)" 0:9117c6561b0b real 0m3.366s user 0m3.217s sys 0m0.095s $ time ./hg log -l1 -qr "branch(default)" 0:9117c6561b0b real 0m0.389s user 0m0.199s sys 0m0.061s
Tue, 11 Feb 2014 01:15:07 +0100 run-tests: fix typo and print out failing line
Simon Heimberg <simohe@besonet.ch> [Tue, 11 Feb 2014 01:15:07 +0100] rev 20444
run-tests: fix typo and print out failing line Instead of stripping the newline and printing the line, only the newline was printed. The output on buildbot will make more sense now.
Tue, 28 Jan 2014 15:19:14 -0800 revset: changed getset so that it can return a lazyset
Lucas Moscovicz <lmoscovicz@fb.com> [Tue, 28 Jan 2014 15:19:14 -0800] rev 20443
revset: changed getset so that it can return a lazyset Not converting it manually to a baseset anymore. At this point every revset method should return a baseset typed structure.
Tue, 11 Feb 2014 09:00:38 -0800 hgext: updated extensions to return a baseset when adding symbols
Lucas Moscovicz <lmoscovicz@fb.com> [Tue, 11 Feb 2014 09:00:38 -0800] rev 20442
hgext: updated extensions to return a baseset when adding symbols
Thu, 30 Jan 2014 20:22:43 -0800 push: move phases synchronisation function in its own function
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 30 Jan 2014 20:22:43 -0800] rev 20441
push: move phases synchronisation function in its own function Now that every necessary information is held in the `pushoperation` object, we can finally extract the phase synchronisation phase to it's own function. This is the first concrete block of code we extract from the huge push function. Hooray! This changeset is pure code movement only.
Thu, 30 Jan 2014 20:18:26 -0800 push: move outgoing object in the push object
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 30 Jan 2014 20:18:26 -0800] rev 20440
push: move outgoing object in the push object The set of outgoing and common changeset are used by phases to compute the new common set between local and remote. So we need to move it into the object to extract the phase sync from the god function. Note that this information will be used by obsolescence markers too.
Thu, 30 Jan 2014 19:43:28 -0800 push: move push return value in the push object
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 30 Jan 2014 19:43:28 -0800] rev 20439
push: move push return value in the push object The return code convey information about the success of changeset push. This is used by phases to compute the new common set between local and remote. So we need to move it into the object to extract the phase sync from the god function. Note that this information will be used by obsolescence markers too.
Thu, 30 Jan 2014 20:10:59 -0800 push: move local phase move in a normal function
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 30 Jan 2014 20:10:59 -0800] rev 20438
push: move local phase move in a normal function We now have the modularity for simpler approach `localphasemove`.
Thu, 30 Jan 2014 20:09:21 -0800 push: explicitly feed pushop to localphasemove
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 30 Jan 2014 20:09:21 -0800] rev 20437
push: explicitly feed pushop to localphasemove Now that pushop is holding all the push related data, we do not really need a closure anymore. So we start feeding the object to `localphasemove` and will make it a normal function in the next commit.
Thu, 30 Jan 2014 20:00:34 -0800 push: move local lock logic in pushoperation
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 30 Jan 2014 20:00:34 -0800] rev 20436
push: move local lock logic in pushoperation During push, we try to lock the local repo to move local phase according to what we saw/pushed on the remote repo. Locking the repo may fail, in that case we let the push proceed without local phase movement (printing warning). This mean we have code in phase synchronisation that will check if the local repo is locked or not. we need to move this information in the push object to be able to extract the phase synchronisation in its own function. This is done as a boolean because putting reference to the actual lock outside of the main function sounded a bad idea.
Thu, 30 Jan 2014 19:55:09 -0800 push: move obsolescence related message into _pushobsolescence function
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 30 Jan 2014 19:55:09 -0800] rev 20435
push: move obsolescence related message into _pushobsolescence function No good reason to have them in the main fonction.
Thu, 30 Jan 2014 19:51:21 -0800 push: drop now outdated comment
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 30 Jan 2014 19:51:21 -0800] rev 20434
push: drop now outdated comment This `_pushobsolete` now exist for modularity purpose.
Thu, 30 Jan 2014 17:56:09 -0800 push: feed pushoperation object to _pushobsolete function
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 30 Jan 2014 17:56:09 -0800] rev 20433
push: feed pushoperation object to _pushobsolete function This will allow the obsolete marker synchronisation to have full information on the ongoing push and pass information to other operation.
Thu, 30 Jan 2014 17:54:47 -0800 push: move obsolescence marker exchange in the exchange module
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 30 Jan 2014 17:54:47 -0800] rev 20432
push: move obsolescence marker exchange in the exchange module The obsolescence marker exchange code was already extracted during a previous cycle. We are moving the extracted functio in this module. This function will read and write data in the `pushoperation` object and I prefer to have all core function collaborating through this object in the same place. This changeset is pure code movement only. Code change for direct consumption of the `pushoperation` object will come later.
Thu, 30 Jan 2014 17:51:41 -0800 push: feed pushoperation object to _pushbookmark function
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 30 Jan 2014 17:51:41 -0800] rev 20431
push: feed pushoperation object to _pushbookmark function This will able the bookmark synchronisation to have full information on the ongoing push and pass information to other operation.
Mon, 10 Feb 2014 17:31:26 -0600 merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 10 Feb 2014 17:31:26 -0600] rev 20430
merge with stable
Thu, 06 Feb 2014 14:29:37 -0800 revset: added operations to duck type baseset
Lucas Moscovicz <lmoscovicz@fb.com> [Thu, 06 Feb 2014 14:29:37 -0800] rev 20429
revset: added operations to duck type baseset Added more operations which are not lazy but only used so far to duck type baseset. Their implementations will be changed in future patches.
Thu, 06 Feb 2014 14:25:37 -0800 revset: added basic operations to lazyset
Lucas Moscovicz <lmoscovicz@fb.com> [Thu, 06 Feb 2014 14:25:37 -0800] rev 20428
revset: added basic operations to lazyset Added methods __add__, __sub__ and __and__ to duck type more methods in baseset
Thu, 06 Feb 2014 14:19:40 -0800 revset: added lazyset class with basic operations
Lucas Moscovicz <lmoscovicz@fb.com> [Thu, 06 Feb 2014 14:19:40 -0800] rev 20427
revset: added lazyset class with basic operations This class allows us to return values from large revsets as soon as they are computed instead of having to wait for the entire revset to be calculated.
Sun, 09 Feb 2014 00:26:01 +0100 tests: test that the pid returned by `hg serve` looks reasonable
Simon Heimberg <simohe@besonet.ch> [Sun, 09 Feb 2014 00:26:01 +0100] rev 20426
tests: test that the pid returned by `hg serve` looks reasonable This failed on windows before win32.spawndetached has been fixed. The process name was "cmd.exe" and not "hg.exe" or "python.exe".
Sat, 08 Feb 2014 14:35:07 +0100 win32: spawndetached returns pid of detached process and not of cmd.exe
Simon Heimberg <simohe@besonet.ch> [Sat, 08 Feb 2014 14:35:07 +0100] rev 20425
win32: spawndetached returns pid of detached process and not of cmd.exe win32.spawndetached starts the detached process by `cmd.exe` (or COMSPEC). The pid it returned was the one of cmd.exe and not the one of the detached process. When this pid is used to kill the process, the detached process is not killed, but only cmd.exe. With this patch the pid of the detached process is written to the pid file. Killing the process works as expected. The pid is only evaluated on writing the pid file. It is unnecessary to search the pid when it is not needed. And more important, it probably does not yet exist right after the cmd.exe process was started. When the pid is written to the file, waiting for the start of the detached process has already happened. Use this functionality instead of writing a 2nd wait function. Many tests on windows will not fail anymore, all those with the first failing line "abort: child process failed to start". (The processes still hanging around from previous test runs have to be killed first. They still block a tcp port.) A good test for the functionality of this patch is test-treediscovery.t, because it starts and kills `hg serve -d` several times.
Thu, 06 Feb 2014 14:57:25 -0800 revset: minor changes adding baseset to revsets
Lucas Moscovicz <lmoscovicz@fb.com> [Thu, 06 Feb 2014 14:57:25 -0800] rev 20424
revset: minor changes adding baseset to revsets Changed bits of code to work with baseset implementations.
Mon, 10 Feb 2014 22:56:10 +0100 tests: rewrite path in test-shelve.t for not being mangled on msys
Simon Heimberg <simohe@besonet.ch> [Mon, 10 Feb 2014 22:56:10 +0100] rev 20423
tests: rewrite path in test-shelve.t for not being mangled on msys msys (on windows) converets '-R bundle:.XX/XX' to '-R bundle:;.XX/XX'. Avoid this by writing '-R bundle://.XX/XX'. This is used more often than the alternative work arounds like '-Rbundle://.XX/XX' or '-R bundle:Y/../.XX/XX'.
Mon, 10 Feb 2014 14:51:06 -0800 hooks: only disable/re-enable demandimport when it's already enabled stable
Brodie Rao <brodie@sf.io> [Mon, 10 Feb 2014 14:51:06 -0800] rev 20422
hooks: only disable/re-enable demandimport when it's already enabled This fixes an issue introduced in d7c28954d901 where, when disabling demandimport while running hooks, it's inadvertently re-enabled even when it was never enabled in the first place. This doesn't affect normal command line usage of Mercurial; it only matters when Mercurial is run with demandimport intentionally disabled.
Sun, 09 Feb 2014 18:36:37 -0600 merge with stable
Matt Mackall <mpm@selenic.com> [Sun, 09 Feb 2014 18:36:37 -0600] rev 20421
merge with stable
Fri, 07 Feb 2014 17:29:37 +0100 convert: secret config option for disabling debugsvnlog
Mads Kiilerich <madski@unity3d.com> [Fri, 07 Feb 2014 17:29:37 +0100] rev 20420
convert: secret config option for disabling debugsvnlog Subversion issues involving svn log such as d54467c1a198 can be tricky to debug when it is run in an 'hg debugsvnlog' sub process. Debugging is simpler when convert only uses one process. With this change convert will invoke the svn log directly when setting [convert] svn.debugsvnlog = False This is intentionally not documented.
Fri, 07 Feb 2014 17:28:37 +0100 convert: make subversion revsplit more stable when meeting revisions without @
Mads Kiilerich <madski@unity3d.com> [Fri, 07 Feb 2014 17:28:37 +0100] rev 20419
convert: make subversion revsplit more stable when meeting revisions without @ revsplit would crash for instance if given a subversion string without @ ... and that could somehow happen when playing around with convert.
Thu, 06 Feb 2014 14:57:25 -0800 revset: minor changes adding baseset to revsets
Lucas Moscovicz <lmoscovicz@fb.com> [Thu, 06 Feb 2014 14:57:25 -0800] rev 20418
revset: minor changes adding baseset to revsets Changed bits of code to work with baseset implementations.
Thu, 06 Feb 2014 11:37:16 -0800 revset: added __add__ method to baseset class
Lucas Moscovicz <lmoscovicz@fb.com> [Thu, 06 Feb 2014 11:37:16 -0800] rev 20417
revset: added __add__ method to baseset class
Thu, 06 Feb 2014 11:33:36 -0800 revset: added docstring to baseset class
Lucas Moscovicz <lmoscovicz@fb.com> [Thu, 06 Feb 2014 11:33:36 -0800] rev 20416
revset: added docstring to baseset class
Mon, 10 Feb 2014 00:43:54 +0100 merge: don't overwrite file untracked after remove, abort with 'untracked files' stable
Mads Kiilerich <madski@unity3d.com> [Mon, 10 Feb 2014 00:43:54 +0100] rev 20415
merge: don't overwrite file untracked after remove, abort with 'untracked files' Merge could overwrite untracked files and cause data loss. Instead we now handle the 'local side removed file and has untracked file instead' case as the 'other side added file that local has untracked' case: FILE: untracked file exists abort: untracked files in working directory differ from files in requested revision It could perhaps make sense to create .orig files when overwriting, either instead of aborting or when overwriting anyway because of force ... but for now we stay consistent with similar cases.
Mon, 10 Feb 2014 00:54:40 +0100 shelve: better (and slightly redundant) test coverage for unshelve conflicts
Mads Kiilerich <madski@unity3d.com> [Mon, 10 Feb 2014 00:54:40 +0100] rev 20414
shelve: better (and slightly redundant) test coverage for unshelve conflicts
Mon, 10 Feb 2014 00:54:27 +0100 shelve: status messages from unshelve
Mads Kiilerich <madski@unity3d.com> [Mon, 10 Feb 2014 00:54:27 +0100] rev 20413
shelve: status messages from unshelve It was hard for the user to know what was going on when unshelving - especially if the user had to resolve conflicts and thus got to see the intermediate states. Seeing that pending changes was gone could scare the user, make him panic, and do stuff that really made him lose data. Merging (both when rebasing and with pending changes) also requires some understanding of where in the process you are and what you are merging. To help the user we now show a couple of status messages (when relevant): temporarily committing pending changes (restore with 'hg unshelve --abort') rebasing shelved changes
Mon, 10 Feb 2014 00:54:12 +0100 shelve: be quiet when unshelve pulls from the shelve bundle
Mads Kiilerich <madski@unity3d.com> [Mon, 10 Feb 2014 00:54:12 +0100] rev 20412
shelve: be quiet when unshelve pulls from the shelve bundle unshelve was quite verbose and it was hard for a user to follow what really was going on. It ended up saying 'added 1 changesets' ... but the user just expected and got pending changes and never saw any changeset. The use of bundles is an implementation detail that we don't have to leak here. Pulling is quite verbose, optimized for pulling many changesets from remote repos - that is not the case here. Instead, set the quiet flag when pulling the bundle - not only when temporarily committing pending changes. The 'finally' restore of ui.quiet is moved to the outer try/finally used for locking.
Mon, 10 Feb 2014 00:53:27 +0100 shelve: add 'changes to' prefix to default shelve message
Mads Kiilerich <madski@unity3d.com> [Mon, 10 Feb 2014 00:53:27 +0100] rev 20411
shelve: add 'changes to' prefix to default shelve message The shelved changes _could_ perhaps be amended to the parent changeset but it _is_ not the parent changeset. Using the description from the parent changeset is thus wrong and confusing. Instead, add a 'changes to' prefix.
Mon, 10 Feb 2014 00:53:27 +0100 shelve: mention FILE options in help
Mads Kiilerich <madski@unity3d.com> [Mon, 10 Feb 2014 00:53:27 +0100] rev 20410
shelve: mention FILE options in help Shelve do normally take a list of files or patterns to shelve and the command summary should thus show [FILE]... Note: --delete is a bit special and interpret the parameters as a list of shelve names. This change makes that even less obvious from the help. Too bad - we can't please everyone.
Mon, 10 Feb 2014 00:53:25 +0100 shelve: mention walk options in help
Mads Kiilerich <madski@unity3d.com> [Mon, 10 Feb 2014 00:53:25 +0100] rev 20409
shelve: mention walk options in help
Mon, 10 Feb 2014 00:52:56 +0100 shelve: really pass publicancestors to changegroupsubset - not the parents
Mads Kiilerich <madski@unity3d.com> [Mon, 10 Feb 2014 00:52:56 +0100] rev 20408
shelve: really pass publicancestors to changegroupsubset - not the parents publicancestors returned the parents of the public ancestors ... and changegroupsubset used the parents of these as base for the bundle. That gave bundles with one layer of changesets more than necessary.
Mon, 10 Feb 2014 00:52:46 +0100 shelve: publicancestors do not have to visit nullrev
Mads Kiilerich <madski@unity3d.com> [Mon, 10 Feb 2014 00:52:46 +0100] rev 20407
shelve: publicancestors do not have to visit nullrev Not visiting nullrev seems more correct and might be a minor optimization.
Mon, 10 Feb 2014 00:52:16 +0100 localrepo: make it clear that changegroupsubset doesn't take bases but roots
Mads Kiilerich <madski@unity3d.com> [Mon, 10 Feb 2014 00:52:16 +0100] rev 20406
localrepo: make it clear that changegroupsubset doesn't take bases but roots changegroupsubset will take the parents of the roots to find the bases. Other parts of Mercurial do not expect that, and a result of that is that some bundles contain more changesets than necessary. No real changes here - just renaming a parameter to document what it is.
Tue, 04 Feb 2014 17:13:45 -0500 repoview: use repo.revs() instead of a private revset method
Augie Fackler <raf@durin42.com> [Tue, 04 Feb 2014 17:13:45 -0500] rev 20405
repoview: use repo.revs() instead of a private revset method Breaks an import cycle.
Tue, 04 Feb 2014 14:55:04 -0500 commands: use ctx.getfileset instead of fileset.getfileset
Augie Fackler <raf@durin42.com> [Tue, 04 Feb 2014 14:55:04 -0500] rev 20404
commands: use ctx.getfileset instead of fileset.getfileset
Sun, 09 Feb 2014 17:31:26 -0600 push: backout 2bc520bd0ce0 due to test failures
Matt Mackall <mpm@selenic.com> [Sun, 09 Feb 2014 17:31:26 -0600] rev 20403
push: backout 2bc520bd0ce0 due to test failures
Sun, 09 Feb 2014 17:30:49 -0600 mq: fix qimport url check
Matt Mackall <mpm@selenic.com> [Sun, 09 Feb 2014 17:30:49 -0600] rev 20402
mq: fix qimport url check
Tue, 04 Feb 2014 14:54:42 -0500 match: use ctx.getfileset() instead of fileset.getfileset()
Augie Fackler <raf@durin42.com> [Tue, 04 Feb 2014 14:54:42 -0500] rev 20401
match: use ctx.getfileset() instead of fileset.getfileset() Resolves an import cycle involving match and merge.
Tue, 04 Feb 2014 15:27:49 -0500 context: add a getfileset() method so fewer things need fileset directly
Augie Fackler <raf@durin42.com> [Tue, 04 Feb 2014 15:27:49 -0500] rev 20400
context: add a getfileset() method so fewer things need fileset directly Allows me to break an import cycle in a subsequent change.
Tue, 04 Feb 2014 18:09:20 -0500 fix_bytesmod: fix defects in fix_bytesmod so it produces working code
Augie Fackler <raf@durin42.com> [Tue, 04 Feb 2014 18:09:20 -0500] rev 20399
fix_bytesmod: fix defects in fix_bytesmod so it produces working code Prior to this change, the fixer did not always add the py3kcompat import to files, and did not manage to blacklist itself.
Thu, 06 Feb 2014 02:19:38 +0100 discovery: improve "note: unsynced remote changes!" warning
Mads Kiilerich <madski@unity3d.com> [Thu, 06 Feb 2014 02:19:38 +0100] rev 20398
discovery: improve "note: unsynced remote changes!" warning This note (which actually is a warning) frequently caused confusion. "unsynced" is not a well established user-facing concept in Mercurial and the message was not very specific or helpful. Instead, show a messages like: remote has heads on branch 'default' that are not known locally: 6c0482d977a3 and show it before aborting on "push creates new remote head". This will also give more of a hint in the case where the branch has been closed remotely and 'hg heads' thus not would show any new heads after pulling. A similar (but actually very different) message was addressed in 6b618aa08b6e.
Fri, 07 Feb 2014 17:26:28 +0100 convert: drop unused getheads from sinks
Mads Kiilerich <madski@unity3d.com> [Fri, 07 Feb 2014 17:26:28 +0100] rev 20397
convert: drop unused getheads from sinks
Sat, 08 Feb 2014 10:41:17 +0100 tests: on windows, run command explicitly in sh for working command substitution
Simon Heimberg <simohe@besonet.ch> [Sat, 08 Feb 2014 10:41:17 +0100] rev 20396
tests: on windows, run command explicitly in sh for working command substitution On windows, os.system runs the command in cmd.exe, which does not know command substitution. To let this work, run the command explicitly in sh. This fixes the failure of this test on windows.
Tue, 28 Jan 2014 00:33:52 +0100 tests: test-module-imports.t works on windows (with backslash path sep)
Simon Heimberg <simohe@besonet.ch> [Tue, 28 Jan 2014 00:33:52 +0100] rev 20395
tests: test-module-imports.t works on windows (with backslash path sep) Transform the backslashes to slashes on windows, because they are eaten up by the shell. (Similar as done in test-check-pyflakes.t.) This test will not produce a traceback on windows anymore. But the test still fails because the detected mixed imports differ.
Fri, 07 Feb 2014 17:54:10 -0600 qimport: allow importing URLs
Matt Mackall <mpm@selenic.com> [Fri, 07 Feb 2014 17:54:10 -0600] rev 20394
qimport: allow importing URLs
Fri, 07 Feb 2014 15:01:33 -0800 revset: fixed bug where revset returning order was being changed
Lucas Moscovicz <lmoscovicz@fb.com> [Fri, 07 Feb 2014 15:01:33 -0800] rev 20393
revset: fixed bug where revset returning order was being changed Some revsets were innecesarily turning the subset into a set before iterating over it. This led to returning order changing in some cases.
Mon, 03 Feb 2014 18:36:00 -0500 itersubrepos: move to scmutil to break a direct import cycle
Augie Fackler <raf@durin42.com> [Mon, 03 Feb 2014 18:36:00 -0500] rev 20392
itersubrepos: move to scmutil to break a direct import cycle
Fri, 07 Feb 2014 02:59:46 +0100 import-checker: handle standard modules with arch in the filename
Mads Kiilerich <madski@unity3d.com> [Fri, 07 Feb 2014 02:59:46 +0100] rev 20391
import-checker: handle standard modules with arch in the filename Installations with module names like /usr/lib/python2.7/lib-dynload/bz2.x86_64-linux-gnu.so occurs in the wild. Let's just ignore everything after first '.' when guessing the Python module name.
Mon, 03 Feb 2014 20:08:58 +0100 tests: use ls instead of find, all files are in the same directory
Simon Heimberg <simohe@besonet.ch> [Mon, 03 Feb 2014 20:08:58 +0100] rev 20390
tests: use ls instead of find, all files are in the same directory In this case find has no advantage compared to ls. Descending into directories is unnecessary, because there are none.
Mon, 27 Jan 2014 11:17:07 +0100 commands: hg debuginstall checks missing templates (issue4151)
Simon Heimberg <simohe@besonet.ch> [Mon, 27 Jan 2014 11:17:07 +0100] rev 20389
commands: hg debuginstall checks missing templates (issue4151) Missing templates where not reported as a problem, only an empty bracket were shown as indication of no found template directory: $ hg debuginstall *...some lines* checking templates ()... *...some lines* no problems detected Now the problem is reported and extended with some information. The style of the messages is adapted to the other messages of debuginstall. When no templates directories exist, it writes: $ hg debuginstall *...some lines* checking templates ()... no template directories found (templates seem to have been installed incorrectly) *...some lines* 1 problems detected, please check your install! When the template map is not found, it writes: $ hg debuginstall *...some lines* checking templates (/path/to/mercurial/templates)... template 'default' not found (templates seem to have been installed incorrectly) *...some lines* 1 problems detected, please check your install! When the template map is buggy the message is the same as before. The error message is shown before the line "(templates seem ...)". No test is added because testing this failure is complicated. It would require to modify the templates directory of the mercurial installation, or to monkey patch a function (os.listdir or any from mercurial.templater) by a test extension.
Sun, 10 Feb 2013 00:11:45 +0100 contrib/Makefile.python: build local Python from source
Mads Kiilerich <mads@kiilerich.com> [Sun, 10 Feb 2013 00:11:45 +0100] rev 20388
contrib/Makefile.python: build local Python from source This provides an easy way to install new or old Python versions on Unixish systems. It is mainly intended for testing Mercurial with different Python versions. Example: $ cd build $ make -f ../contrib/Makefile.python python PYTHONVER=2.4 PREFIX=/tmp/p24 $ /tmp/p24/bin/python -V Python 2.4 Tested on Fedora, Debian and Ubuntu with Python versions from 2.4 to 2.7.6. Most Python versions need some workarounds to compile on Debian-ish systems. The workarounds do not do any significant harm on Fedora.
Wed, 05 Feb 2014 01:45:59 +0100 tests: use small conditional section for tic requirement in test-status-color.t
Mads Kiilerich <madski@unity3d.com> [Wed, 05 Feb 2014 01:45:59 +0100] rev 20387
tests: use small conditional section for tic requirement in test-status-color.t Better test coverage when curses not is available.
Wed, 05 Feb 2014 01:43:51 +0100 import-checker: show stdlib and relative imports separately
Mads Kiilerich <madski@unity3d.com> [Wed, 05 Feb 2014 01:43:51 +0100] rev 20386
import-checker: show stdlib and relative imports separately Make the output more useful for debugging problems.
Wed, 05 Feb 2014 01:41:36 +0100 tests: improved test coverage for HTTP authentication and 401 responses
Mads Kiilerich <madski@unity3d.com> [Wed, 05 Feb 2014 01:41:36 +0100] rev 20385
tests: improved test coverage for HTTP authentication and 401 responses Dump the access log to verify that the client gets the 401s it deserves and handles them correctly. This establishes a baseline for Basic authentication protocol.
Wed, 05 Feb 2014 01:37:37 +0100 tests: ignore http tests that are known wontfix failures on python 2.4
Mads Kiilerich <madski@unity3d.com> [Wed, 05 Feb 2014 01:37:37 +0100] rev 20384
tests: ignore http tests that are known wontfix failures on python 2.4 As mentioned on http://bz.selenic.com/show_bug.cgi?id=2739#c17 , b3083042bdda left test-http.t failing on Python < 2.4.3. That has not been noticed because most 2.4 testing has been done with a patched 2.4.2. This makes sure that the tests only are run for Python >= 2.4.3. That makes it possible to verify that everything else works with Python 2.4.
Wed, 05 Feb 2014 01:30:33 +0100 import-checker: fix names of dynamically loaded modules
Mads Kiilerich <madski@unity3d.com> [Wed, 05 Feb 2014 01:30:33 +0100] rev 20383
import-checker: fix names of dynamically loaded modules The import checker found standard library modules such as lib-dynload/zlibmodule.so but saw that as a 'zlibmodule' module, not as the 'zlib' module. Debian ships Python with most modules built-in and this incorrect handling of dynamic modules did thus not cause problems on that platform. Fedora ships Python with as many modules as possible loaded dynamically. That made the import checker tests fail with incorrect classification of the following modules: array fcntl grp itertools time zlib. This change makes test-module-imports.t pass on Fedora.
Tue, 28 Jan 2014 02:23:48 +0100 tests: for consistent output flush between writing sterr and stdout
Simon Heimberg <simohe@besonet.ch> [Tue, 28 Jan 2014 02:23:48 +0100] rev 20382
tests: for consistent output flush between writing sterr and stdout Because stdout and stderr are buffered, the order of the output is other way around on some systems.
Thu, 06 Feb 2014 02:17:48 +0100 discovery: cleanup of variable names and comments
Mads Kiilerich <madski@unity3d.com> [Thu, 06 Feb 2014 02:17:48 +0100] rev 20381
discovery: cleanup of variable names and comments
Thu, 06 Feb 2014 01:55:09 +0100 localrepo: give a sigh of relief when getting lock after waiting for it
Mads Kiilerich <madski@unity3d.com> [Thu, 06 Feb 2014 01:55:09 +0100] rev 20380
localrepo: give a sigh of relief when getting lock after waiting for it A message like this was sometimes shown when pushing: remote: waiting for lock on repository foo held by 'mercurial:20858' That could scare users, making them wonder whether the push actually succeeded. To mitigate that fear, issue an additional "warning" such as: got lock after 2 seconds The return value from lock.lock.lock() was unused - instead we return the delay. This also adds the first test coverage for waiting for locks.
Wed, 22 Jan 2014 15:43:21 -0600 convert: add tagmap option
Sean Farley <sean.michael.farley@gmail.com> [Wed, 22 Jan 2014 15:43:21 -0600] rev 20379
convert: add tagmap option Tests have been updated.
Wed, 22 Jan 2014 15:40:17 -0600 convert: add tagmap logic
Sean Farley <sean.michael.farley@gmail.com> [Wed, 22 Jan 2014 15:40:17 -0600] rev 20378
convert: add tagmap logic Previously, there was no way to rewrite tags on the fly while converting. Now, we add similar logic to branchmap to provide a way to map old tags to new tags. Currently, this is not enabled since there is not yet a command-line option.
Wed, 22 Jan 2014 15:31:24 -0600 convert: avoid updating tags when there is nothing new
Sean Farley <sean.michael.farley@gmail.com> [Wed, 22 Jan 2014 15:31:24 -0600] rev 20377
convert: avoid updating tags when there is nothing new Previously, when converting from a mercurial repo there would be an extraneous commit at the end of the convert process that would rewrite tags. Now, we check if there are any new tags before doing this rewriting.
Wed, 22 Jan 2014 17:38:05 -0600 convert: compare tags from all heads instead of just one
Sean Farley <sean.michael.farley@gmail.com> [Wed, 22 Jan 2014 17:38:05 -0600] rev 20376
convert: compare tags from all heads instead of just one Previously, the hg sink for puttags would just use one head for getting the old tags which would sometimes lead to tags disappearing. Now, we iterate over all heads and merge the results.
Tue, 21 Jan 2014 11:35:17 -0600 convert: add closemap option
Sean Farley <sean.michael.farley@gmail.com> [Tue, 21 Jan 2014 11:35:17 -0600] rev 20375
convert: add closemap option Tests have been updated.
Tue, 21 Jan 2014 11:20:14 -0600 convert: add parseclosemap method
Sean Farley <sean.michael.farley@gmail.com> [Tue, 21 Jan 2014 11:20:14 -0600] rev 20374
convert: add parseclosemap method This is a copy of the parsesplicemap method and will serve as a way to specify which changesets to close while converting.
Tue, 21 Jan 2014 11:34:55 -0600 convert: add mapname parameter to checkrevformat
Sean Farley <sean.michael.farley@gmail.com> [Tue, 21 Jan 2014 11:34:55 -0600] rev 20373
convert: add mapname parameter to checkrevformat Upcoming patches will add new map files so we change the calling sequence of checkrevformat so that error messages will let the user know which file has the wrong rev format.
Thu, 18 Apr 2013 10:05:50 -0500 convert: replace old sha1s in the description
Sean Farley <sean.michael.farley@gmail.com> [Thu, 18 Apr 2013 10:05:50 -0500] rev 20372
convert: replace old sha1s in the description This is a simple find-and-replace strategy for matching anything in the old description of a converted commit and, if that matched sha1 exists in the mapping, replacing it with the new sha1. In particular, this is helpful for descriptions that contain tags with messages such as, "Added tag 1.0 for commit abcde1234567" which will now be automatically converted. Tests have been updated accordingly.
Wed, 05 Feb 2014 20:22:28 -0800 template: fix shortest(node) function in pure mercurial
Durham Goode <durham@fb.com> [Wed, 05 Feb 2014 20:22:28 -0800] rev 20371
template: fix shortest(node) function in pure mercurial Pure mercurial (i.e. without c extensions) does not support partialmatch() on the revlog index, so we must fall back to use revlog._partialmatch() to handle that case for us. The tests caught this. We don't use revlog._partialmatch() for the normal case because it performs a very expensive index iteration when the string being tested fails to find a unique result via index.partialmatch(). It does this in order to filter out hidden revs in hopes of the string being unique amongst non-hidden revs. For the shortest(node) case, we'd prefer performance over worrying about hidden revs.
Fri, 17 Jan 2014 00:16:48 -0800 template: add pad function for padding output
Durham Goode <durham@fb.com> [Fri, 17 Jan 2014 00:16:48 -0800] rev 20370
template: add pad function for padding output Adds a pad template function with the following signature: pad(text, width, fillchar=' ', right=False) This uses the standard python ljust and rjust functions to produce a string that is at least a certain width. This is useful for aligning variable length strings in log output (like user names or shortest(node) output).
Fri, 17 Jan 2014 00:10:37 -0800 template: add shortest(node) template function
Durham Goode <durham@fb.com> [Fri, 17 Jan 2014 00:10:37 -0800] rev 20369
template: add shortest(node) template function Adds a '{shortest(node)}' template function that results in the shortest hex node that uniquely identifies the changeset at that time. The minimum length can be specified as an optional second argument and defaults to 4. This is useful for producing prettier log output, like so: @ durham shortestnode | 77cf template: add pad function for padding output | o durham | b183 template: add shortestnode keyword | o pierre-yves @ | 6545 backout: add a message after backout that need manual commit | | o durham manifestcache |/ 93f0 manifest cache | | o durham catperf | | c765 cat: increase perf when catting single files | | | o durham |/ 9c53 changectx: increase perf of walk function |
Wed, 05 Feb 2014 18:09:07 -0600 merge with stable
Matt Mackall <mpm@selenic.com> [Wed, 05 Feb 2014 18:09:07 -0600] rev 20368
merge with stable
Fri, 24 Jan 2014 16:57:44 -0800 revset: added intersection to baseset class
Lucas Moscovicz <lmoscovicz@fb.com> [Fri, 24 Jan 2014 16:57:44 -0800] rev 20367
revset: added intersection to baseset class Added the method __and__ to the baseset class to be able to intersect with other objects in a more efficient way.
Thu, 23 Jan 2014 14:20:58 -0800 revset: added substraction to baseset class
Lucas Moscovicz <lmoscovicz@fb.com> [Thu, 23 Jan 2014 14:20:58 -0800] rev 20366
revset: added substraction to baseset class Added __sub__ method to the baseset class to be able to compare it with other subsets more efficiently.
Wed, 22 Jan 2014 10:46:02 -0800 revset: implemented set caching for revset evaluation
Lucas Moscovicz <lmoscovicz@fb.com> [Wed, 22 Jan 2014 10:46:02 -0800] rev 20365
revset: implemented set caching for revset evaluation Added set caching to the baseset class. It lazily builds the set whenever it's needed and keeps a reference which is returned when the set is requested instead of being built again.
Tue, 21 Jan 2014 11:39:26 -0800 revset: added baseset class (still empty) to improve revset performance
Lucas Moscovicz <lmoscovicz@fb.com> [Tue, 21 Jan 2014 11:39:26 -0800] rev 20364
revset: added baseset class (still empty) to improve revset performance This class is going to be used to cache the set that is created from this list in many cases while evaluating a revset.
Mon, 03 Feb 2014 21:34:13 +0100 i18n: leave out entries which contain only rst syntax
Simon Heimberg <simohe@besonet.ch> [Mon, 03 Feb 2014 21:34:13 +0100] rev 20363
i18n: leave out entries which contain only rst syntax This prevents the danger of translating entries like the following ones: .. container:: verbose .. input:: filename1.txt
Mon, 03 Feb 2014 21:33:48 +0100 i18n: leave out entries which contain only a rst directive
Simon Heimberg <simohe@besonet.ch> [Mon, 03 Feb 2014 21:33:48 +0100] rev 20362
i18n: leave out entries which contain only a rst directive This prevents the danger of translating entries like ".. note::"
Sun, 17 Nov 2013 20:24:33 +0100 i18n: posplit removes the entry "::" from the pot file
Simon Heimberg <simohe@besonet.ch> [Sun, 17 Nov 2013 20:24:33 +0100] rev 20361
i18n: posplit removes the entry "::" from the pot file We do not gain anything by allowing to translate it.
Wed, 29 Jan 2014 16:47:00 +0100 i18n-de: update po file for showing the effect of changed posplit
Simon Heimberg <simohe@besonet.ch> [Wed, 29 Jan 2014 16:47:00 +0100] rev 20360
i18n-de: update po file for showing the effect of changed posplit
Mon, 03 Feb 2014 21:31:35 +0100 i18n: posplit writes a warning for translators before rst directives
Simon Heimberg <simohe@besonet.ch> [Mon, 03 Feb 2014 21:31:35 +0100] rev 20359
i18n: posplit writes a warning for translators before rst directives rst directives like this one have been translated: .. note:: To help the translator include a comment before such messages. An entry containing a rst directive now looks like this: #. do not translate: .. note:: #: path/to/file:75 msgid = ".. note:: to think about" msgstr = ...
Sun, 17 Nov 2013 20:16:14 +0100 Makefile: hg.pot depends on the scripts generating it
Simon Heimberg <simohe@besonet.ch> [Sun, 17 Nov 2013 20:16:14 +0100] rev 20358
Makefile: hg.pot depends on the scripts generating it This is convenient when editing this scripts. And translators will get updated translation files even if nothing else has changed.
Wed, 05 Feb 2014 17:23:35 -0600 hgweb: hack around mimetypes encoding thinko (issue4160) stable
Matt Mackall <mpm@selenic.com> [Wed, 05 Feb 2014 17:23:35 -0600] rev 20357
hgweb: hack around mimetypes encoding thinko (issue4160) A correct patch for this has existed in Python's BTS for 3 years (http://bugs.python.org/issue9291), so waiting for it to be fixed upstream is probably not a viable strategy. Instead, we add this horrible hack to workaround the issue in existing copies of Python 2.4-2.7.
Mon, 03 Feb 2014 18:09:08 -0600 merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 03 Feb 2014 18:09:08 -0600] rev 20356
merge with stable
Mon, 03 Feb 2014 14:36:20 -0800 hg: note that islocal only accepts paths pointing to repos stable
Siddharth Agarwal <sid0@fb.com> [Mon, 03 Feb 2014 14:36:20 -0800] rev 20355
hg: note that islocal only accepts paths pointing to repos hg.islocal doesn't work for paths pointing to non-repos, such as patch files.
Mon, 03 Feb 2014 14:53:44 -0800 hg.openpath: use url.islocal to tell if the path is local (issue3624) stable
Siddharth Agarwal <sid0@fb.com> [Mon, 03 Feb 2014 14:53:44 -0800] rev 20354
hg.openpath: use url.islocal to tell if the path is local (issue3624) Previously we used hg.islocal, which doesn't work for paths pointing to non-repos, such as patch files.
Mon, 03 Feb 2014 14:47:41 -0800 util.url: add an 'islocal' method stable
Siddharth Agarwal <sid0@fb.com> [Mon, 03 Feb 2014 14:47:41 -0800] rev 20353
util.url: add an 'islocal' method This returns True if the URL represents a path that can be opened locally, without needing to go through the entire URL open mechanism.
Thu, 30 Jan 2014 17:46:51 -0800 push: move bookmarks exchange in the exchange module
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 30 Jan 2014 17:46:51 -0800] rev 20352
push: move bookmarks exchange in the exchange module The bookmark exchange code was already extracted during a previous cycle. This changesets moves the extracted function in this module. This function will read and write data in the `pushoperation` object and It is preferable to have all core function collaborating through this object in the same place. This changeset is pure code movement only. Code change for direct consumption of the `pushoperation` object will come later.
Thu, 30 Jan 2014 17:08:29 -0800 push: move `newbranch` argument into the push object
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 30 Jan 2014 17:08:29 -0800] rev 20351
push: move `newbranch` argument into the push object One more step toward a more modular push function.
Thu, 30 Jan 2014 17:04:23 -0800 push: move `revs` argument into the push object
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 30 Jan 2014 17:04:23 -0800] rev 20350
push: move `revs` argument into the push object One more step toward a more modular push function.
Thu, 30 Jan 2014 16:59:25 -0800 push: move `force` argument into the push object
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 30 Jan 2014 16:59:25 -0800] rev 20349
push: move `force` argument into the push object One more step toward a more modular push function.
Thu, 30 Jan 2014 16:57:01 -0800 push: move `remote` argument in the push object
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 30 Jan 2014 16:57:01 -0800] rev 20348
push: move `remote` argument in the push object One more step toward a more modular push function.
Thu, 30 Jan 2014 16:46:30 -0800 push: ease access to current ui object
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 30 Jan 2014 16:46:30 -0800] rev 20347
push: ease access to current ui object The `pushoperation.repo.ui` attribute is very commonly used. we offer a faster way to access it directly through the push operation object.
Thu, 30 Jan 2014 16:43:11 -0800 push: introduce a pushoperation object
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 30 Jan 2014 16:43:11 -0800] rev 20346
push: introduce a pushoperation object This object will hold all data and state gathered through the push. This will allow us to split the long function into multiple small one. Smaller function will be easier to maintains and wrap. The idea is to blindly store all information related to the push in this object so that each step and extension can use them if necessary. We start by putting the `repo` variable in the object. More migration in other changeset.
Thu, 30 Jan 2014 15:34:01 -0800 exchange: extract push function from localrepo
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 30 Jan 2014 15:34:01 -0800] rev 20345
exchange: extract push function from localrepo The localrepo class if far too big. Push and pull logic will be extracted and reworked to better fit with the fact they now exchange more than plain changeset bundle. This changeset extract the push code. later changeset will slowly slice this over 200 hundred lines and 8 indentation level function into smaller saner brick. The localrepo.push method is kept for now to limit impact on user code. But it will be ultimately removed, now that the public supposed API is hold by peer.
Mon, 03 Feb 2014 16:33:21 -0600 merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 03 Feb 2014 16:33:21 -0600] rev 20344
merge with stable
Sat, 01 Feb 2014 15:20:49 -0600 Added signature for changeset 3cec5134e9c4 stable
Matt Mackall <mpm@selenic.com> [Sat, 01 Feb 2014 15:20:49 -0600] rev 20343
Added signature for changeset 3cec5134e9c4
Sat, 01 Feb 2014 15:20:35 -0600 Added tag 2.9 for changeset 3cec5134e9c4 stable
Matt Mackall <mpm@selenic.com> [Sat, 01 Feb 2014 15:20:35 -0600] rev 20342
Added tag 2.9 for changeset 3cec5134e9c4
Sat, 01 Feb 2014 14:53:52 -0600 merge with i18n stable 2.9
Matt Mackall <mpm@selenic.com> [Sat, 01 Feb 2014 14:53:52 -0600] rev 20341
merge with i18n
Fri, 31 Jan 2014 15:25:31 -0200 i18n-pt_BR: synchronized with a29f3a15bd8b stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Fri, 31 Jan 2014 15:25:31 -0200] rev 20340
i18n-pt_BR: synchronized with a29f3a15bd8b
Fri, 31 Jan 2014 16:27:26 +0900 i18n-ja: change translation to fix test-gendoc.t failure with old docutils stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 31 Jan 2014 16:27:26 +0900] rev 20339
i18n-ja: change translation to fix test-gendoc.t failure with old docutils Before this patch, "ja.po" translation causes test-gendoc.t failure with old docutils: It fails with docutils 0.7, but not with 0.11.
Thu, 30 Jan 2014 23:34:18 +0100 i18n-de: update many fuzzy entries and translate some simple ones stable
Simon Heimberg <simohe@besonet.ch> [Thu, 30 Jan 2014 23:34:18 +0100] rev 20338
i18n-de: update many fuzzy entries and translate some simple ones I mainly did the simple cases, like removing ".. note::", changing single quotes to double quotes and adapting underlining. Unhelpful msgstr in fuzzy entries are removed. (They were suggestions by the program msgmerge.)
Wed, 22 Jan 2014 16:32:53 +0100 i18n-de: updated po file with 427d672c0e4e stable
Simon Heimberg <simohe@besonet.ch> [Wed, 22 Jan 2014 16:32:53 +0100] rev 20337
i18n-de: updated po file with 427d672c0e4e Do this in a separate patch for easier reviewing of the translation patch.
Wed, 22 Jan 2014 16:32:52 +0100 i18n-de: remove locations stable
Simon Heimberg <simohe@besonet.ch> [Wed, 22 Jan 2014 16:32:52 +0100] rev 20336
i18n-de: remove locations Strip the locations by running msgcat [1] as the wiki [2] tells to do. Do this in a separate patch for getting a smaller one when updating from hg.pot. [1] msgcat --no-location -o de.po de.po [2] mercurial.selenic.com/wiki/TranslatingMercurial#Updating_a_Translation
Fri, 31 Jan 2014 15:13:15 -0800 rebase: do not crash in panic when cwd disapear in the process (issue4121) stable
Pierre-Yves David <pierre-yves.david@logilab.fr> [Fri, 31 Jan 2014 15:13:15 -0800] rev 20335
rebase: do not crash in panic when cwd disapear in the process (issue4121) Before this patch rebase crashed badly when it happend. (not abort, crash). Fix courtesy of Matt Mackall.
Fri, 31 Jan 2014 14:52:53 -0800 record: use absolute path instead of os.chdir stable
Pierre-Yves David <pierre-yves.david@logilab.fr> [Fri, 31 Jan 2014 14:52:53 -0800] rev 20334
record: use absolute path instead of os.chdir Record was changing the current directory to `repo.root` in order to be able to feed `command.commit` file name relative to this `repo.root`. This is a bit overkill and prevent an incoming fix to rebase. This would also break multi-threaded usage. Instead we just feed `command.commit` with absolute path name. works as well as before but without chdir.
Wed, 29 Jan 2014 15:16:36 +0100 help: improve description of phases.checksubrepos setting stable
Angel Ezquerra <angel.ezquerra@gmail.com> [Wed, 29 Jan 2014 15:16:36 +0100] rev 20333
help: improve description of phases.checksubrepos setting The existing description was a bit hard to understand.
Thu, 30 Jan 2014 11:52:38 -0800 clone: do not turn hidden changeset public on publishing clone (issue3935) stable
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 30 Jan 2014 11:52:38 -0800] rev 20332
clone: do not turn hidden changeset public on publishing clone (issue3935) Before this changeset local clone of a repo with hidden changeset would include then in the clone (why not) and turn them public (plain wrong). This happened because the copy clone publish by dropping the phaseroot file entirely making everything in the repo public (and therefore immune to obsolescence marker). This changeset takes the simplest fix, we deny the copy clone in the case of hidden changeset falling back to pull clone that will exclude them from the clone and therefore not turning them public. A smarter version of copy clone could be done, but I prefer to go for the simplest solution first.
Tue, 28 Jan 2014 14:00:23 +1100 convert: use branchmap to change default branch in destination (issue3469) stable
lstewart [Tue, 28 Jan 2014 14:00:23 +1100] rev 20331
convert: use branchmap to change default branch in destination (issue3469) The fix for issue2653 broke the ability to map the default branch of a source repository to a non-default named branch in the destination repository. Leave the default behaviour as is, but allow the branch name "None" to be used to map to a non-default named branch in the destination repository.
Mon, 27 Jan 2014 10:57:20 +0100 dispatch: take --hidden from individual commands into account stable
Julien Cristau <julien.cristau@logilab.fr> [Mon, 27 Jan 2014 10:57:20 +0100] rev 20330
dispatch: take --hidden from individual commands into account The command server would otherwise ignore that option, since the repo object is only created once.
Thu, 30 Jan 2014 15:03:36 +0900 doc: fix mistake about matching against directories in "pattern.txt" stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 30 Jan 2014 15:03:36 +0900] rev 20329
doc: fix mistake about matching against directories in "pattern.txt" This fixes mistake of documentation about matching against directories in "pattern.txt" introduced by 50db996bccaf. ".hgignore" treats specified "glob:" pattern as same as one specified for "-X" option: it can match against directories, too. For reference, extra regexp string appended to specified pattern for each types are listed below: see also "match.match()" and "match._regex()" for detail. ============= ========== =============== type cmdline -I/-X ============= ========== =============== glob/relglob '$' '(?:/|$)' path/relpath '(?:/|$)' '(?:/|$)' re/relre (none) (none) ============= ========== =============== Appending '$' means that the specified pattern should match against only files.
Wed, 29 Jan 2014 23:47:54 +0900 dispatch: make "_checkshellalias()" invoke "findcmd()" with "strict=True" stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 29 Jan 2014 23:47:54 +0900] rev 20328
dispatch: make "_checkshellalias()" invoke "findcmd()" with "strict=True" Before this patch, shell alias may be executed by abbreviated command name unexpectedly, even if abbreviated command name matches also against the command provided by extension. For example, "rebate" shell alias is executed by "hg reba", even if rebase extension (= "rebase" command) is enabled. In this case, "hg reba" should be aborted because of command name ambiguity. This patch makes "_checkshellalias()" invoke "cmdutil.findcmd()" always with "strict=True" (default value). If abbreviated command name matches against only one shell alias even after loading extensions, such shell alias will be executed via "_parse()". This patch doesn't remove "_checkshellalias()" invocation itself, because it may prevent shell alias from loading extensions uselessly.
Thu, 30 Jan 2014 13:56:56 -0600 rebase: abort cleanly when we encounter a damaged rebasestate (issue4155) stable
Matt Mackall <mpm@selenic.com> [Thu, 30 Jan 2014 13:56:56 -0600] rev 20327
rebase: abort cleanly when we encounter a damaged rebasestate (issue4155)
Thu, 30 Jan 2014 17:09:13 +0900 i18n-ja: change phrasing for "or" stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 30 Jan 2014 17:09:13 +0900] rev 20326
i18n-ja: change phrasing for "or"
Wed, 29 Jan 2014 22:14:41 +0900 i18n-ja: fix some quoting problems for space character usage stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 29 Jan 2014 22:14:41 +0900] rev 20325
i18n-ja: fix some quoting problems for space character usage
Wed, 29 Jan 2014 21:38:10 +0900 i18n-ja: synchronized with f493c2f67430 stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 29 Jan 2014 21:38:10 +0900] rev 20324
i18n-ja: synchronized with f493c2f67430
Wed, 22 Jan 2014 16:47:05 +0100 i18n: fix non-matching 1st line indentations stable
Simon Heimberg <simohe@besonet.ch> [Wed, 22 Jan 2014 16:47:05 +0100] rev 20323
i18n: fix non-matching 1st line indentations When generating documentation, indentation must match for getting the same view for translated messages. Often an output is generated anyway, but it can look different. When a syntactically wrong indentation change is done, runrst will fail (this is detected by test-gendoc.t). Fix the simple places. When translation knowledge is necessary, the entry is marked as fuzzy (and therefore skipped when generating translations). A translator can fix it later.
Wed, 22 Jan 2014 16:35:10 +0100 i18n: fix some non matching quotation marks in translations stable
Simon Heimberg <simohe@besonet.ch> [Wed, 22 Jan 2014 16:35:10 +0100] rev 20322
i18n: fix some non matching quotation marks in translations A test for this is in preparation.
Wed, 22 Jan 2014 16:34:36 +0100 i18n: do not translate rst syntax .. note:: stable
Simon Heimberg <simohe@besonet.ch> [Wed, 22 Jan 2014 16:34:36 +0100] rev 20321
i18n: do not translate rst syntax .. note:: .. note:: is rst syntax which must not be translated. Fix this in the translations. This is not the first time this happens, so there should be a note for the translator. A later patch will change the generation of the po files to write this automatically. A test in i18n/check-translation.py could help as well.
Mon, 27 Jan 2014 16:34:00 -0200 i18n-pt_BR: synchronized with 268a5ab5c27b stable
Leonardo Bueno Postacchini <notivago@gmail.com> [Mon, 27 Jan 2014 16:34:00 -0200] rev 20320
i18n-pt_BR: synchronized with 268a5ab5c27b
Sun, 24 Nov 2013 02:17:17 +0100 subrepo: make it possible to update to hidden subrepo revisions stable
Angel Ezquerra <angel.ezquerra@gmail.com> [Sun, 24 Nov 2013 02:17:17 +0100] rev 20319
subrepo: make it possible to update to hidden subrepo revisions When a subrepo revision was hidden it was considered missing and mercurial was unable to update to the corresponding parent revision. Instead warn the user of the problem and let it choose what to do (the default is to udpate anyway).
Sun, 24 Nov 2013 02:13:00 +0100 subrepo: remove unnecessary else clause in hgsubrepo._get stable
Angel Ezquerra <angel.ezquerra@gmail.com> [Sun, 24 Nov 2013 02:13:00 +0100] rev 20318
subrepo: remove unnecessary else clause in hgsubrepo._get This revision has no behaviour change. It simply removes an unnecessary else that follows an if / return block. The change looks big because a big chunk of code has been unindented one level.
Sun, 24 Nov 2013 02:10:14 +0100 subrepo: do not try to get hidden revisions stable
Angel Ezquerra <angel.ezquerra@gmail.com> [Sun, 24 Nov 2013 02:10:14 +0100] rev 20317
subrepo: do not try to get hidden revisions If a subrepo revision is hidden (because it was amended, for example) it does not make sense to try to "get" it from the remote subrepository. Note that in order to avoid making the change look bigger than it is, this adds an unnecessary else clause. This will be removed on a follow up patch.
Thu, 23 Jan 2014 19:08:26 +0100 parsers: fix 'unsigned expression is always true' warning (issue4142) stable
David Soria Parra <davidsp@fb.com> [Thu, 23 Jan 2014 19:08:26 +0100] rev 20316
parsers: fix 'unsigned expression is always true' warning (issue4142) On Mac OS gcc-llvm throws an -Wtautological-compare warning because flen is defined as an unsigned integer, therefore flen < 0 is always true.
Thu, 23 Jan 2014 14:06:15 -0600 wix: pull in new templates stable
Steve Borho <steve@borho.org> [Thu, 23 Jan 2014 14:06:15 -0600] rev 20315
wix: pull in new templates
Mon, 28 Jan 2013 15:16:49 +0100 phase: properly compute ancestors of --rev on push (issue3786) stable
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 28 Jan 2013 15:16:49 +0100] rev 20314
phase: properly compute ancestors of --rev on push (issue3786) Now that discovery is working on unfiltered changeset, I had a good occasion to look at that bug again. This let me realise that a trivial node vs rev comparision was the cause of this two years old bugs… Happy second birthday phases!
Thu, 23 Jan 2014 01:21:08 +0100 hgext: fix one typo in rebase stable
Simon Heimberg <simohe@besonet.ch> [Thu, 23 Jan 2014 01:21:08 +0100] rev 20313
hgext: fix one typo in rebase
Thu, 23 Jan 2014 01:29:50 +0100 templater: selecting a style with no templates does not crash (issue4140) stable
Simon Heimberg <simohe@besonet.ch> [Thu, 23 Jan 2014 01:29:50 +0100] rev 20312
templater: selecting a style with no templates does not crash (issue4140) Running `hg log --style compact` (or any other style) raised a traceback when no template directory was there. Now there is a message: Abort: style 'compact' not found (available styles: no templates found, try `hg debuginstall` for more info) There is no test because this would require to rename the template directory. But this would influence other tests running in parallel. And when the test would be aborted the wrong named directory would remain, especially a problem when running with -l.
Thu, 23 Jan 2014 14:31:05 -0600 makefile: add $ to environment variables in help message stable
Matt Mackall <mpm@selenic.com> [Thu, 23 Jan 2014 14:31:05 -0600] rev 20311
makefile: add $ to environment variables in help message
Tue, 21 Jan 2014 14:44:40 -0600 Added signature for changeset 8862469e16f9 stable
Matt Mackall <mpm@selenic.com> [Tue, 21 Jan 2014 14:44:40 -0600] rev 20310
Added signature for changeset 8862469e16f9
Tue, 21 Jan 2014 14:44:29 -0600 Added tag 2.9-rc for changeset 8862469e16f9 stable
Matt Mackall <mpm@selenic.com> [Tue, 21 Jan 2014 14:44:29 -0600] rev 20309
Added tag 2.9-rc for changeset 8862469e16f9
Tue, 21 Jan 2014 14:44:01 -0600 merge with i18n stable 2.9-rc
Matt Mackall <mpm@selenic.com> [Tue, 21 Jan 2014 14:44:01 -0600] rev 20308
merge with i18n
Mon, 20 Jan 2014 11:16:26 -0200 i18n: fix trailing '::' on translated messages stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Mon, 20 Jan 2014 11:16:26 -0200] rev 20307
i18n: fix trailing '::' on translated messages Reported by FUJIWARA Katsunori <foozy@lares.dti.ne.jp>.
Tue, 21 Jan 2014 14:30:06 -0600 merge default into stable for 2.9 code freeze stable
Matt Mackall <mpm@selenic.com> [Tue, 21 Jan 2014 14:30:06 -0600] rev 20306
merge default into stable for 2.9 code freeze
Mon, 20 Jan 2014 01:29:54 +0100 tests: stop tracking tests/gpg/random_seed
Mads Kiilerich <madski@unity3d.com> [Mon, 20 Jan 2014 01:29:54 +0100] rev 20305
tests: stop tracking tests/gpg/random_seed test-gpg.t left the random_seed file as modified. That was slightly confusing ... and it was accidentally changed in ea4996754d91. The seed is created on demand and there is no reason to track it. There is also no reason to leak state between test runs so we let the test clean up after running.
Mon, 20 Jan 2014 01:29:54 +0100 tests: 'hghave tic' also requires curses support in Python
Mads Kiilerich <madski@unity3d.com> [Mon, 20 Jan 2014 01:29:54 +0100] rev 20304
tests: 'hghave tic' also requires curses support in Python test-status-color.t would fail when using a Python without curses.
Mon, 20 Jan 2014 17:09:20 -0600 test-import-merge: mangle file in binary mode
Matt Mackall <mpm@selenic.com> [Mon, 20 Jan 2014 17:09:20 -0600] rev 20303
test-import-merge: mangle file in binary mode This should fix a test breakage on Windows.
Sun, 19 Jan 2014 22:58:33 -0600 localrepo: drop dead comment
Matt Mackall <mpm@selenic.com> [Sun, 19 Jan 2014 22:58:33 -0600] rev 20302
localrepo: drop dead comment
Thu, 16 Jan 2014 15:05:03 -0500 record: re-enable whitespace-ignoring options
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Thu, 16 Jan 2014 15:05:03 -0500] rev 20301
record: re-enable whitespace-ignoring options It looks like somewhere down the line, patch.diffopts changed the names of the options that it recognises, but record.recordfunc wasn't updated to the new names. Instead of trying to write down names at all, we now use whatever names are provided in commands.diffwsopts and pass that along to patch.diffopts, along with a couple of custom options
Thu, 16 Jan 2014 14:57:52 -0500 record: use commands.diffwsopts instead of ad-hoc diffopts
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Thu, 16 Jan 2014 14:57:52 -0500] rev 20300
record: use commands.diffwsopts instead of ad-hoc diffopts The record extension is writing its own version of commands.diffwsopts which is identical to commands.diffwsopts. Based on the principle that code duplication increases maintenance burden, this patch removes record's ad-hoc diffopts in favour of commands.diffwsopts
Sun, 17 Nov 2013 11:30:17 -0500 phases: add a formal note that hash of secret changeset may leak out
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 17 Nov 2013 11:30:17 -0500] rev 20299
phases: add a formal note that hash of secret changeset may leak out For technical reason (discovery, obsolescence marker) the hash of secret changeset are communicated outside of your repo. We clarifie that in the help so that people does not used hash of secret changeset as nuclear launch code.
Sat, 16 Nov 2013 15:54:41 -0500 largefiles: stylistic cleanup of filemerge
Mads Kiilerich <madski@unity3d.com> [Sat, 16 Nov 2013 15:54:41 -0500] rev 20298
largefiles: stylistic cleanup of filemerge
Sat, 16 Nov 2013 15:46:29 -0500 largefiles: show hashes before prompting for conflict resolution
Mads Kiilerich <madski@unity3d.com> [Sat, 16 Nov 2013 15:46:29 -0500] rev 20297
largefiles: show hashes before prompting for conflict resolution The largefile hashes are mostly an implementation detail, but they are "leaked" in several places anyway, and showing the hashes is better than not giving the user any information about the options in the prompt. The hashes are long, but it is largefile hashes and it would thus be confusing to shorten them.
Sat, 16 Nov 2013 15:46:29 -0500 largefiles: don't try to explain rename history before prompt for conflicts
Mads Kiilerich <madski@unity3d.com> [Sat, 16 Nov 2013 15:46:29 -0500] rev 20296
largefiles: don't try to explain rename history before prompt for conflicts Before it tried to explain the exact situation when merging moved largefiles. That do not happen for normal merges and is not more relevant for largefiles than for normal files. It is unneeded complexity - remove it.
Sat, 16 Nov 2013 15:46:29 -0500 largefiles: drop redundant special handling of merges of renames
Mads Kiilerich <madski@unity3d.com> [Sat, 16 Nov 2013 15:46:29 -0500] rev 20295
largefiles: drop redundant special handling of merges of renames It is unclear what cases this was supposed to cover but it do no longer seem relevant.
Sat, 16 Nov 2013 15:46:29 -0500 diff: search beyond ancestor when detecting renames
Mads Kiilerich <madski@unity3d.com> [Sat, 16 Nov 2013 15:46:29 -0500] rev 20294
diff: search beyond ancestor when detecting renames This removes an optimization that was introduced in 91eb4512edd0 but was too aggressive - as indicated by how it changed test-mq-merge.t . We are walking filelogs to find copy sources and we can thus not be sure to hit the base revision and find the renamed file there - it could also be in the first ancestor of the base ... in the filelog. We are walking the filelog and can thus not easily know when we hit the first ancestor of the base revision and which filename to look for there. Instead, we use _findlimit like mergecopies do: The lower bound for how far we have to go is found from the lowest changelog revision that is an ancestor of only one of the compared revisions. Any filelog ancestor with a revision number lower than that revision will be the ancestor of both compared revisions, and there is thus no reason to go further back than that.
Tue, 14 Jan 2014 13:38:16 -0800 cat: increase perf when catting single files
Durham Goode <durham@fb.com> [Tue, 14 Jan 2014 13:38:16 -0800] rev 20293
cat: increase perf when catting single files Special case the single file case in hg cat. This allows us to avoid parsing the manifest, which shaves 15% off hg cat perf. This is worth it, since automation often uses hg cat for retrieving single files.
Tue, 14 Jan 2014 13:49:19 -0800 changectx: increase perf of walk function
Durham Goode <durham@fb.com> [Tue, 14 Jan 2014 13:49:19 -0800] rev 20292
changectx: increase perf of walk function When running 'hg cat -r . <file>' it was doing an expensive ctx.walk(m) which applied the regex to every file in the manifest. This changes changectx.walk to iterate over just the files in the regex, if no other patterns are specified. This cuts hg cat time by 50% in our repo and probably benefits a few other commands as well.
Wed, 15 Jan 2014 16:46:20 -0800 url: added authuri when login information is requested (issue3209)
Lucas Moscovicz <lmoscovicz@fb.com> [Wed, 15 Jan 2014 16:46:20 -0800] rev 20291
url: added authuri when login information is requested (issue3209) When users are using a revset they can get multiple password prompts. This prompts have no extra information about which password is being requested so I added the authuri to the prompt to make it recognizable. As in: $ hg log -r "outgoing('https://bitbucket.org/mg/test') - outgoing('https://bitbucket.org/nesneros/test')" http authorization required realm: Bitbucket.org HTTP user: interrupted! I changed it to describe the url when prompting for password. As in: $ hg log -r "outgoing('https://bitbucket.org/mg/test') - outgoing('https://bitbucket.org/nesneros/test')" http authorization required for https://bitbucket.org/mg/test realm: Bitbucket.org HTTP user: interrupted!
Fri, 17 Jan 2014 23:55:11 +0900 doc: add description about pattern matching against directories
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 17 Jan 2014 23:55:11 +0900] rev 20290
doc: add description about pattern matching against directories Before this patch, there is no explicit description about pattern matching against directories, even though users may understand it from "plain examples" in "hg help patterns". This patch adds description about pattern matching against directories.
Fri, 17 Jan 2014 23:55:11 +0900 revset: add explanation about the pattern without explicit kind
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 17 Jan 2014 23:55:11 +0900] rev 20289
revset: add explanation about the pattern without explicit kind Before this patch, online help of "adds()", "contains()", "filelog()", "file()", "modifies()" and "removes()" predicates doesn't explain about how the pattern without explicit kind like "glob:" is treated, even though each predicates treat it differently: - as "relpath:" by "adds()", "modifies()" and "removes()" - as "glob:" by "file()" - as special by "contains()" and "filelog()" - be relative to cwd, and - match against a file exactly ("relpath:" matches also against a directory) This may confuse users. This patch adds explanation about the pattern without explicit kind to these predicates.
Fri, 17 Jan 2014 23:55:03 +0900 revset: use "canonpath()" for "filelog()" pattern without explicit kind
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 17 Jan 2014 23:55:03 +0900] rev 20288
revset: use "canonpath()" for "filelog()" pattern without explicit kind Before this patch, revset predicate "filelog()" uses "match.files()" to get filename also for the pattern without explicit kind. But in such case, only canonicalization of relative path is required, and other initializations of "match" object including regexp compilation are meaningless. This patch uses "pathutil.canonpath()" directly for "filelog()" pattern without explicit kind like "glob:", for efficiency. This patch also does below as a part of introducing "canonpath()": - move location of "matchmod.match()" invocation, because "m" is no more used in "if not matchmod.patkind(pat)" code path - omit passing "default" argument to "matchmod.match()", because "pat" should have explicit kind of pattern in this code path
Fri, 17 Jan 2014 23:42:12 +0900 revset: avoid loop for "match.files()" having always one element for efficiency
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 17 Jan 2014 23:42:12 +0900] rev 20287
revset: avoid loop for "match.files()" having always one element for efficiency This patch avoids the loop for "match.files()" having always one element in revset predicate "filelog()" for efficiency: "match" object "m" is constructed with "[pat]" as "patterns" argument.
Fri, 17 Jan 2014 23:42:12 +0900 revset: make default kind of pattern for "contains()" rooted at cwd
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 17 Jan 2014 23:42:12 +0900] rev 20286
revset: make default kind of pattern for "contains()" rooted at cwd Before this patch, default kind of pattern for revset predicate "contains()" is treated as the exact file path rooted at the root of the repository. This decreases usability, because: - all other predicates taking pattern argument (also "filelog()") treat such pattern as the path rooted at the current working directory - "contains()" doesn't describe this difference in its help - this difference may confuse users for example, this prevents revset aliases from sharing same argument between "contains()" and other predicates This patch makes default kind of pattern for revset predicate "contains()" be rooted at the current working directory. This patch uses "pathutil.canonpath()" instead of creating "match" object for efficiency.
Fri, 17 Jan 2014 23:42:12 +0900 revset: narrow scope of the variable referred only in specific code path
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 17 Jan 2014 23:42:12 +0900] rev 20285
revset: narrow scope of the variable referred only in specific code path This patch narrows scope of the variable "m" in the function for revset predicate "contains()", because it is referred only in "else" code path of "if not matchmod.patkind(pat)" examination.
Fri, 17 Jan 2014 12:46:29 +0100 tests: fix test-run-tests.py on OS X
Simon Heimberg <simohe@besonet.ch> [Fri, 17 Jan 2014 12:46:29 +0100] rev 20284
tests: fix test-run-tests.py on OS X Do the same hack as in test-doctests.py to let the test pass on OS X.
Fri, 17 Jan 2014 19:46:23 +0100 tests: test-debugcommands.t also matches stack trace on python 2.4
Simon Heimberg <simohe@besonet.ch> [Fri, 17 Jan 2014 19:46:23 +0100] rev 20283
tests: test-debugcommands.t also matches stack trace on python 2.4 Some versions of python 2.4 write ? instead of <module>. Ignore this detail by a glob. This fixes a failure spotted on buildbot, existing since this test lines were introduced 47d0843647d1.
Wed, 15 Jan 2014 17:55:13 -0600 commands: use bookmarks.validdest instead of duplicating logic
Sean Farley <sean.michael.farley@gmail.com> [Wed, 15 Jan 2014 17:55:13 -0600] rev 20282
commands: use bookmarks.validdest instead of duplicating logic Now that bookmarks.py has grown a validdest method that even handles successor changesets, we use that instead of duplicating the logic in commands.py
Wed, 15 Jan 2014 17:48:48 -0600 update: consider successor changesets when moving active bookmark
Sean Farley <sean.michael.farley@gmail.com> [Wed, 15 Jan 2014 17:48:48 -0600] rev 20281
update: consider successor changesets when moving active bookmark Previously, when an obsolete changeset was bookmarked, successor changesets were not considered when moving the bookmark forward. Now that a bare update will move to the tip most of the successor changesets, we also update the bookmark logic to allow the bookmark to move with this update. Tests have been updated and keep issue4015 covered as well.
Wed, 15 Jan 2014 16:41:18 -0600 merge: consider successor changesets for a bare update
Sean Farley <sean.michael.farley@gmail.com> [Wed, 15 Jan 2014 16:41:18 -0600] rev 20280
merge: consider successor changesets for a bare update Previously, a bare update would ignore any successor changesets thus potentially leaving you on an obsolete head. This happens commonly when there is an old bookmark that hasn't been moved forward which is the motivating reason for this patch series. Now, we will check for successor changesets if two conditions hold: 1) we are doing a bare update 2) *and* we are currently on an obsolete head. If we are in this situation, then we calculate the branchtip of the successor set and update to that changeset. Tests coverage has been added.
Wed, 06 Nov 2013 17:02:07 -0600 merge: refactor initialization of variables in update
Sean Farley <sean.michael.farley@gmail.com> [Wed, 06 Nov 2013 17:02:07 -0600] rev 20279
merge: refactor initialization of variables in update There is no code change here but this helps prepare for future commits that will fix a bare update with obsolete markers.
Wed, 06 Nov 2013 10:26:25 -0600 merge: update comment for future devs
Sean Farley <sean.michael.farley@gmail.com> [Wed, 06 Nov 2013 10:26:25 -0600] rev 20278
merge: update comment for future devs
Wed, 15 Jan 2014 18:14:12 -0600 obsolete: clarify documentation for succcessorssets
Sean Farley <sean.michael.farley@gmail.com> [Wed, 15 Jan 2014 18:14:12 -0600] rev 20277
obsolete: clarify documentation for succcessorssets
Wed, 08 Jan 2014 17:23:26 -0800 backout: add a message after backout that need manual commit
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 08 Jan 2014 17:23:26 -0800] rev 20276
backout: add a message after backout that need manual commit In some case Backout silently succeeded to back out but left all the change uncommitted. This may be confusing for user so this changeset add a note reminding to commit. Other backout case already actively informs the user about created commit.
Wed, 08 Jan 2014 14:53:46 -0800 backout: avoid update on simple case.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 08 Jan 2014 14:53:46 -0800] rev 20275
backout: avoid update on simple case. Before the changeset the backout process was: 1) go to <target> 2) revert to <target> parent 3) update back to changeset we came from The two update steps can takes a very long time to move back and forth unrelated file change between <target> and current working directory. The new process is just merging current working directory with the parent of <target> using <target> as ancestor. This give the very same result but skip the two updates. On big repo with a lot of files and changes that save a lots of time (x20 for one week window). The "merge" version (hg backout --merge) is still done with upgrades. We could imagine using in memory commit to speed it up but this is another fish.
Thu, 16 Jan 2014 12:08:57 +0100 run-tests: print more information on unnecessary glob matching
Simon Heimberg <simohe@besonet.ch> [Thu, 16 Jan 2014 12:08:57 +0100] rev 20274
run-tests: print more information on unnecessary glob matching Extend the message with the test name and the approximate line number. (The line number is the one of the command producing the output.) Finding the line to fix is easier now. old message: ...... Info, unnecessary glob: at a/b/c (glob) .. new message: ...... Info, unnecessary glob in test-example.t (after line 9): at a/b/c (glob) .. The test result is still pass as before.
Thu, 16 Jan 2014 12:08:29 +0100 run-tests: suggest to append glob when only path sep does not match
Simon Heimberg <simohe@besonet.ch> [Thu, 16 Jan 2014 12:08:29 +0100] rev 20273
run-tests: suggest to append glob when only path sep does not match When the line does not match because of \ instead of / (on windows), append (glob) in the expected output. This allows to rename test-bla.t.err to test-bla.t for getting a correct output. This worked for other failures like missing (esc), but not here. Output example (only +- lines of diff): Before: - path/with/local/sep + path\\with\\local/sep Now: - path/with/local/sep + path/with/local/sep (glob)
Thu, 16 Jan 2014 12:06:49 +0100 run-tests: test each line matching function on its own
Simon Heimberg <simohe@besonet.ch> [Thu, 16 Jan 2014 12:06:49 +0100] rev 20272
run-tests: test each line matching function on its own This has several advantages. * Each match function can return some information to the caller runone (used in the next patch). * It is not checked that the line ends in " (glob)" when rematch() returns false. * And it looks more readable.
Thu, 16 Jan 2014 19:07:18 +0100 tests: new test for line matching functions in run-tests
Simon Heimberg <simohe@besonet.ch> [Thu, 16 Jan 2014 19:07:18 +0100] rev 20271
tests: new test for line matching functions in run-tests Test for failing matches and warnings. (The existing test-run-tests.t can not do both by design.) And simulate matching on other os.
Wed, 08 Jan 2014 17:15:22 -0800 test-backout: add multiple summary calls to monitor result wc
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 08 Jan 2014 17:15:22 -0800] rev 20270
test-backout: add multiple summary calls to monitor result wc The main goal is to monitor that working directory parent are correct after backout. This will be useful the next changeset introducting magic merge usage.
Mon, 02 Dec 2013 00:50:30 +0900 transplant: use "ui.extractchoices()" to show the list of available responses
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 02 Dec 2013 00:50:30 +0900] rev 20269
transplant: use "ui.extractchoices()" to show the list of available responses Before this patch, transplant extension shows the list of available responses by specific string, even though the prompt string passed to "ui.promptchoice()" has enough (maybe i18n-ed) information. This patch uses "ui.extractchoices()" to show the list of available responses.
Mon, 02 Dec 2013 00:50:30 +0900 transplant: use "ui.promptchoice()" for interactive transplant
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 02 Dec 2013 00:50:30 +0900] rev 20268
transplant: use "ui.promptchoice()" for interactive transplant Before this patch, transplant extension uses "ui.prompt()" for interactive transplant, and has to check whether user response returned by "ui.prompt()" is valid or not in own code. In addition to it, transplant extension uses response characters (e.g. "y", "n", and so on) directly in own code, and this disallows to use another response characters by translation, even though the help shown by '?' typing is translatable. This patch uses "ui.promptchoice()" instead of "ui.prompt()" to resolve problems above.
Mon, 02 Dec 2013 00:50:30 +0900 transplant: add test for interactive transplant
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 02 Dec 2013 00:50:30 +0900] rev 20267
transplant: add test for interactive transplant
Mon, 02 Dec 2013 00:50:30 +0900 record: use "ui.extractchoices()" to get the list of available responses
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 02 Dec 2013 00:50:30 +0900] rev 20266
record: use "ui.extractchoices()" to get the list of available responses Before this patch, record extension gets the list of available responses from online help document of "hg record" in the tricky way, even though the value passed to "ui.promptchoice()" has enough (maybe i18n-ed) information. This patch uses "ui.extractchoices()" to get the list of available responses.
Mon, 02 Dec 2013 00:50:29 +0900 ui: add "extractchoices()" to share the logic to extract choices from prompt
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 02 Dec 2013 00:50:29 +0900] rev 20265
ui: add "extractchoices()" to share the logic to extract choices from prompt
Mon, 06 Jan 2014 15:19:31 -0800 branchmap: use set for update code
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 06 Jan 2014 15:19:31 -0800] rev 20264
branchmap: use set for update code We are doing membership test and substraction. new code is marginally faster.
Mon, 06 Jan 2014 14:26:49 -0800 branchmap: simplify update code
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 06 Jan 2014 14:26:49 -0800] rev 20263
branchmap: simplify update code We drop iterrevs which are not needed anymore. The know head are never a descendant of the updated set. It was possible with the old strip code. This simplification make the code easier to read an update.
Fri, 03 Jan 2014 16:44:23 -0800 branchmap: stop useless rev -> node -> rev round trip
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 03 Jan 2014 16:44:23 -0800] rev 20262
branchmap: stop useless rev -> node -> rev round trip We never use the node of new revisions unless in the very specific case of closed heads. So we can just use the revision number. So give another handfull of percent speedup.
Tue, 15 Jan 2013 20:04:12 +0100 branchmap: stop membership test in update logic
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 15 Jan 2013 20:04:12 +0100] rev 20261
branchmap: stop membership test in update logic Now that no user try to update the cache on a truncated repo we can drop the extra lookup. Give an handfull percent speedup on big branchmap update.
Fri, 03 Jan 2014 17:06:07 -0800 branchmap: remove silly line break
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 03 Jan 2014 17:06:07 -0800] rev 20260
branchmap: remove silly line break The line fit in 80 character limit without it. It is even shorter without it.
Thu, 16 Jan 2014 11:26:54 +0100 run-tests: set the thread name to the test name for info on error
Simon Heimberg <simohe@besonet.ch> [Thu, 16 Jan 2014 11:26:54 +0100] rev 20259
run-tests: set the thread name to the test name for info on error This does not happen when running normal. But when fiddling around with the test infrastructure, this helps a lot. Old traceback messge Exception in thread Thread-7: Traceback (most recent call last): ... new traceback message Exception in thread test-something.t: Traceback (most recent call last): ...
Thu, 16 Jan 2014 18:55:35 +0100 run-tests: report tests as failed when run-test raises an error
Simon Heimberg <simohe@besonet.ch> [Thu, 16 Jan 2014 18:55:35 +0100] rev 20258
run-tests: report tests as failed when run-test raises an error Before no message was returned to the main thread. No result was registered and no new thread was started. This does not happen when running normal. But when fiddling around with the test infrastructure, this helps a lot.
Wed, 08 Jan 2014 00:47:45 +0900 hgweb: infinite scroll support for coal style
Takumi IINO <trot.thunder@gmail.com> [Wed, 08 Jan 2014 00:47:45 +0900] rev 20257
hgweb: infinite scroll support for coal style
Thu, 16 Jan 2014 09:23:31 -0500 test-hgweb-*: output change fixes from b1d65cb8
Augie Fackler <raf@durin42.com> [Thu, 16 Jan 2014 09:23:31 -0500] rev 20256
test-hgweb-*: output change fixes from b1d65cb8
Wed, 08 Jan 2014 00:47:44 +0900 hgweb: infinite scroll support for monoblue style
Takumi IINO <trot.thunder@gmail.com> [Wed, 08 Jan 2014 00:47:44 +0900] rev 20255
hgweb: infinite scroll support for monoblue style
Wed, 08 Jan 2014 00:47:43 +0900 hgweb: infinite scroll support for gitweb style
Takumi IINO <trot.thunder@gmail.com> [Wed, 08 Jan 2014 00:47:43 +0900] rev 20254
hgweb: infinite scroll support for gitweb style
Wed, 08 Jan 2014 00:35:03 +0900 hgweb: avoid invalid infinity scroll request when overwritten web.style
Takumi IINO <trot.thunder@gmail.com> [Wed, 08 Jan 2014 00:35:03 +0900] rev 20253
hgweb: avoid invalid infinity scroll request when overwritten web.style Infinity scroll is broken when you override the web.style in the following ways: $ hg --config='web.style=gitweb' serve $ open http://localhost:8080/shortlog?style=paper ajaxScrollInit should use http://localhost:8080/shortlog/%next%?style=paper. however, http://localhost:8080/shortlog/%next% is used actually. It is missing style parameter. This patch add style parameter to request url.
Wed, 08 Jan 2014 00:26:55 +0900 hgweb: fix regexp for other styles like monoblue
Takumi IINO <trot.thunder@gmail.com> [Wed, 08 Jan 2014 00:26:55 +0900] rev 20252
hgweb: fix regexp for other styles like monoblue Some styles have indentation.
Sat, 16 Nov 2013 15:46:29 -0500 tests: introduce test for rebasing on named branches with closed heads
Mads Kiilerich <madski@unity3d.com> [Sat, 16 Nov 2013 15:46:29 -0500] rev 20251
tests: introduce test for rebasing on named branches with closed heads
Sat, 16 Nov 2013 15:46:29 -0500 rebase: remove old code for handling empty rebaseset
Mads Kiilerich <madski@unity3d.com> [Sat, 16 Nov 2013 15:46:29 -0500] rev 20250
rebase: remove old code for handling empty rebaseset
Sun, 17 Nov 2013 18:21:58 -0500 rebase: improve error message for --base being empty or causing emptiness
Mads Kiilerich <madski@unity3d.com> [Sun, 17 Nov 2013 18:21:58 -0500] rev 20249
rebase: improve error message for --base being empty or causing emptiness Before it just said 'nothing to rebase'. Now 'if "base" is an empty set: abort: empty "base" revision set - can't compute rebase set If the set of changesets to rebase can't be found from "base", it will fail as before but with more explanation of what the problem was. The name of the "base" option is not obvious - it is more like "samples identifying the branch to rebase". The error messages for problems with the specified "base" value will use that term and might thus also not be obvious, but at least they are consistent with the option name. The name "base" will not be used if the base only was specified implicitly as the working directory parent.
Sun, 17 Nov 2013 18:21:58 -0500 rebase: improve error message for empty --source set
Mads Kiilerich <madski@unity3d.com> [Sun, 17 Nov 2013 18:21:58 -0500] rev 20248
rebase: improve error message for empty --source set Before, it just said 'nothing to rebase' in this case. Now, it aborts mentioning the reason: 'empty "source" revision set'. Specifying revisions that cannot be rebased is a 'soft' error, but specifying an empty set deserves an abort that explains exactly what the problem is.
Sat, 16 Nov 2013 15:46:29 -0500 rebase: improve error message for empty --rev set
Mads Kiilerich <madski@unity3d.com> [Sat, 16 Nov 2013 15:46:29 -0500] rev 20247
rebase: improve error message for empty --rev set Before, it just said 'nothing to rebase' in this case. Now, it aborts mentioning the reason: 'empty "rev" revision set'. Specifying revisions that cannot be rebased is a 'soft' error, but specifying an empty set deserves an abort that explains exactly what the problem is.
Sun, 17 Nov 2013 18:21:58 -0500 rebase: test for empty dest revision
Mads Kiilerich <madski@unity3d.com> [Sun, 17 Nov 2013 18:21:58 -0500] rev 20246
rebase: test for empty dest revision
Thu, 21 Nov 2013 15:17:18 -0500 help: branch names primarily denote the tipmost unclosed branch head
Mads Kiilerich <madski@unity3d.com> [Thu, 21 Nov 2013 15:17:18 -0500] rev 20245
help: branch names primarily denote the tipmost unclosed branch head Was the behavior correct and the description wrong so it should be updated as in this patch? Or should the code work as the documentation says? Both ways could make some sense ... but none of them are obvious in all cases. One place where it currently cause problems is when the current revision has another branch head that is closer to tip but closed. 'hg rebase' refuses to rebase to that as it only see the tip-most unclosed branch head which is the current revision. /me kind of likes named branches, but no so much how branch closing works ...
Sun, 12 Jan 2014 23:28:21 +0100 util: introduce util.debugstacktrace for showing a stack trace without crashing
Mads Kiilerich <madski@unity3d.com> [Sun, 12 Jan 2014 23:28:21 +0100] rev 20244
util: introduce util.debugstacktrace for showing a stack trace without crashing This is often very handy when hacking/debugging. Calling util.debugstacktrace('hey') from a place in hg will give something like: hey at: ./hg:38 in <module> /home/user/hgsrc/mercurial/dispatch.py:28 in run /home/user/hgsrc/mercurial/dispatch.py:65 in dispatch /home/user/hgsrc/mercurial/dispatch.py:88 in _runcatch /home/user/hgsrc/mercurial/dispatch.py:740 in _dispatch /home/user/hgsrc/mercurial/dispatch.py:514 in runcommand /home/user/hgsrc/mercurial/dispatch.py:830 in _runcommand /home/user/hgsrc/mercurial/dispatch.py:801 in checkargs /home/user/hgsrc/mercurial/dispatch.py:737 in <lambda> /home/user/hgsrc/mercurial/util.py:472 in check ...
Tue, 07 Jan 2014 22:29:57 +0100 check-code: print debug output when an ignore pattern matches
Simon Heimberg <simohe@besonet.ch> [Tue, 07 Jan 2014 22:29:57 +0100] rev 20243
check-code: print debug output when an ignore pattern matches
Tue, 07 Jan 2014 22:29:51 +0100 check-code: drop now unused check-code-ignore
Simon Heimberg <simohe@besonet.ch> [Tue, 07 Jan 2014 22:29:51 +0100] rev 20242
check-code: drop now unused check-code-ignore Using check-code-ignore to skip the failures on a line has several disadvantages: * It skips all check-code failures on a line, not only the one it was created for. * It does not give any hint for which rule it was added, making it difficult to see when it is not needed anymore. So drop this pragma in favor of better alternatives promoted before.
Tue, 07 Jan 2014 22:29:44 +0100 check-code: explain what to do when a check-code rule mismatches
Simon Heimberg <simohe@besonet.ch> [Tue, 07 Jan 2014 22:29:44 +0100] rev 20241
check-code: explain what to do when a check-code rule mismatches In the past several approaches were used when a check-code rule triggered without a good reason. Not all of them looked nice, some were even wrong. Suggest some good practices which should be used instead.
Tue, 07 Jan 2014 22:29:39 +0100 cleanup: Remove the only ever used skip-check-code pragma
Simon Heimberg <simohe@besonet.ch> [Tue, 07 Jan 2014 22:29:39 +0100] rev 20240
cleanup: Remove the only ever used skip-check-code pragma Use the work-around suggested by the rule instead
Tue, 07 Jan 2014 22:29:15 +0100 check-code: always report when a file is skipped by "no-check-code"
Simon Heimberg <simohe@besonet.ch> [Tue, 07 Jan 2014 22:29:15 +0100] rev 20239
check-code: always report when a file is skipped by "no-check-code" Skipping an entire file generally from checking is an important event, so report it always. Do not tell the check name because skipping does not depend on it. Directly skip the entire file instead of checking more patterns and skip again. The pragma no-check-code was introduced by accident in the past. (Fixed in e033a7d444ac and ee07f9d142c9.) This now is prevented because the files to skip have to be listed in the test output of test-check-code-hg.t.
Tue, 07 Jan 2014 22:28:45 +0100 check-code: do not skip entire file, skip only one match instead
Simon Heimberg <simohe@besonet.ch> [Tue, 07 Jan 2014 22:28:45 +0100] rev 20238
check-code: do not skip entire file, skip only one match instead Skipping of the entire file has been introduced in bc3b48b0f5c8.
Sat, 16 Nov 2013 15:46:29 -0500 bisect: --command without --noupdate should flag the parent rev it tested
Mads Kiilerich <madski@unity3d.com> [Sat, 16 Nov 2013 15:46:29 -0500] rev 20237
bisect: --command without --noupdate should flag the parent rev it tested 14913fcb30c6 not only introduced the 'bisect(current)' revset predicate, it also changed how the 'current' revision is used in combination with --command. The new behaviour might be ok for --noupdate where the working directory and its revision shouldn't be used, but it also did that when --command is used to run a command on the currently checked out revision then it could register the test result on the wrong revision. An example: Before, bisect with --command could use the wrong revision when recording the test result: $ hg up -qr 0 $ hg bisect --command "python \"$TESTTMP/script.py\" and some parameters" changeset 31:58c80a7c8a40: bad abort: inconsistent state, 31:58c80a7c8a40 is good and bad Now it works as before and as expected and uses the working directory revision for the --command result: $ hg up -qr 0 $ hg bisect --command "python \"$TESTTMP/script.py\" and some parameters" changeset 0:b99c7b9c8e11: bad ...
Sat, 16 Nov 2013 15:46:29 -0500 context: drop caching 'copies' method
Mads Kiilerich <madski@unity3d.com> [Sat, 16 Nov 2013 15:46:29 -0500] rev 20236
context: drop caching 'copies' method The 'copies' method has no test coverage and calls copies.pathcopies with an incorrect number of parameters and is thus (fortunately) not used. Kill it.
Tue, 19 Nov 2013 12:43:29 -0800 commands.bookmarks: move hexfn to inside list block
Siddharth Agarwal <sid0@fb.com> [Tue, 19 Nov 2013 12:43:29 -0800] rev 20235
commands.bookmarks: move hexfn to inside list block This isn't used outside this block, nor is it expected to be.
Tue, 19 Nov 2013 12:42:17 -0800 commands.bookmarks: move cur initialization to inside wlock
Siddharth Agarwal <sid0@fb.com> [Tue, 19 Nov 2013 12:42:17 -0800] rev 20234
commands.bookmarks: move cur initialization to inside wlock This is more correct because we now fetch '.' while nothing else can interfere with it.
Thu, 21 Nov 2013 17:11:04 -0800 commands.bookmarks: pass cur in explicitly to checkconflict
Siddharth Agarwal <sid0@fb.com> [Thu, 21 Nov 2013 17:11:04 -0800] rev 20233
commands.bookmarks: pass cur in explicitly to checkconflict cur will be moved inside the wlock in a future patch, so we need to pass it into checkconflict explicitly.
Tue, 19 Nov 2013 12:33:14 -0800 commands.bookmarks: hold wlock for write operations
Siddharth Agarwal <sid0@fb.com> [Tue, 19 Nov 2013 12:33:14 -0800] rev 20232
commands.bookmarks: hold wlock for write operations Any invocations of bookmarks other than a plain 'hg bookmarks' will likely cause a write to the bookmark store. These should be guarded by the wlock. The repo._bookmarks read should be similarly guarded by the wlock if we're going to be subsequently writing to it.
Tue, 19 Nov 2013 11:47:30 -0800 commands.bookmarks: separate out 'no bookmarks set' status messages
Siddharth Agarwal <sid0@fb.com> [Tue, 19 Nov 2013 11:47:30 -0800] rev 20231
commands.bookmarks: separate out 'no bookmarks set' status messages Upcoming patches will acquire the wlock for write operations, such as make inactive, but not read-only ones, such as list bookmarks. Separate out the status messages so that the code paths can be separated.
Sat, 16 Nov 2013 19:56:53 -0500 tests: test-convert-cvs-synthetic.t requires cvs 1.12
Mads Kiilerich <madski@unity3d.com> [Sat, 16 Nov 2013 19:56:53 -0500] rev 20230
tests: test-convert-cvs-synthetic.t requires cvs 1.12 9589227657bc introduced hghave cvs112 10 months ago. Let's assume it has stabilized so much that we can start using it now.
Mon, 13 Jan 2014 14:33:39 -0600 merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 13 Jan 2014 14:33:39 -0600] rev 20229
merge with stable
Wed, 08 Jan 2014 12:25:00 -0800 i18n-de: rename noun "entfernt" to "Gegenseite" stable
David Soria Parra <davidsp@fb.com> [Wed, 08 Jan 2014 12:25:00 -0800] rev 20228
i18n-de: rename noun "entfernt" to "Gegenseite" The German translation for "remote" as "entfernt" can be misleading in situations where remote is used as a noun. "entfernt" is not a noun and can also mean "removed". To clarify this we rename "remote" to "Gegenseite" when used as a noun.
Fri, 10 Jan 2014 16:26:11 -0600 doc: bump copyright year
Kevin Bullock <kbullock@ringworld.org> [Fri, 10 Jan 2014 16:26:11 -0600] rev 20227
doc: bump copyright year
Fri, 10 Jan 2014 17:29:16 -0600 localrepo: drop unused variable
Matt Mackall <mpm@selenic.com> [Fri, 10 Jan 2014 17:29:16 -0600] rev 20226
localrepo: drop unused variable
Fri, 15 Nov 2013 23:28:43 -0500 discovery: stop using nodemap for membership testing
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 15 Nov 2013 23:28:43 -0500] rev 20225
discovery: stop using nodemap for membership testing Nodemap is not aware of filtering so we need to ask the changelog itself if a node is known. This is probably a bit slower but such check does not dominated discovery time. This is necessary if we want to run discovery on filtered repo.
Fri, 15 Nov 2013 23:27:39 -0500 discovery: enforce filtering into revlogbaseddag._internalizeall
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 15 Nov 2013 23:27:39 -0500] rev 20224
discovery: enforce filtering into revlogbaseddag._internalizeall One more step toward discovery running on filtered repo.
Fri, 15 Nov 2013 23:27:15 -0500 discovery: make revlogdag work on filtered repo
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 15 Nov 2013 23:27:15 -0500] rev 20223
discovery: make revlogdag work on filtered repo The revlogdag class is a core part of discovery. We need its initialisation to exclude revision filtered out.
Sat, 16 Nov 2013 11:53:44 -0500 pull: run findcommon incoming on unfiltered repo
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 16 Nov 2013 11:53:44 -0500] rev 20222
pull: run findcommon incoming on unfiltered repo The discovery is not yet ready for filtered repo. Pull was using filtered for its discovery which is wrong. It worked by dumb luck because discovery mainly use funtion that does not respect the filtering. Trying to makes discovery work on filtered repo revealed this bug.
Tue, 05 Nov 2013 18:37:44 +0100 push: more robust check for bundle fast path
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 05 Nov 2013 18:37:44 +0100] rev 20221
push: more robust check for bundle fast path When all changesets in the local repo are either being pushed or remotly known, we can take a fast path when bundling changeset because we are certain all local deltas are computed againts base known remotely. So we have a check to detect this situation, when we did a bare push and nothing was excluded. In a coming refactoring, the discovery will run on filtered view and the content of `outgoing.excluded` will just include unserved (secret) changeset not filtered by the repoview used to call push (usually "visible"). So we need to check if there is both no excluded changeset and nothing filtered by the current repoview.
Sat, 16 Nov 2013 15:36:50 -0500 pull: fix post-pull common computation
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 16 Nov 2013 15:36:50 -0500] rev 20220
pull: fix post-pull common computation Before that changes, pulled revision that happend to be already known locally (so, not actually added) was not taken into account when computing the new common set between local and remote. It appears that we already know the heads of the pulled set. It is in the `rheads` variable, so we are just using it and everything is works fine. We are dropping the, now useless, computation of `added` set in the process.
Mon, 25 Nov 2013 22:00:46 +0100 run-tests: better check for python version
Simon Heimberg <simohe@besonet.ch> [Mon, 25 Nov 2013 22:00:46 +0100] rev 20219
run-tests: better check for python version Compare version by using pythons tuple comparison. So we do not match on python 3.0 or newer.
Mon, 23 Dec 2013 14:14:31 +0100 templatekw: allow tagtypes other than global in getlatesttags
Andrew Shadura <andrew@shadura.me> [Mon, 23 Dec 2013 14:14:31 +0100] rev 20218
templatekw: allow tagtypes other than global in getlatesttags hg-git uses tagtype 'git', for example, so it's better to check for tagtype != 'local', not strictly for 'global'
Tue, 26 Nov 2013 12:58:27 -0800 revlog: move file writing to a separate function
Durham Goode <durham@fb.com> [Tue, 26 Nov 2013 12:58:27 -0800] rev 20217
revlog: move file writing to a separate function Moves the code that actually writes to a file to a separate function in revlog.py. This allows extensions to intercept and use the data being written to disk. For example, an extension might want to replicate these writes elsewhere. When cloning the Mercurial repo on /dev/shm with --pull, I see about a 0.3% perf change. It goes from 28.2 to 28.3 seconds.
Sun, 24 Nov 2013 17:33:39 -0600 discovery: prefer loop to double-for list comprehension in changegroupsubset
Kevin Bullock <kbullock@ringworld.org> [Sun, 24 Nov 2013 17:33:39 -0600] rev 20216
discovery: prefer loop to double-for list comprehension in changegroupsubset The double-for form of list comprehensions gets particularly unreadable when you throw in an 'if' condition. This expands the only remaining instance of the double-for syntax in our codebase into a loop.
Thu, 02 Jan 2014 16:32:51 -0600 merge with stable
Matt Mackall <mpm@selenic.com> [Thu, 02 Jan 2014 16:32:51 -0600] rev 20215
merge with stable
Thu, 02 Jan 2014 15:56:30 -0600 merge with stable
Matt Mackall <mpm@selenic.com> [Thu, 02 Jan 2014 15:56:30 -0600] rev 20214
merge with stable
Wed, 01 Jan 2014 21:46:45 -0600 Added signature for changeset ca387377df7a stable
Matt Mackall <mpm@selenic.com> [Wed, 01 Jan 2014 21:46:45 -0600] rev 20213
Added signature for changeset ca387377df7a
Wed, 01 Jan 2014 21:46:41 -0600 Added tag 2.8.2 for changeset ca387377df7a stable
Matt Mackall <mpm@selenic.com> [Wed, 01 Jan 2014 21:46:41 -0600] rev 20212
Added tag 2.8.2 for changeset ca387377df7a
Wed, 01 Jan 2014 21:46:03 -0600 merge with i18n stable 2.8.2
Matt Mackall <mpm@selenic.com> [Wed, 01 Jan 2014 21:46:03 -0600] rev 20211
merge with i18n
Mon, 30 Dec 2013 21:30:34 +0900 i18n-ja: synchronized with d4be314b2071 stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 30 Dec 2013 21:30:34 +0900] rev 20210
i18n-ja: synchronized with d4be314b2071
Wed, 01 Jan 2014 18:28:40 -0500 merge with stable
Augie Fackler <raf@durin42.com> [Wed, 01 Jan 2014 18:28:40 -0500] rev 20209
merge with stable
Sat, 21 Dec 2013 12:44:19 +0900 fileset, revset: do not use global parser object for thread safety stable
Yuya Nishihara <yuya@tcha.org> [Sat, 21 Dec 2013 12:44:19 +0900] rev 20208
fileset, revset: do not use global parser object for thread safety parse() cannot be called at the same time because a parser object keeps its states. This is no problem for command-line hg client, but it would cause strange errors in multi-threaded hgweb. Creating parser object is not too expensive. original: % python -m timeit -s 'from mercurial import revset' 'revset.parse("0::tip")' 100000 loops, best of 3: 11.3 usec per loop thread-safe: % python -m timeit -s 'from mercurial import revset' 'revset.parse("0::tip")' 100000 loops, best of 3: 13.1 usec per loop
Mon, 23 Dec 2013 15:29:51 -0800 obsolete: order of magnitude speedup in _computebumpedset
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 23 Dec 2013 15:29:51 -0800] rev 20207
obsolete: order of magnitude speedup in _computebumpedset Reminder: a changeset is said "bumped" if it tries to obsolete a immutable changeset. The previous algorithm for computing bumped changeset was: 1) Get all public changesets 2) Find all they successors 3) Search for stuff that are eligible for being "bumped" (mutable and non obsolete) The entry size of this algorithm is `O(len(public))` which is mostly the same as `O(len(repo))`. Even this this approach mean fewer obsolescence marker are traveled, this is not very scalable. The new algorithm is: 1) For each potential bumped changesets (non obsolete mutable) 2) iterate over precursors 3) if a precursors is public. changeset is bumped We travel more obsolescence marker, but the entry size is much smaller since the amount of potential bumped should remains mostly stable with time `O(1)`. On some confidential gigantic repo this move bumped computation from 15.19s to 0.46s (×33 speedup…). On "smaller" repo (mercurial, cubicweb's review) no significant gain were seen. The additional traversal of obsolescence marker is probably probably counter balance the advantage of it. Other optimisation could be done in the future (eg: sharing precursors cache for divergence detection)
Mon, 23 Dec 2013 13:36:13 -0800 obsolete: add an allprecursors method mirroring allsuccessors one.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 23 Dec 2013 13:36:13 -0800] rev 20206
obsolete: add an allprecursors method mirroring allsuccessors one. Detection of bumped changeset should use `allprecursors(<mutable>)` instead or `allsuccessors(<immutable>)` so we need the all precursors function to exists.
Mon, 23 Dec 2013 16:04:51 -0800 perf: fix perfvolatilesets
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 23 Dec 2013 16:04:51 -0800] rev 20205
perf: fix perfvolatilesets The repoview's `filteredrevs` has been renamed to `filterrevs` at some point. perf was never informed.
Mon, 23 Dec 2013 13:33:21 -0800 obsolete: improve allsuccessors doc string
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 23 Dec 2013 13:33:21 -0800] rev 20204
obsolete: improve allsuccessors doc string The fact original nodes are also yield is not obvious. We update the docstring to highlight it.
Mon, 23 Dec 2013 13:32:03 -0800 obsolete: fix bad comment
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 23 Dec 2013 13:32:03 -0800] rev 20203
obsolete: fix bad comment We cannot afford such extra "with" they are far too pricy.
Sun, 29 Dec 2013 13:54:04 +0000 util: remove unused realpath (issue4063)
Christian Ebert <blacktrash@gmx.net> [Sun, 29 Dec 2013 13:54:04 +0000] rev 20202
util: remove unused realpath (issue4063) util.realpath was in use for only 5 days from dbdb777502dc until it was backed out in c519cd8f0169 because it caused issue3077 and issue3071.
Wed, 01 Jan 2014 17:57:48 -0500 import-checker: suppress check-code about any()
Augie Fackler <raf@durin42.com> [Wed, 01 Jan 2014 17:57:48 -0500] rev 20201
import-checker: suppress check-code about any() ast is a new enough module that this script can't work on any version of Python without any(), so we'll just use it.
Tue, 24 Dec 2013 19:10:04 -0500 import-checker: use any() and a genexp to avoid awkward for/else construction
Augie Fackler <raf@durin42.com> [Tue, 24 Dec 2013 19:10:04 -0500] rev 20200
import-checker: use any() and a genexp to avoid awkward for/else construction
Sun, 22 Dec 2013 21:27:00 -0800 import-checker: backout 40f79b9a2cc8 (issue4129)
Chris Jerdonek <chris.jerdonek@gmail.com> [Sun, 22 Dec 2013 21:27:00 -0800] rev 20199
import-checker: backout 40f79b9a2cc8 (issue4129) This patch backs out 40f79b9a2cc8, which caused test-module-imports.t to be skipped when the test was run using virtualenv. Since the test now passes when using virtualenv, the skip is no longer necessary.
Sun, 22 Dec 2013 21:20:38 -0800 import-checker: make test-module-imports.t work using virtualenv (issue4129)
Chris Jerdonek <chris.jerdonek@gmail.com> [Sun, 22 Dec 2013 21:20:38 -0800] rev 20198
import-checker: make test-module-imports.t work using virtualenv (issue4129) This patch modifies contrib/import-checker.py so that test-module-imports.t will pass if run using virtualenv. The patch achieves this by adding two new prefixes to the list of allowable sys.path prefixes. The added prefixes are the directories of two modules in the stdlib. The modules selected are a minimal set that allowed the return value of list_stdlib_modules() to match the return value without virtualenv, when run on the patch author's machine: Mac OS X 10.8, Python 2.7.6.
Sun, 22 Dec 2013 14:10:26 -0800 import-checker: refactor sys.path prefix check (issue4129)
Chris Jerdonek <chris.jerdonek@gmail.com> [Sun, 22 Dec 2013 14:10:26 -0800] rev 20197
import-checker: refactor sys.path prefix check (issue4129) This patch refactors the logic in contrib/import-checker.py responsible for checking the beginnings of the paths in sys.path. In particular, it adds a variable that defines the set of allowed prefixes. The primary purpose of this change is to make it easier to add more allowed prefixes. This will be useful in resolving issue4129, which involves making the function list_stdlib_modules() work when run from a virtualenv.
Tue, 24 Dec 2013 17:44:23 -0500 filter: add a comment so that people do not forget to update subsettable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 24 Dec 2013 17:44:23 -0500] rev 20196
filter: add a comment so that people do not forget to update subsettable Changeset 175c6fd8cacc moved `subsettable` from `mercurial/repoview.py` to `mercurial/branchmap.py`. This mean that `filtertable` and `subsettable` are no longer next to each other. So we add a comment to remind people to update both.
Mon, 16 Sep 2013 01:08:29 -0700 localrepo: remove unused repo.branchtags()/_branchtip() methods
Brodie Rao <brodie@sf.io> [Mon, 16 Sep 2013 01:08:29 -0700] rev 20195
localrepo: remove unused repo.branchtags()/_branchtip() methods
Mon, 16 Sep 2013 01:08:29 -0700 hgweb: simplify branches with repo.branchmap().iterbranches()
Brodie Rao <brodie@sf.io> [Mon, 16 Sep 2013 01:08:29 -0700] rev 20194
hgweb: simplify branches with repo.branchmap().iterbranches()
Mon, 16 Sep 2013 01:08:29 -0700 hgweb: simplify summary with repo.branchmap().iterbranches()
Brodie Rao <brodie@sf.io> [Mon, 16 Sep 2013 01:08:29 -0700] rev 20193
hgweb: simplify summary with repo.branchmap().iterbranches()
Mon, 16 Sep 2013 01:08:29 -0700 branches: simplify with repo.branchmap().iterbranches()
Brodie Rao <brodie@sf.io> [Mon, 16 Sep 2013 01:08:29 -0700] rev 20192
branches: simplify with repo.branchmap().iterbranches() Running hg branches on the PyPy repo (with 996) over a busy NFS server, before this change: $ time hg --profile branches > /dev/null CallCount Recursive Total(s) Inline(s) module:lineno(function) 1069 0 1.2955 1.2955 <open> 1063 0 0.5576 0.5576 <method 'close' of 'file' objects> 4122 0 0.1993 0.0449 mercurial.repoview:161(changelog) 8240 0 0.0771 0.0299 mercurial.changelog:133(tip) 4122 0 0.0422 0.0204 mercurial.localrepo:26(__get__) 8240 0 0.0252 0.0131 <len> 4122 0 0.0060 0.0037 mercurial.repoview:112(filterrevs) 8240 0 0.0028 0.0028 <hash> 3029 0 0.2139 0.0390 mercurial.context:202(__init__) 3029 0 0.1402 0.0339 mercurial.repoview:161(changelog) 3029 0 0.0240 0.0087 mercurial.changelog:183(rev) 9087 0 0.0067 0.0067 <isinstance> 1096 0 0.0025 0.0025 <binascii.unhexlify> 4125 0 0.0015 0.0015 <len> 4229 0 0.0344 0.0344 mercurial.revlog:296(rev) 1061 0 0.0343 0.0343 <method 'seek' of 'file' objects> 1063 0 0.0339 0.0339 <method 'read' of 'file' objects> 40476 16488 0.0479 0.0311 <len> 16488 0 0.0216 0.0168 mercurial.revlog:262(__len__) 8240 0 0.0771 0.0299 mercurial.changelog:133(tip) 8240 0 0.0281 0.0203 mercurial.changelog:190(node) 8240 0 0.0191 0.0095 <len> 1342 0 0.0278 0.0278 <zlib.decompress> 1074 0 2.2143 0.0266 mercurial.changelog:270(read) 1074 0 2.1328 0.0230 mercurial.revlog:907(revision) 1073 0 0.0208 0.0108 mercurial.changelog:28(decodeextra) 2148 0 0.0072 0.0072 <method 'split' of 'str' objects> 2148 0 0.0211 0.0038 mercurial.encoding:61(tolocal) 1074 0 0.0028 0.0028 <method 'index' of 'str' objects> 1061 0 1.9811 0.0237 mercurial.revlog:817(_loadchunk) real 0m2.742s user 0m0.811s sys 0m0.188s After this change: $ time hg --profile branches > /dev/null CallCount Recursive Total(s) Inline(s) module:lineno(function) 2092 0 0.1444 0.0292 mercurial.context:202(__init__) 2092 0 0.0908 0.0216 mercurial.repoview:161(changelog) 2092 0 0.0164 0.0057 mercurial.changelog:183(rev) 6276 0 0.0045 0.0045 <isinstance> 1096 0 0.0024 0.0024 <binascii.unhexlify> 3188 0 0.0013 0.0013 <len> 2218 0 0.0230 0.0230 mercurial.revlog:296(rev) 2111 0 0.1028 0.0218 mercurial.repoview:161(changelog) 4218 0 0.0387 0.0146 mercurial.changelog:133(tip) 2111 0 0.0238 0.0104 mercurial.localrepo:26(__get__) 4218 0 0.0122 0.0062 <len> 2111 0 0.0038 0.0021 mercurial.repoview:112(filterrevs) 4218 0 0.0014 0.0014 <hash> 20240 8444 0.0233 0.0149 <len> 8444 0 0.0110 0.0084 mercurial.revlog:262(__len__) 4218 0 0.0387 0.0146 mercurial.changelog:133(tip) 4218 0 0.0144 0.0103 mercurial.changelog:190(node) 4218 0 0.0097 0.0048 <len> 2398 1 0.0271 0.0115 mercurial.localrepo:26(__get__) 2398 1 0.0146 0.0046 mercurial.scmutil:939(__get__) 2124 0 0.0009 0.0009 mercurial.localrepo:330(unfiltered) 274 0 0.0002 0.0002 mercurial.repoview:192(unfiltered) 4 0 0.1409 0.0112 mercurial.branchmap:19(read) 1096 0 0.1113 0.0028 mercurial.localrepo:407(__contains__) 1098 0 0.0020 0.0020 <method 'split' of 'str' objects> 1097 0 0.0019 0.0019 <binascii.unhexlify> 1096 0 0.0093 0.0018 mercurial.encoding:61(tolocal) 1096 0 0.0010 0.0010 <method 'append' of 'list' objects> 4349 0 0.0150 0.0105 mercurial.changelog:190(node) 4349 0 0.0045 0.0045 mercurial.revlog:317(node) real 0m0.362s user 0m0.329s sys 0m0.024s
Mon, 16 Sep 2013 01:08:29 -0700 debuglabelcomplete: simplify with repo.branchmap().iterbranches()
Brodie Rao <brodie@sf.io> [Mon, 16 Sep 2013 01:08:29 -0700] rev 20191
debuglabelcomplete: simplify with repo.branchmap().iterbranches()
Mon, 16 Sep 2013 01:08:29 -0700 branchmap: introduce iterbranches() method
Brodie Rao <brodie@sf.io> [Mon, 16 Sep 2013 01:08:29 -0700] rev 20190
branchmap: introduce iterbranches() method
Mon, 16 Sep 2013 01:08:29 -0700 localrepo: refactor repo.branchheads() to use repo.branchmap().branchheads()
Brodie Rao <brodie@sf.io> [Mon, 16 Sep 2013 01:08:29 -0700] rev 20189
localrepo: refactor repo.branchheads() to use repo.branchmap().branchheads()
Mon, 16 Sep 2013 01:08:29 -0700 branchmap: introduce branchheads() method
Brodie Rao <brodie@sf.io> [Mon, 16 Sep 2013 01:08:29 -0700] rev 20188
branchmap: introduce branchheads() method
Mon, 16 Sep 2013 01:08:29 -0700 localrepo: refactor repo.branchtip() to use repo.branchmap().branchtip()
Brodie Rao <brodie@sf.io> [Mon, 16 Sep 2013 01:08:29 -0700] rev 20187
localrepo: refactor repo.branchtip() to use repo.branchmap().branchtip()
Mon, 16 Sep 2013 01:08:29 -0700 branchmap: introduce branchtip() method
Brodie Rao <brodie@sf.io> [Mon, 16 Sep 2013 01:08:29 -0700] rev 20186
branchmap: introduce branchtip() method
Mon, 16 Sep 2013 01:08:29 -0700 branchmap: cache open/closed branch head information
Brodie Rao <brodie@sf.io> [Mon, 16 Sep 2013 01:08:29 -0700] rev 20185
branchmap: cache open/closed branch head information This lets us determine the open/closed state of a branch without reading from the changelog (which can be costly over NFS and/or with many branches).
Mon, 11 Nov 2013 21:16:54 +1100 bookmarks: allow push -B to create a new remote head (issue2372)
Stephen Lee <sphen.lee@gmail.com> [Mon, 11 Nov 2013 21:16:54 +1100] rev 20184
bookmarks: allow push -B to create a new remote head (issue2372) Push is currently allowed to create a new head if there is a remote bookmark that will be updated to point to the new head. If the bookmark is not known remotely then push aborts, even if a -B argument is about to push the bookmark. This change allows push to continue in this case. This does not require a wireproto force.
Thu, 21 Nov 2013 15:46:49 -0500 template: modify showextras to return a hybrid
Matthew Turk <matthewturk@gmail.com> [Thu, 21 Nov 2013 15:46:49 -0500] rev 20183
template: modify showextras to return a hybrid This modifies slightly the behavior introduced in 519120a96c63 to allow showextras to return a hybrid, rather than showlist. The example in the template help file now executes and returns meaningful results.
Fri, 15 Nov 2013 23:18:08 -0500 branches: avoid unnecessary changectx.branch() calls
Brodie Rao <brodie@sf.io> [Fri, 15 Nov 2013 23:18:08 -0500] rev 20182
branches: avoid unnecessary changectx.branch() calls This requires reading from the changelog, which can be costly over NFS. Note that this does not totally remove reading from the changelog; we still do that when calling changectx.closesbranch(). That call will be removed in a later patch. Running hg branches on the PyPy repo (with 996) over a busy NFS server, before this change: $ time hg --profile branches > /dev/null CallCount Recursive Total(s) Inline(s) module:lineno(function) 2042 0 2.2827 2.2827 <open> 2036 0 0.9840 0.9840 <method 'close' of 'file' objects> 2036 0 0.0464 0.0464 <method 'read' of 'file' objects> 5233 0 0.1985 0.0453 mercurial.repoview:161(changelog) 10462 0 0.0791 0.0314 mercurial.changelog:133(tip) 5233 0 0.0388 0.0176 mercurial.localrepo:26(__get__) 10462 0 0.0250 0.0126 <len> 5233 0 0.0059 0.0039 mercurial.repoview:112(filterrevs) 10462 0 0.0029 0.0029 <hash> 2034 0 0.0444 0.0444 <method 'seek' of 'file' objects> 5340 0 0.0390 0.0390 mercurial.revlog:296(rev) 2582 0 0.0371 0.0371 <zlib.decompress> 3155 0 0.1963 0.0366 mercurial.context:202(__init__) 3155 0 0.1238 0.0306 mercurial.repoview:161(changelog) 3155 0 0.0261 0.0080 mercurial.changelog:183(rev) 9465 0 0.0061 0.0061 <isinstance> 1096 0 0.0023 0.0023 <binascii.unhexlify> 4251 0 0.0014 0.0014 <len> 2059 0 3.7341 0.0332 mercurial.changelog:270(read) 2059 0 3.6304 0.0307 mercurial.revlog:907(revision) 2057 0 0.0262 0.0137 mercurial.changelog:28(decodeextra) 4118 0 0.0094 0.0094 <method 'split' of 'str' objects> 4118 0 0.0270 0.0048 mercurial.encoding:61(tolocal) 2059 0 0.0040 0.0040 <method 'index' of 'str' objects> 10462 0 0.0791 0.0314 mercurial.changelog:133(tip) 10462 0 0.0289 0.0207 mercurial.changelog:190(node) 10462 0 0.0188 0.0091 <len> 52433 20932 0.0478 0.0310 <len> 20932 0 0.0221 0.0168 mercurial.revlog:262(__len__) 2059 0 3.6304 0.0307 mercurial.revlog:907(revision) real 0m4.361s user 0m0.986s sys 0m0.237s After this change: $ time hg --profile branches > /dev/null CallCount Recursive Total(s) Inline(s) module:lineno(function) 1069 0 1.1098 1.1098 <open> 1063 0 0.4865 0.4865 <method 'close' of 'file' objects> 4122 0 0.1811 0.0404 mercurial.repoview:161(changelog) 8240 0 0.0712 0.0272 mercurial.changelog:133(tip) 4122 0 0.0378 0.0177 mercurial.localrepo:26(__get__) 8240 0 0.0221 0.0115 <len> 4122 0 0.0057 0.0033 mercurial.repoview:112(filterrevs) 8240 0 0.0025 0.0025 <hash> 3029 0 0.1979 0.0371 mercurial.context:202(__init__) 3029 0 0.1278 0.0310 mercurial.repoview:161(changelog) 3029 0 0.0230 0.0081 mercurial.changelog:183(rev) 9087 0 0.0061 0.0061 <isinstance> 1096 0 0.0026 0.0026 <binascii.unhexlify> 4125 0 0.0014 0.0014 <len> 4229 0 0.0337 0.0337 mercurial.revlog:296(rev) 1061 0 0.0296 0.0296 <method 'seek' of 'file' objects> 1063 0 0.0292 0.0292 <method 'read' of 'file' objects> 8240 0 0.0712 0.0272 mercurial.changelog:133(tip) 8240 0 0.0271 0.0196 mercurial.changelog:190(node) 8240 0 0.0169 0.0083 <len> 40476 16488 0.0422 0.0271 <len> 16488 0 0.0193 0.0152 mercurial.revlog:262(__len__) 1342 0 0.0241 0.0241 <zlib.decompress> 9445 0 0.0336 0.0224 mercurial.changelog:190(node) 9445 0 0.0112 0.0112 mercurial.revlog:317(node) 1074 0 1.9102 0.0224 mercurial.changelog:270(read) 1074 0 1.8397 0.0202 mercurial.revlog:907(revision) 1073 0 0.0187 0.0099 mercurial.changelog:28(decodeextra) 2148 0 0.0061 0.0061 <method 'split' of 'str' objects> 2148 0 0.0184 0.0034 mercurial.encoding:61(tolocal) real 0m2.402s user 0m0.735s sys 0m0.177s
Fri, 15 Nov 2013 23:18:08 -0500 branchmap: add documentation on the branchcache on-disk format
Brodie Rao <brodie@sf.io> [Fri, 15 Nov 2013 23:18:08 -0500] rev 20181
branchmap: add documentation on the branchcache on-disk format
Sun, 17 Nov 2013 18:04:29 -0500 revlog: allow tuning of the chunk cache size (via format.chunkcachesize)
Brodie Rao <brodie@sf.io> [Sun, 17 Nov 2013 18:04:29 -0500] rev 20180
revlog: allow tuning of the chunk cache size (via format.chunkcachesize) Running perfmoonwalk on the Mercurial repo (with almost 20,000 changesets) on Mac OS X with an SSD, before this change: $ hg --config format.chunkcachesize=1024 perfmoonwalk ! wall 2.022021 comb 2.030000 user 1.970000 sys 0.060000 (best of 5) (16,154 cache hits, 3,840 misses.) $ hg --config format.chunkcachesize=4096 perfmoonwalk ! wall 1.901006 comb 1.900000 user 1.880000 sys 0.020000 (best of 6) (19,003 hits, 991 misses.) $ hg --config format.chunkcachesize=16384 perfmoonwalk ! wall 1.802775 comb 1.800000 user 1.800000 sys 0.000000 (best of 6) (19,746 hits, 248 misses.) $ hg --config format.chunkcachesize=32768 perfmoonwalk ! wall 1.818545 comb 1.810000 user 1.810000 sys 0.000000 (best of 6) (19,870 hits, 124 misses.) $ hg --config format.chunkcachesize=65536 perfmoonwalk ! wall 1.801350 comb 1.810000 user 1.800000 sys 0.010000 (best of 6) (19,932 hits, 62 misses.) $ hg --config format.chunkcachesize=131072 perfmoonwalk ! wall 1.805879 comb 1.820000 user 1.810000 sys 0.010000 (best of 6) (19,963 hits, 31 misses.) We may want to change the default size in the future based on testing and user feedback.
Sun, 17 Nov 2013 18:04:28 -0500 revlog: read/cache chunks in fixed windows of 64 KB
Brodie Rao <brodie@sf.io> [Sun, 17 Nov 2013 18:04:28 -0500] rev 20179
revlog: read/cache chunks in fixed windows of 64 KB When reading a revlog chunk, instead of reading up to 64 KB ahead of the request offset and caching that, this change caches a fixed window before and after the requested data that falls on 64 KB boundaries. This increases cache hits when reading revlogs backwards. Running perfmoonwalk on the Mercurial repo (with almost 20,000 changesets) on Mac OS X with an SSD, before this change: $ hg perfmoonwalk ! wall 2.307994 comb 2.310000 user 2.120000 sys 0.190000 (best of 5) (Each run has 10,668 cache hits and 9,304 misses.) After this change: $ hg perfmoonwalk ! wall 1.814117 comb 1.810000 user 1.810000 sys 0.000000 (best of 6) (19,931 cache hits, 62 misses.) On a busy NFS share, before this change: $ hg perfmoonwalk ! wall 17.000034 comb 4.100000 user 3.270000 sys 0.830000 (best of 3) After: $ hg perfmoonwalk ! wall 1.746115 comb 1.670000 user 1.660000 sys 0.010000 (best of 5)
Sun, 17 Nov 2013 18:04:28 -0500 perf: add perfmoonwalk command to walk the changelog backwards
Brodie Rao <brodie@sf.io> [Sun, 17 Nov 2013 18:04:28 -0500] rev 20178
perf: add perfmoonwalk command to walk the changelog backwards This lets us test the effectiveness (or ineffectiveness) of the revlog chunk cache when walking revlogs backwards.
Tue, 03 Dec 2013 13:28:04 -0500 largefiles: call super class method with proper kwargs to respect API
Long Vu <long@tlvu.ca> [Tue, 03 Dec 2013 13:28:04 -0500] rev 20177
largefiles: call super class method with proper kwargs to respect API Since the localrepositoyry.push() method in mercurial/localrepo.py is defined this way: def push(self, remote, force=False, revs=None, newbranch=False): it is better for largefiles to call push() on the super class with proper kwargs to respect the API. This will avoid breaking other extensions overriding the push method this way: def push(self, remote, force=False, **kwargs):
Wed, 13 Nov 2013 15:55:30 +0900 subrepo: check phase of state in each subrepositories before committing
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 13 Nov 2013 15:55:30 +0900] rev 20176
subrepo: check phase of state in each subrepositories before committing Before this patch, phase of newly created commit is determined by "phases.new-commit" configuration regardless of phase of state in each subrepositories. For example, this may cause the "public" revision in the parent repository referring the "secret" one in subrepository. This patch checks phase of state in each subrepositories before committing in the parent, and aborts or changes phase of newly created commit if subrepositories have more restricted phase than the parent. This patch uses "follow" as default value of "phases.checksubrepos" configuration, because it can keep consistency between phases of the parent and subrepositories without breaking existing tool chains.
Mon, 16 Dec 2013 12:59:32 -0600 merge with crew
Matt Mackall <mpm@selenic.com> [Mon, 16 Dec 2013 12:59:32 -0600] rev 20175
merge with crew
Sat, 14 Dec 2013 12:48:12 -0500 http: backout 181108726ea5, which breaks on Python 2.4
Augie Fackler <raf@durin42.com> [Sat, 14 Dec 2013 12:48:12 -0500] rev 20174
http: backout 181108726ea5, which breaks on Python 2.4
Sat, 14 Dec 2013 11:58:26 -0500 test-module-imports: try and detect virtualenv breakage (issue4129)
Augie Fackler <raf@durin42.com> [Sat, 14 Dec 2013 11:58:26 -0500] rev 20173
test-module-imports: try and detect virtualenv breakage (issue4129) virtualenvs (among other things) break the stdlib module detection in the import checker, and I don't see a good way to work around that for now.
Mon, 25 Nov 2013 17:18:12 +0100 http: reuse authentication info after the first failed request (issue3567)
Stéphane Klein <contact@stephane-klein.info> [Mon, 25 Nov 2013 17:18:12 +0100] rev 20172
http: reuse authentication info after the first failed request (issue3567) Context: mercurial access to repository server with http access, and this server is protected by basic auth. Before patch: * mercurial try an anonymous access to server, server return 401 response and mercurial resend request with login / password information After patch: * mercurial try an anonymous access to server, server return 401 response. For all subsequent requests, mercurial keep in memory this information (this server need basic auth information). This patch reduce the number of http access against mercurial server. Example, before patch : 10.10.168.170 - - [25/Oct/2013:15:44:51 +0200] "GET /hg/testagt?cmd=capabilities HTTP/1.1" 401 260 "-" "mercurial/proto-1.0" 10.10.168.170 - - [25/Oct/2013:15:44:52 +0200] "GET /hg/testagt?cmd=capabilities HTTP/1.1" 200 147 "-" "mercurial/proto-1.0" 10.10.168.170 - - [25/Oct/2013:15:45:00 +0200] "GET /hg/testagt?cmd=capabilities HTTP/1.1" 401 260 "-" "mercurial/proto-1.0" 10.10.168.170 - - [25/Oct/2013:15:45:01 +0200] "GET /hg/testagt?cmd=capabilities HTTP/1.1" 200 147 "-" "mercurial/proto-1.0" 10.10.168.170 - - [25/Oct/2013:15:45:03 +0200] "GET /hg/testagt?cmd=batch HTTP/1.1" 401 260 "-" "mercurial/proto-1.0" 10.10.168.170 - - [25/Oct/2013:15:45:04 +0200] "GET /hg/testagt?cmd=batch HTTP/1.1" 200 42 "-" "mercurial/proto-1.0" 10.10.168.170 - - [25/Oct/2013:15:45:06 +0200] "GET /hg/testagt?cmd=getbundle HTTP/1.1" 401 260 "-" "mercurial/proto-1.0" 10.10.168.170 - - [25/Oct/2013:15:45:07 +0200] "GET /hg/testagt?cmd=getbundle HTTP/1.1" 200 61184 "-" "mercurial/proto-1.0" 10.10.168.170 - - [25/Oct/2013:15:45:09 +0200] "GET /hg/testagt?cmd=listkeys HTTP/1.1" 401 260 "-" "mercurial/proto-1.0" 10.10.168.170 - - [25/Oct/2013:15:45:10 +0200] "GET /hg/testagt?cmd=listkeys HTTP/1.1" 200 15 "-" "mercurial/proto-1.0" 10.10.168.170 - - [25/Oct/2013:15:45:12 +0200] "GET /hg/testagt?cmd=listkeys HTTP/1.1" 401 260 "-" "mercurial/proto-1.0" 10.10.168.170 - - [25/Oct/2013:15:45:12 +0200] "GET /hg/testagt?cmd=listkeys HTTP/1.1" 200 - "-" "mercurial/proto-1.0" Example after patch : 10.10.168.170 - - [28/Oct/2013:11:49:14 +0100] "GET /hg/testagt?cmd=capabilities HTTP/1.1" 401 260 "-" "mercurial/proto-1.0" 10.10.168.170 - - [28/Oct/2013:11:49:15 +0100] "GET /hg/testagt?cmd=capabilities HTTP/1.1" 200 147 "-" "mercurial/proto-1.0" 10.10.168.170 - - [28/Oct/2013:11:49:17 +0100] "GET /hg/testagt?cmd=batch HTTP/1.1" 200 42 "-" "mercurial/proto-1.0" 10.10.168.170 - - [28/Oct/2013:11:49:19 +0100] "GET /hg/testagt?cmd=getbundle HTTP/1.1" 200 61184 "-" "mercurial/proto-1.0" 10.10.168.170 - - [28/Oct/2013:11:49:22 +0100] "GET /hg/testagt?cmd=listkeys HTTP/1.1" 200 15 "-" "mercurial/proto-1.0" 10.10.168.170 - - [28/Oct/2013:11:49:24 +0100] "GET /hg/testagt?cmd=listkeys HTTP/1.1" 200 - "-" "mercurial/proto-1.0" In this last example, you can see only one 401 response.
Thu, 12 Dec 2013 12:25:56 +0530 record: --user/-u now works with record when ui.username not set (issue3857)
Prasoon Shukla <prasoon92.iitr@gmail.com> [Thu, 12 Dec 2013 12:25:56 +0530] rev 20171
record: --user/-u now works with record when ui.username not set (issue3857) The -u flag didn't work when ui.username was not set and resulted in an abort message. This was fixed by checking for the 'user' key in the opts dictionary. If the key is present, the step causing the exception is not executed.
Wed, 11 Dec 2013 11:33:58 -0600 help: fix formatting of template example
Steve Hoelzer <shoelzer@gmail.com> [Wed, 11 Dec 2013 11:33:58 -0600] rev 20170
help: fix formatting of template example
Fri, 13 Dec 2013 17:23:02 -0600 merge with stable
Matt Mackall <mpm@selenic.com> [Fri, 13 Dec 2013 17:23:02 -0600] rev 20169
merge with stable
Wed, 04 Dec 2013 13:42:28 -0600 hgweb: avoid initialization race (issue3953) stable
Matt Mackall <mpm@selenic.com> [Wed, 04 Dec 2013 13:42:28 -0600] rev 20168
hgweb: avoid initialization race (issue3953)
Wed, 11 Dec 2013 18:33:42 -0600 mpatch: rewrite pointer overflow checks stable
Matt Mackall <mpm@selenic.com> [Wed, 11 Dec 2013 18:33:42 -0600] rev 20167
mpatch: rewrite pointer overflow checks
Mon, 02 Dec 2013 07:49:49 -0800 parsers: clarify documentation of test-parseindex2.py
Chris Jerdonek <chris.jerdonek@gmail.com> [Mon, 02 Dec 2013 07:49:49 -0800] rev 20166
parsers: clarify documentation of test-parseindex2.py This change updates and improves the description of test-parseindex2.py. In particular, it removes language that can be interpreted to mean that the test module checks only the C implementation of parsers.parse_index2(). Rather, the module checks parsers.parse_index2(), which can be either the C or pure Python implementation, depending on which version is being used. As of e57c532c3835, the module also does more than just compare the return value with the original Python implementation.
Sun, 01 Dec 2013 21:24:48 -0600 merge with stable
Matt Mackall <mpm@selenic.com> [Sun, 01 Dec 2013 21:24:48 -0600] rev 20165
merge with stable
Sun, 01 Dec 2013 21:24:26 -0600 tests: fix missing import in check-translations stable
Matt Mackall <mpm@selenic.com> [Sun, 01 Dec 2013 21:24:26 -0600] rev 20164
tests: fix missing import in check-translations
Sun, 01 Dec 2013 20:54:02 -0600 merge with stable
Matt Mackall <mpm@selenic.com> [Sun, 01 Dec 2013 20:54:02 -0600] rev 20163
merge with stable
Sun, 01 Dec 2013 20:51:15 -0600 Added signature for changeset 209e04a06467 stable
Matt Mackall <mpm@selenic.com> [Sun, 01 Dec 2013 20:51:15 -0600] rev 20162
Added signature for changeset 209e04a06467
Sun, 01 Dec 2013 20:51:12 -0600 Added tag 2.8.1 for changeset 209e04a06467 stable
Matt Mackall <mpm@selenic.com> [Sun, 01 Dec 2013 20:51:12 -0600] rev 20161
Added tag 2.8.1 for changeset 209e04a06467
Sun, 01 Dec 2013 20:47:09 -0600 merge with stable
Matt Mackall <mpm@selenic.com> [Sun, 01 Dec 2013 20:47:09 -0600] rev 20160
merge with stable
Sun, 01 Dec 2013 20:46:36 -0600 parsers: backout version mismatch detection from 21dafd8546d1
Matt Mackall <mpm@selenic.com> [Sun, 01 Dec 2013 20:46:36 -0600] rev 20159
parsers: backout version mismatch detection from 21dafd8546d1 This introduced mandatory recompilations and breaks pure mode in tests
Sun, 01 Dec 2013 20:39:11 -0600 tests: fix Mac doctest escape code garbage for check-translations stable 2.8.1
Matt Mackall <mpm@selenic.com> [Sun, 01 Dec 2013 20:39:11 -0600] rev 20158
tests: fix Mac doctest escape code garbage for check-translations
Sun, 01 Dec 2013 18:26:42 -0200 i18n-pt_BR: synchronized with 734ff413eb7e stable
Wagner Bruna <wbruna@yahoo.com> [Sun, 01 Dec 2013 18:26:42 -0200] rev 20157
i18n-pt_BR: synchronized with 734ff413eb7e
Sun, 01 Dec 2013 14:10:53 -0600 merge with stable
Matt Mackall <mpm@selenic.com> [Sun, 01 Dec 2013 14:10:53 -0600] rev 20156
merge with stable
Fri, 29 Nov 2013 12:36:28 -0800 parsers: fail fast if Python has wrong minor version (issue4110)
Chris Jerdonek <chris.jerdonek@gmail.com> [Fri, 29 Nov 2013 12:36:28 -0800] rev 20155
parsers: fail fast if Python has wrong minor version (issue4110) This change causes an informative ImportError to be raised when importing the extension module parsers if the minor version of the currently-running Python interpreter doesn't match that of the Python that was used when compiling the extension module. Here is an example of what the new error looks like: Traceback (most recent call last): File "test.py", line 1, in <module> import mercurial.parsers ImportError: Python minor version mismatch: The Mercurial extension modules were compiled with Python 2.7.6, but Mercurial is currently using Python with sys.hexversion=33883888: Python 2.5.6 (r256:88840, Nov 18 2012, 05:37:10) [GCC 4.2.1 Compatible Apple Clang 4.1 ((tags/Apple/clang-421.11.66))] at: /opt/local/Library/Frameworks/Python.framework/Versions/2.5/Resources/ Python.app/Contents/MacOS/Python The reason for raising an error in this scenario is that Python's C API is known not to be compatible from minor version to minor version, even if sys.api_version is the same. See for example this Python bug report about incompatibilities between 2.5 and 2.6+: http://bugs.python.org/issue8118 These incompatibilities can cause Mercurial to break in mysterious, unforeseen ways. For example, when Mercurial compiled with Python 2.7 was run with 2.5, the following crash occurred when running "hg status": http://bz.selenic.com/show_bug.cgi?id=4110 After this crash was fixed, running with Python 2.5 no longer crashes, but the following puzzling behavior still occurs: $ hg status ... File ".../mercurial/changelog.py", line 123, in __init__ revlog.revlog.__init__(self, opener, "00changelog.i") File ".../mercurial/revlog.py", line 251, in __init__ d = self._io.parseindex(i, self._inline) File ".../mercurial/revlog.py", line 158, in parseindex index, cache = parsers.parse_index2(data, inline) TypeError: data is not a string which can be reproduced more simply with: import mercurial.parsers as parsers parsers.parse_index2("", True) Both the crash and the TypeError occurred because the Python C API's PyString_Check returns the wrong value when the C header files from Python 2.7 are run with Python 2.5. This is an example of an incompatibility of the sort mentioned in the Python bug report above. Failing fast with an informative error message will result in a better user experience in cases like the above. The information in the ImportError will also simplify troubleshooting for those on Mercurial mailing lists, the bug tracker, etc. This patch only adds the version check to parsers.c, which is sufficient to affect command-line commands like "hg status" and "hg summary". An idea for a future improvement is to move the version-checking C code to a more central location, and have it run when importing all Mercurial extension modules and not just parsers.c.
Sun, 01 Dec 2013 13:53:24 -0600 hgk: fix tag list parser (issue4101) stable
Andrew Shadura <andrew@shadura.me> [Sun, 01 Dec 2013 13:53:24 -0600] rev 20154
hgk: fix tag list parser (issue4101) As tags may have embedded spaces, and "hg tags" command doesn't escape them, the output of the command doesn't make a well-formed list, so we can't just iterate over it. Instead, apply a simple regexp to transform it to a list which we actually use. Line boundary matching should be enabled.
Sun, 01 Dec 2013 13:45:00 -0600 merge with i18n stable
Matt Mackall <mpm@selenic.com> [Sun, 01 Dec 2013 13:45:00 -0600] rev 20153
merge with i18n
Wed, 27 Nov 2013 22:47:32 +0900 i18n: add the tool to check Mercurial specific translation problems in *.po stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 27 Nov 2013 22:47:32 +0900] rev 20152
i18n: add the tool to check Mercurial specific translation problems in *.po Existing tool like "msgfmt --check" can check typical translation problems (missing "%s" in msgstr, for example), but can't check Mercurial specific ones. For example, "msgfmt --check" can't check whether the translated string given to "ui.promptchoice()" is correct or not, even though problems like below cause run-time error or unexpected behavior: - less or more choices than msgid, - choices without '&', or - choices with '&' followed by none This patch adds the tool to check Mercurial specific translation problems in *.po files.
Wed, 27 Nov 2013 22:32:01 +0100 help: fix backwards bisect help example stable
Santiago Pay=C3=A0 i Miralta <santiagopim@gmail.com> [Wed, 27 Nov 2013 22:32:01 +0100] rev 20151
help: fix backwards bisect help example
Tue, 26 Nov 2013 16:30:52 -0800 unshelve: add tests for unknown files stable
Durham Goode <durham@fb.com> [Tue, 26 Nov 2013 16:30:52 -0800] rev 20150
unshelve: add tests for unknown files Adds a basic test for shelving/unshelving with an unknown file present. Adds a test for unshelving on top of an existing unknown file.
Tue, 26 Nov 2013 16:23:05 -0800 unshelve: don't commit unknown files during unshelve (issue4113) stable
Durham Goode <durham@fb.com> [Tue, 26 Nov 2013 16:23:05 -0800] rev 20149
unshelve: don't commit unknown files during unshelve (issue4113) Previously, unshelve would temporarily commit unknown files (via addremove) in an attempt to allow unshelving into unknown files. This produced unexpected results, like the file time stamp changing and a .i file being created. This change makes it no longer use addremove. It ignores unknown files completely. If an unshelve would overwrite an unknown file, the unknown file is moved to *.orig The shelve continue/abort format is changed, but it just removes stuff from the end of the file, so it can still read the old format.
Tue, 26 Nov 2013 15:38:33 +0100 largefiles: don't crash on 'local renamed directory' actions stable
Mads Kiilerich <madski@unity3d.com> [Tue, 26 Nov 2013 15:38:33 +0100] rev 20148
largefiles: don't crash on 'local renamed directory' actions a12798938721 introduced splitstandin on all action filenames. It would however crash on 'd' actions where the filename is None. Fix that and add test coverage for that case.
Fri, 22 Nov 2013 19:13:07 +0100 glossary: don't mention obsolete graphlog extension stable
Martin Geisler <martin@geisler.net> [Fri, 22 Nov 2013 19:13:07 +0100] rev 20147
glossary: don't mention obsolete graphlog extension
Fri, 22 Nov 2013 19:12:44 +0100 bisect: don't mention obsolete graphlog extension in help stable
Martin Geisler <martin@geisler.net> [Fri, 22 Nov 2013 19:12:44 +0100] rev 20146
bisect: don't mention obsolete graphlog extension in help
Fri, 22 Nov 2013 19:12:18 +0100 contrib: don't mention obsolete graphlog extension in mercurial.ini stable
Martin Geisler <martin@geisler.net> [Fri, 22 Nov 2013 19:12:18 +0100] rev 20145
contrib: don't mention obsolete graphlog extension in mercurial.ini
Fri, 22 Nov 2013 19:11:48 +0100 contrib: stop mentioning obsolete graphlog extension in sample.hgrc stable
Martin Geisler <martin@geisler.net> [Fri, 22 Nov 2013 19:11:48 +0100] rev 20144
contrib: stop mentioning obsolete graphlog extension in sample.hgrc
Fri, 22 Nov 2013 17:14:44 +0100 contrib: promote strip extension over MQ in sample.hgrc stable
Martin Geisler <martin@geisler.net> [Fri, 22 Nov 2013 17:14:44 +0100] rev 20143
contrib: promote strip extension over MQ in sample.hgrc
Fri, 22 Nov 2013 17:12:43 +0100 help: use progress instead of mq as in 'hg help config' example stable
Matt Mackall <mpm@selenic.com> [Fri, 22 Nov 2013 17:12:43 +0100] rev 20142
help: use progress instead of mq as in 'hg help config' example
Sat, 30 Nov 2013 21:50:40 -0200 i18n-pt_BR: fix wording in tag command help text stable
Wagner Bruna <wbruna@yahoo.com> [Sat, 30 Nov 2013 21:50:40 -0200] rev 20141
i18n-pt_BR: fix wording in tag command help text
Thu, 28 Nov 2013 20:10:47 +0900 i18n-ja: synchronized with 5246fd4781d8 stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 28 Nov 2013 20:10:47 +0900] rev 20140
i18n-ja: synchronized with 5246fd4781d8
Tue, 26 Nov 2013 11:00:49 -0200 i18n-pt_BR: synchronized with 224e96078708 stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Tue, 26 Nov 2013 11:00:49 -0200] rev 20139
i18n-pt_BR: synchronized with 224e96078708
Wed, 27 Nov 2013 16:43:02 -0500 test-import-git.t: work around check-code hating on ^ and $( in tests
Augie Fackler <raf@durin42.com> [Wed, 27 Nov 2013 16:43:02 -0500] rev 20138
test-import-git.t: work around check-code hating on ^ and $( in tests
Wed, 27 Nov 2013 18:39:00 +0100 patch: add support for git delta hunks
Nicolas Vigier <boklm@mars-attacks.org> [Wed, 27 Nov 2013 18:39:00 +0100] rev 20137
patch: add support for git delta hunks When creating patches modifying binary files using "git format-patch", git creates 'literal' and 'delta' hunks. Mercurial currently supports 'literal' hunks only, which makes it impossible to import patches with 'delta' hunks. This changeset adds support for 'delta' hunks. It is a reimplementation of patch-delta.c from git : http://git.kernel.org/cgit/git/git.git/tree/patch-delta.c
Mon, 25 Nov 2013 12:12:42 -0500 pathcomplete: remove ambiguous entries for sole completion on a directory
Sean Farley <sean.michael.farley@gmail.com> [Mon, 25 Nov 2013 12:12:42 -0500] rev 20136
pathcomplete: remove ambiguous entries for sole completion on a directory Previously, directories were added with the trailing slash and, if there was only one completion, then another ambiguous entry was created using '.', as follows: $ hg rm mer<TAB> mercurial/./ mercurial// This was added in fa6d5c62f3bd (though, some logic existed before that) to work around bash completion adding a space after the sole entry because we treated directories and files the same. We no longer do that now so we remove this unneeded code. Tests have been updated to match this new behavior.
Tue, 26 Nov 2013 14:33:18 -0600 bash_completion: add global support for -b|--branch
Sean Farley <sean.michael.farley@gmail.com> [Tue, 26 Nov 2013 14:33:18 -0600] rev 20135
bash_completion: add global support for -b|--branch Previously, only -r|--rev was parsed globally which meant 'hg push -b <tab>' would try to complete a path instead of a branch.
Tue, 26 Nov 2013 14:31:40 -0600 bash_completion: add global support for -B|--bookmark
Sean Farley <sean.michael.farley@gmail.com> [Tue, 26 Nov 2013 14:31:40 -0600] rev 20134
bash_completion: add global support for -B|--bookmark Previously, only -r|--rev was parsed globally which meant 'hg push -B <tab>' would try to complete a path instead of a bookmark.
Tue, 26 Nov 2013 14:04:12 -0600 bash_completion: change --rev if-else block into a case
Sean Farley <sean.michael.farley@gmail.com> [Tue, 26 Nov 2013 14:04:12 -0600] rev 20133
bash_completion: change --rev if-else block into a case Again, this doesn't change behavior but does make it easy to add cases in the next patch.
Tue, 26 Nov 2013 13:55:33 -0600 bash_completion: simplify if-else logic
Sean Farley <sean.michael.farley@gmail.com> [Tue, 26 Nov 2013 13:55:33 -0600] rev 20132
bash_completion: simplify if-else logic There is no change in functionality here but this makes refactoring this later easier.
Mon, 25 Nov 2013 11:38:14 -0500 bash_completion: add _hg_branches for list of branches
Sean Farley <sean.michael.farley@gmail.com> [Mon, 25 Nov 2013 11:38:14 -0500] rev 20131
bash_completion: add _hg_branches for list of branches
Tue, 26 Nov 2013 14:38:14 -0600 bash_completion: add -B|--bookmark support for strip
Sean Farley <sean.michael.farley@gmail.com> [Tue, 26 Nov 2013 14:38:14 -0600] rev 20130
bash_completion: add -B|--bookmark support for strip
Fri, 22 Nov 2013 14:58:41 -0500 bash_completion: add completion for deleting a shelve
Sean Farley <sean.michael.farley@gmail.com> [Fri, 22 Nov 2013 14:58:41 -0500] rev 20129
bash_completion: add completion for deleting a shelve
Thu, 21 Nov 2013 15:14:52 -0500 bash_completion: use correct command for listing shelves
Sean Farley <sean.michael.farley@gmail.com> [Thu, 21 Nov 2013 15:14:52 -0500] rev 20128
bash_completion: use correct command for listing shelves Previously, _hg_shelves used the unshelve command to list current shelves. This is actually the wrong command. The correct usage is 'hg shelve -l' so we use that instead.
Wed, 20 Nov 2013 19:13:24 -0500 bash_completion: remove restriction on bookmark completion
Sean Farley <sean.michael.farley@gmail.com> [Wed, 20 Nov 2013 19:13:24 -0500] rev 20127
bash_completion: remove restriction on bookmark completion Previously, we only completed a bookmark when deleting or renaming a bookmark. Since we can now move a bookmark forward, we drop this restriction.
Wed, 20 Nov 2013 14:45:18 -0500 bash_completion: fix issue with subdirectories not being completed
Sean Farley <sean.michael.farley@gmail.com> [Wed, 20 Nov 2013 14:45:18 -0500] rev 20126
bash_completion: fix issue with subdirectories not being completed Previously, if there was a directory between the file and first-level directory (e.g. 'bar' in foo/bar/file), then bash_completion would only list 'foo/file' instead of 'foo/bar/file'. This behavior was introduced in 80f3ae36f908 to fix spaces in file names. In this patch, we keep that behavior while also fixing subdirectory completion by reverting 80f3ae36f908 and instead add backslashes to whitespace manually. This approach means adding the completion option 'nospace' since we do this manually now.
Wed, 20 Nov 2013 13:19:55 -0500 bash_completion: determine root executable in case of alias
Sean Farley <sean.michael.farley@gmail.com> [Wed, 20 Nov 2013 13:19:55 -0500] rev 20125
bash_completion: determine root executable in case of alias This solves an issue for users that have "alias hg='hg --some_opts'" where they would see wrong entries in the completion output (such as color codes).
Wed, 20 Nov 2013 15:16:54 -0500 bash_completion: expand aliased commands
Sean Farley <sean.michael.farley@gmail.com> [Wed, 20 Nov 2013 15:16:54 -0500] rev 20124
bash_completion: expand aliased commands
Tue, 19 Nov 2013 11:45:30 -0500 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com> [Tue, 19 Nov 2013 11:45:30 -0500] rev 20123
bash_completion: untabify
Mon, 25 Nov 2013 12:20:39 -0500 dispatch: turn off custom debugger for HGPLAIN mode
Sean Farley <sean.michael.farley@gmail.com> [Mon, 25 Nov 2013 12:20:39 -0500] rev 20122
dispatch: turn off custom debugger for HGPLAIN mode Some debuggers, such as ipdb, load escape codes and color codes even when later turned off. This will affect scripts that do simple parsing and can't handle escape codes. Therefore, we only load a custom debugger if ui.plain() is false.
Sun, 17 Nov 2013 12:18:26 +0100 Makefile: temporary copy of hg.pot is hg.pot.tmp instead of hg.pot~
Simon Heimberg <simohe@besonet.ch> [Sun, 17 Nov 2013 12:18:26 +0100] rev 20121
Makefile: temporary copy of hg.pot is hg.pot.tmp instead of hg.pot~ The file ending of temporary files for generating XX.po has been changed to .tmp (from ~). Use the same ending when generating hg.pot.
Sun, 17 Nov 2013 12:17:55 +0100 Makefile: fix po file updating by using same file name everywhere
Simon Heimberg <simohe@besonet.ch> [Sun, 17 Nov 2013 12:17:55 +0100] rev 20120
Makefile: fix po file updating by using same file name everywhere The update is done on a temporary file since ce5d711475a3. The name of this file was first XX.po~ and has been changed to XX.po.tmp in all except of one place. Do this now.
Sun, 24 Nov 2013 17:29:10 -0600 mq: prefer a loop to a double-for list comprehension
Kevin Bullock <kbullock@ringworld.org> [Sun, 24 Nov 2013 17:29:10 -0600] rev 20119
mq: prefer a loop to a double-for list comprehension The [x for y in l for x in y] syntax is nigh-incomprehensible, and this is a particularly easy case to expand into a loop since there's no 'if' condition in the list comprehension.
Sat, 23 Nov 2013 18:34:32 +0100 graphlog: mark as deprecated
Martin Geisler <martin@geisler.net> [Sat, 23 Nov 2013 18:34:32 +0100] rev 20118
graphlog: mark as deprecated
Fri, 22 Nov 2013 19:14:17 +0100 tests: don't load unnecessary graphlog extension
Martin Geisler <martin@geisler.net> [Fri, 22 Nov 2013 19:14:17 +0100] rev 20117
tests: don't load unnecessary graphlog extension Since graphlog is in core, we can use 'hg log -G' instead.
Fri, 22 Nov 2013 19:13:26 +0100 hg: remove outdated comment
Martin Geisler <martin@geisler.net> [Fri, 22 Nov 2013 19:13:26 +0100] rev 20116
hg: remove outdated comment The graphlog functionality has been in core since Mercurial 2.3.
Fri, 22 Nov 2013 17:10:08 +0100 tests: use strip extension instead of mq where it makes sense
Martin Geisler <martin@geisler.net> [Fri, 22 Nov 2013 17:10:08 +0100] rev 20115
tests: use strip extension instead of mq where it makes sense When a test only uses 'hg strip', it no longer needs to load MQ.
Sat, 23 Nov 2013 01:06:20 +0100 tests: fix `hghave root` on windows
Simon Heimberg <simohe@besonet.ch> [Sat, 23 Nov 2013 01:06:20 +0100] rev 20114
tests: fix `hghave root` on windows This lets tests\test-hghave.t pass on windows where geteuid does not exist.
Wed, 20 Nov 2013 12:55:08 +0000 keyword: wlock while setting branch in kwdemo
Christian Ebert <blacktrash@gmx.net> [Wed, 20 Nov 2013 12:55:08 +0000] rev 20113
keyword: wlock while setting branch in kwdemo
Sun, 17 Nov 2013 15:43:46 +0100 tests: add missing glob
Simon Heimberg <simohe@besonet.ch> [Sun, 17 Nov 2013 15:43:46 +0100] rev 20112
tests: add missing glob
Tue, 26 Nov 2013 21:55:21 -0800 Merge
Bryan O'Sullivan <bryano@fb.com> [Tue, 26 Nov 2013 21:55:21 -0800] rev 20111
Merge
Tue, 19 Nov 2013 23:49:11 +0530 mercurial/parsers.c: fix compiler warning
Abhay Kadam <abhaykadam88@gmail.com> [Tue, 19 Nov 2013 23:49:11 +0530] rev 20110
mercurial/parsers.c: fix compiler warning When try to compile on x64 OS X, I get this warning: mercurial/parsers.c:931:27: warning: implicit conversion loses integer precision : 'long' to 'int' [-Wshorten-64-to-32] ? 4 : self->raw_length / 2; The patch verifies if value of self->raw_length falls bellow INT_MAX; if not, it raises the ValueError exception. If value of self->raw_length is greater than 4, it's casted to int type, to eliminate the warning.
Tue, 26 Nov 2013 16:14:22 -0800 parse_index2: fix crash on bad argument type (issue4110) stable
Chris Jerdonek <chris.jerdonek@gmail.com> [Tue, 26 Nov 2013 16:14:22 -0800] rev 20109
parse_index2: fix crash on bad argument type (issue4110) Passing a non-string to parsers.parse_index2() causes Mercurial to crash instead of raising a TypeError (found on Mac OS X 10.8.5, Python 2.7.6): import mercurial.parsers as parsers parsers.parse_index2(0, 0) Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 0 parsers.so 0x000000010e071c59 _index_clearcaches + 73 (parsers.c:644) 1 parsers.so 0x000000010e06f2d5 index_dealloc + 21 (parsers.c:1767) 2 parsers.so 0x000000010e074e3b parse_index2 + 347 (parsers.c:1891) 3 org.python.python 0x000000010dda8b17 PyEval_EvalFrameEx + 9911 This happens because when arguments of the wrong type are passed to parsers.parse_index2(), indexType's initialization function index_init() in parsers.c leaves the indexObject instance in a state that indexType's destructor function index_dealloc() cannot handle. This patch moves enough of the indexObject initialization code inside index_init() from after the argument validation code to before it. This way, when bad arguments are passed to index_init(), the destructor doesn't crash and the existing code to raise a TypeError works. This patch also adds a test to check that a TypeError is raised.
Mon, 25 Nov 2013 16:15:44 -0600 merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 25 Nov 2013 16:15:44 -0600] rev 20108
merge with stable
Wed, 06 Nov 2013 19:01:14 -0600 bookmarks: consider successor changesets when moving bookmark (issue4015) stable
Sean Farley <sean.michael.farley@gmail.com> [Wed, 06 Nov 2013 19:01:14 -0600] rev 20107
bookmarks: consider successor changesets when moving bookmark (issue4015) Previously, this required -f because we didn't consider obsolete changesets (and their children ... or successors of those children, etc.). We now use obsolete.foreground to calculate acceptable changesets when advancing the bookmark. Test coverage has been added.
Wed, 20 Nov 2013 22:03:15 +0100 util: url keeps backslash in paths stable
Simon Heimberg <simohe@besonet.ch> [Wed, 20 Nov 2013 22:03:15 +0100] rev 20106
util: url keeps backslash in paths Backslashes (\) in paths were encoded to %C5 when converting from url to string. This does not look nice for windows paths. And it introduces many problems when running tests on windows.
Sat, 16 Nov 2013 19:55:38 -0500 tests: deal with new gits sending status messages to stderr stable
Mads Kiilerich <madski@unity3d.com> [Sat, 16 Nov 2013 19:55:38 -0500] rev 20105
tests: deal with new gits sending status messages to stderr git-1.8.4.2 will send messages like Cloning into 'X'... done. to stderr. Mute stderr.
Mon, 25 Nov 2013 13:50:36 -0600 subrepo: sanitize non-hg subrepos stable
Matt Mackall <mpm@selenic.com> [Mon, 25 Nov 2013 13:50:36 -0600] rev 20104
subrepo: sanitize non-hg subrepos
Mon, 25 Nov 2013 13:46:46 -0600 shelve: fix bad argument interaction with largefiles (issue4111) stable
Matt Mackall <mpm@selenic.com> [Mon, 25 Nov 2013 13:46:46 -0600] rev 20103
shelve: fix bad argument interaction with largefiles (issue4111)
Mon, 18 Nov 2013 09:09:05 -0800 strip.stripcmd: remove redundant wlock acquire/release
Siddharth Agarwal <sid0@fb.com> [Mon, 18 Nov 2013 09:09:05 -0800] rev 20102
strip.stripcmd: remove redundant wlock acquire/release Now that we acquire and release a wlock in the outer scope, this is redundant.
Mon, 25 Nov 2013 12:18:29 -0600 merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 25 Nov 2013 12:18:29 -0600] rev 20101
merge with stable
Fri, 15 Nov 2013 18:41:40 -0800 bookmarks: make setcurrent with None an error
Siddharth Agarwal <sid0@fb.com> [Fri, 15 Nov 2013 18:41:40 -0800] rev 20100
bookmarks: make setcurrent with None an error
Fri, 15 Nov 2013 18:31:02 -0800 strip: use bookmarks.unsetcurrent instead of setcurrent with None
Siddharth Agarwal <sid0@fb.com> [Fri, 15 Nov 2013 18:31:02 -0800] rev 20099
strip: use bookmarks.unsetcurrent instead of setcurrent with None
Fri, 15 Nov 2013 18:28:57 -0800 bmstore.write: use unsetcurrent instead of setcurrent with None
Siddharth Agarwal <sid0@fb.com> [Fri, 15 Nov 2013 18:28:57 -0800] rev 20098
bmstore.write: use unsetcurrent instead of setcurrent with None
Fri, 15 Nov 2013 18:06:01 -0800 commands.bookmark: use unsetcurrent instead of setcurrent with None
Siddharth Agarwal <sid0@fb.com> [Fri, 15 Nov 2013 18:06:01 -0800] rev 20097
commands.bookmark: use unsetcurrent instead of setcurrent with None There are currently two different ways we can have no active bookmark: .hg/bookmarks.current being missing and it being an empty file. This patch and upcoming ones make an empty file the only way to represent no active bookmarks. This is the right choice because it matches the state that a new repository without bookmarks will be in.
Mon, 18 Nov 2013 08:57:19 -0800 strip: hold wlock for entire duration stable
Siddharth Agarwal <sid0@fb.com> [Mon, 18 Nov 2013 08:57:19 -0800] rev 20096
strip: hold wlock for entire duration Previously, we'd acquire and release the wlock several times. This meant that other hg processes could come in and change state. Instead of that, retain the wlock for the entire duration of the strip.
Fri, 22 Nov 2013 17:26:58 -0600 merge with stable
Matt Mackall <mpm@selenic.com> [Fri, 22 Nov 2013 17:26:58 -0600] rev 20095
merge with stable
Sun, 10 Nov 2013 18:51:21 +0100 bisect: report "both good and bad" as such, not as "not directly related" stable
Mads Kiilerich <madski@unity3d.com> [Sun, 10 Nov 2013 18:51:21 +0100] rev 20094
bisect: report "both good and bad" as such, not as "not directly related"
Fri, 08 Nov 2013 11:49:13 +0100 phase: better error message when --force is needed stable
Martin Geisler <martin@geisler.net> [Fri, 08 Nov 2013 11:49:13 +0100] rev 20093
phase: better error message when --force is needed When trying to turn a draft changeset into a secret changeset, I was told: % hg phase -s . cannot move 1 changesets to a more permissive phase, use --force no phases changed That message struck me as being backwards -- the secret phase feels less permissive to me since it restricts the changesets from being pushed. We don't use the word "permissive" elsewhere, 'hg help phase' talks about "lower phases" and "higher phases". I therefore reformulated the error message to be cannot move 1 changesets to a higher phase, use --force That is not perfect either, but more in line with the help text. An alternative could be cannot move phase backwards for 1 changesets, use --force which fits better with the help text for --force.
Fri, 08 Nov 2013 09:48:01 +0100 hgweb: ignore non numeric "revcount" parameter values (issue4091) stable
Isaac Jurado <diptongo@gmail.com> [Fri, 08 Nov 2013 09:48:01 +0100] rev 20092
hgweb: ignore non numeric "revcount" parameter values (issue4091)
Tue, 12 Nov 2013 16:23:52 +0900 lock: take both vfs and lock file path relative to vfs to access via vfs
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 12 Nov 2013 16:23:52 +0900] rev 20091
lock: take both vfs and lock file path relative to vfs to access via vfs This patch makes "lock.lock.__init__()" take both vfs and lock file path relative to vfs, instead of absolute path to lock file. This allows lock file to be accessed via vfs.
Tue, 12 Nov 2013 16:23:52 +0900 vfs: add "makelock()" and "readlock()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 12 Nov 2013 16:23:52 +0900] rev 20090
vfs: add "makelock()" and "readlock()"
Tue, 12 Nov 2013 16:23:52 +0900 hg: rewrite "copystore()" with vfs
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 12 Nov 2013 16:23:52 +0900] rev 20089
hg: rewrite "copystore()" with vfs This patch rewrites "copystore()" with vfs, because succeeding patch requires "lock.lock()" invocation with vfs. This patch uses 'dstbase + "/lock"' instead of "join()" with both elements even on Windows environment but it should be reasonable, because target files given from "store.copyfiles()" already uses "/" as path separator. "util.copyfiles()" between two vfs-s may have to be rewritten in the future.
Tue, 12 Nov 2013 16:23:52 +0900 localrepo: import "lock" module as "lockmod" for readability
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 12 Nov 2013 16:23:52 +0900] rev 20088
localrepo: import "lock" module as "lockmod" for readability Before this patch, "localrepo.py" has many methods defining local variable "lock", even though it imports "lock" module as "lock". This ambiguity decreases readability.
Tue, 12 Nov 2013 16:23:52 +0900 transaction: take journal file path relative to vfs to use file API via vfs
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 12 Nov 2013 16:23:52 +0900] rev 20087
transaction: take journal file path relative to vfs to use file API via vfs
Tue, 12 Nov 2013 16:23:52 +0900 vfs: add "chmod()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 12 Nov 2013 16:23:52 +0900] rev 20086
vfs: add "chmod()"
Tue, 12 Nov 2013 16:23:52 +0900 vfs: add "isfile()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 12 Nov 2013 16:23:52 +0900] rev 20085
vfs: add "isfile()"
Tue, 12 Nov 2013 16:23:52 +0900 transaction: unlink target file via vfs
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 12 Nov 2013 16:23:52 +0900] rev 20084
transaction: unlink target file via vfs Before this patch, unlink target file is once opened before unlinking, because "opener" before vfs migration doesn't have "unlink()" function. This patch uses "vfs.unlink()" instead of "open()" and "fp.name".
Sat, 09 Nov 2013 14:50:58 +0100 relink: abort earlier when on different devices (issue3916)
Simon Heimberg <simohe@besonet.ch> [Sat, 09 Nov 2013 14:50:58 +0100] rev 20083
relink: abort earlier when on different devices (issue3916) Add a first check of the devices before collecting candidate files. This is much quicker when big repos are on different devices. Keep the existing check in prune. It checks for same device of the files. This could probably be different in a special repo store (with symlinks).
Mon, 11 Nov 2013 22:59:26 +0100 localrepo: prevent to copy repo local config, copy baseui instead
Simon Heimberg <simohe@besonet.ch> [Mon, 11 Nov 2013 22:59:26 +0100] rev 20082
localrepo: prevent to copy repo local config, copy baseui instead Copying a repos local configuration to another repo is a bad idea because the 2nd repo gets the configuration of the first. Prevent this by really calling repo.baseui.copy when repo.ui.copy is called. This requires some changes in commandserver which needs to clone repo.ui for rejecting temporary changes. This patch has its roots back in the topic "repo isolation" around f0564402d059 and was suggested by mpm.
Fri, 08 Nov 2013 14:42:09 +0900 doc: show details of command options in pages generated by docutils
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 08 Nov 2013 14:42:09 +0900] rev 20081
doc: show details of command options in pages generated by docutils Before this patch, HTML/man pages generated by docutils don't show details of each command options, whether it should take argument or not for example, even though "hg help" does. This patch shows details of command options as same as "hg help" shows. This patch uses "--option <VALUE[+]>" style instead of "--option <VALUE> [+]" used in output of "hg help", because docutils requires that option argument strings starts with "<" and ends with ">".
Tue, 05 Nov 2013 09:43:26 +0100 Makefile: intermediate steps work with temporary copy of hg.pot
Simon Heimberg <simohe@besonet.ch> [Tue, 05 Nov 2013 09:43:26 +0100] rev 20080
Makefile: intermediate steps work with temporary copy of hg.pot In case of abortion or a failing step, the target file remains untouched instead of being in an intermediate state.
Thu, 21 Nov 2013 15:08:30 -0600 merge with stable
Matt Mackall <mpm@selenic.com> [Thu, 21 Nov 2013 15:08:30 -0600] rev 20079
merge with stable
Thu, 21 Nov 2013 11:49:31 -0600 help: drop help for branches template keyword
Matt Mackall <mpm@selenic.com> [Thu, 21 Nov 2013 11:49:31 -0600] rev 20078
help: drop help for branches template keyword The {branches} keyword dates to pre-1.0 Mercurial's tag-like branch scheme which allowed changesets to be on multiple branches. This is the last visible vestige of that scheme, users should instead be using {branch}, possibly with if().
Thu, 21 Nov 2013 12:47:03 -0800 test-command-template.t: fix failure due to trailing whitespace
Siddharth Agarwal <sid0@fb.com> [Thu, 21 Nov 2013 12:47:03 -0800] rev 20077
test-command-template.t: fix failure due to trailing whitespace
Thu, 21 Nov 2013 11:30:52 -0600 templater: makes branches work correctly with stringify (issue4108) stable
Matt Mackall <mpm@selenic.com> [Thu, 21 Nov 2013 11:30:52 -0600] rev 20076
templater: makes branches work correctly with stringify (issue4108)
Mon, 11 Nov 2013 16:35:12 -0800 manifest: increase lrucache from 3 to 4
Durham Goode <durham@fb.com> [Mon, 11 Nov 2013 16:35:12 -0800] rev 20075
manifest: increase lrucache from 3 to 4 During a commit amend there are 4 manifests being handled: - original commit - temporary commit - amended commit - merge base This causes a manifest cache miss which hurts perf on large repos. On a large repo, this fix causes amend to go from 6 seconds to 5.5 seconds.
Mon, 11 Nov 2013 16:42:49 -0800 strip: add faster revlog strip computation
Durham Goode <durham@fb.com> [Mon, 11 Nov 2013 16:42:49 -0800] rev 20074
strip: add faster revlog strip computation The previous revlog strip computation would walk every rev in the revlog, from the bottom to the top. Since we're usually stripping only the top few revs of the revlog, this was needlessly expensive on large repos. The new algorithm walks the exact number of revs that will be stripped, thus making the operation not dependent on the number of revs in the repo. This makes amend on a large repo go from 8.7 seconds to 6 seconds.
Mon, 11 Nov 2013 16:40:02 -0800 revlog: return lazy set from findcommonmissing
Durham Goode <durham@fb.com> [Mon, 11 Nov 2013 16:40:02 -0800] rev 20073
revlog: return lazy set from findcommonmissing When computing the commonmissing, it greedily computes the entire set immediately. On a large repo where the majority of history is irrelevant, this causes a significant slow down. Replacing it with a lazy set makes amend go from 11 seconds to 8.7 seconds.
Tue, 19 Nov 2013 11:29:56 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 19 Nov 2013 11:29:56 -0500] rev 20072
merge with stable
Sun, 17 Nov 2013 15:11:09 -0800 histedit: hold wlock and lock while in progress stable
Siddharth Agarwal <sid0@fb.com> [Sun, 17 Nov 2013 15:11:09 -0800] rev 20071
histedit: hold wlock and lock while in progress Currently, histedit acquires and releases lock and wlock several times during its run. This isn't great because it allows other hg processes to come in and change state. With this fix, lock and wlock are acquired and released exactly once. The change to test-histedit-drop.t is a minor implementation one -- the cache is still correctly invalidated, but it just happens a little later and only gets printed out because of the unrelated --debug flag.
Mon, 18 Nov 2013 15:43:45 -0500 merge with i18n stable
Matt Mackall <mpm@selenic.com> [Mon, 18 Nov 2013 15:43:45 -0500] rev 20070
merge with i18n
Mon, 18 Nov 2013 13:29:05 -0200 i18n-pt_BR: fix typos in notify docs stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Mon, 18 Nov 2013 13:29:05 -0200] rev 20069
i18n-pt_BR: fix typos in notify docs
Sun, 17 Nov 2013 19:52:49 -0200 i18n-pt_BR: synchronized with 06e118c097ff stable
Wagner Bruna <wbruna@yahoo.com> [Sun, 17 Nov 2013 19:52:49 -0200] rev 20068
i18n-pt_BR: synchronized with 06e118c097ff
Mon, 18 Nov 2013 15:37:09 -0500 templater: only recursively evaluate string literals as templates (issue4103) stable
Matt Mackall <mpm@selenic.com> [Mon, 18 Nov 2013 15:37:09 -0500] rev 20067
templater: only recursively evaluate string literals as templates (issue4103)
Mon, 18 Nov 2013 14:02:26 -0500 templater: fix escaping in nested string literals (issue4102) stable
Matt Mackall <mpm@selenic.com> [Mon, 18 Nov 2013 14:02:26 -0500] rev 20066
templater: fix escaping in nested string literals (issue4102) Before the templater got extended for nested expressions, it made sense to decode string escapes across the whole string. Now we do it on a piece by piece basis.
Sun, 17 Nov 2013 20:22:59 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Sun, 17 Nov 2013 20:22:59 -0500] rev 20065
merge with stable
Thu, 07 Nov 2013 20:36:26 -0800 shelve: unshelve using an unfiltered repository stable
David Soria Parra <davidsp@fb.com> [Thu, 07 Nov 2013 20:36:26 -0800] rev 20064
shelve: unshelve using an unfiltered repository when evolve is enabled and a hidden obsolete changeset exists in the repository, the strip during unshelve will fail due to filtered revs. we use an unfiltered repository like to repair.strip to strip the proper nodes.
Thu, 07 Nov 2013 01:56:40 +0100 largefiles: update in two steps, handle interrupted updates better stable
Mads Kiilerich <madski@unity3d.com> [Thu, 07 Nov 2013 01:56:40 +0100] rev 20063
largefiles: update in two steps, handle interrupted updates better An update would try to fetch any missing largefiles after having updated normal files and standins. That could fail or be interrupted and would leave the working directory in a state where the largefiles not only were missing but also were scheduled for remove ... and where the old largefile was left in place. Instead we now remove old largefiles before starting to download and update missing largefiles.
Thu, 07 Nov 2013 01:49:48 +0100 largefiles: inline _updatelfile, prepare for further refactorings stable
Mads Kiilerich <madski@unity3d.com> [Thu, 07 Nov 2013 01:49:48 +0100] rev 20062
largefiles: inline _updatelfile, prepare for further refactorings
Thu, 07 Nov 2013 01:48:00 +0100 largefiles: cache largefiles for update, also without printmessage stable
Mads Kiilerich <madski@unity3d.com> [Thu, 07 Nov 2013 01:48:00 +0100] rev 20061
largefiles: cache largefiles for update, also without printmessage
Thu, 07 Nov 2013 01:47:59 +0100 largefiles: cleanup of printmessage handling - the printed flag was redundant stable
Mads Kiilerich <madski@unity3d.com> [Thu, 07 Nov 2013 01:47:59 +0100] rev 20060
largefiles: cleanup of printmessage handling - the printed flag was redundant
Sun, 17 Nov 2013 18:13:55 -0500 test-module-imports: skip on Python < 2.6, since ast is new in 2.6
Augie Fackler <raf@durin42.com> [Sun, 17 Nov 2013 18:13:55 -0500] rev 20059
test-module-imports: skip on Python < 2.6, since ast is new in 2.6
Sun, 17 Nov 2013 17:49:48 -0500 Merge with stable.
Augie Fackler <raf@durin42.com> [Sun, 17 Nov 2013 17:49:48 -0500] rev 20058
Merge with stable.
Sat, 16 Nov 2013 19:56:30 -0500 convert: fix svn crash when svn.ra.get_log calls back with orig_paths=None stable
Mads Kiilerich <madski@unity3d.com> [Sat, 16 Nov 2013 19:56:30 -0500] rev 20057
convert: fix svn crash when svn.ra.get_log calls back with orig_paths=None get_log started calling back with orig_paths=None on Fedora 20 with subversion-1.8.3. That broke test-convert-svn-source.t . There used to be some handling of that situation until e8f4e40f285a apparently broke it. This patch restores what seems to be the most obvious handling of the situation.
Sat, 16 Nov 2013 17:30:34 -0500 share: fix unshare calling wrong repo.__init__() method stable
Brodie Rao <brodie@sf.io> [Sat, 16 Nov 2013 17:30:34 -0500] rev 20056
share: fix unshare calling wrong repo.__init__() method When running the unshare command, if there's other code that tries to use the repo after the command is finished, it'll end up with a ui object for repo.unfiltered(). This change fixes an erroneous call to repo.__init__() that could be on the repoview proxy class--now it's always done on the unfiltered repo.
Sun, 17 Nov 2013 13:31:18 -0800 statichttprepo.httprangeheader: implement readlines
Siddharth Agarwal <sid0@fb.com> [Sun, 17 Nov 2013 13:31:18 -0800] rev 20055
statichttprepo.httprangeheader: implement readlines bookmarks.readcurrent() requires readlines() on file objects returned from repo.vfs. It isn't used right now but will be in upcoming patches.
Sun, 17 Nov 2013 13:28:11 -0800 statichttprepo: pass in True to splitlines, not 1
Siddharth Agarwal <sid0@fb.com> [Sun, 17 Nov 2013 13:28:11 -0800] rev 20054
statichttprepo: pass in True to splitlines, not 1 splitlines actually takes a boolean.
Sat, 16 Nov 2013 15:46:28 -0500 mq: don't add '* * *' separators when there is no commit message
Mads Kiilerich <madski@unity3d.com> [Sat, 16 Nov 2013 15:46:28 -0500] rev 20053
mq: don't add '* * *' separators when there is no commit message
Sat, 16 Nov 2013 15:46:29 -0500 bisect: avoid confusing use of variables with same names in nested local scopes
Mads Kiilerich <madski@unity3d.com> [Sat, 16 Nov 2013 15:46:29 -0500] rev 20052
bisect: avoid confusing use of variables with same names in nested local scopes
Sat, 16 Nov 2013 15:46:29 -0500 discovery: make note messages for new heads more readable
Mads Kiilerich <madski@unity3d.com> [Sat, 16 Nov 2013 15:46:29 -0500] rev 20051
discovery: make note messages for new heads more readable
Sat, 16 Nov 2013 15:46:29 -0500 discovery: tweak error message for multiple branch heads
Mads Kiilerich <madski@unity3d.com> [Sat, 16 Nov 2013 15:46:29 -0500] rev 20050
discovery: tweak error message for multiple branch heads
Sat, 16 Nov 2013 15:46:29 -0500 test-obsolete-checkheads.t: remove todo comment that was fixed in be0fcbb1c92f
Mads Kiilerich <madski@unity3d.com> [Sat, 16 Nov 2013 15:46:29 -0500] rev 20049
test-obsolete-checkheads.t: remove todo comment that was fixed in be0fcbb1c92f
Sun, 17 Nov 2013 11:18:39 -0500 convert: readability and test of rpairs function
Mads Kiilerich <madski@unity3d.com> [Sun, 17 Nov 2013 11:18:39 -0500] rev 20048
convert: readability and test of rpairs function
Sun, 17 Nov 2013 11:16:59 -0500 tests: make doctest test runner less verbose
Mads Kiilerich <madski@unity3d.com> [Sun, 17 Nov 2013 11:16:59 -0500] rev 20047
tests: make doctest test runner less verbose
Sun, 17 Nov 2013 10:59:35 -0500 tests: python hash seed is only relevant after failures - otherwise keep quiet
Mads Kiilerich <madski@unity3d.com> [Sun, 17 Nov 2013 10:59:35 -0500] rev 20046
tests: python hash seed is only relevant after failures - otherwise keep quiet
Sat, 16 Nov 2013 13:29:39 -0800 scmutil.filecache: support watching over multiple files
Siddharth Agarwal <sid0@fb.com> [Sat, 16 Nov 2013 13:29:39 -0800] rev 20045
scmutil.filecache: support watching over multiple files
Sat, 16 Nov 2013 13:24:26 -0800 scmutil: introduce a filecacheentry that can watch multiple paths
Siddharth Agarwal <sid0@fb.com> [Sat, 16 Nov 2013 13:24:26 -0800] rev 20044
scmutil: introduce a filecacheentry that can watch multiple paths
Sat, 16 Nov 2013 13:19:06 -0800 scmutil: rename filecacheentry to filecachesubentry
Siddharth Agarwal <sid0@fb.com> [Sat, 16 Nov 2013 13:19:06 -0800] rev 20043
scmutil: rename filecacheentry to filecachesubentry Upcoming patches will allow the file cache to watch over multiple files, and call the decorated function again if any of the files change. The particular use case for this is the bookmark store, which needs to be invalidated if either .hg/bookmarks or .hg/bookmarks.current changes. (This doesn't currently happen, which is a bug. This bug will also be fixed in upcoming patches.)
Sat, 16 Nov 2013 13:33:33 -0800 scmutil.filecacheentry: make stat argument to constructor mandatory
Siddharth Agarwal <sid0@fb.com> [Sat, 16 Nov 2013 13:33:33 -0800] rev 20042
scmutil.filecacheentry: make stat argument to constructor mandatory There's no real upside to making stat optional -- this constructor has just two callers.
Sat, 16 Nov 2013 13:57:35 -0800 test-filecache.py: add markers to the output for each event
Siddharth Agarwal <sid0@fb.com> [Sat, 16 Nov 2013 13:57:35 -0800] rev 20041
test-filecache.py: add markers to the output for each event Previously it was possible that a different, incorrect set of events might print out 'creating' the same number of times.
Sat, 16 Nov 2013 14:10:28 -0800 test-filecache.py: make setbeforeget test clearer
Siddharth Agarwal <sid0@fb.com> [Sat, 16 Nov 2013 14:10:28 -0800] rev 20040
test-filecache.py: make setbeforeget test clearer '0' and 'None' as outputs tripped me up. Make the distinction between values set externally and values computed by calling the decorated function clearer.
Sun, 17 Nov 2013 13:38:35 -0500 test-module-imports.t: new test to use the import cycle detector
Augie Fackler <raf@durin42.com> [Sun, 17 Nov 2013 13:38:35 -0500] rev 20039
test-module-imports.t: new test to use the import cycle detector
Sun, 17 Nov 2013 13:33:20 -0500 import-checker: try a little harder to show fewer cycles
Augie Fackler <raf@durin42.com> [Sun, 17 Nov 2013 13:33:20 -0500] rev 20038
import-checker: try a little harder to show fewer cycles This makes sure that all cycles begin with the lexicographically first module, so that we're less likely to show overlapping cycles in the final analysis.
Sun, 17 Nov 2013 16:58:18 -0500 import-checker: ignore nested imports
Augie Fackler <raf@durin42.com> [Sun, 17 Nov 2013 16:58:18 -0500] rev 20037
import-checker: ignore nested imports
Sun, 17 Nov 2013 13:04:18 -0500 contrib: add an import checker
Augie Fackler <raf@durin42.com> [Sun, 17 Nov 2013 13:04:18 -0500] rev 20036
contrib: add an import checker This checks for cycles in the module graph and verifies that imports of stdlib modules are not on the same line as relative imports of mercurial modules.
Wed, 06 Nov 2013 22:09:15 -0500 makememctx: move from patch to context to break import cycle
Augie Fackler <raf@durin42.com> [Wed, 06 Nov 2013 22:09:15 -0500] rev 20035
makememctx: move from patch to context to break import cycle
Wed, 06 Nov 2013 16:48:06 -0500 cleanup: move stdlib imports to their own import statement
Augie Fackler <raf@durin42.com> [Wed, 06 Nov 2013 16:48:06 -0500] rev 20034
cleanup: move stdlib imports to their own import statement There are a few warnings still produced by my import checker, but those are false positives produced by modules that share a name with stdlib modules.
Wed, 06 Nov 2013 18:19:04 -0500 pathutil: tease out a new library to break an import cycle from canonpath use
Augie Fackler <raf@durin42.com> [Wed, 06 Nov 2013 18:19:04 -0500] rev 20033
pathutil: tease out a new library to break an import cycle from canonpath use
Wed, 06 Nov 2013 14:38:34 -0500 subsettable: move from repoview to branchmap, the only place it's used
Augie Fackler <raf@durin42.com> [Wed, 06 Nov 2013 14:38:34 -0500] rev 20032
subsettable: move from repoview to branchmap, the only place it's used This is a step towards breaking an import cycle between revset and repoview. Import cycles happened to work in Python 2 with implicit relative imports, but breaks on Python 3 when we start using explicit relative imports via 2to3 rewrite rules.
Sat, 16 Nov 2013 20:12:02 -0500 obsolete: add __eq__ and __hash__ to marker to make set() deduplication work
Augie Fackler <raf@durin42.com> [Sat, 16 Nov 2013 20:12:02 -0500] rev 20031
obsolete: add __eq__ and __hash__ to marker to make set() deduplication work
Sat, 16 Nov 2013 20:31:58 -0500 obsolete: do not accept duplicated marker during exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 16 Nov 2013 20:31:58 -0500] rev 20030
obsolete: do not accept duplicated marker during exchange Before this patch, duplicated obsolescence markers could slip into an obstore if the bookmark was unknown locally and duplicated in the incoming obsolescence stream. Existing duplicate markers will not be automatically removed but they'll stop propagating. Having a few duplicated markers is harmless and people have been warned evolution is <blink>experimental</blink> anyway.
Sun, 17 Nov 2013 13:42:24 -0500 Merge with stable.
Augie Fackler <raf@durin42.com> [Sun, 17 Nov 2013 13:42:24 -0500] rev 20029
Merge with stable.
Sat, 16 Nov 2013 20:34:58 -0500 obsolete: stop doing membership test on list stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 16 Nov 2013 20:34:58 -0500] rev 20028
obsolete: stop doing membership test on list According to the Surgeon General, computer should not use list for membership testing because of the risk of being slow.
Fri, 08 Nov 2013 12:45:52 +0900 bookmarks: rewrite pushing bookmarks in "localrepository.push()" by "compare()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 08 Nov 2013 12:45:52 +0900] rev 20027
bookmarks: rewrite pushing bookmarks in "localrepository.push()" by "compare()" This patch adds "updateremote()", which uses "compare()" to compare bookmarks between the local and the remote repositories, to replace pushing local bookmarks in "localrepository.push()".
Fri, 08 Nov 2013 12:45:52 +0900 bookmarks: rewrite pushing local bookmarks in "commands.push()" by "compare()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 08 Nov 2013 12:45:52 +0900] rev 20026
bookmarks: rewrite pushing local bookmarks in "commands.push()" by "compare()" This patch adds "pushtoremote()", which uses "compare()" to compare bookmarks between the local and the remote repositories, to replace pushing local bookmarks in "commands.push()".
Fri, 08 Nov 2013 12:45:52 +0900 bookmarks: rewrite "updatefromremote()" by "compare()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 08 Nov 2013 12:45:52 +0900] rev 20025
bookmarks: rewrite "updatefromremote()" by "compare()" To update entries in bmstore "localmarks", this patch uses "bin(changesetid)" instead of "repo[changesetid].node()" used in original "updatefromremote()" implementation, because the former is cheaper than the latter.
Fri, 08 Nov 2013 12:45:52 +0900 bookmarks: add function to centralize the logic to compare bookmarks
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 08 Nov 2013 12:45:52 +0900] rev 20024
bookmarks: add function to centralize the logic to compare bookmarks This patch adds "compare()" function to centralize the logic to compare bookmarks between two repositories.
Sun, 10 Nov 2013 18:23:29 +0400 hgweb: use semantically suitable filelog.revs in filelog
Alexander Plavin <alexander@plav.in> [Sun, 10 Nov 2013 18:23:29 +0400] rev 20023
hgweb: use semantically suitable filelog.revs in filelog The functions are equivalent in behaviour, so no behavior change.
Sun, 10 Nov 2013 18:07:56 +0400 hgweb: always compute all entries and latestentry in filelog
Alexander Plavin <alexander@plav.in> [Sun, 10 Nov 2013 18:07:56 +0400] rev 20022
hgweb: always compute all entries and latestentry in filelog This is the same thing which was done for changelog earlier, and it doesn't affect performance at all. This change will make it possible to get the first entry of the next page easily without computing the list twice.
Sun, 10 Nov 2013 18:05:53 +0400 hgweb: remove unused argument of entries function in filelog
Alexander Plavin <alexander@plav.in> [Sun, 10 Nov 2013 18:05:53 +0400] rev 20021
hgweb: remove unused argument of entries function in filelog This doesn't change the behavior as the argument wasn't used anyway.
Sat, 16 Nov 2013 23:14:20 +0900 transplant: use peer of source repository as "remote" for "repo.pull()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 16 Nov 2013 23:14:20 +0900] rev 20020
transplant: use peer of source repository as "remote" for "repo.pull()" Before this patch, transplant with "--merge" option fails with traceback unexpectedly, if it causes pull from the source repository on the local host. "discovery.findcommonincoming()" invokes "capable()" method on the object given from "localrepository.pull()", but it is "localrepository" object in this case and doesn't have such method. This patch uses peer object of source repository as "remote" argument for "localrepository.pull()" invocation like other invocations of it in transplant.py.
Fri, 15 Nov 2013 22:57:11 -0500 run-tests: remove files that we potentially create outside of $TMPDIR
Sean Farley <sean.michael.farley@gmail.com> [Fri, 15 Nov 2013 22:57:11 -0500] rev 20019
run-tests: remove files that we potentially create outside of $TMPDIR
Fri, 15 Nov 2013 22:56:08 -0500 run-tests: remove code that creates a dummy 'diffstat'
Sean Farley <sean.michael.farley@gmail.com> [Fri, 15 Nov 2013 22:56:08 -0500] rev 20018
run-tests: remove code that creates a dummy 'diffstat' This was introduced in fb1d7a42663c for an old test that is no longer the same.
Fri, 15 Nov 2013 18:08:50 -0500 template: change extras to use showlist rather than manual templ call.
Matthew Turk <matthewturk@gmail.com> [Fri, 15 Nov 2013 18:08:50 -0500] rev 20017
template: change extras to use showlist rather than manual templ call. This enables start_extras and end_extras in template maps.
Fri, 15 Nov 2013 18:09:02 -0500 help: adding example 'extras' printing to 'hg help templates'
Matthew Turk <matthewturk@gmail.com> [Fri, 15 Nov 2013 18:09:02 -0500] rev 20016
help: adding example 'extras' printing to 'hg help templates'
Fri, 15 Nov 2013 16:53:54 -0500 help: document about {extras} template keyword
Matthew Turk <matthewturk@gmail.com> [Fri, 15 Nov 2013 16:53:54 -0500] rev 20015
help: document about {extras} template keyword This adds text about the "extras" template keyword, similar to that proposed by Yuya Nishihara previously.
Sat, 09 Nov 2013 14:50:12 +0100 check-code: document last ignore regexp
Simon Heimberg <simohe@besonet.ch> [Sat, 09 Nov 2013 14:50:12 +0100] rev 20014
check-code: document last ignore regexp For easier remembering to delete when it is not needed anymore.
Sat, 09 Nov 2013 14:49:05 +0100 check-code: drop unneeded ignore patterns
Simon Heimberg <simohe@besonet.ch> [Sat, 09 Nov 2013 14:49:05 +0100] rev 20013
check-code: drop unneeded ignore patterns The exceptions seem to have disappeared.
Sat, 16 Nov 2013 12:44:28 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Sat, 16 Nov 2013 12:44:28 -0500] rev 20012
merge with stable
Sat, 16 Nov 2013 12:34:05 -0500 merge with i18n stable
Matt Mackall <mpm@selenic.com> [Sat, 16 Nov 2013 12:34:05 -0500] rev 20011
merge with i18n
Fri, 15 Nov 2013 13:20:49 -0800 contrib: add editmerge script for editor conflict prompts
Durham Goode <durham@fb.com> [Fri, 15 Nov 2013 13:20:49 -0800] rev 20010
contrib: add editmerge script for editor conflict prompts Adds a script that opens the editor to the conflict as part of the merge process. This way you can fix the merge during the rebase instead of having to pause the rebase, resolve --mark, rebase --continue. Only works on unix.
Thu, 14 Nov 2013 21:37:18 -0600 strip: fix last unprotected mq reference (issue4097) stable
Matt Mackall <mpm@selenic.com> [Thu, 14 Nov 2013 21:37:18 -0600] rev 20009
strip: fix last unprotected mq reference (issue4097)
Thu, 14 Nov 2013 18:07:43 -0600 tests: skip tests that require not having root (issue4089)
Matt Mackall <mpm@selenic.com> [Thu, 14 Nov 2013 18:07:43 -0600] rev 20008
tests: skip tests that require not having root (issue4089) This adds a new root hghave to test against. Almost all of these are a subset of unix-permissions, but that is also used for checking exec bit handling.
Thu, 14 Nov 2013 17:17:44 -0600 make: restrict recursion in make clean
Matt Mackall <mpm@selenic.com> [Thu, 14 Nov 2013 17:17:44 -0600] rev 20007
make: restrict recursion in make clean
Tue, 12 Nov 2013 00:07:23 +0900 scmutil: skip checks in "casecollisionauditor" if filename is already checked
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 12 Nov 2013 00:07:23 +0900] rev 20006
scmutil: skip checks in "casecollisionauditor" if filename is already checked Before this patch, almost all of check code in "casecollisionauditor.__call__()" is executed, even if specified filename is already checked, because "f in self._newfiles" is examined lastly. In addition to it, adding "fl" to "self._loweredfiles" and "f" to "self._newfiles" are also redundant in such case. This patch checks "f in self._newfiles" first, and returns immediately to avoid execution of check code for efficiency.
Sat, 09 Nov 2013 10:21:20 +0100 check-code: prepend warning prefix only once, but for each warning stable
Simon Heimberg <simohe@besonet.ch> [Sat, 09 Nov 2013 10:21:20 +0100] rev 20005
check-code: prepend warning prefix only once, but for each warning The code adding the prefix is now run once per pattern. It was run once per file (after the change 3e1e4a8aec1e). Demonstrate that it is working now by extending the test. Raise two different warnings, one of them twice.
Wed, 13 Nov 2013 16:46:46 -0200 hgweb, i18n: do not translate search mode description stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Wed, 13 Nov 2013 16:46:46 -0200] rev 20004
hgweb, i18n: do not translate search mode description The search mode description can't be translated by itself, since it's displayed as part of a template phrase (the "Assuming ..." / "Use ... instead" bits). Just drop the translation markers for now, since the templates themselves currently do not support translations.
Sun, 10 Nov 2013 16:48:24 +0900 tests: end output lines including path with "(glob)" to pass on Windows stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sun, 10 Nov 2013 16:48:24 +0900] rev 20003
tests: end output lines including path with "(glob)" to pass on Windows
Sun, 10 Nov 2013 16:48:24 +0900 tests: quote environment variable to extract wildcard on MinGW environment stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sun, 10 Nov 2013 16:48:24 +0900] rev 20002
tests: quote environment variable to extract wildcard on MinGW environment On MinGW environment, the command line below in test script can't extract wildcard "*" and remove target files correctly. $ rm $ENVVAR/foo/bar.* To extract wildcard, environment variable should be quoted by double quotation like below: $ rm "$ENVVAR"/foo/bar.* This patch also omits "-f" of "rm" to know whether files are removed or not by exit code of it.
Sun, 10 Nov 2013 16:48:24 +0900 tests: choose the path separator in PYTHONPATH suitable for platform stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sun, 10 Nov 2013 16:48:24 +0900] rev 20001
tests: choose the path separator in PYTHONPATH suitable for platform Before this patch, test code introduced by e3a5922e18c3 into test-extension.t always uses ":" as the path separator in PYTHONPATH. But ";" should be used on Windows. This patch chooses the path separator in PYTHONPATH suitable for platform.
Fri, 08 Nov 2013 12:35:50 +0100 util: warn when adding paths ending with \ stable
Mads Kiilerich <madski@unity3d.com> [Fri, 08 Nov 2013 12:35:50 +0100] rev 20000
util: warn when adding paths ending with \ Paths ending with \ will fail the verification introduced in 684a977c2ae0 when checking out on Windows ... and if it didn't fail it would probably not do what the user expected.
Tue, 05 Nov 2013 09:00:31 +0100 check-code: more replacement characters stable
Simon Heimberg <simohe@besonet.ch> [Tue, 05 Nov 2013 09:00:31 +0100] rev 19999
check-code: more replacement characters for finding '.. note::' (even) more exact by using more characters: replace '.' with 'p' and ':' with 'q'
Tue, 05 Nov 2013 09:00:31 +0100 check-code: check comment for '.. note::' without two newlines stable
Simon Heimberg <simohe@besonet.ch> [Tue, 05 Nov 2013 09:00:31 +0100] rev 19998
check-code: check comment for '.. note::' without two newlines Because string entries are replaced before matching, we must search for the transformed pattern. But it seems to be quite unique and does not return false matches. If it will, they can be listed as 3rd arg in pypats.
Tue, 05 Nov 2013 08:59:55 +0100 documentation: add an extra newline after note directive stable
Simon Heimberg <simohe@besonet.ch> [Tue, 05 Nov 2013 08:59:55 +0100] rev 19997
documentation: add an extra newline after note directive Like this no docutils version interprets any line in the following text as argument of note.
Mon, 04 Nov 2013 10:23:06 +0100 tests: modify minirst test input to new format stable
Simon Heimberg <simohe@besonet.ch> [Mon, 04 Nov 2013 10:23:06 +0100] rev 19996
tests: modify minirst test input to new format Modifying the test input data shows the effects of the last patches. In text output nothing has changed. In html output the title has moved on its own line.
Mon, 04 Nov 2013 10:23:06 +0100 minirst: do not add a 2nd empty paragraph stable
Simon Heimberg <simohe@besonet.ch> [Mon, 04 Nov 2013 10:23:06 +0100] rev 19995
minirst: do not add a 2nd empty paragraph This does not add a separating block after a separated note directive. .. note:: text is formatted to Note: text
Mon, 04 Nov 2013 10:23:06 +0100 minirst: find admonitions before pruning comments and adding margins stable
Simon Heimberg <simohe@besonet.ch> [Mon, 04 Nov 2013 10:23:06 +0100] rev 19994
minirst: find admonitions before pruning comments and adding margins Lines with only a directive are not deleted anymore because they are detected before comments are deleted by prunecomments(). addmargins() will be adapted later.
Mon, 04 Nov 2013 10:23:06 +0100 minirst: do not fail on an empty admonition block stable
Simon Heimberg <simohe@besonet.ch> [Mon, 04 Nov 2013 10:23:06 +0100] rev 19993
minirst: do not fail on an empty admonition block
Mon, 04 Nov 2013 10:23:06 +0100 minirst: do not interpret a directive as a literal block stable
Simon Heimberg <simohe@besonet.ch> [Mon, 04 Nov 2013 10:23:06 +0100] rev 19992
minirst: do not interpret a directive as a literal block When a directive was on its own line, it was interpreted as a literal block. Example of problematic input: .. note:: a note text
Tue, 05 Nov 2013 09:43:36 +0100 Makefile: do update on a temporary copy of a po file
Simon Heimberg <simohe@besonet.ch> [Tue, 05 Nov 2013 09:43:36 +0100] rev 19991
Makefile: do update on a temporary copy of a po file This avoids having a half completed file (with a new timestamp) when msgmerge has failed.
Mon, 04 Nov 2013 10:52:41 -0200 i18n-pt_BR: synchronized with d24ee6d7d167 stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Mon, 04 Nov 2013 10:52:41 -0200] rev 19990
i18n-pt_BR: synchronized with d24ee6d7d167
Thu, 07 Nov 2013 15:24:23 -0600 date: allow %z in format (issue4040)
Matt Mackall <mpm@selenic.com> [Thu, 07 Nov 2013 15:24:23 -0600] rev 19989
date: allow %z in format (issue4040)
Wed, 06 Nov 2013 16:36:07 -0600 merge with stable
Matt Mackall <mpm@selenic.com> [Wed, 06 Nov 2013 16:36:07 -0600] rev 19988
merge with stable
Wed, 06 Nov 2013 10:20:18 -0800 merge: move forgets to the beginning of the action list stable
Siddharth Agarwal <sid0@fb.com> [Wed, 06 Nov 2013 10:20:18 -0800] rev 19987
merge: move forgets to the beginning of the action list Forgets need to be in the beginning of the action list, same as removes. This lets us avoid clashes in the dirstate where a directory is forgotten and a file with the same name is added, or vice versa.
Fri, 01 Nov 2013 17:08:06 -0700 rebase: fix working copy location after a --collapse (issue4080) stable
Durham Goode <durham@fb.com> [Fri, 01 Nov 2013 17:08:06 -0700] rev 19986
rebase: fix working copy location after a --collapse (issue4080) Rebasing with --collapse would leave the working copy on the parent of the collapsed commit, instead of on the collapsed commit. This fixes that. Also fixes a few tests that already covered this area but had bad data. This also fixes issue3716 where bookmarks are not kept across rebases with --collapse. I updated the test to cover that case as well.
Wed, 06 Nov 2013 12:53:39 -0500 Merge with stable.
Augie Fackler <raf@durin42.com> [Wed, 06 Nov 2013 12:53:39 -0500] rev 19985
Merge with stable.
Mon, 04 Nov 2013 19:59:00 -0800 rebase: fix rebase aborts when 'tip-1' is public (issue4082) stable
Durham Goode <durham@fb.com> [Mon, 04 Nov 2013 19:59:00 -0800] rev 19984
rebase: fix rebase aborts when 'tip-1' is public (issue4082) When aborting a rebase where tip-1 is public, rebase would fail to undo the merge state. This caused unexpected dirstate parents and also caused unshelve to become unabortable (since it uses rebase under the hood). The problem was that rebase uses -2 as a marker rev, and when it checked for immutableness during the abort, -2 got resolved to the second to last entry in the phase cache. Adds a test for the fix. Add exception to phase code to prevent this in the future.
Tue, 05 Nov 2013 13:25:45 -0500 Merge with stable.
Augie Fackler <raf@durin42.com> [Tue, 05 Nov 2013 13:25:45 -0500] rev 19983
Merge with stable.
Sat, 02 Nov 2013 11:25:04 +0100 check-code: prepend warning prefix for repeated warnings only once
Simon Heimberg <simohe@besonet.ch> [Sat, 02 Nov 2013 11:25:04 +0100] rev 19982
check-code: prepend warning prefix for repeated warnings only once When a warning occured several times in one file, "warning: " was prepended several times: examplefile.py:3: > def a(object): warning: this looks wrong examplefile.py:27: > def x(object): warning: warning: this looks wrong
Sat, 02 Nov 2013 11:25:33 +0100 check-code: fix an error message
Simon Heimberg <simohe@besonet.ch> [Sat, 02 Nov 2013 11:25:33 +0100] rev 19981
check-code: fix an error message
Tue, 05 Nov 2013 10:55:45 +0100 test: do not add .pyc and .orig in test-commit-amend.t (issue4085) stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 05 Nov 2013 10:55:45 +0100] rev 19980
test: do not add .pyc and .orig in test-commit-amend.t (issue4085) This makes the test fails with disabled byte-compilation (PYTHONDONTWRITEBYTECODE="1" environmental variable).
Fri, 01 Nov 2013 17:04:18 -0500 Added signature for changeset d825e4025e39 stable
Matt Mackall <mpm@selenic.com> [Fri, 01 Nov 2013 17:04:18 -0500] rev 19979
Added signature for changeset d825e4025e39
Fri, 01 Nov 2013 17:04:14 -0500 Added tag 2.8 for changeset d825e4025e39 stable
Matt Mackall <mpm@selenic.com> [Fri, 01 Nov 2013 17:04:14 -0500] rev 19978
Added tag 2.8 for changeset d825e4025e39
Fri, 01 Nov 2013 17:04:03 -0500 merge with i18n stable 2.8
Matt Mackall <mpm@selenic.com> [Fri, 01 Nov 2013 17:04:03 -0500] rev 19977
merge with i18n
Fri, 01 Nov 2013 11:04:48 -0200 i18n-pt_BR: fix a few missing changes on 95304251c376 stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Fri, 01 Nov 2013 11:04:48 -0200] rev 19976
i18n-pt_BR: fix a few missing changes on 95304251c376
Thu, 31 Oct 2013 00:25:20 -0200 i18n-pt_BR: synchronized with 95304251c376 stable
Wagner Bruna <wbruna@yahoo.com> [Thu, 31 Oct 2013 00:25:20 -0200] rev 19975
i18n-pt_BR: synchronized with 95304251c376
Thu, 31 Oct 2013 03:05:46 +0900 i18n-ja: synchronized with 1d7a36ff2615 stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 31 Oct 2013 03:05:46 +0900] rev 19974
i18n-ja: synchronized with 1d7a36ff2615
Sun, 13 Oct 2013 08:38:30 -0400 patch: ensure valid git diffs if source/destination file is missing (issue4046) stable
Johan Bjork <jbjoerk@gmail.com> [Sun, 13 Oct 2013 08:38:30 -0400] rev 19973
patch: ensure valid git diffs if source/destination file is missing (issue4046) This is arguably a workaround, a better fix may be in the repo to ensure that it won't list a file 'modified' unless there is a file context for the previous version.
Sun, 27 Oct 2013 00:24:25 +0900 histedit: add description about exit code stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sun, 27 Oct 2013 00:24:25 +0900] rev 19972
histedit: add description about exit code
Sun, 27 Oct 2013 00:24:25 +0900 rebase: add description about exit code when there are unresolved conflicts stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sun, 27 Oct 2013 00:24:25 +0900] rev 19971
rebase: add description about exit code when there are unresolved conflicts
Sat, 02 Nov 2013 04:49:42 +0900 shelve: remove unused variable assignment stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 02 Nov 2013 04:49:42 +0900] rev 19970
shelve: remove unused variable assignment Fix test-check-pyflakes.t error after 1d7a36ff2615. This patch replaces "readshelvedfiles()" invocation by "shelvedfile().exists()" check and aborting, because it is required only to ensure that shelved changes corresponded to specified name exist after invocation. This patch also remove definition of "readshelvedfiles()" itself, because it is invoked only from the line removed by this patch.
Wed, 30 Oct 2013 19:45:14 +0100 rebase: fix selection of base used when rebasing merge (issue4041) stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 30 Oct 2013 19:45:14 +0100] rev 19969
rebase: fix selection of base used when rebasing merge (issue4041) Prior this changeset, rebasing a merge whose first parent was not in the rebase lead to wrong and highly conflicting merge. See the in-line comment for details. Test have been updated with the data provided by the reported.
Tue, 29 Oct 2013 21:54:49 +0200 doc: fix internal date sample (issue4072) stable
Pavlos Touboulidis <pav@pav.gr> [Tue, 29 Oct 2013 21:54:49 +0200] rev 19968
doc: fix internal date sample (issue4072)
Mon, 28 Oct 2013 22:34:07 +0100 largefiles: use 'remote'/'local' in merge prompts like in other merge prompts stable
Mads Kiilerich <madski@unity3d.com> [Mon, 28 Oct 2013 22:34:07 +0100] rev 19967
largefiles: use 'remote'/'local' in merge prompts like in other merge prompts Prompts like foo has been turned into a largefile use (l)argefile or keep as (n)ormal file? was not as clear as the usual prompts that use 'remote' or 'local' to explain what happened on which side ... especially not when used to the normal prompts. "as" could also indicate that it would be possible to take the content of the largefile and somehow put it into the normal file. It could make it more clear that it was a choice between one side or the other. For consistency we will now phrase it like: remote turned local normal file f into a largefile use (l)argefile or keep (n)ormal file?
Mon, 28 Oct 2013 22:34:05 +0100 largefiles: systematic testing of merges to/from largefiles stable
Mads Kiilerich <madski@unity3d.com> [Mon, 28 Oct 2013 22:34:05 +0100] rev 19966
largefiles: systematic testing of merges to/from largefiles 427ce5633c1c fixed one problem with update and added a test case for it. The test coverage was thus insufficient before that. To make sure we have good test coverage in this area we add systematic testing of all cases of merges that may or may not change normal files to largefiles or vice versa. The tests shows some annoying extra merge prompts in some cases, but these prompts are hard to avoid and they are now "safe" - they do not leave the system in a confused inconsistent state.
Wed, 23 Oct 2013 23:42:13 +0800 check-code: fix no-check-code skip message - obfuscation was too obscure stable
Mads Kiilerich <madski@unity3d.com> [Wed, 23 Oct 2013 23:42:13 +0800] rev 19965
check-code: fix no-check-code skip message - obfuscation was too obscure
Tue, 29 Oct 2013 01:03:43 +0900 shelve: remove useless and incorrect code paths for file access stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 29 Oct 2013 01:03:43 +0900] rev 19964
shelve: remove useless and incorrect code paths for file access This patch removes code paths in "shelvedfile.opener()", because: - explicit "vfs.mkdir()" invocation is useless "vfs.__call__()" for modes other than "read" creates parent directory of target file automatically by "util.ensuredirs()". - mode checking in "except IOError" code path is useless ENOENT occurs only for "read" mode, because target file is created forcibly for other modes. - there is no explicit "return" statement in the code path for "except IOError" if "mode[0] in 'wa'" this is incorrect, because None may be returnd unexpectedly, even though it seems the EEXIST case in the directory creation race for ".hg/shelved" and is very rare. this directory creation race is also treated in "util.ensuredirs()".
Tue, 29 Oct 2013 01:03:43 +0900 shelve: disallow commit while unshelve is in progress stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 29 Oct 2013 01:03:43 +0900] rev 19963
shelve: disallow commit while unshelve is in progress Before this patch, commit is allowed even while unshelve is in progress. In the other hand, "hg unshelve --abort" and "hg unshelve --continue" check whether parent revisions of the working directory have changed or not since last "hg unshelve", and abort without clearing state for unshelve in progress if they have. This causes that accidental commit makes clearing state for unshelve difficult in ordinary ways. This patch disallows commit while unshelve is in progress for consistency.
Wed, 30 Oct 2013 16:03:42 -0500 bdiff: avoid a memory error on malloc failure stable
Matt Mackall <mpm@selenic.com> [Wed, 30 Oct 2013 16:03:42 -0500] rev 19962
bdiff: avoid a memory error on malloc failure
Wed, 23 Oct 2013 13:12:48 -0700 shelve: use rebase instead of merge (issue4068) stable
Durham Goode <durham@fb.com> [Wed, 23 Oct 2013 13:12:48 -0700] rev 19961
shelve: use rebase instead of merge (issue4068) Previously, shelve used merge to unshelve things. This meant that if you shelved changes on one branch, then unshelved on another, all the changes from the first branch would be present in the second branch, and not just the shelved changes. The fix is to use rebase to pick the shelve commit off the original branch and place it on top of the new branch. This means only the shelved changes are brought across. This has the side effect of fixing several other issues in shelve: - you can now unshelve into a file that already has pending changes - unshelve a mv/cp now has the correct dirstate value (A instead of M) - you can now unshelve to an ancestor of the shelve - unshelve now no longer deletes untracked .orig files Updates tests and adds a new one to cover the issue. The test changes fall into a few categories: - I removed some excess output - The --continue/--abort state is a little different, so the parents and dirstate needed updating - Removed some untracked files at certain points that cluttered the output
Fri, 25 Oct 2013 01:14:18 +0900 doc: put text into header of 1st column in table to generate page correctly stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 25 Oct 2013 01:14:18 +0900] rev 19960
doc: put text into header of 1st column in table to generate page correctly >From the table without header text of 1st column, docutils generates the table with fully empty header row.
Fri, 25 Oct 2013 01:14:18 +0900 doc: use double quotation mark to quote arguments in examples for Windows users stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 25 Oct 2013 01:14:18 +0900] rev 19959
doc: use double quotation mark to quote arguments in examples for Windows users On Windows, only double quotation mark can quote command line arguments. So, this patch uses double quotation mark to quote command line arguments in all examples of online help document.
Fri, 25 Oct 2013 01:14:18 +0900 doc: end line preceding command line example with double colon stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 25 Oct 2013 01:14:18 +0900] rev 19958
doc: end line preceding command line example with double colon
Thu, 24 Oct 2013 21:37:13 +0900 hgweb: add missing semicolon stable
Takumi IINO <trot.thunder@gmail.com> [Thu, 24 Oct 2013 21:37:13 +0900] rev 19957
hgweb: add missing semicolon
Wed, 23 Oct 2013 23:42:13 +0800 rebase: improve error message for more than one external parent stable
Mads Kiilerich <madski@unity3d.com> [Wed, 23 Oct 2013 23:42:13 +0800] rev 19956
rebase: improve error message for more than one external parent
Thu, 24 Oct 2013 12:05:22 +0800 rebase: refactor and rename checkexternal - it is a getter more than a setter stable
Mads Kiilerich <madski@unity3d.com> [Thu, 24 Oct 2013 12:05:22 +0800] rev 19955
rebase: refactor and rename checkexternal - it is a getter more than a setter
Fri, 25 Oct 2013 02:33:59 +0800 largefiles: don't prompt for normal/largefile changes when doing plain updates stable
Mads Kiilerich <madski@unity3d.com> [Fri, 25 Oct 2013 02:33:59 +0800] rev 19954
largefiles: don't prompt for normal/largefile changes when doing plain updates We used to get like: $ hg up -r 2 foo has been turned into a normal file keep as (l)argefile or use (n)ormal file? l getting changed largefiles 0 largefiles updated, 0 removed 0 files updated, 0 files merged, 2 files removed, 0 files unresolved $ cat foo cat: foo: No such file or directory [1] - which both asked the wrong question and did the wrong thing. Instead, skip this conflict resolution when the local conflicting file has been scheduled for removal and there thus is no conflict.
Fri, 25 Oct 2013 02:25:10 +0800 largefiles: remove extra check for file to get - it _is_ by definition in p2 stable
Mads Kiilerich <madski@unity3d.com> [Fri, 25 Oct 2013 02:25:10 +0800] rev 19953
largefiles: remove extra check for file to get - it _is_ by definition in p2
Fri, 25 Oct 2013 01:24:10 +0800 largefiles: don't process merge actions at all when overwriting stable
Mads Kiilerich <madski@unity3d.com> [Fri, 25 Oct 2013 01:24:10 +0800] rev 19952
largefiles: don't process merge actions at all when overwriting
Thu, 24 Oct 2013 01:49:56 +0800 spelling: random spell checker fixes stable
Mads Kiilerich <madski@unity3d.com> [Thu, 24 Oct 2013 01:49:56 +0800] rev 19951
spelling: random spell checker fixes
Thu, 17 Oct 2013 16:13:15 +0800 largefiles: hide passwords in URLs in ui messages stable
Mads Kiilerich <madski@unity3d.com> [Thu, 17 Oct 2013 16:13:15 +0800] rev 19950
largefiles: hide passwords in URLs in ui messages
Thu, 24 Oct 2013 01:49:56 +0800 largefiles: don't add extra \n when displaying remote messages in putlfile stable
Mads Kiilerich <madski@unity3d.com> [Thu, 24 Oct 2013 01:49:56 +0800] rev 19949
largefiles: don't add extra \n when displaying remote messages in putlfile
Mon, 21 Oct 2013 11:22:54 +0800 largefiles: add missing \n in ui.warn messages stable
Mads Kiilerich <madski@unity3d.com> [Mon, 21 Oct 2013 11:22:54 +0800] rev 19948
largefiles: add missing \n in ui.warn messages
Thu, 24 Oct 2013 01:49:56 +0800 largefiles: fix 'unexpected response' warning newlines stable
Mads Kiilerich <madski@unity3d.com> [Thu, 24 Oct 2013 01:49:56 +0800] rev 19947
largefiles: fix 'unexpected response' warning newlines Warnings should always end with \n. The warning message might contain or end with \n, so better show it with repr encoding.
Mon, 21 Oct 2013 23:40:56 +0200 win32: add shelve extension to mercurial.ini stable
Pascal Quantin <pascal.quantin@gmail.com> [Mon, 21 Oct 2013 23:40:56 +0200] rev 19946
win32: add shelve extension to mercurial.ini
Mon, 21 Oct 2013 22:23:36 +0100 strip: fix spelling: "allows to" -> "allows you to" stable
Javi Merino <cibervicho@gmail.com> [Mon, 21 Oct 2013 22:23:36 +0100] rev 19945
strip: fix spelling: "allows to" -> "allows you to"
Tue, 22 Oct 2013 23:38:58 +0900 cmdutil: fix makefileobj not to clobber default modemap dict stable
Yuya Nishihara <yuya@tcha.org> [Tue, 22 Oct 2013 23:38:58 +0900] rev 19944
cmdutil: fix makefileobj not to clobber default modemap dict Problem occurs if "hg cat -o" is invoked more than once in the same process. The output of "hg cat" will be appended because of modemap[fn] = 'ab'.
Tue, 22 Oct 2013 12:41:05 +0900 shelve: make unshelve work even if it don't run in repository root stable
Takumi IINO <trot.thunder@gmail.com> [Tue, 22 Oct 2013 12:41:05 +0900] rev 19943
shelve: make unshelve work even if it don't run in repository root revertfiles are relative to the repository root. not paths relative to the cwd.
Mon, 21 Oct 2013 10:50:58 -0700 tests: move generaldelta test to inline python (issue4064) stable
Matt Mackall <mpm@selenic.com> [Mon, 21 Oct 2013 10:50:58 -0700] rev 19942
tests: move generaldelta test to inline python (issue4064)
Mon, 21 Oct 2013 10:26:38 -0700 help: minor tweak to push help stable
Matt Mackall <mpm@selenic.com> [Mon, 21 Oct 2013 10:26:38 -0700] rev 19941
help: minor tweak to push help
Sat, 12 Oct 2013 18:51:34 -0700 pager: honour internal aliases stable
David Soria Parra <dsp@experimentalworks.net> [Sat, 12 Oct 2013 18:51:34 -0700] rev 19940
pager: honour internal aliases If paging is configured for a command all it's internal defined aliases will be paged as well. This will make attend=log cause 'hg history' to run the pager. However custom aliases will not be paged by default.
Sun, 20 Oct 2013 16:45:04 -0700 Added signature for changeset 1596f2d8f242 stable
Matt Mackall <mpm@selenic.com> [Sun, 20 Oct 2013 16:45:04 -0700] rev 19939
Added signature for changeset 1596f2d8f242
Sun, 20 Oct 2013 16:44:58 -0700 Added tag 2.8-rc for changeset 1596f2d8f242 stable
Matt Mackall <mpm@selenic.com> [Sun, 20 Oct 2013 16:44:58 -0700] rev 19938
Added tag 2.8-rc for changeset 1596f2d8f242
Sun, 20 Oct 2013 16:43:11 -0700 merge default into stable for 2.8 freeze stable 2.8-rc
Matt Mackall <mpm@selenic.com> [Sun, 20 Oct 2013 16:43:11 -0700] rev 19937
merge default into stable for 2.8 freeze
Thu, 03 Oct 2013 23:16:07 +0900 discovery: revise hint message introduced by changeset b00ba31313c3
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 03 Oct 2013 23:16:07 +0900] rev 19936
discovery: revise hint message introduced by changeset b00ba31313c3 This patch revises hint message from "for detail about" introduced by changeset b00ba31313c3 to "for details about", to unify it with the hint message introduced by proceeding patch.
Thu, 03 Oct 2013 23:16:06 +0900 push: add more detailed explanation about "--force" to online help document
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 03 Oct 2013 23:16:06 +0900] rev 19935
push: add more detailed explanation about "--force" to online help document This patch adds more detailed explanation about "--force" to online help document of "hg push" to prevent novice users to execute "push --force" easily without understanding about problems of multiple branch heads in the repository.
Thu, 03 Oct 2013 23:16:06 +0900 push: hide description about "-f" in the hint to prevent from using it easily
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 03 Oct 2013 23:16:06 +0900] rev 19934
push: hide description about "-f" in the hint to prevent from using it easily "use push -f to force" in the hint at abortion of "hg push" may cause novice users to execute "push -f" easily without understanding about problems of multiple branch heads in the repository. This patch hides description about "-f" in the hint, and leads into seeing "hg help push" for details about pushing new heads.
Sat, 05 Oct 2013 01:02:22 +0900 demandimport: allow extensions to import own modules by absolute name
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 05 Oct 2013 01:02:22 +0900] rev 19933
demandimport: allow extensions to import own modules by absolute name Before this patch, python modules of each extensions can't import another one in own extension by absolute name, because root modules of each extensions are loaded with "hgext_" prefix. For example, "import extroot.bar" in "extroot/foo.py" of "extroot" extension fails, even though "import bar" in it succeeds. Installing extensions into site-packages of python library path can avoid this problem, but this solution is not reasonable in some cases: using binary package of Mercurial on Windows, for example. This patch retries to import with "hgext_" prefix after ImportError, if the module in the extension may try to import another one in own extension. This patch doesn't change some "_import()"/"_origimport()" invocations below, because ordinary extensions shouldn't cause such invocations. - invocation of "_import()" when root module imports sub-module by absolute path without "fromlist" for example, "import a.b" in "a.__init__.py". extensions are loaded with "hgext_" prefix, and this causes execution of another (= fixed by this patch) code path. - invocation of "_origimport()" when "level != -1" with "fromlist" for example, importing after "from __future__ import absolute_import" (level == 0), or "from . import b" or "from .a import b" (0 < level), for portability between python versions and environments, extensions shouldn't cause "level != -1".
Sat, 05 Oct 2013 01:02:22 +0900 demandimport: support "absolute_import" for external libraries (issue4029)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 05 Oct 2013 01:02:22 +0900] rev 19932
demandimport: support "absolute_import" for external libraries (issue4029) Before this patch, demandimport of Mercurial may fail to load external libraries using "from __future__ import absolute_import": for example, importing "foo" in "bar.baz" module will load "bar.foo" if it exists, even though "absolute_import" is enabled in "bar.baz" module. So, extensions for Mercurial can't use such external libraries. This patch saves "level" of import request for on-demand module loading in the future: default value of level is -1, and level is 0 when "absolute_import" is enabled. "level" value is passed to built-in import function in "_demandmod._load()" and it should load target module correctly. This patch changes only one "_demandmod" construction case other than cases below: - construction in "_demandmod._load()" this code path should be used only in relative sub-module loading case - constructions other than patched one in"_demandimport()" these code paths shouldn't be used in "level != -1" case
Sat, 05 Oct 2013 01:02:22 +0900 hghave: add "py3k" feature to check whether test runs with Python 3.x
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 05 Oct 2013 01:02:22 +0900] rev 19931
hghave: add "py3k" feature to check whether test runs with Python 3.x This patch adds "py3k" feature to check whether test runs with Python 3.x. This check is needed for portability of test code: for example, in the default, modules are imported relatively first with python 2.x, but imported absolutely with Python 3.x.
Sat, 05 Oct 2013 01:02:22 +0900 hghave: add "absimport" feature to check "absolute_import" in __future__
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 05 Oct 2013 01:02:22 +0900] rev 19930
hghave: add "absimport" feature to check "absolute_import" in __future__ This patch adds "absimport" feature to check whether "absolute_import" exists in __future__, which means supporting module loading by absolute name. This check is needed for portability of test code using "absolute_import", because Python earlier than 2.5 doesn't support it.
Tue, 01 Oct 2013 17:43:54 -0700 merge: exit early during a no-op update (BC)
Siddharth Agarwal <sid0@fb.com> [Tue, 01 Oct 2013 17:43:54 -0700] rev 19929
merge: exit early during a no-op update (BC) hg update . (or equivalents) are effectively no-ops in just about all circumstances. These sorts of updates can be especially common in a bookmark-oriented workflow. This saves us a status check and a manifest decompression, which means that on a repo with over 210,000 files, this brings hg update . down from 2.5 seconds to 0.15. There is one change in behavior: a file that was added, not committed, and then deleted but not removed used to be removed from the dirstate. With this patch it isn't. This is what causes the change in test-mq-qpush-exact.t. This seems like it's enough of an edge case to not be worth handling. The output of test-empty.t changes because those files are not yet created.
Thu, 17 Oct 2013 21:45:17 +0900 localrepo: invoke only feature setup functions for enabled extensions
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 17 Oct 2013 21:45:17 +0900] rev 19928
localrepo: invoke only feature setup functions for enabled extensions Before this patch, each feature setup functions for localrepository class should examine whether corresponding extension is enabled or not by themselves. This patch invokes only feature setup functions defined in module of enabled extensions, and it makes implementation of feature setup functions easier and simpler.
Wed, 02 Oct 2013 21:16:40 +0900 lock: handle race in trylock/testlock on Windows
Yuya Nishihara <yuya@tcha.org> [Wed, 02 Oct 2013 21:16:40 +0900] rev 19927
lock: handle race in trylock/testlock on Windows readlock may raise IOError if the system does not support symlink.
Mon, 14 Oct 2013 17:12:59 +0200 rebase: preserve active bookmark when not at head (issue3813)
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 14 Oct 2013 17:12:59 +0200] rev 19926
rebase: preserve active bookmark when not at head (issue3813) Now that the working directory parent is preserved, we can preserve the active bookmark too.
Mon, 14 Oct 2013 16:12:29 +0200 rebase: preserve working directory parent (BC)
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 14 Oct 2013 16:12:29 +0200] rev 19925
rebase: preserve working directory parent (BC) Prior to this changeset, rebase always left the working directory as a parent of the last rebased changeset. The is dubious when, before the rebase, the working directory was not a parent of the tip most rebased changeset. With this changeset, we move the working directory back to its original parent. If the original parent was rebased, we use it's successors. This is a step toward solving issue3813 (rebase loses active bookmark if it's not on a head)
Mon, 14 Oct 2013 16:49:54 +0200 tests: prepare rebase test for wc parent preservation
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 14 Oct 2013 16:49:54 +0200] rev 19924
tests: prepare rebase test for wc parent preservation In the way to solving issue3813 we'll preserve the working directory parent after the rebase. Multiple rebases test expect the working directory parent to be tip after rebase. We patches them before the actual change to prevent confusion.
Fri, 18 Oct 2013 18:56:52 +0200 tests: test-gendoc.t checks if anything was translated
Simon Heimberg <simohe@besonet.ch> [Fri, 18 Oct 2013 18:56:52 +0200] rev 19923
tests: test-gendoc.t checks if anything was translated This would triggered when the variable would be set wrong again.
Fri, 18 Oct 2013 18:49:45 +0200 tests: really test translations for rst syntax errors (issue4003)
Simon Heimberg <simohe@besonet.ch> [Fri, 18 Oct 2013 18:49:45 +0200] rev 19922
tests: really test translations for rst syntax errors (issue4003) The variable LC_ALL did not work, use LANGUAGE instead. Before this patch, the original language C was generated (and tested) in every run.
Fri, 18 Oct 2013 18:49:32 +0200 i18n: fix wrong rst syntax
Simon Heimberg <simohe@besonet.ch> [Fri, 18 Oct 2013 18:49:32 +0200] rev 19921
i18n: fix wrong rst syntax Fix syntax errors like wrong indentation and invalid quotation. All errors preventing to generate valid html documentation (by gendoc.py) are fixed.
Sat, 19 Oct 2013 17:26:34 -0700 i18n-ru: fix the language team field
Matt Mackall <mpm@selenic.com> [Sat, 19 Oct 2013 17:26:34 -0700] rev 19920
i18n-ru: fix the language team field Having this at the default value caused some versions of msgfmt to give fatal errors.
Thu, 10 Oct 2013 04:32:36 +0200 commands: refactor 'serve', extract the http service class
Mads Kiilerich <madski@unity3d.com> [Thu, 10 Oct 2013 04:32:36 +0200] rev 19919
commands: refactor 'serve', extract the http service class
Thu, 10 Oct 2013 04:28:44 +0200 largefiles: refactor basestore, extract _gethash method
Mads Kiilerich <madski@unity3d.com> [Thu, 10 Oct 2013 04:28:44 +0200] rev 19918
largefiles: refactor basestore, extract _gethash method
Thu, 10 Oct 2013 04:28:39 +0200 largefiles: make the protocol hack for replacing heads with lheads more precise
Mads Kiilerich <madski@unity3d.com> [Thu, 10 Oct 2013 04:28:39 +0200] rev 19917
largefiles: make the protocol hack for replacing heads with lheads more precise Before the hack would replace 'heads' with 'lheads' no matter where it occured in a batch command string. Instead we will use a regexp to more carefully only match the 'heads' commands.
Mon, 01 Apr 2013 20:01:16 -0700 mq: refactor usage of repo.branchmap().iteritems() with itervalues()
Brodie Rao <brodie@sf.io> [Mon, 01 Apr 2013 20:01:16 -0700] rev 19916
mq: refactor usage of repo.branchmap().iteritems() with itervalues()
Sat, 19 Oct 2013 14:21:05 -0700 merge with stable
Matt Mackall <mpm@selenic.com> [Sat, 19 Oct 2013 14:21:05 -0700] rev 19915
merge with stable
Sat, 19 Oct 2013 14:20:31 -0700 merge with i18n stable
Matt Mackall <mpm@selenic.com> [Sat, 19 Oct 2013 14:20:31 -0700] rev 19914
merge with i18n
Thu, 10 Oct 2013 13:38:13 +0100 i18n-ru: synchronized with 1aaefba2a3a9 stable
Alexander Sauta <demosito@gmail.com> [Thu, 10 Oct 2013 13:38:13 +0100] rev 19913
i18n-ru: synchronized with 1aaefba2a3a9
Tue, 27 Aug 2013 16:03:16 +0400 i18n-ru: fix misprints stable
Vladimir Zakharov <zakharov.vv@gmail.com> [Tue, 27 Aug 2013 16:03:16 +0400] rev 19912
i18n-ru: fix misprints
Wed, 16 Oct 2013 10:36:58 -0400 shelve: some docstring cleanups
Augie Fackler <raf@durin42.com> [Wed, 16 Oct 2013 10:36:58 -0400] rev 19911
shelve: some docstring cleanups
Mon, 14 Oct 2013 00:25:29 -0400 dirstate.status: return explicit unknown files even when not asked
Siddharth Agarwal <sid0@fb.com> [Mon, 14 Oct 2013 00:25:29 -0400] rev 19910
dirstate.status: return explicit unknown files even when not asked dirstate.walk will return unknown files that were explicitly requested, even if listunknown is false. There's no point in dropping these files on the floor in dirstate.status. This has no effect on any current callers, because all of them assume the unknown list is empty and ignore it. Future callers may find it useful, though.
Mon, 14 Oct 2013 18:29:56 +0200 shelve: add minimal documentation to all functions
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 14 Oct 2013 18:29:56 +0200] rev 19909
shelve: add minimal documentation to all functions There is a lot of functions in this extension. We had a small documentation help people getting started.
Mon, 14 Oct 2013 17:46:47 +0200 shelve: use the class constant in the clear method
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 14 Oct 2013 17:46:47 +0200] rev 19908
shelve: use the class constant in the clear method This class attribut is used everywhere else. Not using it in clear will get us in trouble sooner or later.
Sat, 12 Oct 2013 11:29:28 +0400 hgweb: fix unstoppable loading of graph when no more results
Alexander Plavin <alexander@plav.in> [Sat, 12 Oct 2013 11:29:28 +0400] rev 19907
hgweb: fix unstoppable loading of graph when no more results When a user reaches the end of repo history with graph view, it (unsuccessfully) tried to load more entries. This patch disables further loading attempts.
Wed, 24 Jul 2013 03:20:26 +0400 hgweb: remove now unnecessary explicit header() and footer()
Alexander Plavin <alexander@plav.in> [Wed, 24 Jul 2013 03:20:26 +0400] rev 19906
hgweb: remove now unnecessary explicit header() and footer() They became unnecessary after allowing custom-named entries in templates.
Fri, 16 Aug 2013 21:41:19 +0400 hgweb: replace 'shortlog' with 'changelog' in raw changelog template
Alexander Plavin <alexander@plav.in> [Fri, 16 Aug 2013 21:41:19 +0400] rev 19905
hgweb: replace 'shortlog' with 'changelog' in raw changelog template
Mon, 14 Oct 2013 18:59:12 +0200 shelve: drop pickle usage
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 14 Oct 2013 18:59:12 +0200] rev 19904
shelve: drop pickle usage Pickle was used to the `shelvedstate` file. However the content of the file is very simple and we can handle serialisation ourself. Not using pickle is a net win. Note incrementing the format version as no releases have been done so far.
Tue, 15 Oct 2013 00:51:05 +0900 store: use "vfs.exists()" instead of "os.path.exists()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 15 Oct 2013 00:51:05 +0900] rev 19903
store: use "vfs.exists()" instead of "os.path.exists()"
Tue, 15 Oct 2013 00:51:05 +0900 context: use "vfs.lstat()" to examine target path instead of "os.path.*"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 15 Oct 2013 00:51:05 +0900] rev 19902
context: use "vfs.lstat()" to examine target path instead of "os.path.*" This patch gets stat object of target path by "vfs.lstat()", and examines stat object to know the type of it. This follows the way in "workingctx.add()". This should be cheaper than original implementation invoking "lexists()", "isfile()" and "islink()".
Tue, 15 Oct 2013 00:51:04 +0900 context: use "vfs.lstat()" instead of "os.lstat()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 15 Oct 2013 00:51:04 +0900] rev 19901
context: use "vfs.lstat()" instead of "os.lstat()"
Tue, 15 Oct 2013 00:51:04 +0900 context: use "vfs.lstat()" instead of "os.lstat()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 15 Oct 2013 00:51:04 +0900] rev 19900
context: use "vfs.lstat()" instead of "os.lstat()" This patch also changes paths added to "rejected" list from full path (referred by "p") to relative one (referred by "f"), when type of target path is neither file nor symlink. This change should be reasonable, because the path added to "rejected" list is relative one, when "OSError" is raised at "lstat()".
Tue, 15 Oct 2013 00:51:04 +0900 changelog: use "vfs.fstat()" instead of "util.fstat()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 15 Oct 2013 00:51:04 +0900] rev 19899
changelog: use "vfs.fstat()" instead of "util.fstat()" Just invoking "os.fstat()" with "file.fileno()" doesn't require non ANSI file API, because filename is not used for invocation of "os.fstat()". But "util.fstat()" should invoke "os.stat()" with "fp.name", if file object doesn't have "fileno()" method for portability, and "fp.name" may cause invocation of non ANSI file API. So, this patch makes the constructor of appender class invoke "util.fstat()" via vfs, to encapsulate filename handling.
Tue, 15 Oct 2013 00:51:04 +0900 changelog: use "vfs.rename()" instead of "util.rename()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 15 Oct 2013 00:51:04 +0900] rev 19898
changelog: use "vfs.rename()" instead of "util.rename()"
Tue, 15 Oct 2013 00:51:04 +0900 vfs: add "open()" for newly added code paths which open files via vfs
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 15 Oct 2013 00:51:04 +0900] rev 19897
vfs: add "open()" for newly added code paths which open files via vfs This patch replaces "open()" by own "__call__()" defined in derived classes at the first invocation, for efficiency of succeeding invocations.
Tue, 15 Oct 2013 00:51:04 +0900 bookmarks: use "vfs.utime()" instead of "os.utime()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 15 Oct 2013 00:51:04 +0900] rev 19896
bookmarks: use "vfs.utime()" instead of "os.utime()"
Tue, 15 Oct 2013 00:51:04 +0900 bookmarks: use "vfs.unlink()" instead of "util.unlink()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 15 Oct 2013 00:51:04 +0900] rev 19895
bookmarks: use "vfs.unlink()" instead of "util.unlink()"
Thu, 03 Oct 2013 18:01:21 +0200 cmdutil: use None as default value for "function pointer" instead of False
Mads Kiilerich <madski@unity3d.com> [Thu, 03 Oct 2013 18:01:21 +0200] rev 19894
cmdutil: use None as default value for "function pointer" instead of False Less type confusion.
Thu, 03 Oct 2013 18:01:21 +0200 graft: make skip messages more helpful
Mads Kiilerich <madski@unity3d.com> [Thu, 03 Oct 2013 18:01:21 +0200] rev 19893
graft: make skip messages more helpful This makes it possible for the user to understand and accept or work around what is happening.
Thu, 03 Oct 2013 18:01:21 +0200 convert: update source shamap when using filemap, just as when not using filemap
Mads Kiilerich <madski@unity3d.com> [Thu, 03 Oct 2013 18:01:21 +0200] rev 19892
convert: update source shamap when using filemap, just as when not using filemap The reverse mapping was introduced in 2147a734dcf9 to make roundtrip conversions possible ... but it did not work when using filemap. Roundtrips with filemaps will of course only work flawlessly if inverse mappings are used. Especially, if a lossy convert mapping is used in one direction, then only linear lines of development can be converted in the other direction. With this constraint convert will do the right thing by assuming that excluded files haven't been changed.) A test case with general coverage of hg-hg roundtrips with filemap is added. (There a cases where adding records of converted revisions to the shamap in the source repository doesn't work - especially when converting the same repo to several other repos and back. It would arguably be better if convert only updated the shamaps in the target repo but read shamaps from both the source and and target repo ... but that is a different story. Making the stuff we have work consistently is step forward no matter what.)
Sat, 20 Jul 2013 00:43:08 +0200 convert: introduce hg.revs to replace hg.startrev and --rev with a revset
Mads Kiilerich <madski@unity3d.com> [Sat, 20 Jul 2013 00:43:08 +0200] rev 19891
convert: introduce hg.revs to replace hg.startrev and --rev with a revset The existing knobs for controlling which revisions to convert were often insufficient. Revsets is a shiny hammer that provides a better solution. Revsets has been introduced in --rev handling in a lot of other places while being more or less backwards compatible. Doing the same here would be a much more elegant ... but that would unfortunately not work in this case. "--rev 7" used to mean revision 0 to 7 - it would be an unacceptable change if it suddenly just meant revision 7. Instead we introduce a new configuration setting. It will only work for Mercurial repositories so adding a new commandline option for it would not be a nice solution. There is no way to use the fancy deprecation markup for configuration settings so we just remove the documentation of hg.startrev.
Thu, 03 Oct 2013 18:01:21 +0200 convert: refactor head calculation for hg sources
Mads Kiilerich <madski@unity3d.com> [Thu, 03 Oct 2013 18:01:21 +0200] rev 19890
convert: refactor head calculation for hg sources
Fri, 19 Jul 2013 14:20:11 +0200 convert: remove unused and incorrect default handling for revmapfile
Mads Kiilerich <madski@unity3d.com> [Fri, 19 Jul 2013 14:20:11 +0200] rev 19889
convert: remove unused and incorrect default handling for revmapfile destc is not a string and can thus not be os.path.join'ed. Convert would crash if we ended up there ... but we wouldn't because both the sinks (hg and subversion) sinks implement .revmapfile and "never" throws exceptions.
Mon, 30 Sep 2013 18:27:42 -0700 generaldelta: fix test
Wojciech Lopata <lopek@fb.com> [Mon, 30 Sep 2013 18:27:42 -0700] rev 19888
generaldelta: fix test
Fri, 11 Oct 2013 17:19:40 -0700 shelve: fix dirstate corruption during unshelve (issue4055)
Durham Goode <durham@fb.com> [Fri, 11 Oct 2013 17:19:40 -0700] rev 19887
shelve: fix dirstate corruption during unshelve (issue4055) If you shelved on top of commit A, then rebased A to @ and unshelved, any file changed in A would appear as modified in hg status despite the contents not having changed. The fix is to use dirstate.setparents() instead of doing it manually. This will be a little slower since it has to iterate through everything in the dirstate instead of only what's in the mergestate, but this will be more correct since the mergestate did not include files which were merged but had no conflict. The tests also had several bad dirstate's hardcoded in them. This change updates the tests appropriately and adds a new test to cover this specific rebase case.
Wed, 09 Oct 2013 14:15:34 -0700 merge with stable
Matt Mackall <mpm@selenic.com> [Wed, 09 Oct 2013 14:15:34 -0700] rev 19886
merge with stable
Wed, 09 Oct 2013 14:15:20 -0700 shelve: only save mq state if enabled
Sean Farley <sean.michael.farley@gmail.com> [Wed, 09 Oct 2013 14:15:20 -0700] rev 19885
shelve: only save mq state if enabled Test coverage has been added.
Mon, 07 Oct 2013 11:45:01 -0700 changegroup: don't run changegroup hooks if nodes are gone
Durham Goode <durham@fb.com> [Mon, 07 Oct 2013 11:45:01 -0700] rev 19884
changegroup: don't run changegroup hooks if nodes are gone The changegroup hook runs when the repo lock is released, but it's possible that multiple transactions have happened during that single lock and therefore the commits the hook was for may be gone. This is the case in the shelve extension where it adds a commit and strips it in the same lock but different transactions (which results in warning messages during unshelve on hgsubversion repos). A real fix would be to attach the hook to the transaction instead, but that might have unknown consequences. Since we're this close to code-freeze, this fix just prevents the hook from running if the commit disappeared.
Wed, 09 Oct 2013 12:02:32 -0700 hgweb: add escaping of tags and bookmarks in graph view stable
Matt Mackall <mpm@selenic.com> [Wed, 09 Oct 2013 12:02:32 -0700] rev 19883
hgweb: add escaping of tags and bookmarks in graph view
Wed, 09 Oct 2013 11:50:19 -0700 json: add more paranoid escaping stable
Matt Mackall <mpm@selenic.com> [Wed, 09 Oct 2013 11:50:19 -0700] rev 19882
json: add more paranoid escaping
Wed, 02 Oct 2013 09:50:21 +0200 shelve: make no_backup parameter passing python 2.4 compatible
David Soria Parra <dsp@experimentalworks.net> [Wed, 02 Oct 2013 09:50:21 +0200] rev 19881
shelve: make no_backup parameter passing python 2.4 compatible Python 2.4 doesn't allow passing named parameter after an list unpack, but allows to unpack a dict.
Wed, 09 Oct 2013 11:27:59 -0700 ui: send password prompts to stderr again (issue4056) stable
Matt Mackall <mpm@selenic.com> [Wed, 09 Oct 2013 11:27:59 -0700] rev 19880
ui: send password prompts to stderr again (issue4056)
Mon, 07 Oct 2013 15:21:17 -0700 hgweb: escape branch names in graph view stable
Matt Mackall <mpm@selenic.com> [Mon, 07 Oct 2013 15:21:17 -0700] rev 19879
hgweb: escape branch names in graph view
Wed, 02 Oct 2013 11:16:03 +0200 test: make test-propertycache.py python2.4 compatible stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 02 Oct 2013 11:16:03 +0200] rev 19878
test: make test-propertycache.py python2.4 compatible The subprocess module have not `check_call` method in python2.4. Fall back to calling `check` with return code verification.
Tue, 01 Oct 2013 09:54:46 +0200 hgweb: log headers only if headers were successfully parsed stable
David Soria Parra <dsp@experimentalworks.net> [Tue, 01 Oct 2013 09:54:46 +0200] rev 19877
hgweb: log headers only if headers were successfully parsed The headers attribute is not initialized in certain error situations (e.g. http 400 bad request). Check for self.headers before we attempt to access it.
Mon, 07 Oct 2013 17:47:55 -0400 merge with stable
Augie Fackler <raf@durin42.com> [Mon, 07 Oct 2013 17:47:55 -0400] rev 19876
merge with stable
Mon, 07 Oct 2013 17:47:19 -0400 patch: Fix nullid for binary git diffs (issue4054) stable
Johan Bjork <jbjoerk@gmail.com> [Mon, 07 Oct 2013 17:47:19 -0400] rev 19875
patch: Fix nullid for binary git diffs (issue4054) The index for an empty file in git is not 0, but sha-1("blobl 0\0").
Thu, 03 Oct 2013 19:41:25 +0200 shelve: copy bookmarks and restore them after a commit
David Soria Parra <dsp@experimentalworks.net> [Thu, 03 Oct 2013 19:41:25 +0200] rev 19874
shelve: copy bookmarks and restore them after a commit cmdutil.commit() will advance the bookmarks. Therefore we have to restore them afterwards. We have to use update() to ensure we preserve the bmstore object.
Thu, 03 Oct 2013 14:50:47 +0200 check-code: check that '>' is used for continued lines
Mads Kiilerich <madski@unity3d.com> [Thu, 03 Oct 2013 14:50:47 +0200] rev 19873
check-code: check that '>' is used for continued lines Continued lines do not get the SALT mangling.
Thu, 03 Oct 2013 14:50:47 +0200 check-code: check for spaces around = for named parameters
Mads Kiilerich <madski@unity3d.com> [Thu, 03 Oct 2013 14:50:47 +0200] rev 19872
check-code: check for spaces around = for named parameters
Thu, 03 Oct 2013 14:50:47 +0200 run-tests: place the .t shell script next to $TESTTMP and with a useful name
Mads Kiilerich <madski@unity3d.com> [Thu, 03 Oct 2013 14:50:47 +0200] rev 19871
run-tests: place the .t shell script next to $TESTTMP and with a useful name --keep can thus keep it around - very convenient for debugging.
Thu, 03 Oct 2013 14:50:46 +0200 tests: fix void and invalid test in test-archive.t
Mads Kiilerich <madski@unity3d.com> [Thu, 03 Oct 2013 14:50:46 +0200] rev 19870
tests: fix void and invalid test in test-archive.t An echo statement was missed in the .t-ification in afe19a1bf9d3 so we ended up with invalid sh syntax. But at the same time a continuation line was marked as $ instead of > and we thus added the salt that made the expression valid again.
Wed, 02 Oct 2013 14:24:25 -0700 inotify: don't pass pidfile option to child
Siddharth Agarwal <sid0@fb.com> [Wed, 02 Oct 2013 14:24:25 -0700] rev 19869
inotify: don't pass pidfile option to child The child no longer needs it.
Wed, 02 Oct 2013 15:20:49 -0700 cmdutil.service: move pidfile writing to the parent in daemon mode
Siddharth Agarwal <sid0@fb.com> [Wed, 02 Oct 2013 15:20:49 -0700] rev 19868
cmdutil.service: move pidfile writing to the parent in daemon mode There is a potential race here, which I suspect I've spotted in the wild, where something reads the pid file after the parent exits but before the child has had a chance to write to it. Moving writing the file to the parent causes this to no longer be an issue.
Wed, 02 Oct 2013 15:17:50 -0700 cmdutil.service: move pidfile writing to a local function
Siddharth Agarwal <sid0@fb.com> [Wed, 02 Oct 2013 15:17:50 -0700] rev 19867
cmdutil.service: move pidfile writing to a local function An upcoming patch will reuse this code.
Wed, 02 Oct 2013 14:20:26 -0700 inotify: add pidfile to parent options
Siddharth Agarwal <sid0@fb.com> [Wed, 02 Oct 2013 14:20:26 -0700] rev 19866
inotify: add pidfile to parent options An upcoming patch will move pidfile writing from the parent to the child. This means that if the pid file isn't specified on the command-line but is specified as a config option, it needs to be added to the parent's opts dict.
Wed, 02 Oct 2013 22:46:32 +0100 get-with-headers: don't block indefinitely if the server had an internal error
Javi Merino <cibervicho@gmail.com> [Wed, 02 Oct 2013 22:46:32 +0100] rev 19865
get-with-headers: don't block indefinitely if the server had an internal error If the server had an internal error and returned 500, there's nothing to read, so "response.read()" blocks indefinitely. Only output the response if there's really a response.
Fri, 19 Jul 2013 02:32:36 +0200 convert: fix description of 'convert --rev'
Mads Kiilerich <madski@unity3d.com> [Fri, 19 Jul 2013 02:32:36 +0200] rev 19864
convert: fix description of 'convert --rev'
Wed, 02 Oct 2013 19:46:48 +0200 convert: fix crash when existing converted revision didn't come from source
Mads Kiilerich <madski@unity3d.com> [Wed, 02 Oct 2013 19:46:48 +0200] rev 19863
convert: fix crash when existing converted revision didn't come from source This case can happen when converting from multiple repositories with filemap.
Wed, 02 Oct 2013 19:46:47 +0200 convert: fix crash when filemap filtering is changed
Mads Kiilerich <madski@unity3d.com> [Wed, 02 Oct 2013 19:46:47 +0200] rev 19862
convert: fix crash when filemap filtering is changed
Tue, 01 Oct 2013 14:48:53 -0400 rebase: preserve metadata from grafts of changes (issue4001)
Augie Fackler <raf@durin42.com> [Tue, 01 Oct 2013 14:48:53 -0400] rev 19861
rebase: preserve metadata from grafts of changes (issue4001)
Tue, 01 Oct 2013 14:28:18 -0400 rebase: rework extrafn handling to support multiple extrafns
Augie Fackler <raf@durin42.com> [Tue, 01 Oct 2013 14:28:18 -0400] rev 19860
rebase: rework extrafn handling to support multiple extrafns This makes it possible to pass keepbranches and extrafn to rebase at the same time, although nobody uses that functionality presently. This is a precursor to keeping graft metadata.
Fri, 06 Sep 2013 13:30:58 +0400 hgweb: call process_dates with a specified selector in ajax scroll
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:58 +0400] rev 19859
hgweb: call process_dates with a specified selector in ajax scroll Now this function processes only newly added entries, and not old ones, the amount of which can be much bigger.
Fri, 06 Sep 2013 13:30:58 +0400 hgweb: add parentSelector argument to process_dates
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:58 +0400] rev 19858
hgweb: add parentSelector argument to process_dates Allow specifying parent selector of elements to process, useful for incremental page updates.
Fri, 06 Sep 2013 13:30:58 +0400 hgweb: optimize process_dates function
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:58 +0400] rev 19857
hgweb: optimize process_dates function This function looped over every node due to getElementsByTagName('*'), instead of using selectors. In this patch we use querySelectorAll('.age') and process only these nodes, which is much faster and also doesn't require extra condition. Browser compatibility isn't sacrificed: IE 8+, FF 3.5+, Opera 10+.
Thu, 29 Aug 2013 09:22:15 -0700 shelve: allow shelving of a change with an mq patch applied
David Soria Parra <dsp@experimentalworks.net> [Thu, 29 Aug 2013 09:22:15 -0700] rev 19856
shelve: allow shelving of a change with an mq patch applied We allow shelving of of changes on top of a MQ repository. MQ will not allow repository changes on top of applied patches. We introduce checkapplied in MQ to bypass this check.
Tue, 01 Oct 2013 12:20:31 +0200 shelve: new output format for shelve listings
David Soria Parra <dsp@experimentalworks.net> [Tue, 01 Oct 2013 12:20:31 +0200] rev 19855
shelve: new output format for shelve listings Use a more condensed and mercurial-like output format for shelve listing. We don't prefix the message with 'shelved from...' anymore as our default name contains the branch name or the user used his own name. To avoid just printing the last commit message, we drop writing the description to stdout. old output: default [1s ago] shelved from default (01ba9745): create conflict new output: default (1s ago) create conflict
Thu, 29 Aug 2013 09:22:13 -0700 shelve: add a shelve extension to save/restore working changes
David Soria Parra <dsp@experimentalworks.net> [Thu, 29 Aug 2013 09:22:13 -0700] rev 19854
shelve: add a shelve extension to save/restore working changes This extension saves shelved changes using a temporary draft commit, and bundles the temporary commit and its draft ancestors, then strips them. This strategy makes it possible to use Mercurial's bundle and merge machinery to resolve conflicts if necessary when unshelving, even when the destination commit or its ancestors have been amended, squashed, or evolved. (Once a change has been unshelved, its associated unbundled commits are either rolled back or stripped.) Storing the shelved change as a bundle also avoids the difficulty that hidden commits would cause, of making it impossible to amend the parent if it is a draft commits (a common scenario). Although this extension shares its name and some functionality with the third party hgshelve extension, it has little else in common. Notably, the hgshelve extension shelves changes as unified diffs, which makes conflict resolution a matter of finding .rej files and conflict markers, and cleaning up the mess by hand. We do not yet allow hunk-level choosing of changes to record. Compared to the hgshelve extension, this is a small regression in usability, but we hope to integrate that at a later point, once the record machinery becomes more reusable and robust.
Tue, 01 Oct 2013 12:20:29 +0200 localrepo: make report level in repo.transaction configurable
David Soria Parra <dsp@experimentalworks.net> [Tue, 01 Oct 2013 12:20:29 +0200] rev 19853
localrepo: make report level in repo.transaction configurable repo.transaction always writes to stderr when a transaction aborts. In order to be able to abort a transaction quietly (e.g shelve needs a temporary view on the repo) we need to make the report level configurable.
Tue, 01 Oct 2013 17:00:03 -0700 merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 01 Oct 2013 17:00:03 -0700] rev 19852
merge with stable
Tue, 01 Oct 2013 16:55:20 -0700 Added signature for changeset e7fa36d2ad3a stable
Matt Mackall <mpm@selenic.com> [Tue, 01 Oct 2013 16:55:20 -0700] rev 19851
Added signature for changeset e7fa36d2ad3a
Tue, 01 Oct 2013 16:55:14 -0700 Added tag 2.7.2 for changeset e7fa36d2ad3a stable
Matt Mackall <mpm@selenic.com> [Tue, 01 Oct 2013 16:55:14 -0700] rev 19850
Added tag 2.7.2 for changeset e7fa36d2ad3a
Tue, 01 Oct 2013 00:35:07 +0900 rebase: catch RepoLookupError at restoring rebase state for summary stable 2.7.2
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 01 Oct 2013 00:35:07 +0900] rev 19849
rebase: catch RepoLookupError at restoring rebase state for summary Before this patch, "hg summary" may fail, when there is inconsistent rebase state: for example, the root of rebase destination revisions recorded in rebase state file is already stripped manually. Mercurial earlier than 2.7 allows users to do anything other than starting new rebase, even though current rebase is not finished or aborted yet. So, such inconsistent rebase states may be left and forgotten in repositories. This patch catches RepoLookupError at restoring rebase state for summary hook, and treat such state as "broken".
Tue, 01 Oct 2013 00:35:07 +0900 rebase: catch RepoLookupError at restoring rebase state for abort/continue stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 01 Oct 2013 00:35:07 +0900] rev 19848
rebase: catch RepoLookupError at restoring rebase state for abort/continue Before this patch, "rebase --abort"/"--continue" may fail, when rebase state is inconsistent: for example, the root of rebase destination revisions recorded in rebase state file is already stripped manually. Mercurial earlier than 2.7 allows users to do anything other than starting new rebase, even though current rebase is not finished or aborted yet. So, such inconsistent rebase states may be left and forgotten in repositories. This patch catches RepoLookupError at restoring rebase state for abort/continue, and treat such state as "broken".
Tue, 01 Oct 2013 00:35:07 +0900 histedit: suggest "histedit --abort" for inconsistent histedit state stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 01 Oct 2013 00:35:07 +0900] rev 19847
histedit: suggest "histedit --abort" for inconsistent histedit state Mercurial earlier than 2.7 allows users to do anything other than starting new histedit, even though current histedit is not finished or aborted yet. So, unfinished (and maybe inconsistent now) histedit states may be left and forgotten in repositories. Before this patch, histedit extension shows the message below, when it detects such inconsistent state: abort: REV is not an ancestor of working directory (update to REV or descendant and run "hg histedit --continue" again) But this message is incorrect, unless old Mercurial is re-installed, because Mercurial 2.7 or later disallows users to update the working directory to another revision. This patch changes the hint message to suggest "hg histedit --abort".
Mon, 30 Sep 2013 14:23:14 +0200 repoview: have unfilteredpropertycache using the underlying cache stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 30 Sep 2013 14:23:14 +0200] rev 19846
repoview: have unfilteredpropertycache using the underlying cache A `unfilteredpropertycache` is a kind of `propertycache` used on `localrepo` to unsure it will always be run against unfiltered repo and stored only once. As the cached value is never stored in the repoview instance, the descriptor will always be called. Before this patch such calls always result in a call to the `__get__` method of the `propertycache` on the unfiltered repo. That was recomputing a new value on every access through a repoview. We can't prevent the repoview's `unfilteredpropertycache` to get called on every access. In that case the new code makes a standard attribute access to the property. If a value is cached it will be used. The `propertycache` test file have been augmented with test about this issue.
Mon, 30 Sep 2013 14:36:11 +0200 repoview: make propertycache.setcache compatible with repoview stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 30 Sep 2013 14:36:11 +0200] rev 19845
repoview: make propertycache.setcache compatible with repoview Propertycache used standard attribute assignment. In the repoview case, this assignment was forwarded to the unfiltered repo. This result in: (1) unfiltered repo got a potentially wrong cache value, (2) repoview never reused the cached value. This patch replaces the standard attribute assignment by an assignment to `objc.__dict__` which will bypass the `repoview.__setattr__`. This will not affects other `propertycache` users and it is actually closer to the semantic we need. The interaction of `propertycache` and `repoview` are now tested in a python test file.
Tue, 01 Oct 2013 16:41:04 -0300 i18n-pt_BR: synchronized with 1aaefba2a3a9 stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Tue, 01 Oct 2013 16:41:04 -0300] rev 19844
i18n-pt_BR: synchronized with 1aaefba2a3a9
Tue, 01 Oct 2013 10:44:59 -0700 merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 01 Oct 2013 10:44:59 -0700] rev 19843
merge with stable
Tue, 01 Oct 2013 00:12:34 +0900 histedit: add more detailed help about "--outgoing" stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 01 Oct 2013 00:12:34 +0900] rev 19842
histedit: add more detailed help about "--outgoing"
Tue, 01 Oct 2013 00:12:34 +0900 histedit: abort if there are multiple roots in "--outgoing" revisions stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 01 Oct 2013 00:12:34 +0900] rev 19841
histedit: abort if there are multiple roots in "--outgoing" revisions Before this patch, if there are multiple roots in "--outgoing" revisions, result of "histedit --outgoing" depends on the parent of the working directory. It succeeds only when the parent of the working directory is a descendant of the oldest root in "--outgoing" revisions, and fails otherwise. It seems to be ambiguous and difficult for users. This patch makes "histedit --outgoing" abort if there are multiple roots in "--outgoing" revisions always.
Tue, 01 Oct 2013 00:26:22 +0900 discovery: abort also when pushing multiple headed new branch
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 01 Oct 2013 00:26:22 +0900] rev 19840
discovery: abort also when pushing multiple headed new branch Before this patch, pushing with --new-branch permits to create multiple headed branch on the destination repository. But permitting to create new branch should be different from permitting to create multiple heads on branch. This patch prevents from careless pushing multiple headed new branch, and requires --force to push such branch forcibly.
Mon, 30 Sep 2013 17:42:38 +0200 branchmap: stop looking for stripped branch
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 30 Sep 2013 17:42:38 +0200] rev 19839
branchmap: stop looking for stripped branch Since repoview in 2.5 we do not make special call to `branchmap` when stripping. We just recompute the branchmap from a lower subset that still has valid branchmap. So I'm dropping this dead code.
Mon, 30 Sep 2013 17:31:39 +0200 branchmap: remove the droppednodes logic
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 30 Sep 2013 17:31:39 +0200] rev 19838
branchmap: remove the droppednodes logic It was unused. note how it is only extended if the list is empty. So it's always empty at the end. We could try to fix that, however this would part of the code is to be removed in the next changeset as we do not run `branchmap` on truncated repo since `repoview` in 2.5.
Mon, 30 Sep 2013 15:52:37 +0200 branchmap: fix blank line position
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 30 Sep 2013 15:52:37 +0200] rev 19837
branchmap: fix blank line position The blank line was after was after the `if` condition instead of before.
Tue, 01 Oct 2013 00:12:34 +0900 histedit: add more detailed help about "--outgoing"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 01 Oct 2013 00:12:34 +0900] rev 19836
histedit: add more detailed help about "--outgoing"
Tue, 01 Oct 2013 00:12:34 +0900 histedit: abort if there are multiple roots in "--outgoing" revisions
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 01 Oct 2013 00:12:34 +0900] rev 19835
histedit: abort if there are multiple roots in "--outgoing" revisions Before this patch, if there are multiple roots in "--outgoing" revisions, result of "histedit --outgoing" depends on the parent of the working directory. It succeeds only when the parent of the working directory is a descendant of the oldest root in "--outgoing" revisions, and fails otherwise. It seems to be ambiguous and difficult for users. This patch makes "histedit --outgoing" abort if there are multiple roots in "--outgoing" revisions always.
Fri, 06 Sep 2013 13:30:58 +0400 hgweb: eliminate extra complexity in process_dates definition
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:58 +0400] rev 19834
hgweb: eliminate extra complexity in process_dates definition There was an extra anonymous outer function, called immediately. It is removed in this patch.
Mon, 30 Sep 2013 12:36:26 -0700 util.h: backout 06badf7d10dc and 2c9645c0a582 for big-endian breakage
Siddharth Agarwal <sid0@fb.com> [Mon, 30 Sep 2013 12:36:26 -0700] rev 19833
util.h: backout 06badf7d10dc and 2c9645c0a582 for big-endian breakage getbe32 and putbe32 need to behave differently on big-endian and little-endian systems. On big-endian ones, they should be roughly equivalent to the identity function with a cast, but on little-endian ones they should reverse the order of the bytes. That is achieved by the original definition, but __builtin_bswap32 and _byteswap_ulong, as the names suggest, swap bytes around unconditionally. There was no measurable performance improvement, so there's no point adding extra complexity with even more ifdefs for endianncess.
Mon, 30 Sep 2013 12:38:08 -0700 merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 30 Sep 2013 12:38:08 -0700] rev 19832
merge with stable
Mon, 30 Sep 2013 20:54:39 +0200 i18n-de: fix record prompt (issue4044) stable
Martin Schröder <martin.schroeder@nerdluecht.de> [Mon, 30 Sep 2013 20:54:39 +0200] rev 19831
i18n-de: fix record prompt (issue4044)
Mon, 30 Sep 2013 20:04:03 +0200 i18n-de: synchronized with bd5c1b49d106 stable
Martin Schröder <martin.schroeder@nerdluecht.de> [Mon, 30 Sep 2013 20:04:03 +0200] rev 19830
i18n-de: synchronized with bd5c1b49d106
Tue, 24 Sep 2013 13:34:12 -0300 i18n-pt_BR: synchronized with bd5c1b49d106 stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Tue, 24 Sep 2013 13:34:12 -0300] rev 19829
i18n-pt_BR: synchronized with bd5c1b49d106
Fri, 27 Sep 2013 21:54:53 -0500 strip: bring extension description in line with style and copy-edit
Kevin Bullock <kbullock@ringworld.org> [Fri, 27 Sep 2013 21:54:53 -0500] rev 19828
strip: bring extension description in line with style and copy-edit
Thu, 26 Sep 2013 11:11:39 +0200 strip: rename test-mq-strip into test-strip
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 26 Sep 2013 11:11:39 +0200] rev 19827
strip: rename test-mq-strip into test-strip And makes it use the strip extension only (except for the part testing mq interaction)
Thu, 26 Sep 2013 23:57:21 +0200 mq: extract strip function as its standalone extension (issue3824)
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 26 Sep 2013 23:57:21 +0200] rev 19826
mq: extract strip function as its standalone extension (issue3824) Strip now lives in its own extension reminder: The extension is surprisingly called `strip`. The `mq` extension force the use of the strip extension when its enabled. This is both necessary for backward compatibility (people expect `mq` to comes with strip) and become some utility function used by `mq` are now in the strip extension.
Thu, 26 Sep 2013 23:43:00 +0200 strip: move the strip helper function for mq to strip
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 26 Sep 2013 23:43:00 +0200] rev 19825
strip: move the strip helper function for mq to strip The next patch finally move the command. No joke! (hey, this is for issue3824)
Thu, 26 Sep 2013 23:32:52 +0200 strip: move checklocalchanges from mq to strip
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 26 Sep 2013 23:32:52 +0200] rev 19824
strip: move checklocalchanges from mq to strip One more step for issue3824.
Thu, 26 Sep 2013 23:12:43 +0200 strip: move checksubstate from mq to strip
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 26 Sep 2013 23:12:43 +0200] rev 19823
strip: move checksubstate from mq to strip One more step for issue3824
Thu, 26 Sep 2013 23:10:11 +0200 mq: prepare a strip extension for extraction
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 26 Sep 2013 23:10:11 +0200] rev 19822
mq: prepare a strip extension for extraction Strip will lives in its own extension. The extension is surprisingly called `strip`. (as discussed in issue3824) The `mq` extension force the use of the strip extension when its enabled. This will both necessary for backward compatibility (people expect `mq` to comes with strip) and become some utility function used by `mq` will move in the strip extension.
Thu, 26 Sep 2013 14:47:19 +0200 histedit: remove unused parents() call
David Soria Parra <dsp@experimentalworks.net> [Thu, 26 Sep 2013 14:47:19 +0200] rev 19821
histedit: remove unused parents() call
Wed, 25 Sep 2013 14:16:51 +0200 mq: have the strip command functionnal on repo without mq
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 25 Sep 2013 14:16:51 +0200] rev 19820
mq: have the strip command functionnal on repo without mq This is the last step before being able to extract `strip` in its own extension. The changes are made in mq to allow a move only extraction without touching a line of code.
Wed, 25 Sep 2013 14:07:37 +0200 mq: extract `mq.queue.strip`
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 25 Sep 2013 14:07:37 +0200] rev 19819
mq: extract `mq.queue.strip` It does not depend on `mq.queue` anymore.
Wed, 25 Sep 2013 13:41:43 +0200 mq: drop the use of mq.queue.qparent in mq.queue.strip
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 25 Sep 2013 13:41:43 +0200] rev 19818
mq: drop the use of mq.queue.qparent in mq.queue.strip Same as in the previous changeset, rev is never `None`. We can just copy the two relevant lines in in `queue.strip`. This help having `queue.strip` independent from `queue`. One further step toward the extraction of `strip` in an independent extension. (As discussed in issue3824).
Wed, 25 Sep 2013 14:10:34 +0200 mq: drop the use of mq.queue.qparent in mq.strip
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 25 Sep 2013 14:10:34 +0200] rev 19817
mq: drop the use of mq.queue.qparent in mq.strip In this case, rev is never `None`. We can just copy the two relevant lines in in `strip`. This help having `strip` independent from `queue` one further step toward its extraction in an independent extension. (As discussed in issue3824).
Wed, 25 Sep 2013 19:34:45 +0200 mq: document repo.mq.qparents
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 25 Sep 2013 19:34:45 +0200] rev 19816
mq: document repo.mq.qparents The function is not very complex but writing this doc helped me to check if I got everything right.
Wed, 25 Sep 2013 19:32:53 +0200 mq: use the new checklocalchange in the strip command
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 25 Sep 2013 19:32:53 +0200] rev 19815
mq: use the new checklocalchange in the strip command The strip command never use the `refresh` argument. So we can use the function we just extracted.
Wed, 25 Sep 2013 12:43:14 +0200 mq: extract checklocalchanges from `mq.queue`
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 25 Sep 2013 12:43:14 +0200] rev 19814
mq: extract checklocalchanges from `mq.queue` The core part of `checklocalchanges` is now mq independent. We can extract it in a standalone function to help the extraction of `strip` as discussed in issue3824. A `checklocalchanges` function stay in `mq.queue` with the part related to "refresh first" messages.
Wed, 25 Sep 2013 11:24:43 +0200 mq: extract checksubstate from the queue class
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 25 Sep 2013 11:24:43 +0200] rev 19813
mq: extract checksubstate from the queue class This function does not need any of the the `mq.queue` method or attributes. It is indirectly used by the `strip` command. We are trying to extract this command in a standalone extension as discussed in issue issue3824.
Wed, 25 Sep 2013 12:28:40 +0200 mq: simplifies the refresh hint in checklocalchanges
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 25 Sep 2013 12:28:40 +0200] rev 19812
mq: simplifies the refresh hint in checklocalchanges The `checklocalchanges` function in the `mq.queue` class takes a `refresh` argument that changes the error message of raised exception. When refresh is `True` the exception message is "local changes found, refresh first" otherwise, the message is just "local changes found". This changeset is the first of a series that extract `strip` into a standalone extension (as discussed in issue3824). This `checklocalchanges` function is indirectly used by the strip command. But in a standalone strip extension the concept of "refresh first" has no sense. In practice, When used in the context of the strip commands `refresh`'s value is always `False`. So my final goal is a be able to extract the `checklocalchanges` logic in a standalone extension but to keep the part related to "refresh first" in the mq extension. However the refresh handling is deeply entangled into the `checklocalchanges` code. It is handled as low a possible at the point we raise the exception. So we moves handling of refresh upper in the `checklocalchanges` code. This will allow the extraction of a simple version in the strip extension while mq can still inject its logic when needed. Two helper functions `localchangesfound` and `localchangedsubreposfound` died in the process they are replaced by simple raise lines.
Fri, 06 Sep 2013 00:38:28 +0200 merge: let the user choose to merge, keep local or keep remote subrepo revisions
Angel Ezquerra <angel.ezquerra@gmail.com> [Fri, 06 Sep 2013 00:38:28 +0200] rev 19811
merge: let the user choose to merge, keep local or keep remote subrepo revisions When a subrepo has changed on the local and remote revisions, prompt the user whether it wants to merge those subrepo revisions, keep the local revision or keep the remote revision. Up until now mercurial would always perform a merge on a subrepo that had changed on the local and the remote revisions. This is often inconvenient. For example: - You may want to perform the actual subrepo merge after you have merged the parent subrepo files. - Some subrepos may be considered "read only", in the sense that you are not supposed to add new revisions to them. In those cases "merging a subrepo" means choosing which _existing_ revision you want to use on the merged revision. This is often the case for subrepos that contain binary dependencies (such as DLLs, etc). This new prompt makes mercurial better cope with those common scenarios. Notes: - The default behavior (which is the one that is used when ui is not interactive) remains unchanged (i.e. merge is the default action). - This prompt will be shown even if the ui --tool flag is set. - I don't know of a way to test the "keep local" and "keep remote" options (i.e. to force the test to choose those options). # HG changeset patch # User Angel Ezquerra <angel.ezquerra@gmail.com> # Date 1378420708 -7200 # Fri Sep 06 00:38:28 2013 +0200 # Node ID 2fb9cb0c7b26303ac3178b7739975e663075857d # Parent 50d721553198cea51c30f53b76d41dc919280097 merge: let the user choose to merge, keep local or keep remote subrepo revisions When a subrepo has changed on the local and remote revisions, prompt the user whether it wants to merge those subrepo revisions, keep the local revision or keep the remote revision. Up until now mercurial would always perform a merge on a subrepo that had changed on the local and the remote revisions. This is often inconvenient. For example: - You may want to perform the actual subrepo merge after you have merged the parent subrepo files. - Some subrepos may be considered "read only", in the sense that you are not supposed to add new revisions to them. In those cases "merging a subrepo" means choosing which _existing_ revision you want to use on the merged revision. This is often the case for subrepos that contain binary dependencies (such as DLLs, etc). This new prompt makes mercurial better cope with those common scenarios. Notes: - The default behavior (which is the one that is used when ui is not interactive) remains unchanged (i.e. merge is the default action). - This prompt will be shown even if the ui --tool flag is set. - I don't know of a way to test the "keep local" and "keep remote" options (i.e. to force the test to choose those options).
Tue, 24 Sep 2013 15:10:32 -0400 python2.4: fix imports of sub-packages of the email package
Augie Fackler <raf@durin42.com> [Tue, 24 Sep 2013 15:10:32 -0400] rev 19810
python2.4: fix imports of sub-packages of the email package These all have an obvious comment so if/when we finally ditch Python 2.4 we can eradicate them easily.
Fri, 20 Sep 2013 09:16:07 -0400 httpconnection: properly inject ssl_wrap_socket into httpclient (issue4038)
Augie Fackler <raf@durin42.com> [Fri, 20 Sep 2013 09:16:07 -0400] rev 19809
httpconnection: properly inject ssl_wrap_socket into httpclient (issue4038) This causes httpclient to use the same SSL settings as the rest of Mercurial, and adds an easy extension point for later modifications to our ssl handling.
Fri, 20 Sep 2013 09:15:43 -0400 sslutil: make keyfile and certfile arguments consistent between 2.6+ and 2.5-
Augie Fackler <raf@durin42.com> [Fri, 20 Sep 2013 09:15:43 -0400] rev 19808
sslutil: make keyfile and certfile arguments consistent between 2.6+ and 2.5-
Fri, 20 Sep 2013 09:15:09 -0400 httpclient: import 4bb625347d4a to provide SSL wrapper injection
Augie Fackler <raf@durin42.com> [Fri, 20 Sep 2013 09:15:09 -0400] rev 19807
httpclient: import 4bb625347d4a to provide SSL wrapper injection This lets us inject our own ssl.wrap_socket equivalent into httpclient, which means that any changes we make to our ssl handling can be *entirely* on our side without having to muck with httpclient, which sounds appealing. For example, an extension could wrap sslutil.ssl_wrap_socket with an api-compatible wrapper and then tweak SSL settings more precisely or use GnuTLS instead of OpenSSL.
Thu, 19 Sep 2013 16:29:00 -0400 sslutil: add a config knob to support TLS (default) or SSLv23 (bc) (issue4038)
Augie Fackler <raf@durin42.com> [Thu, 19 Sep 2013 16:29:00 -0400] rev 19806
sslutil: add a config knob to support TLS (default) or SSLv23 (bc) (issue4038) Prior to this change, we default to SSLv23, which is insecure because it allows use of SSLv2. Unfortunately, there's no constant for OpenSSL to let us use SSLv3 or TLS - we have to pick one or the other. We expose a knob to revert to pre-TLS SSL for the user that has an ancient server that lacks proper TLS support.
Mon, 23 Sep 2013 21:41:01 -0700 largefiles: standardize error message for dirty working dir
Siddharth Agarwal <sid0@fb.com> [Mon, 23 Sep 2013 21:41:01 -0700] rev 19805
largefiles: standardize error message for dirty working dir
Mon, 23 Sep 2013 21:31:37 -0700 cmdutil.bailifchanged: standardize error message for dirty working dir
Siddharth Agarwal <sid0@fb.com> [Mon, 23 Sep 2013 21:31:37 -0700] rev 19804
cmdutil.bailifchanged: standardize error message for dirty working dir This affects rebase, graft, histedit, and other similar commands.
Mon, 23 Sep 2013 20:53:14 -0700 merge: standardize error message for dirty subrepo
Siddharth Agarwal <sid0@fb.com> [Mon, 23 Sep 2013 20:53:14 -0700] rev 19803
merge: standardize error message for dirty subrepo
Mon, 23 Sep 2013 20:50:51 -0700 merge: standardize error message for dirty working dir
Siddharth Agarwal <sid0@fb.com> [Mon, 23 Sep 2013 20:50:51 -0700] rev 19802
merge: standardize error message for dirty working dir
Mon, 23 Sep 2013 20:33:02 -0700 update: standardize error message for dirty update --check
Siddharth Agarwal <sid0@fb.com> [Mon, 23 Sep 2013 20:33:02 -0700] rev 19801
update: standardize error message for dirty update --check This and following patches will standardize the error message for dirty working directories to "uncommitted changes".
Mon, 23 Sep 2013 20:08:52 -0700 update: improve error message for dirty non-linear update with rev
Siddharth Agarwal <sid0@fb.com> [Mon, 23 Sep 2013 20:08:52 -0700] rev 19800
update: improve error message for dirty non-linear update with rev
Mon, 23 Sep 2013 20:07:30 -0700 update: add error message for dirty non-linear update with no rev
Siddharth Agarwal <sid0@fb.com> [Mon, 23 Sep 2013 20:07:30 -0700] rev 19799
update: add error message for dirty non-linear update with no rev Previously, the error message for a dirty non-linear update was the same (and relatively unhelpful) whether or not a rev was specified. This patch and an upcoming one will introduce separate, more helpful hints.
Mon, 23 Sep 2013 17:43:33 -0700 update: improve error message for clean non-linear update
Siddharth Agarwal <sid0@fb.com> [Mon, 23 Sep 2013 17:43:33 -0700] rev 19798
update: improve error message for clean non-linear update
Mon, 23 Sep 2013 19:02:32 -0700 pull: for pull --update with failed update, print hint if any
Siddharth Agarwal <sid0@fb.com> [Mon, 23 Sep 2013 19:02:32 -0700] rev 19797
pull: for pull --update with failed update, print hint if any An upcoming patch will add a hint to the abort message, and we don't want to lose that here.
Fri, 06 Sep 2013 13:30:57 +0400 paper: edit search hint to include new feature description
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:57 +0400] rev 19796
paper: edit search hint to include new feature description
Thu, 25 Jul 2013 01:12:25 +0400 paper: define searchhint message in map file and use it in other templates
Alexander Plavin <alexander@plav.in> [Thu, 25 Jul 2013 01:12:25 +0400] rev 19795
paper: define searchhint message in map file and use it in other templates
Mon, 23 Sep 2013 14:28:01 -0700 debugshell: appease pyflakes
Matt Mackall <mpm@selenic.com> [Mon, 23 Sep 2013 14:28:01 -0700] rev 19794
debugshell: appease pyflakes
Fri, 20 Sep 2013 10:18:09 -0400 check-code: new rule to forbid imports of a.b on the same line as other imports
Augie Fackler <raf@durin42.com> [Fri, 20 Sep 2013 10:18:09 -0400] rev 19793
check-code: new rule to forbid imports of a.b on the same line as other imports This style of import can trip up 2to3 and cause it to produce invalid files if one of the imports is supposed to be a relative import. This prevents that behavior, and in the process exposed a lot of silly import errors related to the email module.
Fri, 20 Sep 2013 10:16:55 -0400 notify: correct import of email module, sort stdlib modules to top
Augie Fackler <raf@durin42.com> [Fri, 20 Sep 2013 10:16:55 -0400] rev 19792
notify: correct import of email module, sort stdlib modules to top
Fri, 20 Sep 2013 10:16:35 -0400 patchbomb: correct import of email module
Augie Fackler <raf@durin42.com> [Fri, 20 Sep 2013 10:16:35 -0400] rev 19791
patchbomb: correct import of email module
Fri, 20 Sep 2013 10:16:02 -0400 mail: correct import of email module
Augie Fackler <raf@durin42.com> [Fri, 20 Sep 2013 10:16:02 -0400] rev 19790
mail: correct import of email module
Fri, 20 Sep 2013 10:15:51 -0400 patch: correct import of email module
Augie Fackler <raf@durin42.com> [Fri, 20 Sep 2013 10:15:51 -0400] rev 19789
patch: correct import of email module
Fri, 20 Sep 2013 10:15:37 -0400 subrepo: move import of xml.minidom.dom to its own line for check-code
Augie Fackler <raf@durin42.com> [Fri, 20 Sep 2013 10:15:37 -0400] rev 19788
subrepo: move import of xml.minidom.dom to its own line for check-code
Fri, 20 Sep 2013 10:15:23 -0400 convert: move import of xml.minidom.dom to its own line for check-code
Augie Fackler <raf@durin42.com> [Fri, 20 Sep 2013 10:15:23 -0400] rev 19787
convert: move import of xml.minidom.dom to its own line for check-code
Fri, 20 Sep 2013 10:14:59 -0400 perf: rearrange imports of changelong and manifest to appease check-code
Augie Fackler <raf@durin42.com> [Fri, 20 Sep 2013 10:14:59 -0400] rev 19786
perf: rearrange imports of changelong and manifest to appease check-code
Mon, 23 Sep 2013 13:26:11 -0700 merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 23 Sep 2013 13:26:11 -0700] rev 19785
merge with stable
Mon, 23 Sep 2013 13:22:28 -0700 tests: fix check-code breakage stable
Matt Mackall <mpm@selenic.com> [Mon, 23 Sep 2013 13:22:28 -0700] rev 19784
tests: fix check-code breakage
Sun, 22 Sep 2013 14:19:57 +0400 paper: add infinite scrolling to graph by calling ajaxScrollInit at the page
Alexander Plavin <alexander@plav.in> [Sun, 22 Sep 2013 14:19:57 +0400] rev 19783
paper: add infinite scrolling to graph by calling ajaxScrollInit at the page
Fri, 20 Sep 2013 00:42:13 +0400 hgweb: add graph mode of ajax response processing
Alexander Plavin <alexander@plav.in> [Fri, 20 Sep 2013 00:42:13 +0400] rev 19782
hgweb: add graph mode of ajax response processing While the default mode appends all the new entries to a container on the page, the graph mode resizes canvas correctly, and repaints the graph to include newly received data.
Sun, 22 Sep 2013 14:18:23 +0400 hgweb: make infinite scroll handling more generic and extensible
Alexander Plavin <alexander@plav.in> [Sun, 22 Sep 2013 14:18:23 +0400] rev 19781
hgweb: make infinite scroll handling more generic and extensible Namely, this allows the next page pointer to be not only revision hash given in page code, but also any value computed from the value for previous page.
Fri, 06 Sep 2013 13:30:59 +0400 hgweb: add reset javascript function to Graph
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:59 +0400] rev 19780
hgweb: add reset javascript function to Graph It makes the Graph object to be in the same state as just after the initialization. This will help to add infinite scrolling to graph view.
Sat, 21 Sep 2013 21:33:29 +0900 largefiles: setup "largefiles" feature in each repositories individually
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 21 Sep 2013 21:33:29 +0900] rev 19779
largefiles: setup "largefiles" feature in each repositories individually Before this patch, if largefiles extension is enabled once in any of target repositories, commands handling multiple repositories at a time like below misunderstand that "largefiles" feature is supported also in all other local repositories: - clone/pull from or push to localhost - recursive execution in subrepo tree This patch registers "featuresetup()" into "featuresetupfuncs" of "localrepository" to support "largefiles" features only in repositories enabling largefiles extension, instead of adding "largefiles" feature to class variable "_basesupported" of "localrepository". This patch also adds checking below to the largefiles specific class derived from "localrepository": - push to localhost: whether features supported in the local(= dst) repository satisfies ones required in the remote(= src) This can prevent useless looking up in the remote repository, when supported and required features are mismatched: "push()" of "localrepository" also checks it, but it is executed after looking up in the remote.
Sat, 21 Sep 2013 21:33:29 +0900 localrepo: make supported features manageable in each repositories individually
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 21 Sep 2013 21:33:29 +0900] rev 19778
localrepo: make supported features manageable in each repositories individually Before this patch, all localrepositories support same features, because supported features are managed by the class variable "supported" of "localrepository". For example, "largefiles" feature provided by largefiles extension is recognized as supported, by adding the feature name to "supported" of "localrepository". So, commands handling multiple repositories at a time like below misunderstand that such features are supported also in repositories not enabling corresponded extensions: - clone/pull from or push to localhost - recursive execution in subrepo tree "reposetup()" can't be used to fix this problem, because it is invoked after checking whether supported features satisfy ones required in the target repository. So, this patch adds the set object named as "featuresetupfuncs" to "localrepository" to manage hook functions to setup supported features of each repositories. If any functions are added to "featuresetupfuncs", they are invoked, and information about supported features is managed in each repositories individually. This patch also adds checking below: - pull from localhost: whether features supported in the local(= dst) repository satisfies ones required in the remote(= src) - push to localhost: whether features supported in the remote(= dst) repository satisfies ones required in the local(= src) Managing supported features by the class variable means that there is no difference of supported features between each instances of "localrepository" in the same Python process, so such checking is not needed before this patch. Even with this patch, if intermediate bundlefile is used as pulling source, pulling indirectly from the remote repository, which requires features more than ones supported in the local, can't be prevented, because bundlefile has no information about "required features" in it.
Sat, 21 Sep 2013 21:33:29 +0900 extensions: list up only enabled extensions, if "ui" is specified
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 21 Sep 2013 21:33:29 +0900] rev 19777
extensions: list up only enabled extensions, if "ui" is specified Before this patch, "extensions.extensions()" always lists up all loaded extensions. So, commands handling multiple repositories at a time like below enable extensions unexpectedly. - clone from or push to localhost: extensions enabled only in the source are enabled also in the destination - pull from localhost: extensions enabled only in the destination are enabled also in the source - recursive execution in subrepo tree: extensions enabled only in the parent or some of siblings in the tree are enabled also in others In addition to it, extensions disabled locally may be enabled unexpectedly. This patch checks whether each of extensions should be listed up or not, if "ui" is specified to "extensions.extensions()", and invokes "reposetup()" of each extensions only for repositories enabling it.
Mon, 23 Sep 2013 11:37:06 -0700 merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 23 Sep 2013 11:37:06 -0700] rev 19776
merge with stable
Fri, 20 Sep 2013 15:26:30 -0700 largefiles: remove bailifchanged check from overridepull (BC)
Siddharth Agarwal <sid0@fb.com> [Fri, 20 Sep 2013 15:26:30 -0700] rev 19775
largefiles: remove bailifchanged check from overridepull (BC) This brings pull --rebase with largefiles in line with pull --rebase without.
Fri, 20 Sep 2013 16:32:05 -0700 rebase: remove bailifchanged check from pullrebase (BC)
Siddharth Agarwal <sid0@fb.com> [Fri, 20 Sep 2013 16:32:05 -0700] rev 19774
rebase: remove bailifchanged check from pullrebase (BC) This saves us a relatively superfluous status check for pull --rebase (if rebase runs, it'll check for a clean working directory anyway), and brings hg pull --rebase closer to hg pull && hg rebase. This is a behavior change because pull --rebase with a dirty working directory will now abort after performing the pull rather than before.
Sun, 14 Jul 2013 12:16:40 -0500 debugshell: check ui.debugger for which debugger to use
Sean Farley <sean.michael.farley@gmail.com> [Sun, 14 Jul 2013 12:16:40 -0500] rev 19773
debugshell: check ui.debugger for which debugger to use
Sun, 14 Jul 2013 12:02:36 -0500 debugshell: add function to embed ipython
Sean Farley <sean.michael.farley@gmail.com> [Sun, 14 Jul 2013 12:02:36 -0500] rev 19772
debugshell: add function to embed ipython
Sun, 14 Jul 2013 12:10:52 -0500 debugshell: abstract out pdb code.interact
Sean Farley <sean.michael.farley@gmail.com> [Sun, 14 Jul 2013 12:10:52 -0500] rev 19771
debugshell: abstract out pdb code.interact
Sun, 22 Sep 2013 13:52:18 +0400 templater: support using templates with non-standard names from map file
Alexander Plavin <alexander@plav.in> [Sun, 22 Sep 2013 13:52:18 +0400] rev 19770
templater: support using templates with non-standard names from map file Allow to add arbitrarily-named entries to a template map file and then reference them, to make it possible to deduplicate and simplify templates code.
Mon, 23 Sep 2013 20:23:25 +0900 help: use full name of extensions to look up them for keyword search stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 23 Sep 2013 20:23:25 +0900] rev 19769
help: use full name of extensions to look up them for keyword search Before this patch, "hg help -k KEYWORD" fails, if there is the extension of which name includes ".", because "extensions.load()" invoked from "help.topicmatch()" fails to look such extension up, even though it is already loaded in. "help.topicmatch()" invokes "extensions.load()" with the name gotten from "extensions.enabled()". The former expects full name of extension (= key in '[extensions]' section), but the latter returns names shortened by "split('.')[-1]". This difference causes failure of looking extension up. This patch adds "shortname" argument to "extensions.enabled()" to make it return shortened names only if it is True. "help.topicmatch()" turns it off to get full name of extensions. Then, this patch shortens full name of extensions by "split('.')[-1]" for showing them in the list of extensions. Shortening is also applied on names gotten from "extensions.disabled()" but harmless, because it returns only extensions directly under "hgext" and their names should not include ".".
Fri, 06 Sep 2013 13:30:56 +0400 hgweb: add link to force literal keyword search
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:56 +0400] rev 19768
hgweb: add link to force literal keyword search This makes it possible to make keyword search in case the search query also specifies an exact revision (like '1234' or 'abcdef'), or a revset expression.
Fri, 06 Sep 2013 13:30:56 +0400 raw: show current search mode name at search results
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:56 +0400] rev 19767
raw: show current search mode name at search results
Fri, 06 Sep 2013 13:30:56 +0400 paper: show current search mode name at search results
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:56 +0400] rev 19766
paper: show current search mode name at search results
Fri, 06 Sep 2013 13:30:56 +0400 hgweb: pass variable with current search mode name to the search template
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:56 +0400] rev 19765
hgweb: pass variable with current search mode name to the search template
Fri, 20 Sep 2013 10:45:51 -0700 generaldelta: initialize basecache properly stable
Wojciech Lopata <lopek@fb.com> [Fri, 20 Sep 2013 10:45:51 -0700] rev 19764
generaldelta: initialize basecache properly Previously basecache was incorrectly initialized before adding the first revision from a changegroup. Basecache value influences when full revisions are stored in revlog (when using generaldelta). As a result it was possible to generate a generaldelta-revlog that could be bigger by arbitrary factor than its non-generaldelta equivalent.
Fri, 20 Sep 2013 11:47:03 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Fri, 20 Sep 2013 11:47:03 -0500] rev 19763
merge with stable
Fri, 06 Sep 2013 13:30:58 +0400 paper: add reddish background to ajax error message
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:58 +0400] rev 19762
paper: add reddish background to ajax error message
Fri, 06 Sep 2013 13:30:58 +0400 paper: add simple animation to the loading indicator
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:58 +0400] rev 19761
paper: add simple animation to the loading indicator
Fri, 06 Sep 2013 13:30:58 +0400 hgweb: add CSS class to the last entry on a page
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:58 +0400] rev 19760
hgweb: add CSS class to the last entry on a page The entry which was last before an ajax load now has a specific CSS class for easier styling.
Thu, 19 Sep 2013 15:29:28 -0400 run-tests: find mercurial path with syntax valid on both py2 and py3
Augie Fackler <raf@durin42.com> [Thu, 19 Sep 2013 15:29:28 -0400] rev 19759
run-tests: find mercurial path with syntax valid on both py2 and py3
Thu, 19 Sep 2013 15:29:04 -0400 run-tests: if run by python3, execute setup.py with --c2to3
Augie Fackler <raf@durin42.com> [Thu, 19 Sep 2013 15:29:04 -0400] rev 19758
run-tests: if run by python3, execute setup.py with --c2to3
Thu, 19 Sep 2013 15:28:26 -0400 commands: import hgweb.server in a way that 2to3 can rewrite
Augie Fackler <raf@durin42.com> [Thu, 19 Sep 2013 15:28:26 -0400] rev 19757
commands: import hgweb.server in a way that 2to3 can rewrite
Fri, 06 Sep 2013 13:30:58 +0400 hgweb: show message when an error occured during ajax loading
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:58 +0400] rev 19756
hgweb: show message when an error occured during ajax loading
Fri, 06 Sep 2013 13:30:58 +0400 hgweb: show loading indicator while an ajax request is in process
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:58 +0400] rev 19755
hgweb: show loading indicator while an ajax request is in process
Fri, 06 Sep 2013 13:30:58 +0400 hgweb: show a message when there are no more entries in the list
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:58 +0400] rev 19754
hgweb: show a message when there are no more entries in the list
Thu, 19 Sep 2013 09:45:00 -0700 util.h: fix gcc version checking
Siddharth Agarwal <sid0@fb.com> [Thu, 19 Sep 2013 09:45:00 -0700] rev 19753
util.h: fix gcc version checking gcc doesn't have a predefined GCC_VERSION macro.
Mon, 16 Sep 2013 01:08:29 -0700 mq: remove unused repo._committingpatch-related code
Brodie Rao <brodie@sf.io> [Mon, 16 Sep 2013 01:08:29 -0700] rev 19752
mq: remove unused repo._committingpatch-related code This was introduced in 20ad8f0512a2 but its usage was removed in 46cc3b74e1c5.
Sat, 07 Sep 2013 15:07:10 -0500 strip: set current bookmark to None if stripped stable
Sean Farley <sean.michael.farley@gmail.com> [Sat, 07 Sep 2013 15:07:10 -0500] rev 19751
strip: set current bookmark to None if stripped
Wed, 18 Sep 2013 14:52:16 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Wed, 18 Sep 2013 14:52:16 -0500] rev 19750
merge with stable
Wed, 18 Sep 2013 14:40:17 -0400 sslutil: backed out changeset 074bd02352c0 (issue4038) stable
Augie Fackler <raf@durin42.com> [Wed, 18 Sep 2013 14:40:17 -0400] rev 19749
sslutil: backed out changeset 074bd02352c0 (issue4038) Python docs are a little unclear, but mpm reports reading the OpenSSL source code shows that PROTOCOL_SSLv23 allows TLS whereas PROTOCOL_SSLv3 does not.
Wed, 18 Sep 2013 14:45:28 -0400 httpclient: apply upstream revision da7579b034a4 to fix SSL problems (issue4038) stable
Augie Fackler <raf@durin42.com> [Wed, 18 Sep 2013 14:45:28 -0400] rev 19748
httpclient: apply upstream revision da7579b034a4 to fix SSL problems (issue4038)
Fri, 06 Sep 2013 13:30:57 +0400 paper: call ajaxScrollInit in shortlog
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:57 +0400] rev 19747
paper: call ajaxScrollInit in shortlog This just calls ajaxScrollInit at the shortlog page template with all needed agruments. So, infinite scrolling is working now there.
Wed, 18 Sep 2013 22:44:12 +0400 hgweb: add ajaxScrollInit function, which does the ajax requests and processing
Alexander Plavin <alexander@plav.in> [Wed, 18 Sep 2013 22:44:12 +0400] rev 19746
hgweb: add ajaxScrollInit function, which does the ajax requests and processing This function should be correctly called on a page, otherwise there is no effect. When called, it makes ajax requests for the next portion of changesets when the user scrolls to the end. Also, when the monitor is high so that the default amount of changesets isn't enough to fill it, multiple portions are loaded if needed after the page load.
Wed, 18 Sep 2013 14:36:19 -0500 check-code: add bracket style check
Matt Mackall <mpm@selenic.com> [Wed, 18 Sep 2013 14:36:19 -0500] rev 19745
check-code: add bracket style check
Sat, 14 Sep 2013 11:22:34 +0800 util.h: getbe32() and putbe32() use intrinsic function to improve performance
Wei, Elson <elson.wei@gmail.com> [Sat, 14 Sep 2013 11:22:34 +0800] rev 19744
util.h: getbe32() and putbe32() use intrinsic function to improve performance Refer to https://bugzilla.mozilla.org/show_bug.cgi?id=351557. It can improve byte-swapping performance by intrinsic function.
Fri, 06 Sep 2013 13:30:58 +0400 hgweb: add appendFormatHTML javascript function
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:58 +0400] rev 19743
hgweb: add appendFormatHTML javascript function This is a convenient helper function to append some formatted HTML markup to a DOM element.
Fri, 06 Sep 2013 13:30:58 +0400 hgweb: add removeByClassName javascript function
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:58 +0400] rev 19742
hgweb: add removeByClassName javascript function It removes all elements with specified class name from the document.
Fri, 06 Sep 2013 13:30:57 +0400 hgweb: add docFromHTML javascript function
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:57 +0400] rev 19741
hgweb: add docFromHTML javascript function It takes a string with HTML markup and creates DOM document from it. The implementation is a part of code from https://developer.mozilla.org/en-US/docs/Web/API/DOMParser#DOMParser_HTML_extension_for_other_browsers
Fri, 06 Sep 2013 13:30:57 +0400 hgweb: add makeRequest javascript function
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:57 +0400] rev 19740
hgweb: add makeRequest javascript function This function performs an asynchronous HTTP request and calls provided callbacks: - onstart: request is sent - onsuccess: response is received - onerror: some error occured - oncomplete: response is fully processed and all other callbacks finished
Fri, 06 Sep 2013 13:30:57 +0400 hgweb: add format javascript function
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:57 +0400] rev 19739
hgweb: add format javascript function It replaces placeholders like '%key%' with replacement values given.
Fri, 06 Sep 2013 13:30:57 +0400 hgweb: add nextentry variable for easy pagination in changelog
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:57 +0400] rev 19738
hgweb: add nextentry variable for easy pagination in changelog nextentry always contains the first entry not shown on current page (if there is such entry)
Fri, 06 Sep 2013 13:30:57 +0400 hgweb: always compute all entries and latestentry in changelog
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:57 +0400] rev 19737
hgweb: always compute all entries and latestentry in changelog Get the whole list of entries before rendering instead of using lazy evaluation. This doesn't affect the performance for usual case when the entries are shown anyway. When both entries and latestentry are used, this performs unnoticeably faster, and for pages which use only latestentry (quite uncommon case) it would be a bit slower. This change will make it possible to get the first entry of the next page easily without computing the list twice.
Tue, 17 Sep 2013 17:42:13 +0200 templatefilters: add short format for age formatting
David Soria Parra <dsp@experimentalworks.net> [Tue, 17 Sep 2013 17:42:13 +0200] rev 19736
templatefilters: add short format for age formatting Implements a short output format for ages e.g. "1 second ago" is abbrevated as "1s ago".
Fri, 06 Sep 2013 13:30:57 +0400 hgweb: remove unused argument of changelist function in changelog
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:57 +0400] rev 19735
hgweb: remove unused argument of changelist function in changelog This doesn't change the behavior as the argument isn't used anyway, and it's a preparation to the next patches,
Tue, 17 Sep 2013 23:34:57 -0500 context: move evolution functions from changectx to basectx
Sean Farley <sean.michael.farley@gmail.com> [Tue, 17 Sep 2013 23:34:57 -0500] rev 19734
context: move evolution functions from changectx to basectx This is just a code move and corrects an overlook from my previous patch series that assumed only a changectx would want this functionality.
Tue, 17 Sep 2013 18:34:45 -0500 context: use correct spelling of committable
Sean Farley <sean.michael.farley@gmail.com> [Tue, 17 Sep 2013 18:34:45 -0500] rev 19733
context: use correct spelling of committable
Tue, 17 Sep 2013 18:19:04 -0500 check-code: check C patterns against .h files
Matt Mackall <mpm@selenic.com> [Tue, 17 Sep 2013 18:19:04 -0500] rev 19732
check-code: check C patterns against .h files
Tue, 17 Sep 2013 18:13:54 -0500 check-code: make casting style check more precise
Matt Mackall <mpm@selenic.com> [Tue, 17 Sep 2013 18:13:54 -0500] rev 19731
check-code: make casting style check more precise
Tue, 10 Sep 2013 19:49:34 -0700 log: make file log slow path usable on large repos
Durham Goode <durham@fb.com> [Tue, 10 Sep 2013 19:49:34 -0700] rev 19730
log: make file log slow path usable on large repos Running "hg log <pattern or directory>" on large repos took a very, very long time because it first read ctx.files() for every commit before even starting to process the results. This change makes the ctx.files() check lazy, which makes the command start producing results immediately.
Fri, 13 Sep 2013 15:40:04 -0500 plan9: update util.py for cpython 2.7 build
Jeff Sickel <jas@corpus-callosum.com> [Fri, 13 Sep 2013 15:40:04 -0500] rev 19729
plan9: update util.py for cpython 2.7 build
Fri, 06 Sep 2013 23:47:59 -0700 parse_manifest: rewrite to use memchr
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Sep 2013 23:47:59 -0700] rev 19728
parse_manifest: rewrite to use memchr memchr is usually smarter than a simple for loop. With gcc 4.4.6 and glibc 2.12 on x86-64, for a 20 MB, 200,000 file manifest, parse_manifest goes from 0.116 seconds to 0.095 seconds.
Mon, 16 Sep 2013 12:17:55 -0700 parsers: correctly handle a failed allocation
Bryan O'Sullivan <bryano@fb.com> [Mon, 16 Sep 2013 12:17:55 -0700] rev 19727
parsers: correctly handle a failed allocation
Mon, 16 Sep 2013 12:12:37 -0700 parsers: use Py_INCREF safely
Bryan O'Sullivan <bryano@fb.com> [Mon, 16 Sep 2013 12:12:37 -0700] rev 19726
parsers: use Py_INCREF safely
Mon, 16 Sep 2013 12:10:28 -0700 parsers: state is a char, not an int
Bryan O'Sullivan <bryano@fb.com> [Mon, 16 Sep 2013 12:10:28 -0700] rev 19725
parsers: state is a char, not an int
Fri, 13 Sep 2013 10:00:57 +0800 setup: check if mercurial/util.h has been modified
Wei, Elson <elson.wei@gmail.com> [Fri, 13 Sep 2013 10:00:57 +0800] rev 19724
setup: check if mercurial/util.h has been modified Before, if mercurial/util.h was modified but *.c wasn't, no extension was rebuilt.
Fri, 13 Sep 2013 09:54:43 +0800 util.h: add stdint basic type definitions
Wei, Elson <elson.wei@gmail.com> [Fri, 13 Sep 2013 09:54:43 +0800] rev 19723
util.h: add stdint basic type definitions MS C compiler v15 doesn't have stdint.h. Add basic int types those are defined in stdint.h.
Fri, 06 Sep 2013 13:30:56 +0400 hgweb: add revset syntax support to search
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:56 +0400] rev 19722
hgweb: add revset syntax support to search This mode is used when all the conditions are met: - 'reverse(%s)' % query string can be parsed to a revset tree - this tree has depth more than two, i.e. the query has some part of revset syntax used - the repo can be actually matched against this tree, i.e. it has only existent function/operators and revisions/tags/bookmarks specified are correct - no revset regexes are used in the query (strings which start with 're:') - only functions explicitly marked as safe in revset.py are used in the query Add several new tests for different parsing conditions and exception handling.
Fri, 06 Sep 2013 13:30:56 +0400 revset: add a whitelist of DoS-safe symbols
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:56 +0400] rev 19721
revset: add a whitelist of DoS-safe symbols 'Safe' here means that they can't be used for a DoS attack for any given input.
Wed, 07 Aug 2013 01:21:31 +0400 revset: add helper function to get functions used in a revset parse tree
Alexander Plavin <alexander@plav.in> [Wed, 07 Aug 2013 01:21:31 +0400] rev 19720
revset: add helper function to get functions used in a revset parse tree Will be used to determine whether all functions used in a hgweb search query are allowed there.
Fri, 09 Aug 2013 22:52:58 +0400 revset: add helper function to get revset parse tree depth
Alexander Plavin <alexander@plav.in> [Fri, 09 Aug 2013 22:52:58 +0400] rev 19719
revset: add helper function to get revset parse tree depth Will be used to determine if a hgweb search query actually uses any revset syntax.
Sat, 07 Sep 2013 00:59:24 -0700 parsers: use a lookup table to convert hex to binary
Siddharth Agarwal <sid0@fb.com> [Sat, 07 Sep 2013 00:59:24 -0700] rev 19718
parsers: use a lookup table to convert hex to binary This is a hotspot for parse_manifest. With this patch, for a 20 MB, 200,000 file manifest, parse_manifest goes down from 0.153 seconds to 0.116.
Fri, 06 Sep 2013 23:05:33 -0700 revlog: remove _chunkbase since it is no longer used
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Sep 2013 23:05:33 -0700] rev 19717
revlog: remove _chunkbase since it is no longer used This was introduced in 2011 for the lwcopy feature but never actually got used. A similar hook can easily be reintroduced if needed in the future.
Fri, 06 Sep 2013 23:05:11 -0700 revlog: move chunk cache preload from revision to _chunks
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Sep 2013 23:05:11 -0700] rev 19716
revlog: move chunk cache preload from revision to _chunks In case we don't have a cached text already, add the base rev to the list passed to _chunks. In the cached case this also avoids unnecessarily preloading the chunk for the cached rev.
Fri, 06 Sep 2013 22:57:51 -0700 revlog._chunks: inline getchunk
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Sep 2013 22:57:51 -0700] rev 19715
revlog._chunks: inline getchunk We do this in a somewhat hacky way, relying on the fact that our sole caller preloads the cache right before calling us. An upcoming patch will make this more sensible. For a 20 MB manifest with a delta chain of > 40k, perfmanifest goes from 0.49 seconds to 0.46.
Sat, 07 Sep 2013 12:42:46 -0700 revlog.revision: fix cache preload for inline revlogs
Siddharth Agarwal <sid0@fb.com> [Sat, 07 Sep 2013 12:42:46 -0700] rev 19714
revlog.revision: fix cache preload for inline revlogs Previously the length of data preloaded did not account for the interleaved io contents. This meant that we'd sometimes have cache misses in _chunks despite the preloading. Having a correctly filled out cache will become essential in an upcoming patch.
Fri, 06 Sep 2013 16:31:35 -0700 revlog: add a fast method for getting a list of chunks
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Sep 2013 16:31:35 -0700] rev 19713
revlog: add a fast method for getting a list of chunks This moves _chunkraw into the loop. Doing that improves revlog decompression -- in particular, manifest decompression -- significantly. For a 20 MB manifest which is the result of a > 40k delta chain, hg perfmanifest improves from 0.55 seconds to 0.49 seconds.
Fri, 06 Sep 2013 13:35:29 -0700 perfmanifest: allow and require passing in a rev
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Sep 2013 13:35:29 -0700] rev 19712
perfmanifest: allow and require passing in a rev Previously perfmanifest would only test tip.
Fri, 06 Sep 2013 13:20:07 -0700 perfmanifest: fix cache invalidation
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Sep 2013 13:20:07 -0700] rev 19711
perfmanifest: fix cache invalidation The manifest cache is now stored in _mancache. The revlog cache is still stored in _cache.
Fri, 06 Sep 2013 13:16:21 -0700 lrucachedict: implement clear()
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Sep 2013 13:16:21 -0700] rev 19710
lrucachedict: implement clear()
Sat, 07 Sep 2013 16:08:11 -0500 merge with stable
Kevin Bullock <kbullock@ringworld.org> [Sat, 07 Sep 2013 16:08:11 -0500] rev 19709
merge with stable
Sat, 07 Sep 2013 21:20:00 +0200 bundle: fix performance regression when bundling file changes (issue4031) stable
Antoine Pitrou <solipsis@pitrou.net> [Sat, 07 Sep 2013 21:20:00 +0200] rev 19708
bundle: fix performance regression when bundling file changes (issue4031) Somewhere before 2.7, a change [ec896f9e8894] was committed that entailed a large performance regression when bundling (and therefore remote cloning) repositories. For each file in the repository, it would recompute the set of needed changesets even though it is the same for all files. This computation would dominate bundle runtimes according to profiler output (by 10x or more).
Sat, 07 Sep 2013 00:08:36 -0500 merge with stable
Kevin Bullock <kbullock@ringworld.org> [Sat, 07 Sep 2013 00:08:36 -0500] rev 19707
merge with stable
Tue, 06 Aug 2013 00:52:06 +0400 revset: fix wrong keyword() behaviour for strings with spaces stable
Alexander Plavin <alexander@plav.in> [Tue, 06 Aug 2013 00:52:06 +0400] rev 19706
revset: fix wrong keyword() behaviour for strings with spaces Some changesets can be wrongly reported as matched by this predicate due to searching in a string joined with spaces and not individually. A test case added, which fails without this fix.
Thu, 15 Aug 2013 13:42:56 -0500 commitablefilectx: move children from workingfilectx
Sean Farley <sean.michael.farley@gmail.com> [Thu, 15 Aug 2013 13:42:56 -0500] rev 19705
commitablefilectx: move children from workingfilectx
Thu, 15 Aug 2013 13:42:33 -0500 commitablefilectx: move parents from workingfilectx
Sean Farley <sean.michael.farley@gmail.com> [Thu, 15 Aug 2013 13:42:33 -0500] rev 19704
commitablefilectx: move parents from workingfilectx
Thu, 15 Aug 2013 13:23:06 -0500 commitablefilectx: move __nonzero__ from workingfilectx
Sean Farley <sean.michael.farley@gmail.com> [Thu, 15 Aug 2013 13:23:06 -0500] rev 19703
commitablefilectx: move __nonzero__ from workingfilectx
Thu, 15 Aug 2013 13:12:50 -0500 commitablefilectx: move __init__ from workingfilectx
Sean Farley <sean.michael.farley@gmail.com> [Thu, 15 Aug 2013 13:12:50 -0500] rev 19702
commitablefilectx: move __init__ from workingfilectx
Thu, 15 Aug 2013 13:11:51 -0500 commitablefilectx: add a class that will be used for mutable file contexts
Sean Farley <sean.michael.farley@gmail.com> [Thu, 15 Aug 2013 13:11:51 -0500] rev 19701
commitablefilectx: add a class that will be used for mutable file contexts Just like commitablectx, this will serve as a common place for code that will be shared between workingfilectx and memfilectx.
Wed, 14 Aug 2013 16:40:34 -0500 commitablectx: move dirs from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:40:34 -0500] rev 19700
commitablectx: move dirs from workingctx
Wed, 14 Aug 2013 16:40:27 -0500 commitablectx: move markcommitted from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:40:27 -0500] rev 19699
commitablectx: move markcommitted from workingctx
Wed, 14 Aug 2013 16:37:59 -0500 commitablectx: move ancestors from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:37:59 -0500] rev 19698
commitablectx: move ancestors from workingctx
Wed, 14 Aug 2013 16:37:11 -0500 commitablectx: move walk from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:37:11 -0500] rev 19697
commitablectx: move walk from workingctx
Wed, 14 Aug 2013 16:37:01 -0500 commitablectx: move ancestor from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:37:01 -0500] rev 19696
commitablectx: move ancestor from workingctx
Wed, 14 Aug 2013 16:25:43 -0500 commitablectx: move flags from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:25:43 -0500] rev 19695
commitablectx: move flags from workingctx
Wed, 14 Aug 2013 16:25:26 -0500 commitablectx: move children from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:25:26 -0500] rev 19694
commitablectx: move children from workingctx
Wed, 14 Aug 2013 16:25:17 -0500 commitablectx: move hidden from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:25:17 -0500] rev 19693
commitablectx: move hidden from workingctx
Wed, 14 Aug 2013 16:24:59 -0500 commitablectx: move phase from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:24:59 -0500] rev 19692
commitablectx: move phase from workingctx
Wed, 14 Aug 2013 16:24:33 -0500 commitablectx: move bookmarks from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:24:33 -0500] rev 19691
commitablectx: move bookmarks from workingctx
Wed, 14 Aug 2013 16:24:16 -0500 commitablectx: move tags from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:24:16 -0500] rev 19690
commitablectx: move tags from workingctx
Wed, 14 Aug 2013 16:23:28 -0500 commitablectx: move extra from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:23:28 -0500] rev 19689
commitablectx: move extra from workingctx
Wed, 14 Aug 2013 16:23:16 -0500 commitablectx: move closesbranch from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:23:16 -0500] rev 19688
commitablectx: move closesbranch from workingctx
Wed, 14 Aug 2013 16:23:02 -0500 commitablectx: move branch from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:23:02 -0500] rev 19687
commitablectx: move branch from workingctx
Wed, 14 Aug 2013 16:22:42 -0500 commitablectx: move clean from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:22:42 -0500] rev 19686
commitablectx: move clean from workingctx
Wed, 14 Aug 2013 16:22:32 -0500 commitablectx: move ignored from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:22:32 -0500] rev 19685
commitablectx: move ignored from workingctx
Wed, 14 Aug 2013 16:22:20 -0500 commitablectx: move unknown from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:22:20 -0500] rev 19684
commitablectx: move unknown from workingctx
Wed, 14 Aug 2013 16:21:55 -0500 commitablectx: move deleted from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:21:55 -0500] rev 19683
commitablectx: move deleted from workingctx
Wed, 14 Aug 2013 16:15:29 -0500 commitablectx: move removed from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:15:29 -0500] rev 19682
commitablectx: move removed from workingctx
Wed, 14 Aug 2013 16:15:18 -0500 commitablectx: move added from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:15:18 -0500] rev 19681
commitablectx: move added from workingctx
Wed, 14 Aug 2013 16:14:58 -0500 commitablectx: move modified from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:14:58 -0500] rev 19680
commitablectx: move modified from workingctx
Wed, 14 Aug 2013 16:09:45 -0500 commitablectx: move files from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:09:45 -0500] rev 19679
commitablectx: move files from workingctx
Wed, 14 Aug 2013 16:09:30 -0500 commitablectx: move description from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:09:30 -0500] rev 19678
commitablectx: move description from workingctx
Wed, 14 Aug 2013 16:03:32 -0500 commitablectx: move date from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:03:32 -0500] rev 19677
commitablectx: move date from workingctx
Thu, 15 Aug 2013 10:57:43 -0500 commitablectx: move _date from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Thu, 15 Aug 2013 10:57:43 -0500] rev 19676
commitablectx: move _date from workingctx
Wed, 14 Aug 2013 15:57:24 -0500 commitablectx: move user from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 15:57:24 -0500] rev 19675
commitablectx: move user from workingctx
Thu, 15 Aug 2013 10:51:53 -0500 commitablectx: move _user from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Thu, 15 Aug 2013 10:51:53 -0500] rev 19674
commitablectx: move _user from workingctx
Wed, 14 Aug 2013 15:55:56 -0500 commitablectx: move status from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 15:55:56 -0500] rev 19673
commitablectx: move status from workingctx
Wed, 14 Aug 2013 15:41:22 -0500 commitablectx: move _status from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 15:41:22 -0500] rev 19672
commitablectx: move _status from workingctx
Wed, 14 Aug 2013 15:34:18 -0500 commitablectx: move _manifest from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 15:34:18 -0500] rev 19671
commitablectx: move _manifest from workingctx
Wed, 14 Aug 2013 15:30:17 -0500 commitablectx: move _flagfunc from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 15:30:17 -0500] rev 19670
commitablectx: move _flagfunc from workingctx
Wed, 14 Aug 2013 15:29:48 -0500 commitablectx: move _buildflagfunc from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 15:29:48 -0500] rev 19669
commitablectx: move _buildflagfunc from workingctx
Wed, 14 Aug 2013 15:29:09 -0500 commitablectx: move __contains__ from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 15:29:09 -0500] rev 19668
commitablectx: move __contains__ from workingctx
Wed, 14 Aug 2013 15:28:43 -0500 commitablectx: move __nonzero__ from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 15:28:43 -0500] rev 19667
commitablectx: move __nonzero__ from workingctx
Wed, 14 Aug 2013 15:25:14 -0500 commitablectx: move __str__ from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 15:25:14 -0500] rev 19666
commitablectx: move __str__ from workingctx
Wed, 14 Aug 2013 15:24:58 -0500 commitablectx: move __init__ from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 15:24:58 -0500] rev 19665
commitablectx: move __init__ from workingctx
Wed, 14 Aug 2013 15:02:08 -0500 commitablectx: add a class that will be used as a parent of mutable contexts
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 15:02:08 -0500] rev 19664
commitablectx: add a class that will be used as a parent of mutable contexts Currently, we have basectx that serves as a common ancestor of all contexts. We will now add a new class commitablectx that will inherit from basectx and will serve as a common place for code that will be shared between mutable contexts, e.g. workingctx and memctx.
Wed, 14 Aug 2013 13:32:56 -0500 workingfilectx: remove unneeded __repr__ since it is now inherited
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 13:32:56 -0500] rev 19663
workingfilectx: remove unneeded __repr__ since it is now inherited
Thu, 15 Aug 2013 13:09:34 -0500 workingfilectx: remove bogus comment
Sean Farley <sean.michael.farley@gmail.com> [Thu, 15 Aug 2013 13:09:34 -0500] rev 19662
workingfilectx: remove bogus comment
Thu, 15 Aug 2013 13:32:07 -0500 workingfilectx: remove __str__ manifest since it is now inherited
Sean Farley <sean.michael.farley@gmail.com> [Thu, 15 Aug 2013 13:32:07 -0500] rev 19661
workingfilectx: remove __str__ manifest since it is now inherited
Thu, 15 Aug 2013 13:31:17 -0500 basefilectx: use basectx __str__ instead of duplicating logic
Sean Farley <sean.michael.farley@gmail.com> [Thu, 15 Aug 2013 13:31:17 -0500] rev 19660
basefilectx: use basectx __str__ instead of duplicating logic This change allows us to only rely on one place to convert a context to a string which will help eliminate duplicate code in context.py
Wed, 14 Aug 2013 13:41:09 -0500 workingctx: remove unneeded manifest since it is now inherited
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 13:41:09 -0500] rev 19659
workingctx: remove unneeded manifest since it is now inherited
Wed, 14 Aug 2013 13:32:44 -0500 workingctx: remove unneeded __repr__ since it is now inherited
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 13:32:44 -0500] rev 19658
workingctx: remove unneeded __repr__ since it is now inherited
Tue, 03 Sep 2013 20:02:53 +0400 hgweb: import the whole util module in webcommands instead of just one function
Alexander Plavin <alexander@plav.in> [Tue, 03 Sep 2013 20:02:53 +0400] rev 19657
hgweb: import the whole util module in webcommands instead of just one function This is to allow using other functions from this module easily.
Wed, 04 Sep 2013 19:40:04 +0400 hgweb: add string constants for search mode names
Alexander Plavin <alexander@plav.in> [Wed, 04 Sep 2013 19:40:04 +0400] rev 19656
hgweb: add string constants for search mode names It helps detecting mistakes in the mode names.
Wed, 04 Sep 2013 18:42:55 -0700 addremove: don't do full walks
Siddharth Agarwal <sid0@fb.com> [Wed, 04 Sep 2013 18:42:55 -0700] rev 19655
addremove: don't do full walks Full walks are only necessary when the caller needs the list of clean files. addremove by definition doesn't need them. With this patch and an extension that produces a subset of results for dirstate.walk when full is False, on a repository with over 200,000 files, hg addremove drops from 2.8 seconds to 0.5.
Thu, 05 Sep 2013 11:45:27 -0400 merge with mpm
Augie Fackler <raf@durin42.com> [Thu, 05 Sep 2013 11:45:27 -0400] rev 19654
merge with mpm
Tue, 03 Sep 2013 17:06:19 -0400 merge with mpm
Augie Fackler <raf@durin42.com> [Tue, 03 Sep 2013 17:06:19 -0400] rev 19653
merge with mpm
Sat, 17 Aug 2013 20:48:49 -0700 pack_dirstate: only invalidate mtime for files written in the last second
Siddharth Agarwal <sid0@fb.com> [Sat, 17 Aug 2013 20:48:49 -0700] rev 19652
pack_dirstate: only invalidate mtime for files written in the last second Previously we'd place files written in the last second in the lookup set. This can lead to pathological cases where a file always remains in the lookup set if it gets modified before the next time status is run. With this patch, only the mtime of those files is invalidated. This means that if a file's size or mode changes, we can immediately declare it as modified without needing to compare file contents.
Sat, 31 Aug 2013 10:20:15 -0700 dirstate.status: don't ignore symlink placeholders in the normal set
Siddharth Agarwal <sid0@fb.com> [Sat, 31 Aug 2013 10:20:15 -0700] rev 19651
dirstate.status: don't ignore symlink placeholders in the normal set On Windows, there are two ways symlinks can manifest themselves: 1. As placeholders: text files containing the symlink's target. This is what usually happens with fresh clones on Windows. 2. With their dereferenced contents. This happens with clones accessed over NFS or Samba. In order to handle case 2, ca6cebd8734e made dirstate.status ignore all symlink placeholders on Windows. It doesn't ignore symlinks in the lookup set, though, since those don't have the link bit set. This is problematic because it violates the invariant that `hg status` with every file in the normal set produces the same output as `hg status` with every file in the lookup set. With this change, symlink placeholders in the normal set are no longer ignored. We instead rely on code in localrepo.status that uses heuristics to look for suspect placeholders. An upcoming patch will test this out by no longer adding files written in the last second of an update to the lookup set.
Sat, 31 Aug 2013 10:16:06 -0700 localrepo.status: ignore empty symlink placeholders
Siddharth Agarwal <sid0@fb.com> [Sat, 31 Aug 2013 10:16:06 -0700] rev 19650
localrepo.status: ignore empty symlink placeholders A symlink's target should never be empty in normal use. Solaris and some BSDs do allow empty symlinks to be created (with varying semantics on dereference), but a symlink placeholder that started off as empty is either - going to be empty, in which case ignoring it is fine, since it's unchanged, or - going to not be empty, in which case this check is irrelevant.
Tue, 03 Sep 2013 18:08:27 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 03 Sep 2013 18:08:27 -0500] rev 19649
merge with stable
Tue, 03 Sep 2013 18:05:11 -0500 Added signature for changeset 335a558f81dc stable
Matt Mackall <mpm@selenic.com> [Tue, 03 Sep 2013 18:05:11 -0500] rev 19648
Added signature for changeset 335a558f81dc
Tue, 03 Sep 2013 18:05:06 -0500 Added tag 2.7.1 for changeset 335a558f81dc stable
Matt Mackall <mpm@selenic.com> [Tue, 03 Sep 2013 18:05:06 -0500] rev 19647
Added tag 2.7.1 for changeset 335a558f81dc
Wed, 28 Aug 2013 22:09:53 +0900 tags: write tag overwriting history also into tag cache file (issue3911) stable 2.7.1
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 28 Aug 2013 22:09:53 +0900] rev 19646
tags: write tag overwriting history also into tag cache file (issue3911) Before this patch, tag overwriting history is not written into tag cache file ".hg/cache/tags". This may give higher priority to local tag than global one, even if the former is overwritten by the latter, because tag overwriting history is used to compare priorities of them (as "rank"). In such cases, "hg tags" invocations using tag cache file shows incorrect tag information. This patch writes tag overwriting history also into tag cache file.
Tue, 03 Sep 2013 15:50:59 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 03 Sep 2013 15:50:59 -0500] rev 19645
merge with stable
Mon, 26 Aug 2013 16:11:21 +0900 histedit: add description about "histedit --outgoing" to command help stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 26 Aug 2013 16:11:21 +0900] rev 19644
histedit: add description about "histedit --outgoing" to command help Before this patch, there is no explicit description that argument is treated as the URL of the destination repository when "--outgoing" is specified. This patch adds description about "histedit --outgoing" to command help of it.
Mon, 26 Aug 2013 16:11:21 +0900 histedit: add description about basic histedit function to command help stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 26 Aug 2013 16:11:21 +0900] rev 19643
histedit: add description about basic histedit function to command help Before this patch, there is no explicit description that histedit edits changesets between specified ancestor and the parent of the working directory: users may notice it by error message "REV is not an ancestor of working directory". This patch adds description about basic histedit function to command help of it. This patch uses term "ancestor" instead of "parent", because it seems to be more suitable, and almost all (error) messages already use it.
Tue, 03 Sep 2013 15:12:35 -0400 rebase: handle bookmarks matching revset function names (issue3950) stable
Bryan O'Sullivan <bryano@fb.com> [Tue, 03 Sep 2013 15:12:35 -0400] rev 19642
rebase: handle bookmarks matching revset function names (issue3950) We handled these correctly with all rev-specifying options except, somehow, -r/--rev.
Tue, 03 Sep 2013 15:12:35 -0400 rebase: handle bookmarks matching revset function names (issue3950)
Bryan O'Sullivan <bryano@fb.com> [Tue, 03 Sep 2013 15:12:35 -0400] rev 19641
rebase: handle bookmarks matching revset function names (issue3950) We handled these correctly with all rev-specifying options except, somehow, -r/--rev.
Thu, 25 Jul 2013 22:28:34 -0500 dispatch: add ability to specify a custom pdb module as a debugger
Sean Farley <sean.michael.farley@gmail.com> [Thu, 25 Jul 2013 22:28:34 -0500] rev 19640
dispatch: add ability to specify a custom pdb module as a debugger This adds the ability to specify a config option, ui.debugger, to a custom pdb module, such as ipdb, and have mercurial use that as its debugger. As long as the value of ui.debugger is a loadable module with the set_trace and post_mortem functions, then dispatch will be able to use the custom module. Debugging _parseconfig is still available in the case of an error since it will be caught with a default the value of pdb.post_mortem.
Sat, 13 Jul 2013 16:33:07 -0500 dispatch: move command line --config argument parsing to _runcatch()
Sean Farley <sean.michael.farley@gmail.com> [Sat, 13 Jul 2013 16:33:07 -0500] rev 19639
dispatch: move command line --config argument parsing to _runcatch() Previously, command line parsing of --config arguments was done in _dispatch. This means that it takes place after activating the debugger. In an upcoming patch, we will add a ui.debugger setting so we need to have this parsing done before _runcatch.
Tue, 13 Aug 2013 01:38:30 +0200 mq: update subrepos when applying / unapplying patches that change .hgsubstate
Angel Ezquerra <angel.ezquerra@gmail.com> [Tue, 13 Aug 2013 01:38:30 +0200] rev 19638
mq: update subrepos when applying / unapplying patches that change .hgsubstate Up until now applying or unapplying a patch that modified .hgsubstate would not work as expected because it would not update the subrepos according to the .hgsubstate change. This made it very easy to lose subrepo changes when using mq. This revision also changes the test-mq-subrepo test so that on the qpop / qpush tests. We no longer use the debugsub command to check the state of the subrepos after the qpop and qpush operations. Instead we directly run the id command on the subrepos that we want to check. The reason is that using the debugsub command is misleading because it does not really check the state of the subrepos on the working directory (it just returns what the change that is specified on a given revision). Because of this the tests did not detect the problem that this revision fixes (i.e. that applying a patch did not update the subrepos to the corresponding revisions). # HG changeset patch # User Angel Ezquerra <angel.ezquerra@gmail.com> # Date 1376350710 -7200 # Tue Aug 13 01:38:30 2013 +0200 # Node ID 60897e264858cdcd46f89e27a702086f08adca02 # Parent 2defb5453f223c3027eb2f7788fbddd52bbb3352 mq: update subrepos when applying / unapplying patches that change .hgsubstate Up until now applying or unapplying a patch that modified .hgsubstate would not work as expected because it would not update the subrepos according to the .hgsubstate change. This made it very easy to lose subrepo changes when using mq. This revision also changes the test-mq-subrepo test so that on the qpop / qpush tests. We no longer use the debugsub command to check the state of the subrepos after the qpop and qpush operations. Instead we directly run the id command on the subrepos that we want to check. The reason is that using the debugsub command is misleading because it does not really check the state of the subrepos on the working directory (it just returns what the change that is specified on a given revision). Because of this the tests did not detect the problem that this revision fixes (i.e. that applying a patch did not update the subrepos to the corresponding revisions).
Wed, 21 Aug 2013 22:34:04 +0200 subrepo: make submerge() return the merged substate
Angel Ezquerra <angel.ezquerra@gmail.com> [Wed, 21 Aug 2013 22:34:04 +0200] rev 19637
subrepo: make submerge() return the merged substate This will be useful when reusing submerge() to improve the handling of subrepos on mq. # HG changeset patch # User Angel Ezquerra <angel.ezquerra@gmail.com> # Date 1377117244 -7200 # Wed Aug 21 22:34:04 2013 +0200 # Node ID 2defb5453f223c3027eb2f7788fbddd52bbb3352 # Parent a5c90acff5e61aae714ba6c9457d766c54b4f124 subrepo: make submerge() return the merged substate This will be useful when reusing submerge() to improve the handling of subrepos on mq.
Tue, 06 Aug 2013 00:49:39 +0200 mq: look for modified subrepos when checking for local changes
Angel Ezquerra <angel.ezquerra@gmail.com> [Tue, 06 Aug 2013 00:49:39 +0200] rev 19636
mq: look for modified subrepos when checking for local changes It was possible to apply, unapply, fold, patches (etc) with modified subrepos, which resulted in surprising behavior. For example it was easy to apply a patch with a modified subrepo, and then the refresh it and accidentally end up including the modified subrepo on the refreshed patch. A test has been added to verify this new check. # HG changeset patch # User Angel Ezquerra <angel.ezquerra@gmail.com> # Date 1375742979 -7200 # Tue Aug 06 00:49:39 2013 +0200 # Node ID a5c90acff5e61aae714ba6c9457d766c54b4f124 # Parent 6ac206fb6f27492a98f46bbff090407ee1b1de72 mq: look for modified subrepos when checking for local changes It was possible to apply, unapply, fold, patches (etc) with modified subrepos, which resulted in surprising behavior. For example it was easy to apply a patch with a modified subrepo, and then the refresh it and accidentally end up including the modified subrepo on the refreshed patch. A test has been added to verify this new check.
Wed, 07 Aug 2013 09:59:45 +0800 localrepo: get value from the unfiltered caches should check if the attribute existed.
Wei, Elson <elson.wei@gmail.com> [Wed, 07 Aug 2013 09:59:45 +0800] rev 19635
localrepo: get value from the unfiltered caches should check if the attribute existed. If the attribute existed already, it should be returned by getattr(). Otherwise, it will be evaluated again.
Fri, 19 Jul 2013 02:09:13 +0400 hgweb: always run search when a query is entered (bc)
Alexander Plavin <alexander@plav.in> [Fri, 19 Jul 2013 02:09:13 +0400] rev 19634
hgweb: always run search when a query is entered (bc) This changes the behavior for queries which point at a revision directly, now the output is consistent to other cases: it results in only this matched revision shown, not the log starting with it. A new test checks this behaviour and fails for the old one.
Fri, 19 Jul 2013 02:41:11 +0400 hgweb: search() function supports direct pointing to revision
Alexander Plavin <alexander@plav.in> [Fri, 19 Jul 2013 02:41:11 +0400] rev 19633
hgweb: search() function supports direct pointing to revision This doesn't change the behavior, as queries directly pointing to revisions are not delegated to the search() function now.
Thu, 22 Aug 2013 16:42:10 +0400 hgweb: pass arguments which a function depends on explicitly in search
Alexander Plavin <alexander@plav.in> [Thu, 22 Aug 2013 16:42:10 +0400] rev 19632
hgweb: pass arguments which a function depends on explicitly in search This changes makes clearer which arguments can a function depend on. Now all the modified functions depend on the 'query' argument only, but future additions will change it.
Thu, 22 Aug 2013 16:45:23 +0400 hgweb: add dynamic search function selection, depending on the query
Alexander Plavin <alexander@plav.in> [Thu, 22 Aug 2013 16:45:23 +0400] rev 19631
hgweb: add dynamic search function selection, depending on the query This allows adding other specific search functions, in addition to current keyword search.
Mon, 26 Aug 2013 17:11:01 -0700 unionrevlog: extract 'baserevision' and 'baserevdiff' methods
Wojciech Lopata <lopek@fb.com> [Mon, 26 Aug 2013 17:11:01 -0700] rev 19630
unionrevlog: extract 'baserevision' and 'baserevdiff' methods This makes possible to use unionrevlog class with subclasses of revlog that override revlog's 'revision' and 'revdiff' methods. In particular this change is necessary to implement manifest compression, as it allows extension to replace manifest class and override 'revision' amd 'revdiff' methods there.
Mon, 26 Aug 2013 16:50:31 -0700 bundlerevlog: extract 'baserevision' method
Wojciech Lopata <lopek@fb.com> [Mon, 26 Aug 2013 16:50:31 -0700] rev 19629
bundlerevlog: extract 'baserevision' method This makes possible to use bundlerevlog class with subclasses of revlog that override revlog's 'revision' method. In particular this change is necessary to implement manifest compression, as it allows extension to replace manifest class and override 'revision' method there.
Mon, 26 Aug 2013 15:20:44 -0700 solaris: tests can't use tail -n
Danek Duvall <danek.duvall@oracle.com> [Mon, 26 Aug 2013 15:20:44 -0700] rev 19628
solaris: tests can't use tail -n Solaris tail doesn't recognize the -n option. Replace the one use of it with some inline python code, and add a test case to check-code.py.
Fri, 23 Aug 2013 16:05:38 -0700 solaris: sed doesn't recognize a line without a newline
Danek Duvall <danek.duvall@oracle.com> [Fri, 23 Aug 2013 16:05:38 -0700] rev 19627
solaris: sed doesn't recognize a line without a newline
Fri, 23 Aug 2013 14:31:42 -0700 solaris: test cases can't use grep -a
Danek Duvall <danek.duvall@oracle.com> [Fri, 23 Aug 2013 14:31:42 -0700] rev 19626
solaris: test cases can't use grep -a The -a option to GNU grep isn't available when using Solaris grep. Replace the one use of grep -a in the testsuite with some in-line Python that does the equivalent, and add a check for grep -a in check-code.py.
Mon, 19 Aug 2013 11:25:23 -0700 revlog: pass node as an argument of addrevision
Wojciech Lopata <lopek@fb.com> [Mon, 19 Aug 2013 11:25:23 -0700] rev 19625
revlog: pass node as an argument of addrevision This change will allow revlog subclasses that override 'checkhash' method to use custom strategy of computing nodeids without overriding 'addrevision' method. In particular this change is necessary to implement manifest compression.
Mon, 19 Aug 2013 11:06:38 -0700 revlog: extract 'checkhash' method
Wojciech Lopata <lopek@fb.com> [Mon, 19 Aug 2013 11:06:38 -0700] rev 19624
revlog: extract 'checkhash' method Extract method that decides whether nodeid is correct for paricular revision text and parent nodes. Having this method extracted will allow revlog subclasses to implement custom way of computing nodes. In particular this change is necessary to implement manifest compression.
Mon, 26 Aug 2013 16:11:21 +0900 histedit: discard meaningless comment about 'hexlify node'
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 26 Aug 2013 16:11:21 +0900] rev 19623
histedit: discard meaningless comment about 'hexlify node' Refactoring in 26b41a902195 made this comment meaningless. The node gotten by "discovery.findcommonoutgoing()" is hexlified in "between()" by "repo.set('%n::%n', old, new)".
Mon, 26 Aug 2013 16:11:21 +0900 histedit: add description about "histedit --outgoing" to command help
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 26 Aug 2013 16:11:21 +0900] rev 19622
histedit: add description about "histedit --outgoing" to command help Before this patch, there is no explicit description that argument is treated as the URL of the destination repository when "--outgoing" is specified. This patch adds description about "histedit --outgoing" to command help of it.
Mon, 26 Aug 2013 16:11:21 +0900 histedit: add description about basic histedit function to command help
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 26 Aug 2013 16:11:21 +0900] rev 19621
histedit: add description about basic histedit function to command help Before this patch, there is no explicit description that histedit edits changesets between specified ancestor and the parent of the working directory: users may notice it by error message "REV is not an ancestor of working directory". This patch adds description about basic histedit function to command help of it. This patch uses term "ancestor" instead of "parent", because it seems to be more suitable, and almost all (error) messages already use it.
Fri, 23 Aug 2013 16:16:22 -0400 httpclient: import 0d1b0a8bc549 to fix bug involving late-arriving RST after a response
Augie Fackler <raf@durin42.com> [Fri, 23 Aug 2013 16:16:22 -0400] rev 19620
httpclient: import 0d1b0a8bc549 to fix bug involving late-arriving RST after a response After a day of hunting this defect, I'm now unable to reproduce the bug without this patch applied. Regardless, this should fix the problem I was observing with wireshark. Hopefully this fixes any flakiness in the buildbot from http2.
Fri, 23 Aug 2013 13:28:18 -0400 progress: stop getting stuck in a nested topic during a long inner step
Augie Fackler <raf@durin42.com> [Fri, 23 Aug 2013 13:28:18 -0400] rev 19619
progress: stop getting stuck in a nested topic during a long inner step Convert, for example, has loops like this: for revision in source_repo: progress(revisions) for file in revision: progresss(file) Prior to this change, we would start showing the file-level progress when we encountered a big revision, and then we'd get stuck in showing file-progress instead of revision progress, often producing many many instantly-completing progress bars rather than the actually-helpful top-level revisions bar.
Thu, 15 Aug 2013 21:36:53 -0400 Backed out changeset 77d434760857
Augie Fackler <raf@durin42.com> [Thu, 15 Aug 2013 21:36:53 -0400] rev 19618
Backed out changeset 77d434760857
Thu, 15 Aug 2013 21:35:56 -0400 hgrc.d: separate namespace for mercurial scripts 9diff and 9mail
Jeff Sickel <jas@corpus-callosum.com> [Thu, 15 Aug 2013 21:35:56 -0400] rev 19617
hgrc.d: separate namespace for mercurial scripts 9diff and 9mail
Wed, 14 Aug 2013 12:42:22 -0500 debugfs: add hardlink support reporting
Matt Mackall <mpm@selenic.com> [Wed, 14 Aug 2013 12:42:22 -0500] rev 19616
debugfs: add hardlink support reporting
Sun, 04 Aug 2013 13:43:39 +0200 obsolete: allow passing a revision to successorssets()
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Sun, 04 Aug 2013 13:43:39 +0200] rev 19615
obsolete: allow passing a revision to successorssets()
Mon, 12 Aug 2013 17:44:31 -0500 factotum: clean up keychain for multiple hg repository authentication
Jeff Sickel <jas@corpus-callosum.com> [Mon, 12 Aug 2013 17:44:31 -0500] rev 19614
factotum: clean up keychain for multiple hg repository authentication
Mon, 12 Aug 2013 17:36:49 -0500 9mail: new script to add support for Plan 9 upas/marshal email wrapper
Jeff Sickel <jas@corpus-callosum.com> [Mon, 12 Aug 2013 17:36:49 -0500] rev 19613
9mail: new script to add support for Plan 9 upas/marshal email wrapper
Sun, 11 Aug 2013 23:50:32 -0500 workingfilectx: inherit from basefilectx instead of filectx
Sean Farley <sean.michael.farley@gmail.com> [Sun, 11 Aug 2013 23:50:32 -0500] rev 19612
workingfilectx: inherit from basefilectx instead of filectx
Sun, 11 Aug 2013 23:06:10 -0500 basefilectx: move copies from filectx
Sean Farley <sean.michael.farley@gmail.com> [Sun, 11 Aug 2013 23:06:10 -0500] rev 19611
basefilectx: move copies from filectx
Sun, 11 Aug 2013 23:05:50 -0500 basefilectx: move ancestors from filectx
Sean Farley <sean.michael.farley@gmail.com> [Sun, 11 Aug 2013 23:05:50 -0500] rev 19610
basefilectx: move ancestors from filectx
Sun, 11 Aug 2013 23:05:08 -0500 basefilectx: move ancestor from filectx
Sean Farley <sean.michael.farley@gmail.com> [Sun, 11 Aug 2013 23:05:08 -0500] rev 19609
basefilectx: move ancestor from filectx
Sun, 11 Aug 2013 23:03:33 -0500 basefilectx: move annotate from filectx
Sean Farley <sean.michael.farley@gmail.com> [Sun, 11 Aug 2013 23:03:33 -0500] rev 19608
basefilectx: move annotate from filectx
Sun, 11 Aug 2013 23:00:11 -0500 basefilectx: move p2 from filectx
Sean Farley <sean.michael.farley@gmail.com> [Sun, 11 Aug 2013 23:00:11 -0500] rev 19607
basefilectx: move p2 from filectx
Sun, 11 Aug 2013 22:59:10 -0500 basefilectx: move p1 from filectx
Sean Farley <sean.michael.farley@gmail.com> [Sun, 11 Aug 2013 22:59:10 -0500] rev 19606
basefilectx: move p1 from filectx
Sun, 11 Aug 2013 22:57:21 -0500 basefilectx: move parents from filectx
Sean Farley <sean.michael.farley@gmail.com> [Sun, 11 Aug 2013 22:57:21 -0500] rev 19605
basefilectx: move parents from filectx
Sun, 11 Aug 2013 22:56:53 -0500 basefilectx: move cmp from filectx
Sean Farley <sean.michael.farley@gmail.com> [Sun, 11 Aug 2013 22:56:53 -0500] rev 19604
basefilectx: move cmp from filectx
Sun, 11 Aug 2013 22:56:30 -0500 basefilectx: move isbinary from filectx
Sean Farley <sean.michael.farley@gmail.com> [Sun, 11 Aug 2013 22:56:30 -0500] rev 19603
basefilectx: move isbinary from filectx
Sun, 11 Aug 2013 22:56:18 -0500 basefilectx: move path from filectx
Sean Farley <sean.michael.farley@gmail.com> [Sun, 11 Aug 2013 22:56:18 -0500] rev 19602
basefilectx: move path from filectx
Sun, 11 Aug 2013 22:56:02 -0500 basefilectx: move changectx from filectx
Sean Farley <sean.michael.farley@gmail.com> [Sun, 11 Aug 2013 22:56:02 -0500] rev 19601
basefilectx: move changectx from filectx
Sun, 11 Aug 2013 22:55:09 -0500 basefilectx: move manifest from filectx
Sean Farley <sean.michael.farley@gmail.com> [Sun, 11 Aug 2013 22:55:09 -0500] rev 19600
basefilectx: move manifest from filectx
Sun, 11 Aug 2013 22:54:58 -0500 basefilectx: move phasestr from filectx
Sean Farley <sean.michael.farley@gmail.com> [Sun, 11 Aug 2013 22:54:58 -0500] rev 19599
basefilectx: move phasestr from filectx
Sun, 11 Aug 2013 22:54:48 -0500 basefilectx: move phase from filectx
Sean Farley <sean.michael.farley@gmail.com> [Sun, 11 Aug 2013 22:54:48 -0500] rev 19598
basefilectx: move phase from filectx
Sun, 11 Aug 2013 22:54:39 -0500 basefilectx: move extra from filectx
Sean Farley <sean.michael.farley@gmail.com> [Sun, 11 Aug 2013 22:54:39 -0500] rev 19597
basefilectx: move extra from filectx
Sun, 11 Aug 2013 22:54:31 -0500 basefilectx: move branch from filectx
Sean Farley <sean.michael.farley@gmail.com> [Sun, 11 Aug 2013 22:54:31 -0500] rev 19596
basefilectx: move branch from filectx
Sun, 11 Aug 2013 22:54:22 -0500 basefilectx: move description from filectx
Sean Farley <sean.michael.farley@gmail.com> [Sun, 11 Aug 2013 22:54:22 -0500] rev 19595
basefilectx: move description from filectx
Sun, 11 Aug 2013 22:54:12 -0500 basefilectx: move files from filectx
Sean Farley <sean.michael.farley@gmail.com> [Sun, 11 Aug 2013 22:54:12 -0500] rev 19594
basefilectx: move files from filectx
Sun, 11 Aug 2013 22:53:56 -0500 basefilectx: move date from filectx
Sean Farley <sean.michael.farley@gmail.com> [Sun, 11 Aug 2013 22:53:56 -0500] rev 19593
basefilectx: move date from filectx
Sun, 11 Aug 2013 22:53:47 -0500 basefilectx: move user from filectx
Sean Farley <sean.michael.farley@gmail.com> [Sun, 11 Aug 2013 22:53:47 -0500] rev 19592
basefilectx: move user from filectx
Sun, 11 Aug 2013 22:53:23 -0500 basefilectx: move hex from filectx
Sean Farley <sean.michael.farley@gmail.com> [Sun, 11 Aug 2013 22:53:23 -0500] rev 19591
basefilectx: move hex from filectx We also change the function call to use the hex method of its change context so that it mirrors other such method calls.
Sun, 11 Aug 2013 22:51:53 -0500 basefilectx: move node from filectx
Sean Farley <sean.michael.farley@gmail.com> [Sun, 11 Aug 2013 22:51:53 -0500] rev 19590
basefilectx: move node from filectx
Sun, 11 Aug 2013 22:51:41 -0500 basefilectx: move linkrev from filectx
Sean Farley <sean.michael.farley@gmail.com> [Sun, 11 Aug 2013 22:51:41 -0500] rev 19589
basefilectx: move linkrev from filectx
Sun, 11 Aug 2013 22:51:30 -0500 basefilectx: move rev from filectx
Sean Farley <sean.michael.farley@gmail.com> [Sun, 11 Aug 2013 22:51:30 -0500] rev 19588
basefilectx: move rev from filectx
Sun, 11 Aug 2013 22:51:18 -0500 basefilectx: move filelog from filectx
Sean Farley <sean.michael.farley@gmail.com> [Sun, 11 Aug 2013 22:51:18 -0500] rev 19587
basefilectx: move filelog from filectx
Sun, 11 Aug 2013 22:51:04 -0500 basefilectx: move flags from filectx
Sean Farley <sean.michael.farley@gmail.com> [Sun, 11 Aug 2013 22:51:04 -0500] rev 19586
basefilectx: move flags from filectx
Sun, 11 Aug 2013 22:50:37 -0500 basefilectx: move filenode from filectx
Sean Farley <sean.michael.farley@gmail.com> [Sun, 11 Aug 2013 22:50:37 -0500] rev 19585
basefilectx: move filenode from filectx
Sun, 11 Aug 2013 22:50:15 -0500 basefilectx: move filerev from filectx
Sean Farley <sean.michael.farley@gmail.com> [Sun, 11 Aug 2013 22:50:15 -0500] rev 19584
basefilectx: move filerev from filectx
Sun, 11 Aug 2013 22:49:40 -0500 basefilectx: move __ne__ from filectx
Sean Farley <sean.michael.farley@gmail.com> [Sun, 11 Aug 2013 22:49:40 -0500] rev 19583
basefilectx: move __ne__ from filectx
Sun, 11 Aug 2013 22:49:03 -0500 basefilectx: move __eq__ from filectx
Sean Farley <sean.michael.farley@gmail.com> [Sun, 11 Aug 2013 22:49:03 -0500] rev 19582
basefilectx: move __eq__ from filectx We also add type checking for extra protection.
Sun, 11 Aug 2013 22:47:39 -0500 basefilectx: move __hash__ from filectx
Sean Farley <sean.michael.farley@gmail.com> [Sun, 11 Aug 2013 22:47:39 -0500] rev 19581
basefilectx: move __hash__ from filectx
Sun, 11 Aug 2013 22:46:54 -0500 basefilectx: move __repr__ from filectx
Sean Farley <sean.michael.farley@gmail.com> [Sun, 11 Aug 2013 22:46:54 -0500] rev 19580
basefilectx: move __repr__ from filectx We change the hardcoded 'filectx' to instead use type(self).__name__ so that objects that inherit from basefilectx in the future will be able to use the same representation.
Sun, 11 Aug 2013 22:45:30 -0500 basefilectx: move __str__ from filectx
Sean Farley <sean.michael.farley@gmail.com> [Sun, 11 Aug 2013 22:45:30 -0500] rev 19579
basefilectx: move __str__ from filectx
Sun, 11 Aug 2013 22:45:13 -0500 basefilectx: move __nonzero__ from filectx
Sean Farley <sean.michael.farley@gmail.com> [Sun, 11 Aug 2013 22:45:13 -0500] rev 19578
basefilectx: move __nonzero__ from filectx
Sun, 11 Aug 2013 22:44:51 -0500 basefilectx: move _repopath from filectx
Sean Farley <sean.michael.farley@gmail.com> [Sun, 11 Aug 2013 22:44:51 -0500] rev 19577
basefilectx: move _repopath from filectx
Sun, 11 Aug 2013 22:44:36 -0500 basefilectx: move _filerev from filectx
Sean Farley <sean.michael.farley@gmail.com> [Sun, 11 Aug 2013 22:44:36 -0500] rev 19576
basefilectx: move _filerev from filectx
Sun, 11 Aug 2013 22:44:19 -0500 basefilectx: move _filenode from filectx
Sean Farley <sean.michael.farley@gmail.com> [Sun, 11 Aug 2013 22:44:19 -0500] rev 19575
basefilectx: move _filenode from filectx
Sun, 11 Aug 2013 22:44:06 -0500 basefilectx: move _changeid from filectx
Sean Farley <sean.michael.farley@gmail.com> [Sun, 11 Aug 2013 22:44:06 -0500] rev 19574
basefilectx: move _changeid from filectx
Sun, 11 Aug 2013 22:40:59 -0500 basefilectx: move _filelog from filectx
Sean Farley <sean.michael.farley@gmail.com> [Sun, 11 Aug 2013 22:40:59 -0500] rev 19573
basefilectx: move _filelog from filectx
Sat, 10 Aug 2013 15:10:26 -0500 basefilectx: add an empty class that will be used as a parent of file contexts
Sean Farley <sean.michael.farley@gmail.com> [Sat, 10 Aug 2013 15:10:26 -0500] rev 19572
basefilectx: add an empty class that will be used as a parent of file contexts Similar to the refactoring of context, we split common logic from filectx to a parent class called basefilectx that will be inherited by filectx, workingfilectx, and memfilectx. This will allow a clear disinction of all the file contexts: - filectx: read-only access to a filerevision that is already present in the repo, - workingfilectx: a filecontext that represents files from the working directory, - memfilectx: a filecontext that represents files in-memory
Mon, 05 Aug 2013 18:44:18 -0500 workingctx: inherit from basectx instead of changectx
Sean Farley <sean.michael.farley@gmail.com> [Mon, 05 Aug 2013 18:44:18 -0500] rev 19571
workingctx: inherit from basectx instead of changectx
Tue, 06 Aug 2013 15:10:09 -0500 largefiles: remove unnecessary check of instance
Sean Farley <sean.michael.farley@gmail.com> [Tue, 06 Aug 2013 15:10:09 -0500] rev 19570
largefiles: remove unnecessary check of instance The refactoring of all the context objects allows us to simply pass a basectx to the __new__ constructor and have it return the same object without allocating new memory. This also removes the need to import the context module.
Tue, 06 Aug 2013 15:11:42 -0500 localrepo: remove unnecessary check of instance
Sean Farley <sean.michael.farley@gmail.com> [Tue, 06 Aug 2013 15:11:42 -0500] rev 19569
localrepo: remove unnecessary check of instance The refactoring of all the context objects allows us to simply pass a basectx to the __new__ constructor and have it return the same object without allocating new memory.
Tue, 06 Aug 2013 15:11:31 -0500 basectx: remove unnecessary check of instance
Sean Farley <sean.michael.farley@gmail.com> [Tue, 06 Aug 2013 15:11:31 -0500] rev 19568
basectx: remove unnecessary check of instance The refactoring of all the context objects allows us to simply pass a basectx to the __new__ constructor and have it return the same object without allocating new memory.
Mon, 05 Aug 2013 18:42:41 -0500 basectx: move dirty from changectx
Sean Farley <sean.michael.farley@gmail.com> [Mon, 05 Aug 2013 18:42:41 -0500] rev 19567
basectx: move dirty from changectx
Mon, 05 Aug 2013 18:41:56 -0500 basectx: move dirs from changectx
Sean Farley <sean.michael.farley@gmail.com> [Mon, 05 Aug 2013 18:41:56 -0500] rev 19566
basectx: move dirs from changectx
Mon, 05 Aug 2013 18:41:43 -0500 basectx: move _dirs from changectx
Sean Farley <sean.michael.farley@gmail.com> [Mon, 05 Aug 2013 18:41:43 -0500] rev 19565
basectx: move _dirs from changectx
Mon, 05 Aug 2013 18:41:12 -0500 basectx: move diff from changectx
Sean Farley <sean.michael.farley@gmail.com> [Mon, 05 Aug 2013 18:41:12 -0500] rev 19564
basectx: move diff from changectx
Mon, 05 Aug 2013 18:41:00 -0500 basectx: move match from changectx
Sean Farley <sean.michael.farley@gmail.com> [Mon, 05 Aug 2013 18:41:00 -0500] rev 19563
basectx: move match from changectx
Mon, 05 Aug 2013 18:40:36 -0500 basectx: move sub from changectx
Sean Farley <sean.michael.farley@gmail.com> [Mon, 05 Aug 2013 18:40:36 -0500] rev 19562
basectx: move sub from changectx
Mon, 05 Aug 2013 18:28:54 -0500 basectx: move flags from changectx
Sean Farley <sean.michael.farley@gmail.com> [Mon, 05 Aug 2013 18:28:54 -0500] rev 19561
basectx: move flags from changectx
Mon, 05 Aug 2013 18:28:40 -0500 basectx: move filenode from changectx
Sean Farley <sean.michael.farley@gmail.com> [Mon, 05 Aug 2013 18:28:40 -0500] rev 19560
basectx: move filenode from changectx
Mon, 05 Aug 2013 18:28:23 -0500 basectx: move _fileinfo from changectx
Sean Farley <sean.michael.farley@gmail.com> [Mon, 05 Aug 2013 18:28:23 -0500] rev 19559
basectx: move _fileinfo from changectx
Mon, 05 Aug 2013 18:26:54 -0500 basectx: move p2 from changectx
Sean Farley <sean.michael.farley@gmail.com> [Mon, 05 Aug 2013 18:26:54 -0500] rev 19558
basectx: move p2 from changectx
Mon, 05 Aug 2013 18:26:15 -0500 basectx: move p1 from changectx
Sean Farley <sean.michael.farley@gmail.com> [Mon, 05 Aug 2013 18:26:15 -0500] rev 19557
basectx: move p1 from changectx
Mon, 05 Aug 2013 18:19:38 -0500 basectx: move parents from changectx
Sean Farley <sean.michael.farley@gmail.com> [Mon, 05 Aug 2013 18:19:38 -0500] rev 19556
basectx: move parents from changectx
Mon, 05 Aug 2013 18:19:19 -0500 basectx: move mutable from changectx
Sean Farley <sean.michael.farley@gmail.com> [Mon, 05 Aug 2013 18:19:19 -0500] rev 19555
basectx: move mutable from changectx
Mon, 05 Aug 2013 18:19:04 -0500 basectx: move phasestr from changectx
Sean Farley <sean.michael.farley@gmail.com> [Mon, 05 Aug 2013 18:19:04 -0500] rev 19554
basectx: move phasestr from changectx
Mon, 05 Aug 2013 17:22:49 -0500 basectx: move manifest from changectx
Sean Farley <sean.michael.farley@gmail.com> [Mon, 05 Aug 2013 17:22:49 -0500] rev 19553
basectx: move manifest from changectx
Mon, 05 Aug 2013 17:22:18 -0500 basectx: move __iter__ from changectx
Sean Farley <sean.michael.farley@gmail.com> [Mon, 05 Aug 2013 17:22:18 -0500] rev 19552
basectx: move __iter__ from changectx
Mon, 05 Aug 2013 17:22:05 -0500 basectx: move __getitem__ from changectx
Sean Farley <sean.michael.farley@gmail.com> [Mon, 05 Aug 2013 17:22:05 -0500] rev 19551
basectx: move __getitem__ from changectx
Mon, 05 Aug 2013 17:21:38 -0500 basectx: move __contains__ from changectx
Sean Farley <sean.michael.farley@gmail.com> [Mon, 05 Aug 2013 17:21:38 -0500] rev 19550
basectx: move __contains__ from changectx
Mon, 05 Aug 2013 17:21:23 -0500 basectx: move substate from changectx
Sean Farley <sean.michael.farley@gmail.com> [Mon, 05 Aug 2013 17:21:23 -0500] rev 19549
basectx: move substate from changectx
Mon, 05 Aug 2013 17:00:32 -0500 basectx: move __ne__ from changectx
Sean Farley <sean.michael.farley@gmail.com> [Mon, 05 Aug 2013 17:00:32 -0500] rev 19548
basectx: move __ne__ from changectx
Mon, 05 Aug 2013 17:00:09 -0500 basectx: move __eq__ from changectx
Sean Farley <sean.michael.farley@gmail.com> [Mon, 05 Aug 2013 17:00:09 -0500] rev 19547
basectx: move __eq__ from changectx We also add type checking for extra protection.
Fri, 02 Aug 2013 18:24:08 -0500 basectx: move __repr__ from changectx
Sean Farley <sean.michael.farley@gmail.com> [Fri, 02 Aug 2013 18:24:08 -0500] rev 19546
basectx: move __repr__ from changectx We change the hardcoded 'changectx' to instead use type(self).__name__ so that objects that inherit from basectx in the future will be able to use the same representation.
Fri, 02 Aug 2013 16:52:13 -0500 basectx: move __int__ from changectx
Sean Farley <sean.michael.farley@gmail.com> [Fri, 02 Aug 2013 16:52:13 -0500] rev 19545
basectx: move __int__ from changectx
Fri, 02 Aug 2013 16:50:13 -0500 basectx: change _node to node() in hex
Sean Farley <sean.michael.farley@gmail.com> [Fri, 02 Aug 2013 16:50:13 -0500] rev 19544
basectx: change _node to node() in hex This allows a child class to overload the node() function and still share the same code for hex().
Fri, 02 Aug 2013 16:49:01 -0500 basectx: move hex from changectx
Sean Farley <sean.michael.farley@gmail.com> [Fri, 02 Aug 2013 16:49:01 -0500] rev 19543
basectx: move hex from changectx
Fri, 02 Aug 2013 16:48:19 -0500 basectx: move node from changectx
Sean Farley <sean.michael.farley@gmail.com> [Fri, 02 Aug 2013 16:48:19 -0500] rev 19542
basectx: move node from changectx
Fri, 02 Aug 2013 19:09:06 -0500 basectx: move rev from changectx
Sean Farley <sean.michael.farley@gmail.com> [Fri, 02 Aug 2013 19:09:06 -0500] rev 19541
basectx: move rev from changectx
Fri, 02 Aug 2013 16:46:23 -0500 basectx: move __str__ from changectx
Sean Farley <sean.michael.farley@gmail.com> [Fri, 02 Aug 2013 16:46:23 -0500] rev 19540
basectx: move __str__ from changectx
Tue, 06 Aug 2013 16:42:41 -0500 changectx: if passing a basectx then exit __init__ immediately
Sean Farley <sean.michael.farley@gmail.com> [Tue, 06 Aug 2013 16:42:41 -0500] rev 19539
changectx: if passing a basectx then exit __init__ immediately
Tue, 06 Aug 2013 15:50:28 -0500 basectx: return a copied context if changeid is already a basectx
Sean Farley <sean.michael.farley@gmail.com> [Tue, 06 Aug 2013 15:50:28 -0500] rev 19538
basectx: return a copied context if changeid is already a basectx This implements a copy constructor so that we can pass a basectx-derived object in future refactorings.
Sat, 13 Jul 2013 19:59:21 -0500 basectx: add an empty class that will be used as a parent of all contexts
Sean Farley <sean.michael.farley@gmail.com> [Sat, 13 Jul 2013 19:59:21 -0500] rev 19537
basectx: add an empty class that will be used as a parent of all contexts At the moment, there is no simple way to check if an object is a context because there is no common parent class. If there were, we could use 'isinstance' everywhere. Simply having memctx inherit from workingctx or changectx would allow the use of 'isinstance' but that could lead to some confusing situations of reading the code since we have three distinct concepts of a context: - changectx represents a changeset *already* in the repo, and is therefore immutable - workingctx represents changes on disk in the working directory - memctx represents changes solely in memory which may or may not be on disk Therefore, I propose refactoring context.py to have all three contexts inherit from a parent class 'basectx'.
Wed, 24 Jul 2013 19:13:39 -0400 ui.config: fix bug in config alternatives from cc669e4fec95
Augie Fackler <durin42@gmail.com> [Wed, 24 Jul 2013 19:13:39 -0400] rev 19536
ui.config: fix bug in config alternatives from cc669e4fec95
Sat, 03 Aug 2013 13:23:48 -0500 proxy: allow wildcards in the no proxy list (issue1821)
Matt Mackall <mpm@selenic.com> [Sat, 03 Aug 2013 13:23:48 -0500] rev 19535
proxy: allow wildcards in the no proxy list (issue1821)
Fri, 19 Jul 2013 02:08:19 +0400 hgweb: cleaner if conditions in changelog() function
Alexander Plavin <alexander@plav.in> [Fri, 19 Jul 2013 02:08:19 +0400] rev 19534
hgweb: cleaner if conditions in changelog() function This removes unneeded extra nesting level and extra variable, which makes the code easier to understand.
Mon, 15 Jul 2013 01:10:22 +0400 hgweb: separate search itself and template generation
Alexander Plavin <alexander@plav.in> [Mon, 15 Jul 2013 01:10:22 +0400] rev 19533
hgweb: separate search itself and template generation This will make it simpler to add other search modes.
Sat, 03 Aug 2013 00:34:56 +0400 paper: remove unused occurence of changelogtag in views
Alexander Plavin <alexander@plav.in> [Sat, 03 Aug 2013 00:34:56 +0400] rev 19532
paper: remove unused occurence of changelogtag in views This variably isn't passed to these views and it always renders to empty string for this reason. Other themes don't have this issue.
Sun, 30 Jun 2013 11:48:21 +0400 hgweb: show full date in rfc822 format in tooltips at shortlog page
Alexander Plavin <alexander@plav.in> [Sun, 30 Jun 2013 11:48:21 +0400] rev 19531
hgweb: show full date in rfc822 format in tooltips at shortlog page The absolute date was not shown anywhere in the log view for users with enabled JavaScript.
Sun, 04 Aug 2013 16:19:12 -0500 hgweb: remove trailing whitespace in mercurial.js
Kevin Bullock <kbullock@ringworld.org> [Sun, 04 Aug 2013 16:19:12 -0500] rev 19530
hgweb: remove trailing whitespace in mercurial.js
Mon, 22 Jul 2013 17:07:19 +0400 paper: get rid of changelogtag template duplication
Alexander Plavin <alexander@plav.in> [Mon, 22 Jul 2013 17:07:19 +0400] rev 19529
paper: get rid of changelogtag template duplication
Fri, 26 Jul 2013 15:59:16 -0400 obsolete: clean up a couple of docstrings for correctness
Augie Fackler <raf@durin42.com> [Fri, 26 Jul 2013 15:59:16 -0400] rev 19528
obsolete: clean up a couple of docstrings for correctness
Fri, 26 Jul 2013 21:18:40 -0400 run-tests: only check the common criteria once per test
Simon Heimberg <simohe@besonet.ch> [Fri, 26 Jul 2013 21:18:40 -0400] rev 19527
run-tests: only check the common criteria once per test
Thu, 01 Aug 2013 22:52:05 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Thu, 01 Aug 2013 22:52:05 -0500] rev 19526
merge with stable
Thu, 01 Aug 2013 22:37:44 -0500 Added signature for changeset f37b5a17e6a0 stable
Matt Mackall <mpm@selenic.com> [Thu, 01 Aug 2013 22:37:44 -0500] rev 19525
Added signature for changeset f37b5a17e6a0
Thu, 01 Aug 2013 22:37:41 -0500 Added tag 2.7 for changeset f37b5a17e6a0 stable
Matt Mackall <mpm@selenic.com> [Thu, 01 Aug 2013 22:37:41 -0500] rev 19524
Added tag 2.7 for changeset f37b5a17e6a0
Thu, 01 Aug 2013 21:43:14 -0500 bookmarks: pull --update updates to active bookmark if it moved (issue4007) stable 2.7
Kevin Bullock <kbullock@ringworld.org> [Thu, 01 Aug 2013 21:43:14 -0500] rev 19523
bookmarks: pull --update updates to active bookmark if it moved (issue4007) This makes `hg pull --update` behave the same wrt the active bookmark as `hg pull && hg update` does as of 2096e025a728. A helper function, bookmarks.calculateupdate, is added to prevent code duplication between postincoming and update.
Thu, 01 Aug 2013 20:06:00 -0500 merge with i18n stable
Matt Mackall <mpm@selenic.com> [Thu, 01 Aug 2013 20:06:00 -0500] rev 19522
merge with i18n
Thu, 01 Aug 2013 02:36:59 -0300 i18n-pt_BR: synchronized with 7b815e38022a stable
Wagner Bruna <wbruna@yahoo.com> [Thu, 01 Aug 2013 02:36:59 -0300] rev 19521
i18n-pt_BR: synchronized with 7b815e38022a
Thu, 01 Aug 2013 04:32:29 +0900 i18n-ja: synchronized with cfdae231ba78 stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 01 Aug 2013 04:32:29 +0900] rev 19520
i18n-ja: synchronized with cfdae231ba78
Thu, 01 Aug 2013 19:55:02 -0500 histedit: don't clobber working copy on --abort if not on histedit cset stable
Matt Mackall <mpm@selenic.com> [Thu, 01 Aug 2013 19:55:02 -0500] rev 19519
histedit: don't clobber working copy on --abort if not on histedit cset Similar to issue4009, 2.7 will force people to abort histedits before doing interesting things. Without this fix, people with histedit sessions they wandered away from before upgrading to 2.7 could clobber their working copy for no reason.
Thu, 01 Aug 2013 17:54:12 -0500 rebase: allow aborting when descendants detected stable
Matt Mackall <mpm@selenic.com> [Thu, 01 Aug 2013 17:54:12 -0500] rev 19518
rebase: allow aborting when descendants detected With this, all aborts will succeed in removing the state, rather than leaving the user in 'what do I do now?' limbo.
Thu, 01 Aug 2013 17:45:13 -0500 rebase: continue abort without strip for immutable csets (issue3997) stable
Matt Mackall <mpm@selenic.com> [Thu, 01 Aug 2013 17:45:13 -0500] rev 19517
rebase: continue abort without strip for immutable csets (issue3997) This causes us to simply discard the rebase state.
Thu, 01 Aug 2013 17:33:09 -0500 rebase: don't clobber wd on --abort when we've updated away (issue4009) stable
Matt Mackall <mpm@selenic.com> [Thu, 01 Aug 2013 17:33:09 -0500] rev 19516
rebase: don't clobber wd on --abort when we've updated away (issue4009)
Fri, 26 Jul 2013 13:34:51 -0700 bookmarks: update only proper bookmarks on push -r/-B (issue 3973) stable
Wojciech Lopata <lopek@fb.com> [Fri, 26 Jul 2013 13:34:51 -0700] rev 19515
bookmarks: update only proper bookmarks on push -r/-B (issue 3973) Make push -r/-B update only these bookmarks that point to pushed revisions or their ancestors, so we can be sure that commit pointed by bookmark is present in the remote reposiory. Previously push tried to update all shared bookmarks.
Sun, 28 Jul 2013 15:02:32 -0500 checklink: work around sshfs brain-damage (issue3636) stable
Matt Mackall <mpm@selenic.com> [Sun, 28 Jul 2013 15:02:32 -0500] rev 19514
checklink: work around sshfs brain-damage (issue3636) With the follow_symlinks option, sshfs will successfully create links while claiming it encountered an I/O error. In addition, depending on the type of link, it may subsequently be impossible to delete the link via sshfs. Our existing link to '.' will cause sshfs to think the link is a directory, and thus cause unlink to give EISDIR. Links to non-existent names or circular links will cause the created link to not even be visible. Thus, we need to create a new temporary file and link to that. We'll still get a failure, but we'll be able to remove the link.
Sat, 27 Jul 2013 19:31:14 -0500 import: cut commit messages at --- unconditionally (issue2148) stable
Matt Mackall <mpm@selenic.com> [Sat, 27 Jul 2013 19:31:14 -0500] rev 19513
import: cut commit messages at --- unconditionally (issue2148) We used to do this based on X-mailer: mentioning git, but git doesn't put X-mailer in its git-format-patch output.
Sat, 27 Jul 2013 21:16:12 +0200 win32: update Inno Setup installer script and extensions list stable
Pascal Quantin <pascal.quantin@gmail.com> [Sat, 27 Jul 2013 21:16:12 +0200] rev 19512
win32: update Inno Setup installer script and extensions list
Fri, 26 Jul 2013 21:03:25 -0500 revert: fix largefiles breakage stable
Matt Mackall <mpm@selenic.com> [Fri, 26 Jul 2013 21:03:25 -0500] rev 19511
revert: fix largefiles breakage
Fri, 26 Jul 2013 17:08:05 -0500 revert: make backup when unforgetting a file (issue3423) stable
Matt Mackall <mpm@selenic.com> [Fri, 26 Jul 2013 17:08:05 -0500] rev 19510
revert: make backup when unforgetting a file (issue3423) This skips the backup if it would be a duplicate.
Fri, 26 Jul 2013 15:42:10 -0500 revsingle: fix silly API issue (issue2992) stable
Matt Mackall <mpm@selenic.com> [Fri, 26 Jul 2013 15:42:10 -0500] rev 19509
revsingle: fix silly API issue (issue2992)
Fri, 26 Jul 2013 15:05:48 -0500 Added signature for changeset f0d7721d7322 stable
Matt Mackall <mpm@selenic.com> [Fri, 26 Jul 2013 15:05:48 -0500] rev 19508
Added signature for changeset f0d7721d7322
Fri, 26 Jul 2013 15:05:46 -0500 Added tag 2.7-rc for changeset f0d7721d7322 stable
Matt Mackall <mpm@selenic.com> [Fri, 26 Jul 2013 15:05:46 -0500] rev 19507
Added tag 2.7-rc for changeset f0d7721d7322
Thu, 25 Jul 2013 21:00:03 +0200 i18n-it: do not translate rst syntax stable 2.7-rc
Simon Heimberg <simohe@besonet.ch> [Thu, 25 Jul 2013 21:00:03 +0200] rev 19506
i18n-it: do not translate rst syntax ".. container::" and ".. note::" are rst syntax and therefore must not be translated.
Fri, 26 Jul 2013 14:44:13 +0100 convert: handle changeset sorting errors without traceback (issue3961) stable
Frank Kingswood <frank@kingswood-consulting.co.uk> [Fri, 26 Jul 2013 14:44:13 +0100] rev 19505
convert: handle changeset sorting errors without traceback (issue3961)
Thu, 25 Jul 2013 14:43:15 -0700 ancestor.deepest: ignore ninteresting while building result (issue3984) stable
Siddharth Agarwal <sid0@fb.com> [Thu, 25 Jul 2013 14:43:15 -0700] rev 19504
ancestor.deepest: ignore ninteresting while building result (issue3984) ninteresting indicates the number of non-zero elements in the interesting array, not the number of elements in the final list. Since elements in interesting can stand for more than one gca, limiting the number of results to ninteresting is an error. Tests for issue3984 are included.
Thu, 25 Jul 2013 17:35:53 +0800 ancestor.deepest: decrement ninteresting correctly (issue3984) stable
Wei, Elson <elson.wei@gmail.com> [Thu, 25 Jul 2013 17:35:53 +0800] rev 19503
ancestor.deepest: decrement ninteresting correctly (issue3984) The invariant this code tries to hold is that ninteresting is the number of non-zero elements in the interesting array. interesting[nsp] is incremented at the same time as interesting[sp] is decremented. So if interesting[nsp] was previously 0, ninteresting shouldn't be decremented.
Thu, 25 Jul 2013 14:20:37 -0700 ancestor.deepest: sort revs in C version stable
Siddharth Agarwal <sid0@fb.com> [Thu, 25 Jul 2013 14:20:37 -0700] rev 19502
ancestor.deepest: sort revs in C version This isn't strictly necessary, but it makes the code more consistent with the Python version.
Thu, 25 Jul 2013 10:44:51 -0400 check-code: add a check for the next() builtin, which was new in 2.6 stable
Augie Fackler <raf@durin42.com> [Thu, 25 Jul 2013 10:44:51 -0400] rev 19501
check-code: add a check for the next() builtin, which was new in 2.6
Thu, 25 Jul 2013 10:42:36 -0400 mq: rename next() to nextpatch() to avoid confusing a future check-code patch stable
Augie Fackler <raf@durin42.com> [Thu, 25 Jul 2013 10:42:36 -0400] rev 19500
mq: rename next() to nextpatch() to avoid confusing a future check-code patch next() is a builtin starting in 2.6, so it's also nice to avoid shadowing the builtin.
Thu, 25 Jul 2013 15:27:41 +0400 hgweb: replace next(revs) to revs.next() to fix compatibility with Python 2.5- stable
Alexander Plavin <me@aplavin.ru> [Thu, 25 Jul 2013 15:27:41 +0400] rev 19499
hgweb: replace next(revs) to revs.next() to fix compatibility with Python 2.5-
Thu, 25 Jul 2013 02:44:27 -0500 tests: glob out exception type for directory collision stable
Matt Mackall <mpm@selenic.com> [Thu, 25 Jul 2013 02:44:27 -0500] rev 19498
tests: glob out exception type for directory collision Got three different results on buildbot.
Thu, 25 Jul 2013 02:34:09 -0500 record: add checkunfinished support (issue3955) stable
Matt Mackall <mpm@selenic.com> [Thu, 25 Jul 2013 02:34:09 -0500] rev 19497
record: add checkunfinished support (issue3955)
Thu, 25 Jul 2013 02:17:52 -0500 checkunfinished: accommodate histedit quirk stable
Matt Mackall <mpm@selenic.com> [Thu, 25 Jul 2013 02:17:52 -0500] rev 19496
checkunfinished: accommodate histedit quirk Turns out histedit actually intends for commits (but not other operations like update) to be possible during its operation.
Mon, 22 Jul 2013 10:04:53 +0200 tests: test-check-code-hg.t works for all files to check stable
Simon Heimberg <simohe@besonet.ch> [Mon, 22 Jul 2013 10:04:53 +0200] rev 19495
tests: test-check-code-hg.t works for all files to check with xargs, backslashes are eaten up. Convert them to slashes therefore. This is only a problem with ls (on windows). hg manifest returns slashes. The pipe char is moved before the line end for telling check-code.py that sed does not modify the output.
Mon, 22 Jul 2013 10:04:45 +0200 check-code: do not abort on an unreadable file, only report this stable
Simon Heimberg <simohe@besonet.ch> [Mon, 22 Jul 2013 10:04:45 +0200] rev 19494
check-code: do not abort on an unreadable file, only report this
Thu, 25 Jul 2013 00:54:49 -0500 heads: fix children/descendants in doc (issue3992) stable
Matt Mackall <mpm@selenic.com> [Thu, 25 Jul 2013 00:54:49 -0500] rev 19493
heads: fix children/descendants in doc (issue3992)
Sun, 21 Jul 2013 18:50:54 +0400 paper: fix rendering of the first tab in a line in Webkit (issue3990) stable
Alexander Plavin <me@aplavin.ru> [Sun, 21 Jul 2013 18:50:54 +0400] rev 19492
paper: fix rendering of the first tab in a line in Webkit (issue3990) This fixes issue3990 for Webkit-browsers, and also older Opera versions. Rendering in firefox is not changed.
Sun, 21 Jul 2013 01:38:04 +0400 hgweb: fix duplication for some search queries stable
Alexander Plavin <me@aplavin.ru> [Sun, 21 Jul 2013 01:38:04 +0400] rev 19491
hgweb: fix duplication for some search queries Given that N is maximum revision number in a repo, than if a revision with number N-100n or N-100n+1 (for any integer n) is found with a hgweb search, this revision is duplicated in search results.
Wed, 24 Jul 2013 14:51:13 -0400 sslutil: force SSLv3 on Python 2.6 and later (issue3905) stable
Augie Fackler <raf@durin42.com> [Wed, 24 Jul 2013 14:51:13 -0400] rev 19490
sslutil: force SSLv3 on Python 2.6 and later (issue3905) We can't (easily) force SSL version on older Pythons, but on 2.6 and later we can force SSLv3, which is safer and widely supported. This also appears to work around a bug in IIS detailed in issue 3905.
Wed, 24 Jul 2013 14:45:29 -0400 httpclient: update to revision 9517a2b56fe9 of httpplus (issue3905) stable
Augie Fackler <raf@durin42.com> [Wed, 24 Jul 2013 14:45:29 -0400] rev 19489
httpclient: update to revision 9517a2b56fe9 of httpplus (issue3905) Includes upstream change "socketutil: force SSLv3 by default, as it is safer" which should fix issue 3905.
Sat, 11 May 2013 20:40:15 -0500 hgweb: force connection close on early response stable
Augie Fackler <raf@durin42.com> [Sat, 11 May 2013 20:40:15 -0500] rev 19488
hgweb: force connection close on early response Not all WSGI servers close the socket when an early response is sent to a large POST request, which can cause the server to interpret the already-sent request body as an incoming (but hopelessly invalid) request.
Thu, 25 Jul 2013 02:41:22 +0400 hgweb: fix incorrect revisions count in graph (issue3977) stable
Alexander Plavin <me@aplavin.ru> [Thu, 25 Jul 2013 02:41:22 +0400] rev 19487
hgweb: fix incorrect revisions count in graph (issue3977) Actual amount of revisions is used now instead of their numbers in the repo before to deal with skipped numbers correctly.
Thu, 25 Jul 2013 02:22:39 +0400 hgweb: fix incorrect way to count revisions in log (issue3977) stable
Alexander Plavin <me@aplavin.ru> [Thu, 25 Jul 2013 02:22:39 +0400] rev 19486
hgweb: fix incorrect way to count revisions in log (issue3977) Actual amount of revisions is used now instead of their numbers in the repo before to deal with skipped numbers correctly. This iterates starting from the newest revision (which is shown on top) yielding up to the specified count, instead of the reversed order used before. Effect of this change on efficiency is negligible, when the same changesets are returned.
Thu, 25 Jul 2013 02:48:21 +0400 hgweb: always start graph with the revision in url stable
Alexander Plavin <me@aplavin.ru> [Thu, 25 Jul 2013 02:48:21 +0400] rev 19485
hgweb: always start graph with the revision in url It is the same fix for graph command, as was recently for log. This makes the specified revision be always on top of the graph view. Before the patch, for example with repo having revisions 0, 1, 2, 3 and revision in url being '2', all revisions were shown and the specified one wasn't the first.
Thu, 25 Jul 2013 00:44:00 -0500 merge with i18n stable
Matt Mackall <mpm@selenic.com> [Thu, 25 Jul 2013 00:44:00 -0500] rev 19484
merge with i18n
Wed, 24 Jul 2013 09:43:32 -0300 i18n-pt_BR: synchronized with bf6bc4681383 stable
Wagner Bruna <wbruna@yahoo.com> [Wed, 24 Jul 2013 09:43:32 -0300] rev 19483
i18n-pt_BR: synchronized with bf6bc4681383
Thu, 25 Jul 2013 00:33:28 -0500 update: add tracking of interrupted updates (issue3113) stable
Matt Mackall <mpm@selenic.com> [Thu, 25 Jul 2013 00:33:28 -0500] rev 19482
update: add tracking of interrupted updates (issue3113) This takes advantage of the new checkunfinished infrastructure
Thu, 25 Jul 2013 00:00:47 -0500 mq: add checkunfinished support (issue3955) stable
Matt Mackall <mpm@selenic.com> [Thu, 25 Jul 2013 00:00:47 -0500] rev 19481
mq: add checkunfinished support (issue3955)
Wed, 24 Jul 2013 23:51:44 -0500 transplant: add checkunfinished (issue3955) stable
Matt Mackall <mpm@selenic.com> [Wed, 24 Jul 2013 23:51:44 -0500] rev 19480
transplant: add checkunfinished (issue3955) Nobody loves transplant anymore, but it was the first command to have a --continue flag.
Wed, 24 Jul 2013 23:51:44 -0500 histedit: add checkunfinished support (issue3955) stable
Matt Mackall <mpm@selenic.com> [Wed, 24 Jul 2013 23:51:44 -0500] rev 19479
histedit: add checkunfinished support (issue3955) The tests contain a couple corner cases where workarounds are now required. Strictly speaking, these are behavior regressions, but of an extremely obscure and marginal sort. Commits or updates in the middle of a histedit would have almost always been fairly serious user error.
Wed, 24 Jul 2013 23:51:44 -0500 rebase: add checkunfinished support (issue3955) stable
Matt Mackall <mpm@selenic.com> [Wed, 24 Jul 2013 23:51:44 -0500] rev 19478
rebase: add checkunfinished support (issue3955)
Wed, 24 Jul 2013 23:51:44 -0500 rebase: reorder parent check and state storage stable
Matt Mackall <mpm@selenic.com> [Wed, 24 Jul 2013 23:51:44 -0500] rev 19477
rebase: reorder parent check and state storage This could cause a rebase to be 'in progress' even though it aborted.
Wed, 24 Jul 2013 23:51:40 -0500 commands: add checks for unfinished operations (issue3955) stable
Matt Mackall <mpm@selenic.com> [Wed, 24 Jul 2013 23:51:40 -0500] rev 19476
commands: add checks for unfinished operations (issue3955) commands checked: backout bisect commit graft import
Wed, 24 Jul 2013 23:30:24 -0500 update: clear any clearable unfinished operations (issue3955) stable
Matt Mackall <mpm@selenic.com> [Wed, 24 Jul 2013 23:30:24 -0500] rev 19475
update: clear any clearable unfinished operations (issue3955) Unclearable operations will cause an abort.
Wed, 24 Jul 2013 23:27:30 -0500 cmdutil: core functionality to block during multistep commands (issue3955) stable
Matt Mackall <mpm@selenic.com> [Wed, 24 Jul 2013 23:27:30 -0500] rev 19474
cmdutil: core functionality to block during multistep commands (issue3955) This adds a registration point and check functions that will allow commands to check if multistep operations like an interrupted graft or rebase are in progress before proceeding.
Wed, 24 Jul 2013 17:39:29 -0400 histedit: refuse to edit history that contains merges (issue3962) stable
Augie Fackler <raf@durin42.com> [Wed, 24 Jul 2013 17:39:29 -0400] rev 19473
histedit: refuse to edit history that contains merges (issue3962)
Wed, 24 Jul 2013 13:20:44 +0800 largefiles: overridematch() should replace the file path instead of extending (issue3934) stable
Wei, Elson <elson.wei@gmail.com> [Wed, 24 Jul 2013 13:20:44 +0800] rev 19472
largefiles: overridematch() should replace the file path instead of extending (issue3934)
Tue, 23 Jul 2013 17:28:12 -0500 revlog: handle hidden revs in _partialmatch (issue3979) stable
Matt Mackall <mpm@selenic.com> [Tue, 23 Jul 2013 17:28:12 -0500] rev 19471
revlog: handle hidden revs in _partialmatch (issue3979) Looking up hidden prefixes could cause a no node exception Looking up unique non-hidden prefixes could be ambiguous
Tue, 23 Jul 2013 14:18:56 -0500 fileset: handle underbar in symbols stable
Matt Mackall <mpm@selenic.com> [Tue, 23 Jul 2013 14:18:56 -0500] rev 19470
fileset: handle underbar in symbols This was documented, but not implemented.
Sun, 21 Jul 2013 18:45:42 -0500 heads: modernize documentation (issue3992) stable
Matt Mackall <mpm@selenic.com> [Sun, 21 Jul 2013 18:45:42 -0500] rev 19469
heads: modernize documentation (issue3992) The old docs emphasized topological heads rather than branch heads and incorrectly defined branch heads as not having children rather than descendants.
Fri, 19 Jul 2013 16:45:44 -0500 convert: catch empty origpaths in svn gettags (issue3941) stable
Matt Mackall <mpm@selenic.com> [Fri, 19 Jul 2013 16:45:44 -0500] rev 19468
convert: catch empty origpaths in svn gettags (issue3941)
Fri, 19 Jul 2013 12:58:30 -0500 template: fix tabindent docstring (issue2880) stable
Matt Mackall <mpm@selenic.com> [Fri, 19 Jul 2013 12:58:30 -0500] rev 19467
template: fix tabindent docstring (issue2880)
Fri, 19 Jul 2013 00:20:53 -0500 merge default into stable for 2.7 code freeze stable
Matt Mackall <mpm@selenic.com> [Fri, 19 Jul 2013 00:20:53 -0500] rev 19466
merge default into stable for 2.7 code freeze
Fri, 12 Jul 2013 11:14:42 +0900 osutil: consider WindowsError's behaviour to support python 2.4 on Windows
Shun-ichi GOTO <shunichi.goto@gmail.com> [Fri, 12 Jul 2013 11:14:42 +0900] rev 19465
osutil: consider WindowsError's behaviour to support python 2.4 on Windows This change treat the ESRCH error as ENOENT like WindowsError class does in python 2.5 or later. Without this change, some try..execpt code which expects errno is ENOENT may fail. Actually hg command does not work with python 2.4 on Windows. CreateFile() will fail with error code ESRCH when parent directory of specified path is not exist, or ENOENT when parent directory exist but file is not exist. Two errors are same in the mean of "file is not exist". So WindowsError class treats error code ESRCH as ENOENT in python 2.5 or later, but python 2.4 does not. Actual results with python 2.4: >>> errno.ENOENT 2 >>> errno.ESRCH 3 >>> WindowsError(3, 'msg').errno 3 >>> WindowsError(3, 'msg').args (3, 'msg') And with python 2.5 (or later): >>> errno.ENOENT 2 >>> errno.ESRCH 3 >>> WindowsError(3, 'msg').errno 2 >>> WindowsError(3, 'msg').args (3, 'msg') Note that there is no need to fix osutil.c because it never be used with python 2.4.
Wed, 17 Jul 2013 10:40:40 -0400 churn: split email aliases from the right
Matthew Turk <matthewturk@gmail.com> [Wed, 17 Jul 2013 10:40:40 -0400] rev 19464
churn: split email aliases from the right This splits churn email aliases from the right, to enable incorrectly-specified addresses that include equal signs to be mapped to correct addresses. This will enable aliasing of bad addresses (typically typos) such as: sername=myusername that appear in the churn output through a churn alias such as: sername=myusername = myusername whereas previously splitting from the left would not enable this behavior.
Sun, 14 Jul 2013 05:35:04 +0400 hgweb: highlight line which is linked to at annotate view
Alexander Plavin <me@aplavin.ru> [Sun, 14 Jul 2013 05:35:04 +0400] rev 19463
hgweb: highlight line which is linked to at annotate view
Sat, 13 Jul 2013 02:36:29 +0400 hgweb: always start log with searched revision
Alexander Plavin <me@aplavin.ru> [Sat, 13 Jul 2013 02:36:29 +0400] rev 19462
hgweb: always start log with searched revision This makes the specified revision be always on top of the list. Before the patch, for example with repo having revisions 0, 1, 2, 3 and user searching for '2', all revisions were shown and the specified one wasn't the first.
Mon, 01 Jul 2013 06:50:58 +0200 util: check if re2 works before using it (issue 3964)
Simon Heimberg <simohe@besonet.ch> [Mon, 01 Jul 2013 06:50:58 +0200] rev 19461
util: check if re2 works before using it (issue 3964)
Thu, 18 Jul 2013 23:22:59 -0500 run-tests: backout 4f32747879d1 line endings change
Matt Mackall <mpm@selenic.com> [Thu, 18 Jul 2013 23:22:59 -0500] rev 19460
run-tests: backout 4f32747879d1 line endings change It made the windows buildbot sad.
Sat, 13 Jul 2013 17:32:54 +0400 hgweb: highlight line which is linked to at comparison view
Alexander Plavin <me@aplavin.ru> [Sat, 13 Jul 2013 17:32:54 +0400] rev 19459
hgweb: highlight line which is linked to at comparison view
Sat, 13 Jul 2013 17:31:53 +0400 hgweb: change highlighted line color to be different from 'inserted' color
Alexander Plavin <me@aplavin.ru> [Sat, 13 Jul 2013 17:31:53 +0400] rev 19458
hgweb: change highlighted line color to be different from 'inserted' color This changes line highlight color from a fain yellow (#ffff99) to a faint blue (#bfdfff), because yellow color is used in comparison view for inserted lines. This new color is okay for people with different forms of color blindness (tested with a simulator): a) this color looks quite different from other used backgrounds b) text doesn't lose distinction on this color
Fri, 19 Jul 2013 01:40:57 +0200 convert: fix bad conversion of copies when hg.startrev is specified
Mads Kiilerich <madski@unity3d.com> [Fri, 19 Jul 2013 01:40:57 +0200] rev 19457
convert: fix bad conversion of copies when hg.startrev is specified The 'copynode' was looked up in self.keep as if it was a changeset node. It is however a filelog node, and self.keep would thus fail if it actually looked at its parameter ... which it only did if a startrev was specified. Instead we now don't check the copy node - we don't have to. It must have been copied from one of the parents, and we already check whether one of the parents have the copy source. We could perhaps use linkrev to see if the corresponding changeset was converted ... but that would sometimes be wrong. The existing test of this was wrong - now it is better, but it seems like it exposes a 'log' issue.
Fri, 19 Jul 2013 01:18:15 +0200 test-convert-hg-startrev: fix test for copy removal on missing parent
Mads Kiilerich <madski@unity3d.com> [Fri, 19 Jul 2013 01:18:15 +0200] rev 19456
test-convert-hg-startrev: fix test for copy removal on missing parent The test assumed that 'b' was missing just because the changeset that introduced 'b' wasn't converted ... but 'b' was also not removed before the start revision, and the parent was thus not missing at all. Instead we introduce a file 'f' in rev 0 and remove it in rev 1 so the copy source really doesn't exist in the repo that is converted from rev 1.
Sat, 13 Jul 2013 18:06:57 +0400 hgweb: make stripes in diffstat with CSS
Alexander Plavin <me@aplavin.ru> [Sat, 13 Jul 2013 18:06:57 +0400] rev 19455
hgweb: make stripes in diffstat with CSS
Sat, 13 Jul 2013 18:03:35 +0400 hgweb: make stripes in file log with CSS
Alexander Plavin <me@aplavin.ru> [Sat, 13 Jul 2013 18:03:35 +0400] rev 19454
hgweb: make stripes in file log with CSS
Sat, 13 Jul 2013 18:02:34 +0400 hgweb: make stripes in graph with CSS
Alexander Plavin <me@aplavin.ru> [Sat, 13 Jul 2013 18:02:34 +0400] rev 19453
hgweb: make stripes in graph with CSS
Sat, 13 Jul 2013 17:59:00 +0400 hgweb: make stripes in log and search with CSS
Alexander Plavin <me@aplavin.ru> [Sat, 13 Jul 2013 17:59:00 +0400] rev 19452
hgweb: make stripes in log and search with CSS
Sat, 13 Jul 2013 17:51:43 +0400 hgweb: make stripes in branch list with CSS
Alexander Plavin <me@aplavin.ru> [Sat, 13 Jul 2013 17:51:43 +0400] rev 19451
hgweb: make stripes in branch list with CSS
Sat, 13 Jul 2013 17:49:20 +0400 hgweb: make stripes in repo list with CSS
Alexander Plavin <me@aplavin.ru> [Sat, 13 Jul 2013 17:49:20 +0400] rev 19450
hgweb: make stripes in repo list with CSS
Sat, 13 Jul 2013 17:43:45 +0400 hgweb: make stripes in file annotate view with CSS
Alexander Plavin <me@aplavin.ru> [Sat, 13 Jul 2013 17:43:45 +0400] rev 19449
hgweb: make stripes in file annotate view with CSS
Sat, 13 Jul 2013 17:44:57 +0400 hgweb: make stripes in tag list with CSS
Alexander Plavin <me@aplavin.ru> [Sat, 13 Jul 2013 17:44:57 +0400] rev 19448
hgweb: make stripes in tag list with CSS
Sat, 13 Jul 2013 17:44:46 +0400 hgweb: make stripes in directory view with CSS
Alexander Plavin <me@aplavin.ru> [Sat, 13 Jul 2013 17:44:46 +0400] rev 19447
hgweb: make stripes in directory view with CSS
Sat, 13 Jul 2013 17:43:19 +0400 hgweb: make stripes in bookmark list with CSS
Alexander Plavin <me@aplavin.ru> [Sat, 13 Jul 2013 17:43:19 +0400] rev 19446
hgweb: make stripes in bookmark list with CSS
Thu, 18 Jul 2013 16:29:05 -0500 tests: update for commit --secret
Matt Mackall <mpm@selenic.com> [Thu, 18 Jul 2013 16:29:05 -0500] rev 19445
tests: update for commit --secret
Sun, 14 Jul 2013 21:50:52 +0800 gpg: show "Unknown key ID xxxxxxxx" when the status is ERRSIG
Wei, Elson <elson.wei@gmail.com> [Sun, 14 Jul 2013 21:50:52 +0800] rev 19444
gpg: show "Unknown key ID xxxxxxxx" when the status is ERRSIG
Sun, 14 Jul 2013 21:50:45 +0800 gpg: add shortkey() to convert from long id to short
Wei, Elson <elson.wei@gmail.com> [Sun, 14 Jul 2013 21:50:45 +0800] rev 19443
gpg: add shortkey() to convert from long id to short
Fri, 12 Jul 2013 10:10:46 +0800 gpg: getkeys() removes unused returning value "err"
Wei, Elson <elson.wei@gmail.com> [Fri, 12 Jul 2013 10:10:46 +0800] rev 19442
gpg: getkeys() removes unused returning value "err"
Fri, 12 Jul 2013 10:05:11 +0800 gpg: treat "ERRSIG" as a valid key id but no fingerprint
Wei, Elson <elson.wei@gmail.com> [Fri, 12 Jul 2013 10:05:11 +0800] rev 19441
gpg: treat "ERRSIG" as a valid key id but no fingerprint
Thu, 11 Jul 2013 13:11:41 -0400 commit: enable --secret option
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Thu, 11 Jul 2013 13:11:41 -0400] rev 19440
commit: enable --secret option At the moment, creating secret commits is slightly cumbersome. They can either be created by changing the default commit phase to secret or by doing `hg phase --secret --force`. Both of these make secret commits appear to be like some kind of advanced feature. Secret commits, however, should be a convenient feature for people who want to work on a private branch without affecting anyone else. There should therefore be a prominent and convenient method for creating secret commits. Since the default phase is draft and there is no need to use --force to go from a secret phase to any other phase, this patch intentionally does not add --draft and --public options.
Wed, 17 Jul 2013 23:58:04 +0200 merge: deprecate the --force option
Florence Laguzet <florence.laguzet@gmail.com> [Wed, 17 Jul 2013 23:58:04 +0200] rev 19439
merge: deprecate the --force option The --force option in merge does not make what people think it does so it may not be visible to everyone. I have local changes and want to pull one's changes which made 2 heads. The --force option in help says -f --force force a merge with outstanding changes so I can expect that I can use it to force the merge and commit it in my local repository without taking my local changes into account. But merging with -f keeps local changes and "add" them: they must be committed or reverted before doing the merge commit. The merge -f cannot be reverted so it leads my repository in a bad state: cannot commit merge and don't want to revert/commit local changes yet. Message in help have been updated to emphasize the fact that local changes are included in the merge.
Thu, 18 Jul 2013 09:42:44 -0700 run-tests: revert previous commit, run() waits after a timeout
Brendan Cully <brendan@kublai.com> [Thu, 18 Jul 2013 09:42:44 -0700] rev 19438
run-tests: revert previous commit, run() waits after a timeout
Thu, 18 Jul 2013 09:39:01 -0700 run-tests: reap timed-out zombies
Brendan Cully <brendan@kublai.com> [Thu, 18 Jul 2013 09:39:01 -0700] rev 19437
run-tests: reap timed-out zombies
Fri, 12 Jul 2013 01:58:48 +0400 hgweb: run search instead of showing wrong error for ambigious identifier
Alexander Plavin <me@aplavin.ru> [Fri, 12 Jul 2013 01:58:48 +0400] rev 19436
hgweb: run search instead of showing wrong error for ambigious identifier Before this when multiple changesets hashes in the repos started with the search query string, error was given that the revision isn't found, and it was misleading. Now a simple keyword search runs in this case.
Wed, 17 Jul 2013 17:34:47 -0700 doc: bump copyright year
Siddharth Agarwal <sid0@fb.com> [Wed, 17 Jul 2013 17:34:47 -0700] rev 19435
doc: bump copyright year
Wed, 17 Jul 2013 17:34:30 -0700 version: bump copyright year
Siddharth Agarwal <sid0@fb.com> [Wed, 17 Jul 2013 17:34:30 -0700] rev 19434
version: bump copyright year
Sat, 13 Jul 2013 00:57:56 +0400 hgweb: add line wrapping switch to file diff and changeset views
Alexander Plavin <me@aplavin.ru> [Sat, 13 Jul 2013 00:57:56 +0400] rev 19433
hgweb: add line wrapping switch to file diff and changeset views
Sat, 13 Jul 2013 00:57:10 +0400 hgweb: file diff and changesets views behave like file source view
Alexander Plavin <me@aplavin.ru> [Sat, 13 Jul 2013 00:57:10 +0400] rev 19432
hgweb: file diff and changesets views behave like file source view This gives all the benefits introduced before for file source view, namely code selection without line numbers and correct indents, highlighting line which is linked to, long lines wrapping. Implementation strategy is also the same as for file source view: all the lines are put in a sigle pre tag with span's for each line. Correct line numbering (same as before this patch) is achieved with nested CSS counters.
Fri, 12 Jul 2013 23:47:56 +0400 hgweb: introduce separate classes for stripey background
Alexander Plavin <me@aplavin.ru> [Fri, 12 Jul 2013 23:47:56 +0400] rev 19431
hgweb: introduce separate classes for stripey background Introduce stripes2 and stripes4 classes to support different structure. They will be useful to implement stripes with pure CSS everywhere instead of current server-side implementation.
Fri, 12 Jul 2013 15:58:13 +0400 hgweb: add line wrapping switch to file source view
Alexander Plavin <me@aplavin.ru> [Fri, 12 Jul 2013 15:58:13 +0400] rev 19430
hgweb: add line wrapping switch to file source view This uses classList property, which is well-supported now: both Chromium 8.0+, Firefox 3.6+ and Opera 11.5+ support it, as well as relatively modern versions of other browsers.
Tue, 09 Jul 2013 02:08:24 +0400 hgweb: add changelog and search templates to raw style
Alexander Plavin <me@aplavin.ru> [Tue, 09 Jul 2013 02:08:24 +0400] rev 19429
hgweb: add changelog and search templates to raw style This will make testing hgweb search and other things simpler and more concise, as there is no extra HTML code in the raw style.
Fri, 12 Jul 2013 16:01:11 +0400 hgweb: toggleDiffstat function instead of showDiffstat and hideDiffstat
Alexander Plavin <me@aplavin.ru> [Fri, 12 Jul 2013 16:01:11 +0400] rev 19428
hgweb: toggleDiffstat function instead of showDiffstat and hideDiffstat This eliminates the need of two almost equal functions, makes the code cleaner.
Wed, 03 Jul 2013 21:50:20 +0900 doc: make i18n man and html
Takumi IINO <trot.thunder@gmail.com> [Wed, 03 Jul 2013 21:50:20 +0900] rev 19427
doc: make i18n man and html Allow overwrite LANGUAGE and LC_ALL make variables, for make i18n man and html. After this patch, we can make i18n man and html by following command: $ make clean all LANGUAGE=ja
Wed, 03 Jul 2013 21:49:43 +0900 doc: make man and html from translated documents
Takumi IINO <trot.thunder@gmail.com> [Wed, 03 Jul 2013 21:49:43 +0900] rev 19426
doc: make man and html from translated documents Before this patch, man and html are english only, and there sources are not translatable. This patch make translatable all documents.
Wed, 03 Jul 2013 21:49:41 +0900 gendoc: dispatch print document content by commandline arguments
Takumi IINO <trot.thunder@gmail.com> [Wed, 03 Jul 2013 21:49:41 +0900] rev 19425
gendoc: dispatch print document content by commandline arguments Before this patch, gendoc.py only prints hg.1.gendoc.txt content. This adds any content print function.
Wed, 03 Jul 2013 21:49:39 +0900 gendoc: add showtopic
Takumi IINO <trot.thunder@gmail.com> [Wed, 03 Jul 2013 21:49:39 +0900] rev 19424
gendoc: add showtopic This function prints any topic.
Wed, 03 Jul 2013 21:49:37 +0900 gendoc: rename to showdoc from show_doc
Takumi IINO <trot.thunder@gmail.com> [Wed, 03 Jul 2013 21:49:37 +0900] rev 19423
gendoc: rename to showdoc from show_doc This function prints hg.1.gendoc.txt content.
Tue, 16 Jul 2013 01:29:14 +0200 check-code: automatically preppend "warning: " to all warning messages
Simon Heimberg <simohe@besonet.ch> [Tue, 16 Jul 2013 01:29:14 +0200] rev 19422
check-code: automatically preppend "warning: " to all warning messages Some warnings had "warning: " at the beginning of their message. Now this is done consistent for all messages. Especially in test-check-code-hg.t it is an advantage to see warnings at once because only exceptions to them are tolerated. It is (almost) as obvious as before a6180647ea. The prefix will not remain when a warning is changed to a failure. A change like a91387a37f will not be necessary anymore.
Wed, 17 Jul 2013 10:49:34 +0200 rollback: add reference to "hg commit --amend"
Martin Geisler <martin@geisler.net> [Wed, 17 Jul 2013 10:49:34 +0200] rev 19421
rollback: add reference to "hg commit --amend" Now that rollback is deprecated (yay!) users might need a pointer to the alternative for 99% of the cases where I used rollback.
Sat, 13 Jul 2013 23:58:01 +0200 run-tests: generally handle line endings on windows by re
Simon Heimberg <simohe@besonet.ch> [Sat, 13 Jul 2013 23:58:01 +0200] rev 19420
run-tests: generally handle line endings on windows by re Recently this regexp was only appended when running a python test. When running a tsttest there was a separate handling for each line type. Simplify and unify this.
Sat, 13 Jul 2013 23:57:55 +0200 run-tests: test for os.altsep instead of os.name when checking \ for /
Simon Heimberg <simohe@besonet.ch> [Sat, 13 Jul 2013 23:57:55 +0200] rev 19419
run-tests: test for os.altsep instead of os.name when checking \ for / This tells more explicitly what it is about
Mon, 15 Jul 2013 01:05:42 +0400 hgweb: move local changelist function to the beginning of the parent one
Alexander Plavin <me@aplavin.ru> [Mon, 15 Jul 2013 01:05:42 +0400] rev 19418
hgweb: move local changelist function to the beginning of the parent one
Sat, 13 Jul 2013 17:51:24 +0400 hgweb: get rid of branchentry template duplication
Alexander Plavin <me@aplavin.ru> [Sat, 13 Jul 2013 17:51:24 +0400] rev 19417
hgweb: get rid of branchentry template duplication
Wed, 17 Jul 2013 14:25:35 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Wed, 17 Jul 2013 14:25:35 -0500] rev 19416
merge with stable
Wed, 17 Jul 2013 13:42:08 -0700 run-tests: replace popen locking with a noop _cleanup handler on py24
Brendan Cully <brendan@kublai.com> [Wed, 17 Jul 2013 13:42:08 -0700] rev 19415
run-tests: replace popen locking with a noop _cleanup handler on py24 This also avoids the race condition, and isn't detrimental to job scheduling.
Wed, 17 Jul 2013 13:02:12 -0700 run-tests: only lock Popen wait/poll on python 2.4
Brendan Cully <brendan@kublai.com> [Wed, 17 Jul 2013 13:02:12 -0700] rev 19414
run-tests: only lock Popen wait/poll on python 2.4 It can cause scheduling bubbles and is not necessary on newer pythons.
Wed, 17 Jul 2013 12:45:12 -0700 run-tests: lock popen wait/poll
Brendan Cully <brendan@kublai.com> [Wed, 17 Jul 2013 12:45:12 -0700] rev 19413
run-tests: lock popen wait/poll In python2.4, any call to Popen() may attempt to wait on any active process, and wait is not thread-safe. Make it thread-safe. See http://bugs.python.org/issue1731717 for details.
Wed, 17 Jul 2013 14:20:35 -0500 merge with i18n stable
Matt Mackall <mpm@selenic.com> [Wed, 17 Jul 2013 14:20:35 -0500] rev 19412
merge with i18n
Sun, 14 Jul 2013 21:20:02 +0200 i18n-de: fixed some strings about stripping stable
Martin Schröder <martin.schroeder@nerdluecht.de> [Sun, 14 Jul 2013 21:20:02 +0200] rev 19411
i18n-de: fixed some strings about stripping
Sun, 14 Jul 2013 21:07:44 +0200 i18n-de: synchronized with fbdac607bff3 stable
Martin Schröder <martin.schroeder@nerdluecht.de> [Sun, 14 Jul 2013 21:07:44 +0200] rev 19410
i18n-de: synchronized with fbdac607bff3
Tue, 16 Jul 2013 17:10:26 -0500 rollback: mark as deprecated
Matt Mackall <mpm@selenic.com> [Tue, 16 Jul 2013 17:10:26 -0500] rev 19409
rollback: mark as deprecated
Tue, 16 Jul 2013 15:18:12 -0500 worker: properly report errors from worker processes (issue3982)
Matt Mackall <mpm@selenic.com> [Tue, 16 Jul 2013 15:18:12 -0500] rev 19408
worker: properly report errors from worker processes (issue3982)
Tue, 16 Jul 2013 12:44:11 -0500 run-tests: patch over py2.4 proc.wait() race
Matt Mackall <mpm@selenic.com> [Tue, 16 Jul 2013 12:44:11 -0500] rev 19407
run-tests: patch over py2.4 proc.wait() race
Tue, 16 Jul 2013 11:53:53 -0500 worker: check problem state correctly (issue3982)
Matt Mackall <mpm@selenic.com> [Tue, 16 Jul 2013 11:53:53 -0500] rev 19406
worker: check problem state correctly (issue3982) If a large update triggered an abort, it was possible for the main thread to still update the dirstate. This fix is incomplete, as the failing worker now doesn't generate a proper error message. This is difficult in the fork-based framework, which relies on exceptions propagating to the top of the dispatcher for formatting.
Tue, 16 Jul 2013 11:18:16 -0500 sshpeer: mark _validrepo internal
Matt Mackall <mpm@selenic.com> [Tue, 16 Jul 2013 11:18:16 -0500] rev 19405
sshpeer: mark _validrepo internal
Tue, 16 Jul 2013 11:17:01 -0500 progress: respect HGPLAIN
Matt Mackall <mpm@selenic.com> [Tue, 16 Jul 2013 11:17:01 -0500] rev 19404
progress: respect HGPLAIN
Thu, 11 Jul 2013 19:29:23 -0500 tip: deprecate the tip command
Matt Mackall <mpm@selenic.com> [Thu, 11 Jul 2013 19:29:23 -0500] rev 19403
tip: deprecate the tip command
Thu, 11 Jul 2013 19:28:54 -0500 tag: remove incorrect reference to tip
Matt Mackall <mpm@selenic.com> [Thu, 11 Jul 2013 19:28:54 -0500] rev 19402
tag: remove incorrect reference to tip
Thu, 11 Jul 2013 19:28:26 -0500 log: remove tip from example
Matt Mackall <mpm@selenic.com> [Thu, 11 Jul 2013 19:28:26 -0500] rev 19401
log: remove tip from example
Thu, 11 Jul 2013 19:28:01 -0500 cat: remove incorrect reference to tip
Matt Mackall <mpm@selenic.com> [Thu, 11 Jul 2013 19:28:01 -0500] rev 19400
cat: remove incorrect reference to tip
Thu, 11 Jul 2013 19:26:53 -0500 share: remove reference to tip
Matt Mackall <mpm@selenic.com> [Thu, 11 Jul 2013 19:26:53 -0500] rev 19399
share: remove reference to tip
Thu, 11 Jul 2013 19:26:34 -0500 rebase: simplify references to branch tips
Matt Mackall <mpm@selenic.com> [Thu, 11 Jul 2013 19:26:34 -0500] rev 19398
rebase: simplify references to branch tips
Thu, 11 Jul 2013 19:25:44 -0500 mq: remove reference to tip
Matt Mackall <mpm@selenic.com> [Thu, 11 Jul 2013 19:25:44 -0500] rev 19397
mq: remove reference to tip
Thu, 11 Jul 2013 17:01:54 +0400 hgweb: show current search query in the input field
Alexander Plavin <me@aplavin.ru> [Thu, 11 Jul 2013 17:01:54 +0400] rev 19396
hgweb: show current search query in the input field
Sun, 14 Jul 2013 17:23:07 +0200 mq: use an unfiltered property cache for the queue object
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 14 Jul 2013 17:23:07 +0200] rev 19395
mq: use an unfiltered property cache for the queue object The same `queue` object should be used in all situations. This allows to store global states on the object (like the reworked shelve extension plans to). The queue object does not need to be distinct for all possible views (no reference to the repo/view used at creation time) it's even a bit surprising that mq still works with the current code.
Mon, 15 Jul 2013 15:19:43 -0700 summary: use missing ancestors algorithm to find new commits
Siddharth Agarwal <sid0@fb.com> [Mon, 15 Jul 2013 15:19:43 -0700] rev 19394
summary: use missing ancestors algorithm to find new commits For a repository with around 520,000 commits and 190,000 files, this reduces the time hg summary takes from 5.5 seconds to 2.75.
Tue, 16 Jul 2013 11:13:18 -0500 Merge histedit fixes from stable.
Augie Fackler <raf@durin42.com> [Tue, 16 Jul 2013 11:13:18 -0500] rev 19393
Merge histedit fixes from stable.
Mon, 15 Jul 2013 15:04:42 +0200 histedit: use base for computing renames when folding (issue3729) stable
Martin Geisler <martin@geisler.net> [Mon, 15 Jul 2013 15:04:42 +0200] rev 19392
histedit: use base for computing renames when folding (issue3729) When a file was renamed in the very first changeset being histedited, the rename was not detected. Consider a history like this: 0 base: add a.txt 1 first: rename a.txt to b.txt 2 last: edit b.txt When 1 and 2 are edited, copies.pathcopies(first, last) correctly returns that nothing was renamed. We must instead use copies.pathcopies(first, last) to detect the initial rename.
Mon, 15 Jul 2013 13:20:39 +0200 test-histedit-fold: remove unnecessary --template stable
Martin Geisler <martin@geisler.net> [Mon, 15 Jul 2013 13:20:39 +0200] rev 19391
test-histedit-fold: remove unnecessary --template The template is already set by the logt alias.
Sat, 29 Jun 2013 14:27:53 +0400 templater: sort functions alphabetically, as filters are
Alexander Plavin <me@aplavin.ru> [Sat, 29 Jun 2013 14:27:53 +0400] rev 19390
templater: sort functions alphabetically, as filters are
Thu, 04 Jul 2013 14:19:43 +0400 hgweb: color line which is linked to in file source view
Alexander Plavin <me@aplavin.ru> [Thu, 04 Jul 2013 14:19:43 +0400] rev 19389
hgweb: color line which is linked to in file source view Browser compatibility (':target' selector used): IE 8+, FF 3.5+, Safari 3.1+, Opera 9.5+, Chromium 4+, all popular mobile browsers.
Thu, 04 Jul 2013 14:19:13 +0400 hgweb: wrap lines in file source view
Alexander Plavin <me@aplavin.ru> [Thu, 04 Jul 2013 14:19:13 +0400] rev 19388
hgweb: wrap lines in file source view
Thu, 04 Jul 2013 14:18:44 +0400 hgweb: code selection without line numbers in file source view
Alexander Plavin <me@aplavin.ru> [Thu, 04 Jul 2013 14:18:44 +0400] rev 19387
hgweb: code selection without line numbers in file source view All the source lines are put in a <pre> tag, which gives correct display and copy&paste in both Chromium (WebKit) and FireFox: line numbers are not copied, all the tabs and spaces are kept. This doesn't change the visual appearance of the view compared to current hgweb version and doesn't use any JS code. Also, stripes in this view are now generated clientside with CSS. This implementation is chosen because other variants have important issues: Strategy FF Chrome current D,LT,E,T,L D,L pre S,NW S,NW pre/div/nbsp LT,E,T,TS,NW TS,NW pre/div/br LT,E,T,NW NW ol/li/nbsp LT,E,T,TS,AJ TS,AJ ol/li/br LT,E,T,AJ AJ pre/span LV LV Legend Strategies: - current: implemented in hgweb before this patch, i.e. divs for each line, and line numbers links in the div too - pre: the whole code in one pre tag with newlines, all line numbers in another one with 'float: left' - pre/div/{nbsp,br}: same as just 'pre', but separate divs for each line and &nbsp; or <br> instead of empty lines (otherwise they are not copied at all) - ol/li/{nbsp,br}: a single ol with li's and divs for each line, &nbsp; or <br> same as in previous strategy - pre/span: this patch Problems: D = (very minor) display problems, like wrong width of leading tabs LT = loses leading/trailing whitespace E = loses embedded whitespace B = loses blank lines T = loses tabs L = selects line numbers LV = (only) visually selects line numbers LVE = (only) visually selects line numbers at empty lines S = no stripes (and no ability to easily highlight lines-which-are-linked-at in the future) TS = space copied instead of empty line AJ = get anchor links only with JS (they work even without) NW = no linewrap easily possible (in future) As for browser versions compatibility, the CSS tricks used are supported in (according to caniuse.com): a) line numbers generation with 'content:' property and CSS counters: IE 8+, all other popular browsers (in pre-WebKit Opera numbers are being copied) b) stripes ('nth-child' selector): IE 8+, FF 3.5+, Safari 3.2+, Opera 9.5+, all other popular browsers c) line numbers are not visually selected ('user-select:' property): IE 10+, Opera 15.0+, all other popular browsers This patch is based on a demo implementation by Martin Geisler <martin@geisler.net>.
Sat, 06 Jul 2013 21:48:07 +0200 tests: print line numbers when checking code
Simon Heimberg <simohe@besonet.ch> [Sat, 06 Jul 2013 21:48:07 +0200] rev 19386
tests: print line numbers when checking code When an exception will be listed the line numbers can be replaced with glob as it is done in test-check-pyflakes.t
Sat, 06 Jul 2013 21:48:01 +0200 tests: rename files to py extension instead of copying a 2nd time
Simon Heimberg <simohe@besonet.ch> [Sat, 06 Jul 2013 21:48:01 +0200] rev 19385
tests: rename files to py extension instead of copying a 2nd time
Sat, 06 Jul 2013 21:47:56 +0200 tests: check-code all python files in one run
Simon Heimberg <simohe@besonet.ch> [Sat, 06 Jul 2013 21:47:56 +0200] rev 19384
tests: check-code all python files in one run
Thu, 04 Jul 2013 23:05:59 +0900 win32mbcs: wrap util.split()
Shun-ichi GOTO <shunichi.goto@gmail.com> [Thu, 04 Jul 2013 23:05:59 +0900] rev 19383
win32mbcs: wrap util.split() util.split() should be wrapped because it is an alias of unsafe os.path.split().
Mon, 01 Jul 2013 06:50:58 +0200 check-code: concatenate "check-code" on compile time
Simon Heimberg <simohe@besonet.ch> [Mon, 01 Jul 2013 06:50:58 +0200] rev 19382
check-code: concatenate "check-code" on compile time The python compiler concatenates two string constants. Use this instead of doing it on run time or instruct the user how to do it. The strings "no-check-code" and "check-code-ignore" has to be specially written for not skipping some checking of the code of this file.
Mon, 01 Jul 2013 06:50:58 +0200 tests: do not skip code-checking on some whole files
Simon Heimberg <simohe@besonet.ch> [Mon, 01 Jul 2013 06:50:58 +0200] rev 19381
tests: do not skip code-checking on some whole files In filterpyflakes the term no-check-code was probably by accident. In the test the intention was not to skip the entire file but only one line. But any skipping seems to be unnecessary since a longer time.
Mon, 01 Jul 2013 06:50:58 +0200 check-code: do not warn on printf \\x or \\[1-9]
Simon Heimberg <simohe@besonet.ch> [Mon, 01 Jul 2013 06:50:58 +0200] rev 19380
check-code: do not warn on printf \\x or \\[1-9] When there is a double backslash the following char does not have any special meaning. So do not warn on this. Remove the now obsolete no-check-code statement. (It was used wrongly anyway, it skipped checking the entire file.)
Tue, 06 Nov 2012 00:22:56 +0100 summary: remove passing of rev because summary does not have this
Simon Heimberg <simohe@besonet.ch> [Tue, 06 Nov 2012 00:22:56 +0100] rev 19379
summary: remove passing of rev because summary does not have this The command summary does not have a rev argument, so passing this results is None always. Therefore pass None explicitly.
Mon, 01 Jul 2013 20:48:56 +0200 cleanup: drop unused variables and an unused import
Simon Heimberg <simohe@besonet.ch> [Mon, 01 Jul 2013 20:48:56 +0200] rev 19378
cleanup: drop unused variables and an unused import
Mon, 01 Jul 2013 20:48:55 +0200 tests: run pyflakes on files from manifest which could be python files
Simon Heimberg <simohe@besonet.ch> [Mon, 01 Jul 2013 20:48:55 +0200] rev 19377
tests: run pyflakes on files from manifest which could be python files Skip a binary file because pyflakes 0.4.0 aborts on it.
Tue, 09 Jul 2013 13:43:09 -0500 Merge with stable.
Augie Fackler <raf@durin42.com> [Tue, 09 Jul 2013 13:43:09 -0500] rev 19376
Merge with stable.
Mon, 01 Jul 2013 18:07:33 -0500 Added signature for changeset 009794acc6e3 stable
Matt Mackall <mpm@selenic.com> [Mon, 01 Jul 2013 18:07:33 -0500] rev 19375
Added signature for changeset 009794acc6e3
Mon, 01 Jul 2013 18:07:29 -0500 Added tag 2.6.3 for changeset 009794acc6e3 stable
Matt Mackall <mpm@selenic.com> [Mon, 01 Jul 2013 18:07:29 -0500] rev 19374
Added tag 2.6.3 for changeset 009794acc6e3
Mon, 01 Jul 2013 11:09:29 -0300 merge with i18n stable 2.6.3
Wagner Bruna <wbruna@softwareexpress.com.br> [Mon, 01 Jul 2013 11:09:29 -0300] rev 19373
merge with i18n
Mon, 01 Jul 2013 05:25:53 +0900 i18n-ja: synchronized with ec17ddecdf64 stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 01 Jul 2013 05:25:53 +0900] rev 19372
i18n-ja: synchronized with ec17ddecdf64
Sun, 30 Jun 2013 15:19:39 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Sun, 30 Jun 2013 15:19:39 -0500] rev 19371
merge with stable
Sun, 30 Jun 2013 15:06:22 -0500 merge with i18n stable
Matt Mackall <mpm@selenic.com> [Sun, 30 Jun 2013 15:06:22 -0500] rev 19370
merge with i18n
Tue, 25 Jun 2013 18:45:33 -0400 i18n-fr: remove duplicate paragraphs stable
Martin Geisler <martin@geisler.net> [Tue, 25 Jun 2013 18:45:33 -0400] rev 19369
i18n-fr: remove duplicate paragraphs The paragraphs were added as part of the automatic conversion in 42b46d3cb366. Thanks to Timeless for the initial patch.
Tue, 25 Jun 2013 18:45:33 -0400 i18n-fr: remove extra empty line at end of msgtr stable
timeless@mozdev.org [Tue, 25 Jun 2013 18:45:33 -0400] rev 19368
i18n-fr: remove extra empty line at end of msgtr
Tue, 25 Jun 2013 18:45:33 -0400 i18n-fr: fix malformed literal blocks stable
timeless@mozdev.org [Tue, 25 Jun 2013 18:45:33 -0400] rev 19367
i18n-fr: fix malformed literal blocks
Tue, 25 Jun 2013 18:45:33 -0400 i18n-fr: remove extra trailing newline stable
timeless@mozdev.org [Tue, 25 Jun 2013 18:45:33 -0400] rev 19366
i18n-fr: remove extra trailing newline
Tue, 25 Jun 2013 18:45:33 -0400 i18n-it: remove extra trailing newlines stable
timeless@mozdev.org [Tue, 25 Jun 2013 18:45:33 -0400] rev 19365
i18n-it: remove extra trailing newlines
Tue, 25 Jun 2013 18:45:33 -0400 i18n-sv: fix malformed literal block stable
timeless@mozdev.org [Tue, 25 Jun 2013 18:45:33 -0400] rev 19364
i18n-sv: fix malformed literal block
Tue, 25 Jun 2013 18:45:33 -0400 i18n-de: remove extra format character stable
timeless@mozdev.org [Tue, 25 Jun 2013 18:45:33 -0400] rev 19363
i18n-de: remove extra format character
Tue, 25 Jun 2013 18:45:33 -0400 i18n-de: add missing format character stable
timeless@mozdev.org [Tue, 25 Jun 2013 18:45:33 -0400] rev 19362
i18n-de: add missing format character
Tue, 25 Jun 2013 18:45:33 -0400 i18n-de: add missing newline stable
timeless@mozdev.org [Tue, 25 Jun 2013 18:45:33 -0400] rev 19361
i18n-de: add missing newline
Tue, 25 Jun 2013 18:45:33 -0400 i18n-de: add missing heading underline stable
timeless@mozdev.org [Tue, 25 Jun 2013 18:45:33 -0400] rev 19360
i18n-de: add missing heading underline
Tue, 25 Jun 2013 18:45:33 -0400 i18n-de: use same format character as in msgid stable
timeless@mozdev.org [Tue, 25 Jun 2013 18:45:33 -0400] rev 19359
i18n-de: use same format character as in msgid
Tue, 25 Jun 2013 18:45:32 -0400 i18n-de: remove duplicate paragraph stable
timeless@mozdev.org [Tue, 25 Jun 2013 18:45:32 -0400] rev 19358
i18n-de: remove duplicate paragraph It was added in the automatic conversion done in f837e7ea0e73.
Tue, 25 Jun 2013 18:45:32 -0400 i18n-de: fix malformed note directive stable
timeless@mozdev.org [Tue, 25 Jun 2013 18:45:32 -0400] rev 19357
i18n-de: fix malformed note directive
Tue, 25 Jun 2013 18:45:32 -0400 i18n-de: remove extra format character stable
timeless@mozdev.org [Tue, 25 Jun 2013 18:45:32 -0400] rev 19356
i18n-de: remove extra format character
Tue, 25 Jun 2013 18:45:32 -0400 i18n-de: add missing literal block stable
timeless@mozdev.org [Tue, 25 Jun 2013 18:45:32 -0400] rev 19355
i18n-de: add missing literal block
Tue, 25 Jun 2013 18:45:32 -0400 i18n-it: remove extra trailing newline and fix translation stable
Martin Geisler <martin@geisler.net> [Tue, 25 Jun 2013 18:45:32 -0400] rev 19354
i18n-it: remove extra trailing newline and fix translation Thanks to Timeless for flagging the extra newline.
Tue, 25 Jun 2013 18:45:32 -0400 i18n-de: remove bad fuzzy translations stable
timeless@mozdev.org [Tue, 25 Jun 2013 18:45:32 -0400] rev 19353
i18n-de: remove bad fuzzy translations These were flagged because they had the wrong number of format characters. Reviewed by Martin Geisler to ensure that the translation couldn't be easily updated to the correct number of format characters.
Tue, 25 Jun 2013 18:45:32 -0400 i18n-da: remove bad fuzzy translation stable
timeless@mozdev.org [Tue, 25 Jun 2013 18:45:32 -0400] rev 19352
i18n-da: remove bad fuzzy translation Reviewed by Martin Geisler.
Tue, 25 Jun 2013 18:45:32 -0400 i18n-da: remove extra trailing newline stable
timeless@mozdev.org [Tue, 25 Jun 2013 18:45:32 -0400] rev 19351
i18n-da: remove extra trailing newline
Tue, 25 Jun 2013 18:45:32 -0400 i18n-da: add missing newline stable
timeless@mozdev.org [Tue, 25 Jun 2013 18:45:32 -0400] rev 19350
i18n-da: add missing newline
Tue, 25 Jun 2013 18:45:32 -0400 i18n-da: remove extra trailing newline and fix translation stable
Martin Geisler <martin@geisler.net> [Tue, 25 Jun 2013 18:45:32 -0400] rev 19349
i18n-da: remove extra trailing newline and fix translation Thanks to Timeless for flagging the extra newline.
Tue, 25 Jun 2013 18:45:32 -0400 i18n-da: add missing format character and fix translation stable
Martin Geisler <martin@geisler.net> [Tue, 25 Jun 2013 18:45:32 -0400] rev 19348
i18n-da: add missing format character and fix translation Thanks to Timeless for flagging the missing format character.
Mon, 24 Jun 2013 00:39:34 -0400 i18n-da: add missing heading underline stable
timeless@mozdev.org [Mon, 24 Jun 2013 00:39:34 -0400] rev 19347
i18n-da: add missing heading underline
Mon, 24 Jun 2013 00:34:56 -0400 i18n-da: remove bad fuzzy translation stable
timeless@mozdev.org [Mon, 24 Jun 2013 00:34:56 -0400] rev 19346
i18n-da: remove bad fuzzy translation
Mon, 24 Jun 2013 00:32:52 -0400 i18n-da: add missing format character and fix translation stable
Martin Geisler <martin@geisler.net> [Mon, 24 Jun 2013 00:32:52 -0400] rev 19345
i18n-da: add missing format character and fix translation Thanks to Timeless for flagging the missing format character.
Sat, 29 Jun 2013 19:11:24 +0200 i18n-el: add missing indention for literal block stable
Martin Geisler <martin@geisler.net> [Sat, 29 Jun 2013 19:11:24 +0200] rev 19344
i18n-el: add missing indention for literal block Thanks to Timeless for flagging this.
Mon, 24 Jun 2013 00:00:53 -0400 i18n-el: remove extra newline stable
timeless@mozdev.org [Mon, 24 Jun 2013 00:00:53 -0400] rev 19343
i18n-el: remove extra newline
Sun, 23 Jun 2013 14:19:37 -0400 i18n-el: remove duplicate paragraphs stable
timeless@mozdev.org [Sun, 23 Jun 2013 14:19:37 -0400] rev 19342
i18n-el: remove duplicate paragraphs They were added in the conversion done in 8ef2cd109dc6.
Mon, 24 Jun 2013 00:11:28 -0400 i18n-zh_CN: remove duplicate paragraphs stable
timeless@mozdev.org [Mon, 24 Jun 2013 00:11:28 -0400] rev 19341
i18n-zh_CN: remove duplicate paragraphs They are added in the automatic conversion in e5b7841e0008.
Sun, 23 Jun 2013 18:30:10 -0400 i18n-zh_CN: add missing literal blocks stable
timeless@mozdev.org [Sun, 23 Jun 2013 18:30:10 -0400] rev 19340
i18n-zh_CN: add missing literal blocks
Sun, 23 Jun 2013 18:27:17 -0400 i18n-zh_CN: remove duplicate paragraphs stable
timeless@mozdev.org [Sun, 23 Jun 2013 18:27:17 -0400] rev 19339
i18n-zh_CN: remove duplicate paragraphs
Sun, 23 Jun 2013 18:10:02 -0400 i18n-ru: spell "ElementTree" correctly stable
timeless@mozdev.org [Sun, 23 Jun 2013 18:10:02 -0400] rev 19338
i18n-ru: spell "ElementTree" correctly
Sun, 23 Jun 2013 17:40:03 -0400 i18n-ru: fix translated config section stable
timeless@mozdev.org [Sun, 23 Jun 2013 17:40:03 -0400] rev 19337
i18n-ru: fix translated config section
Sun, 30 Jun 2013 14:56:04 -0500 merge with crew
Matt Mackall <mpm@selenic.com> [Sun, 30 Jun 2013 14:56:04 -0500] rev 19336
merge with crew
Wed, 26 Jun 2013 23:12:55 +0200 tests: simplify and document the sorting of pyflake messages
Simon Heimberg <simohe@besonet.ch> [Wed, 26 Jun 2013 23:12:55 +0200] rev 19335
tests: simplify and document the sorting of pyflake messages The pyflake messages are simply ordered by message type, path, line no (and message text). The message type is taken from the order of the filters. The previous ordering looks complicated and illogically. It was the following order (r'\3:\5:\4:\1:\2:' + line): message (\3 and \5) var name (\4) path (\1) line no (\2) line reference Ordering by var name before path looks illogically for me.
Tue, 25 Jun 2013 13:23:12 -0700 bundle: move file chunk generation to it's own function
Durham Goode <durham@fb.com> [Tue, 25 Jun 2013 13:23:12 -0700] rev 19334
bundle: move file chunk generation to it's own function Moves the file chunk generation part of bundle creation to it's own function. This allows extensions to customize the filelog part of bundle generation.
Tue, 18 Jun 2013 13:05:16 -0700 parents: change parents command to use filectx
Durham Goode <durham@fb.com> [Tue, 18 Jun 2013 13:05:16 -0700] rev 19333
parents: change parents command to use filectx Changes the parents command to use filectx to look up the change node instead of doing it manually. This allows extensions to modify the file-to-commit relationship behind the filectx api.
Fri, 28 Jun 2013 16:58:31 -0700 update: remove .hg/graftstate on clean (issue3970) stable
Siddharth Agarwal <sid0@fb.com> [Fri, 28 Jun 2013 16:58:31 -0700] rev 19332
update: remove .hg/graftstate on clean (issue3970) e078ea9b4ce4 introduced a check for interrupted grafts while committing. This exposed a bug where hg update --clean didn't remove that file.
Wed, 26 Jun 2013 12:04:57 -0300 i18n-pt_BR: synchronized with b500a663a2c7 stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Wed, 26 Jun 2013 12:04:57 -0300] rev 19331
i18n-pt_BR: synchronized with b500a663a2c7
Tue, 25 Jun 2013 21:02:22 +0400 templater: add strip function with chars as an extra argument
Alexander Plavin <me@aplavin.ru> [Tue, 25 Jun 2013 21:02:22 +0400] rev 19330
templater: add strip function with chars as an extra argument This allows specifying characters to strip, like the Python strip function.
Mon, 24 Jun 2013 14:02:01 -0400 Merge with main.
Augie Fackler <raf@durin42.com> [Mon, 24 Jun 2013 14:02:01 -0400] rev 19329
Merge with main.
Mon, 17 Jun 2013 19:44:00 -0700 revlog: add exception when linkrev == nullrev
Durham Goode <durham@fb.com> [Mon, 17 Jun 2013 19:44:00 -0700] rev 19328
revlog: add exception when linkrev == nullrev When we deployed the latest crew mercurial to our users, a few of them had issues where a filelog would have an entry with a -1 linkrev. This caused operations like rebase and amend to create a bundle containing the entire repository, which took a long time. I don't know what the issue is, but adding this check should prevent repos from getting in this state, and should help us pinpoint the issue next time it happens.
Fri, 21 Jun 2013 15:31:40 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Fri, 21 Jun 2013 15:31:40 -0500] rev 19327
merge with stable
Mon, 17 Jun 2013 19:44:00 -0700 revlog: add exception when linkrev == nullrev
Durham Goode <durham@fb.com> [Mon, 17 Jun 2013 19:44:00 -0700] rev 19326
revlog: add exception when linkrev == nullrev When we deployed the latest crew mercurial to our users, a few of them had issues where a filelog would have an entry with a -1 linkrev. This caused operations like rebase and amend to create a bundle containing the entire repository, which took a long time. I don't know what the issue is, but adding this check should prevent repos from getting in this state, and should help us pinpoint the issue next time it happens.
Wed, 19 Jun 2013 14:17:03 -0500 changegroup: fix fastpath during commit
Matt Mackall <mpm@selenic.com> [Wed, 19 Jun 2013 14:17:03 -0500] rev 19325
changegroup: fix fastpath during commit Change 627cd7842e5d dropped the 'revset' variable which kept track of which changesets were being bundled. Instead, it used "not in commonset" to decide which changesets were outgoing.. which ran into trouble when a commit was in progress.
Wed, 05 Jun 2013 22:41:53 +0200 tests: do not print hgrc in test
Simon Heimberg <simohe@besonet.ch> [Wed, 05 Jun 2013 22:41:53 +0200] rev 19324
tests: do not print hgrc in test This lets test-rebase-cache.t pass also when --inotify or --extra-config-opt is specified.
Thu, 13 Jun 2013 01:37:02 +0200 contrib: delete setup3k in favor of setup --c2to3
Simon Heimberg <simohe@besonet.ch> [Thu, 13 Jun 2013 01:37:02 +0200] rev 19323
contrib: delete setup3k in favor of setup --c2to3 setup3k was merged into setup in 7a7a1c594d. Now finally get rid of it.
Thu, 13 Jun 2013 01:36:58 +0200 cleanup: remove unused imports
Simon Heimberg <simohe@besonet.ch> [Thu, 13 Jun 2013 01:36:58 +0200] rev 19322
cleanup: remove unused imports detected by pyflakes
Thu, 13 Jun 2013 01:44:02 +0200 tests: check-code more python files without py extension
simon@laptop-tosh [Thu, 13 Jun 2013 01:44:02 +0200] rev 19321
tests: check-code more python files without py extension files found by running $ hg manifest | grep -v "\." | xargs file | grep python
Fri, 14 Jun 2013 15:28:40 -0400 dummyssh: fix check-code nit
Augie Fackler <raf@durin42.com> [Fri, 14 Jun 2013 15:28:40 -0400] rev 19320
dummyssh: fix check-code nit
Wed, 19 Jun 2013 23:05:40 -0700 test-pathencode: randomize length of each path component stable
Siddharth Agarwal <sid0@fb.com> [Wed, 19 Jun 2013 23:05:40 -0700] rev 19319
test-pathencode: randomize length of each path component This makes it possible for long and short components to exist in the same path. This also makes shorter path components more likely. For randint(1, randint(1, n)), the likelihood that one sees a number k (1 <= k <= n) is 1/n * (\sum_{k=i}^n 1/i). This decreases with k, much like in the real world where shorter paths are more common than longer ones. The previous fix and this one together cause issue3958 to be detected by this test with reasonable frequency. When this test was run 100 times in a loop, the issue was detected 30 of those times.
Wed, 19 Jun 2013 23:01:22 -0700 test-pathencode: reduce makepart length requirement by 1 stable
Siddharth Agarwal <sid0@fb.com> [Wed, 19 Jun 2013 23:01:22 -0700] rev 19318
test-pathencode: reduce makepart length requirement by 1 This allows path components of length 1 to be generated.
Wed, 19 Jun 2013 22:34:34 -0700 pathencode: fix hashmangle short dir limit (issue3958) stable
Siddharth Agarwal <sid0@fb.com> [Wed, 19 Jun 2013 22:34:34 -0700] rev 19317
pathencode: fix hashmangle short dir limit (issue3958) The Python version of this (see mercurial/store.py:_hashencode) copies path components up to a limit of maxshortdirslen bytes. The Python version does not consider the initial "dh/" to be part of the this, though, while the C version currently does. Adding len("dh/") == 3 to the limit for the C version brings it in line with the Python version. This was not caught by the randomized testing scheme in test-pathencode.py because of a couple of flaws with the test. Upcoming patches will fix those problems.
Thu, 20 Jun 2013 14:06:11 -0500 docs: change description to synopsis in hgrc.5 stable
Matt Mackall <mpm@selenic.com> [Thu, 20 Jun 2013 14:06:11 -0500] rev 19316
docs: change description to synopsis in hgrc.5 Spotted by Eric S. Raymond.
Tue, 11 Jun 2013 23:39:48 +0200 run-tests: sort missing files first instead of raising an error
simon@laptop-tosh [Tue, 11 Jun 2013 23:39:48 +0200] rev 19315
run-tests: sort missing files first instead of raising an error sort first for early telling typos in test names
Thu, 30 May 2013 19:29:21 -0700 filectx: remove dependencies on filerev
Durham Goode <durham@fb.com> [Thu, 30 May 2013 19:29:21 -0700] rev 19314
filectx: remove dependencies on filerev Removing dependencies on filectx.filerev() makes it easier to create a filelog implementation that doesn't have rev numbers.
Sat, 08 Jun 2013 22:37:08 +0200 hg: move return statement after finally block
simon@laptop-tosh [Sat, 08 Jun 2013 22:37:08 +0200] rev 19313
hg: move return statement after finally block return is always run after finally block. Now we have same functionality, but clearer readability.
Sun, 09 Jun 2013 16:49:08 +0200 run-tests: call Threads constructor with keyword arguments
simon@laptop-tosh [Sun, 09 Jun 2013 16:49:08 +0200] rev 19312
run-tests: call Threads constructor with keyword arguments This is suggested in the python documentation (on http://docs.python.org/2/library/threading.html#thread-objects)
Sun, 09 Jun 2013 16:42:55 +0200 run-tests: ignoring tests works again
simon@laptop-tosh [Sun, 09 Jun 2013 16:42:55 +0200] rev 19311
run-tests: ignoring tests works again running with --retest did not work anymore because runone still returned None for this case. But this is not allowed since 6a127fa5de23.
Sat, 08 Jun 2013 20:20:14 +0200 check-code: introduce function for using re2 when available
Simon Heimberg <simohe@besonet.ch> [Sat, 08 Jun 2013 20:20:14 +0200] rev 19310
check-code: introduce function for using re2 when available Do it similar as in mercurial.util. For simplicity only support flag multiline which is the only one used.
Sat, 08 Jun 2013 20:20:14 +0200 check-code: compile filters when loading
Simon Heimberg <simohe@besonet.ch> [Sat, 08 Jun 2013 20:20:14 +0200] rev 19309
check-code: compile filters when loading
Sat, 08 Jun 2013 20:20:14 +0200 check-code: compile all patterns on initialisation
Simon Heimberg <simohe@besonet.ch> [Sat, 08 Jun 2013 20:20:14 +0200] rev 19308
check-code: compile all patterns on initialisation They where compiled once for every checked file (when calling finditer).
Sat, 08 Jun 2013 20:20:14 +0200 check-code: only fix patterns once
Simon Heimberg <simohe@besonet.ch> [Sat, 08 Jun 2013 20:20:14 +0200] rev 19307
check-code: only fix patterns once The patterns were fixed once for every file. Now only do it once when loading the file.
Fri, 07 Jun 2013 16:59:59 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Fri, 07 Jun 2013 16:59:59 -0500] rev 19306
merge with stable
Thu, 02 May 2013 19:36:47 +0300 commit: amending with --close-branch (issue3445) stable
Iulian Stana <julian.stana@gmail.com> [Thu, 02 May 2013 19:36:47 +0300] rev 19305
commit: amending with --close-branch (issue3445) You can't close a branch that hasn't got a head. newbranch + commit --close-branch must fail newbranch + commit + commit --amend --close-branch must fail You must not be allowed to close a branch that is not defined.
Fri, 07 Jun 2013 16:04:11 -0500 run-tests: simplify interrupted message
Matt Mackall <mpm@selenic.com> [Fri, 07 Jun 2013 16:04:11 -0500] rev 19304
run-tests: simplify interrupted message
Fri, 07 Jun 2013 15:58:14 -0500 run-tests: remove spurious disable of --time with --debug
Matt Mackall <mpm@selenic.com> [Fri, 07 Jun 2013 15:58:14 -0500] rev 19303
run-tests: remove spurious disable of --time with --debug
Fri, 07 Jun 2013 15:56:16 -0500 run-tests: always gather runtimes
Matt Mackall <mpm@selenic.com> [Fri, 07 Jun 2013 15:56:16 -0500] rev 19302
run-tests: always gather runtimes
Wed, 05 Jun 2013 22:05:29 +0200 run-tests: when interrupted report time in failure message
Simon Heimberg <simohe@besonet.ch> [Wed, 05 Jun 2013 22:05:29 +0200] rev 19301
run-tests: when interrupted report time in failure message When --time is specified, the interruption message of an interrupted test is extended with the time the test has run INTERRUPTED: /path/to/tests/test-example.t (after 513 seconds)
Wed, 05 Jun 2013 22:05:02 +0200 run-tests: report interrupted tests
Simon Heimberg <simohe@besonet.ch> [Wed, 05 Jun 2013 22:05:02 +0200] rev 19300
run-tests: report interrupted tests When the test run is aborted, a message is printed for each interrupted test. This is helpful when a test is hanging. example failure message: INTERRUPTED: /path/to/tests/test-example.t The message can appear before or after the line with the number of tests
Wed, 05 Jun 2013 22:42:43 +0200 run-tests: open hgrc file only for writing
Simon Heimberg <simohe@besonet.ch> [Wed, 05 Jun 2013 22:42:43 +0200] rev 19299
run-tests: open hgrc file only for writing The file is not read here. Opening with "w+" is unnecessary.
Wed, 05 Jun 2013 22:06:16 +0200 color: use pythons isinstance method instead of reprogramming it
Simon Heimberg <simohe@besonet.ch> [Wed, 05 Jun 2013 22:06:16 +0200] rev 19298
color: use pythons isinstance method instead of reprogramming it
Wed, 05 Jun 2013 22:06:02 +0200 color: only provide the required opt to _modesetup
Simon Heimberg <simohe@besonet.ch> [Wed, 05 Jun 2013 22:06:02 +0200] rev 19297
color: only provide the required opt to _modesetup
Thu, 06 Jun 2013 14:05:03 -0400 doc: make it easier to read how to enable extensions stable
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Thu, 06 Jun 2013 14:05:03 -0400] rev 19296
doc: make it easier to read how to enable extensions We tell people all the time that enabling extensions is not a scary thing to do, but we don't make it easy enough for an absolute novice to do so. When they see a suggestion to do "hg extfoo bar", the error message tells them "see hg help extensions", but that help page doesn't actually tell them where configuration files are. Furthermore, the big warning about why extensions aren't enabled by default should be pushed down a little bit. Most of the extensions shipped by hg are not all that scary, and some very basic and useful cosmetic extensions like graphlog, color, pager, and progress, should be enabled for many hg users.
Thu, 06 Jun 2013 13:37:41 -0400 doc: reword "config file" to "configuration file" stable
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Thu, 06 Jun 2013 13:37:41 -0400] rev 19295
doc: reword "config file" to "configuration file" While we do use the abbreviation "config" elsewhere in the docs, the phrase "configuration file" is always written out in full, except in this location in phases.txt.
Thu, 06 Jun 2013 14:40:26 -0500 run-tests: make --noskips work
Matt Mackall <mpm@selenic.com> [Thu, 06 Jun 2013 14:40:26 -0500] rev 19294
run-tests: make --noskips work
Thu, 30 May 2013 18:47:16 -0700 filelog: switch 'not len(filerevlog)' to 'not filerevlog'
Durham Goode <durham@fb.com> [Thu, 30 May 2013 18:47:16 -0700] rev 19293
filelog: switch 'not len(filerevlog)' to 'not filerevlog' A few places in the code use 'if not len(revlog)' to check if the revlog exists. Replacing this with 'not filerevlog' allows alternative revlog implementations to override __nonzero__ to handle this case without implementing __len__.
Thu, 30 May 2013 19:29:03 -0700 annotate: simplify annotate parent function
Durham Goode <durham@fb.com> [Thu, 30 May 2013 19:29:03 -0700] rev 19292
annotate: simplify annotate parent function The annotate algorithm used a custom parents() function to try to reuse filectx and filelogs. I simplified it a bit to rely more heavily on the self.parents() which makes it work well with alternative filectx implementations. I tested performance on a file with 5000+ revisions but no renames, and on a file with 500 revisions repeating a series of 4 edits+renames and saw zero performance hit. In fact, it was reliably a couple milliseconds faster now. Added the perfannotate command to contrib/perf.py for future use.
Thu, 30 May 2013 19:26:56 -0700 changegroup: move changegroup file adding to a separate function
Durham Goode <durham@fb.com> [Thu, 30 May 2013 19:26:56 -0700] rev 19291
changegroup: move changegroup file adding to a separate function Moving the logic that adds files to a changegroup to a different function allows extensions to override it and customize the way filelogs are added to changegroups. No logic is changed.
Thu, 30 May 2013 19:25:55 -0700 log: move log file walk to its own function
Durham Goode <durham@fb.com> [Thu, 30 May 2013 19:25:55 -0700] rev 19290
log: move log file walk to its own function This moves the logic that determines which changesets to process during a 'hg log foo.txt' command. Putting it in its own function allows extensions to modify how the file log is traversed. For instance, the current implementation uses filelog revs heavily. Other implementations may not have filelog revs available. The function throws an exception if the traversal is not possible via the filelog, so the parent function can do things the slow way if necessary (by walking the entire commit history). Aside from the exception throwing, no logic is changed.
Thu, 30 May 2013 17:51:13 -0700 bundle: refactor changegroup prune to be its own function
Durham Goode <durham@fb.com> [Thu, 30 May 2013 17:51:13 -0700] rev 19289
bundle: refactor changegroup prune to be its own function Moving the prune function to be a non-nested function allows extensions to control which revisions are allowed in the changegroup. For example, in my shallow repo extension I want to prevent filelogs from being added to the bundle. This also allows an extension to use a filelog implementation that doesn't have revlog.linkrev implemented.
Thu, 30 May 2013 17:49:37 -0700 filectx: refactor filectx.rev() to use filectx._changeid
Durham Goode <durham@fb.com> [Thu, 30 May 2013 17:49:37 -0700] rev 19288
filectx: refactor filectx.rev() to use filectx._changeid The code in filectx.rev() was identical to filectx._changeid. Fixing this allows alternative filectx implementations to only override _changeid.
Mon, 03 Jun 2013 17:20:45 -0700 util: add an optional timestamp parameter to makedate
Bryan O'Sullivan <bryano@fb.com> [Mon, 03 Jun 2013 17:20:45 -0700] rev 19287
util: add an optional timestamp parameter to makedate This will be used by the upcoming shelve extension.
Mon, 03 Jun 2013 17:20:44 -0700 util: rename ct variable in makedate to timestamp
Bryan O'Sullivan <bryano@fb.com> [Mon, 03 Jun 2013 17:20:44 -0700] rev 19286
util: rename ct variable in makedate to timestamp
Mon, 03 Jun 2013 17:20:37 -0700 merge: add a files method to the mergestate class
Bryan O'Sullivan <bryano@fb.com> [Mon, 03 Jun 2013 17:20:37 -0700] rev 19285
merge: add a files method to the mergestate class This will be used in the upcoming shelve extension.
Wed, 05 Jun 2013 21:16:49 +0200 histedit: raise ImportError when demandloading is enabled stable
Simon Heimberg <simohe@besonet.ch> [Wed, 05 Jun 2013 21:16:49 +0200] rev 19284
histedit: raise ImportError when demandloading is enabled
Sun, 02 Jun 2013 18:09:06 -0500 run-tests: add --loop support
Matt Mackall <mpm@selenic.com> [Sun, 02 Jun 2013 18:09:06 -0500] rev 19283
run-tests: add --loop support This makes it easy to run tests repeatedly at high loads to look for test failures.
Sun, 02 Jun 2013 17:58:51 -0500 run-tests: --interactive and --jobs no longer conflict
Matt Mackall <mpm@selenic.com> [Sun, 02 Jun 2013 17:58:51 -0500] rev 19282
run-tests: --interactive and --jobs no longer conflict
Sun, 02 Jun 2013 17:58:49 -0500 run-tests: sort certain slow tests earlier by keyword
Matt Mackall <mpm@selenic.com> [Sun, 02 Jun 2013 17:58:49 -0500] rev 19281
run-tests: sort certain slow tests earlier by keyword There are a few tests that evade the size heuristic
Sun, 02 Jun 2013 17:57:37 -0500 run-tests: drop unused resultslock
Matt Mackall <mpm@selenic.com> [Sun, 02 Jun 2013 17:57:37 -0500] rev 19280
run-tests: drop unused resultslock
Sun, 02 Jun 2013 17:57:36 -0500 run-tests: drop options.child and users
Matt Mackall <mpm@selenic.com> [Sun, 02 Jun 2013 17:57:36 -0500] rev 19279
run-tests: drop options.child and users
Sun, 02 Jun 2013 17:56:53 -0500 run-tests: remove runchildren, now unused
Matt Mackall <mpm@selenic.com> [Sun, 02 Jun 2013 17:56:53 -0500] rev 19278
run-tests: remove runchildren, now unused
Sun, 02 Jun 2013 17:56:51 -0500 run-tests: schedule largest tests first
Matt Mackall <mpm@selenic.com> [Sun, 02 Jun 2013 17:56:51 -0500] rev 19277
run-tests: schedule largest tests first
Sun, 02 Jun 2013 16:58:22 -0500 run-tests: introduce thread scheduler
Matt Mackall <mpm@selenic.com> [Sun, 02 Jun 2013 16:58:22 -0500] rev 19276
run-tests: introduce thread scheduler
Sun, 02 Jun 2013 16:55:19 -0500 run-tests: use count to calculate port to use
Matt Mackall <mpm@selenic.com> [Sun, 02 Jun 2013 16:55:19 -0500] rev 19275
run-tests: use count to calculate port to use This will keep threads from using the same server ports
Sun, 02 Jun 2013 16:38:15 -0500 run-tests: introduce threadtmp directory
Matt Mackall <mpm@selenic.com> [Sun, 02 Jun 2013 16:38:15 -0500] rev 19274
run-tests: introduce threadtmp directory
Sun, 02 Jun 2013 16:29:35 -0500 run-tests: add abort flag
Matt Mackall <mpm@selenic.com> [Sun, 02 Jun 2013 16:29:35 -0500] rev 19273
run-tests: add abort flag This will be used to help threads clean up gracefully
Sun, 02 Jun 2013 16:29:22 -0500 run-tests: move more variables to env
Matt Mackall <mpm@selenic.com> [Sun, 02 Jun 2013 16:29:22 -0500] rev 19272
run-tests: move more variables to env
Sun, 02 Jun 2013 16:29:20 -0500 run-tests: simplify env deletion
Matt Mackall <mpm@selenic.com> [Sun, 02 Jun 2013 16:29:20 -0500] rev 19271
run-tests: simplify env deletion
Sun, 02 Jun 2013 16:22:51 -0500 run-tests: move most of remaining environment tweaks
Matt Mackall <mpm@selenic.com> [Sun, 02 Jun 2013 16:22:51 -0500] rev 19270
run-tests: move most of remaining environment tweaks
Sun, 02 Jun 2013 16:22:51 -0500 run-tests: move environment creation to a separate function
Matt Mackall <mpm@selenic.com> [Sun, 02 Jun 2013 16:22:51 -0500] rev 19269
run-tests: move environment creation to a separate function
Sun, 02 Jun 2013 16:22:51 -0500 run-tests: move HGRCPATH to env
Matt Mackall <mpm@selenic.com> [Sun, 02 Jun 2013 16:22:51 -0500] rev 19268
run-tests: move HGRCPATH to env
Sun, 02 Jun 2013 16:22:51 -0500 run-tests: move DAEMON_PIDS to env
Matt Mackall <mpm@selenic.com> [Sun, 02 Jun 2013 16:22:51 -0500] rev 19267
run-tests: move DAEMON_PIDS to env
Sun, 02 Jun 2013 16:22:34 -0500 run-tests: move HGPORT setting to env
Matt Mackall <mpm@selenic.com> [Sun, 02 Jun 2013 16:22:34 -0500] rev 19266
run-tests: move HGPORT setting to env
Sun, 02 Jun 2013 15:33:41 -0500 run-tests: write tmp paths into env copy
Matt Mackall <mpm@selenic.com> [Sun, 02 Jun 2013 15:33:41 -0500] rev 19265
run-tests: write tmp paths into env copy
Sun, 02 Jun 2013 15:27:08 -0500 tests: avoid writing files to HGTMP
Matt Mackall <mpm@selenic.com> [Sun, 02 Jun 2013 15:27:08 -0500] rev 19264
tests: avoid writing files to HGTMP
Sun, 02 Jun 2013 14:04:55 -0500 run-tests: use env dict to kill daemons
Matt Mackall <mpm@selenic.com> [Sun, 02 Jun 2013 14:04:55 -0500] rev 19263
run-tests: use env dict to kill daemons
Sun, 02 Jun 2013 13:45:08 -0500 run-tests: add env dict to isolate test environment
Matt Mackall <mpm@selenic.com> [Sun, 02 Jun 2013 13:45:08 -0500] rev 19262
run-tests: add env dict to isolate test environment
Sat, 01 Jun 2013 17:19:00 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Sat, 01 Jun 2013 17:19:00 -0500] rev 19261
merge with stable
Sat, 01 Jun 2013 17:10:24 -0500 Added signature for changeset cceaf7af4c9e stable
Matt Mackall <mpm@selenic.com> [Sat, 01 Jun 2013 17:10:24 -0500] rev 19260
Added signature for changeset cceaf7af4c9e
Sat, 01 Jun 2013 17:10:18 -0500 Added tag 2.6.2 for changeset cceaf7af4c9e stable
Matt Mackall <mpm@selenic.com> [Sat, 01 Jun 2013 17:10:18 -0500] rev 19259
Added tag 2.6.2 for changeset cceaf7af4c9e
Sat, 01 Jun 2013 17:09:41 -0500 merge with i18n stable 2.6.2
Matt Mackall <mpm@selenic.com> [Sat, 01 Jun 2013 17:09:41 -0500] rev 19258
merge with i18n
Sat, 01 Jun 2013 01:13:36 +0900 i18n-ja: synchronized with 9e5ab8d3154a stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 01 Jun 2013 01:13:36 +0900] rev 19257
i18n-ja: synchronized with 9e5ab8d3154a
Tue, 28 May 2013 10:56:37 -0300 i18n-pt_BR: synchronized with b592fd33233a stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Tue, 28 May 2013 10:56:37 -0300] rev 19256
i18n-pt_BR: synchronized with b592fd33233a
Tue, 28 May 2013 11:17:54 +0100 i18n-ru: synchronized with 39ea540dc154 stable
Alexander Sauta <demosito@gmail.com> [Tue, 28 May 2013 11:17:54 +0100] rev 19255
i18n-ru: synchronized with 39ea540dc154
Mon, 27 May 2013 23:48:34 +0400 i18n-ru: synchronized with ddfdccc9d5a4 stable
Alexander Sauta <demosito@gmail.com> [Mon, 27 May 2013 23:48:34 +0400] rev 19254
i18n-ru: synchronized with ddfdccc9d5a4
Thu, 30 May 2013 22:32:10 +0100 graft: refuse to commit an interrupted graft (issue3667) stable
Simon King <simon@simonking.org.uk> [Thu, 30 May 2013 22:32:10 +0100] rev 19253
graft: refuse to commit an interrupted graft (issue3667)
Mon, 27 May 2013 15:24:19 -0500 run-tests: remove some unnecessary globals
Matt Mackall <mpm@selenic.com> [Mon, 27 May 2013 15:24:19 -0500] rev 19252
run-tests: remove some unnecessary globals
Fri, 24 May 2013 14:30:43 -0500 run-tests: add a log function
Matt Mackall <mpm@selenic.com> [Fri, 24 May 2013 14:30:43 -0500] rev 19251
run-tests: add a log function
Fri, 24 May 2013 14:30:43 -0500 run-tests: make vlog a proper function
Matt Mackall <mpm@selenic.com> [Fri, 24 May 2013 14:30:43 -0500] rev 19250
run-tests: make vlog a proper function
Fri, 24 May 2013 14:30:43 -0500 run-tests: unify marks and result codes
Matt Mackall <mpm@selenic.com> [Fri, 24 May 2013 14:30:43 -0500] rev 19249
run-tests: unify marks and result codes
Fri, 24 May 2013 14:30:35 -0500 run-tests: change return code of runone
Matt Mackall <mpm@selenic.com> [Fri, 24 May 2013 14:30:35 -0500] rev 19248
run-tests: change return code of runone
Fri, 24 May 2013 13:53:56 -0500 run-tests: regroup some initialization checks
Matt Mackall <mpm@selenic.com> [Fri, 24 May 2013 13:53:56 -0500] rev 19247
run-tests: regroup some initialization checks
Fri, 24 May 2013 13:52:05 -0500 run-tests: fix a path existence check
Matt Mackall <mpm@selenic.com> [Fri, 24 May 2013 13:52:05 -0500] rev 19246
run-tests: fix a path existence check
Fri, 24 May 2013 13:51:20 -0500 run-tests: regroup some variable initialization
Matt Mackall <mpm@selenic.com> [Fri, 24 May 2013 13:51:20 -0500] rev 19245
run-tests: regroup some variable initialization
Fri, 24 May 2013 13:48:25 -0500 run-tests: regroup nested functions
Matt Mackall <mpm@selenic.com> [Fri, 24 May 2013 13:48:25 -0500] rev 19244
run-tests: regroup nested functions
Fri, 24 May 2013 13:47:17 -0500 run-tests: regroup temp dir creation
Matt Mackall <mpm@selenic.com> [Fri, 24 May 2013 13:47:17 -0500] rev 19243
run-tests: regroup temp dir creation
Fri, 24 May 2013 13:41:20 -0500 run-tests: pull hgrc creation out as function
Matt Mackall <mpm@selenic.com> [Fri, 24 May 2013 13:41:20 -0500] rev 19242
run-tests: pull hgrc creation out as function
Fri, 24 May 2013 13:34:22 -0500 tests: simplify handling of unknown test types
Matt Mackall <mpm@selenic.com> [Fri, 24 May 2013 13:34:22 -0500] rev 19241
tests: simplify handling of unknown test types
Fri, 24 May 2013 13:31:44 -0500 run-tests: filter out non-tests from default list
Matt Mackall <mpm@selenic.com> [Fri, 24 May 2013 13:31:44 -0500] rev 19240
run-tests: filter out non-tests from default list
Fri, 24 May 2013 13:23:19 -0500 run-tests: make a table of test types
Matt Mackall <mpm@selenic.com> [Fri, 24 May 2013 13:23:19 -0500] rev 19239
run-tests: make a table of test types
Fri, 24 May 2013 13:02:00 -0500 run-tests: don't need to test shebang any more
Matt Mackall <mpm@selenic.com> [Fri, 24 May 2013 13:02:00 -0500] rev 19238
run-tests: don't need to test shebang any more
Thu, 23 May 2013 17:53:38 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Thu, 23 May 2013 17:53:38 -0500] rev 19237
merge with stable
Thu, 23 May 2013 17:53:19 -0500 merge with i18n stable
Matt Mackall <mpm@selenic.com> [Thu, 23 May 2013 17:53:19 -0500] rev 19236
merge with i18n
Tue, 21 May 2013 19:36:23 -0300 i18n-pt_BR: synchronized with 2b4344f23b44 stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Tue, 21 May 2013 19:36:23 -0300] rev 19235
i18n-pt_BR: synchronized with 2b4344f23b44
Thu, 23 May 2013 17:52:21 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Thu, 23 May 2013 17:52:21 -0500] rev 19234
merge with stable
Wed, 15 May 2013 15:44:59 +0900 gendoc: extract print help topics into a dedicated function
Takumi IINO <trot.thunder@gmail.com> [Wed, 15 May 2013 15:44:59 +0900] rev 19233
gendoc: extract print help topics into a dedicated function This will be used in an upcoming patch.
Thu, 23 May 2013 17:39:33 -0500 amend: complain more comprehensibly about subrepos stable
Matt Mackall <mpm@selenic.com> [Thu, 23 May 2013 17:39:33 -0500] rev 19232
amend: complain more comprehensibly about subrepos
Wed, 15 May 2013 15:44:55 +0900 gendoc: make commnd __doc__ and extension __doc__ as translatable
Takumi IINO <trot.thunder@gmail.com> [Wed, 15 May 2013 15:44:55 +0900] rev 19231
gendoc: make commnd __doc__ and extension __doc__ as translatable Before this patch, commnd __doc__ and extension __doc__ are not translatable. But other messages, like doc of helptalbe, section headers, are translatable. This patch makes commnd __doc__ and extension __doc__ translatable.
Wed, 22 May 2013 17:38:24 -0700 blackbox: fix blackbox causing exceptions in tests stable
Durham Goode <durham@fb.com> [Wed, 22 May 2013 17:38:24 -0700] rev 19230
blackbox: fix blackbox causing exceptions in tests In the tests some scripts call reposetup with the base ui instead of the one the extensions have modified. This causes an exception in blackbox.reposetup since it expected a method to be there. So I just check for it first. This only happened when the blackbox extension was enabled during tests.
Wed, 22 May 2013 17:31:47 -0700 blackbox: fix recording exit codes (issue3938) stable
Durham Goode <durham@fb.com> [Wed, 22 May 2013 17:31:47 -0700] rev 19229
blackbox: fix recording exit codes (issue3938) Previously the blackbox wrapped runcommand, but this failed to see the error codes that were created if an exception occurred. I moved that logging to now wrap _runcatch, so it can observe and log the actual error code (such as when a user ctrl+c's during a command). Updated the tests as well. Tested the change by running all the tests with the blackbox extension enabled and verifying nothing broke (aside from things that printed what extensions were enabeld). The progress tests are affected by calls to time.time() so they needed to be updated to pass.
Thu, 18 Apr 2013 15:48:22 -0500 templater: add indentation arguments to the fill function
Sean Farley <sean.michael.farley@gmail.com> [Thu, 18 Apr 2013 15:48:22 -0500] rev 19228
templater: add indentation arguments to the fill function
Wed, 10 Apr 2013 18:56:38 -0500 templater: move templatefilters.func into the same place as the other funcs
Sean Farley <sean.michael.farley@gmail.com> [Wed, 10 Apr 2013 18:56:38 -0500] rev 19227
templater: move templatefilters.func into the same place as the other funcs
Wed, 22 May 2013 17:31:43 -0500 ui: merge prompt text components into a singe string
Matt Mackall <mpm@selenic.com> [Wed, 22 May 2013 17:31:43 -0500] rev 19226
ui: merge prompt text components into a singe string This will help avoid problems with partial or mismatched translation of the components.
Tue, 21 May 2013 15:32:15 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 21 May 2013 15:32:15 -0500] rev 19225
merge with stable
Tue, 21 May 2013 15:31:56 -0500 merge with i18n stable
Matt Mackall <mpm@selenic.com> [Tue, 21 May 2013 15:31:56 -0500] rev 19224
merge with i18n
Tue, 21 May 2013 14:10:55 +0100 i18n-ru: merge with Nikolaj Sjujskij fixes stable
Alexander Sauta <demosito@gmail.com> [Tue, 21 May 2013 14:10:55 +0100] rev 19223
i18n-ru: merge with Nikolaj Sjujskij fixes
Tue, 14 May 2013 23:09:40 +0400 i18n-ru: update po-file for further translation (from ddc7a6be2021) stable
Nikolaj Sjujskij <sterkrig@myopera.com> [Tue, 14 May 2013 23:09:40 +0400] rev 19222
i18n-ru: update po-file for further translation (from ddc7a6be2021)
Tue, 14 May 2013 23:04:23 +0400 merge in i18n-ru stable
Nikolaj Sjujskij <sterkrig@myopera.com> [Tue, 14 May 2013 23:04:23 +0400] rev 19221
merge in i18n-ru
Sun, 12 May 2013 15:35:53 +0400 i18n-ru: fix patchbomb confirmation prompt (issue3929) stable
Nikolaj Sjujskij <sterkrig@myopera.com> [Sun, 12 May 2013 15:35:53 +0400] rev 19220
i18n-ru: fix patchbomb confirmation prompt (issue3929) Recognize y(es) and (n)o as valid input, for user not to have to switch keyboard layout twice (`hg email -o ...` is Latin, whereas д(а)/н(ет) are not). Use capital Y/N letters in prompt, otherwise y could be mistaken for у, and n - for п.
Mon, 08 Apr 2013 17:16:11 +0400 i18n-ru: fix "deleted files" in `status` description stable
Nikolaj Sjujskij <sterkrig@myopera.com> [Mon, 08 Apr 2013 17:16:11 +0400] rev 19219
i18n-ru: fix "deleted files" in `status` description
Tue, 21 May 2013 15:29:53 -0500 tests: backport some glob fixups stable
Matt Mackall <mpm@selenic.com> [Tue, 21 May 2013 15:29:53 -0500] rev 19218
tests: backport some glob fixups
Tue, 21 May 2013 15:23:50 -0500 help: fix role/option confusion in RST stable
Matt Mackall <mpm@selenic.com> [Tue, 21 May 2013 15:23:50 -0500] rev 19217
help: fix role/option confusion in RST RST's role syntax means something different sometimes when it's in some places that are poorly documented and vary betwen minirst and docutils. Line wrapping will thus sometimes break everything.
Fri, 17 May 2013 17:22:08 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Fri, 17 May 2013 17:22:08 -0500] rev 19216
merge with stable
Tue, 14 May 2013 11:23:18 -0700 summary: add a histedit hook
Bryan O'Sullivan <bryano@fb.com> [Tue, 14 May 2013 11:23:18 -0700] rev 19215
summary: add a histedit hook
Tue, 14 May 2013 11:23:17 -0700 summary: indicate if a rebase is underway
Bryan O'Sullivan <bryano@fb.com> [Tue, 14 May 2013 11:23:17 -0700] rev 19214
summary: indicate if a rebase is underway
Tue, 14 May 2013 11:23:17 -0700 summary: add tests for some extensions we plan to modify
Bryan O'Sullivan <bryano@fb.com> [Tue, 14 May 2013 11:23:17 -0700] rev 19213
summary: add tests for some extensions we plan to modify
Tue, 14 May 2013 11:23:16 -0700 mq: switch to new summary hook mechanism
Bryan O'Sullivan <bryano@fb.com> [Tue, 14 May 2013 11:23:16 -0700] rev 19212
mq: switch to new summary hook mechanism
Tue, 14 May 2013 11:23:15 -0700 summary: augment output with info from extensions
Bryan O'Sullivan <bryano@fb.com> [Tue, 14 May 2013 11:23:15 -0700] rev 19211
summary: augment output with info from extensions
Fri, 17 May 2013 14:31:06 -0500 dirstate: don't overnormalize for ui.slash stable
Matt Mackall <mpm@selenic.com> [Fri, 17 May 2013 14:31:06 -0500] rev 19210
dirstate: don't overnormalize for ui.slash This should fix the issue exposed by debugpathcomplete on the buildbot.
Thu, 16 May 2013 16:20:10 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Thu, 16 May 2013 16:20:10 -0500] rev 19209
merge with stable
Fri, 10 May 2013 23:48:03 +0200 bundle-ng: move progress handling out of the linkrev callback
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Fri, 10 May 2013 23:48:03 +0200] rev 19208
bundle-ng: move progress handling out of the linkrev callback
Fri, 10 May 2013 23:14:54 +0200 bundle-ng: simplify lookup and state handling
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Fri, 10 May 2013 23:14:54 +0200] rev 19207
bundle-ng: simplify lookup and state handling Use simpler callbacks to collect linkrev nodes.
Fri, 10 May 2013 22:57:54 +0200 bundle-ng: simplify bundle10.generate
Sune Foldager <cryo@cyanite.org> [Fri, 10 May 2013 22:57:54 +0200] rev 19206
bundle-ng: simplify bundle10.generate Remove complex local sub-functions mutating function-global variables. Simplify counting used for progress output.
Fri, 10 May 2013 22:47:12 +0200 shrink: delete extension preventing further refactoring (BC)
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Fri, 10 May 2013 22:47:12 +0200] rev 19205
shrink: delete extension preventing further refactoring (BC) Reordering can be done by setting bundle.reorder to true and doing a clone --pull.
Sun, 10 Feb 2013 16:03:20 +0100 bundle-ng: move bundle generation to changegroup.py
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Sun, 10 Feb 2013 16:03:20 +0100] rev 19204
bundle-ng: move bundle generation to changegroup.py
Fri, 10 May 2013 22:20:32 +0200 bundle-ng: unify _changegroup and _changegroupsubset
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Fri, 10 May 2013 22:20:32 +0200] rev 19203
bundle-ng: unify _changegroup and _changegroupsubset Refactor the two changegroup generation interface to share as much code as possible.
Fri, 10 May 2013 21:35:49 +0200 bundle-ng: move gengroup into bundler, pass repo object to bundler
Sune Foldager <cryo@cyanite.org> [Fri, 10 May 2013 21:35:49 +0200] rev 19202
bundle-ng: move gengroup into bundler, pass repo object to bundler No semantic changes made.
Sat, 09 Feb 2013 23:42:03 +0100 bundle-ng: add bundlecaps argument to getbundle() command
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Sat, 09 Feb 2013 23:42:03 +0100] rev 19201
bundle-ng: add bundlecaps argument to getbundle() command
Fri, 10 May 2013 21:03:01 +0200 bundle-ng: move group into the bundler
Sune Foldager <cryo@cyanite.org> [Fri, 10 May 2013 21:03:01 +0200] rev 19200
bundle-ng: move group into the bundler No additional semantic changes made.
Fri, 10 May 2013 20:37:41 +0200 bundle-ng: move bundler creation up in the stack
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Fri, 10 May 2013 20:37:41 +0200] rev 19199
bundle-ng: move bundler creation up in the stack Create a simple start() method to pass the lookup function until bundler becomes smarter and gets a repo object. Since we now create the bundler for the whole lifetime, we need to pass it down to revlog methods.
Wed, 15 May 2013 21:36:19 -0500 i18n: fix untranslated prompts with translated responses (issue3936) stable
Kevin Bullock <kbullock@ringworld.org> [Wed, 15 May 2013 21:36:19 -0500] rev 19198
i18n: fix untranslated prompts with translated responses (issue3936)
Wed, 15 May 2013 22:19:12 +0100 help: stop documentation markup appearing in generated help stable
Mike Williams <mrw@eandem.co.uk> [Wed, 15 May 2013 22:19:12 +0100] rev 19197
help: stop documentation markup appearing in generated help Markup for links to mercurial commands is appearing in the help documentation. This patch fixes the markup so mercurial command reference links are correctly generated in the help documentation.
Tue, 14 May 2013 18:52:52 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 14 May 2013 18:52:52 -0500] rev 19196
merge with stable
Tue, 14 May 2013 15:16:44 -0700 ui: use util.sizetoint in configbytes
Bryan O'Sullivan <bryano@fb.com> [Tue, 14 May 2013 15:16:44 -0700] rev 19195
ui: use util.sizetoint in configbytes
Tue, 14 May 2013 15:16:43 -0700 util: migrate fileset._sizetoint to util.sizetoint
Bryan O'Sullivan <bryano@fb.com> [Tue, 14 May 2013 15:16:43 -0700] rev 19194
util: migrate fileset._sizetoint to util.sizetoint The size counting code introduced in 2c4cd1c42365 duplicated existing (but unknown-to-me) code in fileset, so prepare to eliminate the duplication.
Tue, 14 May 2013 18:43:53 -0500 Added signature for changeset ddc7a6be2021 stable
Matt Mackall <mpm@selenic.com> [Tue, 14 May 2013 18:43:53 -0500] rev 19193
Added signature for changeset ddc7a6be2021
Tue, 14 May 2013 18:43:43 -0500 Added tag 2.6.1 for changeset ddc7a6be2021 stable
Matt Mackall <mpm@selenic.com> [Tue, 14 May 2013 18:43:43 -0500] rev 19192
Added tag 2.6.1 for changeset ddc7a6be2021
Tue, 23 Apr 2013 14:16:33 -0700 dirstate.status: avoid full walks when possible
Siddharth Agarwal <sid0@fb.com> [Tue, 23 Apr 2013 14:16:33 -0700] rev 19191
dirstate.status: avoid full walks when possible
Mon, 22 Apr 2013 17:11:18 -0700 dirstate.walk: add a flag to let extensions avoid full walks
Siddharth Agarwal <sid0@fb.com> [Mon, 22 Apr 2013 17:11:18 -0700] rev 19190
dirstate.walk: add a flag to let extensions avoid full walks Consider a hypothetical extension that implements walk in a more efficient manner and skips some known-clean files. However, that can only be done under some situations, such as when clean files are not being asked for and a match.traversedir callback is not set. The full flag lets walk tell these two cases apart.
Mon, 13 May 2013 17:47:04 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 13 May 2013 17:47:04 -0500] rev 19189
merge with stable
Mon, 13 May 2013 17:44:35 -0500 i18n: fix partially-translated prompts (issue3928) (issue3929) stable 2.6.1
Matt Mackall <mpm@selenic.com> [Mon, 13 May 2013 17:44:35 -0500] rev 19188
i18n: fix partially-translated prompts (issue3928) (issue3929)
Mon, 13 May 2013 17:36:06 -0500 merge with i18n stable
Matt Mackall <mpm@selenic.com> [Mon, 13 May 2013 17:36:06 -0500] rev 19187
merge with i18n
Fri, 10 May 2013 14:39:09 -0300 i18n-pt_BR: synchronized with 27013ace80eb stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Fri, 10 May 2013 14:39:09 -0300] rev 19186
i18n-pt_BR: synchronized with 27013ace80eb
Fri, 10 May 2013 11:23:50 -0500 pathencode: grow buffers to increase safety margin stable
Matt Mackall <mpm@selenic.com> [Fri, 10 May 2013 11:23:50 -0500] rev 19185
pathencode: grow buffers to increase safety margin
Mon, 13 May 2013 13:02:01 -0500 merge with stable
Kevin Bullock <kbullock@ringworld.org> [Mon, 13 May 2013 13:02:01 -0500] rev 19184
merge with stable
Sun, 12 May 2013 10:09:34 +0100 help/config: note 64-bit Windows registry key used with 32-bit Python stable
Mike Williams <mrw@eandem.co.uk> [Sun, 12 May 2013 10:09:34 +0100] rev 19183
help/config: note 64-bit Windows registry key used with 32-bit Python Before this patch the only place that documented the use of a different registry key was on the wiki page for installing on Windows from sources, while most users will use a pre-packaged installer and the supplied help files. This patch documents in the supplied help files that an alternate registry key is used for the installation/system configuration file when using 32-bit Python on a 64-bit Windows.
Sat, 11 May 2013 20:25:15 -0500 httpclient: upgrade to fe8c09e4db64 of httpplus
Augie Fackler <raf@durin42.com> [Sat, 11 May 2013 20:25:15 -0500] rev 19182
httpclient: upgrade to fe8c09e4db64 of httpplus
Wed, 08 May 2013 20:55:56 +0200 splicemap: support paths with spaces in splicemap (issue3844)
Szymon Wroblewski <bluex0@gmail.com> [Wed, 08 May 2013 20:55:56 +0200] rev 19181
splicemap: support paths with spaces in splicemap (issue3844) Shlex module was used to split line as suggested. Split operates in POSIX mode.
Tue, 07 May 2013 23:49:03 +0900 branch: strip whitespace before testing known branch name stable
Yuya Nishihara <yuya@tcha.org> [Tue, 07 May 2013 23:49:03 +0900] rev 19180
branch: strip whitespace before testing known branch name Because dirstate._branch() strips leading/trailing spaces from .hg/branch, "hg branch ' foo '" should abort if branch "foo" exists in another head. tag command had a similar bug and fixed by 3d0a9c8d7184.
Thu, 09 May 2013 18:34:04 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Thu, 09 May 2013 18:34:04 -0500] rev 19179
merge with stable
Wed, 01 May 2013 10:44:21 -0700 copies: refactor checkcopies() into a top level method
Durham Goode <durham@fb.com> [Wed, 01 May 2013 10:44:21 -0700] rev 19178
copies: refactor checkcopies() into a top level method This moves checkcopies() out of mergecopies() and makes it a top level function in the copies module. This allows extensions to override it. For example, I'm developing a filelog replacement that doesn't have rev numbers so all the rev number dependent implementation here needs to be replaced by the extension. No logic is changed in this commit.
Wed, 08 May 2013 14:22:00 -0700 store: move top file walk to a separate function
Durham Goode <durham@fb.com> [Wed, 08 May 2013 14:22:00 -0700] rev 19177
store: move top file walk to a separate function Some extensions find it useful to be able to walk the non-data files in the repo, so I'm moving that part of the walk to a separate function. In particular, this allows an extension to interact with only the non-filelog store data (for instance, when cloning everything but filelogs).
Wed, 01 May 2013 10:38:41 -0700 clone: move file stream walk to a separate function
Durham Goode <durham@fb.com> [Wed, 01 May 2013 10:38:41 -0700] rev 19176
clone: move file stream walk to a separate function Moves the file walk out of the stream method so that extensions can override it. This allows an extension to decide what files should be streamed, and in particular allows a stream without filelogs.
Tue, 07 May 2013 14:20:34 -0700 dirstate._walkexplicit: inline dirsnotfound.append
Siddharth Agarwal <sid0@fb.com> [Tue, 07 May 2013 14:20:34 -0700] rev 19175
dirstate._walkexplicit: inline dirsnotfound.append
Tue, 07 May 2013 14:19:04 -0700 dirstate._walkexplicit: rename work to dirsfound
Siddharth Agarwal <sid0@fb.com> [Tue, 07 May 2013 14:19:04 -0700] rev 19174
dirstate._walkexplicit: rename work to dirsfound Now that this code is factored out, work is too specific a name.
Tue, 07 May 2013 10:02:55 -0700 dirstate.walk: refactor explicit walk into separate function
Siddharth Agarwal <sid0@fb.com> [Tue, 07 May 2013 10:02:55 -0700] rev 19173
dirstate.walk: refactor explicit walk into separate function This enables this code to be reused by extensions that implement the other, more time-consuming bits of walk in different ways.
Tue, 07 May 2013 09:31:00 -0700 dirstate.walk: pull skipstep3 out of the explicit walk code
Siddharth Agarwal <sid0@fb.com> [Tue, 07 May 2013 09:31:00 -0700] rev 19172
dirstate.walk: pull skipstep3 out of the explicit walk code This is a move towards factoring out this code into a separate function.
Tue, 07 May 2013 09:47:10 -0700 dirstate.walk: move dirignore filter out of explicit walk code
Siddharth Agarwal <sid0@fb.com> [Tue, 07 May 2013 09:47:10 -0700] rev 19171
dirstate.walk: move dirignore filter out of explicit walk code This is a move towards factoring this code out into a separate function.
Tue, 07 May 2013 09:29:43 -0700 dirstate.walk: maintain a list of dirs not found
Siddharth Agarwal <sid0@fb.com> [Tue, 07 May 2013 09:29:43 -0700] rev 19170
dirstate.walk: maintain a list of dirs not found Upcoming patches will factor out the walk over explicit files done in step 1. This helps us get there.
Fri, 10 May 2013 00:26:39 +0400 highlight: fix page layout with empty first and last lines stable
Alexander Plavin <me@aplavin.ru> [Fri, 10 May 2013 00:26:39 +0400] rev 19169
highlight: fix page layout with empty first and last lines Repeated newlines were stripped by pygmentize, now give the option not to do so.
Thu, 09 May 2013 15:22:54 -0500 check-code: add another Windows pathsep rule
Matt Mackall <mpm@selenic.com> [Thu, 09 May 2013 15:22:54 -0500] rev 19168
check-code: add another Windows pathsep rule
Thu, 09 May 2013 15:22:21 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Thu, 09 May 2013 15:22:21 -0500] rev 19167
merge with stable
Thu, 09 May 2013 15:17:29 -0500 tests: quiet strip to avoid commandserver pathsep issue stable
Matt Mackall <mpm@selenic.com> [Thu, 09 May 2013 15:17:29 -0500] rev 19166
tests: quiet strip to avoid commandserver pathsep issue
Thu, 09 May 2013 15:09:36 -0500 tests: fix another Windows path issue stable
Matt Mackall <mpm@selenic.com> [Thu, 09 May 2013 15:09:36 -0500] rev 19165
tests: fix another Windows path issue
Thu, 09 May 2013 15:01:11 -0500 tests: fix unionrepo path issue on msys (issue3927) stable
Matt Mackall <mpm@selenic.com> [Thu, 09 May 2013 15:01:11 -0500] rev 19164
tests: fix unionrepo path issue on msys (issue3927)
Thu, 09 May 2013 10:51:03 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Thu, 09 May 2013 10:51:03 -0500] rev 19163
merge with stable
Thu, 09 May 2013 11:37:20 +0900 blackbox: fix literal block syntax stable
Takumi IINO <trot.thunder@gmail.com> [Thu, 09 May 2013 11:37:20 +0900] rev 19162
blackbox: fix literal block syntax
Tue, 07 May 2013 05:04:11 +0900 largefiles: check unknown files with case awareness of the filesystem stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 07 May 2013 05:04:11 +0900] rev 19161
largefiles: check unknown files with case awareness of the filesystem Before this patch, largefiles extension checks unknown files in the working directory always case sensitively. This causes failure in updating from the revision X consisting of '.hglf/A' (and "A" implicitly) to the revision Y consisting of 'a' (not ".hglf/A") on case insensitive filesystem, because "A" in the working directory is treated as colliding against and different from 'a' on the revision Y. This patch uses "repo.dirstate.normalize()" to check unknown files with case awareness of the filesystem.
Tue, 07 May 2013 05:04:11 +0900 largefiles: check existence of the file with case awareness of the filesystem stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 07 May 2013 05:04:11 +0900] rev 19160
largefiles: check existence of the file with case awareness of the filesystem Before this patch, largefiles extension always unlinks largefiles untracked on the target context in merging/updating after updating working directory. For example, it is assumed that the revision X consists of ".hglf/A" (and "A" implicitly) and revision Y consists of "a" (not ".hglf/A"). In the case of updating from X to Y, largefiles extension tries to unlink "A" after updating "a" in working directory. This causes unexpected unlinking "a" on the case insensitive filesystem. This patch checks existence of the file in the working context with case awareness of the filesystem to prevent from such unexpected unlinking. "lfcommands._updatelfile()" also unlinks target file in the case "largefile is tracked in the target context, but fails to be fetched". This patch doesn't apply "repo.dirstate.normalize()" in this case, because it should be already ensured in the manifest merging that there is no normal file colliding against any largefiles.
Tue, 07 May 2013 05:04:11 +0900 windows: check target type before actual unlinking to follow POSIX semantics stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 07 May 2013 05:04:11 +0900] rev 19159
windows: check target type before actual unlinking to follow POSIX semantics Creation and writing into target file via vfs (a.k.a opener) is done after "unlink()" target file, if it exists. For example, it is assumed that the revision X consists of file 'A', and the revision Y consists of file 'A/B'. Merging revision X into Y tries to "unlink()" on directory 'A' of 'A/B', before creation of file 'A'. On POSIX environment, directories should be removed by "rmdir(2)", and "unlink(2)" on directories fails. "unlink()" of Mercurial (and Python) uses "unlink(2)" directly, so unlinking in the merge case above would fail. In the other hand, on Windows environment, "unlink()" of Mercurial tries to rename before actual unlinking, to follow POSIX semantics: already opened file can be unlinked safely. This causes unexpected success in unlinking in the merge case above, even though directory 'A' is renamed to another. This confuses users. This patch checks whether target is directory or not before renaming, and raises IOError(errno.EPERM) if so, to follow POSIX semantics.
Thu, 09 May 2013 09:51:42 -0400 Merge with stable.
Augie Fackler <raf@durin42.com> [Thu, 09 May 2013 09:51:42 -0400] rev 19158
Merge with stable.
Wed, 08 May 2013 14:11:01 -0700 manifestmerge: local unknown, remote created: don't traverse symlinks
Siddharth Agarwal <sid0@fb.com> [Wed, 08 May 2013 14:11:01 -0700] rev 19157
manifestmerge: local unknown, remote created: don't traverse symlinks To figure out what to do with locally unknown files, Mercurial attempts to read them if they exist. When an attempt is made to read a file that exists but traverses a symlink, Mercurial aborts. With this patch, we first ensure that the file doesn't traverse a symlink before opening it. This is fine because a file being "remote created" means the symlink doesn't exist remotely, which means it will be deleted in the apply phase.
Thu, 09 May 2013 21:09:58 +0900 subrepo: open files in 'rb' mode to read exact data in (issue3926) stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 09 May 2013 21:09:58 +0900] rev 19156
subrepo: open files in 'rb' mode to read exact data in (issue3926) Before this patch, "subrepo._calcfilehash()" opens files by "open()" without any mode specification. This implies "text mode" on Windows. When target file contains '\x00' byte, "read()" in "text mode" reads file contents in without data after '\x00'. This causes invalid SHA1 hash calculation in "subrepo._calcfilehash()". This patch opens files in 'rb' mode to read exact data in.
Thu, 04 Apr 2013 13:45:21 -0700 patch: use scmutil.marktouched instead of scmutil.addremove
Siddharth Agarwal <sid0@fb.com> [Thu, 04 Apr 2013 13:45:21 -0700] rev 19155
patch: use scmutil.marktouched instead of scmutil.addremove addremove required paths relative to the cwd, which meant a lot of extra code that transformed paths into relative ones. That code is now gone as well.
Thu, 04 Apr 2013 13:38:28 -0700 scmutil: add a function to mark that files have been operated on
Siddharth Agarwal <sid0@fb.com> [Thu, 04 Apr 2013 13:38:28 -0700] rev 19154
scmutil: add a function to mark that files have been operated on Several places use scmutil.addremove as a means to declare that certain files have been operated on. This is ugly because: - addremove takes patterns relative to the cwd, not paths relative to the root, which means extra contortions for callers. - addremove doesn't make clear what happens to files whose status hasn't changed. This new method accepts filenames relative to the repo root, and has a much clearer contract. It also allows future modifications that do more with files whose status hasn't changed.
Wed, 03 Apr 2013 15:53:59 -0700 scmutil.addremove: factor out code to mark added/removed/renames
Siddharth Agarwal <sid0@fb.com> [Wed, 03 Apr 2013 15:53:59 -0700] rev 19153
scmutil.addremove: factor out code to mark added/removed/renames An upcoming patch will reuse this code in another function.
Wed, 03 Apr 2013 16:32:41 -0700 scmutil.addremove: factor out code to find renames
Siddharth Agarwal <sid0@fb.com> [Wed, 03 Apr 2013 16:32:41 -0700] rev 19152
scmutil.addremove: factor out code to find renames This code will be used in a different context in upcoming patches.
Wed, 03 Apr 2013 15:32:15 -0700 scmutil.addremove: rename local 'copies' to 'renames'
Siddharth Agarwal <sid0@fb.com> [Wed, 03 Apr 2013 15:32:15 -0700] rev 19151
scmutil.addremove: rename local 'copies' to 'renames' An upcoming patch will refactor some code out into a method called _findrenames. Having a line saying "copies = _findrenames..." is confusing. Besides, 'renames' is a more precise name for this local anyway.
Tue, 02 Apr 2013 17:19:36 -0700 scmutil.addremove: factor out dirstate walk into another function
Siddharth Agarwal <sid0@fb.com> [Tue, 02 Apr 2013 17:19:36 -0700] rev 19150
scmutil.addremove: factor out dirstate walk into another function Upcoming patches will reuse and expand on this function for other purposes.
Wed, 01 May 2013 10:42:03 -0700 filecontext: use 'is not None' to check for filelog existence
Durham Goode <durham@fb.com> [Wed, 01 May 2013 10:42:03 -0700] rev 19149
filecontext: use 'is not None' to check for filelog existence Previously we used 'if filelog:' to check if the filelog existed. If the instance did exist, this pattern then calls len() on the filelog to see if it is empty. I'm developing a filelog replacement that doesn't have len() implemented, so it's better to do an explicit 'is not None' check here instead. Also change _changeid() to return the _changeid attribute if it has it. Previously it would try to obtain it from the _changectx(), and if that did not exist it would construct the _changectx() using the linkrev. In the extension I'm working on, filectx's don't have easy access to linkrevs so avoiding this when possible is better.
Wed, 01 May 2013 10:39:37 -0700 filelog: use super() for calling base functions
Durham Goode <durham@fb.com> [Wed, 01 May 2013 10:39:37 -0700] rev 19148
filelog: use super() for calling base functions filelog had some hardcoded revlog.revlog.foo() calls. This changes it to use super() instead so that extensions can replace the filelog base class.
Thu, 02 May 2013 21:28:18 -0500 bookmarks: allow bookmark command to take multiple arguments
Kevin Bullock <kbullock@ringworld.org> [Thu, 02 May 2013 21:28:18 -0500] rev 19147
bookmarks: allow bookmark command to take multiple arguments This change allows setting or deleting multiple bookmarks at once. If more than one is being set and --inactive is not given, the first one is made active.
Sun, 05 May 2013 18:51:34 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Sun, 05 May 2013 18:51:34 -0500] rev 19146
merge with stable
Fri, 03 May 2013 19:34:59 +0200 convert: fix bug of wrong CVS path parsing without port number (issue3678) stable
Blesso hrvoje1212@gmail.com [Fri, 03 May 2013 19:34:59 +0200] rev 19145
convert: fix bug of wrong CVS path parsing without port number (issue3678) The cvsps.py:getrepopath suffers from a string parsing bug (it returns "user@server/path/to/repository" if the CVSROOT is given like this: ":pserver:user@server/path/to/repository" ), which gives returnes the wrong value becouse cvsps.py fails to strip the prefix from filenames. With this patch for the same input we get the correct repo path that is: "/path/to/repository"
Fri, 03 May 2013 15:36:18 -0700 match: add comments to explain explicitdir and traversedir
Siddharth Agarwal <sid0@fb.com> [Fri, 03 May 2013 15:36:18 -0700] rev 19144
match: add comments to explain explicitdir and traversedir
Fri, 03 May 2013 14:41:58 -0700 match: make explicitdir and traversedir None by default
Siddharth Agarwal <sid0@fb.com> [Fri, 03 May 2013 14:41:58 -0700] rev 19143
match: make explicitdir and traversedir None by default With this, extensions can easily tell when traversedir and/or explicitdir don't need to be called.
Fri, 03 May 2013 14:39:28 -0700 dirstate.walk: cache match.explicitdir and traversedir locally
Siddharth Agarwal <sid0@fb.com> [Fri, 03 May 2013 14:39:28 -0700] rev 19142
dirstate.walk: cache match.explicitdir and traversedir locally
Sun, 28 Apr 2013 21:29:32 -0700 match: drop dir callback
Siddharth Agarwal <sid0@fb.com> [Sun, 28 Apr 2013 21:29:32 -0700] rev 19141
match: drop dir callback dir has been subsumed by explicitdir and traversedir.
Sun, 28 Apr 2013 21:28:31 -0700 inotify: call match.explicitdir
Siddharth Agarwal <sid0@fb.com> [Sun, 28 Apr 2013 21:28:31 -0700] rev 19140
inotify: call match.explicitdir inotify only returns explicit directories matched.
Sun, 28 Apr 2013 21:27:57 -0700 purge: hook into match.explicitdir and traversedir
Siddharth Agarwal <sid0@fb.com> [Sun, 28 Apr 2013 21:27:57 -0700] rev 19139
purge: hook into match.explicitdir and traversedir
Sun, 28 Apr 2013 21:27:21 -0700 localrepo.commit: hook into match.explicitdir
Siddharth Agarwal <sid0@fb.com> [Sun, 28 Apr 2013 21:27:21 -0700] rev 19138
localrepo.commit: hook into match.explicitdir
Sun, 28 Apr 2013 21:25:41 -0700 dirstate.walk: call match.explicitdir or traversedir as appropriate
Siddharth Agarwal <sid0@fb.com> [Sun, 28 Apr 2013 21:25:41 -0700] rev 19137
dirstate.walk: call match.explicitdir or traversedir as appropriate
Sun, 28 Apr 2013 21:24:09 -0700 match: introduce explicitdir and traversedir
Siddharth Agarwal <sid0@fb.com> [Sun, 28 Apr 2013 21:24:09 -0700] rev 19136
match: introduce explicitdir and traversedir match.dir is currently called in two different places: (1) noting when a directory specified explicitly is visited. (2) noting when a directory is visited during a recursive walk. purge cares about both, but commit only cares about the first. Upcoming patches will split the two cases into two different callbacks. Why bother? Consider a hypothetical extension that can provide more efficient walk results, via e.g. watching the filesystem. That extension will need to fall back to a full recursive walk if a callback is set for (2), but not if a callback is only set for (1).
Sat, 04 May 2013 14:52:51 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Sat, 04 May 2013 14:52:51 -0500] rev 19135
merge with stable
Fri, 03 May 2013 15:18:21 -0700 run-tests: when running in parallel, delete tmpdirs immediately
Siddharth Agarwal <sid0@fb.com> [Fri, 03 May 2013 15:18:21 -0700] rev 19134
run-tests: when running in parallel, delete tmpdirs immediately This is especially important if extensions that use inotify are enabled, because it's very easy to hit the inotify max_user_instances limit without this.
Fri, 03 May 2013 14:19:30 -0700 tests: check path separator in moves
Brendan Cully <brendan@kublai.com> [Fri, 03 May 2013 14:19:30 -0700] rev 19133
tests: check path separator in moves
Fri, 03 May 2013 13:59:58 -0700 tests: fix test-commandserver phase . output for windows
Brendan Cully <brendan@kublai.com> [Fri, 03 May 2013 13:59:58 -0700] rev 19132
tests: fix test-commandserver phase . output for windows
Sat, 04 May 2013 14:51:21 -0500 hfs+: rewrite percent-escaper (issue3918) stable
Matt Mackall <mpm@selenic.com> [Sat, 04 May 2013 14:51:21 -0500] rev 19131
hfs+: rewrite percent-escaper (issue3918) The original code was a bit too clever and got confused by some cp949 Korean text. This rewrite bytes the bullet and manually decodes UTF-8 sequences. Adds some doctests.
Fri, 03 May 2013 15:34:18 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Fri, 03 May 2013 15:34:18 -0500] rev 19130
merge with stable
Fri, 03 May 2013 12:40:17 -0700 revert: ensure that copies and renames are honored (issue3920) stable
Bryan O'Sullivan <bryano@fb.com> [Fri, 03 May 2013 12:40:17 -0700] rev 19129
revert: ensure that copies and renames are honored (issue3920) Previously, we restored the states of files, but not the additional information the dirstate uses to track copies and renames.
Fri, 03 May 2013 09:44:50 -0700 hgignore: fix regression with hgignore directory matches (issue3921) stable
Durham Goode <durham@fb.com> [Fri, 03 May 2013 09:44:50 -0700] rev 19128
hgignore: fix regression with hgignore directory matches (issue3921) If a directory matched a regex in hgignore but the files inside the directory did not match the regex, they would appear as deleted in hg status. This change fixes them to appear normally in hg status. Removing the ignore(nf) conditional here is ok because it just means we might stat more files than we had before. My testing on a large repo shows this causes no performance regression since the only additional files being stat'd are the ones that are missing (i.e. status=!), which are generally rare.
Thu, 02 May 2013 20:41:22 -0500 templater: fix output instability from gsoc patches
Augie Fackler <raf@durin42.com> [Thu, 02 May 2013 20:41:22 -0500] rev 19127
templater: fix output instability from gsoc patches
Thu, 18 Apr 2013 22:56:57 +0300 log-style: add a log style that is default+phase (issue3436)
Iulian Stana <julian.stana@gmail.com> [Thu, 18 Apr 2013 22:56:57 +0300] rev 19126
log-style: add a log style that is default+phase (issue3436) There is a new style called phases style. Usage:: hg log --style phases Why do we need this new style - in what way is it different from or similar to existing styles? The new style is default + phases information. With the new phases feature the users exhibited their desire for a new style that could help them. Why do this need a new style - couldn't it be folded into an existing style? The default style and the new one are about the same, the difference is the phases tag. The users find both styles useful, this means that the both styles must exist.
Thu, 02 May 2013 20:23:14 -0500 templater: show the style list when I try to use a wrong one
Iulian Stana <julian.stana@gmail.com> [Thu, 02 May 2013 20:23:14 -0500] rev 19125
templater: show the style list when I try to use a wrong one When someone try to use a wrong style, a list with sugestions will appear. In the test-log.t file it's a test that prove this thing.
Sat, 27 Apr 2013 23:49:34 -0700 test-nested-repo.t: touch another file inside nested repo
Siddharth Agarwal <sid0@fb.com> [Sat, 27 Apr 2013 23:49:34 -0700] rev 19124
test-nested-repo.t: touch another file inside nested repo This helped uncover a bug in a patchset I've been writing.
Thu, 02 May 2013 15:21:47 -0500 check-code: add more path sep glob checks
Matt Mackall <mpm@selenic.com> [Thu, 02 May 2013 15:21:47 -0500] rev 19123
check-code: add more path sep glob checks
Thu, 25 Apr 2013 18:01:00 -0700 splicemap: improve error handling when source is subversion (issue2084)
Ben Goswami <bengoswami@fb.com> [Thu, 25 Apr 2013 18:01:00 -0700] rev 19122
splicemap: improve error handling when source is subversion (issue2084) Implemented error handling on splicemap file when source is subversion (This checks are similar to when source is hg or git). The revision string is expected to be of svn:<uuid><path>@<number> format. the test case has been enhanced to check this format.
Thu, 25 Apr 2013 16:02:58 -0700 splicemap: improve error handling when source is git (issue2084)
Ben Goswami <bengoswami@fb.com> [Thu, 25 Apr 2013 16:02:58 -0700] rev 19121
splicemap: improve error handling when source is git (issue2084) Implemented similar error handling that is done for hg in an earlier revision. These are: a. add checking for splicemap file format b. add checking for each revision string formats
Thu, 25 Apr 2013 11:50:26 -0700 splicemap: improve error handling when source is hg (issue2084)
Ben Goswami <bengoswami@fb.com> [Thu, 25 Apr 2013 11:50:26 -0700] rev 19120
splicemap: improve error handling when source is hg (issue2084) 1. Introduced 2 levels of error handling for splicemap files a. Check the splicemap file for rules which are same across different types of source repos. This is done through enhancing parsesplicemap function b. Check revision string formats. Each repo may have their own format. This is done usign checkrevformat function c. Implemented the above two for hg
Wed, 24 Apr 2013 18:26:37 -0700 splicemap: move parsesplicemap to convcmd.py (issue2084)
Ben Goswami <bengoswami@fb.com> [Wed, 24 Apr 2013 18:26:37 -0700] rev 19119
splicemap: move parsesplicemap to convcmd.py (issue2084) parsesplicemap is only referenced from convcmd.py This move is necessary to enable other changes related to this issue
Thu, 02 May 2013 14:11:34 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Thu, 02 May 2013 14:11:34 -0500] rev 19118
merge with stable
Thu, 02 May 2013 11:26:43 -0700 tests: sprinkle globs over largefiles/subrepo tests for Windows stable
Brendan Cully <brendan@kublai.com> [Thu, 02 May 2013 11:26:43 -0700] rev 19117
tests: sprinkle globs over largefiles/subrepo tests for Windows
Thu, 02 May 2013 11:17:18 -0700 tests: skip permissions tests in test-phases-exchange when fs lacks permissions stable
Brendan Cully <brendan@kublai.com> [Thu, 02 May 2013 11:17:18 -0700] rev 19116
tests: skip permissions tests in test-phases-exchange when fs lacks permissions
Thu, 02 May 2013 12:15:41 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Thu, 02 May 2013 12:15:41 -0500] rev 19115
merge with stable
Wed, 01 May 2013 17:49:53 -0500 Added signature for changeset 23f785b38af3 stable
Matt Mackall <mpm@selenic.com> [Wed, 01 May 2013 17:49:53 -0500] rev 19114
Added signature for changeset 23f785b38af3
Wed, 01 May 2013 17:49:48 -0500 Added tag 2.6 for changeset 23f785b38af3 stable
Matt Mackall <mpm@selenic.com> [Wed, 01 May 2013 17:49:48 -0500] rev 19113
Added tag 2.6 for changeset 23f785b38af3
Wed, 01 May 2013 15:24:21 -0500 bookmarks: fix bug that activated a bookmark even with -r passed stable 2.6
Sean Farley <sean.michael.farley@gmail.com> [Wed, 01 May 2013 15:24:21 -0500] rev 19112
bookmarks: fix bug that activated a bookmark even with -r passed If the current revision was the target revision of -r, then the bookmark would be active. Test cases have been updated accordingly.
Tue, 30 Apr 2013 21:12:49 -0500 bookmarks: resolve divergent bookmark when moving across a branch stable
Sean Farley <sean.michael.farley@gmail.com> [Tue, 30 Apr 2013 21:12:49 -0500] rev 19111
bookmarks: resolve divergent bookmark when moving across a branch This patch resolves a single divergent bookmark if a divergent bookmark exists in the target revision and it current bookmark is not an ancestor of the target revision, else it would already be handled by the previous patch in this series. Test coverage is added.
Wed, 01 May 2013 15:34:45 -0500 bookmarks: resolve divergent bookmarks when moving active bookmark forward stable
Sean Farley <sean.michael.farley@gmail.com> [Wed, 01 May 2013 15:34:45 -0500] rev 19110
bookmarks: resolve divergent bookmarks when moving active bookmark forward This patch resolves divergent bookmarks between the current active bookmark MARK and the new destination. This situation can arise when pulling new changesets, abandoning your current changesets actively bookmarked with MARK via strip, and then doing a bare update. The non-divergent but active bookmark MARK is then moved to a common ancestor of the new changesets and the abandoned changesets. Test coverage is added.
Wed, 01 May 2013 15:31:39 -0500 bookmarks: resolve divergent bookmarks when fowarding bookmark to descendant stable
Sean Farley <sean.michael.farley@gmail.com> [Wed, 01 May 2013 15:31:39 -0500] rev 19109
bookmarks: resolve divergent bookmarks when fowarding bookmark to descendant This patch is a follow-up to 56dd55da2f7d that resolves divergent bookmarks between the to-be-forwarded bookmark MARK and the new descendant. This situation can happen when pulling new changesets, updating to the divergent bookmark, abandoning the previous changesets with strip, and then moving MARK to MARK@N. Test coverage is added.
Tue, 30 Apr 2013 09:02:02 +0900 tags: update tag type only if tag node is updated (issue3911) stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 30 Apr 2013 09:02:02 +0900] rev 19108
tags: update tag type only if tag node is updated (issue3911) Before this patch, tag type information is always updated, even if tag previously read in has higher priority than one newly read in. This causes that the tag type is displayed as "local", even if global tag overwrites existing local one successfully. This patch updates tag type only if tag node is updated. This patch tests overwriting local tags below: - visible one (normal case) - already removed one (recorded as null)
Tue, 30 Apr 2013 01:04:35 +0200 match: fix root calculation for combining regexps with simple paths stable
Mads Kiilerich <madski@unity3d.com> [Tue, 30 Apr 2013 01:04:35 +0200] rev 19107
match: fix root calculation for combining regexps with simple paths The fall-back root for walking is the repo root, not no root. The "roots" do however also end up in m.files() which is used in various ways, for instance to indicate whether matches are exact. The change could thus have other impacts.
Tue, 30 Apr 2013 05:01:32 +0900 icasefs: enhance test to prevent regression by changes in the future stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 30 Apr 2013 05:01:32 +0900] rev 19106
icasefs: enhance test to prevent regression by changes in the future This patch adds steps to test case-folding collision detection on the revision tree built up in the order different from the one reproducing issue3452. This may prevent regression by changes around "copy detection" and/or "case-folding collision detection" logic in the future.
Tue, 30 Apr 2013 05:01:32 +0900 icasefs: rewrite case-folding collision detection (issue3452) stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 30 Apr 2013 05:01:32 +0900] rev 19105
icasefs: rewrite case-folding collision detection (issue3452) Before this patch, case-folding collision detection uses "copies.pathcopies()" before "manifestmerge()", and is not aware of renaming in some cases. For example, in the case of issue3452, "copies.pathcopies()" can't detect renaming, if the file is renamed at the revision before common ancestor of merging. So, "hg merge" is aborted unexpectedly on case insensitive filesystem. This patch fully rewrites case-folding collision detection, and relocate it into "manifestmerge()". New implementation uses list of actions held in "actions" and "prompts" to build provisional merged manifest up. Provisional merged manifest should be correct, if actions required to build merge result up in working directory are listed up in "actions" and "prompts" correctly. This patch checks case-folding collision still before prompting for merge, to avoid aborting after some interactions with users. So, this assumes that user would choose not "deleted" but "changed". This patch also changes existing abort message, because sorting before collision detection changes order of checked files.
Tue, 30 Apr 2013 05:01:32 +0900 icasefs: refactor "test-casecollision-merge.t" to reuse in succeeding fixes stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 30 Apr 2013 05:01:32 +0900] rev 19104
icasefs: refactor "test-casecollision-merge.t" to reuse in succeeding fixes This patch refactors "test-casecollision-merge.t" to increase reusability in succeeding patches. It is confirmed that changed test also can detect issue3370.
Tue, 30 Apr 2013 05:00:48 +0900 icasefs: ignore removed files at building "dirstate._foldmap" up on icasefs stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 30 Apr 2013 05:00:48 +0900] rev 19103
icasefs: ignore removed files at building "dirstate._foldmap" up on icasefs Before this patch, all files in dirstate are used to build "_foldmap" up on case insensitive filesystem regardless of their statuses. For example, when dirstate contains both removed file 'a' and added file 'A', "_foldmap" may be updated finally by removed file 'a'. This causes unexpected status information for added file 'A' at "hg status" invocation. This patch ignores removed files at building "_foldmap" up on case insensitive filessytem. This patch doesn't add any test, because this issue is difficult to reproduce intentionally: it depends on iteration order of "dirstate._map".
Wed, 01 May 2013 11:20:16 -0300 i18n-pt_BR: synchronized with 3f5e75c22585 stable
Wagner Bruna <wbruna@yahoo.com> [Wed, 01 May 2013 11:20:16 -0300] rev 19102
i18n-pt_BR: synchronized with 3f5e75c22585
Wed, 01 May 2013 11:18:49 -0300 merge with i18n stable
Wagner Bruna <wbruna@yahoo.com> [Wed, 01 May 2013 11:18:49 -0300] rev 19101
merge with i18n
Wed, 01 May 2013 00:38:43 +0900 i18n-ja: synchronized with f01a351db791 stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 01 May 2013 00:38:43 +0900] rev 19100
i18n-ja: synchronized with f01a351db791
Mon, 29 Apr 2013 14:14:42 -0700 dispatch: add support for --option=value to _earlygetopt stable
Bryan O'Sullivan <bryano@fb.com> [Mon, 29 Apr 2013 14:14:42 -0700] rev 19099
dispatch: add support for --option=value to _earlygetopt This fixes a very confusing error message: $ hg --config=pager.enabled=off st abort: option --config may not be abbreviated!
Mon, 29 Apr 2013 14:14:41 -0700 dispatch: add doctests for _earlygetopt stable
Bryan O'Sullivan <bryano@fb.com> [Mon, 29 Apr 2013 14:14:41 -0700] rev 19098
dispatch: add doctests for _earlygetopt
Tue, 30 Apr 2013 21:19:56 +0200 push: make locking of source optional (issue3684) stable
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 30 Apr 2013 21:19:56 +0200] rev 19097
push: make locking of source optional (issue3684) Having the permission to lock the source repo on push is now optional. When the repo cannot be locked, phase are not changed locally. A status message is issue when some actual phase movement are skipped: cannot lock source repo, skipping local public phase update A debug message with the exact reason of the locking failure is issued in all case.
Tue, 30 Apr 2013 10:51:25 +0200 push: factorise phase movement in a simple closure stable
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 30 Apr 2013 10:51:25 +0200] rev 19096
push: factorise phase movement in a simple closure Having all phases movement centralised will help to handle special case when the local repo can not be locked as describe in issue 3684.
Mon, 29 Apr 2013 15:58:15 +0900 merge: increase safety of parallel updating/removing on icasefs stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 29 Apr 2013 15:58:15 +0900] rev 19095
merge: increase safety of parallel updating/removing on icasefs "merge.applyupdates()" sorts "actions" in removal first order, and "workeractions" derived from it should be also sorted. If each actions in "workeractions" are executed in serial, this sorting ensures that merging/updating process is collision free, because updating the file in target context is always executed after removing the existing file which causes case-folding collision against the former. In the other hand, if each actions are executed in parallel, updating on a worker process may be executed before removing on another worker process, because "worker.partition()" partitions list of actions regardless of type of each actions. This patch divides "workeractions" into removing and updating, and executes the former first. This patch still scans "actions"/"workeractions" some times for ease of patch review, even though large list may cost much in this way. (total cost should be as same as before) This also changes some tests, because dividing "workeractions" affects progress indication.
Tue, 30 Apr 2013 13:53:49 +0200 hgweb: handle filtered "0" rev in navigation stable
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 30 Apr 2013 13:53:49 +0200] rev 19094
hgweb: handle filtered "0" rev in navigation Before this changeset, navigation generation crashed if revision "0" was filtered. We introduce a `_first` methods on revision navigation that return the lowest unfiltered element and use it in two place were the "0" changeset was explicitly referenced. Test case are introduced.
Tue, 30 Apr 2013 15:11:12 +0200 hgweb: fix empty navigation detection stable
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 30 Apr 2013 15:11:12 +0200] rev 19093
hgweb: fix empty navigation detection For some obscure reason, changelog.node(0) returns nullid if changelog is empty. this break empty navigation detection. We fix this code by using the length of the changelog. Using the length have some issue with revision filtering but this is a small step in the right direction. Proper fix comes in later changeset.
Tue, 30 Apr 2013 14:56:33 +0100 tests: AIX can't handle negative date in test-dirstate.t stable
Jim Hague <jim.hague@acm.org> [Tue, 30 Apr 2013 14:56:33 +0100] rev 19092
tests: AIX can't handle negative date in test-dirstate.t test-dirstate.t fails on AIX in the absurd date test. AIX touch errors on any date prior to 1970. AIX mktime() gives an error on such dates, so the problem is deeper than touch and attempts to work around touch in Python failed. Give up. Add an AIX test to hghave and skip the absurd date test on AIX.
Fri, 26 Apr 2013 01:12:03 +0900 win32: use explicit path to "python.exe" only if it exists stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 26 Apr 2013 01:12:03 +0900] rev 19091
win32: use explicit path to "python.exe" only if it exists Before this patch, "hg.bat" for Windows environment always uses "%~dp0..\python" as explicit path to "python.exe". This path may not be valid in some cases. For example, on the environment using "virtualenv" python package, both "python.exe" and "hg.bat" are placed in the same directory. In this case, "python.exe" should be found on PATH, because virtualenv activation script puts "python.exe" on the PATH. This patch uses explicit path to "python.exe" only if it exists, and expects that "python.exe" can be found on PATH otherwise.
Fri, 26 Apr 2013 22:07:25 -0700 test-mq-strip.t: add a test for strip --keep with clean working dir stable
Siddharth Agarwal <sid0@fb.com> [Fri, 26 Apr 2013 22:07:25 -0700] rev 19090
test-mq-strip.t: add a test for strip --keep with clean working dir This helped uncover a bug in a patchset I've been writing.
Sat, 27 Apr 2013 00:41:42 +0200 largefiles: use repo.wwrite for writing standins (issue3909) stable
Mads Kiilerich <madski@unity3d.com> [Sat, 27 Apr 2013 00:41:42 +0200] rev 19089
largefiles: use repo.wwrite for writing standins (issue3909)
Fri, 26 Apr 2013 19:04:01 +0200 largefiles: drop repo wrapping detection stable
Mads Kiilerich <madski@unity3d.com> [Fri, 26 Apr 2013 19:04:01 +0200] rev 19088
largefiles: drop repo wrapping detection After 257afe5489d4 I see: $ hg id -q largefiles: repo method 'commit' appears to have already been wrapped by another extension: largefiles may behave incorrectly largefiles: repo method 'push' appears to have already been wrapped by another extension: largefiles may behave incorrectly be207d9b7e4b The warning is bad: * The message gives no hint what the problem is and how it can be resolved. The message is useless. * Largefiles do have its share of problems, but I don't think I ever have seen a problem where this warning would have helped. The 'may' in the warning seems like an exaggeration of the risk. Having largefiles enabled in combination with for instance mq, hggit and hgsubversion causes a warning (depending on the configuration order) but do not cause problems. Extensions might of course be incompatible, but they can be that in many other ways. The check and the message are incorrect. It would thus be better to remove the check and the warning completely. Before 257afe5489d4 the check always failed. That change made the check work more like intended ... but the intention was wrong. This change will thus also back that change out.
Fri, 26 Apr 2013 23:36:12 +0900 config: discard "%unset" values defined in the other files read in previously stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 26 Apr 2013 23:36:12 +0900] rev 19087
config: discard "%unset" values defined in the other files read in previously Before this patch, "%unset" can't unset values defined in the other files read in previously, even though online help document says that it can. It can unset only values defined in the same configuration file. For example, the value defined in "~/.hgrc" can't be unset by "%unset" in ".hg/hgrc" of the repository. This patch records "%unset"-ed values in "config.parse()", and discards corresponding values in "config.update()".
Fri, 26 Apr 2013 23:16:25 +0900 tests: rename from test-config-case.t to test-config.t for centralization stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 26 Apr 2013 23:16:25 +0900] rev 19086
tests: rename from test-config-case.t to test-config.t for centralization Before this patch, there is no test script testing configuration handling generally. "test-config-case.t" seems to be specific for testing case sensitive configuration. This patch renames from "test-config-case.t" to "test-config.t" for centralization of tests around configuration handling.
Thu, 25 Apr 2013 20:48:49 +0900 i18n: show the non-ASCII password prompt text correctly stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 25 Apr 2013 20:48:49 +0900] rev 19085
i18n: show the non-ASCII password prompt text correctly Before this patch, the prompt text for asking password is directly passed to "getpass.getpass()" of Python standard library. In "getpass.getpass()" implementation on Windows environment, the prompt text is split into byte sequence and "msvcrt.putch()" is applied on each bytes in it. This splitting causes non-ASCII prompt text to be broken. This patch shows the prompt text for asking password on "ui.getpass()" side, and invokes "getpass.getpass()" with empty prompt text. This prevents non-ASCII prompt text from being broken in "getpass.getpass()" implementation. This patch also sets "ui.prompt" label to prompt text to follow "ui.prompt()" style.
Tue, 23 Apr 2013 17:26:00 -0500 tests: make sed usage in test-unionrepo.t cross-platform stable
Kevin Bullock <kbullock@ringworld.org> [Tue, 23 Apr 2013 17:26:00 -0500] rev 19084
tests: make sed usage in test-unionrepo.t cross-platform Usage of the 'i' command proves tricky. I tried to write a check-code rule, but failed.
Tue, 23 Apr 2013 16:57:51 -0500 check-code: fix sed 'i' command rule newline matching stable
Kevin Bullock <kbullock@ringworld.org> [Tue, 23 Apr 2013 16:57:51 -0500] rev 19083
check-code: fix sed 'i' command rule newline matching The regular expression was meant to match cases where an 'i' command was not followed by precisely a '\' and then a newline; it failed to match the newline, so cases with a '\' but no newline would erroneously pass.
Mon, 22 Apr 2013 18:00:59 -0700 blackbox: don't run permission tests on non-unix systems stable
Durham Goode <durham@fb.com> [Mon, 22 Apr 2013 18:00:59 -0700] rev 19082
blackbox: don't run permission tests on non-unix systems The windows and vfat test runs were failing due to read/write permissions not working the same on those systems. On vfat, permissions can't be changed at all, and on windows it seems the chmod emulation doesn't remove read permissions. We could theoretically get the 'cannot write to blacklog.log' test to pass on windows but there's no #if condition to let us exclude vfat only. Verified that test-blackbox passes on windows now.
Mon, 22 Apr 2013 16:50:08 -0500 check-code: expand sed rule to include more offenders stable
Kevin Bullock <kbullock@ringworld.org> [Mon, 22 Apr 2013 16:50:08 -0500] rev 19081
check-code: expand sed rule to include more offenders Expands the rule added in 5e4491c114b2 to include cases where the address is a line number instead of a regular expression, and fixes an instance of this pattern in test-unionrepo.t.
Mon, 22 Apr 2013 16:33:28 -0500 check-code: add a rule against a GNU sed-ism stable
Kevin Bullock <kbullock@ringworld.org> [Mon, 22 Apr 2013 16:33:28 -0500] rev 19080
check-code: add a rule against a GNU sed-ism BSD sed requires the 'i' command to be followed with a backslash and a newline, like so: $ sed -e '/^@/i\ > other' We've encountered this problem before, e.g. in test-mq.t (900767dfa80d). This change adds a check-code rule and fixes two instances of the problem in test-record.t.
Mon, 22 Apr 2013 12:27:56 +0400 hgweb: make help verbose again (issue3899) stable
Alexander Plavin <me@aplavin.ru> [Mon, 22 Apr 2013 12:27:56 +0400] rev 19079
hgweb: make help verbose again (issue3899) Due to regression introduced in f5db3092790f, help in hgweb was rendered in non-verbose form (issue3899)
Sun, 21 Apr 2013 17:33:51 -0500 merge with i18n stable
Matt Mackall <mpm@selenic.com> [Sun, 21 Apr 2013 17:33:51 -0500] rev 19078
merge with i18n
Sat, 20 Apr 2013 19:01:36 -0300 i18n-pt_BR: synchronized with 64ea454e7d76 stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Sat, 20 Apr 2013 19:01:36 -0300] rev 19077
i18n-pt_BR: synchronized with 64ea454e7d76
Sat, 20 Apr 2013 16:46:38 +0400 css: remove repeated property stable
Alexander Plavin <me@aplavin.ru> [Sat, 20 Apr 2013 16:46:38 +0400] rev 19076
css: remove repeated property 'margin' property was repeated for the same selector
Sat, 20 Apr 2013 22:09:17 +0400 css: fixed font-family stable
Alexander Plavin <me@aplavin.ru> [Sat, 20 Apr 2013 22:09:17 +0400] rev 19075
css: fixed font-family There is no 'sans' font-family, replaced with 'sans-serif'
Fri, 19 Apr 2013 22:03:59 -0700 color: add a test with extension loaded and ui.formatted=False stable
Siddharth Agarwal <sid0@fb.com> [Fri, 19 Apr 2013 22:03:59 -0700] rev 19074
color: add a test with extension loaded and ui.formatted=False
Fri, 19 Apr 2013 16:57:10 -0700 color: set _colormode to None when mode is unset (issue3895) stable
Siddharth Agarwal <sid0@fb.com> [Fri, 19 Apr 2013 16:57:10 -0700] rev 19073
color: set _colormode to None when mode is unset (issue3895) Previously, colorui assumed that it would only be called when mode wasn't None. 7ae12ce87594 changed that, so now colorui needs to care about whether it should colorize output.
Fri, 19 Apr 2013 16:57:20 -0700 color: turn colorui functions into forwards when color is None stable
Siddharth Agarwal <sid0@fb.com> [Fri, 19 Apr 2013 16:57:20 -0700] rev 19072
color: turn colorui functions into forwards when color is None colorui will be set to None as necessary in an upcoming patch.
Fri, 19 Apr 2013 18:26:35 -0300 largefiles: fix typos in documentation stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Fri, 19 Apr 2013 18:26:35 -0300] rev 19071
largefiles: fix typos in documentation
Fri, 19 Apr 2013 10:55:11 -0700 translations: change label integer error to not specify the kind of label stable
Durham Goode <durham@fb.com> [Fri, 19 Apr 2013 10:55:11 -0700] rev 19070
translations: change label integer error to not specify the kind of label The current error message used the kind (bookmark, branch, tag) in the message. Unfortunately this isn't easily translatable since some languages give different genders to these words. The fix is to not specify it at all, since it should be implicit based on the command the user just ran. Relevant discussions around this area: http://selenic.com/pipermail/mercurial-devel/2012-October/045567.html http://selenic.com/pipermail/mercurial-devel/2012-October/045600.html
Thu, 18 Apr 2013 23:50:15 -0500 Added signature for changeset 292cd385856d stable
Matt Mackall <mpm@selenic.com> [Thu, 18 Apr 2013 23:50:15 -0500] rev 19069
Added signature for changeset 292cd385856d
Thu, 18 Apr 2013 23:50:08 -0500 Added tag 2.6-rc for changeset 292cd385856d stable
Matt Mackall <mpm@selenic.com> [Thu, 18 Apr 2013 23:50:08 -0500] rev 19068
Added tag 2.6-rc for changeset 292cd385856d
Thu, 18 Apr 2013 23:46:26 -0500 merge default int stable for 2.6 code freeze stable 2.6-rc
Matt Mackall <mpm@selenic.com> [Thu, 18 Apr 2013 23:46:26 -0500] rev 19067
merge default int stable for 2.6 code freeze
Thu, 18 Apr 2013 16:17:59 -0700 blackbox: automatically rotate log files
Bryan O'Sullivan <bryano@fb.com> [Thu, 18 Apr 2013 16:17:59 -0700] rev 19066
blackbox: automatically rotate log files If enabled, log rotation prevents the amount of space used by the blackbox log from growing without bound. This becomes important in cases where there are a lot of busy repositories managed by humans and automation on many machines. In large deployments, we cannot reasonably track all the repos where blackbox logs need to be managed, so it is safer to have blackbox manage its own logs than to move responsibility to an external tool such as logrotate. This change adds two configuration keys: * blackbox.maxsize is the maximum allowable size of the current log * blackbox.maxfiles is the number of log files to maintain
Thu, 18 Apr 2013 12:58:28 -0700 ui: add a configbytes method, for space configuration
Bryan O'Sullivan <bryano@fb.com> [Thu, 18 Apr 2013 12:58:28 -0700] rev 19065
ui: add a configbytes method, for space configuration This accepts a floating point number, followed by optional whitespace, followed by an optional one- or two-letter unit specifier (for bytes, kilobytes, megabytes, or gigabytes).
Thu, 18 Apr 2013 23:53:39 +0200 mq: do not inherit settings form base repo in mqrepo (Fixes issue2358)
Simon Heimberg <simohe@besonet.ch> [Thu, 18 Apr 2013 23:53:39 +0200] rev 19064
mq: do not inherit settings form base repo in mqrepo (Fixes issue2358) This is done by using repo.baseui when creating the queue repo.
Thu, 18 Apr 2013 23:53:24 +0200 color: set the ui class in reposetup, before a repo is created
Simon Heimberg <simohe@besonet.ch> [Thu, 18 Apr 2013 23:53:24 +0200] rev 19063
color: set the ui class in reposetup, before a repo is created Previously only the class of repo.ui was set. The class was set in the wrapper of dispatch._runcommand. But this is called after the repo is created. Only the class of repo.ui is set because repo.baseui already exists and is not accessible. We now set the class in uisetup because this is called before repo creation. This is also the place suggested in the wiki for modifying classes.
Thu, 18 Apr 2013 20:28:38 +0200 parsers: remove warning: format ‘%ld’ expects argument of type ‘long int’
André Sintzoff <andre.sintzoff@gmail.com> [Thu, 18 Apr 2013 20:28:38 +0200] rev 19062
parsers: remove warning: format ‘%ld’ expects argument of type ‘long int’ gcc 4.6.3 on 12.04 Ubuntu machine emits warnings: mercurial/parsers.c: In function ‘find_deepest’: mercurial/parsers.c:1288:9: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 3 has type ‘Py_ssize_t’ [-Wformat] mercurial/parsers.c:1288:9: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 4 has type ‘Py_ssize_t’ [-Wformat]
Thu, 18 Apr 2013 19:50:04 +0900 annotate: discard refcount of discarded annotation for memory efficiency
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 18 Apr 2013 19:50:04 +0900] rev 19061
annotate: discard refcount of discarded annotation for memory efficiency Before this patch, refcount (managed in "needed") of the annotation result is kept as 1, even if corresponding annotation result is discarded from "hist", because it isn't decreased and discarded. In the history tree including merging revision, the most recent common ancestor of merged revisions is scanned twice. Refcount of such ancestor never becomes 0, because refcount is started from 1 at the second scanning. This prevents annotation results of merging revision in "hist" from being discarded, and decreases memory efficiency. This patch discards refcount of the annotation result, when the corresponding annotation is discarded from "hist".
Thu, 18 Apr 2013 16:46:09 +0400 revlog: fix a regression with null revision
Alexander Plavin <me@aplavin.ru> [Thu, 18 Apr 2013 16:46:09 +0400] rev 19060
revlog: fix a regression with null revision Introduced in the patch which fixes issue3497 Part of that patch was erroneously submitted and it shouldn't be in the code
Thu, 18 Apr 2013 14:28:06 -0700 rebase: check no-op before checking phase (issue3891)
Siddharth Agarwal <sid0@fb.com> [Thu, 18 Apr 2013 14:28:06 -0700] rev 19059
rebase: check no-op before checking phase (issue3891) This could lead to user confusion, because phases aren't really involved at all when attempting to perform a no-op rebase.
Wed, 10 Apr 2013 19:27:49 -0500 template: call runtemplate on the src argument to sub
Sean Farley <sean.michael.farley@gmail.com> [Wed, 10 Apr 2013 19:27:49 -0500] rev 19058
template: call runtemplate on the src argument to sub This allows using a template keyword on calls to the sub function and brings the function inline with most other semantics of the other template functions.
Wed, 17 Apr 2013 03:41:34 +0200 run-tests: introduce --random for running tests in random error
Mads Kiilerich <madski@unity3d.com> [Wed, 17 Apr 2013 03:41:34 +0200] rev 19057
run-tests: introduce --random for running tests in random error This is convenient when investigating failures one by one to avoid running the same fixed tests first every time.
Wed, 17 Apr 2013 03:41:11 +0200 largefiles: wlock in status before lfdirstate.write()
Mads Kiilerich <madski@unity3d.com> [Wed, 17 Apr 2013 03:41:11 +0200] rev 19056
largefiles: wlock in status before lfdirstate.write()
Tue, 16 Apr 2013 19:31:59 +0200 transplant: use set for prune lookup
Mads Kiilerich <madski@unity3d.com> [Tue, 16 Apr 2013 19:31:59 +0200] rev 19055
transplant: use set for prune lookup
Wed, 17 Apr 2013 11:47:49 +0200 obsolete: extract obsolescence marker pulling into a dedicated function
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 17 Apr 2013 11:47:49 +0200] rev 19054
obsolete: extract obsolescence marker pulling into a dedicated function Having a dedicated function will allow us to experiment with other exchange strategies in an extension. As we have no solid clues about how to do it right, being able to experiment is vital. Some transaction tricks are necessary for pull. But nothing too scary.
Wed, 17 Apr 2013 11:18:36 +0200 obsolete: extract obsolescence marker pushing into a dedicated function
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 17 Apr 2013 11:18:36 +0200] rev 19053
obsolete: extract obsolescence marker pushing into a dedicated function Having a dedicated function will allows us to experiment with other exchange strategies in an extension. As we have no solid clues about how to do it right, being able to experiment is vital. I intended a more ambitious extraction of push logic, but we are far too advanced in the release cycle for it.
Thu, 18 Apr 2013 12:55:58 -0700 blackbox: fix a case of name capture
Bryan O'Sullivan <bryano@fb.com> [Thu, 18 Apr 2013 12:55:58 -0700] rev 19052
blackbox: fix a case of name capture
Fri, 19 Apr 2013 01:34:21 +0900 pathencode: eliminate comma at end of enum list to avoid pedantic warning
Yuya Nishihara <yuya@tcha.org> [Fri, 19 Apr 2013 01:34:21 +0900] rev 19051
pathencode: eliminate comma at end of enum list to avoid pedantic warning
Fri, 19 Apr 2013 01:26:23 +0900 smtp: use 465 as default port for SMTPS
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 19 Apr 2013 01:26:23 +0900] rev 19050
smtp: use 465 as default port for SMTPS Before this patch, port 25 (wellknown port of SMTP) is used as default port, even if "[smtp] tls" is configured as "smtps". This patch uses port 465 (wellknown port of SMTPS) as default port, if "[smtp] tls" is configured as "smtps".
Thu, 21 Feb 2013 21:05:06 +0000 subrepo: fix test breakage introduced in 2b34d004e644
Kevin Bullock <kbullock@ringworld.org> [Thu, 21 Feb 2013 21:05:06 +0000] rev 19049
subrepo: fix test breakage introduced in 2b34d004e644 The test didn't break when I originally committed it (git version 1.7.12.4 (Apple Git-37)), and still doesn't on that machine, but the output changes elsewhere with "Warning: you are leaving N commits behind..." This change sets a ref on the commit we're updating the subrepo _away_ from to quash the warning.
Thu, 18 Apr 2013 15:27:50 +0200 histedit: more precise user message when changeset is missing
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 18 Apr 2013 15:27:50 +0200] rev 19048
histedit: more precise user message when changeset is missing Now that we explicitly detect duplicated changesets, we can explicitly detect missing ones. We cover the same cases as before, some others and we offer a better error message in all cases.
Thu, 18 Apr 2013 15:22:24 +0200 histedit: protect against duplicated entries
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 18 Apr 2013 15:22:24 +0200] rev 19047
histedit: protect against duplicated entries Before this change one would issue rules with duplicated entries. For this to happen some other changeset had to be missing to maintain the rules length.
Thu, 18 Apr 2013 15:13:35 +0200 histedit: track short hash instead of changectx object
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 18 Apr 2013 15:13:35 +0200] rev 19046
histedit: track short hash instead of changectx object This simplifies set usage and allow us to add a missing revision check in a later commit.
Thu, 18 Apr 2013 15:10:01 +0200 histedit: ensure rules return short hex at all time
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 18 Apr 2013 15:10:01 +0200] rev 19045
histedit: ensure rules return short hex at all time Handling homogeneous data is both simpler and safer.
Thu, 18 Apr 2013 13:51:27 +0200 histedit-test: test unknown command
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 18 Apr 2013 13:51:27 +0200] rev 19044
histedit-test: test unknown command We had no tested for this case.
Thu, 18 Apr 2013 13:50:59 +0200 histedit-test: test unknown changeset
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 18 Apr 2013 13:50:59 +0200] rev 19043
histedit-test: test unknown changeset We had no tested for this case.
Thu, 18 Apr 2013 13:49:32 +0200 histedit-test: test malformed line
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 18 Apr 2013 13:49:32 +0200] rev 19042
histedit-test: test malformed line We had not tested for this case.
Thu, 18 Apr 2013 11:54:31 -0400 histedit-test: test that extra revisions are detected
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 18 Apr 2013 11:54:31 -0400] rev 19041
histedit-test: test that extra revisions are detected We had not tested for this case.
Thu, 18 Apr 2013 11:53:58 -0400 histedit-test: test that missing revisions are detected
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 18 Apr 2013 11:53:58 -0400] rev 19040
histedit-test: test that missing revisions are detected We had not tested for this case.
Thu, 18 Apr 2013 11:52:34 -0400 histedit: handle multiple spaces between action and hash (issue3893)
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 18 Apr 2013 11:52:34 -0400] rev 19039
histedit: handle multiple spaces between action and hash (issue3893) There is some clue that the previous code intended to handle that but it was actually not the case. As a result action could apply to the empty string '' changeset, leading to the use the current working directory parent in some operations.
Fri, 01 Feb 2013 15:00:23 -0800 http2: sane readline
Brendan Cully <brendan@kublai.com> [Fri, 01 Feb 2013 15:00:23 -0800] rev 19038
http2: sane readline It turns out that it pays off to read more than a byte at a time with a select in between :)
Fri, 01 Feb 2013 14:41:35 -0800 http2: make read use pushchunk/popchunk, eschew itertools
Brendan Cully <brendan@kublai.com> [Fri, 01 Feb 2013 14:41:35 -0800] rev 19037
http2: make read use pushchunk/popchunk, eschew itertools The itertools approach was showing up high in the profile output.
Fri, 01 Feb 2013 14:41:33 -0800 http2: track available data as it changes instead of recomputing it
Brendan Cully <brendan@kublai.com> [Fri, 01 Feb 2013 14:41:33 -0800] rev 19036
http2: track available data as it changes instead of recomputing it With a large amount of available data, this computation can become costly.
Thu, 18 Apr 2013 13:38:49 +0200 histedit-test: rename histedit-revspec into histedit-argument
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 18 Apr 2013 13:38:49 +0200] rev 19035
histedit-test: rename histedit-revspec into histedit-argument We have no testing for argument. This small file seems perfect once but needs a rename.
Thu, 18 Apr 2013 13:35:43 +0200 histedit-test: remove unnecessary graphlog extension
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 18 Apr 2013 13:35:43 +0200] rev 19034
histedit-test: remove unnecessary graphlog extension Graphlog is now in core.
Thu, 18 Apr 2013 13:34:43 +0200 histedit-test: drop skip logic for older mercurial version
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 18 Apr 2013 13:34:43 +0200] rev 19033
histedit-test: drop skip logic for older mercurial version We are shipped in core now.
Mon, 15 Apr 2013 18:57:04 -0300 hgweb: refactor checks for granting and revoking user permissions
Wagner Bruna <wbruna@softwareexpress.com.br> [Mon, 15 Apr 2013 18:57:04 -0300] rev 19032
hgweb: refactor checks for granting and revoking user permissions Provides an entry point for extensions implementing more complex authorization schemes. Original patch proposed by Markus Zapke-Gründemann.
Wed, 17 Apr 2013 14:38:02 -0500 check-code: add check for lock release order
Matt Mackall <mpm@selenic.com> [Wed, 17 Apr 2013 14:38:02 -0500] rev 19031
check-code: add check for lock release order
Wed, 17 Apr 2013 12:57:26 -0500 parsers: fix variable declaration position issue
Matt Mackall <mpm@selenic.com> [Wed, 17 Apr 2013 12:57:26 -0500] rev 19030
parsers: fix variable declaration position issue
Wed, 17 Apr 2013 21:06:48 +0400 zsh_completion: complete all files for `commit/backout --logfile`
Nikolaj Sjujskij <sterkrig@myopera.com> [Wed, 17 Apr 2013 21:06:48 +0400] rev 19029
zsh_completion: complete all files for `commit/backout --logfile` Up until now commit/backout `--logfile` option was completed only with *.txt-files. This requirement is a bit too strong (and is nowhere to be stated) so it's better to complete with all files. Stolen from zsh.git repo, c5fce37b changeset by Oliver Kiddle.
Tue, 16 Apr 2013 19:20:23 +0200 transplant: improve documentation
Mads Kiilerich <madski@unity3d.com> [Tue, 16 Apr 2013 19:20:23 +0200] rev 19028
transplant: improve documentation
Tue, 16 Apr 2013 19:18:38 +0200 transplant: clarify what --branch do - it has nothing to do with branches
Mads Kiilerich <madski@unity3d.com> [Tue, 16 Apr 2013 19:18:38 +0200] rev 19027
transplant: clarify what --branch do - it has nothing to do with branches --branch specifies heads and has nothing to do with named branches, and it only deals with topological branches to the same extent as all other DAG operations do.
Wed, 17 Apr 2013 10:25:14 +0200 import: inline checkexact function
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 17 Apr 2013 10:25:14 +0200] rev 19026
import: inline checkexact function We have a sngle call now, no need to make it a function.
Wed, 17 Apr 2013 10:22:28 +0200 import: factor out checkexact
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 17 Apr 2013 10:22:28 +0200] rev 19025
import: factor out checkexact The two calls are strictly identical. We can simply move it after the if/else clause.
Wed, 17 Apr 2013 03:41:08 +0200 amend: fix unlocking order - first lock then wlock
Mads Kiilerich <madski@unity3d.com> [Wed, 17 Apr 2013 03:41:08 +0200] rev 19024
amend: fix unlocking order - first lock then wlock
Wed, 17 Apr 2013 03:40:18 +0200 codingstyle: remove trailing spaces in various text files
Mads Kiilerich <madski@unity3d.com> [Wed, 17 Apr 2013 03:40:18 +0200] rev 19023
codingstyle: remove trailing spaces in various text files Better do it once than see random changes in diffs later.
Wed, 17 Apr 2013 03:39:36 +0200 tests: run check-code on Python files without .py extension
Mads Kiilerich <madski@unity3d.com> [Wed, 17 Apr 2013 03:39:36 +0200] rev 19022
tests: run check-code on Python files without .py extension
Tue, 16 Apr 2013 21:14:50 +0200 histedit: move outgoing processing to its own function
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 16 Apr 2013 21:14:50 +0200] rev 19021
histedit: move outgoing processing to its own function Every piece of code extracted from the main command is a win. We simplify changeset determination in the process. Parent ceases being a list before becoming a node. We how have a root variable containing a node all the time.
Tue, 16 Apr 2013 21:17:13 +0200 histedit: move all arguments checks to the beginning of the command
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 16 Apr 2013 21:17:13 +0200] rev 19020
histedit: move all arguments checks to the beginning of the command This changeset move all checks and raises related to arguments validation to the top of the file. This gathers all the logic in one place and clarifies the code doing actual work. This paves the way for splitting this gigantic function in separated functions. A `goal` variable is introduced in the process. It holds the action to be done by this invocation (new, continue or abort). An invalid invocation is found in the process (the new code is a bit stricter).
Tue, 16 Apr 2013 21:57:25 -0500 histedit-test: generalise --commands "-" usage
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 16 Apr 2013 21:57:25 -0500] rev 19019
histedit-test: generalise --commands "-" usage This is simpler than temporary file version. There some minor test changes since commit messages are no longer modifed. There is still some tests using --commands with a real file.
Tue, 16 Apr 2013 20:48:37 +0200 histedit: allow "-" as a command file
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 16 Apr 2013 20:48:37 +0200] rev 19018
histedit: allow "-" as a command file When "-" is specified as a command file, we read rules from stdin. Alter a single test to demo the behavior, but most of them could benefit from this. There is minor change in test output resulting from the fact we no longer change log messages.
Tue, 16 Apr 2013 16:58:25 +0200 histedit: properly handle --continue on empty fold
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 16 Apr 2013 16:58:25 +0200] rev 19017
histedit: properly handle --continue on empty fold When all changes from the fold have been dropped, the --continue code was confused. This changeset handles this case. The test for this case existed but was broken.
Tue, 16 Apr 2013 20:50:17 +0200 histedit-test: replace obscure python script by a plain file
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 16 Apr 2013 20:50:17 +0200] rev 19016
histedit-test: replace obscure python script by a plain file One of the tests uses a python script to edit the histedit commands on the fly. It was hard to read and likely to break. This is replaced by a plain command file. Doing so made me discover that the python script is incorrect. The "+6" regexp never matched because the revision number is wrong. This error is kept in the replacement for now. Fixing the histedit command triggers a traceback in histedit. A later changeset will fix the error and restore the intended test.
Tue, 16 Apr 2013 16:22:38 +0200 test: improve documentation of some histedit tests
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 16 Apr 2013 16:22:38 +0200] rev 19015
test: improve documentation of some histedit tests Each test section is clearly separated from the others and gains some helpful documentation.
Tue, 16 Apr 2013 23:24:52 +0200 test: use a lighter log style in histedit test
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 16 Apr 2013 23:24:52 +0200] rev 19014
test: use a lighter log style in histedit test The default log displays a log of information that is useless for histedit tests. Having a cleaner log help readability of those tests a lot. This does not change anything to the test semantic.
Tue, 16 Apr 2013 22:00:41 -0500 subrepo: add regression test for issue3870
Kevin Bullock <kbullock@ringworld.org> [Tue, 16 Apr 2013 22:00:41 -0500] rev 19013
subrepo: add regression test for issue3870
Tue, 16 Apr 2013 22:00:05 -0500 subrepo: clone of git sub-repository creates incorrect git branch (issue3870)
pozheg <pozheg@gmail.com> [Tue, 16 Apr 2013 22:00:05 -0500] rev 19012
subrepo: clone of git sub-repository creates incorrect git branch (issue3870) Mercurial handles git subrepos by incorrect way. If the mercurial repo has a git sub-repo and somebody started a new branch in the subrepo and push it into git, the next one who will clone the whole repo will get incorrect branch name in the git subrepo.
Tue, 16 Apr 2013 14:39:37 -0700 dispatch: print 'abort:' when a pre-command hook fails (BC)
Siddharth Agarwal <sid0@fb.com> [Tue, 16 Apr 2013 14:39:37 -0700] rev 19011
dispatch: print 'abort:' when a pre-command hook fails (BC) This also changes the exit code from whatever the hook returned to 255. This brings it in line with all the other hooks that abort.
Mon, 15 Apr 2013 23:31:56 +0200 largefiles: don't hash all largefiles when initializing a lfdirstate
Mads Kiilerich <madski@unity3d.com> [Mon, 15 Apr 2013 23:31:56 +0200] rev 19010
largefiles: don't hash all largefiles when initializing a lfdirstate The largefiles will be hashed on demand if necessary ... and sometimes it isn't necessary.
Tue, 16 Apr 2013 00:40:21 +0200 largefiles: use filechunkiter for iterating largefile when serving getlfile
Mads Kiilerich <madski@unity3d.com> [Tue, 16 Apr 2013 00:40:21 +0200] rev 19009
largefiles: use filechunkiter for iterating largefile when serving getlfile The default file iterator is line based and will give odd chunk sizes - often very short and relatively expensive.
Mon, 15 Apr 2013 23:37:43 +0200 largefiles: stat all largefiles in one batch before downloading
Mads Kiilerich <madski@unity3d.com> [Mon, 15 Apr 2013 23:37:43 +0200] rev 19008
largefiles: stat all largefiles in one batch before downloading This avoids a lot of expensive roundtrips to remote repositories ... but might be slightly slower for local operations. This will also change some aborts on missing files to warnings. That will in some situations make it possible to continue working on a repository with missing largefiles.
Mon, 15 Apr 2013 23:34:36 +0200 largefiles: 'put' should store 'source' file in under 'hash', also in localstore
Mads Kiilerich <madski@unity3d.com> [Mon, 15 Apr 2013 23:34:36 +0200] rev 19007
largefiles: 'put' should store 'source' file in under 'hash', also in localstore
Tue, 16 Apr 2013 04:35:10 +0200 largefiles: getlfile must hit end of HTTP chunked streams to reuse connections
Mads Kiilerich <madski@unity3d.com> [Tue, 16 Apr 2013 04:35:10 +0200] rev 19006
largefiles: getlfile must hit end of HTTP chunked streams to reuse connections We did read the exactly the right number of bytes from the response body. But if the response came in chunked encoding then that meant that the HTTP layer still hadn't read the last 0-sized chunk and expected the app layer to read more data from the stream. The app layer was however happy and sent another request which had to be sent on another HTTP connection while the old one was lingering until some other event closed the connection. Adding an extra read where we expect to hit the end of file makes the HTTP connection ready for reuse. This thus plugs a real socket leak. To distinguish HTTP from SSH we look at self's class, just like it is done in putlfile.
Tue, 16 Apr 2013 01:55:57 +0200 largefiles: drop limitreader, use filechunkiter limit
Mads Kiilerich <madski@unity3d.com> [Tue, 16 Apr 2013 01:55:57 +0200] rev 19005
largefiles: drop limitreader, use filechunkiter limit filechunkiter.close was a noop.
Tue, 16 Apr 2013 01:46:39 +0200 largefiles: move protocol conversion into getlfile and make it an iterable
Mads Kiilerich <madski@unity3d.com> [Tue, 16 Apr 2013 01:46:39 +0200] rev 19004
largefiles: move protocol conversion into getlfile and make it an iterable Avoid the intermediate limitreader and filechunkiter between getlfile and copyandhash - return the right protocol and put the complexity where it better can be managed.
Mon, 15 Apr 2013 23:47:04 +0200 largefiles: don't close the fd passed to store._getfile
Mads Kiilerich <madski@unity3d.com> [Mon, 15 Apr 2013 23:47:04 +0200] rev 19003
largefiles: don't close the fd passed to store._getfile
Mon, 15 Apr 2013 23:43:50 +0200 largefiles: remove blecch from lfutil.copyandhash - don't close the passed fd
Mads Kiilerich <madski@unity3d.com> [Mon, 15 Apr 2013 23:43:50 +0200] rev 19002
largefiles: remove blecch from lfutil.copyandhash - don't close the passed fd
Mon, 15 Apr 2013 23:43:44 +0200 largefiles: drop lfutil.blockstream - use filechunkiter like everybody else
Mads Kiilerich <madski@unity3d.com> [Mon, 15 Apr 2013 23:43:44 +0200] rev 19001
largefiles: drop lfutil.blockstream - use filechunkiter like everybody else The old chunk size is kept - just to avoid changing it.
Mon, 15 Apr 2013 23:35:43 +0200 largefiles: refactoring - use findfile in localstore._getfile
Mads Kiilerich <madski@unity3d.com> [Mon, 15 Apr 2013 23:35:43 +0200] rev 19000
largefiles: refactoring - use findfile in localstore._getfile
Mon, 15 Apr 2013 23:35:18 +0200 largefiles: refactoring - return hex from _getfile and copyandhash
Mads Kiilerich <madski@unity3d.com> [Mon, 15 Apr 2013 23:35:18 +0200] rev 18999
largefiles: refactoring - return hex from _getfile and copyandhash
Mon, 15 Apr 2013 23:32:33 +0200 largefiles: refactoring - create destination dir in lfutil.link
Mads Kiilerich <madski@unity3d.com> [Mon, 15 Apr 2013 23:32:33 +0200] rev 18998
largefiles: refactoring - create destination dir in lfutil.link
Tue, 09 Apr 2013 23:40:11 +0900 summary: clear "commonincoming" also if branches are different
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 09 Apr 2013 23:40:11 +0900] rev 18997
summary: clear "commonincoming" also if branches are different Before this patch, "commonincoming" calculated by "discovery.findcommonincoming()" is cleared, only if "default" URL without branch part (tail "#branch" of URL) differs from "default-push" URL without branch part. But common revisions in "commonincoming" calculated for a branch doesn't include ones for another branch, even if URLs without branch part are same. The result of "discovery.findcommonoutgoing()" invocation with such "commonincoming" becomes incorrect in some cases. This patch clears "commonincoming", also if branch part of "default" differs from one of "default-push". To avoid redundant looking up: - "ui.expandpath('default')" and "ui.expandpath('default-push', 'default')" are not compared directly, even though they contain branch information, because they are not yet normalized by "hg.parseurl()": tail "/" of path, for example - "commonincoming" is not cleared, if branch isn't specified in "default" URL, because such "commonincoming" contains common revisions for all branches This patch also tests "different path, same branch" pattern to check careless degrading around comparison between source and destination.
Tue, 09 Apr 2013 23:40:11 +0900 summary: make "incoming" information sensitive to branch in URL (issue3830)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 09 Apr 2013 23:40:11 +0900] rev 18996
summary: make "incoming" information sensitive to branch in URL (issue3830) Before this patch, "incoming" information of "hg summary --remote" is not sensitive to the branch specified in the URL of the destination repository, even though "hg pull"/"hg incoming" are so. Invocation of "discovery.findcommonincoming()" without "heads" argument treats revisions on branches other than the one specified in the URL as incoming ones unexpectedly. This patch looks head revisions, which are already detected by "hg.addbranchrevs()" from URL, up against "other" repository, and invokes "discovery.findcommonincoming()" with list of them as "heads" to limit calculation of incoming revisions.
Tue, 09 Apr 2013 23:40:10 +0900 histedit: make "hg histedit" sensitive to branch in URL
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 09 Apr 2013 23:40:10 +0900] rev 18995
histedit: make "hg histedit" sensitive to branch in URL Before this patch, "hg histedit" are not sensitive to the branch specified in the URL of the destination repository, even though "hg push"/"hg outgoing" are so: Invocation of "discovery.findcommonoutgoing()" without "onlyheads" argument treats revisions on branches other than the one specified in the URL as outgoing ones unexpectedly. This patch specifies list of head revisions, which are already detected by "hg.addbranchrevs()" from URL and looked up against local repository, as "onlyheads" to "discovery.findcommonoutgoing()" to limit calculation of outgoing revisions.
Tue, 09 Apr 2013 23:40:10 +0900 summary: make "outgoing" information sensitive to branch in URL (issue3829)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 09 Apr 2013 23:40:10 +0900] rev 18994
summary: make "outgoing" information sensitive to branch in URL (issue3829) Before this patch, "outgoing" information of "hg summary --remote" is not sensitive to the branch specified in the URL of the destination repository, even though "hg push"/"hg outgoing" are so: Invocation of "discovery.findcommonoutgoing()" without "onlyheads" argument treats revisions on branches other than the one specified in the URL as outgoing ones unexpectedly. This patch looks head revisions, which are already detected by "hg.addbranchrevs()" from URL, up against local repository, and invokes "discovery.findcommonoutgoing()" with list of them as "onlyheads" to limit calculation of outgoing revisions.
Fri, 29 Mar 2013 22:57:16 +0900 annotate: increase refcount of each revisions correctly (issue3841)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 29 Mar 2013 22:57:16 +0900] rev 18993
annotate: increase refcount of each revisions correctly (issue3841) Before this patch, refcount (managed in "needed") of parents of each revisions in "visit" is increased, only when parent is not annotated yet (examined by "p not in hist"). But this causes less refcount of the revision like "A" in the tree below ("A" is assumed as the second parent of "C"): A --- B --- C \ / \-----/ Steps of annotation for "C" in this case are shown below: 1. for "C" 1.1 increase refcount of "B" 1.2 increase refcount of "A" (=> 1) 1.3 defer annotation for "C" 2. for "A" 2.1 annotate for "A" (=> put result into "hist[A]") 2.2 clear "pcache[A]" ("pcache[A] = []") 3. for "B" 3.1 not increase refcount of "A", because "A not in hist" is False 3.2 annotate for "B" 3.3 decrease refcount of "A" (=> 0) 3.4 delete "hist[A]", even though "A" is still needed by "C" 3.5 clear "pcache[B]" 4. for "C", again 4.1 not increase refcount of "B", because "B not in hist" is False 4.2 increase refcount of "A" (=> 1) 4.3 defer annotation for "C" 5. for "A", again 5.1 annotate for "A" (=> put result into "hist[A]", again) 5.2 clear "pcache[A]" 6. for "C", once again 6.1 not increase refcount of "B", because "B not in hist" is False 6.2 not increase refcount of "A", because "A not in hist" is False 6.3 annotate for "C" 6.4 decrease refcount of "A", and delete "hist[A]" 6.5 decrease refcount of "B", and delete "hist[B]" 6.6 clear "pcache[C]" At step (5.1), annotation for "A" mis-recognizes that all lines are created at "A", because "pcache[A]" already cleared at step (2.2) prevents from scanning ancestors of "A". So, annotation for "C" or its descendants loses information about "A" or its ancestors. The root cause of this problem is that refcount of "A" is decreased at step (3.3), even though it isn't increased at step (3.1). To increase refcount correctly, this patch increases refcount of each parents of each revisions: - regardless of "p not in hist" or not, and - only once for each revisions in "visit" (by "not pcached") In fact, this problem should occur only on legacy repositories in which a filelog includes the merging between the revision and its ancestor (as the second parent), because: - tree is scanned in depth-first without such merging, revisions in "visit" refer different revisions as parent each other - recent Mercurial doesn't allow such merging changelog and manifest can include such merging someway, but filelogs can't, because "localrepository._filecommit()" converts such merging request to linear history. This patch tests merging cases below: these cases are from filelog of "mercurial/commands.py" in the repository of Mercurial itself. - both parents are same 10 --- 11 --- 12 \_/ filelogrev: changesetid: 10 00ea3613f82c 11 fc4a6e5b5812 12 4f802588cdfb - the second parent is also ancestor of the first one 37 --- 38 --- 39 --- 40 \________/ filelogrev: changesetid: 37 f8d56da6ac8f 38 38919e1c254d 39 d3400605d246 40 f06a4a3b86a7
Fri, 29 Mar 2013 22:57:15 +0900 annotate: reuse already calculated annotation
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 29 Mar 2013 22:57:15 +0900] rev 18992
annotate: reuse already calculated annotation Before this patch, annotation is re-calculated even if it is already calculated. This may cause unexpected annotation, because already cleared "pcache" ("pcache[f] = []") prevents from scanning ancestors. This patch reuses already calculated annotation if it is available. In fact, "reusable" situation should be seen only on legacy repositories in which a filelog include the merging between the revision and its ancestor, because: - tree is scanned in depth-first without such merging, annotation result should be released soon - recent Mercurial doesn't allow such merging changelog and manifest can include such merging someway, but filelogs can't, because "localrepository._filecommit()" converts such merging request to linear history.
Wed, 17 Apr 2013 00:29:54 +0400 log: fix behavior with empty repositories (issue3497)
Alexander Plavin <me@aplavin.ru> [Wed, 17 Apr 2013 00:29:54 +0400] rev 18991
log: fix behavior with empty repositories (issue3497) Make output in this special case consistent with general case one.
Tue, 16 Apr 2013 13:22:29 -0500 merge with crew
Matt Mackall <mpm@selenic.com> [Tue, 16 Apr 2013 13:22:29 -0500] rev 18990
merge with crew
Tue, 16 Apr 2013 10:08:20 -0700 revlog: don't cross-check ancestor result against Python version
Bryan O'Sullivan <bryano@fb.com> [Tue, 16 Apr 2013 10:08:20 -0700] rev 18989
revlog: don't cross-check ancestor result against Python version
Tue, 16 Apr 2013 10:08:20 -0700 parsers: a C implementation of the new ancestors algorithm
Bryan O'Sullivan <bryano@fb.com> [Tue, 16 Apr 2013 10:08:20 -0700] rev 18988
parsers: a C implementation of the new ancestors algorithm The performance of both the old and new Python ancestor algorithms depends on the number of revs they need to traverse. Although the new algorithm performs far better than the old when revs are numerically and topologically close, both algorithms become slow under other circumstances, taking up to 1.8 seconds to give answers in a Linux kernel repo. This C implementation of the new algorithm is a fairly straightforward transliteration. The only corner case of interest is that it raises an OverflowError if the number of GCA candidates found during the first pass is greater than 24, to avoid the dual perils of fixnum overflow and trying to allocate too much memory. (If this exception is raised, the Python implementation is used instead.) Performance numbers are good: in a Linux kernel repo, time for "hg debugancestors" on two distant revs (24bf01de7537 and c2a8808f5943) is as follows: Old Python: 0.36 sec New Python: 0.42 sec New C: 0.02 sec For a case where the new algorithm should perform well: Old Python: 1.84 sec New Python: 0.07 sec New C: measures as zero when using --time (This commit includes a paranoid cross-check to ensure that the Python and C implementations give identical answers. The above performance numbers were measured with that check disabled.)
Tue, 16 Apr 2013 10:08:19 -0700 revlog: choose a consistent ancestor when there's a tie
Bryan O'Sullivan <bryano@fb.com> [Tue, 16 Apr 2013 10:08:19 -0700] rev 18987
revlog: choose a consistent ancestor when there's a tie Previously, we chose a rev based on numeric ordering, which could cause "the same merge" in topologically identical but numerically different repos to choose different merge bases. We now choose the lexically least node; this is stable across different revlog orderings.
Tue, 16 Apr 2013 10:08:18 -0700 ancestor: a new algorithm that is faster for nodes near tip
Bryan O'Sullivan <bryano@fb.com> [Tue, 16 Apr 2013 10:08:18 -0700] rev 18986
ancestor: a new algorithm that is faster for nodes near tip Instead of walking all the way to the root of the DAG, we generate a set of candidate GCA revs, then figure out which ones will win the race to the root (usually without needing to traverse all the way to the root). In the common case of nodes that are close to each other in both revision number and topology, this is usually a big win: it makes "hg --time debugancestors" up to 9 times faster than the more general ancestor function when measured on heads of the linux-2.6 hg repo. Victory is not assured, however. The older function can still win by a large margin if one node is much closer to the root than the other, or by a much smaller amount if one is an ancestor of the other. For now, we've also got a small paranoid harness function that calls both ancestor functions on every input and ensures that they give equivalent answers. Even without the checker function, the old ancestor function needs to stay alive for the time being, as its generality is used by context.filectx.merge.
Tue, 16 Apr 2013 15:33:18 +0200 update: allow dirty update to foreground (successors)
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 16 Apr 2013 15:33:18 +0200] rev 18985
update: allow dirty update to foreground (successors) Update to "foreground" are no longer seen as cross branch update. "Foreground" are descendants or successors (or successors of descendants (or descendant of successors (etc))). This allows to update with uncommited changes that get automatically merged. This changeset is a small step forward. We want to allow dirty update to "background" (precursors) and takes obsolescence in account when finding the default update destination. But those requires deeper changes and will comes in later changesets.
Tue, 16 Apr 2013 15:16:33 +0200 obsolete: extract foreground computation from bookmark.validdest
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 16 Apr 2013 15:16:33 +0200] rev 18984
obsolete: extract foreground computation from bookmark.validdest This foreground logic will be reused by update logic.
Mon, 15 Apr 2013 17:10:58 +0200 destroyed: invalidate phraserevs cache in all case (issue3858)
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 15 Apr 2013 17:10:58 +0200] rev 18983
destroyed: invalidate phraserevs cache in all case (issue3858) When revisions are destroyed, the `phaserevs` cache becomes invalid in most case. This cache hold a `{rev => phase}` mapping and revision number most likely changed. Since 1c8e0d6ac3b0, we filter unknown phases' roots after changesets destruction. When some roots are filtered the `phaserevs` cache is invalidated. But not if none root where destroyed. We now invalidate the cache in all case filtered root or not. This bug was a bit tricky to reproduce as in most case we either: * rebase a set a draft changeset including root (phaserev invalidated) * strip tip-most changesets (no re-numbering of revision) Note that the invalidation of `phaserevs` are not strictly needed when only tip-most part of the history have been destroyed. But I do not expect the overhead to be significant.
Mon, 15 Apr 2013 01:59:11 +0200 largefiles: deprecate --all-largefiles for pull
Mads Kiilerich <madski@unity3d.com> [Mon, 15 Apr 2013 01:59:11 +0200] rev 18982
largefiles: deprecate --all-largefiles for pull The same can be achieved with --lfrev pulled() and we shouldn't advertise unnecessary command line options.
Mon, 15 Apr 2013 01:59:11 +0200 largefiles: implement pull --all-largefiles as a special case of --lfrev
Mads Kiilerich <madski@unity3d.com> [Mon, 15 Apr 2013 01:59:11 +0200] rev 18981
largefiles: implement pull --all-largefiles as a special case of --lfrev
Mon, 15 Apr 2013 01:59:11 +0200 largefiles: drop --cache-largefiles again
Mads Kiilerich <madski@unity3d.com> [Mon, 15 Apr 2013 01:59:11 +0200] rev 18980
largefiles: drop --cache-largefiles again This goes a step further than d69585a5c5c0 and backs out the unreleased --cache-largefiles option. The same can be achieved with --lfrev heads(pulled()) and we shouldn't introduce unnecessary command line options.
Mon, 15 Apr 2013 01:59:04 +0200 largefiles: introduce pulled() revset expression for use in --lfrev
Mads Kiilerich <madski@unity3d.com> [Mon, 15 Apr 2013 01:59:04 +0200] rev 18979
largefiles: introduce pulled() revset expression for use in --lfrev This provides a general way to do what already can be done with --all-largefiles and --cache-largefiles.
Mon, 15 Apr 2013 01:57:16 +0200 largefiles: introduce pull --lfrev option
Mads Kiilerich <madski@unity3d.com> [Mon, 15 Apr 2013 01:57:16 +0200] rev 18978
largefiles: introduce pull --lfrev option The revset will be evaluated after the changesets has been pulled, and missing largefiles from matching revisions will be pulled to the local caches. This in combination with revsets will make it possible to specify different strategies for pulling largefiles. The revset expressions used for this option might be quite complex and will probably be most useful from scripts or an alias ... but less complicated than configuring hooks.
Mon, 15 Apr 2013 01:54:43 +0200 largefiles: refactor overridepull internals
Mads Kiilerich <madski@unity3d.com> [Mon, 15 Apr 2013 01:54:43 +0200] rev 18977
largefiles: refactor overridepull internals
Mon, 15 Apr 2013 01:53:37 +0200 largefiles: introduce lfpull command for pulling missing largefiles
Mads Kiilerich <madski@unity3d.com> [Mon, 15 Apr 2013 01:53:37 +0200] rev 18976
largefiles: introduce lfpull command for pulling missing largefiles
Mon, 15 Apr 2013 01:46:10 +0200 largefiles: update help
Mads Kiilerich <madski@unity3d.com> [Mon, 15 Apr 2013 01:46:10 +0200] rev 18975
largefiles: update help Some clarifications, and some clean-up after --cache-largefiles was introduced.
Mon, 15 Apr 2013 01:43:31 +0200 largefiles: fix cat of non-largefiles from subdirectory
Mads Kiilerich <madski@unity3d.com> [Mon, 15 Apr 2013 01:43:31 +0200] rev 18974
largefiles: fix cat of non-largefiles from subdirectory We were calling back to the original commands.cat from inside the walk loop that handled and filtered out largefiles. That did however happen with file paths relative to repo root and the original cat would fail when it applied its own walk and match on top of that. Instead we now duplicate and modify the code from commands.cat and patch it to handle both normal and largefiles. A change in test output shows that this also makes the exit code with largefiles consistent with the normal one in the case where one of several specified files are missing. This also fixes the combination of --output and largefiles.
Mon, 15 Apr 2013 01:41:49 +0200 largefiles: don't store whole file in memory for 'cat'
Mads Kiilerich <madski@unity3d.com> [Mon, 15 Apr 2013 01:41:49 +0200] rev 18973
largefiles: don't store whole file in memory for 'cat'
Tue, 16 Apr 2013 13:55:38 +0200 mergetools: rename 'base' to 'merged' in meld
ronvoe12249 <ronny.voelker@elaxy.com> [Tue, 16 Apr 2013 13:55:38 +0200] rev 18972
mergetools: rename 'base' to 'merged' in meld This makes it clear which panel is the target of the merge operation.
Thu, 21 Feb 2013 14:49:25 +0100 mergetools: avoid losing the merged version with meld
ronvoe12249 <ronny.voelker@elaxy.com> [Thu, 21 Feb 2013 14:49:25 +0100] rev 18971
mergetools: avoid losing the merged version with meld Add -o $output. When using Meld as intended (merge from left and right into the center panel), the merged version is written to the wrong file without this option ($base, a temporary file, which is ignored by Mercurial). Add meld.check=changed as a secondary safety net.
Tue, 16 Apr 2013 09:44:29 -0500 templatekw: add default styles for hybrid types (issue3887)
Matt Mackall <mpm@selenic.com> [Tue, 16 Apr 2013 09:44:29 -0500] rev 18970
templatekw: add default styles for hybrid types (issue3887) This allows elements like file_copies to be printed as 'name (source)' when used with join.
Wed, 10 Apr 2013 02:27:35 +0900 largefiles: improve repo wrapping detection
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 10 Apr 2013 02:27:35 +0900] rev 18969
largefiles: improve repo wrapping detection Before this patch, repo wrapping detection in "reposetup()" of largefiles can detect only limited repo wrapping: replacing target functions by another one named as "wrap". So, it can't detect repo wrapping even in recommended style: replacing "__class__" of repo by derived class. This patch can detect repo wrapping in both styles below: - replacing "__class__" of repo by derived class (recommended style): class derived(repo.__class__): def push(self, *args, **kwargs): return super(derived, self).push(*args, **kwargs) repo.__class__ = derived - replacing function of repo by another one (not recommended style): orgpush = repo.push def push(*args, **kwargs): return orgpush(*args, **kwargs) repo.push = push
Thu, 21 Mar 2013 23:27:37 +0100 hgweb: respond HTTP_NOT_FOUND when an archive request does not match any files
Angel Ezquerra <angel.ezquerra@gmail.com> [Thu, 21 Mar 2013 23:27:37 +0100] rev 18968
hgweb: respond HTTP_NOT_FOUND when an archive request does not match any files
Thu, 21 Mar 2013 22:09:15 +0100 archive: raise error.Abort if the file pattern matches no files
Angel Ezquerra <angel.ezquerra@gmail.com> [Thu, 21 Mar 2013 22:09:15 +0100] rev 18967
archive: raise error.Abort if the file pattern matches no files Note that we could raise this exception even if no pattern were specified, but the revision contained no files. However this should not happen in practice since in that case commands.py/archive would exit earlier with an "no working directory: please specify a revision" error message instead.
Sat, 09 Feb 2013 14:22:52 -0500 ui: add 'force' parameter to traceback() to override the current print setting
Matt Harbison <matt_harbison@yahoo.com> [Sat, 09 Feb 2013 14:22:52 -0500] rev 18966
ui: add 'force' parameter to traceback() to override the current print setting This will allow a current traceback.print_exc() call in dispatch to be replaced with ui.traceback() even if --traceback was not given on the command line.
Sat, 09 Feb 2013 14:15:34 -0500 ui: add support for fully printing chained exception stacks in ui.traceback()
Matt Harbison <matt_harbison@yahoo.com> [Sat, 09 Feb 2013 14:15:34 -0500] rev 18965
ui: add support for fully printing chained exception stacks in ui.traceback() Currently, only SubrepoAbort has a cause chained to it.
Wed, 06 Feb 2013 22:54:09 -0500 subrepo: chain the original exception to SubrepoAbort
Matt Harbison <matt_harbison@yahoo.com> [Wed, 06 Feb 2013 22:54:09 -0500] rev 18964
subrepo: chain the original exception to SubrepoAbort The tracebacks in subrepos are truncated at the point where the original exception is caught and SubrepoAbort is raised in its place since 9e3910db4e78. That hides the most relevant subrepo methods when an error occurs. Python 2.x doesn't support chaining exceptions, so it is manually done here for manual printing later.
Mon, 15 Apr 2013 01:41:47 +0200 debugrebuildstate: rename to debugrebuilddirstate
Mads Kiilerich <madski@unity3d.com> [Mon, 15 Apr 2013 01:41:47 +0200] rev 18963
debugrebuildstate: rename to debugrebuilddirstate There is a lot of state, but this command is for rebuilding the dirstate.
Mon, 15 Apr 2013 01:41:27 +0200 debugstate: rename to debugdirstate
Mads Kiilerich <madski@unity3d.com> [Mon, 15 Apr 2013 01:41:27 +0200] rev 18962
debugstate: rename to debugdirstate There is a lot of state, but this command is for debugging the dirstate.
Mon, 15 Apr 2013 01:39:02 +0200 debugrebuildstate: clarify that rev can't be specified without -r
Mads Kiilerich <madski@unity3d.com> [Mon, 15 Apr 2013 01:39:02 +0200] rev 18961
debugrebuildstate: clarify that rev can't be specified without -r -r has a default value of '' in the command line. The function default value of 'tip' is thus never used and any attempt at specifying revisions without -r will fail. It seems like then intended behavior was that 'hg debugrebuildstate' without any parameters should set the parents to tip. That would be very confusing now when the command primarily is used to recover from incorrect stat info. It is apparently undocumented that '' is the same as '.' ... unless it is passed in a place where revsets are used.
Mon, 15 Apr 2013 01:37:23 +0200 check-code: check txt files for trailing whitespace
Mads Kiilerich <madski@unity3d.com> [Mon, 15 Apr 2013 01:37:23 +0200] rev 18960
check-code: check txt files for trailing whitespace
Mon, 15 Apr 2013 01:37:23 +0200 check-code: catch trailing space in comments
Mads Kiilerich <madski@unity3d.com> [Mon, 15 Apr 2013 01:37:23 +0200] rev 18959
check-code: catch trailing space in comments
Mon, 15 Apr 2013 01:37:23 +0200 spelling: fix typos and spelling errors
Mads Kiilerich <madski@unity3d.com> [Mon, 15 Apr 2013 01:37:23 +0200] rev 18958
spelling: fix typos and spelling errors
Thu, 11 Apr 2013 14:54:18 +0200 wireproto: clarify cryptic 'remote: unsynced changes' error message on push
Mads Kiilerich <madski@unity3d.com> [Thu, 11 Apr 2013 14:54:18 +0200] rev 18957
wireproto: clarify cryptic 'remote: unsynced changes' error message on push The message was not very much to the point and did not in any way help an ordinary user. 'repository changed while preparing/uploading bundle - please try again' is more correct, gives the user some understanding of what is going on, and tells how to 'recover' from the situation. The 'bundle' aspect could be seen as an implementation detail that shouldn't be mentioned, but I think it helps giving an exact error message. The message could still leave the user wondering why Mercurial doesn't lock the repo and how unsafe it thus is. Explaining that is however too much detail.
Mon, 11 Feb 2013 00:43:12 +0100 export: export working directory parent by default
Mads Kiilerich <mads@kiilerich.com> [Mon, 11 Feb 2013 00:43:12 +0100] rev 18956
export: export working directory parent by default A common usecase for export is to preview the patch that will be patchbombed or to see what changed in a revision found by bisect. Showing the working directory parent is thus a useful and obvious default.
Wed, 10 Apr 2013 13:12:24 +0200 commit: allow closing "non-head" changesets
Mads Kiilerich <madski@unity3d.com> [Wed, 10 Apr 2013 13:12:24 +0200] rev 18955
commit: allow closing "non-head" changesets Backout acd61dc44a39. The changeset prevented closing non-head changesets but did not provide any rationale or test case and I don't see what value it adds. Users might have their reasons to commit something anywhere - and close it immediately. And contrary to the comment that is removed: The topo heads set is _not_ included in the branch heads set of the current branch. It do not include closed topological heads. The change thus prevented closing commits on top of closing commits. A valid usecase for that is to merge closed heads to reduce the number of topological heads. The only existing test coverage for this is the failing double close in test-revset.t. It was added in 3cc2e34d7a7d and seems to not be intentional.
Wed, 13 Jun 2012 23:06:34 +0200 record: ignore trailing content when parsing patches - introduce 'other' lines
Mads Kiilerich <mads@kiilerich.com> [Wed, 13 Jun 2012 23:06:34 +0200] rev 18954
record: ignore trailing content when parsing patches - introduce 'other' lines This makes record work more like import which ignores for instance mail footers in a patch file. This also makes it possible for TortoiseHg to preview unapplied patches containing such footers.
Thu, 11 Apr 2013 19:03:33 +0200 record: abort on malformed patches instead of crashing
Mads Kiilerich <madski@unity3d.com> [Thu, 11 Apr 2013 19:03:33 +0200] rev 18953
record: abort on malformed patches instead of crashing
Mon, 15 Apr 2013 01:22:15 +0900 localrepo: use "vfs.rename()" instead of "util.rename()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 15 Apr 2013 01:22:15 +0900] rev 18952
localrepo: use "vfs.rename()" instead of "util.rename()" This patch makes "_journalfiles()" return a list of pairs of journal file and corresponded vfs instance instead of a list of journal files in full path, to use "vfs.rename()" instead of "util.rename()" in "aftertrans()". "undofiles()" still returns a list of undo files in full path, because "repair.strip()" expects such list. It'll be also made to return a list of pairs of undo file and corresponded vfs at vfs migration for "repair.strip()" in the near future.
Mon, 15 Apr 2013 01:22:15 +0900 localrepo: use "vfs.setflags()" instead of "util.setflags()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 15 Apr 2013 01:22:15 +0900] rev 18951
localrepo: use "vfs.setflags()" instead of "util.setflags()"
Mon, 15 Apr 2013 01:22:15 +0900 localrepo: use "vfs.readlink()" instead of "os.readlink()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 15 Apr 2013 01:22:15 +0900] rev 18950
localrepo: use "vfs.readlink()" instead of "os.readlink()"
Mon, 15 Apr 2013 01:22:15 +0900 localrepo: use "vfs.islink()" instead of "os.path.islink()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 15 Apr 2013 01:22:15 +0900] rev 18949
localrepo: use "vfs.islink()" instead of "os.path.islink()"
Mon, 15 Apr 2013 01:22:15 +0900 localrepo: use "vfs.rename()" instead of "util.rename()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 15 Apr 2013 01:22:15 +0900] rev 18948
localrepo: use "vfs.rename()" instead of "util.rename()"
Mon, 15 Apr 2013 01:22:15 +0900 localrepo: use "vfs.exists()" instead of "os.path.exists()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 15 Apr 2013 01:22:15 +0900] rev 18947
localrepo: use "vfs.exists()" instead of "os.path.exists()"
Mon, 15 Apr 2013 01:22:15 +0900 localrepo: use vfs instead of "os.path.*" in sharedpath checking
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 15 Apr 2013 01:22:15 +0900] rev 18946
localrepo: use vfs instead of "os.path.*" in sharedpath checking In the point of view of efficiency, "vfs" instance created in this patch should be passed to and reuse in "store.store()" invocation just after patched code block, because "store" object is initialized by vfs created with "self.sharedpath". eBut to focus just on migration from direct file I/O API accessing to vfs, this patch uses created vfs as temporary one. Refactoring around "store.store()" invocation will be done in the future.
Mon, 15 Apr 2013 01:22:15 +0900 vfs: split "expand" into "realpath"/"expandpath" to apply each separately
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 15 Apr 2013 01:22:15 +0900] rev 18945
vfs: split "expand" into "realpath"/"expandpath" to apply each separately Before this patch, vfs constructor applies both "util.expandpath()" and "os.path.realpath()" on "base" path, if "expand" is True. This patch splits it into "realpath" and "expandpath", to apply each functions separately: this splitting can allow to use vfs also where one of each is not needed.
Fri, 18 Jan 2013 15:54:09 +0100 unionrepo: read-only operations on a union of two localrepos
Mads Kiilerich <madski@unity3d.com> [Fri, 18 Jan 2013 15:54:09 +0100] rev 18944
unionrepo: read-only operations on a union of two localrepos unionrepo is just like bundlerepo without bundles. The implementation is very similar to bundlerepo, but I don't see any obvious way to generalize it. Some most obvious use cases for this would be log and diff across local repos, as a kind of preview of pulls, for instance: $ hg -R union:repo1+repo2 heads $ hg -R union:repo1+repo2 log -r REPO1REV -r REPO2REV $ hg -R union:repo1+repo2 log -r '::REPO1REV-::REPO2REV' $ hg -R union:repo1+repo2 log -r 'ancestor(REPO1REV,REPO2REV)' $ hg -R union:repo1+repo2 diff -r REPO1REV -r REPO2REV This is going to be used in RhodeCode, and Bitbucket already uses something similar. Having a core implementation would be beneficial.
Mon, 15 Apr 2013 23:52:57 +0900 subrepo: fix exception on revert when "all" option is omitted
Yuya Nishihara <yuya@tcha.org> [Mon, 15 Apr 2013 23:52:57 +0900] rev 18943
subrepo: fix exception on revert when "all" option is omitted Since fafdff7e9c43, backout does not set opts['all'], which causes KeyError at hgsubrepo.revert.
Sun, 14 Apr 2013 19:05:19 -0500 histedit: update tests for new intervention framework
Matt Mackall <mpm@selenic.com> [Sun, 14 Apr 2013 19:05:19 -0500] rev 18942
histedit: update tests for new intervention framework
Fri, 08 Mar 2013 21:50:27 +0100 test-subrepo: add tests for subrepo "storeclean" checks
Angel Ezquerra <angel.ezquerra@gmail.com> [Fri, 08 Mar 2013 21:50:27 +0100] rev 18941
test-subrepo: add tests for subrepo "storeclean" checks These tests verify that subrepos are not pushed when their store is clean versus a given target repository.
Sat, 16 Feb 2013 01:21:40 +0100 subrepo: do not push mercurial subrepos whose store is clean
Angel Ezquerra <angel.ezquerra@gmail.com> [Sat, 16 Feb 2013 01:21:40 +0100] rev 18940
subrepo: do not push mercurial subrepos whose store is clean This patch stops mercurial from pushing unmodified subrepos. An unmodified subrepo is one whose store is "clean" versus a given target subrepo. Note that subrepos may have a clean store versus a target repo but not versus another. This patch handles this scenario by individually keeping track of the state of the store versus all push targets. Tests will be added on the following revision.
Sat, 16 Feb 2013 01:18:53 +0100 subrepo: implement "storeclean" method for mercurial subrepos
Angel Ezquerra <angel.ezquerra@gmail.com> [Sat, 16 Feb 2013 01:18:53 +0100] rev 18939
subrepo: implement "storeclean" method for mercurial subrepos The mercurial subrepo "storeclean" method works by calculating a "store hash" of the repository state and comparing it to a cached store hash. The store hash is always cached when the repository is cloned from or pushed to a remote repository, but also on pull as long as the repository already had a clean store. If the hashes match the store is "clean" versus the selected repository. Note that this method is currenty unused, but it will be used by a later patch. The store hash is calculated by hashing several key repository files, such as the bookmarks file the phaseroots file and the changelog. Note that the hash comparison is done file by file so that we can exit early if a pair of hashes do not match. Also the hashes are calculated starting with the file that is most likely to be smaller upto the file that is more likely to be larger.
Sat, 16 Feb 2013 11:44:13 +0100 util: add notindexed optional parameter to makedirs function
Angel Ezquerra <angel.ezquerra@gmail.com> [Sat, 16 Feb 2013 11:44:13 +0100] rev 18938
util: add notindexed optional parameter to makedirs function
Sat, 16 Feb 2013 01:11:20 +0100 subrepo: introduce storeclean method
Angel Ezquerra <angel.ezquerra@gmail.com> [Sat, 16 Feb 2013 01:11:20 +0100] rev 18937
subrepo: introduce storeclean method Currently this method is unused and it is not implemented for any specific subrepo type (it always returns False). It receives a remote repository path because a repository may have a clean store versus a given repository but not versus another.
Sat, 16 Feb 2013 00:07:00 +0100 subrepo: introduce storeclean helper functions
Angel Ezquerra <angel.ezquerra@gmail.com> [Sat, 16 Feb 2013 00:07:00 +0100] rev 18936
subrepo: introduce storeclean helper functions These helper functions are currently unused but will be used to implement the cleanstore method that will be introduced later.
Fri, 08 Feb 2013 16:17:46 -0600 dispatch: exit with status 1 for an InterventionRequired exception (bc)
Augie Fackler <raf@durin42.com> [Fri, 08 Feb 2013 16:17:46 -0600] rev 18935
dispatch: exit with status 1 for an InterventionRequired exception (bc)
Fri, 08 Feb 2013 16:27:49 -0600 histedit: switch from util.Abort to util.InterventionRequired where appropriate (bc)
Augie Fackler <raf@durin42.com> [Fri, 08 Feb 2013 16:27:49 -0600] rev 18934
histedit: switch from util.Abort to util.InterventionRequired where appropriate (bc)
Fri, 08 Feb 2013 16:27:59 -0600 rebase: switch from util.Abort to util.InterventionRequired where appropriate (bc)
Augie Fackler <raf@durin42.com> [Fri, 08 Feb 2013 16:27:59 -0600] rev 18933
rebase: switch from util.Abort to util.InterventionRequired where appropriate (bc)
Fri, 08 Feb 2013 16:28:24 -0600 dispatch: catch InterventionRequired and print the message with no prefix
Augie Fackler <raf@durin42.com> [Fri, 08 Feb 2013 16:28:24 -0600] rev 18932
dispatch: catch InterventionRequired and print the message with no prefix
Fri, 08 Feb 2013 14:26:03 -0600 error: introduce new InterventionRequired exception
Augie Fackler <raf@durin42.com> [Fri, 08 Feb 2013 14:26:03 -0600] rev 18931
error: introduce new InterventionRequired exception Future changes will use this type instead of util.Abort for signalling the user that intervention is required, as in some rebase and histedit aborts.
Fri, 12 Apr 2013 19:48:07 -0700 util: remove unreachable code
Bryan O'Sullivan <bryano@fb.com> [Fri, 12 Apr 2013 19:48:07 -0700] rev 18930
util: remove unreachable code Found by Cython.
Fri, 12 Apr 2013 19:33:48 -0700 util: remove no-op assignment
Bryan O'Sullivan <bryano@fb.com> [Fri, 12 Apr 2013 19:33:48 -0700] rev 18929
util: remove no-op assignment Found by Cython.
Fri, 12 Apr 2013 18:49:14 -0700 merge more evolve stuff away (what?)
Bryan O'Sullivan <bryano@fb.com> [Fri, 12 Apr 2013 18:49:14 -0700] rev 18928
merge more evolve stuff away (what?)
Fri, 12 Apr 2013 18:48:02 -0700 synthrepo: add missing import of sys
Bryan O'Sullivan <bryano@fb.com> [Fri, 12 Apr 2013 18:48:02 -0700] rev 18927
synthrepo: add missing import of sys Found using Cython.
Fri, 12 Apr 2013 18:44:22 -0700 transplant: pass source through to recover
Bryan O'Sullivan <bryano@fb.com> [Fri, 12 Apr 2013 18:44:22 -0700] rev 18926
transplant: pass source through to recover
Fri, 12 Apr 2013 17:25:27 -0700 repoview: remove more unreachable code
Bryan O'Sullivan <bryano@fb.com> [Fri, 12 Apr 2013 17:25:27 -0700] rev 18925
repoview: remove more unreachable code Found using Cython.
Fri, 12 Apr 2013 18:35:26 -0700 merge away some failed evolve fat-fingering
Bryan O'Sullivan <bryano@fb.com> [Fri, 12 Apr 2013 18:35:26 -0700] rev 18924
merge away some failed evolve fat-fingering
Fri, 12 Apr 2013 17:35:56 -0700 pager: add missing imports of errno and shlex
Bryan O'Sullivan <bryano@fb.com> [Fri, 12 Apr 2013 17:35:56 -0700] rev 18923
pager: add missing imports of errno and shlex Found using Cython.
Fri, 12 Apr 2013 17:33:24 -0700 largefiles: quiet (and document) undefined name errors (issue3886)
Bryan O'Sullivan <bryano@fb.com> [Fri, 12 Apr 2013 17:33:24 -0700] rev 18922
largefiles: quiet (and document) undefined name errors (issue3886) These names were found using Cython; I was completely puzzled until I searched the rest of the tree. It's icky to mess with another module's namespace, but ickier yet to do so without a comment :-)
Fri, 12 Apr 2013 17:27:09 -0700 color: add missing import of error
Bryan O'Sullivan <bryano@fb.com> [Fri, 12 Apr 2013 17:27:09 -0700] rev 18921
color: add missing import of error Found using Cython.
Fri, 12 Apr 2013 17:20:09 -0700 pvec: use the correct name for an identifier
Bryan O'Sullivan <bryano@fb.com> [Fri, 12 Apr 2013 17:20:09 -0700] rev 18920
pvec: use the correct name for an identifier Found using Cython.
Fri, 12 Apr 2013 17:18:52 -0700 repoview: remove unreachable code
Bryan O'Sullivan <bryano@fb.com> [Fri, 12 Apr 2013 17:18:52 -0700] rev 18919
repoview: remove unreachable code Found using Cython.
Fri, 12 Apr 2013 17:20:09 -0700 pvec: use the correct name for an identifier
Bryan O'Sullivan <bryano@fb.com> [Fri, 12 Apr 2013 17:20:09 -0700] rev 18918
pvec: use the correct name for an identifier Found using Cython.
Fri, 12 Apr 2013 17:18:52 -0700 repoview: remove unreachable code
Bryan O'Sullivan <bryano@fb.com> [Fri, 12 Apr 2013 17:18:52 -0700] rev 18917
repoview: remove unreachable code Found using Cython.
Fri, 12 Apr 2013 17:17:35 -0700 mail: add missing import of sys
Bryan O'Sullivan <bryano@fb.com> [Fri, 12 Apr 2013 17:17:35 -0700] rev 18916
mail: add missing import of sys Found using Cython.
Fri, 12 Apr 2013 17:17:05 -0700 statichttprepo: add missing import of os
Bryan O'Sullivan <bryano@fb.com> [Fri, 12 Apr 2013 17:17:05 -0700] rev 18915
statichttprepo: add missing import of os Found using Cython.
Fri, 12 Apr 2013 17:16:37 -0700 worker: add missing import of errno
Bryan O'Sullivan <bryano@fb.com> [Fri, 12 Apr 2013 17:16:37 -0700] rev 18914
worker: add missing import of errno Found using Cython.
Fri, 12 Apr 2013 16:01:18 -0700 histedit: support editing of the first commit (issue3767)
Bryan O'Sullivan <bryano@fb.com> [Fri, 12 Apr 2013 16:01:18 -0700] rev 18913
histedit: support editing of the first commit (issue3767)
(0) -10000 -1536 +1536 +10000 +30000 tip