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.
(0) -10000 -3000 -1000 -300 -100 -50 -32 +32 +50 +100 +300 +1000 +3000 +10000 +30000 tip