Thu, 13 Dec 2012 15:38:43 +0100 obsolete: compute successors set
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 13 Dec 2012 15:38:43 +0100] rev 18068
obsolete: compute successors set Successors set are an important part of obsolescence. It is necessary to detect and solve divergence situation. This changeset add a core function to compute them, a debug command to audit them and solid test on the concept. Check function docstring for details about the concept.
Sun, 09 Dec 2012 00:25:21 +0100 mq: don't fail when removing a patch without patch file from series file
Mads Kiilerich <mads@kiilerich.com> [Sun, 09 Dec 2012 00:25:21 +0100] rev 18067
mq: don't fail when removing a patch without patch file from series file
Thu, 13 Dec 2012 19:19:06 +0100 largefiles: align rm warnings with warnings used in core
Mads Kiilerich <madski@unity3d.com> [Thu, 13 Dec 2012 19:19:06 +0100] rev 18066
largefiles: align rm warnings with warnings used in core
Thu, 13 Dec 2012 21:34:55 +0100 merge with stable
Mads Kiilerich <madski@unity3d.com> [Thu, 13 Dec 2012 21:34:55 +0100] rev 18065
merge with stable
Mon, 10 Dec 2012 14:58:42 +0100 largefiles: commit directories that only contain largefiles (issue3548) stable
Levi Bard <levi@unity3d.com> [Mon, 10 Dec 2012 14:58:42 +0100] rev 18064
largefiles: commit directories that only contain largefiles (issue3548) If we pass a directory to commit whose only commitable files are largefiles, the core commit code aborts before finding the largefiles. So we do the following: For directories that only have largefiles as matches, we explicitly add the largefiles to the matchlist and remove the directory. In other cases, we leave the match list unmodified.
Fri, 07 Dec 2012 10:37:43 -0800 revset.children: ignore rev numbers that are too low
Siddharth Agarwal <sid0@fb.com> [Fri, 07 Dec 2012 10:37:43 -0800] rev 18063
revset.children: ignore rev numbers that are too low This replaces unnecessary parentrevs() calls with calculating min(parentset). Even though the min operation is O(size of parentset), since parentrevs is relatively expensive, this tradeoff almost always works in our favour. In a repository with over 400,000 changesets, hg perfrevset "children(X)" takes: Set X Before After -1 0.51s 0.06s -1000: 0.55s 0.08s -10000: 0.56s 0.10s -100000: 0.60s 0.25s -100000:-99000 0.55s 0.19s 0:100000 0.60s 0.61s all() 0.72s 0.74s The relative performance is similar for Mercurial's own repository -- several times faster in most cases, slightly slower for revisions close to 0 and all().
Thu, 06 Dec 2012 11:21:11 -0800 perf: add a command to measure revset performance
Siddharth Agarwal <sid0@fb.com> [Thu, 06 Dec 2012 11:21:11 -0800] rev 18062
perf: add a command to measure revset performance
Wed, 12 Dec 2012 15:17:18 -0800 run-tests: fix whitespace nonsense
Bryan O'Sullivan <bos@serpentine.com> [Wed, 12 Dec 2012 15:17:18 -0800] rev 18061
run-tests: fix whitespace nonsense
Wed, 12 Dec 2012 15:12:28 -0800 merge with mpm
Bryan O'Sullivan <bos@serpentine.com> [Wed, 12 Dec 2012 15:12:28 -0800] rev 18060
merge with mpm
Wed, 12 Dec 2012 14:52:58 -0800 run-tests: on windows, put correct python at front of PATH
Bryan O'Sullivan <bryano@fb.com> [Wed, 12 Dec 2012 14:52:58 -0800] rev 18059
run-tests: on windows, put correct python at front of PATH The older approach of trying to copy the python executable into the test directory was doomed to fail. There remains one weakness with this approach: if you've run "make local", tests may pick up the wrong extension DLLs from inside the source tree. I don't know why this happens. A reasonable workaround for now is to test either using --local or with a working directory that does not contain built DLLs.
Tue, 11 Dec 2012 15:38:42 -0800 run-tests: fix exename on Windows
Siddharth Agarwal <sid0@fb.com> [Tue, 11 Dec 2012 15:38:42 -0800] rev 18058
run-tests: fix exename on Windows
Tue, 11 Dec 2012 15:13:23 -0800 run-tests: support running tests in parallel on windows
Bryan O'Sullivan <bryano@fb.com> [Tue, 11 Dec 2012 15:13:23 -0800] rev 18057
run-tests: support running tests in parallel on windows Previously, we used os.spawnvp, which doesn't exist on Windows, and isn't needed anyway (the command line begins with an absolute path). We also need a slightly more convoluted way to wait for processes without specifying an order on Windows, as it lacks os.wait.
Tue, 11 Dec 2012 13:44:00 -0800 makefile: allow local builds to work on windows/mingw32
Bryan O'Sullivan <bryano@fb.com> [Tue, 11 Dec 2012 13:44:00 -0800] rev 18056
makefile: allow local builds to work on windows/mingw32
Sun, 09 Dec 2012 23:33:16 +0100 check-code: make 'missing whitespace in assignment' more aggressive
Mads Kiilerich <madski@unity3d.com> [Sun, 09 Dec 2012 23:33:16 +0100] rev 18055
check-code: make 'missing whitespace in assignment' more aggressive New warnings: > a.b=ab missing whitespace in assignment (the pattern did not accept '.' on the left hand side) > a=a missing whitespace in assignment (the right hand side pattern never matched a single character) > a=a + 7 missing whitespace in assignment (the pattern only matched one character after the identifier following =)
Sun, 09 Dec 2012 23:33:16 +0100 check-code: there must also be whitespace between ')' and operator
Mads Kiilerich <madski@unity3d.com> [Sun, 09 Dec 2012 23:33:16 +0100] rev 18054
check-code: there must also be whitespace between ')' and operator The check pattern only checked for whitespace between keyword and operator. Now it also warns: > x = f(),7 missing whitespace after , > x = f()+7 missing whitespace in expression
Sun, 09 Dec 2012 23:33:16 +0100 rm: drop misleading 'use -f' hint for the rm --after 'not removing' warning
Mads Kiilerich <madski@unity3d.com> [Sun, 09 Dec 2012 23:33:16 +0100] rev 18053
rm: drop misleading 'use -f' hint for the rm --after 'not removing' warning A warning mentioning 'forgetting' or 'recording delete' would be more correct than 'not removing' but also more confusing.
Sun, 09 Dec 2012 23:33:16 +0100 contrib: state explicitly how hgtest.vim can be installed
Mads Kiilerich <madski@unity3d.com> [Sun, 09 Dec 2012 23:33:16 +0100] rev 18052
contrib: state explicitly how hgtest.vim can be installed
Sun, 09 Dec 2012 23:33:16 +0100 tests: kill daemons early, making breaking at "Accept" prompt safe
Mads Kiilerich <madski@unity3d.com> [Sun, 09 Dec 2012 23:33:16 +0100] rev 18051
tests: kill daemons early, making breaking at "Accept" prompt safe
Mon, 10 Dec 2012 12:14:55 -0800 run-tests: use correct python safely under --jobs
Bryan O'Sullivan <bryano@fb.com> [Mon, 10 Dec 2012 12:14:55 -0800] rev 18050
run-tests: use correct python safely under --jobs
Mon, 10 Dec 2012 12:09:02 -0800 run-tests: check for the correct python when starting
Bryan O'Sullivan <bryano@fb.com> [Mon, 10 Dec 2012 12:09:02 -0800] rev 18049
run-tests: check for the correct python when starting
Mon, 10 Dec 2012 12:07:42 -0800 run-tests: use correct python when run with --local
Bryan O'Sullivan <bryano@fb.com> [Mon, 10 Dec 2012 12:07:42 -0800] rev 18048
run-tests: use correct python when run with --local
Mon, 10 Dec 2012 11:18:03 -0800 synthrepo: do not crash if a list is empty
Bryan O'Sullivan <bryano@fb.com> [Mon, 10 Dec 2012 11:18:03 -0800] rev 18047
synthrepo: do not crash if a list is empty
Tue, 27 Nov 2012 22:24:02 +0100 hgwebdir: do not show RSS and Atom links for plain directories
Angel Ezquerra <angel.ezquerra@gmail.com> [Tue, 27 Nov 2012 22:24:02 +0100] rev 18046
hgwebdir: do not show RSS and Atom links for plain directories Up until now the templates that show RSS and Atom feeds on the "repository lists" (i.e. gitweb and monoblue) showed them for all entries, including regular folders. Clicking on those "folder RSS" links would result in an error page being shown. This patch hides those links for regular folders.
Tue, 04 Dec 2012 00:37:50 +0100 hgweb: add branches RSS and Atom feeds
Angel Ezquerra <angel.ezquerra@gmail.com> [Tue, 04 Dec 2012 00:37:50 +0100] rev 18045
hgweb: add branches RSS and Atom feeds There were no RSS nor Atom feeds for the branches page. Different hgweb templates linked to different feeds on their branches page (some linked to the tags feed, some to the log feed and some to the unexisting branches feed).
Fri, 07 Dec 2012 12:03:37 -0600 push: reunite comment with the line of code it describes
Kevin Bullock <kbullock@ringworld.org> [Fri, 07 Dec 2012 12:03:37 -0600] rev 18044
push: reunite comment with the line of code it describes
Fri, 07 Dec 2012 11:30:38 -0600 bookmarks: spelling correction in docstring
Kevin Bullock <kbullock@ringworld.org> [Fri, 07 Dec 2012 11:30:38 -0600] rev 18043
bookmarks: spelling correction in docstring
Thu, 06 Dec 2012 22:07:44 -0600 merge: fix mistake in moved _checkcollision call from 5881d5b7552f
Kevin Bullock <kbullock@ringworld.org> [Thu, 06 Dec 2012 22:07:44 -0600] rev 18042
merge: fix mistake in moved _checkcollision call from 5881d5b7552f
Thu, 06 Dec 2012 16:56:44 -0600 windows: correctly pass a mode to S_IFMT in statfiles
Matt Mackall <mpm@selenic.com> [Thu, 06 Dec 2012 16:56:44 -0600] rev 18041
windows: correctly pass a mode to S_IFMT in statfiles
Wed, 05 Dec 2012 14:33:15 -0800 strip: make query to get new bookmark target cheaper
Siddharth Agarwal <sid0@fb.com> [Wed, 05 Dec 2012 14:33:15 -0800] rev 18040
strip: make query to get new bookmark target cheaper The current query to get the new bookmark target for stripped revisions involves multiple walks up the DAG, and is really expensive, taking over 2.5 seconds on a repository with over 400,000 changesets even if just one changeset is being stripped. A slightly simplified version of the current query is max(heads(::<tostrip> - <tostrip>)) We make two observations here. 1. For any set s, max(heads(s)) == max(s). That is because revision numbers define a topological order, so that the element with the highest revision number in s will not have any children in s. 2. For any set s, max(::s - s) == max(parents(s) - s). In other words, the ancestor of s with the highest revision number not in s is a parent of one of the revs in s. Why? Because if it were an ancestor but not a parent of s, it would have a descendant that would be a parent of s. This descendant would have a higher revision number, leading to a contradiction. Combining these two observations, we rewrite the revset query as max(parents(<tostrip>) - <tostrip>) The time complexity is now linear in the number of changesets being stripped. For the above repository, the query now takes 0.1 seconds when one changeset is stripped. This speeds up operations that use repair.strip, like the rebase and strip commands.
Tue, 04 Dec 2012 12:54:18 -0800 graft: explicit current node tracking
David Schleimer <dschleimer@fb.com> [Tue, 04 Dec 2012 12:54:18 -0800] rev 18039
graft: explicit current node tracking This changes graft to explicitly track the progression of commits it makes, and updates it's idea of the current node based on it's last commit, rather than from the working copy parent. This should have no effect on the value of current since we were reading the working copy parent immediately after commiting to it. The motivation for this change is that a subsequent patch will break the current node and working copy relationship. Splitting this out into a separate patch will make that one more readible.
Tue, 04 Dec 2012 12:54:18 -0800 graft: move commit info building
David Schleimer <dschleimer@fb.com> [Tue, 04 Dec 2012 12:54:18 -0800] rev 18038
graft: move commit info building This moves the logic for generating the commit metadata ahead of the merge operation. The only purposae of this patch is to make subsequent patches easier to read, and there should be no behavior changes.
Thu, 06 Dec 2012 16:42:15 -0600 merge with stable
Matt Mackall <mpm@selenic.com> [Thu, 06 Dec 2012 16:42:15 -0600] rev 18037
merge with stable
Tue, 04 Dec 2012 12:54:18 -0800 merge: support calculating merge actions against non-working contexts
David Schleimer <dschleimer@fb.com> [Tue, 04 Dec 2012 12:54:18 -0800] rev 18036
merge: support calculating merge actions against non-working contexts This is not currently used. It is instead a pre-requisite to performing non-conflicting grafts in memory, which a subsequent patch will do.
Tue, 04 Dec 2012 12:54:18 -0800 merge: refactor action calculation into function
David Schleimer <dschleimer@fb.com> [Tue, 04 Dec 2012 12:54:18 -0800] rev 18035
merge: refactor action calculation into function This pulls the code used to calculate the changes that need to happen during merge.update() into a separate function. This is not useful on its own, but is instead preparatory to performing grafts in memory when there are no potential conflicts.
Mon, 03 Dec 2012 14:21:45 -0800 dirstate: inline more properties and methods in status
Siddharth Agarwal <sid0@fb.com> [Mon, 03 Dec 2012 14:21:45 -0800] rev 18034
dirstate: inline more properties and methods in status hg perfstatus -u on a working directory with 170,000 files, without this change: ! wall 1.839561 comb 1.830000 user 1.120000 sys 0.710000 (best of 6) With this change: ! wall 1.804222 comb 1.790000 user 1.140000 sys 0.650000 (best of 6) hg perfstatus on the same directory, without this change: ! wall 1.016609 comb 1.020000 user 0.670000 sys 0.350000 (best of 10) With this change: ! wall 0.985573 comb 0.980000 user 0.650000 sys 0.330000 (best of 10)
Mon, 03 Dec 2012 13:53:53 -0800 perf: add option to perfstatus to get the status of unknown files
Siddharth Agarwal <sid0@fb.com> [Mon, 03 Dec 2012 13:53:53 -0800] rev 18033
perf: add option to perfstatus to get the status of unknown files When status needs to look at unknown files (e.g. when running hg status), it needs to use a completely different algorithm than when it doesn't (e.g. when running hg diff).
Tue, 04 Dec 2012 10:29:18 -0800 dirstate: test normalize is truthy instead of using a no-op lambda
Siddharth Agarwal <sid0@fb.com> [Tue, 04 Dec 2012 10:29:18 -0800] rev 18032
dirstate: test normalize is truthy instead of using a no-op lambda hg perfstatus -u on a working directory with 170,000 files, without this change: ! wall 1.869404 comb 1.850000 user 1.170000 sys 0.680000 (best of 6) With this change: ! wall 1.839561 comb 1.830000 user 1.120000 sys 0.710000 (best of 6)
Tue, 04 Dec 2012 11:19:32 -0600 merge with stable
Kevin Bullock <kbullock@ringworld.org> [Tue, 04 Dec 2012 11:19:32 -0600] rev 18031
merge with stable
Thu, 06 Dec 2012 13:21:27 -0600 hgweb: avoid generator exhaustion with branches stable
Matt Mackall <mpm@selenic.com> [Thu, 06 Dec 2012 13:21:27 -0600] rev 18030
hgweb: avoid generator exhaustion with branches
Wed, 05 Dec 2012 15:38:18 -0600 hgweb: fix iterator reuse in atom feed generation stable
Matt Mackall <mpm@selenic.com> [Wed, 05 Dec 2012 15:38:18 -0600] rev 18029
hgweb: fix iterator reuse in atom feed generation
Tue, 04 Dec 2012 14:35:02 +0100 tests: don't hardcode errno==2 for ENOENT stable
Julien Cristau <julien.cristau@logilab.fr> [Tue, 04 Dec 2012 14:35:02 +0100] rev 18028
tests: don't hardcode errno==2 for ENOENT Hurd seems to set ENOENT to 2 + 2**30, unlike everyone else.
Mon, 03 Dec 2012 13:17:01 -0800 osutil: tab damage, how i hate thee
Bryan O'Sullivan <bryano@fb.com> [Mon, 03 Dec 2012 13:17:01 -0800] rev 18027
osutil: tab damage, how i hate thee
Mon, 03 Dec 2012 12:40:24 -0800 osutil: write a C implementation of statfiles for unix
Bryan O'Sullivan <bryano@fb.com> [Mon, 03 Dec 2012 12:40:24 -0800] rev 18026
osutil: write a C implementation of statfiles for unix This makes a big difference to performance. In a clean working directory containing 170,000 files, performance of "hg --time diff" improves from 2.38 seconds to 1.69.
Mon, 03 Dec 2012 19:37:36 -0200 merge with i18n stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Mon, 03 Dec 2012 19:37:36 -0200] rev 18025
merge with i18n
Fri, 30 Nov 2012 21:39:01 +0900 i18n-ja: synchronized with f94ead934067 stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 30 Nov 2012 21:39:01 +0900] rev 18024
i18n-ja: synchronized with f94ead934067
Mon, 03 Dec 2012 14:03:57 -0600 Added signature for changeset 0c10cf819146 stable
Matt Mackall <mpm@selenic.com> [Mon, 03 Dec 2012 14:03:57 -0600] rev 18023
Added signature for changeset 0c10cf819146
Mon, 03 Dec 2012 14:03:52 -0600 Added tag 2.4.1 for changeset 0c10cf819146 stable
Matt Mackall <mpm@selenic.com> [Mon, 03 Dec 2012 14:03:52 -0600] rev 18022
Added tag 2.4.1 for changeset 0c10cf819146
Fri, 30 Nov 2012 17:40:11 -0800 osutil: fix tab damage
Bryan O'Sullivan <bryano@fb.com> [Fri, 30 Nov 2012 17:40:11 -0800] rev 18021
osutil: fix tab damage
Fri, 30 Nov 2012 15:56:09 -0800 Merge with crew
Bryan O'Sullivan <bryano@fb.com> [Fri, 30 Nov 2012 15:56:09 -0800] rev 18020
Merge with crew
Fri, 30 Nov 2012 15:55:09 -0800 osutil: factor out creation and init of listdir_stat
Bryan O'Sullivan <bryano@fb.com> [Fri, 30 Nov 2012 15:55:09 -0800] rev 18019
osutil: factor out creation and init of listdir_stat
Fri, 30 Nov 2012 15:55:08 -0800 dirstate: avoid use of zip on big lists
Bryan O'Sullivan <bryano@fb.com> [Fri, 30 Nov 2012 15:55:08 -0800] rev 18018
dirstate: avoid use of zip on big lists In a clean working directory containing 170,000 tracked files, this improves performance of "hg --time diff" from 1.69 seconds to 1.43. This idea is due to Siddharth Agarwal.
Fri, 30 Nov 2012 15:55:07 -0800 dirstate: move file type filtering to its source
Bryan O'Sullivan <bryano@fb.com> [Fri, 30 Nov 2012 15:55:07 -0800] rev 18017
dirstate: move file type filtering to its source This prepares us to move to a much faster statfiles implementation on Unix.
Fri, 30 Nov 2012 22:34:21 +0100 clfilter: rename `unfilteredmeth` to `unfilteredmethod`
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 30 Nov 2012 22:34:21 +0100] rev 18016
clfilter: rename `unfilteredmeth` to `unfilteredmethod` As originally intended.
Fri, 30 Nov 2012 21:47:04 +0100 clfilter: fix a false positive in the test-obsolete.t
Pierre-Yves David <pierre-yves.david@logilab.fr> [Fri, 30 Nov 2012 21:47:04 +0100] rev 18015
clfilter: fix a false positive in the test-obsolete.t We push between two repo which once filtered looks unrelated. Weakness in the current implementation allows this push to be done without -f. But later improvement with filtering will make this push fails for unrelatedness. However we want this push to fail for including bumped changeset. So we had a smaller push --force to make them related.
Mon, 08 Oct 2012 19:34:04 +0200 clfilter: ensure that filecache on localrepo is unfiltered
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 08 Oct 2012 19:34:04 +0200] rev 18014
clfilter: ensure that filecache on localrepo is unfiltered All filecache usage on repo is for logic that should be unfiltered. The caches should be common to all filtered instances, and computation must be done unfiltered. A dedicated storecache subclass is created for this purpose.
Mon, 08 Oct 2012 20:02:20 +0200 clfilter: add a propertycache that must be unfiltered
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 08 Oct 2012 20:02:20 +0200] rev 18013
clfilter: add a propertycache that must be unfiltered Some of the localrepo property caches must be computed unfiltered and stored globally. Some others must see the filtered version and store data relative to the current filtering. This changeset introduces two classes `unfilteredpropertycache` and `filteredpropertycache` for this purpose. A new function `hasunfilteredcache` is introduced for unambiguous checking for cached values on unfiltered repos. A few tweaks are made to the property cache class to allow overriding the way the computed value is stored on the object. Some logic relative to _tagcaches is cleaned up in the process.
Mon, 08 Oct 2012 18:11:56 +0200 largefile: status is buggy on repoproxy, so run unfiltered
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 08 Oct 2012 18:11:56 +0200] rev 18012
largefile: status is buggy on repoproxy, so run unfiltered For some yet-unkown reason, largefile status does not work on repoproxy. As status is not affected by filtering, we run it unfiltered. Na'Tosha Bard's view on this issue: "but, well, largefiles status is kind of an unholy piece of code"
Mon, 08 Oct 2012 20:01:40 +0200 clfilter: mq should not warn about filtered mq patches
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 08 Oct 2012 20:01:40 +0200] rev 18011
clfilter: mq should not warn about filtered mq patches MQ warns when qstatus contains unknown nodes. With changelog filtering, a node may be unknown because it is filtered. Thus, an unfiltered repo is used for this check.
Mon, 08 Oct 2012 18:02:25 +0200 clfilter: ensure that mq performs commits on unfiltered repos
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 08 Oct 2012 18:02:25 +0200] rev 18010
clfilter: ensure that mq performs commits on unfiltered repos
Mon, 08 Oct 2012 17:50:02 +0200 clfilter: use unfiltered repo for bookmark push logic
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 08 Oct 2012 17:50:02 +0200] rev 18009
clfilter: use unfiltered repo for bookmark push logic The remote location of the bookmark may be filtered locally. This changeset ensures that bookmark movement logic has access to all the repo's content.
Mon, 08 Oct 2012 17:26:23 +0200 clfilter: `bookmark.validdest` should run on unfiltered repo
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 08 Oct 2012 17:26:23 +0200] rev 18008
clfilter: `bookmark.validdest` should run on unfiltered repo The logic recently added to `bookmark.validdest` uses data about obsolete changesets to see if a bookmark destination is valid. Obsolete changesets are likely to be filtered, so we need to work on an unfiltered repository.
Mon, 08 Oct 2012 17:41:07 +0200 clfilter: unfilter some parts of the push logic
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 08 Oct 2012 17:41:07 +0200] rev 18007
clfilter: unfilter some parts of the push logic Computation of common changesets during push needs to be done on the widest set possible. An unfiltered version of the repo is kept for discovery and various revset calls. The discovery code itself enforces the filtering of unserved outgoing changeset.
Fri, 30 Nov 2012 00:43:55 +0900 subrepo: add argument to "diff()" to pass "ui" of caller side (issue3712) (API) stable 2.4.1
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 30 Nov 2012 00:43:55 +0900] rev 18006
subrepo: add argument to "diff()" to pass "ui" of caller side (issue3712) (API) Color extension achieves colorization by overriding the class of "ui" object just before command execution. Before this patch, "diff()" of abstractsubrepo and classes derived from it has no "ui" argument, so "diff()" of hgsubrepo uses "self._repo.ui" to invoke "cmdutil.diffordiffstat()". For separation of configuration between repositories, revision 573bec4ab7ba changed the initialization source of "self._repo.ui" from "ui"(overridden) to "baseui"(plain) of parent repository. And this caused break of colorization. This patch adds "ui" argument to "diff()" of abstractsubrepo and classes derived from it to pass "ui" object of caller side.
Mon, 08 Oct 2012 17:15:08 +0200 clfilter: prevent unwanted warning about filtered parents as unknown
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 08 Oct 2012 17:15:08 +0200] rev 18005
clfilter: prevent unwanted warning about filtered parents as unknown During changectx __init__ the dirstate's parents MAY be checked. If the repo is filtered, this check will complain "working directory has unknown parents" even if the parents are perfectly known. This may happen when the repo is used for serving and the dirstate has parents that are secret, as those secret changesets will be filtered.
Mon, 08 Oct 2012 17:12:09 +0200 clfilter: strip logic should be unfiltered
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 08 Oct 2012 17:12:09 +0200] rev 18004
clfilter: strip logic should be unfiltered Strip is a "write" operation that needs to be aware of the whole repo's content before destroying changesets. Only the low level function is altered. The top level command will still process its argument filtered (if any filtering is in place).
Mon, 08 Oct 2012 17:08:52 +0200 clfilter: verify logic should be unfiltered
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 08 Oct 2012 17:08:52 +0200] rev 18003
clfilter: verify logic should be unfiltered To verify a changelog obviously needs all of it. The verify logic now ensures it works on an unfiltered repository.
Wed, 21 Nov 2012 00:53:45 +0100 clfilter: phases logic should be unfiltered
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 21 Nov 2012 00:53:45 +0100] rev 18002
clfilter: phases logic should be unfiltered Phase computations and boundary movements need to be aware of all revisions that exist in the repository to return correct results.
Mon, 08 Oct 2012 16:55:00 +0200 clfilter: unfilter computation of obsolescence related computation
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 08 Oct 2012 16:55:00 +0200] rev 18001
clfilter: unfilter computation of obsolescence related computation All obsolescence related sets need to be computed on the full unfiltered version of the repository, in particular because several of them (obsolete, extinct) are used to compute the hidden revisions. On a filtered repo, revset predicates related to these sets will be properly filtered because of revset's own pre-filtering.
Mon, 26 Nov 2012 19:24:11 +0100 clfilter: ensure changeset creation in the repo is run unfiltered
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 26 Nov 2012 19:24:11 +0100] rev 18000
clfilter: ensure changeset creation in the repo is run unfiltered This applies to both creation of new commits and application of changegroups.
Mon, 26 Nov 2012 19:23:25 +0100 clfilter: ensure changegroup generation is run unfiltered
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 26 Nov 2012 19:23:25 +0100] rev 17999
clfilter: ensure changegroup generation is run unfiltered Changegroup generation logic needs to be aware of the whole repository to work properly.
Mon, 26 Nov 2012 19:21:24 +0100 clfilter: ensure `rollback` is run unfiltered
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 26 Nov 2012 19:21:24 +0100] rev 17998
clfilter: ensure `rollback` is run unfiltered Rollback logic needs to be aware of the whole repository to work properly.
Mon, 26 Nov 2012 19:22:12 +0100 clfilter: ensure cache invalidation is done on the main unfiltered repo
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 26 Nov 2012 19:22:12 +0100] rev 17997
clfilter: ensure cache invalidation is done on the main unfiltered repo The proxy version will not hold any cache for now. But we have to ensure all cache operations are done on the unfiltered version.
Mon, 26 Nov 2012 19:26:24 +0100 clfilter: ensure that tag logic runs unfiltered
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 26 Nov 2012 19:26:24 +0100] rev 17996
clfilter: ensure that tag logic runs unfiltered The current tag logic is not aware of filtering. We keep the status quo, ensuring that the tag cache is computed as before: without any filtering.
Mon, 26 Nov 2012 19:25:44 +0100 clfilter: ensure `branchcache` logic runs unfiltered
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 26 Nov 2012 19:25:44 +0100] rev 17995
clfilter: ensure `branchcache` logic runs unfiltered The current branchcache construction is not aware of filtering. We keep the status quo, ensuring that the branch cache logic is computed as before: without any filtering.
Mon, 26 Nov 2012 19:11:13 +0100 clfilter: introduce an `unfilteredmethod` decorator
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 26 Nov 2012 19:11:13 +0100] rev 17994
clfilter: introduce an `unfilteredmethod` decorator This decorator ensure the method in run on an unfiltered version of the repository. See follow-up commit for details. This decorator is not named `unfiltered` because it would clash with the `unfilteredmethod` on `localrepo` itself.
Wed, 21 Nov 2012 00:36:29 +0100 clfilter: introduce an "unfiltered" method on localrepo
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 21 Nov 2012 00:36:29 +0100] rev 17993
clfilter: introduce an "unfiltered" method on localrepo This commit is part of the changelog level filtering effort. It returns the main "unfiltered" version of a repo-like object. For localrepo this means the same localrepo object. But this method will be overwritten by the filtered versions of a repository to return the core unfiltered version of the repo. Introducing this simple method first allows later commits to prepare for the use of a filtered version of a repository. A new repo method is added because a lot of users may call it. At the end of this series of commits, about 40 calls exist in core and hgext.
Tue, 20 Nov 2012 19:05:46 +0100 clfilter: remove usage of `range` and `xrange` in scmutil.revrange
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 20 Nov 2012 19:05:46 +0100] rev 17992
clfilter: remove usage of `range` and `xrange` in scmutil.revrange For changelog level filtering to take effect it need to be used for any iteration. This changeset removes usage of `range` and `xrange` that survived the first pass.
Mon, 12 Nov 2012 14:05:39 -0800 hgweb: display diff for a changeset against any parents (issue2810)
Weiwen <weiwen@fb.com> [Mon, 12 Nov 2012 14:05:39 -0800] rev 17991
hgweb: display diff for a changeset against any parents (issue2810) During merge of branches, it is useful to compare merge results against the two parents. This change adds this support to hgweb. To specify which parent to compare to, use rev/12300:12345 where 12300 is a parent changeset number. Two links are added to changeset web page so that one can choose which parent to compare to.
Thu, 29 Nov 2012 08:49:21 -0500 branch: add missing repo argument to checknewlabel
Tim Henigan <tim.henigan@gmail.com> [Thu, 29 Nov 2012 08:49:21 -0500] rev 17990
branch: add missing repo argument to checknewlabel scmutil.checknewlabel takes a repo object as its first argument. When the call to this function was added in e689b0d91546, the first argument was mistakenly set to 'None'.
Thu, 29 Nov 2012 11:44:22 -0600 Merge with stable.
Augie Fackler <raf@durin42.com> [Thu, 29 Nov 2012 11:44:22 -0600] rev 17989
Merge with stable.
Thu, 29 Nov 2012 16:37:15 +0100 rebase: fix pull --rev options clashing with --rebase (issue3619) stable
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 29 Nov 2012 16:37:15 +0100] rev 17988
rebase: fix pull --rev options clashing with --rebase (issue3619) Rebase also have a plain `--rev` option used to select the rebase set (as `--base` or `--source` would). But the content of the --rev option was intended for the remote repo and is irrelevant for the local rebase operation. We expect `hg pull --rebase` to stick with the default behavior here: hg rebase --base . --dest tip(branch(.)) The `rev` option is dropped from the option passed to rebase.
Thu, 29 Nov 2012 08:44:54 -0500 dirstate: remove obsolete comment from setbranch
Tim Henigan <tim.henigan@gmail.com> [Thu, 29 Nov 2012 08:44:54 -0500] rev 17987
dirstate: remove obsolete comment from setbranch This comment should have been removed in e689b0d91546, when the call to scmutil.checknewlabel was removed.
Wed, 28 Nov 2012 18:08:51 -0600 merge with stable
Matt Mackall <mpm@selenic.com> [Wed, 28 Nov 2012 18:08:51 -0600] rev 17986
merge with stable
Wed, 28 Nov 2012 17:53:52 -0600 tests: fix broken fix of test-phases output stable
Matt Mackall <mpm@selenic.com> [Wed, 28 Nov 2012 17:53:52 -0600] rev 17985
tests: fix broken fix of test-phases output
Tue, 27 Nov 2012 08:47:35 -0500 update: allow update to existing branches with invalid names (issue3710) stable
Tim Henigan <tim.henigan@gmail.com> [Tue, 27 Nov 2012 08:47:35 -0500] rev 17984
update: allow update to existing branches with invalid names (issue3710) Starting with 361ab1e2086f, users are no longer able to update a working copy to a branch named with a "bad" character (such as ':'). Prior to v2.4, it was possible to create branch names using "bad" characters, so this breaks backwards compatibility. Mercurial must allow users to update to existing branches with bad names. However, it should continue to prevent the creation of new branches with bad names. A test was added to confirm that 'hg update' works as expected. The test uses a bundled repo that was created with an earlier version of Mercurial.
Mon, 19 Nov 2012 16:05:40 -0800 commit: increase perf by building a new addlist instead of editing the old one
Durham Goode <durham@fb.com> [Mon, 19 Nov 2012 16:05:40 -0800] rev 17983
commit: increase perf by building a new addlist instead of editing the old one When commiting to a repo with lots of files (>170000), manifest.py:addlistdelta takes some time because it's editing a large array many times. Changing it to build a new array instead of editing the old one saves around 0.04 seconds on a 1.64 second commit. A 2.5% gain. The gain here is pretty minor, but it was blatantly at the top of the profiler report and the fix is straight forward. I tested it by comparing the arrays produced by the new and old logic while running all of the tests.
Wed, 28 Nov 2012 14:55:42 -0800 template engine: convert generator-based iterator to list-based iterator
Weiwen <weiwen@fb.com> [Wed, 28 Nov 2012 14:55:42 -0800] rev 17982
template engine: convert generator-based iterator to list-based iterator If a template iterator is implemented with generator, the iterator is exhau= sted after we use it. This leads to undesired behavior in template. This chang= e converts a generator-based iterator to list-based iterator when template en= gine first detects a generator-based iterator. All future usages of iterator wi= ll use list instead.
Wed, 28 Nov 2012 11:20:56 +0100 command: remove phase from the list of basic command stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 28 Nov 2012 11:20:56 +0100] rev 17981
command: remove phase from the list of basic command This is not a basic command. There is no reason new user should needs to know about it. Thanks to Matt Mackall for pointing this.
Wed, 28 Nov 2012 16:15:05 -0600 merge with stable
Matt Mackall <mpm@selenic.com> [Wed, 28 Nov 2012 16:15:05 -0600] rev 17980
merge with stable
Sun, 25 Nov 2012 20:39:37 +0100 phases: fix missing "error" module import (issue3707) stable
André Sintzoff <andre.sintzoff@gmail.com> [Sun, 25 Nov 2012 20:39:37 +0100] rev 17979
phases: fix missing "error" module import (issue3707)
Thu, 08 Nov 2012 11:54:08 +0100 test-mq-qrefresh: test that the patch at qtip is indeed empty
Adrian Buehlmann <adrian@cadifra.com> [Thu, 08 Nov 2012 11:54:08 +0100] rev 17978
test-mq-qrefresh: test that the patch at qtip is indeed empty ...after qrefreshing a non-existent file
Mon, 26 Nov 2012 15:59:02 -0600 tests: only call check-code once
Matt Mackall <mpm@selenic.com> [Mon, 26 Nov 2012 15:59:02 -0600] rev 17977
tests: only call check-code once The accepted warnings list is now empty, let's try to keep it that way.
Wed, 28 Nov 2012 10:35:12 -0800 ancestor: fix a comment (followup to 0b03454abae7)
Siddharth Agarwal <sid0@fb.com> [Wed, 28 Nov 2012 10:35:12 -0800] rev 17976
ancestor: fix a comment (followup to 0b03454abae7)
Wed, 21 Nov 2012 00:42:05 +0100 revlog: allow reverse iteration with revlog.revs
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 21 Nov 2012 00:42:05 +0100] rev 17975
revlog: allow reverse iteration with revlog.revs We often need to perform rev iteration in reverse order. This changeset makes it possible to do so, in order to avoid costly reverse or reversed() calls later.
Sun, 18 Nov 2012 12:26:50 -1000 convert: add config option to use the local time zone
Julian Cowley <julian@lava.net> [Sun, 18 Nov 2012 12:26:50 -1000] rev 17974
convert: add config option to use the local time zone The default for the time zone offset in a converted changeset has always been 0 (UTC). With this patch, the converted changeset is modified so that the local offset from UTC is specified as the time zone offset. The option is specified as the boolean convert.localtimezone (default False). Example usage: hg convert -s cvs --config convert.localtimezone=True example-cvs example-hg IMPORTANT: the patch only applies to conversions from cvs or svn. The documentation for the option only appears in those two sections in the convert help text.
Tue, 27 Nov 2012 16:24:21 -0800 rebase: use revlog.findmissingrevs to compute detach set
Siddharth Agarwal <sid0@fb.com> [Tue, 27 Nov 2012 16:24:21 -0800] rev 17973
rebase: use revlog.findmissingrevs to compute detach set
Mon, 26 Nov 2012 10:48:24 -0800 revlog: add rev-specific variant of findmissing
Siddharth Agarwal <sid0@fb.com> [Mon, 26 Nov 2012 10:48:24 -0800] rev 17972
revlog: add rev-specific variant of findmissing This will be used by rebase in an upcoming commit.
Mon, 26 Nov 2012 11:02:48 -0800 revlog: switch findmissing to use ancestor.missingancestors
Siddharth Agarwal <sid0@fb.com> [Mon, 26 Nov 2012 11:02:48 -0800] rev 17971
revlog: switch findmissing to use ancestor.missingancestors This also speeds up other commands that use findmissing, like incoming and merge --preview. With a large linear repository (>400000 commits) and with one incoming changeset, incoming is sped up from around 4-4.5 seconds to under 3.
Mon, 26 Nov 2012 11:46:51 -0800 ancestor: faster algorithm for difference of ancestor sets
Siddharth Agarwal <sid0@fb.com> [Mon, 26 Nov 2012 11:46:51 -0800] rev 17970
ancestor: faster algorithm for difference of ancestor sets One of the major reasons rebase is slow in large repositories is the computation of the detach set: the set of ancestors of the changesets to rebase not in the destination parent. This is currently done via a revset that does two walks all the way to the root of the DAG. Instead of doing that, to find ancestors of a set <revs> not in another set <common> we walk up the tree in reverse revision number order, maintaining sets of nodes visited from <revs>, <common> or both. For the common case where the sets are close both topologically and in revision number (relative to repository size), this has been found to speed up rebase by around 15-20%. When the nodes are farther apart and the DAG is highly branching, it is harder to say which would win. Here's how long computing the detach set takes in a linear repository with over 400000 changesets, rebasing near tip: Rebasing across 4 changesets Revset method: 2.2s New algorithm: 0.00015s Rebasing across 250 changesets Revset method: 2.2s New algorithm: 0.00069s Rebasing across 10000 changesets Revset method: 2.4s New algorithm: 0.019s
Fri, 23 Nov 2012 11:59:44 -0500 bisect: add example for limiting bisection to specified directories
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Fri, 23 Nov 2012 11:59:44 -0500] rev 17969
bisect: add example for limiting bisection to specified directories The bisect command does not have an option to limit itself only to subdirectories, but it's possible to use revsets for the --skip option for the same effect. Given the relative obscurity of revsets, it helps to have this as another example for bisect.
Tue, 27 Nov 2012 14:58:00 -0800 subrepo: use posixpath when diffing, for consistent paths
Bryan O'Sullivan <bryano@fb.com> [Tue, 27 Nov 2012 14:58:00 -0800] rev 17968
subrepo: use posixpath when diffing, for consistent paths This fixes a Windows failure in test-subrepo-recursion.t introduced by c84ef0047a94.
Tue, 27 Nov 2012 13:09:05 -0800 run-tests: fix an unnoticed check-code violation
Bryan O'Sullivan <bryano@fb.com> [Tue, 27 Nov 2012 13:09:05 -0800] rev 17967
run-tests: fix an unnoticed check-code violation
Tue, 27 Nov 2012 11:18:33 -0800 run-tests: add a --compiler option
Bryan O'Sullivan <bryano@fb.com> [Tue, 27 Nov 2012 11:18:33 -0800] rev 17966
run-tests: add a --compiler option Without this option, it is not possible to run the test suite on Windows using mingw's gcc as the compiler.
Tue, 27 Nov 2012 11:18:31 -0800 run-tests: make build command line less intimidating
Bryan O'Sullivan <bryano@fb.com> [Tue, 27 Nov 2012 11:18:31 -0800] rev 17965
run-tests: make build command line less intimidating Use a dict for parameters to the format string, instead of a ridiculous number of positional parameters.
Mon, 26 Nov 2012 17:48:39 -0600 hooks: be even more forgiven of non-fd descriptors (issue3711) stable
Matt Mackall <mpm@selenic.com> [Mon, 26 Nov 2012 17:48:39 -0600] rev 17964
hooks: be even more forgiven of non-fd descriptors (issue3711) Looks like there are instances where sys.stdout/stderr contain file handles that are invalid. We should be tolerant of this for hook I/O redirection, as our primary concern is not garbling our own output stream.
Mon, 26 Nov 2012 16:14:22 -0600 hooks: delay I/O redirection until we actually run a hook (issue3711) stable
Matt Mackall <mpm@selenic.com> [Mon, 26 Nov 2012 16:14:22 -0600] rev 17963
hooks: delay I/O redirection until we actually run a hook (issue3711) We were attempting to redirect I/O even if no hook was actually getting called. This defers redirection until we've found something to do.
Mon, 26 Nov 2012 15:42:52 -0600 util: make chunkbuffer non-quadratic on Windows stable
Matt Mackall <mpm@selenic.com> [Mon, 26 Nov 2012 15:42:52 -0600] rev 17962
util: make chunkbuffer non-quadratic on Windows The old str-based += collector performed very nicely on Linux, but turns out to be quadratically expensive on Windows, causing chunkbuffer to dominate in profiles. This list-based version has been measured to significantly improve performance with large chunks on Windows, with negligible overall overhead on Linux (though microbenchmarks show it to be about 50% slower). This may increase memory overhead where += didn't behave quadratically. If we want to gather up 1G of data to join, we temporarily have 1G in our list and 1G in our string.
Mon, 26 Nov 2012 13:44:11 -0600 revset: backed out changeset 54cedee86e51 stable
Matt Mackall <mpm@selenic.com> [Mon, 26 Nov 2012 13:44:11 -0600] rev 17961
revset: backed out changeset 54cedee86e51 This was causing clones of the hg repo to go from 12.4s to 14.7s.
Wed, 07 Nov 2012 14:49:44 +0100 hgk: specify some colours explicitly in hex
Andrew Shadura <bugzilla@tut.by> [Wed, 07 Nov 2012 14:49:44 +0100] rev 17960
hgk: specify some colours explicitly in hex Tk 8.6b3 uses web colours, where green is defined as #008000, not #00ff00, and grey is #c0c0c0, not #808080, so specify those colours explicitly.
Tue, 16 Oct 2012 22:19:08 +0200 hgk: no committer please
Andrew Shadura <bugzilla@tut.by> [Tue, 16 Oct 2012 22:19:08 +0200] rev 17959
hgk: no committer please Generate committer only if we really have it. Update test-hgk.t accordingly.
Tue, 16 Oct 2012 14:54:51 +0200 hgk: use Ttk instead of plain Tk
Andrew Shadura <bugzilla@tut.by> [Tue, 16 Oct 2012 14:54:51 +0200] rev 17958
hgk: use Ttk instead of plain Tk Use Ttk (themed Tk) for most of the widgets. Default to xpnative theme on Windows, clam otherwise. Provide a shim for Tk 8.4 without Tile/Ttk.
Sun, 25 Nov 2012 13:57:00 -0600 check-code: move i18n check from warning to error
Matt Mackall <mpm@selenic.com> [Sun, 25 Nov 2012 13:57:00 -0600] rev 17957
check-code: move i18n check from warning to error
Sun, 25 Nov 2012 13:53:47 -0600 i18n: wrap false positives for translation detection
Matt Mackall <mpm@selenic.com> [Sun, 25 Nov 2012 13:53:47 -0600] rev 17956
i18n: wrap false positives for translation detection
Tue, 20 Nov 2012 14:21:56 -0800 eol: don't refer to a random name-captured ui object
Bryan O'Sullivan <bryano@fb.com> [Tue, 20 Nov 2012 14:21:56 -0800] rev 17955
eol: don't refer to a random name-captured ui object Previously, we used a ui object captured at the time of monkeypatching.
Tue, 20 Nov 2012 11:52:47 -0800 mq: don't refer to a random name-captured repo object
Bryan O'Sullivan <bryano@fb.com> [Tue, 20 Nov 2012 11:52:47 -0800] rev 17954
mq: don't refer to a random name-captured repo object Previously, we used a repo object captured at the time of monkeypatching.
Tue, 20 Nov 2012 10:09:06 -0800 Merge with crew-stable
Bryan O'Sullivan <bryano@fb.com> [Tue, 20 Nov 2012 10:09:06 -0800] rev 17953
Merge with crew-stable
Fri, 16 Nov 2012 15:39:12 -0800 commit: increase perf by avoiding checks against entire repo subsets stable
Durham Goode <durham@fb.com> [Fri, 16 Nov 2012 15:39:12 -0800] rev 17952
commit: increase perf by avoiding checks against entire repo subsets When commiting to a repo with lots of history (>400000 changesets) checking the results of revset.py:descendants against the subset takes some time. Since the subset equals the entire changelog, the check isn't necessary. Avoiding it in that case saves 0.1 seconds off of a 1.78 second commit. A 6% gain. We use the length of the subset to determine if it is the entire repo. There is precedence for this in revset.py:stringset.
Fri, 16 Nov 2012 15:39:12 -0800 commit: increase perf by avoiding unnecessary filteredrevs check stable
Durham Goode <durham@fb.com> [Fri, 16 Nov 2012 15:39:12 -0800] rev 17951
commit: increase perf by avoiding unnecessary filteredrevs check When commiting to a repo with lots of history (>400000 changesets) the filteredrevs check (added with 5c89e7fa5bc2) in changelog.py takes a bit of time even if the filteredrevs set is empty. Skipping the check in that case shaves 0.36 seconds off a 2.14 second commit. A 17% gain.
Fri, 16 Nov 2012 10:20:32 -0600 merge with crew-stable
Kevin Bullock <kbullock@ringworld.org> [Fri, 16 Nov 2012 10:20:32 -0600] rev 17950
merge with crew-stable
Thu, 15 Nov 2012 11:27:30 -0600 grep: remove useless while condition stable
Kevin Bullock <kbullock@ringworld.org> [Thu, 15 Nov 2012 11:27:30 -0600] rev 17949
grep: remove useless while condition A revised version of 35ba170c0f82 was sent to the list that fixed this <http://markmail.org/message/jmfuiise5igcyh2m>, but the older version of the patch was applied.
Fri, 16 Nov 2012 10:01:26 -0600 merge with mpm
Kevin Bullock <kbullock@ringworld.org> [Fri, 16 Nov 2012 10:01:26 -0600] rev 17948
merge with mpm
Thu, 15 Nov 2012 22:24:36 -0800 test-pathencode: more aggressively check for python < 2.6
Bryan O'Sullivan <bryano@fb.com> [Thu, 15 Nov 2012 22:24:36 -0800] rev 17947
test-pathencode: more aggressively check for python < 2.6
Thu, 15 Nov 2012 15:16:41 -0800 diff: move index header generation to patch
Guillermo Pérez <bisho@fb.com> [Thu, 15 Nov 2012 15:16:41 -0800] rev 17946
diff: move index header generation to patch In an upcoming patch, we will add index information to all git diffs, not only binary diffs, so this code needs to be moved to a more appropriate place. Also, since this information is used for patch headers, it makes more sense to be in the patch module, along with other patch-related metadata.
Thu, 15 Nov 2012 15:06:32 -0800 patch: make _addmodehdr a function under trydiff
Guillermo Pérez <bisho@fb.com> [Thu, 15 Nov 2012 15:06:32 -0800] rev 17945
patch: make _addmodehdr a function under trydiff addmodehdr is a header helper, same as diffline, so it doesn't need to be a top-level function and can be nested under trydiff. In upcoming patches we will generalize this approach for all headers.
Thu, 15 Nov 2012 13:57:03 -0800 diff: rewrite diffline
Guillermo Pérez <bisho@fb.com> [Thu, 15 Nov 2012 13:57:03 -0800] rev 17944
diff: rewrite diffline Make diffline more readable, using strings with placeholders rather than appending to a list from many ifs that makes difficult to understand the actual output format.
Thu, 15 Nov 2012 13:52:51 -0800 diff: swap and simplify diffline args
Guillermo Pérez <bisho@fb.com> [Thu, 15 Nov 2012 13:52:51 -0800] rev 17943
diff: swap and simplify diffline args Args order swapped, since a, b are more important than revs (which is only used on non-git format), and change to read opts from context.
Thu, 15 Nov 2012 13:49:04 -0800 diff: change how quiet mode supresses diffline
Guillermo Pérez <bisho@fb.com> [Thu, 15 Nov 2012 13:49:04 -0800] rev 17942
diff: change how quiet mode supresses diffline Before, quiet mode produced no diffline header for mercurial as a side effect of not populating "revs". This was a weird side effect, and we will always need revs for git index header that will be added in upcoming patches, so now we just check ui.quiet from diffline directly.
Thu, 15 Nov 2012 12:19:03 -0800 diff: move diffline to patch module
Guillermo Pérez <bisho@fb.com> [Thu, 15 Nov 2012 12:19:03 -0800] rev 17941
diff: move diffline to patch module diffline is not part of diff computation, so it makes more sense to place it with other header generation in patch module. In upcoming patches we will generalize this approach for all headers added in the patch, including the git index header.
Thu, 15 Nov 2012 12:16:08 -0800 diff: unify calls to diffline
Guillermo Pérez <bisho@fb.com> [Thu, 15 Nov 2012 12:16:08 -0800] rev 17940
diff: unify calls to diffline diffline was called from trydiff for binary diffs and from unidiff for text diffs. In this patch we unify those calls into one. diffline is also a header, not part of diff mechanisms, so it makes sense to remove that responsibility from the mdiff module. In upcoming patches we will move diffline to patch module and keep grouping responsibilities.
Tue, 06 Nov 2012 14:04:05 -0800 diff: move b85diff to mdiff module
Guillermo Pérez <bisho at fb.com> [Tue, 06 Nov 2012 14:04:05 -0800] rev 17939
diff: move b85diff to mdiff module b85diff generates a binary diff, so we move this code to mdiff module along with unidiff for text diffs. All diffing mechanisms will be in the same place. In an upcoming patch we will remove the responsibility to print the index header from b85diff and move it back to patch, since it's a patch metadata header, not part of the diff generation.
Sat, 27 Oct 2012 12:38:59 +0200 share: always set default path to work with subrepos (issue3518)
simon@laptop-tosh [Sat, 27 Oct 2012 12:38:59 +0200] rev 17938
share: always set default path to work with subrepos (issue3518) set the default path in any case because creating subrepo looks this up. Subrepos are cloned, not shared.
Sat, 03 Nov 2012 10:40:36 +0100 vfs: optimize __call__ by not calling util.split for reads
Adrian Buehlmann <adrian@cadifra.com> [Sat, 03 Nov 2012 10:40:36 +0100] rev 17937
vfs: optimize __call__ by not calling util.split for reads dirname and basename are not used on reads
Wed, 14 Nov 2012 18:08:39 -0600 run-tests: backout 4a4173519b63
Matt Mackall <mpm@selenic.com> [Wed, 14 Nov 2012 18:08:39 -0600] rev 17936
run-tests: backout 4a4173519b63 This deleted work in progress to eliminate child processes for -j.
Thu, 15 Nov 2012 10:55:32 -0800 test-pathencode: make a 2.4-safe import of collections
Bryan O'Sullivan <bryano@fb.com> [Thu, 15 Nov 2012 10:55:32 -0800] rev 17935
test-pathencode: make a 2.4-safe import of collections
Thu, 15 Nov 2012 10:04:29 -0800 tests: add a randomized test for pathencode
Bryan O'Sullivan <bryano@fb.com> [Thu, 15 Nov 2012 10:04:29 -0800] rev 17934
tests: add a randomized test for pathencode This is a probabilistic test - it generates different test cases on every run, unless invoked from the command line with a specific seed. The default number of tests run should make the tests take about a second to complete on a semi-modern laptop.
Mon, 29 Oct 2012 10:53:46 -0400 webcommands: allow hgweb's archive to recurse into subrepos
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Mon, 29 Oct 2012 10:53:46 -0400] rev 17933
webcommands: allow hgweb's archive to recurse into subrepos Currently when obtaining an archive snapshot of a repository via the web interface, subrepositories are not taken in the snapshot. I introduce an option, archivesubrepos, which allows this.
Tue, 13 Nov 2012 19:32:53 -0600 Merge with crew-stable.
Augie Fackler <raf@durin42.com> [Tue, 13 Nov 2012 19:32:53 -0600] rev 17932
Merge with crew-stable.
Mon, 12 Nov 2012 19:27:03 +0200 grep: don't search past the end of the searched string stable
Idan Kamara <idankk86@gmail.com> [Mon, 12 Nov 2012 19:27:03 +0200] rev 17931
grep: don't search past the end of the searched string '*' causes the resulting RE to match 0 or more repetitions of the preceding RE: >>> bool(re.search('.*', '')) >>> True This causes an infinite loop because currently we're only checking if there was a match without looking at where we are in the searched string.
Tue, 13 Nov 2012 13:09:42 -0800 convert: fix a too-long line nag
Bryan O'Sullivan <bryano@fb.com> [Tue, 13 Nov 2012 13:09:42 -0800] rev 17930
convert: fix a too-long line nag
Mon, 29 Oct 2012 17:40:13 -0700 convert: add support for converting git submodule (issue3528)
YaNan Xu <robot9@fb.com> [Mon, 29 Oct 2012 17:40:13 -0700] rev 17929
convert: add support for converting git submodule (issue3528) Previously, convert aborted upon encountering a git submodule. This patch changes it so that it now succeeds. It modifies convert_git to manually generate '.hgsub' and '.hgsubstate' files for each git revision, so as to convert git sub modules to non-mercurial subrepositories.
Thu, 08 Nov 2012 14:10:04 -0800 run-tests.py: remove runqueue's results parameter since it is now a global
Siddharth Agarwal <sid0@fb.com> [Thu, 08 Nov 2012 14:10:04 -0800] rev 17928
run-tests.py: remove runqueue's results parameter since it is now a global
Tue, 13 Nov 2012 09:56:09 -0800 makefile: don't use system hgrc when running hg in-place
Bryan O'Sullivan <bryano@fb.com> [Tue, 13 Nov 2012 09:56:09 -0800] rev 17927
makefile: don't use system hgrc when running hg in-place This suppresses the printing of spurious error messages if a global hgrc refers to extensions that the in-place hg can't access.
Tue, 13 Nov 2012 09:55:26 -0800 setup: print subprocess stderr if there is any
Bryan O'Sullivan <bryano@fb.com> [Tue, 13 Nov 2012 09:55:26 -0800] rev 17926
setup: print subprocess stderr if there is any I just spent 1.5 days trying to debug a failing buildbot because setup.py was silently dropping the errors that were being printed by in-place hg.
Sat, 10 Nov 2012 11:37:41 -0800 run-tests: open child-parent pipes in binary mode
Siddharth Agarwal <sid0@fb.com> [Sat, 10 Nov 2012 11:37:41 -0800] rev 17925
run-tests: open child-parent pipes in binary mode Python's pickle is a binary format.
Tue, 13 Nov 2012 08:41:56 -0800 amend: force editor only if old message is reused (issue3698) stable
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 13 Nov 2012 08:41:56 -0800] rev 17924
amend: force editor only if old message is reused (issue3698) This regression was added by 9732473aa24b. It triggered the editor even if --message or --logfile were provided.
Mon, 12 Nov 2012 19:27:03 +0200 grep: don't search past the end of the searched string
Idan Kamara <idankk86@gmail.com> [Mon, 12 Nov 2012 19:27:03 +0200] rev 17923
grep: don't search past the end of the searched string '*' causes the resulting RE to match 0 or more repetitions of the preceding RE: >>> bool(re.search('.*', '')) >>> True This causes an infinite loop because currently we're only checking if there was a match without looking at where we are in the searched string.
Wed, 07 Nov 2012 16:21:39 -0600 bookmarks: introduce a bmstore to manage bookmark persistence
Augie Fackler <raf@durin42.com> [Wed, 07 Nov 2012 16:21:39 -0600] rev 17922
bookmarks: introduce a bmstore to manage bookmark persistence Bookmarks persistence still showed a fair amount of its legacy as a monkeypatching extension. This encapsulates all bookmarks serialization and parsing in a single class, and offers a single location where other bookmarks storage engines can be substituted in. As a result, many files no longer import the bookmarks module, which strikes me as an encapsulation win. This doesn't do anything to the current bookmark state yet, but I'm hoping put that in the bmstore class as well.
Fri, 09 Nov 2012 14:49:30 -0800 run-tests: add --time option to log times for each test
Siddharth Agarwal <sid0@fb.com> [Fri, 09 Nov 2012 14:49:30 -0800] rev 17921
run-tests: add --time option to log times for each test --time also prints out the wall-clock time each test takes in descending order.
Fri, 09 Nov 2012 15:09:35 -0800 run-tests: remove resultslock since it serves no useful purpose
Siddharth Agarwal <sid0@fb.com> [Fri, 09 Nov 2012 15:09:35 -0800] rev 17920
run-tests: remove resultslock since it serves no useful purpose Each child process has its own copy of the results dict, so all access to the results dict is serial.
Fri, 09 Nov 2012 14:42:36 -0800 run-tests: use pickle to send results from children to parent
Siddharth Agarwal <sid0@fb.com> [Fri, 09 Nov 2012 14:42:36 -0800] rev 17919
run-tests: use pickle to send results from children to parent JSON would probably be preferable, but it isn't available for Python 2.4 or 2.5.
Wed, 24 Oct 2012 18:11:17 +0200 bookmark: remove useless line in `validdest`
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 24 Oct 2012 18:11:17 +0200] rev 17918
bookmark: remove useless line in `validdest` This case is already covered by the `if old == new:` conditional at the start of the function.
Wed, 24 Oct 2012 17:55:21 +0200 bookmark: issue a single call to `allsuccessors` per loop
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 24 Oct 2012 17:55:21 +0200] rev 17917
bookmark: issue a single call to `allsuccessors` per loop Update to this code was minimalist when `allsuccessors` argument were changed from a list to a set. As this code is getting my attention again I realised we can drastically simplify this part of the code by issue a single call to `allsuccessors`.
Wed, 24 Oct 2012 17:26:40 +0200 bookmark: simplify mutability check in `validdest`
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 24 Oct 2012 17:26:40 +0200] rev 17916
bookmark: simplify mutability check in `validdest` There is no need to check phase by hand. We already have a ctx method for that.
Wed, 07 Nov 2012 09:59:46 -0800 Merge with stable
Bryan O'Sullivan <bryano@fb.com> [Wed, 07 Nov 2012 09:59:46 -0800] rev 17915
Merge with stable
Tue, 06 Nov 2012 16:49:54 -0800 Merge with mpm
Bryan O'Sullivan <bryano@fb.com> [Tue, 06 Nov 2012 16:49:54 -0800] rev 17914
Merge with mpm
Wed, 31 Oct 2012 16:23:23 -0700 bundle: add revset expression to show bundle contents (issue3487)
Tomasz Kleczek <tkleczek@fb.com> [Wed, 31 Oct 2012 16:23:23 -0700] rev 17913
bundle: add revset expression to show bundle contents (issue3487) bundle() revset expression returns all changes that are present in the bundle file (no matter whether they are in the repo or not). Bundle file should be specified via -R option.
Tue, 06 Nov 2012 17:38:22 -0600 tags: add formatter support
Matt Mackall <mpm@selenic.com> [Tue, 06 Nov 2012 17:38:22 -0600] rev 17912
tags: add formatter support
Tue, 06 Nov 2012 17:30:49 -0600 manifest: add formatter support
Matt Mackall <mpm@selenic.com> [Tue, 06 Nov 2012 17:30:49 -0600] rev 17911
manifest: add formatter support
Tue, 06 Nov 2012 17:30:47 -0600 status: use condwrite to avoid zero-width format string hack
Matt Mackall <mpm@selenic.com> [Tue, 06 Nov 2012 17:30:47 -0600] rev 17910
status: use condwrite to avoid zero-width format string hack
Sat, 03 Nov 2012 14:37:50 -0500 formatter: add condwrite method
Matt Mackall <mpm@selenic.com> [Sat, 03 Nov 2012 14:37:50 -0500] rev 17909
formatter: add condwrite method This makes handling conditional output tidier
Wed, 24 Oct 2012 23:09:31 +0200 run-tests: skip unnecessary operations on the args in the child proces
Simon Heimberg <simohe@besonet.ch> [Wed, 24 Oct 2012 23:09:31 +0200] rev 17908
run-tests: skip unnecessary operations on the args in the child proces The arguments are already sorted and never empty.
Fri, 02 Nov 2012 20:47:03 +0100 test-subrepo: adapt for Windows after 17c030014ddf stable
Adrian Buehlmann <adrian@cadifra.com> [Fri, 02 Nov 2012 20:47:03 +0100] rev 17907
test-subrepo: adapt for Windows after 17c030014ddf Fixes @@ -606,7 +606,7 @@ issue3276_ok $ rm repo/s/b $ hg -R repo revert --all - reverting repo/.hgsubstate + reverting repo\.hgsubstate reverting subrepo s $ hg -R repo update 1 files updated, 0 files merged, 0 files removed, 0 files unresolved on Windows
Fri, 02 Nov 2012 20:22:09 +0100 test-mq-qrefresh: adapt for Windows after 39b7052b217b stable
Adrian Buehlmann <adrian@cadifra.com> [Fri, 02 Nov 2012 20:22:09 +0100] rev 17906
test-mq-qrefresh: adapt for Windows after 39b7052b217b Fixes @@ -208,7 +208,7 @@ $ echo 'orphan' > orphanchild $ hg add orphanchild $ hg qrefresh nonexistentfilename # clear patch - nonexistentfilename: No such file or directory + nonexistentfilename: The system cannot find the file specified $ hg qrefresh --short 1/base $ hg qrefresh --short 2/base on Windows
Thu, 01 Nov 2012 16:30:48 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Thu, 01 Nov 2012 16:30:48 -0500] rev 17905
merge with stable
Thu, 01 Nov 2012 16:09:21 -0500 Added signature for changeset 195ad823b5d5 stable
Matt Mackall <mpm@selenic.com> [Thu, 01 Nov 2012 16:09:21 -0500] rev 17904
Added signature for changeset 195ad823b5d5
Thu, 01 Nov 2012 16:09:17 -0500 Added tag 2.4 for changeset 195ad823b5d5 stable
Matt Mackall <mpm@selenic.com> [Thu, 01 Nov 2012 16:09:17 -0500] rev 17903
Added tag 2.4 for changeset 195ad823b5d5
Thu, 01 Nov 2012 14:59:55 -0500 tests: fix test for issue3581 for vfat on Linux stable 2.4
Matt Mackall <mpm@selenic.com> [Thu, 01 Nov 2012 14:59:55 -0500] rev 17902
tests: fix test for issue3581 for vfat on Linux
Tue, 30 Oct 2012 17:23:51 -0700 filemerge: only run test for issue3581 on non-windows environments stable
Keegan Carruthers-Smith <keegancsmith@fb.com> [Tue, 30 Oct 2012 17:23:51 -0700] rev 17901
filemerge: only run test for issue3581 on non-windows environments
Thu, 01 Nov 2012 13:46:03 +0100 openpath: specify binary mode and use util.posixfile stable
Adrian Buehlmann <adrian@cadifra.com> [Thu, 01 Nov 2012 13:46:03 +0100] rev 17900
openpath: specify binary mode and use util.posixfile follow-up to 0e2846b2482c
Thu, 01 Nov 2012 11:37:40 -0200 i18n-pt_BR: synchronized with afa7e6fa820b stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Thu, 01 Nov 2012 11:37:40 -0200] rev 17899
i18n-pt_BR: synchronized with afa7e6fa820b
Wed, 31 Oct 2012 16:34:36 -0500 merge with i18n stable
Matt Mackall <mpm@selenic.com> [Wed, 31 Oct 2012 16:34:36 -0500] rev 17898
merge with i18n
Wed, 31 Oct 2012 11:13:44 -0200 i18n-pt_BR: synchronized with 36ed69d4593d stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Wed, 31 Oct 2012 11:13:44 -0200] rev 17897
i18n-pt_BR: synchronized with 36ed69d4593d
Wed, 31 Oct 2012 18:44:40 +0900 i18n-ja: synchronized with 0188ddfa844e stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 31 Oct 2012 18:44:40 +0900] rev 17896
i18n-ja: synchronized with 0188ddfa844e
Wed, 24 Oct 2012 18:45:22 +0200 subrepo: only do clean update when overwrite is set (issue3276) stable
Simon Heimberg <simohe@besonet.ch> [Wed, 24 Oct 2012 18:45:22 +0200] rev 17895
subrepo: only do clean update when overwrite is set (issue3276) Files in a subrepo were overwritten on update. But this should only happen on a clean update (example: -C is specified). Use the overwrite parameter introduced for svn subrepos in c19b9282d3a7 to decide whether to merge changes (as update) or remove them (as clean). The new function hg.updaterepo is intruduced to keep all update calls in hg. test-subrepo.t is extended to test if an untracked file is overwritten (issue3276). (Update -C is already tested in many places.) The first two chunks are debugging output which has changed. (Because overwrite is not always true anymore for subrepos) All other tests still pass without any change.
Wed, 31 Oct 2012 03:59:28 +0900 i18n: change output of largefiles for summary to distinguish from one for outgoing stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 31 Oct 2012 03:59:28 +0900] rev 17894
i18n: change output of largefiles for summary to distinguish from one for outgoing Before this patch, largefiles extension uses "largefiles: No remote repo" message not only for "outgoing" as status report, but also for "summary" as summarized information. This sharing prevents message translators from inserting white spaces between "largefiles:" and "No remote repo" in translated message to align column position of summarized information. This patch changes output of largefiles for summary to distinguish from one for outgoing. This patch puts "no remote repo" into parentheses, because this is not summarized information.
Wed, 31 Oct 2012 03:59:28 +0900 i18n: make column positioning message of MQ summary output translatable stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 31 Oct 2012 03:59:28 +0900] rev 17893
i18n: make column positioning message of MQ summary output translatable Before this patch, one of column positioning messages of MQ summary output is not translatable, and patches are always listed up at fixed column position like below, when patch queue is not empty: mq: 1 applied, 1 unapplied But column positioning messages for other summarized information are translatable, so other information may be displayed at different column position on non-English locale environments. This patch makes column positioning message of MQ summary output translatable.
Wed, 31 Oct 2012 03:59:28 +0900 i18n: add "i18n" comment to column positioning messages of "hg summary" stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 31 Oct 2012 03:59:28 +0900] rev 17892
i18n: add "i18n" comment to column positioning messages of "hg summary" This comment makes it easier to distinguish such messages from others for message translators.
Wed, 31 Oct 2012 03:59:27 +0900 i18n: add "i18n" comment to column positioning messages of "hg log" stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 31 Oct 2012 03:59:27 +0900] rev 17891
i18n: add "i18n" comment to column positioning messages of "hg log" This comment makes it easier to distinguish such messages from others for message translators.
Wed, 31 Oct 2012 03:59:27 +0900 i18n: add "i18n" comment to error messages of template functions stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 31 Oct 2012 03:59:27 +0900] rev 17890
i18n: add "i18n" comment to error messages of template functions
Wed, 31 Oct 2012 16:50:22 +0900 icasefs: make case-folding collision detection as deletion aware (issue3648) stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 31 Oct 2012 16:50:22 +0900] rev 17889
icasefs: make case-folding collision detection as deletion aware (issue3648) Before this patch, case-folding collision is checked simply between manifests of each merged revisions. So, files may be considered as colliding each other, even though one of them is already deleted on one of merged branches: in such case, merge causes deleting it, so case-folding collision doesn't occur. This patch checks whether both of files colliding each other still remain after merge or not, and ignores collision if at least one of them is deleted by merge. In the case that one of colliding files is deleted on one of merged branches and changed on another, file is considered to still remain after merge, even though it may be deleted by merge, if "deleting" of it is chosen in "manifestmerge()". This avoids fail to merge by case-folding collisions after choices from "changing" and "deleting" of files. This patch adds only tests for "removed remotely" code paths in "_remains()", because other ones are tested by existing tests in "test-casecollision-merge.t".
Tue, 30 Oct 2012 13:19:06 -0700 mq: fix qrefresh case sensitivity (issue3271) stable
Durham Goode <durham@fb.com> [Tue, 30 Oct 2012 13:19:06 -0700] rev 17888
mq: fix qrefresh case sensitivity (issue3271) When calling qrefresh with filenames, the filenames were being treated as case-sensistive on case-insensitive file systems. So 'qrefresh foo' would not match file 'Foo', and it failed silently. This fix makes it work correctly on case-insensitive file systems. Previously the matching function was applied directly to the filenames. Now we apply the matching function through repo.status, which handles the case logic for us. A side effect of using repo.status is that if the qrefresh file doesn't exist, there is output stating it doesn't exist. Adds a test to an existing mq refresh case test.
Wed, 17 Oct 2012 21:30:08 -0700 url: use open and not url.open for local files (issue3624) stable
Siddharth Agarwal <sid0@fb.com> [Wed, 17 Oct 2012 21:30:08 -0700] rev 17887
url: use open and not url.open for local files (issue3624)
Tue, 30 Oct 2012 18:48:44 -0500 revset: accept @ in unquoted symbols (issue3686) stable
Matt Mackall <mpm@selenic.com> [Tue, 30 Oct 2012 18:48:44 -0500] rev 17886
revset: accept @ in unquoted symbols (issue3686)
Fri, 26 Oct 2012 12:02:58 -0700 filemerge: use util.shellquote when calling merge (issue3581) stable
Keegan Carruthers-Smith <keegancsmith@fb.com> [Fri, 26 Oct 2012 12:02:58 -0700] rev 17885
filemerge: use util.shellquote when calling merge (issue3581)
Tue, 30 Oct 2012 16:46:52 -0500 merge with i18n stable
Matt Mackall <mpm@selenic.com> [Tue, 30 Oct 2012 16:46:52 -0500] rev 17884
merge with i18n
Tue, 23 Oct 2012 11:40:48 -0200 i18n-pt_BR: synchronized with 71c1513fd560 stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Tue, 23 Oct 2012 11:40:48 -0200] rev 17883
i18n-pt_BR: synchronized with 71c1513fd560
Mon, 29 Oct 2012 14:02:30 +0100 clone: show status "updating to bookmark @" stable
Adrian Buehlmann <adrian@cadifra.com> [Mon, 29 Oct 2012 14:02:30 +0100] rev 17882
clone: show status "updating to bookmark @" if bookmark @ is not on the default branch, we show updating to bookmark @ on branch <name>
Sun, 28 Oct 2012 14:16:16 +0100 test-clone: fix directory level stable
Adrian Buehlmann <adrian@cadifra.com> [Sun, 28 Oct 2012 14:16:16 +0100] rev 17881
test-clone: fix directory level 92980a8dfdfe inserted a "cd a" but didn't restore the previous directory.
Sun, 28 Oct 2012 05:44:50 -1000 patchbomb: -c is not an alias for the --confirm option stable
Julian Cowley <julian@lava.net> [Sun, 28 Oct 2012 05:44:50 -1000] rev 17880
patchbomb: -c is not an alias for the --confirm option The help text shows "-c/--confirm", which implies that -c is an alias for --confirm. Actually, it is an alias for --cc. Correct the text by removing -c.
Tue, 23 Oct 2012 21:25:22 -0700 dirstate: handle dangling junctions on windows (issue2579) stable
Bryan O'Sullivan <bryano@fb.com> [Tue, 23 Oct 2012 21:25:22 -0700] rev 17879
dirstate: handle dangling junctions on windows (issue2579)
Tue, 23 Oct 2012 21:32:19 -0400 largefiles: don't copy largefiles from working dir to the store while converting stable
Matt Harbison <matt_harbison@yahoo.com> [Tue, 23 Oct 2012 21:32:19 -0400] rev 17878
largefiles: don't copy largefiles from working dir to the store while converting Previously, if one or more largefiles for a repo being converted were not in the usercache, the convert would abort with a reference to the largefile being missing (as opposed to the previous patch, where the standin was referenced as missing). This is because commitctx() tries to copy all largefiles to the local store, first from the user cache, and if the file isn't found there, from the working directory. No files will exist in the working directory during a convert, however. It is not sufficient to force the source repo to be local before proceeding, because clone and pull do not download largefiles by default. This is slightly less than ideal because while the conversion will now complete, it won't be possible to update to revs with missing largefiles unless the user intervenes manually, because there is no default path pointing back to the source repo. Ideally these files would be cached during the conversion. This check could have been done in reposetup.commitctx() instead, but this ensures the local store directory is created, which is necessary to enable the standin matcher. The rm -> 'rm -f' change in the test is to temporarily suppress an error clearing the cache- as noted, the cache is is not repopulated during convert. When that is fixed, this can be changed back and the verification errors will disappear too.
Tue, 23 Oct 2012 21:07:14 -0400 largefiles: respect the rev when reading standins in copytostore() (issue3630) stable
Matt Harbison <matt_harbison@yahoo.com> [Tue, 23 Oct 2012 21:07:14 -0400] rev 17877
largefiles: respect the rev when reading standins in copytostore() (issue3630) When the rev isn't specified, the standin for the working copy gets read. But convert doesn't update the working copy for each cset it processes, so there is no standin and the 'hg convert' would abort complaining about the standin being missing. Note that if the largefile is not in the user cache, 'hg convert' complains about the largefile itself missing from the destination repo.
Wed, 10 Oct 2012 01:18:06 +0200 subrepo: subrepo isolation, pass baseui when cloning a new subrepo (issue2904) stable
Simon Heimberg <simohe@besonet.ch> [Wed, 10 Oct 2012 01:18:06 +0200] rev 17876
subrepo: subrepo isolation, pass baseui when cloning a new subrepo (issue2904) Create the repo with baseui because it should only get the global configuration. After this patch issue2904 is finally fixed.
Thu, 04 Oct 2012 19:46:43 +0200 subrepo: more isolation, only use ui for hg.peer when there is no repo stable
Simon Heimberg <simohe@besonet.ch> [Thu, 04 Oct 2012 19:46:43 +0200] rev 17875
subrepo: more isolation, only use ui for hg.peer when there is no repo ui contains repo specific configuration, so do not use it when there is a repo. But pass it to hg.peer when there is no repo. Then it only contains global configuration.
Sat, 28 Jul 2012 23:28:36 +0200 peer: subrepo isolation, pass repo instead of repo.ui to hg.peer stable
Simon Heimberg <simohe@besonet.ch> [Sat, 28 Jul 2012 23:28:36 +0200] rev 17874
peer: subrepo isolation, pass repo instead of repo.ui to hg.peer Do not pass ui because it contains the configuration of the repo. It is the same object as repo.ui. When a repo is passed to hg.peer, the global configuration is read from repo.baseui.
Sat, 29 Sep 2012 20:11:24 +0900 subrepo: isolate configuration between each repositories in subrepo tree stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 29 Sep 2012 20:11:24 +0900] rev 17873
subrepo: isolate configuration between each repositories in subrepo tree Before this patch, repository local configurations are not isolated between repositories in subrepo tree, because "localrepository" objects for each subrepositories are created with "ui" instance of the parent of each ones. So, local configuration of the parent or higher repositories are visible also in children or lower ones. This patch uses "baseui" instead of "ui" to create repository object: the former contains only global configuration. This patch also copies 'ui.commitsubrepos' configuration to commit recursively in subrepo tree, because it may be set in not "repo.baseui" but "repo.ui".
Sat, 27 Oct 2012 16:39:47 -0500 bookmarks: backed out new message from changeset 52c7e171e355 stable
Matt Mackall <mpm@selenic.com> [Sat, 27 Oct 2012 16:39:47 -0500] rev 17872
bookmarks: backed out new message from changeset 52c7e171e355 Not strictly a bugfix, hasn't achieved consensus yet.
Fri, 26 Oct 2012 14:53:31 +0200 clone: print bookmark name when clone activates a bookmark stable
Thomas Arendsen Hein <thomas@intevation.de> [Fri, 26 Oct 2012 14:53:31 +0200] rev 17871
clone: print bookmark name when clone activates a bookmark Similar to the message that prints the checked out branch name. Without this, the user might accidentally move the @ bookmark.
Fri, 26 Oct 2012 14:37:03 +0200 clone: activate @ bookmark if updating to it stable
Thomas Arendsen Hein <thomas@intevation.de> [Fri, 26 Oct 2012 14:37:03 +0200] rev 17870
clone: activate @ bookmark if updating to it The message "updating bookmark @ failed!" in test-bookmarks-pushpull.t is correct, because the changeset that the @ bookmark points to is not pushed to the target repository.
Fri, 26 Oct 2012 13:20:44 +0200 test-clone.t: check that branch "@" is not automatically checked out stable
Thomas Arendsen Hein <thomas@intevation.de> [Fri, 26 Oct 2012 13:20:44 +0200] rev 17869
test-clone.t: check that branch "@" is not automatically checked out This verifies that c9339efed653 fixes the second problem mentioned in issue3677.
Fri, 26 Oct 2012 13:09:55 +0200 test-bookmarks.t: check that bookmark "default" is not automatically checked out stable
Thomas Arendsen Hein <thomas@intevation.de> [Fri, 26 Oct 2012 13:09:55 +0200] rev 17868
test-bookmarks.t: check that bookmark "default" is not automatically checked out This verifies that c9339efed653 fixes the problem originally reported in issue3677.
Fri, 26 Oct 2012 12:36:15 +0200 clone: make sure to use "@" as bookmark and "default" as branch (issue3677) stable
Thomas Arendsen Hein <thomas@intevation.de> [Fri, 26 Oct 2012 12:36:15 +0200] rev 17867
clone: make sure to use "@" as bookmark and "default" as branch (issue3677) Before this change a bookmark named "default" or a branch named "@" would cause the wrong changeset to be checked out. The change in output of test-hardlinks.t is due to the fact that no unneeded tag lookups for the tags "@" or "default" happen, therefore the cache file is not created.
Fri, 26 Oct 2012 09:29:50 +0200 bookmark: simplify nodemap check introduced in the previous changeset stable
Thomas Arendsen Hein <thomas@intevation.de> [Fri, 26 Oct 2012 09:29:50 +0200] rev 17866
bookmark: simplify nodemap check introduced in the previous changeset
Thu, 25 Oct 2012 23:43:52 +0200 bookmark: prevent crashing when a successor is unknown locally (issue3680) stable
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 25 Oct 2012 23:43:52 +0200] rev 17865
bookmark: prevent crashing when a successor is unknown locally (issue3680) The `%ln` revset substitution does not accept unknown node. We prune unknown node from potential successors before computing descendants. This have no impact on the result of this function. - Descendants of unknown changeset as unknown, - all successors of unknown changesets are already return by the call who returned those same unknown changesets, - unknown changesets are never a valid destination for a bookmark.
Thu, 25 Oct 2012 23:36:03 +0200 bookmark: complexity pull-push test to have deeper tree stable
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 25 Oct 2012 23:36:03 +0200] rev 17864
bookmark: complexity pull-push test to have deeper tree This changeset only touch test. The previous test was correct, it tested that the successors of an old bookmark position was seen as a valid destination for bookmark. However, a newer version is made for two reason: (1) The new test check further. It check that the descendant of the successors is a valid destination (2) An ever more complexe test is needed to validate a future fix to issue 3680 Splitting complexification of the test and actual bugfix help to reduce the noise in the bugfix changeset. Issue 3680 is NOT fixed by this changeset.
Wed, 24 Oct 2012 15:37:32 +0200 amend: fix incompatibity between logfile and message option (issue3675) stable
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 24 Oct 2012 15:37:32 +0200] rev 17863
amend: fix incompatibity between logfile and message option (issue3675) Bug introduced by 9732473aa24b
Wed, 24 Oct 2012 11:51:24 +0200 test-remove: adapt to differing error message on Windows stable
Adrian Buehlmann <adrian@cadifra.com> [Wed, 24 Oct 2012 11:51:24 +0200] rev 17862
test-remove: adapt to differing error message on Windows On Windows, this part of the test failed with $ hg rm --after nosuch - nosuch: No such file or directory + nosuch: The system cannot find the file specified [1] Fixed by glob-ing away the error message if the test is run on Windows (see for example test-bad-pull.t line 3 for precedent). test-remove.t now passes on Windows.
Wed, 24 Oct 2012 11:38:31 +0200 test-remove: fix \ vs. / issues on Windows stable
Adrian Buehlmann <adrian@cadifra.com> [Wed, 24 Oct 2012 11:38:31 +0200] rev 17861
test-remove: fix \ vs. / issues on Windows This part of the test failed with $ hg rm --after d1 - removing d1/a + removing d1\a on Windows.
Wed, 24 Oct 2012 09:27:47 -0700 verify: fix all doubled-slash sites (issue3665) stable
Bryan O'Sullivan <bryano@fb.com> [Wed, 24 Oct 2012 09:27:47 -0700] rev 17860
verify: fix all doubled-slash sites (issue3665)
Wed, 24 Oct 2012 09:53:10 +0200 patchbomb: respect --in-reply-to for all mails if no intro message is sent stable
Thomas Arendsen Hein <thomas@intevation.de> [Wed, 24 Oct 2012 09:53:10 +0200] rev 17859
patchbomb: respect --in-reply-to for all mails if no intro message is sent Before this change, the thread hierarchy looked like this: PARENT PATCH1/x PATCH2/x PATCH3/x ... Now it is: PARENT PATCH1/x PATCH2/x PATCH3/x ... With an introductory message the behaviour is unchanged: PARENT INTRO PATCH1/x PATCH2/x PATCH3/x ...
Tue, 23 Oct 2012 17:06:31 +0900 test: add test for the issue introduced by e410be860393 (issue3669) stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 23 Oct 2012 17:06:31 +0900] rev 17858
test: add test for the issue introduced by e410be860393 (issue3669) e410be860393 (released as Mercurial 2.3) introduced the issue that the revset program started with 40 hexadecimal letters caused unexpected result at "hg log" execution. This issue was already fixed by bde1185f406c (released as 2.3.1), but there is no test to examine whether this issue is certainly fixed or not: no test fails even if bde1185f406c is backed out. This patch adds test for this issue. Added test is also confirmed to fail, when it is tested against: - Mercurial 2.3, or - Mercurial 2.3.1 or later with backing bde1185f406c out
Fri, 19 Oct 2012 13:52:34 +0200 obsolete: add missing line feed in debug error message stable
Pierre-Yves David <pierre-yves.david@logilab.fr> [Fri, 19 Oct 2012 13:52:34 +0200] rev 17857
obsolete: add missing line feed in debug error message
Tue, 23 Oct 2012 09:28:42 +0200 merge with stable
Thomas Arendsen Hein <thomas@intevation.de> [Tue, 23 Oct 2012 09:28:42 +0200] rev 17856
merge with stable
Tue, 23 Oct 2012 09:22:46 +0200 localrepo: translate "push includes X changeset" only once stable
Thomas Arendsen Hein <thomas@intevation.de> [Tue, 23 Oct 2012 09:22:46 +0200] rev 17855
localrepo: translate "push includes X changeset" only once This was introduced in 12fdaa30063a
Tue, 23 Oct 2012 09:27:48 +0200 merge stable heads stable
Thomas Arendsen Hein <thomas@intevation.de> [Tue, 23 Oct 2012 09:27:48 +0200] rev 17854
merge stable heads
Mon, 22 Oct 2012 21:56:13 -0700 Merge with stable
Bryan O'Sullivan <bryano@fb.com> [Mon, 22 Oct 2012 21:56:13 -0700] rev 17853
Merge with stable
Mon, 22 Oct 2012 21:54:36 -0700 Merge repeated-slash fix stable
Bryan O'Sullivan <bryano@fb.com> [Mon, 22 Oct 2012 21:54:36 -0700] rev 17852
Merge repeated-slash fix
Mon, 22 Oct 2012 18:05:40 -0700 verify: tolerate repeated slashes in a converted repo (issue3665)
Bryan O'Sullivan <bryano@fb.com> [Mon, 22 Oct 2012 18:05:40 -0700] rev 17851
verify: tolerate repeated slashes in a converted repo (issue3665) These slashes are a hangover from issue3612, fixed in e4da793998bf. Although the bugfix in that commit is correct, the test it adds does not replicate the conditions for the bug correctly.
Sun, 21 Oct 2012 11:20:33 -0200 scmutil: generalize message to make it more i18n-friendly stable
Wagner Bruna <wbruna@yahoo.com> [Sun, 21 Oct 2012 11:20:33 -0200] rev 17850
scmutil: generalize message to make it more i18n-friendly
Mon, 22 Oct 2012 17:23:31 -0500 update: check for missing files with --check (issue3595) stable
Matt Mackall <mpm@selenic.com> [Mon, 22 Oct 2012 17:23:31 -0500] rev 17849
update: check for missing files with --check (issue3595)
Mon, 22 Oct 2012 16:06:47 -0500 remove: don't return error on directories with tracked files stable
Matt Mackall <mpm@selenic.com> [Mon, 22 Oct 2012 16:06:47 -0500] rev 17848
remove: don't return error on directories with tracked files Spotted by Sergey <sergemp@mail.ru>
Sat, 20 Oct 2012 21:43:46 -0400 largefiles: use 'default' instead of 'default-push' when pulling (issue3584) stable
Matt Harbison <matt_harbison@yahoo.com> [Sat, 20 Oct 2012 21:43:46 -0400] rev 17847
largefiles: use 'default' instead of 'default-push' when pulling (issue3584) This only applies to downloading largefiles, and only when no source for the pull is explicitly provided. The repository itself was properly being pulled via 'default' previously. Using --all-largefiles is not necessary on a bare pull to test this (this existing test is merely a convenience), but it is required to test pulling on the rebase path. Note that the errors generated in the --rebase case are because the repo specified doesn't have the largefiles in its cache (though they are in the user cache), so the errors are misleading. Specifying --all-largefiles when cloning to 'b' fixes this, but instead of errors, it reports caching only 5 largefiles instead of the 9 that come up missing. Likely this is because the largefile download procedure tries to download missing files for each rev, and some of the files have standins in more than one rev that gets pulled.
Mon, 22 Oct 2012 12:00:21 -0700 scmutil: add mustaudit delegation to filtervfs (issue3673) stable
Bryan O'Sullivan <bryano@fb.com> [Mon, 22 Oct 2012 12:00:21 -0700] rev 17846
scmutil: add mustaudit delegation to filtervfs (issue3673)
Mon, 22 Oct 2012 11:59:11 -0700 scmutil: abstract out mustaudit delegation stable
Bryan O'Sullivan <bryano@fb.com> [Mon, 22 Oct 2012 11:59:11 -0700] rev 17845
scmutil: abstract out mustaudit delegation
Fri, 19 Oct 2012 14:47:55 -0500 clone: don't %-escape the default destination (issue3145) stable
Matt Mackall <mpm@selenic.com> [Fri, 19 Oct 2012 14:47:55 -0500] rev 17844
clone: don't %-escape the default destination (issue3145)
Fri, 19 Oct 2012 15:45:16 +0200 test-largefiles: fix failing test on Windows stable
Adrian Buehlmann <adrian@cadifra.com> [Fri, 19 Oct 2012 15:45:16 +0200] rev 17843
test-largefiles: fix failing test on Windows The test failed due to / vs. \ in paths issues. Fixes 08d11b82d9fc.
Fri, 19 Oct 2012 15:03:35 +0200 test-push-http: fix failing test on Windows stable
Adrian Buehlmann <adrian@cadifra.com> [Fri, 19 Oct 2012 15:03:35 +0200] rev 17842
test-push-http: fix failing test on Windows The test failed due to problems with escaping. Fixes 8474be4412ca.
Fri, 19 Oct 2012 01:38:53 -0500 Added signature for changeset d118a4f4fd16 stable
Matt Mackall <mpm@selenic.com> [Fri, 19 Oct 2012 01:38:53 -0500] rev 17841
Added signature for changeset d118a4f4fd16
Fri, 19 Oct 2012 01:38:49 -0500 Added tag 2.4-rc for changeset d118a4f4fd16 stable
Matt Mackall <mpm@selenic.com> [Fri, 19 Oct 2012 01:38:49 -0500] rev 17840
Added tag 2.4-rc for changeset d118a4f4fd16
Fri, 19 Oct 2012 01:34:50 -0500 merge default into stable for 2.4 code freeze stable 2.4-rc
Matt Mackall <mpm@selenic.com> [Fri, 19 Oct 2012 01:34:50 -0500] rev 17839
merge default into stable for 2.4 code freeze
Thu, 26 Jul 2012 21:29:39 +0200 hgwebdir: make collapsed folders easier to distinguish from repositories
Angel Ezquerra <angel.ezquerra@gmail.com> [Thu, 26 Jul 2012 21:29:39 +0200] rev 17838
hgwebdir: make collapsed folders easier to distinguish from repositories Add a "/" character after the collapsed folder names, to make them easier to distinguish from regular repository and subrepository entries.
Thu, 18 Oct 2012 10:31:15 +0900 help: indicate help omitting if help document is not fully displayed
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 18 Oct 2012 10:31:15 +0900] rev 17837
help: indicate help omitting if help document is not fully displayed Before this patch, there is no information about whether help document is fully displayed or not. So, some users seem to misunderstand "-v" for "hg help" just as "the option to show list of global options": experience on "hg help -v" for some commands not containing verbose containers may strengthen this misunderstanding. Such users have less opportunity for noticing omitted help document, and this may cause insufficient understanding about Mercurial. This patch indicates help omitting, if help document is not fully displayed. For command help, the message below is displayed at the end of help output, if help document is not fully displayed: use "hg -v help xxxx" to show more complete help and the global options and otherwise: use "hg -v help xxxx" to show the global options For topics and extensions help, the message below is displayed, only if help document is not fully displayed: use "hg help -v xxxx" to show more complete help This allows users to know whether there is any omitted information or not exactly, and can trigger "hg help -v" invocation. This patch causes formatting help document twice, to switch messages one for omitted help, and another for not omitted. This decreases performance of help document formatting, but it is not mainly focused at help command invocation, so this wouldn't become problem.
Thu, 18 Oct 2012 23:55:15 -0500 httpclient: fix calling convention violation
Matt Mackall <mpm@selenic.com> [Thu, 18 Oct 2012 23:55:15 -0500] rev 17836
httpclient: fix calling convention violation
Mon, 08 Oct 2012 23:49:36 +0900 largefiles: distinguish "no remote repo" from "no files to upload" (issue3651)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 08 Oct 2012 23:49:36 +0900] rev 17835
largefiles: distinguish "no remote repo" from "no files to upload" (issue3651) Before this patch, when no files to upload, "hg outgoing --large" and "hg summary --large" show "no remote repo", even though valid remote repository is specified. It is because that "getoutgoinglfiles()" returns None, not only if no valid remote repository is specified, but also if no files to upload. This patch makes "getoutgoinglfiles()" return empty list when no files to upload, and makes largefiles show "no files to upload" message at that time. This patch doesn't test "if toupload is None" route in "overrideoutgoing()", because this route is not executed unless remote repository becomes inaccessible just before largefiles specific processing: successful execution of "orig()" means that at least one of "default", "default-push" or dest is valid one, and that "getoutgoinglfiles()" never returns None in such cases. At "hg summary --large" invocation, this patch shows message below: largefiles: (no files to upload) This follows the message shown by "hg summary" with MQ: mq: (empty queue)
Fri, 19 Oct 2012 00:50:12 +0200 push: refuse to push bumped changeset
Pierre-Yves David <pierre-yves.david@logilab.fr> [Fri, 19 Oct 2012 00:50:12 +0200] rev 17834
push: refuse to push bumped changeset This applies the same logic as used for `obsolete` and `unstable` changesets. Refuse to push them without force. We'll probably want to factor this logic with two new functions `pctx.troubled()` and `ctx.troubles()`. But I'm waiting for the third "trouble" to make it into core.
Fri, 19 Oct 2012 00:46:39 +0200 obsolete: simplify push abort message
push includes an xxx changeset: yyyyyyyyyy [Fri, 19 Oct 2012 00:46:39 +0200] rev 17833
obsolete: simplify push abort message to: push includes xxx changeset: yyyyyyyyyy
Fri, 19 Oct 2012 00:43:44 +0200 context: add a `bumped` method to `changectx`
Pierre-Yves David <pierre-yves.david@logilab.fr> [Fri, 19 Oct 2012 00:43:44 +0200] rev 17832
context: add a `bumped` method to `changectx` Same as `unstable()`, returns true if the changeset is bumped.
Fri, 19 Oct 2012 00:41:53 +0200 obsolete: add a flag that allows fixing "bumped" changeset
Pierre-Yves David <pierre-yves.david@logilab.fr> [Fri, 19 Oct 2012 00:41:53 +0200] rev 17831
obsolete: add a flag that allows fixing "bumped" changeset The first obsolescence flag is introduced to allows for fixing the "bumped" changeset situation. bumpedfix == 1. Creator of new changesets intended to fix "bumped" situation should not forget to add this flag to the marker. Otherwise the newly created changeset will be bumped too. See inlined documentation for details.
Mon, 15 Oct 2012 14:45:27 +0200 debugobsolete: add --flags option
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 15 Oct 2012 14:45:27 +0200] rev 17830
debugobsolete: add --flags option This options allows to specify the `flag` part of obsolete markers. For details about marker flags, check the `mercurial/obsolete.py` documentation. Some random flag are added to a marker to test this feature.
Fri, 19 Oct 2012 00:39:06 +0200 revset: add a bumped revset
Pierre-Yves David <pierre-yves.david@logilab.fr> [Fri, 19 Oct 2012 00:39:06 +0200] rev 17829
revset: add a bumped revset Select bumped changesets.
Fri, 19 Oct 2012 00:36:18 +0200 obsolete: add the detection of bumped changeset.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Fri, 19 Oct 2012 00:36:18 +0200] rev 17828
obsolete: add the detection of bumped changeset. Bumped changesets are non-public changesets that tries to succeed a public() changeset.
Tue, 16 Oct 2012 15:49:58 +0200 obsolete: have `allsuccessors` takes a list of nodes
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 16 Oct 2012 15:49:58 +0200] rev 17827
obsolete: have `allsuccessors` takes a list of nodes Additional logic, used to detect mutable history troubles, will need to quickly compute successors of a whole set of changeset.
Fri, 19 Oct 2012 00:30:11 +0200 obsolete: rename `anysuccessors` into `allsuccessors`
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 19 Oct 2012 00:30:11 +0200] rev 17826
obsolete: rename `anysuccessors` into `allsuccessors` The "any" prefix looks like it returned a boolean. `allsuccessors` is more accurate.
Fri, 19 Oct 2012 00:28:13 +0200 obsolete: rename `getobscache` into `getrevs`
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 19 Oct 2012 00:28:13 +0200] rev 17825
obsolete: rename `getobscache` into `getrevs` The old name was not very good for two reasons: - caller does not care about "cache", - set of revision returned may not be obsolete at all. The new name was suggested by Kevin Bullock.
Sun, 14 Oct 2012 15:10:13 -0400 largefiles: always create the cache and standin directories when cloning
Matt Harbison <matt_harbison@yahoo.com> [Sun, 14 Oct 2012 15:10:13 -0400] rev 17824
largefiles: always create the cache and standin directories when cloning The standin matcher only works if the .hglf directory exists (and it won't exist if 'clone -U' is used, unless --all-largefiles is also specified). Since not even 'update -r null' will get rid of the standin directory, this ensures that the standin directory always exists if the repo has the 'largefiles' requirement. This requirement is only set after a largefile is committed, so these directories will not be created for repos that have the extension enabled but have not committed a largefile. With the standin directory in place, 'lfconvert --to-normal' will now be able to download the required largefiles when converting a repo that was created with 'clone -U', and whose files are not in the usercache. The downloadlfiles command could probably be put inside the 'largefiles' requirement conditional too, but given that the user specified --all-largefiles, there is likely an expectation to print out the number of largefiles downloaded, even if it is 0.
Sun, 14 Oct 2012 14:44:08 -0400 largefiles: fix a traceback in lfconvert if a largefile is missing (issue3519)
Matt Harbison <matt_harbison@yahoo.com> [Sun, 14 Oct 2012 14:44:08 -0400] rev 17823
largefiles: fix a traceback in lfconvert if a largefile is missing (issue3519) The largefile may be missing for various reasons, including that a remote repository was cloned without the --all-largefiles option. Therefore, it seems reasonable to attempt to download the missing files and failing that, abort and indicate the affected file and revision so the user can manually fix the problem.
Thu, 18 Oct 2012 16:34:13 -0500 bookmarks: further flatten code
Kevin Bullock <kbullock@ringworld.org> [Thu, 18 Oct 2012 16:34:13 -0500] rev 17822
bookmarks: further flatten code This hopefully clarifies the behavior when no NAME is passed, by separating the branches for listing bookmarks vs. deactivating the current bookmark.
Wed, 17 Oct 2012 21:42:06 -0500 scmutil: add bad character checking to checknewlabel
Kevin Bullock <kbullock@ringworld.org> [Wed, 17 Oct 2012 21:42:06 -0500] rev 17821
scmutil: add bad character checking to checknewlabel This factors out the checks from tags and bookmarks, and newly applies the same prohibitions to branches. checknewlabel takes a new parameter, kind, indicating the kind of label being checked. Test coverage is added for all three types of labels.
Wed, 17 Oct 2012 21:39:07 -0500 tag: disallow '\0' in tag names
Kevin Bullock <kbullock@ringworld.org> [Wed, 17 Oct 2012 21:39:07 -0500] rev 17820
tag: disallow '\0' in tag names This brings the list of disallowed characters in line with bookmarks.
Wed, 17 Oct 2012 21:32:19 -0500 dirstate: use scmutil.checknewlabel to check new branch name
Kevin Bullock <kbullock@ringworld.org> [Wed, 17 Oct 2012 21:32:19 -0500] rev 17819
dirstate: use scmutil.checknewlabel to check new branch name
Wed, 17 Oct 2012 17:23:39 -0500 bookmarks: use scmutil.checknewlabel
Kevin Bullock <kbullock@ringworld.org> [Wed, 17 Oct 2012 17:23:39 -0500] rev 17818
bookmarks: use scmutil.checknewlabel Validation is pulled up into the commands module to avoid an import cycle.
Wed, 17 Oct 2012 16:34:46 -0500 scmutil: add function to validate new branch, tag, and bookmark names
Kevin Bullock <kbullock@ringworld.org> [Wed, 17 Oct 2012 16:34:46 -0500] rev 17817
scmutil: add function to validate new branch, tag, and bookmark names For now the new function only checks to make sure the new label name isn't a reserved name ('tip', '.', or 'null'). Eventually more of the checks will be unified between the different types of labels. The `tag` command is trivially updated to use it. Updating branches and bookmarks to use it is slightly more invasive and thus reserved for later patches.
Wed, 17 Oct 2012 16:32:43 -0500 bookmarks: disallow bookmarks named 'tip', '.', or 'null'
Kevin Bullock <kbullock@ringworld.org> [Wed, 17 Oct 2012 16:32:43 -0500] rev 17816
bookmarks: disallow bookmarks named 'tip', '.', or 'null' This makes bookmarks reject the same reserved names as tags and branches.
Wed, 17 Oct 2012 17:03:01 -0500 bookmarks: abort directly on invalid name
Kevin Bullock <kbullock@ringworld.org> [Wed, 17 Oct 2012 17:03:01 -0500] rev 17815
bookmarks: abort directly on invalid name This consolidates the abort message for a bookmark name containing invalid characters into one place, and renames the valid() method to checkvalid() to reflect the fact that it's no longer a predicate.
Wed, 17 Oct 2012 16:23:42 -0500 bookmarks: remove redundant check for newline
Kevin Bullock <kbullock@ringworld.org> [Wed, 17 Oct 2012 16:23:42 -0500] rev 17814
bookmarks: remove redundant check for newline New bookmarks are already checked for illegal characters (':', '\0', '\n', and '\r') in bookmarks.valid().
Wed, 17 Oct 2012 22:25:41 -0500 test-tag: test that all reserved names are rejected
Kevin Bullock <kbullock@ringworld.org> [Wed, 17 Oct 2012 22:25:41 -0500] rev 17813
test-tag: test that all reserved names are rejected
Thu, 18 Oct 2012 17:54:34 +0200 amend: do a bare kill of temporary changeset
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 18 Oct 2012 17:54:34 +0200] rev 17812
amend: do a bare kill of temporary changeset Before this changeset the temporary changeset created by amend was made a precursors on the amend result. This add unnecessary complexity to the obsolescence graph. This temporary commit will probably disappear in the future. It is an unwanted byproduct of amend that nobody cares about.
Thu, 18 Oct 2012 22:12:15 +0200 amend: add noise in extra to avoid creating obsolescence cycle (issue3664)
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 18 Oct 2012 22:12:15 +0200] rev 17811
amend: add noise in extra to avoid creating obsolescence cycle (issue3664) Obsolescence cycle are bad and should be avoided as much as possible. The current amend implemented touch changeset meta data as few as possible. This make is easy for amend to result in the same node than a precursors. We add some deterministic noise in extra to avoid this. In practice, the hex of the amended changeset is stored in 'amend_source' extra key.
Thu, 18 Oct 2012 22:04:49 +0200 changelog: extract description cleaning logic in a dedicated function
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 18 Oct 2012 22:04:49 +0200] rev 17810
changelog: extract description cleaning logic in a dedicated function The amend logic have use for it.
Thu, 18 Oct 2012 22:35:28 +0200 bookmarks: replace code-redundant comment with something more useful
Adrian Buehlmann <adrian@cadifra.com> [Thu, 18 Oct 2012 22:35:28 +0200] rev 17809
bookmarks: replace code-redundant comment with something more useful
Thu, 18 Oct 2012 22:33:58 +0200 bookmarks: remove another uneeded return
Adrian Buehlmann <adrian@cadifra.com> [Thu, 18 Oct 2012 22:33:58 +0200] rev 17808
bookmarks: remove another uneeded return
Sat, 05 May 2012 15:30:54 -0500 update: remove unnecessary argument check
Kevin Bullock <kbullock@ringworld.org> [Sat, 05 May 2012 15:30:54 -0500] rev 17807
update: remove unnecessary argument check
Sun, 14 Oct 2012 20:27:55 +0200 grep: colorize all fields
Idan Kamara <idankk86@gmail.com> [Sun, 14 Oct 2012 20:27:55 +0200] rev 17806
grep: colorize all fields Colors were picked in accordance to GNU grep.
Sun, 14 Oct 2012 20:40:23 +0200 test-grep: add a test for -l
Idan Kamara <idankk86@gmail.com> [Sun, 14 Oct 2012 20:40:23 +0200] rev 17805
test-grep: add a test for -l
Mon, 08 Oct 2012 15:54:53 +0200 clfilter: remove use of xrange in revset
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 08 Oct 2012 15:54:53 +0200] rev 17804
clfilter: remove use of xrange in revset For changelog level filtering to take effect it need to be used for any iteration. Some remaining use of `xrange` in revset code is replace by proper use of `changelog.revs` or direct iteration over changelog.
Mon, 08 Oct 2012 15:41:58 +0200 largefile: use `self` in repo method instead of `repo`
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 08 Oct 2012 15:41:58 +0200] rev 17803
largefile: use `self` in repo method instead of `repo` Most method added (or overwritten) to repo by largefile works on `repo` instead of `self`. This currently works without trouble because `self` and `repo` are likely the same. However this is semantically dubious and this may cause issue for filtering. `self` may be proxy object different from the `repo` one. This changeset fix that and use `self` when applicable.
Tue, 16 Oct 2012 23:12:07 +0200 test: use proper subclassing in `test-issue2137.t`.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 16 Oct 2012 23:12:07 +0200] rev 17802
test: use proper subclassing in `test-issue2137.t`. To use changelog filtering on the repository, we plan to use "proxy" object that perfectly mock a repository but with a filtered changelog. Altering the `repo.commit` function using `extensions.wrapfunction` will prevent the logic to propagate to the proxy class by the mean of inheritance. We changes the extension to use subclassing as expectable.
Thu, 18 Oct 2012 00:44:32 +0200 run-tests: remove dead code for supporting old test scripts
Mads Kiilerich <mads@kiilerich.com> [Thu, 18 Oct 2012 00:44:32 +0200] rev 17801
run-tests: remove dead code for supporting old test scripts
Thu, 18 Oct 2012 00:33:29 +0200 run-tests: handle windows crlf in .py tests again
Mads Kiilerich <mads@kiilerich.com> [Thu, 18 Oct 2012 00:33:29 +0200] rev 17800
run-tests: handle windows crlf in .py tests again Before af7c6bc48d8d all crlf occurrences in test output on Windows were simply changed to lf. In af7c6bc48d8d it was replaced by more clever handling in the .t test runner ... but the .py runner was forgotten and many .py tests were failing on Windows. The crlf/lf replacement is now reintroduced in the py test runner.
Thu, 18 Oct 2012 00:33:26 +0200 test-run-tests.t: fix wrong test case for cr handling on Windows
Mads Kiilerich <mads@kiilerich.com> [Thu, 18 Oct 2012 00:33:26 +0200] rev 17799
test-run-tests.t: fix wrong test case for cr handling on Windows An incorrect and failing test case was introduced in af7c6bc48d8d.
Wed, 17 Oct 2012 18:09:00 +0900 win32mbcs: add reversing wrapper for some unicode-incompatible functions.
Shun-ichi GOTO <shunichi.goto@gmail.com> [Wed, 17 Oct 2012 18:09:00 +0900] rev 17798
win32mbcs: add reversing wrapper for some unicode-incompatible functions. This changeset fix the problem to use win32mbcs with mercurial 2.3 or later. The problem is brought by side effect of modification of encoding.upper() (changeset 17236:9fb8312dbdbd) because upper() does not accept unicode string argument. So wrapped util.normcase() which uses upper() will fail. In other words, upper() and lower() are unicode incompatible. To fix this issue, this changeset adds new wrapper for reversed conversion (unicode to str) for lower() and upper() to use them safely.
Fri, 05 Oct 2012 16:27:34 -0700 convert: normalize paths in filemaps (issue3612)
Huayang <huayang@fb.com> [Fri, 05 Oct 2012 16:27:34 -0700] rev 17797
convert: normalize paths in filemaps (issue3612) convert doesn't normalise double slashes in paths. Path normalization is applied when a path is loaded into filemap and when a file lookup request is issued to filemap.
Wed, 17 Oct 2012 15:37:25 -0500 repair: use node to track post-strip bookmark target
Matt Mackall <mpm@selenic.com> [Wed, 17 Oct 2012 15:37:25 -0500] rev 17796
repair: use node to track post-strip bookmark target Revision numbers are unstable when non-consecutive revs are stripped.
Wed, 17 Oct 2012 17:32:01 +0200 keyword: move commands.inferrepo for code maintenance
Christian Ebert <blacktrash@gmx.net> [Wed, 17 Oct 2012 17:32:01 +0200] rev 17795
keyword: move commands.inferrepo for code maintenance
Mon, 08 Oct 2012 22:43:54 -0400 largefiles: update lfutil.findoutgoing() discovery method
Matt Harbison <matt_harbison@yahoo.com> [Mon, 08 Oct 2012 22:43:54 -0400] rev 17794
largefiles: update lfutil.findoutgoing() discovery method It looks like this method missed the updates in 30273f0c776b (which changed the preferred discovery method from findcommonincoming() to findcommonoutgoing()), and cd956049fc14 (which rolls up the outgoing lists into a single object).
Mon, 15 Oct 2012 18:37:34 -0300 wireproto: fix pushkey hook failure and output on remote http repo
Wagner Bruna <wbruna@softwareexpress.com.br> [Mon, 15 Oct 2012 18:37:34 -0300] rev 17793
wireproto: fix pushkey hook failure and output on remote http repo Over http, a failed pushkey hook simply crashed the server, and successful hook output was never sent to the client.
Tue, 16 Oct 2012 17:09:50 -0500 phases: add a phase and phasestr method to file context
Sean Farley <sean.michael.farley@gmail.com> [Tue, 16 Oct 2012 17:09:50 -0500] rev 17792
phases: add a phase and phasestr method to file context
Wed, 17 Oct 2012 12:15:23 -0500 bookmarks: simplify code
Kevin Bullock <kbullock@ringworld.org> [Wed, 17 Oct 2012 12:15:23 -0500] rev 17791
bookmarks: simplify code Remove some unnecessary return statements and collect some checks into one place. As requested by Thomas Arendsen Hein <thomas@intevation.de>.
Wed, 17 Oct 2012 11:50:47 +0200 bookmarks: abort when incompatible options are used (issue3663)
David Soria Parra <dsp@php.net> [Wed, 17 Oct 2012 11:50:47 +0200] rev 17790
bookmarks: abort when incompatible options are used (issue3663) Options like --delete and --rename are incompatible with each other. In this case we abort. We do not abort if the result is a nullop. Nullops are: '--delete --inactive', '--delete --force'.
Wed, 17 Oct 2012 08:44:49 +0200 bookmarks: check bookmark format during rename (issue3662)
David Soria Parra <dsp@php.net> [Wed, 17 Oct 2012 08:44:49 +0200] rev 17789
bookmarks: check bookmark format during rename (issue3662)
Tue, 16 Oct 2012 13:35:58 -0500 color: add additional changeset.phase label to log.changeset and log.parent
Sean Farley <sean.michael.farley@gmail.com> [Tue, 16 Oct 2012 13:35:58 -0500] rev 17788
color: add additional changeset.phase label to log.changeset and log.parent This allows the user to set different colors for each phase, e.g. [color] changeset.public = blue changeset.draft = green changeset.secret = red In addition, this doesn't affect current configuration for custom log.changeset colors, but rather adds the option for users that want to visually see which changesets are amendable.
Tue, 16 Oct 2012 18:05:33 -0500 http2: make it possible to connect w/o ssl on port 443
Augie Fackler <raf@durin42.com> [Tue, 16 Oct 2012 18:05:33 -0500] rev 17787
http2: make it possible to connect w/o ssl on port 443 The fix is just to make sure we always pass use_ssl=False to non-SSL connections.
Mon, 15 Oct 2012 17:43:05 +0200 branchpoint: remove useless intermediate set creation
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 15 Oct 2012 17:43:05 +0200] rev 17786
branchpoint: remove useless intermediate set creation We don't need to compute the set of all branchpoints. We can just check the number of children that element of subset have. The extra work did not seems to had particular performance impact but the code is simpler this way.
Mon, 15 Oct 2012 17:42:40 +0200 clfilter: use changelog to iterate over the repo in branchpoint
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 15 Oct 2012 17:42:40 +0200] rev 17785
clfilter: use changelog to iterate over the repo in branchpoint Otherwise filtered changesets may cause false positives in `branchpoint()`.
Fri, 12 Oct 2012 10:52:33 +0200 store: fncache may contain non-existent entries (fixes b9a56b816ff2)
Adrian Buehlmann <adrian@cadifra.com> [Fri, 12 Oct 2012 10:52:33 +0200] rev 17784
store: fncache may contain non-existent entries (fixes b9a56b816ff2)
Fri, 12 Oct 2012 10:52:32 +0200 store: add new _exists helper function on fncachestore
Adrian Buehlmann <adrian@cadifra.com> [Fri, 12 Oct 2012 10:52:32 +0200] rev 17783
store: add new _exists helper function on fncachestore
Fri, 12 Oct 2012 10:40:09 +0200 store: move __contains__() implementation from class fncache into fncachestore
Adrian Buehlmann <adrian@cadifra.com> [Fri, 12 Oct 2012 10:40:09 +0200] rev 17782
store: move __contains__() implementation from class fncache into fncachestore This restores the previous semantics of fncache.__contains__(). (a followup to b9a56b816ff2)
Fri, 12 Oct 2012 10:12:26 +0200 test-log: fix / vs \ issues on Windows introduced with 6d218e47cf9b
Adrian Buehlmann <adrian@cadifra.com> [Fri, 12 Oct 2012 10:12:26 +0200] rev 17781
test-log: fix / vs \ issues on Windows introduced with 6d218e47cf9b test-log.t fails on Windows with --- c:\Users\buildbot\w2k8\Windows_2008_R2_hg_tests\build\tests\test-log.t +++ c:\Users\buildbot\w2k8\Windows_2008_R2_hg_tests\build\tests\test-log.t.err @@ -1225,12 +1225,12 @@ $ echo 1 > d5.d/f1 $ echo 1 > .d6/f1 $ hg add . - adding .d6/f1 - adding D2/f1 - adding D3.i/f1 - adding d1/f1 - adding d4.hg/f1 - adding d5.d/f1 + adding .d6\f1 + adding D2\f1 + adding D3.i\f1 + adding d1\f1 + adding d4.hg\f1 + adding d5.d\f1 $ hg commit -m "a bunch of weird directories" $ hg log -l1 d1/f1 | grep changeset changeset: 0:65624cd9070a
Fri, 12 Oct 2012 19:43:24 +0200 perf: simply use repo.store for perffncache* commands
Adrian Buehlmann <adrian@cadifra.com> [Fri, 12 Oct 2012 19:43:24 +0200] rev 17780
perf: simply use repo.store for perffncache* commands This makes sure that .hg/requires is observed and the correct kind of store object is created. Otherwise we might mutilate our test repos when experimenting with new repo formats.
Sun, 14 Oct 2012 18:30:47 +0200 test-subrepo-recursion.t: re-introduce glob to handle \ slashes on Windows
Mads Kiilerich <mads@kiilerich.com> [Sun, 14 Oct 2012 18:30:47 +0200] rev 17779
test-subrepo-recursion.t: re-introduce glob to handle \ slashes on Windows Regression was introduced in 6047947afb6b. Resolved by using the fine line noise '\r (no-eol) (glob) (esc)'.
Sun, 14 Oct 2012 18:30:42 +0200 run-tests: make it possible to combine (esc) with (glob) and (re)
Mads Kiilerich <mads@kiilerich.com> [Sun, 14 Oct 2012 18:30:42 +0200] rev 17778
run-tests: make it possible to combine (esc) with (glob) and (re) This makes it possible to combine the annotations ... if done in the right order.
Mon, 15 Oct 2012 02:33:12 +0200 run-tests: alternative way of handling \r on Windows
Mads Kiilerich <mads@kiilerich.com> [Mon, 15 Oct 2012 02:33:12 +0200] rev 17777
run-tests: alternative way of handling \r on Windows After f71d60da58fb all \r was stripped from output on Windows, and the places where a \r explicitly was expected it was accepted that it was missing. Ugly hack. Instead we now accept that an extra \r might appear at the end of lines on Windows. That is more to the point and less ugly.
Tue, 16 Oct 2012 15:39:12 +0200 obsolete: flip `obstore.successors` and `obsolete.precursors`
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 16 Oct 2012 15:39:12 +0200] rev 17776
obsolete: flip `obstore.successors` and `obsolete.precursors` People were confused by the fact `obstore.precursors` contained marker allowing to find "precursors" and vice-versa. This changeset changes their meaning to: - precursors[x] -> set(markers on precursors edges of x) - successors[x] -> set(markers on successors edges of x) Some documentation is added to clarify the situation.
Sun, 14 Oct 2012 23:33:10 +0200 obsolete: add example of marker usage in the documentation
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 14 Oct 2012 23:33:10 +0200] rev 17775
obsolete: add example of marker usage in the documentation Recent discussion with Augie Fackler pointed the lack of such example in the documentation.
Mon, 15 Oct 2012 00:12:06 +0200 obsolete: cheap detection of nullid as successors
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 15 Oct 2012 00:12:06 +0200] rev 17774
obsolete: cheap detection of nullid as successors Nullid as successors create multiple issues: - Nullid revnum is -1, confusing algorithm that use revnum unless you add special handling in all of them. - Nullid confuses "divergent" changeset detection and resolution. As you can't add any successors to Nullid without being in even more troubles Fortunately, there is no good reason to use nullid as a successor. The only sensible meaning of "succeed by nullid" is "dropped" and this meaning is already covered by obsolescence marker with empty successors set. However, letting some nullid successors to slip in may cause terrible damage in such algorithm difficult to debug. So I prefer to perform and clear detection of of such pathological changeset. We could be much smarter by cleaning up nullid successors on the fly but it would be much for expensive. As core Mercurial does not create any such changeset, I think it is fine to just abort when suspicious situation is detected. Earlier experimental version created such changesets, so there are some out there. The evolve extension added the necessary logic to clean up its mess.
Tue, 16 Oct 2012 11:43:15 -0700 commands: don't infer repo for commands like update (issue2748)
Siddharth Agarwal <sid0@fb.com> [Tue, 16 Oct 2012 11:43:15 -0700] rev 17773
commands: don't infer repo for commands like update (issue2748) Maintain a whitelist of commands to infer the repo for instead. The whitelist contains those commands that take file(s) in the working dir as arguments.
Mon, 15 Oct 2012 09:43:34 -0700 hgweb: make the escape filter remove null characters (issue2567)
Siddharth Agarwal <sid0@fb.com> [Mon, 15 Oct 2012 09:43:34 -0700] rev 17772
hgweb: make the escape filter remove null characters (issue2567)
Tue, 16 Oct 2012 16:56:14 +0200 histedit: create obsolescence markers in deterministic order
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 16 Oct 2012 16:56:14 +0200] rev 17771
histedit: create obsolescence markers in deterministic order I arbitrary use the revnum of the precursor because it sound a right order.
Mon, 15 Oct 2012 23:54:54 -0400 bookmarks: when @ bookmark diverges, don't double the @ sign (BC)
David M. Carr <david@carrclan.us> [Mon, 15 Oct 2012 23:54:54 -0400] rev 17770
bookmarks: when @ bookmark diverges, don't double the @ sign (BC) This changeset treats the bookmark "@" as a special case for the naming of divergent bookmarks, as per the tables below. For the <no alias> case, the actual suffix will vary, depending on what suffixes are already in use. Before: Bookmark | Remote | Divergent Bookmark -------------------------------------- foo | bar | foo@bar foo | <no alias> | foo@1 @ | bar | @@bar @ | <no alias> | @@1 After: Bookmark | Remote | Divergent Bookmark -------------------------------------- foo | bar | foo@bar foo | <no alias> | foo@1 @ | bar | @bar @ | <no alias> | @1 This case is likely to be more common now that 92980a8dfdfe has made the "@" bookmark have special meaning to clone. The change in behavior was discussed on the mailing list in the thread below: http://markmail.org/thread/rwedgxp7le5j2h2f
Tue, 16 Oct 2012 16:04:28 +0200 histedit: max(x, key=y) and min(x, key=y) are not available in python 2.4
Thomas Arendsen Hein <thomas@intevation.de> [Tue, 16 Oct 2012 16:04:28 +0200] rev 17769
histedit: max(x, key=y) and min(x, key=y) are not available in python 2.4 Use sorted(x, key=y)[-1] or sorted(x, key=y)[0] instead.
Sat, 13 Oct 2012 15:10:39 -0500 vfs: use self.write to write symlink placeholders
Matt Mackall <mpm@selenic.com> [Sat, 13 Oct 2012 15:10:39 -0500] rev 17768
vfs: use self.write to write symlink placeholders The existing write() path is much more robust than the hand-rolled version that was inlined here.
Sun, 14 Oct 2012 23:49:28 +0200 histedit: do not use "min" on ctx
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 14 Oct 2012 23:49:28 +0200] rev 17767
histedit: do not use "min" on ctx It does not crash but does not compare revision number at all. We actually remove any call to min because the list is already topologically sorted.
Sun, 14 Oct 2012 23:58:02 +0200 histedit: clean abort when there is nothing to edit
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 14 Oct 2012 23:58:02 +0200] rev 17766
histedit: clean abort when there is nothing to edit
Mon, 15 Oct 2012 00:05:16 +0200 histedit: rename `revs` in `ctxs` inside the `between` function
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 15 Oct 2012 00:05:16 +0200] rev 17765
histedit: rename `revs` in `ctxs` inside the `between` function The variable content is actually contexts, not revision numbers.
Sun, 14 Oct 2012 23:03:58 +0200 test: fix invalid redirection for histedit text
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 14 Oct 2012 23:03:58 +0200] rev 17764
test: fix invalid redirection for histedit text Appending to the file is wrong, we want new content.
Sat, 13 Oct 2012 15:03:00 -0500 vfs: backout fchmod change from 76b73ce0ffac
Matt Mackall <mpm@selenic.com> [Sat, 13 Oct 2012 15:03:00 -0500] rev 17763
vfs: backout fchmod change from 76b73ce0ffac Only works on Unix with Python >= 2.6, need a different fix.
Fri, 12 Oct 2012 21:41:08 +0200 histedit: refuse to edit public changeset
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 12 Oct 2012 21:41:08 +0200] rev 17762
histedit: refuse to edit public changeset Public changeset are immutable. This changeset enforce that in histedit.
Thu, 27 Sep 2012 14:00:52 +0200 histedit: ignores hidden revision when checking for orphaned nodes
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 27 Sep 2012 14:00:52 +0200] rev 17761
histedit: ignores hidden revision when checking for orphaned nodes We do not want hidden revision to block histedit. They are already "dead" and we do not care about dead orphans. see similar changeset 9e2dc0d292cd for rebase.
Wed, 10 Oct 2012 06:27:06 +0200 histedit: simplify computation of edited set (issue3620)
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 10 Oct 2012 06:27:06 +0200] rev 17760
histedit: simplify computation of edited set (issue3620) This complex code can be replaced by two simple revset calls.
Thu, 27 Sep 2012 13:59:48 +0200 histedit: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 27 Sep 2012 13:59:48 +0200] rev 17759
histedit: add obsolete support When the obsolete feature is enabled, histedit creates obsolescence marker instead of stripping replaced changesets. For now, we keep stripping temporary nodes created along the way.
Thu, 11 Oct 2012 08:36:50 +0200 histedit: replace various nodes lists with replacement graph (and issue3582)
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 11 Oct 2012 08:36:50 +0200] rev 17758
histedit: replace various nodes lists with replacement graph (and issue3582) This changeset rewrites the change tracking logic of histedit to record every operation it does. Tracked operations record the full list of "old" node that will eventually be removed to the list of new nodes that replace it. Operations on temporary nodes are tracked too. Dropped changesets are also recorded as an "old" node replacement by nothing. This logic is similar to the obsolescence marker one and will be used for this purpose in later commit. This new logic implies a big amount of change in the histedit code base. histedit action functions now always return a tuple of (new-ctx, [list of rewriting operations]) The old `created`, `replaced` and `tmpnodes` are no longer returned and stored during histedit operation. When such information is necessary it is computed from the replacement graph. This computation is done in the `processreplacement` function. The `replacemap` is also dropped. It is computed at the end of the command from the graph. The `bootstrapcontinue` methods are altered to compute this different kind of information. This new mechanism requires much less information to be written on disk. Note: This changes allows a more accurate bookmark movement. bookmark on dropped changeset are now move of their parent (or replacement of their parent) instead of their children. This fix issue3582
Fri, 12 Oct 2012 15:52:59 -0500 merge with durin42
Matt Mackall <mpm@selenic.com> [Fri, 12 Oct 2012 15:52:59 -0500] rev 17757
merge with durin42
Wed, 21 Mar 2012 16:53:39 -0500 clone: update to @ bookmark if it exists
Kevin Bullock <kbullock@ringworld.org> [Wed, 21 Mar 2012 16:53:39 -0500] rev 17756
clone: update to @ bookmark if it exists
Fri, 10 Aug 2012 20:37:20 +0100 templatefilters: avoid traceback caused by bogus date input (issue3344)
Christian Ebert <blacktrash@gmx.net> [Fri, 10 Aug 2012 20:37:20 +0100] rev 17755
templatefilters: avoid traceback caused by bogus date input (issue3344) Wrap datefilters which split date texts with util.parsedate. We do not abort, as the bogus date must have been given by the user.
Mon, 13 Aug 2012 22:42:10 +0200 notify: support revset selection for subscriptions
Michal Sznajder <michalsznajder@gmail.com> [Mon, 13 Aug 2012 22:42:10 +0200] rev 17754
notify: support revset selection for subscriptions A repo pattern for any notify configuration contains a glob matching the path to the repo. Additionally, it may now contain a revset spec, separated from the glob by '#'. Example: [reposubs] */widgets#branch(release) = qa-team@example.com This sends to ``qa-team@example.com`` whenever a changeset on the ``release`` branch triggers a notification in any repository ending in ``widgets``. This patch was completely done by David Champion <dgc@uchicago.edu> with me making tiny changes to his tests.
Mon, 13 Aug 2012 21:50:45 +0200 revsets: add branchpoint() function
Ivan Andrus <darthandrus@gmail.com> [Mon, 13 Aug 2012 21:50:45 +0200] rev 17753
revsets: add branchpoint() function The branchpoint() function returns changesets with more than one child. Eventually I would like to be able to see only branch points and merge points in a graphical log to see the topology of the repository.
Thu, 11 Oct 2012 22:58:34 -0500 vfs: use fchmod for _fixfilemode
Matt Mackall <mpm@selenic.com> [Thu, 11 Oct 2012 22:58:34 -0500] rev 17752
vfs: use fchmod for _fixfilemode On general principle, we should use fchmod instead of chmod to avoid security pitfalls, although none is likely possible here.
Thu, 11 Oct 2012 16:05:14 -0700 tests: correctly report a test killed by a signal
Bryan O'Sullivan <bryano@fb.com> [Thu, 11 Oct 2012 16:05:14 -0700] rev 17751
tests: correctly report a test killed by a signal
Wed, 10 Oct 2012 05:54:38 +0200 histedit: update bookmark movement notice
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 10 Oct 2012 05:54:38 +0200] rev 17750
histedit: update bookmark movement notice New format is: histedit: moving bookmarks <bookmark> from <old> to <new>
Wed, 10 Oct 2012 06:20:14 +0200 histedit: simplify computation of `newchildren` during --continue
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 10 Oct 2012 06:20:14 +0200] rev 17749
histedit: simplify computation of `newchildren` during --continue We are now checking for any changesets between the previous `parentctx` and the current working directory parent. If the current working directory parent is inconsistent, we abort. This change is useful as it simplifies the --continue process, easing upcoming changes. While working on this changeset, I spotted an unhandled corner case. This corner case is now documented and have an appropriate issue in the tracker (issue3655). However, the corner case is still unhandled. handling this test case would required some additional work: - actually decide what the proper behavior should be: - change content of "histedit-state" to add missing data necessary to detect the situation - add proper testcase, But leaving the case unhandled is "okay": - this is not a regression, - this is not the purpose of the current series, - the freeze was near and I had more critical stuff to attend to, - this is a simple but non trivial, (see above)
Wed, 03 Oct 2012 19:43:10 +0200 test-fncache: enable for Windows
Adrian Buehlmann <adrian@cadifra.com> [Wed, 03 Oct 2012 19:43:10 +0200] rev 17748
test-fncache: enable for Windows Should also fix http://hgbuildbot.kublai.com/builders/vfat%20hg%20tests/builds/182
Tue, 09 Oct 2012 16:17:55 +0900 store: invoke "osutil.listdir()" via vfs
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 09 Oct 2012 16:17:55 +0900] rev 17747
store: invoke "osutil.listdir()" via vfs This patch invokes "osutil.listdir()" via vfs object. The function added newly to "abstractvfs" is named not as "listdir()" but as "readdir()", because: - "os.listdir()" seems to be more familiar as "listdir()" than "osutil.listdir()" - "osutil.listdir()" returns also type of each files like "readdir()" POSIX API: even though "d_type" field of "dirent" structure is defined mainly only on BSD/Linux This patch invokes "osutil.listdir()" via "rawvfs" object to avoid filename encoding, because the path passed to "osutil.listdir()" shouldn't be encoded. This patch also omits importing "osutil" module, because it is no longer used.
Thu, 13 Sep 2012 23:50:45 -0700 log: speed up hg log for untracked files (issue1340)
smuralid [Thu, 13 Sep 2012 23:50:45 -0700] rev 17746
log: speed up hg log for untracked files (issue1340) 'hg log' on untracked files tends to be fairly slow. The root cause is that we end up using the 'slowpath' when we can't find a revlog for the files listed. This could happen if the file in question is an untracked file, or it is a directory. This diff tries to speed up 'hg log' (by avoiding the slowpath) for files if we can determine if that file is not (and was never) a directory. We use the previously added store.__contains__ methods to test if the directory exists (or existed) in the store. To avoid changing any existing semantics, this 'optimization' kicks in only when none of the files listed as arguments to the hg log command exist in the store.
Thu, 13 Sep 2012 17:57:43 -0700 store: add a contains method to fncachestore
smuralid [Thu, 13 Sep 2012 17:57:43 -0700] rev 17745
store: add a contains method to fncachestore Adds a __contains__ method to fncachestore to check for file/dir existence (using fncache.__contains__). Also extends fncache.__contains__ to check for directories (by prefix matching)
Thu, 13 Sep 2012 17:00:34 -0700 store: add a contains method to basicstore
smuralid [Thu, 13 Sep 2012 17:00:34 -0700] rev 17744
store: add a contains method to basicstore Adds a __contains__ method to basicstore that checks if a file/dir is present in the store
Wed, 10 Oct 2012 01:37:54 +0200 tests: drop filtercr.py and use the very explicit '\r (no-eol) (esc)' markup
Mads Kiilerich <mads@kiilerich.com> [Wed, 10 Oct 2012 01:37:54 +0200] rev 17743
tests: drop filtercr.py and use the very explicit '\r (no-eol) (esc)' markup
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
Fri, 17 Aug 2012 13:58:18 -0700 spelling: multiple
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:18 -0700] rev 17502
spelling: multiple
Fri, 17 Aug 2012 13:58:18 -0700 spelling: Macintosh
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:18 -0700] rev 17501
spelling: Macintosh
Fri, 17 Aug 2012 13:58:18 -0700 en-us: labeled
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:18 -0700] rev 17500
en-us: labeled
Fri, 17 Aug 2012 13:58:18 -0700 spelling: just
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:18 -0700] rev 17499
spelling: just
Fri, 17 Aug 2012 13:58:18 -0700 spelling: journaling
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:18 -0700] rev 17498
spelling: journaling
Fri, 17 Aug 2012 13:58:18 -0700 spelling: deactivates
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:18 -0700] rev 17497
spelling: deactivates
Fri, 17 Aug 2012 13:58:18 -0700 spelling: implementing
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:18 -0700] rev 17496
spelling: implementing
Fri, 17 Aug 2012 13:58:18 -0700 spelling: indented
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:18 -0700] rev 17495
spelling: indented * * * spelling: indented
Fri, 17 Aug 2012 13:58:18 -0700 spelling: further
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:18 -0700] rev 17494
spelling: further
Fri, 17 Aug 2012 13:58:18 -0700 spelling: following
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:18 -0700] rev 17493
spelling: following
Fri, 17 Aug 2012 13:58:18 -0700 spelling: nonexistent
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:18 -0700] rev 17492
spelling: nonexistent
Fri, 17 Aug 2012 13:58:18 -0700 spelling: existence
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:18 -0700] rev 17491
spelling: existence
Fri, 17 Aug 2012 13:58:18 -0700 spelling: exercise
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:18 -0700] rev 17490
spelling: exercise
Fri, 17 Aug 2012 13:58:18 -0700 spelling: equivalent
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:18 -0700] rev 17489
spelling: equivalent
Fri, 17 Aug 2012 13:58:18 -0700 spelling: efficiently
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:18 -0700] rev 17488
spelling: efficiently
Fri, 17 Aug 2012 13:58:18 -0700 spelling: don't/do not
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:18 -0700] rev 17487
spelling: don't/do not
Fri, 17 Aug 2012 13:58:18 -0700 spelling: doesn't/does not
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:18 -0700] rev 17486
spelling: doesn't/does not
Fri, 17 Aug 2012 13:58:18 -0700 spelling: destination
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:18 -0700] rev 17485
spelling: destination
Fri, 17 Aug 2012 13:58:18 -0700 spelling: directly
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:18 -0700] rev 17484
spelling: directly
Fri, 17 Aug 2012 13:58:18 -0700 spelling: descendants
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:18 -0700] rev 17483
spelling: descendants
Fri, 17 Aug 2012 13:58:18 -0700 spelling: deactivate
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:18 -0700] rev 17482
spelling: deactivate
Fri, 17 Aug 2012 13:58:18 -0700 spelling: dependent
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:18 -0700] rev 17481
spelling: dependent
Fri, 17 Aug 2012 13:58:18 -0700 spelling: Failing
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:18 -0700] rev 17480
spelling: Failing
Fri, 17 Aug 2012 13:58:18 -0700 spelling: Explicitly
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:18 -0700] rev 17479
spelling: Explicitly
Fri, 17 Aug 2012 13:58:18 -0700 spelling: Environment
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:18 -0700] rev 17478
spelling: Environment
Fri, 17 Aug 2012 13:58:18 -0700 spelling: Construct
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:18 -0700] rev 17477
spelling: Construct
Fri, 17 Aug 2012 13:58:18 -0700 spelling: Authoritative
timeless@mozdev.org [Fri, 17 Aug 2012 13:58:18 -0700] rev 17476
spelling: Authoritative
Tue, 11 Sep 2012 00:12:07 +0200 amend: add obsolete support
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 11 Sep 2012 00:12:07 +0200] rev 17475
amend: add obsolete support If the obsolete feature is enabled, `hg commit --amend` marks a changeset as obsolete instead of stripping it.
Fri, 24 Aug 2012 21:16:23 +0200 obsolete: add a high level function to create an obsolete marker
Pierre-Yves David <pierre-yves.david@logilab.fr> [Fri, 24 Aug 2012 21:16:23 +0200] rev 17474
obsolete: add a high level function to create an obsolete marker This function is designed to be used by all code that creates new obsolete markers in the local repository. It is not used by debugobsolete because debugobsolete allows the use of an unknown hash as argument.
Sat, 25 Aug 2012 16:20:41 +0200 amend: use an explicit commit message for temporary amending commit
Pierre-Yves David <pierre-yves.david@logilab.fr> [Sat, 25 Aug 2012 16:20:41 +0200] rev 17473
amend: use an explicit commit message for temporary amending commit Before this changeset, the extra commit created during amend had the same description as the final commit. This was a bit confusing when trying to understand what that extra commit was about. This changeset changes the description of such commit to: temporary amend commit for <ammend-commit-hash> The old behaviour was not a big deal, but would become more confusing once we use obsolescence marker instead of stripping the precursors. This also helps if the user restores a strip backup.
Mon, 10 Sep 2012 23:44:24 +0200 amend: wrap all commit operations in a single transaction
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 10 Sep 2012 23:44:24 +0200] rev 17472
amend: wrap all commit operations in a single transaction This allows proper recovery of an interrupted amend process. No changes are made to the logic besides: - indent operations into a single try-except clause, - some comment and code wrapping to 80 chars, - strip logic should not be contained in the transaction and is extracted from the main code.
Sat, 25 Aug 2012 15:37:28 +0200 amend: lock the repository during the whole process
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 25 Aug 2012 15:37:28 +0200] rev 17471
amend: lock the repository during the whole process Without this changes another writer can lock the repository in the middle the amend process. The resulting mess can be pretty ugly.
Mon, 10 Sep 2012 14:08:10 -0700 Merge with crew
Bryan O'Sullivan <bryano@fb.com> [Mon, 10 Sep 2012 14:08:10 -0700] rev 17470
Merge with crew
Tue, 28 Aug 2012 20:52:04 +0200 obsolete: introduce caches for all meaningful sets
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 28 Aug 2012 20:52:04 +0200] rev 17469
obsolete: introduce caches for all meaningful sets This changeset introduces caches on the `obsstore` that keeps track of sets of revisions meaningful for obsolescence related logics. For now they are: - obsolete: changesets used as precursors (and not public), - extinct: obsolete changesets with osbolete descendants only, - unstable: non obsolete changesets with obsolete ancestors. The cache is accessed using the `getobscache(repo, '<set-name>')` function which builds the cache on demand. The `clearobscaches(repo)` function takes care of clearing the caches if any. Caches are cleared when one of these events happens: - a new marker is added, - a new changeset is added, - some changesets are made public, - some public changesets are demoted to draft or secret. Declaration of more sets is made easy because we will have to handle at least two other "troubles" (latecomer and conflicting). Caches are now used by revset and changectx. It is usually not much more expensive to compute the whole set than to check the property of a few elements. The performance boost is welcome in case we apply obsolescence logic on a lot of revisions. This makes the feature usable!
Sun, 09 Sep 2012 12:35:06 +0200 Merge with stable
Patrick Mezard <patrick@mezard.eu> [Sun, 09 Sep 2012 12:35:06 +0200] rev 17468
Merge with stable
Sun, 09 Sep 2012 12:31:14 +0200 test-http-branchmap: enable on Windows
Patrick Mezard <patrick@mezard.eu> [Sun, 09 Sep 2012 12:31:14 +0200] rev 17467
test-http-branchmap: enable on Windows Tests using "hg serve --daemon" are currently disabled on Windows for lack of proper kill utility. The one shipped with MinGW operates on internal process identifiers and not on the ones recorded by hg serve. Fortunately we can replace most of them by calls to killdaemons.py. This patch is a proof of concept on how to run these tests on Windows. The plan is: - Check test-http-branchmap.t does not fail/hang on the buildbot - Convert all kill utility calls to killdaemons.py calls. - Add a rule in check-code.py to forbid kill calls, or ignore the remaining ones (test-hup.t, etc.). - Possibly drop the 'serve' rule from hghave. The: listening at http://*:$HGPORT1/ line does not appear on Windows because the detached process can no longer write on its parent streams. Grepping hg serve stdout directly causes the parent process to never return and hangs the test. This is a bug, but I have no simple solution and prefer to pay this small price and enable hg serve tests on Windows.
Mon, 20 Aug 2012 22:36:51 +0200 killdaemons: take file argument explicitely
Patrick Mezard <patrick@mezard.eu> [Mon, 20 Aug 2012 22:36:51 +0200] rev 17466
killdaemons: take file argument explicitely It makes it easier to use as a generic replacement for kill utility, mostly for Windows tests.
Sun, 19 Aug 2012 18:06:15 +0200 killdaemons: add windows implementation
Patrick Mezard <patrick@mezard.eu> [Sun, 19 Aug 2012 18:06:15 +0200] rev 17465
killdaemons: add windows implementation
Sun, 19 Aug 2012 16:41:09 +0200 run-tests: do not duplicate killdaemons() code
Patrick Mezard <patrick@mezard.eu> [Sun, 19 Aug 2012 16:41:09 +0200] rev 17464
run-tests: do not duplicate killdaemons() code
Fri, 31 Aug 2012 13:17:16 -0500 bash_completion: add rebase rev completion
Kevin Bullock <kbullock@ringworld.org> [Fri, 31 Aug 2012 13:17:16 -0500] rev 17463
bash_completion: add rebase rev completion
Mon, 03 Sep 2012 17:25:50 +0100 tests: correct quoting of double quotes in here documents used to write hooks stable
Jim Hague <jim.hague@acm.org> [Mon, 03 Sep 2012 17:25:50 +0100] rev 17462
tests: correct quoting of double quotes in here documents used to write hooks Some shells, e.g. ksh89, will emit \" in a here document as ", while others will emit \". To be sure of getting \", we specify \\". This gets test-commit-amend.t and test-largefiles.t working on AIX.
Thu, 30 Aug 2012 16:47:08 +0200 amend: preserve phase of amended revision (issue3602) stable
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 30 Aug 2012 16:47:08 +0200] rev 17461
amend: preserve phase of amended revision (issue3602) New commit from the amend process were created without any phase contraint. If the amended changeset had a different phase from it's parent, the phases data were lost. The changeset ensure the new commit are created in the same phase than the original changeset.
Mon, 27 Aug 2012 09:37:49 -0700 color: enabled color support for export command (issue1507)
Ankur Dahiya <ankurd@fb.com> [Mon, 27 Aug 2012 09:37:49 -0700] rev 17460
color: enabled color support for export command (issue1507) The export command didn't output the diffs in color, even when color support was enabled. This patch fixes that by making the export command use the default ui.write method, instead of directly manipulating the ui.fout file object. Also added a test case to verify color output to test-export.t.
Thu, 06 Sep 2012 22:51:32 +0200 test-hybridencode: extensions are replicated on hashed paths
Adrian Buehlmann <adrian@cadifra.com> [Thu, 06 Sep 2012 22:51:32 +0200] rev 17459
test-hybridencode: extensions are replicated on hashed paths unfortunately, this is done unbounded, so the length of the hashed path is not really limited
Thu, 06 Sep 2012 10:57:49 -0700 Merge with crew-stable
Bryan O'Sullivan <bryano@fb.com> [Thu, 06 Sep 2012 10:57:49 -0700] rev 17458
Merge with crew-stable
Thu, 06 Sep 2012 19:53:23 +0200 test-hybridencode: dropping dir eight in hashed path due to dot or space at end
Adrian Buehlmann <adrian@cadifra.com> [Thu, 06 Sep 2012 19:53:23 +0200] rev 17457
test-hybridencode: dropping dir eight in hashed path due to dot or space at end
Wed, 05 Sep 2012 23:59:27 +0900 hgweb: respond 403 forbidden for ssl required error
Yuya Nishihara <yuya@tcha.org> [Wed, 05 Sep 2012 23:59:27 +0900] rev 17456
hgweb: respond 403 forbidden for ssl required error It's preferable to report "ssl required" as an error, so that the client can detect error and exit with 255. Currently hg exits with 1, which is "nothing to push."
Wed, 05 Sep 2012 23:58:43 +0900 test-push-http: include exit status of hg push
Yuya Nishihara <yuya@tcha.org> [Wed, 05 Sep 2012 23:58:43 +0900] rev 17455
test-push-http: include exit status of hg push
Fri, 07 Sep 2012 00:42:42 +0900 help: fix literal block syntax stable
Takumi IINO <trot.thunder@gmail.com> [Fri, 07 Sep 2012 00:42:42 +0900] rev 17454
help: fix literal block syntax
Thu, 06 Sep 2012 15:53:59 +0200 test-hybridencode: adding one truncated char to dir 1..7 won't drop dir 8
Adrian Buehlmann <adrian@cadifra.com> [Thu, 06 Sep 2012 15:53:59 +0200] rev 17453
test-hybridencode: adding one truncated char to dir 1..7 won't drop dir 8
Thu, 06 Sep 2012 15:04:07 +0200 test-hybridencode: testing dir levels and dir prefix lenghts of hashed paths
Adrian Buehlmann <adrian@cadifra.com> [Thu, 06 Sep 2012 15:04:07 +0200] rev 17452
test-hybridencode: testing dir levels and dir prefix lenghts of hashed paths
Wed, 05 Sep 2012 22:01:09 +0200 histedit: fix unused variable warnings spotted by pyflakes
Patrick Mezard <patrick@mezard.eu> [Wed, 05 Sep 2012 22:01:09 +0200] rev 17451
histedit: fix unused variable warnings spotted by pyflakes
Fri, 03 Aug 2012 17:26:58 +0200 test-convert-mtn.t: generate files in binary mode
Patrick Mezard <patrick@mezard.eu> [Fri, 03 Aug 2012 17:26:58 +0200] rev 17450
test-convert-mtn.t: generate files in binary mode
Fri, 03 Aug 2012 17:26:30 +0200 test-convert-mtn.t: use #if to set mtndir to the correct value
Patrick Mezard <patrick@mezard.eu> [Fri, 03 Aug 2012 17:26:30 +0200] rev 17449
test-convert-mtn.t: use #if to set mtndir to the correct value Monotone store directory name is not the same on Windows and Unix.
Fri, 03 Aug 2012 17:56:34 +0200 test-convert-darcs.t: fix elementtree test
Patrick Mezard <patrick@mezard.eu> [Fri, 03 Aug 2012 17:56:34 +0200] rev 17448
test-convert-darcs.t: fix elementtree test On OSX, the test succeeds because darcs aborts when trying to convert the dummy repository, and the test only grep for the output. On Windows, the darcs call succeeds for some reason but darcs fails to emit any output, which is not a valid XML output, which causes a traceback including the ElementTree string matched by the check, and makes a false positive. Check with a real repository instead. The darcs upgrade test is moved at the end so we can use our handmade darcs repository for the test.
Fri, 03 Aug 2012 17:59:21 +0200 test-convert-svn-branches.t: fix self call failure on Windows
Patrick Mezard <patrick@mezard.eu> [Fri, 03 Aug 2012 17:59:21 +0200] rev 17447
test-convert-svn-branches.t: fix self call failure on Windows The error message is preceded by a cmd.exe error.
Mon, 27 Aug 2012 12:41:10 -0700 record: checks for valid username before starting recording process (issue3456)
Sumeet <sumeet@fb.com> [Mon, 27 Aug 2012 12:41:10 -0700] rev 17446
record: checks for valid username before starting recording process (issue3456)
Wed, 05 Sep 2012 14:08:31 +0200 test-hybridencode: test full range of ASCII codes from 126 to 255
Adrian Buehlmann <adrian@cadifra.com> [Wed, 05 Sep 2012 14:08:31 +0200] rev 17445
test-hybridencode: test full range of ASCII codes from 126 to 255
Wed, 05 Sep 2012 13:57:58 +0200 test-hybridencode: remove x00 character case
Adrian Buehlmann <adrian@cadifra.com> [Wed, 05 Sep 2012 13:57:58 +0200] rev 17444
test-hybridencode: remove x00 character case precludes implementation in C
Tue, 04 Sep 2012 15:50:42 -0700 Merge with crew-stable
Bryan O'Sullivan <bryano@fb.com> [Tue, 04 Sep 2012 15:50:42 -0700] rev 17443
Merge with crew-stable
Tue, 04 Sep 2012 15:50:15 -0700 Merge stable
Bryan O'Sullivan <bryano@fb.com> [Tue, 04 Sep 2012 15:50:15 -0700] rev 17442
Merge
Tue, 04 Sep 2012 15:46:04 -0700 subrepo: encode unicode path names (issue3610) stable
Bryan O'Sullivan <bryano@fb.com> [Tue, 04 Sep 2012 15:46:04 -0700] rev 17441
subrepo: encode unicode path names (issue3610) Subversion 1.7 changes its XML output to include an explicit encoding tag: <?xml version="1.0" encoding="UTF-8"?> This triggers xml.dom.minidom to always return unicode strings, causing other parts of the code to explode. We unconditionally encode path names before handing them back, which works with both str (actually a no-op) and unicode values.
Fri, 31 Aug 2012 13:08:11 +0200 test-hybridencode: add more testcases for hashed paths
Adrian Buehlmann <adrian@cadifra.com> [Fri, 31 Aug 2012 13:08:11 +0200] rev 17440
test-hybridencode: add more testcases for hashed paths
Tue, 04 Sep 2012 13:50:50 -0700 Merge with crew-stable
Bryan O'Sullivan <bryano@fb.com> [Tue, 04 Sep 2012 13:50:50 -0700] rev 17439
Merge with crew-stable
Tue, 04 Sep 2012 13:50:22 -0700 Merge stable
Bryan O'Sullivan <bryano@fb.com> [Tue, 04 Sep 2012 13:50:22 -0700] rev 17438
Merge
Tue, 04 Sep 2012 13:49:39 -0700 Merge with stable stable
Bryan O'Sullivan <bryano@fb.com> [Tue, 04 Sep 2012 13:49:39 -0700] rev 17437
Merge with stable
Tue, 04 Sep 2012 13:49:10 -0700 Merge
Bryan O'Sullivan <bryano@fb.com> [Tue, 04 Sep 2012 13:49:10 -0700] rev 17436
Merge
Fri, 31 Aug 2012 23:42:02 +0200 merge with crew-stable
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Fri, 31 Aug 2012 23:42:02 +0200] rev 17435
merge with crew-stable
Thu, 30 Aug 2012 22:13:24 +0200 test: remove invalid hidden rev in graphlog test
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 30 Aug 2012 22:13:24 +0200] rev 17434
test: remove invalid hidden rev in graphlog test The hidden set of revision can not have descendant outside this set. The extension is patched to raise and exception when this happen.
Wed, 29 Aug 2012 21:26:39 +0200 Merge with stable
Patrick Mezard <patrick@mezard.eu> [Wed, 29 Aug 2012 21:26:39 +0200] rev 17433
Merge with stable
Wed, 29 Aug 2012 11:48:36 +0200 test-hybridencode: more testcases
Adrian Buehlmann <adrian@cadifra.com> [Wed, 29 Aug 2012 11:48:36 +0200] rev 17432
test-hybridencode: more testcases
Wed, 29 Aug 2012 01:24:57 +0200 remove template-vars.txt - it is outdated and neither usable nor necessary
Mads Kiilerich <mads@kiilerich.com> [Wed, 29 Aug 2012 01:24:57 +0200] rev 17431
remove template-vars.txt - it is outdated and neither usable nor necessary
Mon, 27 Aug 2012 23:17:21 +0200 largefiles: minor code cleanup
Mads Kiilerich <mads@kiilerich.com> [Mon, 27 Aug 2012 23:17:21 +0200] rev 17430
largefiles: minor code cleanup Fix: * unnecessary use of map and lambda * comment instead of readable code * comparing None with 0 * and...or anti-pattern for 'ternary if' with very clever handling of i=None
Mon, 27 Aug 2012 23:16:22 +0200 declare local constants instead of using magic values and comments
Mads Kiilerich <mads@kiilerich.com> [Mon, 27 Aug 2012 23:16:22 +0200] rev 17429
declare local constants instead of using magic values and comments
Mon, 27 Aug 2012 23:14:27 +0200 avoid using abbreviations that look like spelling errors
Mads Kiilerich <mads@kiilerich.com> [Mon, 27 Aug 2012 23:14:27 +0200] rev 17428
avoid using abbreviations that look like spelling errors
Tue, 21 Aug 2012 02:41:20 +0200 improve some comments and docstrings, fixing issues found when spell checking
Mads Kiilerich <mads@kiilerich.com> [Tue, 21 Aug 2012 02:41:20 +0200] rev 17427
improve some comments and docstrings, fixing issues found when spell checking
Tue, 21 Aug 2012 02:41:20 +0200 delete some dead comments and docstrings
Mads Kiilerich <mads@kiilerich.com> [Tue, 21 Aug 2012 02:41:20 +0200] rev 17426
delete some dead comments and docstrings
Wed, 15 Aug 2012 22:39:18 +0200 fix wording and not-completely-trivial spelling errors and bad docstrings
Mads Kiilerich <mads@kiilerich.com> [Wed, 15 Aug 2012 22:39:18 +0200] rev 17425
fix wording and not-completely-trivial spelling errors and bad docstrings
Wed, 15 Aug 2012 22:38:42 +0200 fix trivial spelling errors
Mads Kiilerich <mads@kiilerich.com> [Wed, 15 Aug 2012 22:38:42 +0200] rev 17424
fix trivial spelling errors
Fri, 31 Aug 2012 23:27:26 +0200 strip: fix revset usage (issue3604) stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 31 Aug 2012 23:27:26 +0200] rev 17423
strip: fix revset usage (issue3604) The `repair` code builds a giant revset query instead of using the "%lr" idiom. It is inefficient and crash when the number of stripped changeset is too big. This changeset replaces the bad code by a better revset usage.
Thu, 02 Aug 2012 13:51:49 +0200 mergetools.hgrc: set vimdiff to check=changed stable
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 02 Aug 2012 13:51:49 +0200] rev 17422
mergetools.hgrc: set vimdiff to check=changed The standard reaction in from of unexpected vimdiff is to ":quit". This will make vimdiff return a 0 status even if no merge were done at all. This change detect that nothing have been changed in vimdiff as a potential unresolved conflict.
Wed, 29 Aug 2012 02:09:43 +0200 hgweb: avoid bad $$ processing in graph (issue3601) stable
Mads Kiilerich <mads@kiilerich.com> [Wed, 29 Aug 2012 02:09:43 +0200] rev 17421
hgweb: avoid bad $$ processing in graph (issue3601) JavaScript .replace always magically processed $$ $& $' $` in replacement strings and thus displayed subject lines incorrectly in the graph view. Instead of regexps and .replace we now just create the strings the right way in the first place.
Wed, 29 Aug 2012 13:16:56 -0500 wix: pick up new template files stable
Steve Borho <steve@borho.org> [Wed, 29 Aug 2012 13:16:56 -0500] rev 17420
wix: pick up new template files
Sat, 01 Sep 2012 12:49:43 -0500 Added signature for changeset 072209ae4ddb stable
Matt Mackall <mpm@selenic.com> [Sat, 01 Sep 2012 12:49:43 -0500] rev 17419
Added signature for changeset 072209ae4ddb
Sat, 01 Sep 2012 12:49:39 -0500 Added tag 2.3.1 for changeset 072209ae4ddb stable
Matt Mackall <mpm@selenic.com> [Sat, 01 Sep 2012 12:49:39 -0500] rev 17418
Added tag 2.3.1 for changeset 072209ae4ddb
Sat, 01 Sep 2012 12:48:08 -0500 merge with crew stable 2.3.1
Matt Mackall <mpm@selenic.com> [Sat, 01 Sep 2012 12:48:08 -0500] rev 17417
merge with crew
Sat, 01 Sep 2012 14:31:31 +0200 i18n-de: synchronized with 20665910d9d9; fix Bug 3082 stable
Martin Schröder <martin.schroeder@nerdluecht.de> [Sat, 01 Sep 2012 14:31:31 +0200] rev 17416
i18n-de: synchronized with 20665910d9d9; fix Bug 3082
Fri, 31 Aug 2012 21:49:52 -0300 i18n-pt_BR: synchronized with bdd248666dbc stable
Wagner Bruna <wbruna@yahoo.com> [Fri, 31 Aug 2012 21:49:52 -0300] rev 17415
i18n-pt_BR: synchronized with bdd248666dbc
Fri, 31 Aug 2012 21:44:58 -0300 merge with i18n stable
Wagner Bruna <wbruna@yahoo.com> [Fri, 31 Aug 2012 21:44:58 -0300] rev 17414
merge with i18n
Fri, 03 Aug 2012 21:37:33 +0200 convert: use subprocess for all commandline calls stable
Patrick Mezard <patrick@mezard.eu> [Fri, 03 Aug 2012 21:37:33 +0200] rev 17413
convert: use subprocess for all commandline calls Avoid mixing popen and subprocess calls, it simplifies the command line generation and quoting issues with redirections. In practice, it fixes the subversion sink on Windows and probably helps with monotone and darcs sources.
Fri, 03 Aug 2012 21:05:01 +0200 convert: make commandline.limit_arglist private, simplify stable
Patrick Mezard <patrick@mezard.eu> [Fri, 03 Aug 2012 21:05:01 +0200] rev 17412
convert: make commandline.limit_arglist private, simplify
Tue, 14 Aug 2012 22:38:25 -0400 largefiles: adjust localstore to handle batch statlfile requests (issue3583) stable
Matt Harbison <matt_harbison@yahoo.com> [Tue, 14 Aug 2012 22:38:25 -0400] rev 17411
largefiles: adjust localstore to handle batch statlfile requests (issue3583) This fixes a traceback when pushing to a local repo which started with 9e1616307c4c.
Fri, 31 Aug 2012 23:27:26 +0200 strip: fix revset usage (issue3604) stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 31 Aug 2012 23:27:26 +0200] rev 17410
strip: fix revset usage (issue3604) The `repair` code builds a giant revset query instead of using the "%lr" idiom. It is inefficient and crash when the number of stripped changeset is too big. This changeset replaces the bad code by a better revset usage.
Fri, 31 Aug 2012 20:40:13 -0500 merge with i18n stable
Matt Mackall <mpm@selenic.com> [Fri, 31 Aug 2012 20:40:13 -0500] rev 17409
merge with i18n
Mon, 27 Aug 2012 23:33:38 +0900 i18n-ja: synchronized with 9d9d15928521 stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 27 Aug 2012 23:33:38 +0900] rev 17408
i18n-ja: synchronized with 9d9d15928521
Tue, 21 Aug 2012 16:06:34 -0700 histedit: factored out diff/patch logic
Leah Xue <leahxue@fb.com> [Tue, 21 Aug 2012 16:06:34 -0700] rev 17407
histedit: factored out diff/patch logic This patch is the first step towards a refactoring of the histedit extension to use underlying graft machinery instead of diff/patch as discussed in issue3527. Replacing diff/patch with graft is necessary to fix, for example, issue3582.
Tue, 28 Aug 2012 17:59:08 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 28 Aug 2012 17:59:08 -0500] rev 17406
merge with stable
Tue, 28 Aug 2012 11:15:34 -0500 obsolete: import modules within mercurial/ without "from mercurial" stable
Steve Borho <steve@borho.org> [Tue, 28 Aug 2012 11:15:34 -0500] rev 17405
obsolete: import modules within mercurial/ without "from mercurial"
Tue, 28 Aug 2012 20:57:11 +0200 test-hybridencode: add cases for com0..9 and lpt0..9
Adrian Buehlmann <adrian@cadifra.com> [Tue, 28 Aug 2012 20:57:11 +0200] rev 17404
test-hybridencode: add cases for com0..9 and lpt0..9 note that com0 and lpt0 are *not* encoded
Thu, 16 Aug 2012 19:04:27 +0400 zsh completion: tweak options for `incoming`, `outgoing` and `rebase`
Nikolaj Sjujskij <sterkrig@myopera.com> [Thu, 16 Aug 2012 19:04:27 +0400] rev 17403
zsh completion: tweak options for `incoming`, `outgoing` and `rebase` * `incoming --rev` completes _hg_labels, not jsut tags; * `outgoing --rev` completes revrange; * source/dest/base for `rebase` require argument.
Thu, 16 Aug 2012 19:03:01 +0400 zsh completion: update mq commands completion
Nikolaj Sjujskij <sterkrig@myopera.com> [Thu, 16 Aug 2012 19:03:01 +0400] rev 17402
zsh completion: update mq commands completion * add qclone command; * qapplied/qunapplied: add --last/--first; * qdiff: add all diff options; * qfold: add --force, --no-backup; * qgoto: add --keep-changes; * qimport: add --git, --push; * qnew: add user- and date-related options; * qpop/qpush: add --keep-changes and --no-backup, drop --name; * qpush: drop deprecated --merge; * qrename: complete only unapplied patches' names; * strip: add --rev, --keep, --bookmark, update descriptions, drop --backup.
Thu, 16 Aug 2012 19:03:01 +0400 zsh completion: add new options for existing commands
Nikolaj Sjujskij <sterkrig@myopera.com> [Thu, 16 Aug 2012 19:03:01 +0400] rev 17401
zsh completion: add new options for existing commands * backout: add --tool; * bisect: add --extend; * bookmarks: add --inactive; * branches: add --closed; * bundle: add --rev, --all, --branch; * cat: add --decode; * clone: add --updaterev, --branch, --pull and use common-with-qclone opts; * commit: add --close-branch; * diff: add --change, --reverse, --stat, --text, --unified; * export: add --rev; * grep: add --date; * heads: add --topo, --closed; * help: add --extension, --command, --keywords; complete additional help topics also, not commands only; * identify: add --bookmark and remote_opts; * import: add --no-commit, --exact, --import-branch, --date, --user, --similarity and commit options; * log: add --user, --date, --stat, --git, --graph; * manifest: add --rev; * push: add --new-branch; * resolve: add --all, --no-status, --tool and pattern options; * revert: add --date; * serve: add --prefix, --web-conf, --pid-file, --cmdserver, --certificate; * status: add --change; * tag: add --force, --edit, --remove; * tip: add --git; * update: add --check, --date.
Thu, 16 Aug 2012 19:03:01 +0400 zsh completion: add support for convert, graphlog, purge, record extensions
Nikolaj Sjujskij <sterkrig@myopera.com> [Thu, 16 Aug 2012 19:03:01 +0400] rev 17400
zsh completion: add support for convert, graphlog, purge, record extensions
Thu, 16 Aug 2012 19:03:01 +0400 zsh completion: add subrepos options for all supporting commands
Nikolaj Sjujskij <sterkrig@myopera.com> [Thu, 16 Aug 2012 19:03:01 +0400] rev 17399
zsh completion: add subrepos options for all supporting commands
Thu, 16 Aug 2012 19:03:01 +0400 zsh completion: add new option groups for options
Nikolaj Sjujskij <sterkrig@myopera.com> [Thu, 16 Aug 2012 19:03:01 +0400] rev 17398
zsh completion: add new option groups for options Add clone, date/user, git-style, merge tool, ignore space, log, branch/bookmarks options and use them throughout command completions.
Thu, 16 Aug 2012 19:02:49 +0400 zsh completion: add `forget` and `rollback` commands
Nikolaj Sjujskij <sterkrig@myopera.com> [Thu, 16 Aug 2012 19:02:49 +0400] rev 17397
zsh completion: add `forget` and `rollback` commands
Thu, 16 Aug 2012 11:21:46 +0400 zsh completion: complete additional topics for `help`, not commands only
Nikolaj Sjujskij <sterkrig@myopera.com> [Thu, 16 Aug 2012 11:21:46 +0400] rev 17396
zsh completion: complete additional topics for `help`, not commands only
Mon, 27 Aug 2012 21:10:11 +0200 Merge with stable
Patrick Mezard <patrick@mezard.eu> [Mon, 27 Aug 2012 21:10:11 +0200] rev 17395
Merge with stable
Mon, 27 Aug 2012 09:57:58 -0400 tests: merging bookmarked heads stable
John Li <jli@circularly.org> [Mon, 27 Aug 2012 09:57:58 -0400] rev 17394
tests: merging bookmarked heads 45b5eb2941d0 fixed an error that occured when heads being merged were both inactive bookmarks. Add a test for that case.
Fri, 24 Aug 2012 17:51:47 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Fri, 24 Aug 2012 17:51:47 -0500] rev 17393
merge with stable
Mon, 06 Aug 2012 12:59:47 +0200 debuginstall: show directory for Python lib stable
Adrian Buehlmann <adrian@cadifra.com> [Mon, 06 Aug 2012 12:59:47 +0200] rev 17392
debuginstall: show directory for Python lib Example new output on Windows: $ hg debuginstall checking encoding (cp1252)... checking Python lib (C:\Users\adi\hgrepos\hg-main\hg-python\lib)... checking installed modules (C:\Users\adi\hgrepos\hg-main\mercurial)... checking templates (C:\Users\adi\hgrepos\hg-main\mercurial\templates)... checking commit editor... C:\Program Files (x86)\Notepad++\notepad++.exe checking username... no problems detected on Linux: adi@kork-ubuntu64:~/hgrepos/hg-main$ ./hg debuginstall checking encoding (UTF-8)... checking Python lib (/usr/lib/python2.7)... checking installed modules (/home/adi/hgrepos/hg-main/mercurial)... checking templates (/home/adi/hgrepos/hg-main/mercurial/templates)... checking commit editor... checking username... no problems detected
Sat, 04 Aug 2012 07:14:40 +0200 util: replace util.nulldev with os.devnull stable
Ross Lagerwall <rosslagerwall@gmail.com> [Sat, 04 Aug 2012 07:14:40 +0200] rev 17391
util: replace util.nulldev with os.devnull Python since 2.4 has supported os.devnull so having util.nulldev is unnecessary.
Sat, 04 Aug 2012 20:20:48 +0200 revset: add hidden() revset
Patrick Mezard <patrick@mezard.eu> [Sat, 04 Aug 2012 20:20:48 +0200] rev 17390
revset: add hidden() revset
Thu, 23 Aug 2012 18:19:19 -0500 wix: bump MSI based installers to use Python 2.7 stable
Steve Borho <steve@borho.org> [Thu, 23 Aug 2012 18:19:19 -0500] rev 17389
wix: bump MSI based installers to use Python 2.7 We're somewhat forced to use Python 2.7 for the bdist packages, so we might as well use 2.7 for the MSI installers as well.
Fri, 24 Aug 2012 14:53:07 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Fri, 24 Aug 2012 14:53:07 -0500] rev 17388
merge with stable
Fri, 24 Aug 2012 14:52:45 -0500 tests: fix template test output
Matt Mackall <mpm@selenic.com> [Fri, 24 Aug 2012 14:52:45 -0500] rev 17387
tests: fix template test output
Wed, 22 Aug 2012 11:18:35 -0400 merge: handle case when heads are all bookmarks stable
John Li <jli@circularly.org> [Wed, 22 Aug 2012 11:18:35 -0400] rev 17386
merge: handle case when heads are all bookmarks If all heads are bookmarks, merge fails to find what node to merge with (throws an IndexError while indexing into the non-bookmark heads list) as of 4a02cf4fbb2e. This catches that case and prints an error to specify a rev explicitly.
Tue, 21 Aug 2012 20:51:16 +0200 verify: do not choke on valid changelog without manifest stable
Patrick Mezard <patrick@mezard.eu> [Tue, 21 Aug 2012 20:51:16 +0200] rev 17385
verify: do not choke on valid changelog without manifest Before this change: $ hg init $ hg branch foo $ hg ci -m branchfoo $ hg verify checking changesets checking manifests 0: empty or missing manifest crosschecking files in changesets and manifests checking files 0 files, 1 changesets, 0 total revisions 1 integrity errors encountered! (first damaged changeset appears to be 0) [1]
Tue, 21 Aug 2012 13:12:56 -0700 Merge
Bryan O'Sullivan <bryano@fb.com> [Tue, 21 Aug 2012 13:12:56 -0700] rev 17384
Merge
Fri, 17 Aug 2012 15:12:01 -0700 templater: abort when a template filter raises an exception (issue2987)
Neil Kodner <neilk@fb.com> [Fri, 17 Aug 2012 15:12:01 -0700] rev 17383
templater: abort when a template filter raises an exception (issue2987)
Tue, 21 Aug 2012 12:27:57 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 21 Aug 2012 12:27:57 -0500] rev 17382
merge with stable
Tue, 21 Aug 2012 12:27:47 -0500 merge with i18n
Matt Mackall <mpm@selenic.com> [Tue, 21 Aug 2012 12:27:47 -0500] rev 17381
merge with i18n
Mon, 13 Aug 2012 16:09:35 +0400 i18n-ru: synchronized with c6f88e7f95b7
Alexander Sauta <demosito@gmail.com> [Mon, 13 Aug 2012 16:09:35 +0400] rev 17380
i18n-ru: synchronized with c6f88e7f95b7
Tue, 21 Aug 2012 12:26:53 -0500 merge heads in stable stable
Matt Mackall <mpm@selenic.com> [Tue, 21 Aug 2012 12:26:53 -0500] rev 17379
merge heads in stable
Fri, 17 Aug 2012 14:37:59 -0500 commit: normalize filenames when checking explicit files (issue3576) stable
Matt Mackall <mpm@selenic.com> [Fri, 17 Aug 2012 14:37:59 -0500] rev 17378
commit: normalize filenames when checking explicit files (issue3576)
Sat, 18 Aug 2012 16:35:36 +0200 test-status.t: test ui.slash on Windows
Patrick Mezard <patrick@mezard.eu> [Sat, 18 Aug 2012 16:35:36 +0200] rev 17377
test-status.t: test ui.slash on Windows
Thu, 16 Aug 2012 13:57:43 +0200 manifest: remove redundant sorted() call for --all
Adrian Buehlmann <adrian@cadifra.com> [Thu, 16 Aug 2012 13:57:43 +0200] rev 17376
manifest: remove redundant sorted() call for --all repo.store.datafiles() is now already sorted (for all types of stores). A follow-up to 4cbb1137941d.
Wed, 15 Aug 2012 16:33:26 -0700 Merge from crew-stable
Bryan O'Sullivan <bryano@fb.com> [Wed, 15 Aug 2012 16:33:26 -0700] rev 17375
Merge from crew-stable
Wed, 15 Aug 2012 16:31:25 -0700 store: only one kind of OSError means "nonexistent entry" stable
Bryan O'Sullivan <bryano@fb.com> [Wed, 15 Aug 2012 16:31:25 -0700] rev 17374
store: only one kind of OSError means "nonexistent entry"
Wed, 15 Aug 2012 16:30:32 -0700 store: sort the results of fncachestore.datafiles() stable
Bryan O'Sullivan <bryano@fb.com> [Wed, 15 Aug 2012 16:30:32 -0700] rev 17373
store: sort the results of fncachestore.datafiles()
Wed, 15 Aug 2012 23:03:40 +0200 Merge with stable
Patrick Mezard <patrick@mezard.eu> [Wed, 15 Aug 2012 23:03:40 +0200] rev 17372
Merge with stable
Wed, 15 Aug 2012 22:50:23 +0200 fileset: fix generator vs list bug in fast path stable
Patrick Mezard <patrick@mezard.eu> [Wed, 15 Aug 2012 22:50:23 +0200] rev 17371
fileset: fix generator vs list bug in fast path $ hg debugfileset 'a or b' would only return a or b but not both because the base file list was a generator instead of a replayable sequence.
Wed, 15 Aug 2012 22:28:32 +0200 debugfileset: implement --rev, more tests stable
Patrick Mezard <patrick@mezard.eu> [Wed, 15 Aug 2012 22:28:32 +0200] rev 17370
debugfileset: implement --rev, more tests
Wed, 15 Aug 2012 22:09:09 +0200 test-fileset: test remaining predicates stable
Patrick Mezard <patrick@mezard.eu> [Wed, 15 Aug 2012 22:09:09 +0200] rev 17369
test-fileset: test remaining predicates - exec - symlink - size - resolved / unresolved - subrepo
Wed, 15 Aug 2012 19:25:45 +0200 fileset: do not traceback on invalid grep pattern stable
Patrick Mezard <patrick@mezard.eu> [Wed, 15 Aug 2012 19:25:45 +0200] rev 17368
fileset: do not traceback on invalid grep pattern
Wed, 15 Aug 2012 22:29:32 +0200 fileset: matchctx.existing() must consider ignored files stable
Patrick Mezard <patrick@mezard.eu> [Wed, 15 Aug 2012 22:29:32 +0200] rev 17367
fileset: matchctx.existing() must consider ignored files When running: $ hg debugfileset 'binary() and ignored()' getfileset() was correctly retrieving ignored files but matchctx.existing() was not taking them in account. Just add them along with unknown files.
Wed, 15 Aug 2012 22:29:09 +0200 fileset: matchctx.existing() must consider unknown files stable
Patrick Mezard <patrick@mezard.eu> [Wed, 15 Aug 2012 22:29:09 +0200] rev 17366
fileset: matchctx.existing() must consider unknown files By default, unknown files are ignored. If the 'unknown()' predicate appears in the syntax tree, then they are taken in account. Unfortunately, matchctx.existing() was filtering against non-deleted context files, which does not include unknown files. So: $ hg debugfileset 'binary() and unknown()' would not return existing binary unknown files.
Wed, 15 Aug 2012 21:44:00 +0200 fileset: exclude deleted files from matchctx.existing() stable
Patrick Mezard <patrick@mezard.eu> [Wed, 15 Aug 2012 21:44:00 +0200] rev 17365
fileset: exclude deleted files from matchctx.existing() Running: $ hg debugfileset 'binary()' would traceback if there were one deleted file in the working directory. It happened because matchctx.existing() was filtering files against the ctx.__contains__() but deleted files are still considered part of workingctx.
Wed, 15 Aug 2012 18:04:50 +0200 test-fileset: test file status predicates stable
Patrick Mezard <patrick@mezard.eu> [Wed, 15 Aug 2012 18:04:50 +0200] rev 17364
test-fileset: test file status predicates
Wed, 15 Aug 2012 19:02:04 +0200 fileset: actually implement 'minusset' stable
Patrick Mezard <patrick@mezard.eu> [Wed, 15 Aug 2012 19:02:04 +0200] rev 17363
fileset: actually implement 'minusset' $ hg debugfileset 'a* - a1' was tracing back because 'minus' symbol was not supported.
Wed, 15 Aug 2012 17:39:03 +0200 tests: test filesets with test-fileset.t stable
Patrick Mezard <patrick@mezard.eu> [Wed, 15 Aug 2012 17:39:03 +0200] rev 17362
tests: test filesets with test-fileset.t
Wed, 15 Aug 2012 12:12:21 +0200 merge with stable
Sune Foldager <cryo@cyanite.org> [Wed, 15 Aug 2012 12:12:21 +0200] rev 17361
merge with stable
Wed, 15 Aug 2012 12:04:50 +0200 rollback: write dirstate branch with correct encoding stable
Sune Foldager <cryo@cyanite.org> [Wed, 15 Aug 2012 12:04:50 +0200] rev 17360
rollback: write dirstate branch with correct encoding
Tue, 14 Aug 2012 08:12:09 -0700 Merge
Bryan O'Sullivan <bryano@fb.com> [Tue, 14 Aug 2012 08:12:09 -0700] rev 17359
Merge
Tue, 14 Aug 2012 08:11:15 -0700 templatekw: merge, preferring the second implementation
Bryan O'Sullivan <bryano@fb.com> [Tue, 14 Aug 2012 08:11:15 -0700] rev 17358
templatekw: merge, preferring the second implementation
Tue, 10 Jul 2012 08:43:32 -0700 templatekw: add p1rev, p1node, p2rev, p2node keywords
epriestley <hg@yghe.net> [Tue, 10 Jul 2012 08:43:32 -0700] rev 17357
templatekw: add p1rev, p1node, p2rev, p2node keywords The {parents} template is cumbersome for some uses, as it does not show anything if there's only one "natural" parent and you can't use it to get the full 40 digit node hashes for parents unless you rely on the behavior of the --debug flag. Introduce four new template keywords: {p1rev}, {p2rev}, {p1node} and {p2node}. The "node" flavors of these always show full 40 digit hashes, but users can get the short version with a filter construction like '{p1node|short}'.
Mon, 13 Aug 2012 14:04:52 -0700 parsers: fix an integer size warning issued by clang
Bryan O'Sullivan <bryano@fb.com> [Mon, 13 Aug 2012 14:04:52 -0700] rev 17356
parsers: fix an integer size warning issued by clang
Tue, 10 Jul 2012 08:43:32 -0700 templatekw: add parent1, parent1node, parent2, parent2node keywords
epriestley <hg@yghe.net> [Tue, 10 Jul 2012 08:43:32 -0700] rev 17355
templatekw: add parent1, parent1node, parent2, parent2node keywords The {parents} template is cumbersome for some uses, as it does not show anything if there's only one "natural" parent and you can't use it to get the full 40 digit node hashes for parents unless you rely on the behavior of the --debug flag. Introduce four new template keywords: {parent1}, {parent2}, {parent1node} and {parent2node}. The "node" flavors of these always show full 40 digit hashes, but users can get the short version with a filter construction like '{parent1node|short}'.
Mon, 13 Aug 2012 11:49:55 -0700 Merge with crew-stable
Bryan O'Sullivan <bryano@fb.com> [Mon, 13 Aug 2012 11:49:55 -0700] rev 17354
Merge with crew-stable
Thu, 02 Aug 2012 19:10:45 +0400 revlog: don't try to partialmatch strings those length > 40 stable
sorcerer [Thu, 02 Aug 2012 19:10:45 +0400] rev 17353
revlog: don't try to partialmatch strings those length > 40 _partialmatch() does prefix matching against nodes. String passed to _partialmetch() actualy may be any string, not prefix only. For example, "e410be8603932e46a51298748a4b874739037fad or 300" is a good argument for _partialmatch(). When _partialmatch() searches using radix tree, index_partialmatch() C function shouldn't try to match too long strings.
Sat, 11 Aug 2012 12:45:53 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Sat, 11 Aug 2012 12:45:53 -0500] rev 17352
merge with stable
Sat, 11 Aug 2012 12:45:37 -0500 merge with i18n stable
Matt Mackall <mpm@selenic.com> [Sat, 11 Aug 2012 12:45:37 -0500] rev 17351
merge with i18n
Fri, 10 Aug 2012 15:42:15 +0400 i18n-ru: fix spelling of "missing" equivalent stable
Nikolaj Sjujskij <sterkrig@myopera.com> [Fri, 10 Aug 2012 15:42:15 +0400] rev 17350
i18n-ru: fix spelling of "missing" equivalent
Thu, 09 Aug 2012 13:31:08 +0400 i18n-ru: synchronized with b131e24e2984 stable
Alexander Sauta <demosito@gmail.com> [Thu, 09 Aug 2012 13:31:08 +0400] rev 17349
i18n-ru: synchronized with b131e24e2984
Tue, 07 Aug 2012 11:18:45 -0300 i18n-pt_BR: synchronized with b5c560787a4e stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Tue, 07 Aug 2012 11:18:45 -0300] rev 17348
i18n-pt_BR: synchronized with b5c560787a4e
Wed, 08 Aug 2012 18:10:37 +0200 check-code: fix check for trailing whitespace on continued lines too
Mads Kiilerich <mads@kiilerich.com> [Wed, 08 Aug 2012 18:10:37 +0200] rev 17347
check-code: fix check for trailing whitespace on continued lines too The tests in test-annotate.t and test-import-git.t that relied on trailing space in a file created by a here string is now masked by a literal 'EOL' string that is removed.
Wed, 08 Aug 2012 18:10:30 +0200 check-code: fix check for trailing whitespace on empty lines
Mads Kiilerich <mads@kiilerich.com> [Wed, 08 Aug 2012 18:10:30 +0200] rev 17346
check-code: fix check for trailing whitespace on empty lines It seems like the intention with c7d23b4ca4ba was to catch lines with only one whitespace too.
Wed, 08 Aug 2012 18:10:16 +0200 check-code: fix check for trailing whitespace on sh command lines
Mads Kiilerich <mads@kiilerich.com> [Wed, 08 Aug 2012 18:10:16 +0200] rev 17345
check-code: fix check for trailing whitespace on sh command lines The $ has been without necessary escaping since introduced in c7d23b4ca4ba.
Wed, 08 Aug 2012 21:38:53 +0200 Merge with stable
Patrick Mezard <patrick@mezard.eu> [Wed, 08 Aug 2012 21:38:53 +0200] rev 17344
Merge with stable
Mon, 06 Aug 2012 10:45:11 +0200 update: fix typo in help text stable
Adrian Buehlmann <adrian@cadifra.com> [Mon, 06 Aug 2012 10:45:11 +0200] rev 17343
update: fix typo in help text Spotted by Kevin Chase <kevincha99@hotmail.com>
Wed, 08 Aug 2012 10:04:02 -0500 clone: don't fail with --update for non-local clones (issue3578) stable
Augie Fackler <raf@durin42.com> [Wed, 08 Aug 2012 10:04:02 -0500] rev 17342
clone: don't fail with --update for non-local clones (issue3578) This was broken by 5884812686f7 due to lack of test coverage. This adds a test and fixes the defect.
Mon, 06 Aug 2012 12:07:21 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 06 Aug 2012 12:07:21 -0500] rev 17341
merge with stable
Mon, 06 Aug 2012 12:03:07 -0500 merge with i18n stable
Matt Mackall <mpm@selenic.com> [Mon, 06 Aug 2012 12:03:07 -0500] rev 17340
merge with i18n
Mon, 06 Aug 2012 18:15:16 +0400 i18n-ru: synchronized with 474ae9720aa5 stable
Alexander Sauta <demosito@gmail.com> [Mon, 06 Aug 2012 18:15:16 +0400] rev 17339
i18n-ru: synchronized with 474ae9720aa5
Thu, 02 Aug 2012 11:46:30 -0300 i18n-pt_BR: synchronized with e4db509c08ec stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Thu, 02 Aug 2012 11:46:30 -0300] rev 17338
i18n-pt_BR: synchronized with e4db509c08ec
Thu, 02 Aug 2012 11:45:16 -0300 histedit, i18n: warn translators about edit command names stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Thu, 02 Aug 2012 11:45:16 -0300] rev 17337
histedit, i18n: warn translators about edit command names
Sat, 04 Aug 2012 15:58:23 +0200 Merge with stable
Patrick Mezard <patrick@mezard.eu> [Sat, 04 Aug 2012 15:58:23 +0200] rev 17336
Merge with stable
Thu, 02 Aug 2012 11:28:21 -0300 histedit: sync docstring with edit comment stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Thu, 02 Aug 2012 11:28:21 -0300] rev 17335
histedit: sync docstring with edit comment The docstring should probably reuse the edit comment string instead.
Sat, 04 Aug 2012 14:37:17 +0200 templater: handle a missing value correctly stable
Ross Lagerwall <rosslagerwall@gmail.com> [Sat, 04 Aug 2012 14:37:17 +0200] rev 17334
templater: handle a missing value correctly Before, using a broken style such as: changeset = would result in a traceback. This fixes a regression introduced in 63c47e4ac617.
Sat, 04 Aug 2012 12:29:53 +0200 help/hgweb: fix spelling error stable
Javi Merino <cibervicho@gmail.com> [Sat, 04 Aug 2012 12:29:53 +0200] rev 17333
help/hgweb: fix spelling error
Fri, 03 Aug 2012 17:33:44 +0200 tests: remove stray test-convert-mtn-rename-directory.out
Patrick Mezard <patrick@mezard.eu> [Fri, 03 Aug 2012 17:33:44 +0200] rev 17332
tests: remove stray test-convert-mtn-rename-directory.out
Thu, 02 Aug 2012 18:33:40 +0200 Merge with stable
Patrick Mezard <patrick@mezard.eu> [Thu, 02 Aug 2012 18:33:40 +0200] rev 17331
Merge with stable
Thu, 02 Aug 2012 17:48:58 +0200 context: simplify workingctx._parents
Patrick Mezard <patrick@mezard.eu> [Thu, 02 Aug 2012 17:48:58 +0200] rev 17330
context: simplify workingctx._parents
Thu, 02 Aug 2012 01:49:36 -0500 Added signature for changeset 7f5094bb3f42 stable
Matt Mackall <mpm@selenic.com> [Thu, 02 Aug 2012 01:49:36 -0500] rev 17329
Added signature for changeset 7f5094bb3f42
Thu, 02 Aug 2012 01:49:32 -0500 Added tag 2.3 for changeset 7f5094bb3f42 stable
Matt Mackall <mpm@selenic.com> [Thu, 02 Aug 2012 01:49:32 -0500] rev 17328
Added tag 2.3 for changeset 7f5094bb3f42
Wed, 01 Aug 2012 15:12:22 +0200 test: fix typo in test comment stable 2.3
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 01 Aug 2012 15:12:22 +0200] rev 17327
test: fix typo in test comment
Wed, 01 Aug 2012 09:41:57 -0500 histedit: add proper locking around repair.strip() calls stable
Augie Fackler <raf@durin42.com> [Wed, 01 Aug 2012 09:41:57 -0500] rev 17326
histedit: add proper locking around repair.strip() calls
Tue, 31 Jul 2012 18:18:26 +0200 rebase: remove second broken synopsis line (issue3172) stable
Patrick Mezard <patrick@mezard.eu> [Tue, 31 Jul 2012 18:18:26 +0200] rev 17325
rebase: remove second broken synopsis line (issue3172) Displaying multiple synopsis in online help has been broken since Matt RST refactoring, around ff26712a0c50. Rebase help is apparently the only one using this trick, just drop the second synopsis and assume people will understand as with graft help.
Sat, 28 Jul 2012 22:40:30 +0300 localrepo: clear the filecache on _rollback() and destroyed() stable
Idan Kamara <idankk86@gmail.com> [Sat, 28 Jul 2012 22:40:30 +0300] rev 17324
localrepo: clear the filecache on _rollback() and destroyed() This restores the old behaviour of clearing the filecache when the repo is destroyed but combines it with also clearing it on _rollback. Before, we tried to only call it through _rollback but that ruined callers of destroyed. Doing it on both code paths covers destroyed being called from somewhere else, e.g. strip.
Wed, 01 Aug 2012 00:20:10 +0200 help: add 'mergetools' alias for the 'merge-tools' help topic stable
Mads Kiilerich <mads@kiilerich.com> [Wed, 01 Aug 2012 00:20:10 +0200] rev 17323
help: add 'mergetools' alias for the 'merge-tools' help topic The '-' in 'merge-tools' is surprising but necessary in the configuration. Let's help those who forget that and are looking for help.
Wed, 01 Aug 2012 14:59:15 +0200 help: use the first topic name from helptable, not the longest alias stable
Mads Kiilerich <mads@kiilerich.com> [Wed, 01 Aug 2012 14:59:15 +0200] rev 17322
help: use the first topic name from helptable, not the longest alias This makes the 'additional help topics' list consistent with the output from keyword search (for instance subrepo/subrepos). The sorting by longest name was introduced in 3f6a4f1de43f. There might have been a good reason for it back then, but now it seems like a better idea to place the preferred name first in the list in helptable.
Wed, 01 Aug 2012 00:18:23 +0200 help: fix helptable indentation stable
Mads Kiilerich <mads@kiilerich.com> [Wed, 01 Aug 2012 00:18:23 +0200] rev 17321
help: fix helptable indentation
Wed, 01 Aug 2012 14:08:19 +0200 transplant: fix emptied changeset message stable
Patrick Mezard <patrick@mezard.eu> [Wed, 01 Aug 2012 14:08:19 +0200] rev 17320
transplant: fix emptied changeset message - Append an EOL - State the changeset is skipped
Tue, 31 Jul 2012 17:39:32 +0200 transplant: handle non-empty patches doing nothing (issue2806) stable
Patrick Mezard <patrick@mezard.eu> [Tue, 31 Jul 2012 17:39:32 +0200] rev 17319
transplant: handle non-empty patches doing nothing (issue2806) If patch.patch() reports patched files when applying a changeset and the following commit says nothing changed, transplant used to abort with a RuntimeError, assuming something went wrong with patching. The mismatch is patch.patch() reports patched files, not changed ones. It could be modified to report changed files but it means duplicating work from status, may be expensive in the case of binary files, and is probably not that useful at API level. For instance, if two patches are applied on the working directory, the outcome may be nothing changed while each call would have returned modified files. The caller would have to call status() itself again. This patch fixes the issue by trusting patching code: if the patch succeeded and commit reports nothing changed, then nothing changed, patch() did not "dropped changes on the floor".
Sun, 29 Jul 2012 23:16:20 +0200 hgweb: fix graph view paging stable
Patrick Mezard <patrick@mezard.eu> [Sun, 29 Jul 2012 23:16:20 +0200] rev 17318
hgweb: fix graph view paging - Fix off-by-one error on displayed entries count in normal mode - Fix incorrect paging when the top revision was lower than revcount - Fix revcount not overriding web.maxshortchanges everywhere
Sun, 29 Jul 2012 19:44:57 +0200 help/config.txt: document web.maxshortchanges stable
Patrick Mezard <patrick@mezard.eu> [Sun, 29 Jul 2012 19:44:57 +0200] rev 17317
help/config.txt: document web.maxshortchanges
Sun, 29 Jul 2012 19:37:25 +0200 help/config.txt: reorder [web] options stable
Patrick Mezard <patrick@mezard.eu> [Sun, 29 Jul 2012 19:37:25 +0200] rev 17316
help/config.txt: reorder [web] options
Mon, 30 Jul 2012 03:27:07 +0900 histedit: make comment part of the file describing rules as translatable stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 30 Jul 2012 03:27:07 +0900] rev 17315
histedit: make comment part of the file describing rules as translatable "i18n.gettext()" invocation for "editcomment" itself should have little impact for whole initialization cost of histedit, because it is already invoked for initialization of the command table entry. '\n\n' has to be added to the text being edited separately from "editcomment", because leading 'line feed' characters are not exported to "hg.pot" file correctly.
Thu, 02 Aug 2012 00:52:43 -0500 merge with i18n stable
Matt Mackall <mpm@selenic.com> [Thu, 02 Aug 2012 00:52:43 -0500] rev 17314
merge with i18n
Wed, 01 Aug 2012 18:56:39 +0400 i18n-ru: synchronized with 85188487b9b4 stable
Alexander Sauta <demosito@gmail.com> [Wed, 01 Aug 2012 18:56:39 +0400] rev 17313
i18n-ru: synchronized with 85188487b9b4
Fri, 20 Jul 2012 12:18:31 +0400 i18n-ru: add missing space in summary output template stable
Nikolaj Sjujskij <sterkrig@myopera.com> [Fri, 20 Jul 2012 12:18:31 +0400] rev 17312
i18n-ru: add missing space in summary output template
Wed, 01 Aug 2012 18:10:07 +0400 i18n-ru: synchronized with b616e4aacf96 stable
Alexander Sauta <demosito@gmail.com> [Wed, 01 Aug 2012 18:10:07 +0400] rev 17311
i18n-ru: synchronized with b616e4aacf96
Wed, 01 Aug 2012 05:58:00 +0900 i18n-ja: synchronized with 3339e3df159d stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 01 Aug 2012 05:58:00 +0900] rev 17310
i18n-ja: synchronized with 3339e3df159d
Tue, 31 Jul 2012 14:12:14 -0300 i18n-pt_BR: synchronized with e66fa4d587dc stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Tue, 31 Jul 2012 14:12:14 -0300] rev 17309
i18n-pt_BR: synchronized with e66fa4d587dc With review and suggestions by Sheila Genesine.
Wed, 01 Aug 2012 15:49:00 +0200 log: make opts entries optional (issue2423) stable
Patrick Mezard <patrick@mezard.eu> [Wed, 01 Aug 2012 15:49:00 +0200] rev 17308
log: make opts entries optional (issue2423)
Tue, 31 Jul 2012 19:47:54 +0200 test-clone: fix for vfat stable
Adrian Buehlmann <adrian@cadifra.com> [Tue, 31 Jul 2012 19:47:54 +0200] rev 17307
test-clone: fix for vfat fixes http://hgbuildbot.kublai.com/builders/vfat%20hg%20tests%20%28stable%29/builds/65
Tue, 31 Jul 2012 15:57:50 +0200 obsolete: fix typos in comments introduced by 6955d69a52a4 stable
Thomas Arendsen Hein <thomas@intevation.de> [Tue, 31 Jul 2012 15:57:50 +0200] rev 17306
obsolete: fix typos in comments introduced by 6955d69a52a4
Tue, 31 Jul 2012 15:50:44 +0200 pager: drop -S option for less in example for pager configuration stable
Thomas Arendsen Hein <thomas@intevation.de> [Tue, 31 Jul 2012 15:50:44 +0200] rev 17305
pager: drop -S option for less in example for pager configuration Using less -S will hide possibly important information when reviewing a changeset, e.g. something wrong/dangerous after the 80th column, because "less" will not give an indication that following characters are hidden.
Tue, 31 Jul 2012 15:32:08 +0200 obsolete: properly increment currentlen when building pushkey payload stable
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 31 Jul 2012 15:32:08 +0200] rev 17304
obsolete: properly increment currentlen when building pushkey payload In the old code, the current length was always 0 leading to markers payload never being split.
Tue, 31 Jul 2012 00:59:38 +0200 hgweb: fixes invalid parents / children in comparison stable
wujek srujek <wujek.srujek@googlemail.com> [Tue, 31 Jul 2012 00:59:38 +0200] rev 17303
hgweb: fixes invalid parents / children in comparison Previously, the parents / children were computed relative to the cset of the currently shown file, which was wrong and inconsistent with diff and others. With this patch, the listed csets are those that contain changes to the currently compared file, which don't necessarily have to be the direct parents and children of the changeset itself.
Tue, 31 Jul 2012 14:14:15 +0200 hgweb: fixes traceback for invalid files by removing top-level template stable
wujek srujek <wujek.srujek@googlemail.com> [Tue, 31 Jul 2012 14:14:15 +0200] rev 17302
hgweb: fixes traceback for invalid files by removing top-level template The top-level 'comparison' template was not really needed, and it also caused a traceback to be shown for inexistent files (as reported by Ross Lagerwall). Getting rid of it makes the overall templating structure simpler and causes invalid files to be handled nicely.
Mon, 30 Jul 2012 22:33:45 -0500 merge with i18n stable
Matt Mackall <mpm@selenic.com> [Mon, 30 Jul 2012 22:33:45 -0500] rev 17301
merge with i18n
(0) -10000 -3000 -1000 -768 +768 +1000 +3000 +10000 +30000 tip