Wed, 26 Sep 2012 00:56:27 +0200 run-tests: allow test output lines to be terminated with \r in addition to \n
Mads Kiilerich <mads@kiilerich.com> [Wed, 26 Sep 2012 00:56:27 +0200] rev 17742
run-tests: allow test output lines to be terminated with \r in addition to \n str.splitlines could not be used in 546c76e5a3e6, but _now_ we would like to have lines with other line endings than \n. Some fine occurences of (esc) markup of \r is replaced with multiple lines ending with '\r (no-eol) (esc)'. That is no win but also no significant loss. This change makes it possible to drop filtercr.py - _that_ is a win.
Wed, 10 Oct 2012 01:37:53 +0200 run-tests: use more explicit criteria for detecting no-eol
Mads Kiilerich <mads@kiilerich.com> [Wed, 10 Oct 2012 01:37:53 +0200] rev 17741
run-tests: use more explicit criteria for detecting no-eol Preparing for the situation where there could be unsalted lines not terminated with \n.
Wed, 03 Oct 2012 13:19:53 -0700 branchcache: fetch source branchcache during clone (issue3378)
Tomasz Kleczek <tomasz.kleczek@fb.com> [Wed, 03 Oct 2012 13:19:53 -0700] rev 17740
branchcache: fetch source branchcache during clone (issue3378) Recomputing branch cache on clone may be expensive, therefore if possible we fetch it along with the data. - If the clone is performed by copying, we just copy branchcache file. - If we localrepo.clone and streaming then we follow the procedure: 1. Fetch branchmap from the remote 2. Fetch the actual data. 3. Find the latest rev within branch heads (tip at the time of branchmap fetch) 4. Update the cache for the revs in [remotetip+1, tip] This way we ensure that the branchcache is correct even in case of races with commits.
Wed, 10 Oct 2012 01:30:45 +0200 run-tests: drop unused enumerate
Mads Kiilerich <mads@kiilerich.com> [Wed, 10 Oct 2012 01:30:45 +0200] rev 17739
run-tests: drop unused enumerate
Wed, 10 Oct 2012 01:29:56 +0200 spelling: fix minor spell checker issues
Mads Kiilerich <mads@kiilerich.com> [Wed, 10 Oct 2012 01:29:56 +0200] rev 17738
spelling: fix minor spell checker issues
Tue, 09 Oct 2012 12:47:54 +0200 test-dirstate: remove test with date larger than 32 bit
Thomas Arendsen Hein <thomas@intevation.de> [Tue, 09 Oct 2012 12:47:54 +0200] rev 17737
test-dirstate: remove test with date larger than 32 bit When running on a 32bit system or with a touch command that only accepts 32bit dates, the following happened: $ touch -t 250001011200 a touch: invalid date format `250001011200'
Tue, 09 Oct 2012 09:45:44 +0200 merge with crew-stable
Thomas Arendsen Hein <thomas@intevation.de> [Tue, 09 Oct 2012 09:45:44 +0200] rev 17736
merge with crew-stable
Mon, 08 Oct 2012 00:19:30 +0200 bookmarks: deactivate current bookmark if no name is given stable
Kevin Bullock <kbullock@ringworld.org> [Mon, 08 Oct 2012 00:19:30 +0200] rev 17735
bookmarks: deactivate current bookmark if no name is given f57f891eb88e added this help text to hg bookmark: If no NAME is given, the current active bookmark will be marked inactive. But that was never actually the case. Originally spotted by Idan Kamara <idankk86@gmail.com>.
Mon, 08 Oct 2012 15:57:21 -0700 contrib: add a commit synthesizer for reproducing scaling problems
Bryan O'Sullivan <bryano@fb.com> [Mon, 08 Oct 2012 15:57:21 -0700] rev 17734
contrib: add a commit synthesizer for reproducing scaling problems This adds two new commands: - analyze examines an existing repo and writes out a statistical description of its properties that contains no identifying information. - synthesize creates new commits based on the description generated by analyze. The intention is that a repo constructed using synthesize will have properties that are vaguely statistically similar to the originating repo, but entirely random content. This can be useful for forecasting performance as a repo grows, and for developers who want to find bottlenecks in proprietary repos to which they do not have access.
Mon, 08 Oct 2012 17:50:42 -0500 dirstate: handle large dates and times with masking (issue2608)
Matt Mackall <mpm@selenic.com> [Mon, 08 Oct 2012 17:50:42 -0500] rev 17733
dirstate: handle large dates and times with masking (issue2608) Dates and times that are outside the 31-bit signed range are now compared modulo 2^31. This should prevent it from behaving badly with very large files or corrupt dates while still having a high probability of detecting changes.
Tue, 07 Aug 2012 11:04:41 +0200 exewrapper: adapt for legacy HackableMercurial
Adrian Buehlmann <adrian@cadifra.com> [Tue, 07 Aug 2012 11:04:41 +0200] rev 17732
exewrapper: adapt for legacy HackableMercurial We give up using CPython's PythonXX.lib import libraries (and Python.h), and now "manually" call the LoadLibrary() / GetProcAddress() Windows API's instead. If there is a "hg-python" subdirectory (the canonical directory name for HackableMercurial's private Python copy) next to the hg.exe, we load the pythonXX.dll from there (feeding an absolute path to LoadLibrary) and we set Py_SetPythonHome() to that directory, so that the Python libraries are used from there as well. If there is no "hg-python" subdir found next to the hg.exe, we do not feed an absolute path to LoadLibrary. This continues to allow to find a globally installed Python DLL, as before this change - that is, without having to edit, delete, rename, or configure anything. Note that the hg.exe built is still bound to a *specific* major version of the pythonXX.dll (e.g. python27.dll). What version it is, is inferred from the version of the python interpreter that was used when calling setup.py. For example C:\python27_x86\python.exe setup.py build_hgexe -i --compiler=mingw32 builds a hg.exe (using the mingw32 tool chain) bound to (x86) Python 2.7. And C:\python27_x86\python.exe setup.py build_hgexe -i builds the same using the Microsoft C compiler/linker. (Note that the Microsoft toolchain combined with x64 CPython can be used to build an x64 hg.exe.) setup.py is changed to write the name of the pythonlib into the generated header file "mercurial/hgpythonlib.h", which is #included by exewrapper.c. For a Python 2.7 build, it for example contains: #define HGPYTHONLIB "python27" exewrapper.c then uses HGPYTHONLIB for the name of the Python dll to load. We don't want to track mercurial/hgpythonlib.h, so we add it to .hgignore.
Mon, 08 Oct 2012 16:46:11 -0500 store: restore getsize method
Matt Mackall <mpm@selenic.com> [Mon, 08 Oct 2012 16:46:11 -0500] rev 17731
store: restore getsize method This method was created for subclassing.
Mon, 01 Oct 2012 02:44:46 +0200 mq: update bookmarks during qrefresh
David Soria Parra <dsp@php.net> [Mon, 01 Oct 2012 02:44:46 +0200] rev 17730
mq: update bookmarks during qrefresh Bookmarks are updated during qpop and qpush, but they are not updated during qrefresh. This behaviour makes it hard to work on an evolving changeset at the head of a branch. qrefresh should update all bookmarks that point to the refreshed commit with the new nodeid.
Mon, 08 Oct 2012 16:21:24 -0500 templater: drop redundant return in _flatten
Matt Mackall <mpm@selenic.com> [Mon, 08 Oct 2012 16:21:24 -0500] rev 17729
templater: drop redundant return in _flatten
Tue, 09 Oct 2012 01:41:55 +0900 store: invoke "os.path.isdir()" via vfs
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 09 Oct 2012 01:41:55 +0900] rev 17728
store: invoke "os.path.isdir()" via vfs This patch invokes "os.path.isdir()" via "rawvfs" object to avoid filename encoding, because the path passed to "os.path.isdir()" shouldn't be encoded. This patch newly adds "self.rawvfs" field only to "basicstore" and "encodedstore", because "fncachestore" has "self.rawvfs" already.
Tue, 09 Oct 2012 01:41:55 +0900 store: replace invocation of "getsize()" by "vfs.stat()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 09 Oct 2012 01:41:55 +0900] rev 17727
store: replace invocation of "getsize()" by "vfs.stat()" This patch replaces invocation of "getsize()", which calls "os.stat()" internally, by "vfs.stat()". The object referred by "self.rawvfs" is used internally by "_fncachevfs" and doesn't encode filename for each file API invocation. This patch invokes "os.stat()" via "self.rawvfs" to avoid redundant filename encoding: invocation of "os.stat()" via "self.vfs" hides filename encoding and encoding result from caller, so it is not appropriate, when both encoded and non-encoded filenames should be yield. Even though changeset b42b0729744d improved stream_out performance by "self.pathsep + path", this patch replaces it by "os.path.join(self.base, path)" of vfs. So, this may increase cost to join path components. But this shouldn't have large impact, because: - such cost is much less than cost of "os.stat()" which causes system call invocation - "datafiles()" of store object is invoked only for "hg manifest --all" or "hg verify" which are both heavy functions
Tue, 09 Oct 2012 01:41:55 +0900 store: invoke "os.stat()" for "createmode" initialization via vfs
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 09 Oct 2012 01:41:55 +0900] rev 17726
store: invoke "os.stat()" for "createmode" initialization via vfs This just replaces "os.stat()" invocation: refactoring around "self.createmode" and "vfs.createmode" initialization is omitted. This patch also newly adds "stat()" function to "abstractvfs".
Tue, 09 Oct 2012 01:41:55 +0900 vfs: define "join()" in each classes derived from "abstractvfs"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 09 Oct 2012 01:41:55 +0900] rev 17725
vfs: define "join()" in each classes derived from "abstractvfs" This patch defines "join()" in each classes derived from "abstractvfs" except "vfs", which already defines it. This allows all vfs instances to be used for indirect file API invocation.
Tue, 09 Oct 2012 01:41:55 +0900 store: initialize vfs field first to use it for initialization of others
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 09 Oct 2012 01:41:55 +0900] rev 17724
store: initialize vfs field first to use it for initialization of others This patch initializes "vfs" field in the constructor of each store classes to use it for initialization of others. In this patch, "self.vfs.base" is used to initialize "self.path", because redo join of path components for "self.path" is redundant.
Tue, 09 Oct 2012 01:41:55 +0900 scmutil: reorder newly added functions for vfs support in dictionary order
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 09 Oct 2012 01:41:55 +0900] rev 17723
scmutil: reorder newly added functions for vfs support in dictionary order Definition functions for vfs support in dictionary order increases readability/maintainability, because there are functions which invoke file API: - with same name: "os.listdir" and "osutil.listdir", for example - with ambiguous names: "os.mkdir" and "util.makedirs", for example
Tue, 09 Oct 2012 01:41:55 +0900 store: rename field name from "opener" to "vfs" in internal classes for fncache
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 09 Oct 2012 01:41:55 +0900] rev 17722
store: rename field name from "opener" to "vfs" in internal classes for fncache These fields are used only in store module, so keeping "self.opener" for backward compatibility like as "localrepository" class is not needed.
Tue, 09 Oct 2012 01:41:55 +0900 store: rename argument name from "op"(ener) to "vfs"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 09 Oct 2012 01:41:55 +0900] rev 17721
store: rename argument name from "op"(ener) to "vfs"
Thu, 04 Oct 2012 01:24:05 +0900 verify: rename "hasmanifest" variable for source code readability
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 04 Oct 2012 01:24:05 +0900] rev 17720
verify: rename "hasmanifest" variable for source code readability Before this patch, there are two ambiguous variables: "havemf" and "hasmanifest". "havemf" means whether there are any "manifest" entries. "hasmanifest" means whether there are any "changelog" entries referring to "manifest" entry. This patch renames from "hasmanifest" to "refersmf" to clear difference from "havemf".
Thu, 04 Oct 2012 01:24:05 +0900 verify: use appropriate local variable in "checkentry()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 04 Oct 2012 01:24:05 +0900] rev 17719
verify: use appropriate local variable in "checkentry()" Before this patch, "checkentry()" internal function uses both "node"(argument of itself) and "n"(defined in outer of it) variables. Because all callers of "checkentry()" use "n" to refer the object which is passed to "checkentry()" as "node", both can refer same object in "checkentry()". So, "checkentry()" works correctly. But such usage is not good for independence of "checkentry()". This patch replaces "n" in "checkentry()" with "node".
Thu, 04 Oct 2012 01:24:05 +0900 verify: use appropriate node information to show verification error
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 04 Oct 2012 01:24:05 +0900] rev 17718
verify: use appropriate node information to show verification error Before this patch, verify module shows verification error message below: unknown parent 2 <HASH_OF_P2> of <HASH_OF_P1> even though it should show: unknown parent 2 <HASH_OF_P2> of <HASH_OF_TARGET> This patch uses appropriate node information.
Thu, 04 Oct 2012 01:24:05 +0900 help: add information about recovery from corruption to help of "verify"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 04 Oct 2012 01:24:05 +0900] rev 17717
help: add information about recovery from corruption to help of "verify" Before this patch, there is no information about what users should (or can) do for recovery from corruption of repositories. This patch adds URL of the Mercurial Wiki page explaining about recovery from corruption.
Mon, 03 Sep 2012 14:35:31 +0200 hidden: remove tags use in hidden computation
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 03 Sep 2012 14:35:31 +0200] rev 17716
hidden: remove tags use in hidden computation Tags initially prevented revision to be hidden. It seemed a bad idea to have tags refer to revisions that one can't see. But proper filtering of hidden revisions excludes them from tag computation. Coming changelog filtering will do that. Anyway, tags that really matter will likely be public and therefore not hidden. The current working directory parent and bookmarked revision are still not hidden. Bookmarks were likely automatically moved at rewrite time, bookmarks that remain on obsolete revisions were probably moved there on purpose.
Mon, 03 Sep 2012 14:35:05 +0200 clfilter: do not use tags cache if there are filtered changesets
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 03 Sep 2012 14:35:05 +0200] rev 17715
clfilter: do not use tags cache if there are filtered changesets If there are filtered changesets the cache is not valid. We'll have to cache tags for filtered state too, but for now recomputing the tags is enough.
Mon, 03 Sep 2012 14:34:19 +0200 clfilter: do not use branchmap cache if there are filtered changesets
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 03 Sep 2012 14:34:19 +0200] rev 17714
clfilter: do not use branchmap cache if there are filtered changesets If there are filtered changesets the cache is not valid. We'll have to cache branchmap for filtered state too, but for now recomputing the branchmap is enough.
Mon, 08 Oct 2012 09:55:41 -0700 Merge
Bryan O'Sullivan <bryano@fb.com> [Mon, 08 Oct 2012 09:55:41 -0700] rev 17713
Merge
Mon, 08 Oct 2012 15:35:16 +0200 fancyopts: don't show a traceback on invalid integer values
Idan Kamara <idankk86@gmail.com> [Mon, 08 Oct 2012 15:35:16 +0200] rev 17712
fancyopts: don't show a traceback on invalid integer values
Wed, 03 Oct 2012 22:09:18 +0200 check-code: replace heredocs in unified tests
Idan Kamara <idankk86@gmail.com> [Wed, 03 Oct 2012 22:09:18 +0200] rev 17711
check-code: replace heredocs in unified tests Heredocs are usually fed to other commands and shouldn't follow the standard conventions of shell commands. This restores the old behaviour of how heredocs were handled in old-style test files.
Wed, 19 Sep 2012 20:33:20 +0200 test-fncache: test reserved / long paths
Adrian Buehlmann <adrian@cadifra.com> [Wed, 19 Sep 2012 20:33:20 +0200] rev 17710
test-fncache: test reserved / long paths testing the store path encoding with real files
Fri, 05 Oct 2012 13:44:52 -0500 setup: calculate version more correctly
Bryan O'Sullivan <bryano@fb.com> [Fri, 05 Oct 2012 13:44:52 -0500] rev 17709
setup: calculate version more correctly The old calculation code failed to properly identify revs that weren't tagged, leaving us with a version of "unknown" most of the time during development.
Thu, 04 Oct 2012 17:00:32 -0500 mq: improve qqueue message with patches applied (issue3036)
Bryan O'Sullivan <bryano@fb.com> [Thu, 04 Oct 2012 17:00:32 -0500] rev 17708
mq: improve qqueue message with patches applied (issue3036)
Thu, 04 Oct 2012 16:52:20 +0200 subrepo, hghave: use "svn --version --quiet" to determine version number
Thomas Arendsen Hein <thomas@intevation.de> [Thu, 04 Oct 2012 16:52:20 +0200] rev 17707
subrepo, hghave: use "svn --version --quiet" to determine version number svn --version --quiet is implemented since svn 0.14.1 (August 2002) and prints just the version number, not the long output (21 lines) of "svn --version". Additionally I expect this output format to be more stable, at least it is not changed with different translations.
Thu, 04 Oct 2012 16:44:28 +0200 merge with crew-stable
Thomas Arendsen Hein <thomas@intevation.de> [Thu, 04 Oct 2012 16:44:28 +0200] rev 17706
merge with crew-stable
Thu, 04 Oct 2012 16:30:40 +0200 subrepo: setting LC_MESSAGES only works if LC_ALL is empty or unset stable
Thomas Arendsen Hein <thomas@intevation.de> [Thu, 04 Oct 2012 16:30:40 +0200] rev 17705
subrepo: setting LC_MESSAGES only works if LC_ALL is empty or unset For example LC_ALL=de_DE.utf-8 would cause the version check to fail, because "svn, Version 1.6.12 (r955767)" with a capital "V" will be printed. Using "svn --version --quiet" would only print the version number, but then matching other messages, e.g. "Committed revision" would fail.
Thu, 04 Oct 2012 10:11:17 +0200 merge with crew-stable
Thomas Arendsen Hein <thomas@intevation.de> [Thu, 04 Oct 2012 10:11:17 +0200] rev 17704
merge with crew-stable
Tue, 02 Oct 2012 09:26:42 +0200 clone: activate bookmark specified with --updaterev stable
Thomas Arendsen Hein <thomas@intevation.de> [Tue, 02 Oct 2012 09:26:42 +0200] rev 17703
clone: activate bookmark specified with --updaterev
Tue, 02 Oct 2012 14:31:25 -0700 Merge with crew-stable
Bryan O'Sullivan <bryano@fb.com> [Tue, 02 Oct 2012 14:31:25 -0700] rev 17702
Merge with crew-stable
Tue, 02 Oct 2012 14:31:14 -0700 Merge
Bryan O'Sullivan <bryano@fb.com> [Tue, 02 Oct 2012 14:31:14 -0700] rev 17701
Merge
Tue, 02 Oct 2012 14:27:13 -0700 keepalive: drop python 2.2 legacy code
Bryan O'Sullivan <bryano@fb.com> [Tue, 02 Oct 2012 14:27:13 -0700] rev 17700
keepalive: drop python 2.2 legacy code
Sun, 30 Sep 2012 15:31:27 +0200 pathencode: change isset name to avoid name collision
André Sintzoff <andre.sintzoff@gmail.com> [Sun, 30 Sep 2012 15:31:27 +0200] rev 17699
pathencode: change isset name to avoid name collision On old Mac OS X versions (10.4), arpa/inet.h (included in mercurial/util.h) includes system/param.h which defines isset macro.
Mon, 01 Oct 2012 23:11:28 -0500 Added signature for changeset b3f0f9a39c4e stable
Matt Mackall <mpm@selenic.com> [Mon, 01 Oct 2012 23:11:28 -0500] rev 17698
Added signature for changeset b3f0f9a39c4e
Mon, 01 Oct 2012 23:11:25 -0500 Added tag 2.3.2 for changeset b3f0f9a39c4e stable
Matt Mackall <mpm@selenic.com> [Mon, 01 Oct 2012 23:11:25 -0500] rev 17697
Added tag 2.3.2 for changeset b3f0f9a39c4e
Mon, 01 Oct 2012 23:06:14 -0500 merge with i18n stable 2.3.2
Matt Mackall <mpm@selenic.com> [Mon, 01 Oct 2012 23:06:14 -0500] rev 17696
merge with i18n
Sun, 23 Sep 2012 00:08:13 -0400 largefiles: download missing subrepo revs when archiving stable
Matt Harbison <matt_harbison@yahoo.com> [Sun, 23 Sep 2012 00:08:13 -0400] rev 17695
largefiles: download missing subrepo revs when archiving This is something plain hgsubrepos already do. Previously, an abort message complained about an unknown revision.
Mon, 01 Oct 2012 23:05:02 -0500 hgweb: change IE canvas test (issue3639)
Matt Mackall <mpm@selenic.com> [Mon, 01 Oct 2012 23:05:02 -0500] rev 17694
hgweb: change IE canvas test (issue3639) suggested by Peter Hull
Sun, 30 Sep 2012 23:53:56 +0200 store: optimize _pathencode by checking the length of the unencoded path
Adrian Buehlmann <adrian@cadifra.com> [Sun, 30 Sep 2012 23:53:56 +0200] rev 17693
store: optimize _pathencode by checking the length of the unencoded path If the input path is already longer than _maxstorepathlen, then we can skip doing the basic encoding (encodedir, _encodefname and _auxencode) and directly proceed to the hashed encoding. Those encodings, if at all, will make the path only longer.
Sun, 30 Sep 2012 23:53:56 +0200 pathencode: skip encoding if input is already longer than maxstorepathlen
Adrian Buehlmann <adrian@cadifra.com> [Sun, 30 Sep 2012 23:53:56 +0200] rev 17692
pathencode: skip encoding if input is already longer than maxstorepathlen Calling basicencode may make the path longer, never shorter. If it's already too long before, then we don't even need to basicencode it.
Sun, 30 Sep 2012 23:53:56 +0200 pathencode: simplify basicencode
Adrian Buehlmann <adrian@cadifra.com> [Sun, 30 Sep 2012 23:53:56 +0200] rev 17691
pathencode: simplify basicencode
Sun, 30 Sep 2012 23:53:56 +0200 test-hybridencode: in practice, extensions aren't really unbound in length
Adrian Buehlmann <adrian@cadifra.com> [Sun, 30 Sep 2012 23:53:56 +0200] rev 17690
test-hybridencode: in practice, extensions aren't really unbound in length due to the fact that we only get to encode files ending in .i and .d inside the store
Mon, 01 Oct 2012 21:54:04 +0200 Merge
Patrick Mezard <patrick@mezard.eu> [Mon, 01 Oct 2012 21:54:04 +0200] rev 17689
Merge
Thu, 27 Sep 2012 01:53:28 +0200 histedit-test: clarify the reason of a failure
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 27 Sep 2012 01:53:28 +0200] rev 17688
histedit-test: clarify the reason of a failure There is multiple conflict during this test. This add a small comment that highligh the reason of a particular failure.
Mon, 24 Sep 2012 15:46:01 +0200 histedit-test: make test-fold more verbose
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 24 Sep 2012 15:46:01 +0200] rev 17687
histedit-test: make test-fold more verbose This helps to check the validity of fold result and debug potential issue.
Mon, 01 Oct 2012 03:19:23 +0200 bookmarks: teach the -r option to use revsets
David Soria Parra <dsp@php.net> [Mon, 01 Oct 2012 03:19:23 +0200] rev 17686
bookmarks: teach the -r option to use revsets
Sat, 29 Sep 2012 13:41:02 +0200 help: add example of paths other than default in hgrc
Juan Pablo Carbajal (desktop) <carbajal@ifi.uzh.ch> [Sat, 29 Sep 2012 13:41:02 +0200] rev 17685
help: add example of paths other than default in hgrc
Fri, 28 Sep 2012 19:43:40 +0900 i18n-ja: synchronized with f36f11f2bfce stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 28 Sep 2012 19:43:40 +0900] rev 17684
i18n-ja: synchronized with f36f11f2bfce
Sat, 29 Sep 2012 12:28:52 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Sat, 29 Sep 2012 12:28:52 -0500] rev 17683
merge with stable
Thu, 27 Sep 2012 14:38:03 -0700 lock: fixed race condition in trylock/testlock (issue3506) stable
Tomasz Kleczek <tomasz.kleczek@fb.com> [Thu, 27 Sep 2012 14:38:03 -0700] rev 17682
lock: fixed race condition in trylock/testlock (issue3506) Suppose the following scenario: 1. Process A takes the lock (e.g. on commit). 2. Process B wants to grab the lock. Since lock file exists the exception is raised. In the catch block the testlock function is called. 3. Process A releases the lock. 4. Process B tries to read the lock file as a part of testlock function. This results in OSError (ENOENT) and since we're not inside the exception handler function this is propagated and aborts the whole operation. To fix this we now check in testlock function whether lock file actually exists and if not (i.e. if readlock fails) we just return.
Sat, 29 Sep 2012 11:57:16 -0500 scmutil: backout 83785bb56062 (issue3643)
Matt Mackall <mpm@selenic.com> [Sat, 29 Sep 2012 11:57:16 -0500] rev 17681
scmutil: backout 83785bb56062 (issue3643)
Sat, 29 Sep 2012 13:34:37 +0200 help: removing trailing spaces
Juan Pablo Carbajal (desktop) <carbajal@ifi.uzh.ch> [Sat, 29 Sep 2012 13:34:37 +0200] rev 17680
help: removing trailing spaces
Sat, 29 Sep 2012 13:43:31 +0200 Merge with stable
Patrick Mezard <patrick@mezard.eu> [Sat, 29 Sep 2012 13:43:31 +0200] rev 17679
Merge with stable
Sat, 29 Sep 2012 13:33:55 +0200 test-largefiles.t: fix find quirk on OSX stable
Patrick Mezard <patrick@mezard.eu> [Sat, 29 Sep 2012 13:33:55 +0200] rev 17678
test-largefiles.t: fix find quirk on OSX For some reason, find utility seems to preserve the trailing slash and append a new one on OSX: $ find somedir/ somedir/ somedir//somefile
Thu, 20 Sep 2012 19:02:47 +0200 clfilter: introduce `filteredrevs` attribute on changelog
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 20 Sep 2012 19:02:47 +0200] rev 17677
clfilter: introduce `filteredrevs` attribute on changelog This changeset allows changelog object to be "filtered". You can assign a set of revision numbers to the `changelog.filteredrevs` attributes. The changelog will then pretends these revision does not exists in this repo. A few methods need to be altered to achieve this behavior: - tip - __iter_ - irevs - hasnode - headrevs For consistency and to help debugging, the following methods are altered too. Tests tend to show it's not necessary to alter them but have them raise proper exception helps to detect bad acces to filtered revisions. - rev - node - linkrev - parentrevs - flags The following methods would also need alteration for consistency purpose but this is non-trivial and not done yet. - nodemap - strip The C version of headrevs is not run if there is any revision to filter. It'll need a proper rewrite later to restore performance.
Mon, 03 Sep 2012 14:29:05 +0200 clfilter: remove any explicit revision number from default cmdutil range
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 03 Sep 2012 14:29:05 +0200] rev 17676
clfilter: remove any explicit revision number from default cmdutil range Revision "0" and "-1" may be filtered, we can't use them in any default revrange.
Thu, 20 Sep 2012 19:01:53 +0200 clfilter: remove usage of `range` in favor of iteration over changelog
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 20 Sep 2012 19:01:53 +0200] rev 17675
clfilter: remove usage of `range` in favor of iteration over changelog If we want to apply filtering at changelog level, we need to iterate over it. See previous changeset description for details.
Mon, 03 Sep 2012 14:19:45 +0200 clfilter: split `revlog.headrevs` C call from python code
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 03 Sep 2012 14:19:45 +0200] rev 17674
clfilter: split `revlog.headrevs` C call from python code Make the pure python implementation of headrevs available to derived classes. It is important because filtering logic applied by `revlog` derived class won't have effect on `index`. We want to be able to bypass this C call to implement our own.
Mon, 03 Sep 2012 14:12:45 +0200 clfilter: handle non contiguous iteration in `revlov.headrevs`
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 03 Sep 2012 14:12:45 +0200] rev 17673
clfilter: handle non contiguous iteration in `revlov.headrevs` This prepares changelog level filtering. We can't assume that any revision can be heads because filtered revisions need to be excluded. New algorithm: - All revisions now start as "non heads", - every revision we iterate over is made candidate head, - parents of iterated revisions are definitely not head. Filtered revisions are never iterated over and never considered as candidate head.
Thu, 20 Sep 2012 19:00:59 +0200 clfilter: make the revlog class responsible of all its iteration
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 20 Sep 2012 19:00:59 +0200] rev 17672
clfilter: make the revlog class responsible of all its iteration This prepares changelog level filtering. We need the algorithms used in revlog to work on a subset of revisions. To achieve this, the use of explicit range of revision is banned. `range` and `xrange` calls are replaced by a `revlog.irevs` method. Filtered super class can then overwrite the `irevs` method to filter out revision.
Mon, 03 Sep 2012 14:05:19 +0200 clfilter: introduce a `hassecret` function
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 03 Sep 2012 14:05:19 +0200] rev 17671
clfilter: introduce a `hassecret` function We can only use copy clone if the cloned repo do not have any secret changeset. The current method for that is to run the "secret()" revset on the remote repo. But with proper filtering of hidden or unserved revision by the remote this revset won't return any revision even if some exist remotely. This changeset adds an explicit function to know if a repo have any secret revision or not. The other option would be to disable filtering for the query but I prefer the approach above, lighter both regarding code and performance.
Mon, 03 Sep 2012 14:03:38 +0200 filter: `updatebranchcache` during `addchangegroup` instead of after lock
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 03 Sep 2012 14:03:38 +0200] rev 17670
filter: `updatebranchcache` during `addchangegroup` instead of after lock The forced recomputation of the branch cache was introduced by `ee317dbfb9d0`. Back there, `addchangegroup` did not handle any lock logic. Later `ee1ed6afac21` introduced lock logic to `addchangegroup`. Its description does not explain why the `updatebranchcache` call is made outside locking. I believe that the lock was released there because it fit well with the transaction release already in the code. Finally `926a06f7a353` moved all "unlocked" code of `addchangegroup` to an `repo._afterlock` callback. I do not think that the call to `updatebranchcache()` requires to be done outside locking. That may even be a bad idea to do so. Bringing this call back in the `addchangegroup` function makes the flow simpler and eases the following up changelog level filtering business.
Wed, 01 Aug 2012 22:13:27 -0500 lock-checker: new contrib extension based on work done by Mads
Augie Fackler <raf@durin42.com> [Wed, 01 Aug 2012 22:13:27 -0500] rev 17669
lock-checker: new contrib extension based on work done by Mads This makes it possible to do lock validation as part of a normal test run. I didn't attempt any wlock validation because that's a bit more subtle to detect properly. Thanks to the initial patch from Mads for the idea.
Tue, 25 Sep 2012 20:50:40 +0300 resolve: commit the changes after each item resolve (issue3638)
Sergey Kishchenko <voidwrk@gmail.com> [Tue, 25 Sep 2012 20:50:40 +0300] rev 17668
resolve: commit the changes after each item resolve (issue3638) At the moment the resolve command doesn't save progress during the resolve process. In example if you try to resolve 100 conflicting files and interrupt the process (e.g., you close the external merge tool) after resolving 50 files you'll end up with 100 unresolved conflicts. Saving the progress helps a lot with long going merges. It's easy to achieve same behavior with simple script that calls resolve command for each unresolved file but it makes sense to make such behavior a default
Sat, 22 Sep 2012 14:53:50 +0900 bookmarks: rename arguments/variables for source code readability
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 22 Sep 2012 14:53:50 +0900] rev 17667
bookmarks: rename arguments/variables for source code readability Before this patch, the argument bound to the source repository of incoming bookmarks for "bookmarks.diff()" is named as "remote". But in "hg outgoing" case, this argument is bound to local repository object. In addition to it, "local"/"remote" seem to mean not the direction of propagation of bookmarks, but just the location of cooperative repositories. To indicate the direction of propagation of bookmarks clearly on the source code, this patch uses "d(st)" and "s(rc)" combination instead of "l(ocal)" and "r(emote)" one. - "repo" and "remote" arguments are renamed to "dst" and "src" - "lmarks" and "rmarks" variables are renamed to "dmarsk" and "smarks"
Thu, 27 Sep 2012 13:54:47 +0200 histedit: move `continue` logic into a dedicated function
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 27 Sep 2012 13:54:47 +0200] rev 17666
histedit: move `continue` logic into a dedicated function When histedit "continue", there is several complicated logic to apply in order to detect intermediate changeset and concluded pending operation. This changeset extract this logic in a dedicated function to lighten the main one. No alteration to the logic is done.
Wed, 26 Sep 2012 18:13:00 +0200 histedit: rename `tip` to `topmost`
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 26 Sep 2012 18:13:00 +0200] rev 17665
histedit: rename `tip` to `topmost` I expected `tip` to be repo's tip when it was the rewritten set tip. I rename the variable to the less ambiguous `topmost`.
Wed, 26 Sep 2012 14:46:08 +0200 histedit: factorise node stripping logic
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 26 Sep 2012 14:46:08 +0200] rev 17664
histedit: factorise node stripping logic Create a function dedicated to stripping a group of node. All existing duplicated code is replaced by call to this function. This new function take care of stripping known and relevant node only.
Wed, 26 Sep 2012 14:19:19 +0200 histedit: extract bookmark logic in a dedicated function
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 26 Sep 2012 14:19:19 +0200] rev 17663
histedit: extract bookmark logic in a dedicated function This lighten the main function and will help to see future changes to this bookmark logic.
Wed, 26 Sep 2012 12:57:23 +0200 histedit: remove all usages of hex[:12]
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 26 Sep 2012 12:57:23 +0200] rev 17662
histedit: remove all usages of hex[:12] - `node.hex(n)[:12]` is the same as `node.short(n)` - `ctx.hex()[:12]` is the same as `str(ctx)`
Thu, 27 Sep 2012 15:51:14 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Thu, 27 Sep 2012 15:51:14 -0500] rev 17661
merge with stable
Thu, 27 Sep 2012 15:50:14 -0500 merge with i18n stable
Matt Mackall <mpm@selenic.com> [Thu, 27 Sep 2012 15:50:14 -0500] rev 17660
merge with i18n
Mon, 30 Jul 2012 20:56:41 -0400 largefiles: enable islfilesrepo() prior to a commit (issue3541) stable
Matt Harbison <matt_harbison@yahoo.com> [Mon, 30 Jul 2012 20:56:41 -0400] rev 17659
largefiles: enable islfilesrepo() prior to a commit (issue3541) Previously, even if a file was added with --large, 'hg addremove' or 'hg ci -A' would add all files (including the previously added large files) as normal files. Only after a commit where a file was added with --large would subsequent adds or 'ci -A' take into account the minsize or the pattern configuration. This change more closely follows the help for largefiles, which mentions that 'add --large' is required to enable the configuration, but doesn't mention the previously required commit. Also, if 'hg add --large' was performed and then 'hg forget <file>' (both before a largefile enabling commit), the forget command would error out saying '.hglf/<file> not tracked'. This is also fixed. This reports that a repo is largefiles enabled as soon as a file is added with --large, which enables 'add', 'addremove' and 'ci -A' to honor the config settings before the first commit. Note that prior to the next commit, if all largefiles are forgotten, the repository goes back to reporting the repo as not largefiles enabled. It makes no sense to handle this by adding a --large option to 'addremove', because then it would also be needed for 'commit', but only when '-A' is specified. While this gets around the awkwardness of having to add a largefile, then commit it, and then addremove the other files when importing an existing codebase (and preserving that extra commit in permanent history), it does still require finding and manually adding one of the files as --large. Therefore it is probably desirable to have a --large option for init as well.
Mon, 30 Jul 2012 20:56:41 -0400 largefiles: handle commit -A properly, after a --large commit (issue3542) stable
Matt Harbison <matt_harbison@yahoo.com> [Mon, 30 Jul 2012 20:56:41 -0400] rev 17658
largefiles: handle commit -A properly, after a --large commit (issue3542) Previous to this, 'commit -A' would add as normal files, files that were already committed as largefiles, resulting in files being listed twice by 'status -A'. It also missed when (only) a largefile was deleted, even though status reported it as '!'. This also has the side effect of properly reporting the state of the affected largefiles in the post commit hook after a remove that also affected a normal file (the largefiles used to be 'R', now are properly absent). Since scmutil.addremove() is called both by the ui command (after some trivial argument validation) and during the commit process when -A is specified, it seems like a more appropriate method to wrap than the addremove command. Currently, a repo is only enabled to use largefiles after an add that explicitly identifies some file as large, and a subsequent commit. Therefore, this patch only changes behavior after such a largefile enabling commit. Note that in the test, if the final commit had a '-v', 'removing large8' would be printed twice. Both of these originate in removelargefiles(). The first print is in verbose mode after traversing remove + forget, the second is because the '_isaddremove' attr is set and 'after' is not.
Tue, 25 Sep 2012 16:01:08 +0400 i18n-ru: synchronized with 6e2ab601be3f stable
Alexander Sauta <demosito@gmail.com> [Tue, 25 Sep 2012 16:01:08 +0400] rev 17657
i18n-ru: synchronized with 6e2ab601be3f
Tue, 25 Sep 2012 15:25:12 +0400 merge with i18n stable
Alexander Sauta <demosito@gmail.com> [Tue, 25 Sep 2012 15:25:12 +0400] rev 17656
merge with i18n
Fri, 14 Sep 2012 23:52:33 +0400 i18n-ru: fix spelling of "unrecognized response" translation stable
Nikolaj Sjujskij <sterkrig@myopera.com> [Fri, 14 Sep 2012 23:52:33 +0400] rev 17655
i18n-ru: fix spelling of "unrecognized response" translation
Fri, 31 Aug 2012 02:06:29 +0900 localrepo: use "vfs" constructor/field for initialization around "store"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 31 Aug 2012 02:06:29 +0900] rev 17654
localrepo: use "vfs" constructor/field for initialization around "store"
Fri, 31 Aug 2012 02:06:29 +0900 store: initialize "vfs" fields by "vfs" constructors
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 31 Aug 2012 02:06:29 +0900] rev 17653
store: initialize "vfs" fields by "vfs" constructors For backwards compatibility, "opener" fields are still left as aliases for "vfs" ones.
Fri, 31 Aug 2012 02:06:29 +0900 store: rename "op" variables to "vfs"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 31 Aug 2012 02:06:29 +0900] rev 17652
store: rename "op" variables to "vfs"
Fri, 31 Aug 2012 02:06:29 +0900 store: rename "openertype" argument to "vfstype"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 31 Aug 2012 02:06:29 +0900] rev 17651
store: rename "openertype" argument to "vfstype"
Fri, 31 Aug 2012 02:06:29 +0900 localrepo: use "vfs" constructor instead of "opener" one
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 31 Aug 2012 02:06:29 +0900] rev 17650
localrepo: use "vfs" constructor instead of "opener" one This patch also changes initialization order of "*opener" and "*vfs" fields: first, "*vfs" fields are initialized , and then, "*opener" ones are initialized.
Fri, 31 Aug 2012 02:06:29 +0900 scmutil: rename classes from "opener" to "vfs"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 31 Aug 2012 02:06:29 +0900] rev 17649
scmutil: rename classes from "opener" to "vfs" For backwards compatibility, aliases for the old names are added, except for "abstractopener", "statichttpopener" and "_fncacheopener", because these are not used in Mercurial core implementation after this patch. "_fncacheopener" was only referred in "fncachestore" constructor, so this patch also renames from "_fncacheopener" to "_fncachevfs" there.
Mon, 13 Aug 2012 21:25:48 +0900 doc: add the tool to check section marks in help documents
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 13 Aug 2012 21:25:48 +0900] rev 17648
doc: add the tool to check section marks in help documents This patch adds "doc/check-seclevel.py" which checks below in help documents: - whether unknown or unavailable section marks are used or not - whether appropriate section mark is used at sub-sectioning It should be invoked in "doc" directory. It checks all help documents of Mercurial (topics, commands, extensions), if no file is specified by --file option. With --file option, it checks contents of the specified file as help document, for self testing purpose: -t/-c/-e/-C are used to specify what kind of help document contents of the specified file is. This checking is related to changeset 979b107eaea2.
Fri, 21 Sep 2012 19:27:22 +0200 histedit: replaces patching logic by merges
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 21 Sep 2012 19:27:22 +0200] rev 17647
histedit: replaces patching logic by merges The old and fragile patching logic is replaced by smart merges (as rebase and graft do). This should prevents some conflicts and smoother human resolution. For this purpose the "foldchanges" function is renamed to "applychanges" and handle a single revision only.
Fri, 21 Sep 2012 19:13:25 +0200 histedit-test: ensure that non commute test will never commute
Pierre-Yves David <pierre-yves.david@logilab.fr> [Fri, 21 Sep 2012 19:13:25 +0200] rev 17646
histedit-test: ensure that non commute test will never commute The previous version would commute if using merge algorithm (to be accurate, merge will cleanly prompt the user during the merge). The new version create and initial commit with some content for all involved files en ensure all changes are a content changes of the first lines. This lead to guaranteed conflict when commuted.
Fri, 21 Sep 2012 19:25:19 +0200 histedit: display action being processed in debug mode
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 21 Sep 2012 19:25:19 +0200] rev 17645
histedit: display action being processed in debug mode This is very useful when debugging histedit.
Fri, 21 Sep 2012 19:24:31 +0200 histedit: fold in memory
Pierre-Yves David <pierre-yves.david@logilab.fr> [Fri, 21 Sep 2012 19:24:31 +0200] rev 17644
histedit: fold in memory Update the folding code to works in memory instead of applying patches on the working directory. This is cleaner, faster and prepare the removal of the whole patching logic. This new collapse function will probably move into core sooner or later. A lot of other rewriting operation may benefit from it.
Fri, 21 Sep 2012 00:33:30 +0200 histedit: move makedesc function near other rules related function
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 21 Sep 2012 00:33:30 +0200] rev 17643
histedit: move makedesc function near other rules related function Having it in the middle of action logic is confusing
Fri, 21 Sep 2012 19:14:04 +0200 histedit: move `between function` outside the action logic
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 21 Sep 2012 19:14:04 +0200] rev 17642
histedit: move `between function` outside the action logic Having this function in the middle of action and patching logic did not make sense
Fri, 21 Sep 2012 00:30:22 +0200 histedit document the makedest function
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 21 Sep 2012 00:30:22 +0200] rev 17641
histedit document the makedest function
Fri, 21 Sep 2012 00:30:07 +0200 histedit: documents the between function
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 21 Sep 2012 00:30:07 +0200] rev 17640
histedit: documents the between function
Mon, 24 Sep 2012 15:54:45 -0500 templatefilters: add parameterized date method
Matt Mackall <mpm@selenic.com> [Mon, 24 Sep 2012 15:54:45 -0500] rev 17639
templatefilters: add parameterized date method
Mon, 24 Sep 2012 15:54:44 -0500 templatefilters: add parameterized fill function
Matt Mackall <mpm@selenic.com> [Mon, 24 Sep 2012 15:54:44 -0500] rev 17638
templatefilters: add parameterized fill function
Mon, 24 Sep 2012 15:28:04 -0500 templater: pull in functions defined in templatefilters
Matt Mackall <mpm@selenic.com> [Mon, 24 Sep 2012 15:28:04 -0500] rev 17637
templater: pull in functions defined in templatefilters
Mon, 24 Sep 2012 15:26:56 -0500 templater: add if/ifeq conditionals
Matt Mackall <mpm@selenic.com> [Mon, 24 Sep 2012 15:26:56 -0500] rev 17636
templater: add if/ifeq conditionals
Mon, 24 Sep 2012 15:26:17 -0500 templater: add sub() function
Matt Mackall <mpm@selenic.com> [Mon, 24 Sep 2012 15:26:17 -0500] rev 17635
templater: add sub() function
Mon, 24 Sep 2012 15:24:27 -0500 templater: correctly deal with r"" strings
Matt Mackall <mpm@selenic.com> [Mon, 24 Sep 2012 15:24:27 -0500] rev 17634
templater: correctly deal with r"" strings
Sat, 22 Sep 2012 13:04:36 -0500 template: add join function
Matt Mackall <mpm@selenic.com> [Sat, 22 Sep 2012 13:04:36 -0500] rev 17633
template: add join function This allows: {join(files % "{files}", ", ") }\n to produce a properly comma-separated list
Sat, 22 Sep 2012 13:02:33 -0500 templater: factor out runtemplate method
Matt Mackall <mpm@selenic.com> [Sat, 22 Sep 2012 13:02:33 -0500] rev 17632
templater: factor out runtemplate method As a side-effect, this makes the output of runmap non-flattened
Fri, 21 Sep 2012 18:54:00 -0500 templating: make new-style templating features work with command line lists
Matt Mackall <mpm@selenic.com> [Fri, 21 Sep 2012 18:54:00 -0500] rev 17631
templating: make new-style templating features work with command line lists
Thu, 20 Sep 2012 23:30:59 -0400 formatter: improve implementation of data method
David M. Carr <david@carrclan.us> [Thu, 20 Sep 2012 23:30:59 -0400] rev 17630
formatter: improve implementation of data method This alternate syntax was proposed by Bryan O'Sullivan in a review of 772b3764d3e8. I haven't been able to measure any particular performance difference, but the new syntax is more concise and easier to read.
Wed, 19 Sep 2012 09:38:51 -0700 Merge with crew-stable
Bryan O'Sullivan <bryano@fb.com> [Wed, 19 Sep 2012 09:38:51 -0700] rev 17629
Merge with crew-stable
Tue, 18 Sep 2012 19:46:15 +0900 archival: add "extended-timestamp" extra block for zip archives (issue3600) stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 18 Sep 2012 19:46:15 +0900] rev 17628
archival: add "extended-timestamp" extra block for zip archives (issue3600) Before this patch, zip archives created by "hg archive" are extracted with unexpected timestamp, if TZ is not configured as GMT. This patch adds "extended-timestamp" extra block to zip archives, and unzip will extract such archives with timestamp specified in added extra block, even though TZ is not configured as GMT. Please see documents below for detail about specification of zip file format and "extended-timestamp" extra block: http://www.pkware.com/documents/casestudies/APPNOTE.TXT http://www.opensource.apple.com/source/zip/zip-6/unzip/unzip/proginfo/extra.fld Original implementation of this patch was suggested by "Jun Omae <jun66j5@gmail.com>".
Tue, 18 Sep 2012 21:39:12 +0900 bookmarks: use "changectx.descendant()" for efficient descendant examination
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 18 Sep 2012 21:39:12 +0900] rev 17627
bookmarks: use "changectx.descendant()" for efficient descendant examination This patch uses "old.descendant(new)" expression instead of "new in old.descendants()" for efficiency.
Tue, 18 Sep 2012 21:39:12 +0900 context: add "descendant()" to changectx for efficient descendant examination
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 18 Sep 2012 21:39:12 +0900] rev 17626
context: add "descendant()" to changectx for efficient descendant examination This patch adds "descendant()", which uses "revlog.descendant()" for descendant examination, to changectx. This implementation is more efficient than "new in old.descendants()" expression, because: - "changectx.descendants()" creates temporary "changectx" objects, but "revlog.descendant()" doesn't "revlog.descendant()" checks only revision numbers of descendants. - "revlog.descendant()" stops scanning, when scanning of all revisions less than one of examination target is finished this can avoid useless scanning in "not descendant" case.
Tue, 18 Sep 2012 21:39:12 +0900 bookmarks: avoid redundant creation/assignment of "validdests" in "validdest()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 18 Sep 2012 21:39:12 +0900] rev 17625
bookmarks: avoid redundant creation/assignment of "validdests" in "validdest()"
Wed, 19 Sep 2012 14:00:23 +0200 store: add a fallback _pathencode Python function
Adrian Buehlmann <adrian@cadifra.com> [Wed, 19 Sep 2012 14:00:23 +0200] rev 17624
store: add a fallback _pathencode Python function which does the equivalent of parsers.pathencode, so it can be used as a default
Wed, 19 Sep 2012 13:58:51 +0200 store: move _plainhybridencode and _dothybridencode higher up in the file
Adrian Buehlmann <adrian@cadifra.com> [Wed, 19 Sep 2012 13:58:51 +0200] rev 17623
store: move _plainhybridencode and _dothybridencode higher up in the file no functional change
Wed, 19 Sep 2012 11:39:18 +0200 test-hybridencode: use store._dothybridencode(s)
Adrian Buehlmann <adrian@cadifra.com> [Wed, 19 Sep 2012 11:39:18 +0200] rev 17622
test-hybridencode: use store._dothybridencode(s) and compare it with the result of store._hybridencode(s, True)
Wed, 19 Sep 2012 11:39:07 +0200 store: fix _hashencode call in _dothybridencode
Adrian Buehlmann <adrian@cadifra.com> [Wed, 19 Sep 2012 11:39:07 +0200] rev 17621
store: fix _hashencode call in _dothybridencode Fixes 7840d81a80ec
Wed, 19 Sep 2012 12:29:12 +0200 check-code: catch yield inside try/finally (with tests)
Thomas Arendsen Hein <thomas@intevation.de> [Wed, 19 Sep 2012 12:29:12 +0200] rev 17620
check-code: catch yield inside try/finally (with tests) This is not allowed in Python 2.4.
Tue, 18 Sep 2012 16:30:21 -0700 Merge with mpm
Bryan O'Sullivan <bryano@fb.com> [Tue, 18 Sep 2012 16:30:21 -0700] rev 17619
Merge with mpm
Tue, 18 Sep 2012 16:25:20 -0700 store: use native fncache encoding function if available
Bryan O'Sullivan <bryano@fb.com> [Tue, 18 Sep 2012 16:25:20 -0700] rev 17618
store: use native fncache encoding function if available This currently falls back to Python for hashed encoding.
Tue, 18 Sep 2012 16:09:02 -0700 tests: run test-hybridencode.py over both Python and C encoders
Bryan O'Sullivan <bryano@fb.com> [Tue, 18 Sep 2012 16:09:02 -0700] rev 17617
tests: run test-hybridencode.py over both Python and C encoders This ensures that the two always give the same answers.
Tue, 18 Sep 2012 15:42:19 -0700 store: implement fncache basic path encoding in C
Bryan O'Sullivan <bryano@fb.com> [Tue, 18 Sep 2012 15:42:19 -0700] rev 17616
store: implement fncache basic path encoding in C (This is not yet enabled; it will be turned on in a followup patch.) The path encoding performed by fncache is complex and (perhaps surprisingly) slow enough to negatively affect the overall performance of Mercurial. For a short path (< 120 bytes), the Python code can be reduced to a fairly tractable state machine that either determines that nothing needs to be done in a single pass, or performs the encoding in a second pass. For longer paths, we avoid the more complicated hashed encoding scheme for now, and fall back to Python. Raw performance: I measured in a repo containing 150,000 files in its tip manifest, with a median path name length of 57 bytes, and 95th percentile of 96 bytes. In this repo, the Python code takes 3.1 seconds to encode all path names, while the hybrid C-and-Python code (called from Python) takes 0.21 seconds, for a speedup of about 14. Across several other large repositories, I've measured the speedup from the C code at between 26x and 40x. For path names above 120 bytes where we must fall back to Python for hashed encoding, the speedup is about 1.7x. Thus absolute performance will depend strongly on the characteristics of a particular repository.
Tue, 18 Sep 2012 23:32:42 +0200 rebase: ensure rebase does not revive extinct revision
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 18 Sep 2012 23:32:42 +0200] rev 17615
rebase: ensure rebase does not revive extinct revision Here, we exclude hidden changesets from a rebase operation. If we don't, a rewritten version of the hidden changesets will be created by rebase. Those rewritten versions won't be hidden and will likely conflict with other rewriting or revive pruned changeset. Moreover, rewriting hidden revisions will surprise the user. This change would not be necessary if changelog filtering were already in core. But it's fairly cheap and helps to increase the test-suite for such filtering. Once changelog level filtering is added, hidden changes will be automatically excluded or included according to the global --hidden flags. Plain ignoring them is good enough for now.
Tue, 18 Sep 2012 23:29:05 +0200 rebase: remove useless list around repo.revs
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 18 Sep 2012 23:29:05 +0200] rev 17614
rebase: remove useless list around repo.revs As repo.revs already returns a list.
Tue, 18 Sep 2012 23:42:27 +0200 rebase: properly handle --collapse when creating obsolescence marker
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 18 Sep 2012 23:42:27 +0200] rev 17613
rebase: properly handle --collapse when creating obsolescence marker In collapse mode, that content of state is not suitable to compute obsolescence markers. We explicitly pass the resulting revision instead and use it as the successors for all elements of the rebased set.
Tue, 18 Sep 2012 23:13:31 +0200 rebase: allow creation obsolescence relation instead of stripping
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 18 Sep 2012 23:13:31 +0200] rev 17612
rebase: allow creation obsolescence relation instead of stripping When obsolescence feature is enabled we now create markers from the rebased set to the resulting set instead of stripping. The "state" mapping built by rebase holds all necessary data. Changesets "deleted" by the rebase are marked "succeeded" by the changeset they would be rebased one. That the best guess of "successors" we have. Getting a successors as meaningful as possible is important for automatic resolution of obsolescence troubles. In other word, emptied changeset will looks collapsed with their former parents. (see "empty changeset" section of the test if you are still confused)
Tue, 18 Sep 2012 22:58:12 +0200 rebase: extract final changesets cleanup logic in a dedicated function
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 18 Sep 2012 22:58:12 +0200] rev 17611
rebase: extract final changesets cleanup logic in a dedicated function At the end of the rebase, rebased changesets are currently stripped. This behavior will be eventually dropped in favor of obsolescence marker creation. The main rebase function is already big and branchy enough. This changeset move the clean-up logic in a dedicated function before we make it more complex.
Tue, 18 Sep 2012 14:37:32 -0700 store: refactor hashed encoding into its own function
Bryan O'Sullivan <bryano@fb.com> [Tue, 18 Sep 2012 14:37:32 -0700] rev 17610
store: refactor hashed encoding into its own function
Tue, 18 Sep 2012 19:51:59 +0200 store: reuse direncoded path in _hybridencode
Adrian Buehlmann <adrian@cadifra.com> [Tue, 18 Sep 2012 19:51:59 +0200] rev 17609
store: reuse direncoded path in _hybridencode For a netbeans clone on Windows 7 x64: Before: $ hg perffncacheencode ! wall 3.516000 comb 3.525623 user 3.525623 sys 0.000000 (best of 3) After: $ hg perffncacheencode ! wall 3.443000 comb 3.447622 user 3.447622 sys 0.000000 (best of 3)
Tue, 18 Sep 2012 19:51:48 +0200 store: extract functions _encodefname and _decodefname
Adrian Buehlmann <adrian@cadifra.com> [Tue, 18 Sep 2012 19:51:48 +0200] rev 17608
store: extract functions _encodefname and _decodefname
Tue, 18 Sep 2012 11:44:16 +0200 store: use fast C implementation of encodedir() if it's available
Adrian Buehlmann <adrian@cadifra.com> [Tue, 18 Sep 2012 11:44:16 +0200] rev 17607
store: use fast C implementation of encodedir() if it's available For a netbeans clone on Windows 7 x64: Encoding all paths in the fncache: Before: $ hg perffncacheencode ! wall 3.639000 comb 3.634823 user 3.634823 sys 0.000000 (best of 3) After: $ hg perffncacheencode ! wall 3.470000 comb 3.463222 user 3.463222 sys 0.000000 (best of 3) Writing fncache: Before: $ hg perffncachewrite ! wall 0.103000 comb 0.093601 user 0.093601 sys 0.000000 (best of 95) After: $ hg perffncachewrite ! wall 0.081000 comb 0.078001 user 0.062400 sys 0.015600 (best of 100)
Tue, 18 Sep 2012 11:43:30 +0200 pathencode: new C module with fast encodedir() function
Adrian Buehlmann <adrian@cadifra.com> [Tue, 18 Sep 2012 11:43:30 +0200] rev 17606
pathencode: new C module with fast encodedir() function Not yet used (will be enabled in a later patch). This patch is a stripped down version of patches originally created by Bryan O'Sullivan <bryano@fb.com>
Tue, 18 Sep 2012 07:58:50 +0200 store: add multiline doctest case for encodedir()
Adrian Buehlmann <adrian@cadifra.com> [Tue, 18 Sep 2012 07:58:50 +0200] rev 17605
store: add multiline doctest case for encodedir() a followup to 64c6a0d4d4bd
Mon, 17 Sep 2012 11:00:38 +0200 store: optimize fncache._load a bit by dirdecoding the contents in one go
Adrian Buehlmann <adrian@cadifra.com> [Mon, 17 Sep 2012 11:00:38 +0200] rev 17604
store: optimize fncache._load a bit by dirdecoding the contents in one go For a netbeans clone on Windows 7 x64: Before: $ hg perffncacheload ! wall 0.124000 comb 0.124801 user 0.124801 sys 0.000000 (best of 76) After: $ hg perffncacheload ! wall 0.096000 comb 0.093601 user 0.078001 sys 0.015600 (best of 97)
Tue, 18 Sep 2012 17:00:58 +0200 wireproto: workaround for yield inside try/finally incompatible with python2.4
Thomas Arendsen Hein <thomas@intevation.de> [Tue, 18 Sep 2012 17:00:58 +0200] rev 17603
wireproto: workaround for yield inside try/finally incompatible with python2.4
Tue, 18 Sep 2012 16:19:56 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 18 Sep 2012 16:19:56 -0500] rev 17602
merge with stable
Sun, 09 Sep 2012 12:43:24 -0400 largefiles: delegate to the wrapped clone command stable
Matt Harbison <matt_harbison@yahoo.com> [Sun, 09 Sep 2012 12:43:24 -0400] rev 17601
largefiles: delegate to the wrapped clone command This allows the wrapped command's validation code to run (which is currently only to ensure 'noupdate' and 'updaterev' aren't both specified), the copy/pasted unpacking of hg.clone() args to be removed, and any future changes to the base command (however unlikely) to be inherited by largefiles. Unfortunately, the command override can't be swapped entirely for an hg.clone() override because the extra --all-largefiles arg needs to be injected. It also isn't enough to call the wrapped clone command and leave the caching code after it, because the file caching code needs access to the destination repo, which is only available from hg.clone(). An alternative would be to use the dest path in the clone command override to re-obtain a reference to the repo. A slight deviation from the regular hg.clone() function is that the repo is NOT deleted if the caching fails, but that was also the previous behavior. Maybe it should for consistency?
Sun, 09 Sep 2012 12:09:53 -0400 largefiles: don't convert dest=None to dest=hg.defaultdest() in clone command stable
Matt Harbison <matt_harbison@yahoo.com> [Sun, 09 Sep 2012 12:09:53 -0400] rev 17600
largefiles: don't convert dest=None to dest=hg.defaultdest() in clone command A status message is output if hg.clone() determines the default destination because None was provided. The previous code never passed None to hg.clone().
Sun, 09 Sep 2012 03:37:38 -0400 largefiles: restore caching of largefiles with 'clone -U --all-largefiles' stable
Matt Harbison <matt_harbison@yahoo.com> [Sun, 09 Sep 2012 03:37:38 -0400] rev 17599
largefiles: restore caching of largefiles with 'clone -U --all-largefiles' This was broken when restoring normal -u and -U functionality.
Sat, 08 Sep 2012 13:31:06 -0400 largefiles: restore normal 'clone -u' and 'clone -U' functionality stable
Matt Harbison <matt_harbison@yahoo.com> [Sat, 08 Sep 2012 13:31:06 -0400] rev 17598
largefiles: restore normal 'clone -u' and 'clone -U' functionality Previously, tip would be checked out regardless of the -u or -U parameter. I'm not sure what the 'required for successful walkchangerevs' comment meant, but it appears to reference code which has since moved to downloadlfiles() in 7d6a660ca151. Perhaps it was to force caching when the -U parameter is given? The price of this change is that -U --all-largefiles won't cache anything. That will be fixed next. Note that X + Y in the 'X largefiles updated, n removed' and 'Y additional largefiles cached' lines do not add up to the same values in these tests, but all of the largefiles have been downloaded. The reason being that several largefiles have the same content (eb7338044 is pointed to by sub/large2, large3 and sub/large4). In the 'clone -u 1' operation, this largefile is cached to populate the working directory, even without --all-largefiles. That means the file isn't downloaded again and cached in the rev where large3 and sub/large4 both point to this file. Downloading that one file in that one rev seems to be counted twice with 'clone -u 0'. (Maybe it is also being downloaded twice?)
Sat, 15 Sep 2012 22:50:34 -0400 formatter: add base implementation of data method
David M. Carr <david@carrclan.us> [Sat, 15 Sep 2012 22:50:34 -0400] rev 17597
formatter: add base implementation of data method Previously, nothing was done with the passed in values, which clearly wasn't the intention.
Tue, 18 Sep 2012 15:36:58 +0200 merge with stable
Thomas Arendsen Hein <thomas@intevation.de> [Tue, 18 Sep 2012 15:36:58 +0200] rev 17596
merge with stable
Tue, 18 Sep 2012 15:30:22 +0200 merge with main
Thomas Arendsen Hein <thomas@intevation.de> [Tue, 18 Sep 2012 15:30:22 +0200] rev 17595
merge with main
Tue, 18 Sep 2012 15:29:43 +0200 largefiles: fix trailing spaces in test-largefiles.t stable
Thomas Arendsen Hein <thomas@intevation.de> [Tue, 18 Sep 2012 15:29:43 +0200] rev 17594
largefiles: fix trailing spaces in test-largefiles.t With the default branch this will cause warnings from check-code.
Sun, 16 Sep 2012 22:43:24 +0200 test-hybridencode: add a case for direncode
Adrian Buehlmann <adrian@cadifra.com> [Sun, 16 Sep 2012 22:43:24 +0200] rev 17593
test-hybridencode: add a case for direncode
Mon, 17 Sep 2012 08:58:35 +0200 store: optimize fncache._write by direncoding the contents in one go
Adrian Buehlmann <adrian@cadifra.com> [Mon, 17 Sep 2012 08:58:35 +0200] rev 17592
store: optimize fncache._write by direncoding the contents in one go For a netbeans clone on Windows 7 x64: Before: $ hg perffncachewrite ! wall 0.210000 comb 0.218401 user 0.202801 sys 0.015600 (best of 47) After: $ hg perffncachewrite ! wall 0.104000 comb 0.109201 user 0.078000 sys 0.031200 (best of 95)
Sun, 16 Sep 2012 11:41:02 +0200 store: move encode lambda logic into fncachestore
Adrian Buehlmann <adrian@cadifra.com> [Sun, 16 Sep 2012 11:41:02 +0200] rev 17591
store: move encode lambda logic into fncachestore and define two named functions at module scope. This again also speeds up perffncacheencode a little bit.
Sun, 16 Sep 2012 11:36:14 +0200 store: eliminate one level of lambda functions on _hybridencode
Adrian Buehlmann <adrian@cadifra.com> [Sun, 16 Sep 2012 11:36:14 +0200] rev 17590
store: eliminate one level of lambda functions on _hybridencode
Sun, 16 Sep 2012 11:36:06 +0200 store: parameter path of _auxencode is now a list of strings
Adrian Buehlmann <adrian@cadifra.com> [Sun, 16 Sep 2012 11:36:06 +0200] rev 17589
store: parameter path of _auxencode is now a list of strings
Sun, 16 Sep 2012 11:36:00 +0200 store: keep an accumulated length for the shorted dirs in _hybridencode
Adrian Buehlmann <adrian@cadifra.com> [Sun, 16 Sep 2012 11:36:00 +0200] rev 17588
store: keep an accumulated length for the shorted dirs in _hybridencode so we don't have to repeatedly do '/'.join(sdirs) inside the loop
Sun, 16 Sep 2012 11:35:55 +0200 store: reorder basename assignment in _hybridencode
Adrian Buehlmann <adrian@cadifra.com> [Sun, 16 Sep 2012 11:35:55 +0200] rev 17587
store: reorder basename assignment in _hybridencode
Sat, 15 Sep 2012 21:44:08 +0200 store: remove uneeded startswith('data/') checks in encodedir() and decodedir()
Adrian Buehlmann <adrian@cadifra.com> [Sat, 15 Sep 2012 21:44:08 +0200] rev 17586
store: remove uneeded startswith('data/') checks in encodedir() and decodedir() I don't think we will ever have anything in the store that resides inside a directory that ends in .i or .d under store/ that we wouldn't want to have direncoded. The files not under data/ surely don't need direncoding, but it doesn't harm to let these few run through it. It hurts more to check whether the thousands of other files start with 'data/'. They do anyway. See also 810387f59696 (fixed with c31fe74a6633), which moved the direncoding from filelog into store
Sat, 15 Sep 2012 21:43:56 +0200 store: remove uneeded startswith('data/') check in _hybridencode()
Adrian Buehlmann <adrian@cadifra.com> [Sat, 15 Sep 2012 21:43:56 +0200] rev 17585
store: remove uneeded startswith('data/') check in _hybridencode()
Sat, 15 Sep 2012 21:43:14 +0200 store: refactor splitting off of "data/" in _hybridencode()
Adrian Buehlmann <adrian@cadifra.com> [Sat, 15 Sep 2012 21:43:14 +0200] rev 17584
store: refactor splitting off of "data/" in _hybridencode() encodefilename() already calls encodedir(). Note that encodedir() skips the encoding if the path doesn't start with "data/".
Mon, 17 Sep 2012 15:13:17 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 17 Sep 2012 15:13:17 -0500] rev 17583
merge with stable
Mon, 17 Sep 2012 15:13:03 -0500 merge with crew stable
Matt Mackall <mpm@selenic.com> [Mon, 17 Sep 2012 15:13:03 -0500] rev 17582
merge with crew
Mon, 17 Sep 2012 21:53:50 +0200 Merge with stable
Patrick Mezard <patrick@mezard.eu> [Mon, 17 Sep 2012 21:53:50 +0200] rev 17581
Merge with stable
Mon, 17 Sep 2012 21:33:16 +0200 hgweb: fix incorrect graph padding calculation (issue3626) stable
Tim Delaney <timothy.c.delaney@gmail.com> [Mon, 17 Sep 2012 21:33:16 +0200] rev 17580
hgweb: fix incorrect graph padding calculation (issue3626) hgweb has an incorrect padding calculation, causing the text to move further away from the graph the more branches there are (issue3626). This patch fixes all existing templates (gitweb, monoblue, paper and spartan). Tests updated by Patrick Mezard <patrick@mezard.eu>
Wed, 05 Sep 2012 22:42:23 -0400 largefiles: preserve the exit status of the forget command stable
Matt Harbison <matt_harbison@yahoo.com> [Wed, 05 Sep 2012 22:42:23 -0400] rev 17579
largefiles: preserve the exit status of the forget command This maintains the exit codes documented in commands.py.
Wed, 05 Sep 2012 22:31:03 -0400 largefiles: preserve the exit status of the rebase command stable
Matt Harbison <matt_harbison@yahoo.com> [Wed, 05 Sep 2012 22:31:03 -0400] rev 17578
largefiles: preserve the exit status of the rebase command
Wed, 05 Sep 2012 22:12:40 -0400 largefiles: preserve the exit status of the log command stable
Matt Harbison <matt_harbison@yahoo.com> [Wed, 05 Sep 2012 22:12:40 -0400] rev 17577
largefiles: preserve the exit status of the log command
Sun, 09 Sep 2012 20:18:08 -0400 largefiles: exit from remove with 1 on warnings stable
Matt Harbison <matt_harbison@yahoo.com> [Sun, 09 Sep 2012 20:18:08 -0400] rev 17576
largefiles: exit from remove with 1 on warnings This maintains the exit codes documented in commands.py.
Wed, 05 Sep 2012 21:26:08 -0400 largefiles: preserve exit code from outgoing command (issue3611) stable
Matt Harbison <matt_harbison@yahoo.com> [Wed, 05 Sep 2012 21:26:08 -0400] rev 17575
largefiles: preserve exit code from outgoing command (issue3611) This maintains the exit codes documented in commands.py.
Sat, 15 Sep 2012 21:43:05 +0200 store: let _auxencode() return the list of path segments
Adrian Buehlmann <adrian@cadifra.com> [Sat, 15 Sep 2012 21:43:05 +0200] rev 17574
store: let _auxencode() return the list of path segments so we can spare us splitting the path again in _hybridencode()
Sat, 15 Sep 2012 21:42:58 +0200 store: eliminate unneded last assignment to n in _auxencode()
Adrian Buehlmann <adrian@cadifra.com> [Sat, 15 Sep 2012 21:42:58 +0200] rev 17573
store: eliminate unneded last assignment to n in _auxencode() The check for period or space at the end of the string is the last one, the local variable n is thus not used anymore.
Sat, 15 Sep 2012 21:42:52 +0200 store: unindent most of the contents of the for loop in _auxencode()
Adrian Buehlmann <adrian@cadifra.com> [Sat, 15 Sep 2012 21:42:52 +0200] rev 17572
store: unindent most of the contents of the for loop in _auxencode() by refactoring for i, n in enumerate(res): if n: <main code block> to for i, n in enumerate(res): if not n: continue <main code block> (no functional change)
Sat, 15 Sep 2012 21:42:43 +0200 store: optimize _auxencode() by assigning to the list elements of the path
Adrian Buehlmann <adrian@cadifra.com> [Sat, 15 Sep 2012 21:42:43 +0200] rev 17571
store: optimize _auxencode() by assigning to the list elements of the path
Sat, 15 Sep 2012 21:41:09 +0200 store: optimze _auxencode() a bit by grouping the reserved names by length
Adrian Buehlmann <adrian@cadifra.com> [Sat, 15 Sep 2012 21:41:09 +0200] rev 17570
store: optimze _auxencode() a bit by grouping the reserved names by length This reduces perffncacheencode wall time on Windows 7 x64 for my netbeans clone here from 4.3 to 4.0 (7% faster).
Sat, 15 Sep 2012 21:41:53 +0200 store: explain "aux.foo" versus "foo.aux" in doc of _auxencode()
Adrian Buehlmann <adrian@cadifra.com> [Sat, 15 Sep 2012 21:41:53 +0200] rev 17569
store: explain "aux.foo" versus "foo.aux" in doc of _auxencode()
Sat, 15 Sep 2012 21:41:45 +0200 store: add 'com0' and 'lpt0' doctest cases for _auxencode()
Adrian Buehlmann <adrian@cadifra.com> [Sat, 15 Sep 2012 21:41:45 +0200] rev 17568
store: add 'com0' and 'lpt0' doctest cases for _auxencode() These are already covered by test-hybridencode.py, but they are so noteworthy that I think they deserve being shown right in that doctest.
Sat, 15 Sep 2012 08:38:02 +0200 wireproto: fix check-code.py breakage introduced by 6d97dd630d79
Patrick Mezard <patrick@mezard.eu> [Sat, 15 Sep 2012 08:38:02 +0200] rev 17567
wireproto: fix check-code.py breakage introduced by 6d97dd630d79
Sat, 15 Sep 2012 00:06:08 +0400 record: fix display of non-ASCII names in chunk selection
Nikolaj Sjujskij <sterkrig@myopera.com> [Sat, 15 Sep 2012 00:06:08 +0400] rev 17566
record: fix display of non-ASCII names in chunk selection b013baa3898e fixed display of non-ASCII names in file-selecting prompt, but display in chunk selection remained broken. The reason is that using '%r' in string formatting results in calling `repr` on file names, thus mangling non-ASCII ones.
Fri, 14 Sep 2012 21:05:24 +0200 tests: enable even more Windows server tests
Patrick Mezard <patrick@mezard.eu> [Fri, 14 Sep 2012 21:05:24 +0200] rev 17565
tests: enable even more Windows server tests
Fri, 14 Sep 2012 20:40:52 +0200 test-obsolete-checkheads: fix on windows
Patrick Mezard <patrick@mezard.eu> [Fri, 14 Sep 2012 20:40:52 +0200] rev 17564
test-obsolete-checkheads: fix on windows
Fri, 14 Sep 2012 12:09:44 -0700 sshserver: avoid a multi-dot attribute lookup in a hot loop
Bryan O'Sullivan <bryano@fb.com> [Fri, 14 Sep 2012 12:09:44 -0700] rev 17563
sshserver: avoid a multi-dot attribute lookup in a hot loop This improves stream_out performance by about 3%.
Fri, 14 Sep 2012 12:09:05 -0700 store: reduce string concatenation when joining
Bryan O'Sullivan <bryano@fb.com> [Fri, 14 Sep 2012 12:09:05 -0700] rev 17562
store: reduce string concatenation when joining This improves stream_out performance by a couple of percent.
Fri, 14 Sep 2012 12:08:55 -0700 scmutil: use the new faster path split
Bryan O'Sullivan <bryano@fb.com> [Fri, 14 Sep 2012 12:08:55 -0700] rev 17561
scmutil: use the new faster path split Combined with a few other patches in this series, this contributes to improving stream_out performance by 10%.
Fri, 14 Sep 2012 12:08:17 -0700 util: implement a faster os.path.split for posix systems
Bryan O'Sullivan <bryano@fb.com> [Fri, 14 Sep 2012 12:08:17 -0700] rev 17560
util: implement a faster os.path.split for posix systems This is not yet used.
Fri, 14 Sep 2012 12:07:33 -0700 scmutil: make join cheaper
Bryan O'Sullivan <bryano@fb.com> [Fri, 14 Sep 2012 12:07:33 -0700] rev 17559
scmutil: make join cheaper Combined with a few followup patches, this contributes to improving stream_out performance by 10%.
Fri, 14 Sep 2012 12:06:40 -0700 wireproto: don't format a debug string inside a hot loop
Bryan O'Sullivan <bryano@fb.com> [Fri, 14 Sep 2012 12:06:40 -0700] rev 17558
wireproto: don't format a debug string inside a hot loop This improves stream_out performance by about 5%.
Fri, 14 Sep 2012 12:05:37 -0700 wireproto: bypass filechunkiter for small files when streaming
Bryan O'Sullivan <bryano@fb.com> [Fri, 14 Sep 2012 12:05:37 -0700] rev 17557
wireproto: bypass filechunkiter for small files when streaming Merely creating and using a generator has a measurable impact, particularly since the common case for stream_out is generators that yield just once. Avoiding generators improves stream_out performance by about 7%.
Fri, 14 Sep 2012 12:05:12 -0700 wireproto: don't audit local paths during stream_out
Bryan O'Sullivan <bryano@fb.com> [Fri, 14 Sep 2012 12:05:12 -0700] rev 17556
wireproto: don't audit local paths during stream_out Auditing at this stage is both pointless (paths are already trusted by the local repo) and expensive. Skipping the audits improves stream_out performance by about 15%.
Fri, 14 Sep 2012 12:04:46 -0700 scmutil: delegate mustaudit property to the real opener
Bryan O'Sullivan <bryano@fb.com> [Fri, 14 Sep 2012 12:04:46 -0700] rev 17555
scmutil: delegate mustaudit property to the real opener This will be used by an upcoming patch.
Fri, 14 Sep 2012 12:04:35 -0700 scmutil: turn opener._audit into a property, mustaudit
Bryan O'Sullivan <bryano@fb.com> [Fri, 14 Sep 2012 12:04:35 -0700] rev 17554
scmutil: turn opener._audit into a property, mustaudit This will be used by an upcoming patch.
Fri, 14 Sep 2012 13:02:31 +0200 perf: add perffncacheencode
Adrian Buehlmann <adrian@cadifra.com> [Fri, 14 Sep 2012 13:02:31 +0200] rev 17553
perf: add perffncacheencode Examples (all done with somewhat dated clones I found on my disk): Netbeans (~120k entries in fncache): $ hg perffncacheencode ! wall 4.338000 comb 4.336828 user 4.336828 sys 0.000000 (best of 3) Openoffice (~77k entries in fncache)): $ hg perffncacheencode ! wall 1.533000 comb 1.528810 user 1.528810 sys 0.000000 (best of 7) Xen (~10k entries in fncache): $ hg perffncacheencode ! wall 0.198000 comb 0.187201 user 0.187201 sys 0.000000 (best of 51) Done on Windows 7 x64.
Thu, 13 Sep 2012 17:00:56 -0700 Merge with mpm
Bryan O'Sullivan <bryano@fb.com> [Thu, 13 Sep 2012 17:00:56 -0700] rev 17552
Merge with mpm
Sun, 26 Aug 2012 01:28:22 +0200 bookmark: take successors into account when updating (issue3561)
Pierre-Yves David <pierre-yves.david@logilab.fr> [Sun, 26 Aug 2012 01:28:22 +0200] rev 17551
bookmark: take successors into account when updating (issue3561) When we rewrite a bookmarked changeset, we want to update the bookmark on its successors. But the successors are not descendants of its precursor (by definition). This changeset alters the bookmarks logic to update bookmark location if the newer location is a successor of the old one[1]. note: valid destinations are in fact any kind of successors of any kind of descendants (recursively.) This changeset requires the enabling of the obsolete feature in some bookmark tests.
Sun, 26 Aug 2012 00:28:56 +0200 bookmarks: extract valid destination logic in a dedicated function
Pierre-Yves David <pierre-yves.david@logilab.fr> [Sun, 26 Aug 2012 00:28:56 +0200] rev 17550
bookmarks: extract valid destination logic in a dedicated function We usually update bookmarks only if the new location is descendant of the old bookmarks location. We extract this logic into a function. This is the first step to allow more complex logic using obsolescence in this validation of the bookmark movement.
Sun, 26 Aug 2012 00:27:44 +0200 checkheads: don't warn about unsynced changes that we ill obsolete
Pierre-Yves David <pierre-yves.david@logilab.fr> [Sun, 26 Aug 2012 00:27:44 +0200] rev 17549
checkheads: don't warn about unsynced changes that we ill obsolete We won't be able to pull them after this push.
Sun, 26 Aug 2012 00:25:33 +0200 checkheads: check successors for new heads in both missing and common
Pierre-Yves David <pierre-yves.david@logilab.fr> [Sun, 26 Aug 2012 00:25:33 +0200] rev 17548
checkheads: check successors for new heads in both missing and common A relevant obsolete marker may have been added -after- we previously exchanged the changeset. We have to search for remote heads that disappear by the sole fact of pushing obsolescence. This case will also happen when remote got the new version from a repository that does not propagate obsolescence markers.
Fri, 24 Aug 2012 16:52:45 +0200 checkheads: attend to phases when computing new heads with obsolete
Pierre-Yves David <pierre-yves.david@logilab.fr> [Fri, 24 Aug 2012 16:52:45 +0200] rev 17547
checkheads: attend to phases when computing new heads with obsolete Checkheads was more permissive than expected. When the remote heads are public we don't need to search for successors. None will make a public head disappear.
Wed, 01 Aug 2012 19:35:05 +0200 test: add testing of checkheads behavior with obsolete
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 01 Aug 2012 19:35:05 +0200] rev 17546
test: add testing of checkheads behavior with obsolete Expected behavior is quite complex. Explicit testing with clear scenarios is welcome.
Thu, 13 Sep 2012 14:33:10 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Thu, 13 Sep 2012 14:33:10 -0500] rev 17545
merge with stable
Tue, 11 Sep 2012 10:59:21 -0300 i18n-pt_BR: synchronized with f5e86b416e05 stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Tue, 11 Sep 2012 10:59:21 -0300] rev 17544
i18n-pt_BR: synchronized with f5e86b416e05
Tue, 11 Sep 2012 10:56:23 -0300 merge with i18n stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Tue, 11 Sep 2012 10:56:23 -0300] rev 17543
merge with i18n
Mon, 10 Sep 2012 09:40:42 +0200 i18n-de: Remove unused sprintf parameter stable
Martin Schröder <martin.schroeder@nerdluecht.de> [Mon, 10 Sep 2012 09:40:42 +0200] rev 17542
i18n-de: Remove unused sprintf parameter
Sat, 28 Jul 2012 23:28:17 +0200 tests: unset variable HG if it is set
Simon Heimberg <simohe@besonet.ch> [Sat, 28 Jul 2012 23:28:17 +0200] rev 17541
tests: unset variable HG if it is set When hg tries to call itself it can call a different hg executable when this variable is set. Some tests fail when the called hg version is different.
Thu, 13 Sep 2012 17:46:34 +0200 test-hybridencode: a few more cases
Adrian Buehlmann <adrian@cadifra.com> [Thu, 13 Sep 2012 17:46:34 +0200] rev 17540
test-hybridencode: a few more cases
Wed, 12 Sep 2012 22:21:54 +0200 tests: enable more server tests on Windows
Patrick Mezard <patrick@mezard.eu> [Wed, 12 Sep 2012 22:21:54 +0200] rev 17539
tests: enable more server tests on Windows
Wed, 12 Sep 2012 22:31:54 +0200 test-static-http.t: enable on Windows
Patrick Mezard <patrick@mezard.eu> [Wed, 12 Sep 2012 22:31:54 +0200] rev 17538
test-static-http.t: enable on Windows We cannot read $! to get the background job process identifier, with MinGW it can return internal identifiers not matching the native Windows ones. Instead we introduce a helper script polling on the pid file. We assume the pid file data will be written in order.
Tue, 11 Sep 2012 08:36:09 -0700 Merge spelling fixes
Bryan O'Sullivan <bryano@fb.com> [Tue, 11 Sep 2012 08:36:09 -0700] rev 17537
Merge spelling fixes
Fri, 17 Aug 2012 13:58:19 -0700 spelling: requested
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:19 -0700] rev 17536
spelling: requested
Fri, 17 Aug 2012 13:58:19 -0700 en-us: serialization
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:19 -0700] rev 17535
en-us: serialization
Fri, 17 Aug 2012 13:58:19 -0700 en-us: recognized
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:19 -0700] rev 17534
en-us: recognized
Fri, 17 Aug 2012 13:58:19 -0700 en-us: penalize
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:19 -0700] rev 17533
en-us: penalize
Fri, 17 Aug 2012 13:58:19 -0700 en-us: initialization
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:19 -0700] rev 17532
en-us: initialization
Fri, 17 Aug 2012 13:58:19 -0700 en-us: Initialize
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:19 -0700] rev 17531
en-us: Initialize
Fri, 17 Aug 2012 13:58:19 -0700 grammar: it-handles
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:19 -0700] rev 17530
grammar: it-handles
Fri, 17 Aug 2012 13:58:19 -0700 grammar: rolled-back
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:19 -0700] rev 17529
grammar: rolled-back
Fri, 17 Aug 2012 13:58:19 -0700 grammar: just-the-heads
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:19 -0700] rev 17528
grammar: just-the-heads
Fri, 17 Aug 2012 13:58:19 -0700 spelling: value
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:19 -0700] rev 17527
spelling: value
Fri, 17 Aug 2012 13:58:19 -0700 spelling: update
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:19 -0700] rev 17526
spelling: update
Fri, 17 Aug 2012 13:58:19 -0700 spelling: transferred
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:19 -0700] rev 17525
spelling: transferred
Fri, 17 Aug 2012 13:58:19 -0700 spelling: transaction
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:19 -0700] rev 17524
spelling: transaction
Fri, 17 Aug 2012 13:58:19 -0700 spelling: thoroughly
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:19 -0700] rev 17523
spelling: thoroughly
Fri, 17 Aug 2012 13:58:19 -0700 spelling: syntactic
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:19 -0700] rev 17522
spelling: syntactic
Fri, 17 Aug 2012 13:58:19 -0700 spelling: synchronize
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:19 -0700] rev 17521
spelling: synchronize
Fri, 17 Aug 2012 13:58:19 -0700 spelling: supersede
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:19 -0700] rev 17520
spelling: supersede
Fri, 17 Aug 2012 13:58:19 -0700 spelling: successfully
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:19 -0700] rev 17519
spelling: successfully
Fri, 17 Aug 2012 13:58:19 -0700 spelling: succeeded
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:19 -0700] rev 17518
spelling: succeeded
Fri, 17 Aug 2012 13:58:19 -0700 spelling: Structured
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:19 -0700] rev 17517
spelling: Structured
Fri, 17 Aug 2012 13:58:19 -0700 spelling: split
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:19 -0700] rev 17516
spelling: split
Fri, 17 Aug 2012 13:58:19 -0700 spelling: specific
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:19 -0700] rev 17515
spelling: specific
Fri, 17 Aug 2012 13:58:19 -0700 spelling: shouldn't
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:19 -0700] rev 17514
spelling: shouldn't
Fri, 17 Aug 2012 13:58:19 -0700 spelling: sentinel
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:19 -0700] rev 17513
spelling: sentinel
Fri, 17 Aug 2012 13:58:19 -0700 spelling: responsibility
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:19 -0700] rev 17512
spelling: responsibility
Fri, 17 Aug 2012 13:58:18 -0700 spelling: relies
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:18 -0700] rev 17511
spelling: relies
Fri, 17 Aug 2012 13:58:18 -0700 spelling: release
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:18 -0700] rev 17510
spelling: release
Fri, 17 Aug 2012 13:58:18 -0700 spelling: recursion
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:18 -0700] rev 17509
spelling: recursion
Fri, 17 Aug 2012 13:58:18 -0700 spelling: propagated
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:18 -0700] rev 17508
spelling: propagated
Fri, 17 Aug 2012 13:58:18 -0700 spelling: primarily
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:18 -0700] rev 17507
spelling: primarily
Fri, 17 Aug 2012 13:58:18 -0700 spelling: prior
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:18 -0700] rev 17506
spelling: prior
Fri, 17 Aug 2012 13:58:18 -0700 spelling: precede
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:18 -0700] rev 17505
spelling: precede
Fri, 17 Aug 2012 13:58:18 -0700 spelling: override
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:18 -0700] rev 17504
spelling: override
Fri, 17 Aug 2012 13:58:18 -0700 spelling: operations
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:18 -0700] rev 17503
spelling: operations
(0) -10000 -3000 -1000 -240 +240 +1000 +3000 +10000 +30000 tip