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.
(0) -10000 -3000 -1000 -120 +120 +1000 +3000 +10000 +30000 tip