Tue, 17 Sep 2013 18:13:54 -0500 check-code: make casting style check more precise
Matt Mackall <mpm@selenic.com> [Tue, 17 Sep 2013 18:13:54 -0500] rev 19731
check-code: make casting style check more precise
Tue, 10 Sep 2013 19:49:34 -0700 log: make file log slow path usable on large repos
Durham Goode <durham@fb.com> [Tue, 10 Sep 2013 19:49:34 -0700] rev 19730
log: make file log slow path usable on large repos Running "hg log <pattern or directory>" on large repos took a very, very long time because it first read ctx.files() for every commit before even starting to process the results. This change makes the ctx.files() check lazy, which makes the command start producing results immediately.
Fri, 13 Sep 2013 15:40:04 -0500 plan9: update util.py for cpython 2.7 build
Jeff Sickel <jas@corpus-callosum.com> [Fri, 13 Sep 2013 15:40:04 -0500] rev 19729
plan9: update util.py for cpython 2.7 build
Fri, 06 Sep 2013 23:47:59 -0700 parse_manifest: rewrite to use memchr
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Sep 2013 23:47:59 -0700] rev 19728
parse_manifest: rewrite to use memchr memchr is usually smarter than a simple for loop. With gcc 4.4.6 and glibc 2.12 on x86-64, for a 20 MB, 200,000 file manifest, parse_manifest goes from 0.116 seconds to 0.095 seconds.
Mon, 16 Sep 2013 12:17:55 -0700 parsers: correctly handle a failed allocation
Bryan O'Sullivan <bryano@fb.com> [Mon, 16 Sep 2013 12:17:55 -0700] rev 19727
parsers: correctly handle a failed allocation
Mon, 16 Sep 2013 12:12:37 -0700 parsers: use Py_INCREF safely
Bryan O'Sullivan <bryano@fb.com> [Mon, 16 Sep 2013 12:12:37 -0700] rev 19726
parsers: use Py_INCREF safely
Mon, 16 Sep 2013 12:10:28 -0700 parsers: state is a char, not an int
Bryan O'Sullivan <bryano@fb.com> [Mon, 16 Sep 2013 12:10:28 -0700] rev 19725
parsers: state is a char, not an int
Fri, 13 Sep 2013 10:00:57 +0800 setup: check if mercurial/util.h has been modified
Wei, Elson <elson.wei@gmail.com> [Fri, 13 Sep 2013 10:00:57 +0800] rev 19724
setup: check if mercurial/util.h has been modified Before, if mercurial/util.h was modified but *.c wasn't, no extension was rebuilt.
Fri, 13 Sep 2013 09:54:43 +0800 util.h: add stdint basic type definitions
Wei, Elson <elson.wei@gmail.com> [Fri, 13 Sep 2013 09:54:43 +0800] rev 19723
util.h: add stdint basic type definitions MS C compiler v15 doesn't have stdint.h. Add basic int types those are defined in stdint.h.
Fri, 06 Sep 2013 13:30:56 +0400 hgweb: add revset syntax support to search
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:56 +0400] rev 19722
hgweb: add revset syntax support to search This mode is used when all the conditions are met: - 'reverse(%s)' % query string can be parsed to a revset tree - this tree has depth more than two, i.e. the query has some part of revset syntax used - the repo can be actually matched against this tree, i.e. it has only existent function/operators and revisions/tags/bookmarks specified are correct - no revset regexes are used in the query (strings which start with 're:') - only functions explicitly marked as safe in revset.py are used in the query Add several new tests for different parsing conditions and exception handling.
Fri, 06 Sep 2013 13:30:56 +0400 revset: add a whitelist of DoS-safe symbols
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:56 +0400] rev 19721
revset: add a whitelist of DoS-safe symbols 'Safe' here means that they can't be used for a DoS attack for any given input.
Wed, 07 Aug 2013 01:21:31 +0400 revset: add helper function to get functions used in a revset parse tree
Alexander Plavin <alexander@plav.in> [Wed, 07 Aug 2013 01:21:31 +0400] rev 19720
revset: add helper function to get functions used in a revset parse tree Will be used to determine whether all functions used in a hgweb search query are allowed there.
Fri, 09 Aug 2013 22:52:58 +0400 revset: add helper function to get revset parse tree depth
Alexander Plavin <alexander@plav.in> [Fri, 09 Aug 2013 22:52:58 +0400] rev 19719
revset: add helper function to get revset parse tree depth Will be used to determine if a hgweb search query actually uses any revset syntax.
Sat, 07 Sep 2013 00:59:24 -0700 parsers: use a lookup table to convert hex to binary
Siddharth Agarwal <sid0@fb.com> [Sat, 07 Sep 2013 00:59:24 -0700] rev 19718
parsers: use a lookup table to convert hex to binary This is a hotspot for parse_manifest. With this patch, for a 20 MB, 200,000 file manifest, parse_manifest goes down from 0.153 seconds to 0.116.
Fri, 06 Sep 2013 23:05:33 -0700 revlog: remove _chunkbase since it is no longer used
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Sep 2013 23:05:33 -0700] rev 19717
revlog: remove _chunkbase since it is no longer used This was introduced in 2011 for the lwcopy feature but never actually got used. A similar hook can easily be reintroduced if needed in the future.
Fri, 06 Sep 2013 23:05:11 -0700 revlog: move chunk cache preload from revision to _chunks
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Sep 2013 23:05:11 -0700] rev 19716
revlog: move chunk cache preload from revision to _chunks In case we don't have a cached text already, add the base rev to the list passed to _chunks. In the cached case this also avoids unnecessarily preloading the chunk for the cached rev.
Fri, 06 Sep 2013 22:57:51 -0700 revlog._chunks: inline getchunk
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Sep 2013 22:57:51 -0700] rev 19715
revlog._chunks: inline getchunk We do this in a somewhat hacky way, relying on the fact that our sole caller preloads the cache right before calling us. An upcoming patch will make this more sensible. For a 20 MB manifest with a delta chain of > 40k, perfmanifest goes from 0.49 seconds to 0.46.
Sat, 07 Sep 2013 12:42:46 -0700 revlog.revision: fix cache preload for inline revlogs
Siddharth Agarwal <sid0@fb.com> [Sat, 07 Sep 2013 12:42:46 -0700] rev 19714
revlog.revision: fix cache preload for inline revlogs Previously the length of data preloaded did not account for the interleaved io contents. This meant that we'd sometimes have cache misses in _chunks despite the preloading. Having a correctly filled out cache will become essential in an upcoming patch.
Fri, 06 Sep 2013 16:31:35 -0700 revlog: add a fast method for getting a list of chunks
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Sep 2013 16:31:35 -0700] rev 19713
revlog: add a fast method for getting a list of chunks This moves _chunkraw into the loop. Doing that improves revlog decompression -- in particular, manifest decompression -- significantly. For a 20 MB manifest which is the result of a > 40k delta chain, hg perfmanifest improves from 0.55 seconds to 0.49 seconds.
Fri, 06 Sep 2013 13:35:29 -0700 perfmanifest: allow and require passing in a rev
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Sep 2013 13:35:29 -0700] rev 19712
perfmanifest: allow and require passing in a rev Previously perfmanifest would only test tip.
Fri, 06 Sep 2013 13:20:07 -0700 perfmanifest: fix cache invalidation
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Sep 2013 13:20:07 -0700] rev 19711
perfmanifest: fix cache invalidation The manifest cache is now stored in _mancache. The revlog cache is still stored in _cache.
Fri, 06 Sep 2013 13:16:21 -0700 lrucachedict: implement clear()
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Sep 2013 13:16:21 -0700] rev 19710
lrucachedict: implement clear()
Sat, 07 Sep 2013 16:08:11 -0500 merge with stable
Kevin Bullock <kbullock@ringworld.org> [Sat, 07 Sep 2013 16:08:11 -0500] rev 19709
merge with stable
Sat, 07 Sep 2013 21:20:00 +0200 bundle: fix performance regression when bundling file changes (issue4031) stable
Antoine Pitrou <solipsis@pitrou.net> [Sat, 07 Sep 2013 21:20:00 +0200] rev 19708
bundle: fix performance regression when bundling file changes (issue4031) Somewhere before 2.7, a change [ec896f9e8894] was committed that entailed a large performance regression when bundling (and therefore remote cloning) repositories. For each file in the repository, it would recompute the set of needed changesets even though it is the same for all files. This computation would dominate bundle runtimes according to profiler output (by 10x or more).
Sat, 07 Sep 2013 00:08:36 -0500 merge with stable
Kevin Bullock <kbullock@ringworld.org> [Sat, 07 Sep 2013 00:08:36 -0500] rev 19707
merge with stable
Tue, 06 Aug 2013 00:52:06 +0400 revset: fix wrong keyword() behaviour for strings with spaces stable
Alexander Plavin <alexander@plav.in> [Tue, 06 Aug 2013 00:52:06 +0400] rev 19706
revset: fix wrong keyword() behaviour for strings with spaces Some changesets can be wrongly reported as matched by this predicate due to searching in a string joined with spaces and not individually. A test case added, which fails without this fix.
Thu, 15 Aug 2013 13:42:56 -0500 commitablefilectx: move children from workingfilectx
Sean Farley <sean.michael.farley@gmail.com> [Thu, 15 Aug 2013 13:42:56 -0500] rev 19705
commitablefilectx: move children from workingfilectx
Thu, 15 Aug 2013 13:42:33 -0500 commitablefilectx: move parents from workingfilectx
Sean Farley <sean.michael.farley@gmail.com> [Thu, 15 Aug 2013 13:42:33 -0500] rev 19704
commitablefilectx: move parents from workingfilectx
Thu, 15 Aug 2013 13:23:06 -0500 commitablefilectx: move __nonzero__ from workingfilectx
Sean Farley <sean.michael.farley@gmail.com> [Thu, 15 Aug 2013 13:23:06 -0500] rev 19703
commitablefilectx: move __nonzero__ from workingfilectx
Thu, 15 Aug 2013 13:12:50 -0500 commitablefilectx: move __init__ from workingfilectx
Sean Farley <sean.michael.farley@gmail.com> [Thu, 15 Aug 2013 13:12:50 -0500] rev 19702
commitablefilectx: move __init__ from workingfilectx
Thu, 15 Aug 2013 13:11:51 -0500 commitablefilectx: add a class that will be used for mutable file contexts
Sean Farley <sean.michael.farley@gmail.com> [Thu, 15 Aug 2013 13:11:51 -0500] rev 19701
commitablefilectx: add a class that will be used for mutable file contexts Just like commitablectx, this will serve as a common place for code that will be shared between workingfilectx and memfilectx.
Wed, 14 Aug 2013 16:40:34 -0500 commitablectx: move dirs from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:40:34 -0500] rev 19700
commitablectx: move dirs from workingctx
Wed, 14 Aug 2013 16:40:27 -0500 commitablectx: move markcommitted from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:40:27 -0500] rev 19699
commitablectx: move markcommitted from workingctx
Wed, 14 Aug 2013 16:37:59 -0500 commitablectx: move ancestors from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:37:59 -0500] rev 19698
commitablectx: move ancestors from workingctx
Wed, 14 Aug 2013 16:37:11 -0500 commitablectx: move walk from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:37:11 -0500] rev 19697
commitablectx: move walk from workingctx
Wed, 14 Aug 2013 16:37:01 -0500 commitablectx: move ancestor from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:37:01 -0500] rev 19696
commitablectx: move ancestor from workingctx
Wed, 14 Aug 2013 16:25:43 -0500 commitablectx: move flags from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:25:43 -0500] rev 19695
commitablectx: move flags from workingctx
Wed, 14 Aug 2013 16:25:26 -0500 commitablectx: move children from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:25:26 -0500] rev 19694
commitablectx: move children from workingctx
Wed, 14 Aug 2013 16:25:17 -0500 commitablectx: move hidden from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:25:17 -0500] rev 19693
commitablectx: move hidden from workingctx
Wed, 14 Aug 2013 16:24:59 -0500 commitablectx: move phase from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:24:59 -0500] rev 19692
commitablectx: move phase from workingctx
Wed, 14 Aug 2013 16:24:33 -0500 commitablectx: move bookmarks from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:24:33 -0500] rev 19691
commitablectx: move bookmarks from workingctx
Wed, 14 Aug 2013 16:24:16 -0500 commitablectx: move tags from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:24:16 -0500] rev 19690
commitablectx: move tags from workingctx
Wed, 14 Aug 2013 16:23:28 -0500 commitablectx: move extra from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:23:28 -0500] rev 19689
commitablectx: move extra from workingctx
Wed, 14 Aug 2013 16:23:16 -0500 commitablectx: move closesbranch from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:23:16 -0500] rev 19688
commitablectx: move closesbranch from workingctx
Wed, 14 Aug 2013 16:23:02 -0500 commitablectx: move branch from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:23:02 -0500] rev 19687
commitablectx: move branch from workingctx
Wed, 14 Aug 2013 16:22:42 -0500 commitablectx: move clean from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:22:42 -0500] rev 19686
commitablectx: move clean from workingctx
Wed, 14 Aug 2013 16:22:32 -0500 commitablectx: move ignored from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:22:32 -0500] rev 19685
commitablectx: move ignored from workingctx
Wed, 14 Aug 2013 16:22:20 -0500 commitablectx: move unknown from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:22:20 -0500] rev 19684
commitablectx: move unknown from workingctx
Wed, 14 Aug 2013 16:21:55 -0500 commitablectx: move deleted from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:21:55 -0500] rev 19683
commitablectx: move deleted from workingctx
Wed, 14 Aug 2013 16:15:29 -0500 commitablectx: move removed from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:15:29 -0500] rev 19682
commitablectx: move removed from workingctx
Wed, 14 Aug 2013 16:15:18 -0500 commitablectx: move added from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:15:18 -0500] rev 19681
commitablectx: move added from workingctx
Wed, 14 Aug 2013 16:14:58 -0500 commitablectx: move modified from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:14:58 -0500] rev 19680
commitablectx: move modified from workingctx
Wed, 14 Aug 2013 16:09:45 -0500 commitablectx: move files from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:09:45 -0500] rev 19679
commitablectx: move files from workingctx
Wed, 14 Aug 2013 16:09:30 -0500 commitablectx: move description from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:09:30 -0500] rev 19678
commitablectx: move description from workingctx
Wed, 14 Aug 2013 16:03:32 -0500 commitablectx: move date from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 16:03:32 -0500] rev 19677
commitablectx: move date from workingctx
Thu, 15 Aug 2013 10:57:43 -0500 commitablectx: move _date from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Thu, 15 Aug 2013 10:57:43 -0500] rev 19676
commitablectx: move _date from workingctx
Wed, 14 Aug 2013 15:57:24 -0500 commitablectx: move user from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 15:57:24 -0500] rev 19675
commitablectx: move user from workingctx
Thu, 15 Aug 2013 10:51:53 -0500 commitablectx: move _user from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Thu, 15 Aug 2013 10:51:53 -0500] rev 19674
commitablectx: move _user from workingctx
Wed, 14 Aug 2013 15:55:56 -0500 commitablectx: move status from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 15:55:56 -0500] rev 19673
commitablectx: move status from workingctx
Wed, 14 Aug 2013 15:41:22 -0500 commitablectx: move _status from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 15:41:22 -0500] rev 19672
commitablectx: move _status from workingctx
Wed, 14 Aug 2013 15:34:18 -0500 commitablectx: move _manifest from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 15:34:18 -0500] rev 19671
commitablectx: move _manifest from workingctx
Wed, 14 Aug 2013 15:30:17 -0500 commitablectx: move _flagfunc from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 15:30:17 -0500] rev 19670
commitablectx: move _flagfunc from workingctx
Wed, 14 Aug 2013 15:29:48 -0500 commitablectx: move _buildflagfunc from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 15:29:48 -0500] rev 19669
commitablectx: move _buildflagfunc from workingctx
Wed, 14 Aug 2013 15:29:09 -0500 commitablectx: move __contains__ from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 15:29:09 -0500] rev 19668
commitablectx: move __contains__ from workingctx
Wed, 14 Aug 2013 15:28:43 -0500 commitablectx: move __nonzero__ from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 15:28:43 -0500] rev 19667
commitablectx: move __nonzero__ from workingctx
Wed, 14 Aug 2013 15:25:14 -0500 commitablectx: move __str__ from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 15:25:14 -0500] rev 19666
commitablectx: move __str__ from workingctx
Wed, 14 Aug 2013 15:24:58 -0500 commitablectx: move __init__ from workingctx
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 15:24:58 -0500] rev 19665
commitablectx: move __init__ from workingctx
Wed, 14 Aug 2013 15:02:08 -0500 commitablectx: add a class that will be used as a parent of mutable contexts
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 15:02:08 -0500] rev 19664
commitablectx: add a class that will be used as a parent of mutable contexts Currently, we have basectx that serves as a common ancestor of all contexts. We will now add a new class commitablectx that will inherit from basectx and will serve as a common place for code that will be shared between mutable contexts, e.g. workingctx and memctx.
Wed, 14 Aug 2013 13:32:56 -0500 workingfilectx: remove unneeded __repr__ since it is now inherited
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 13:32:56 -0500] rev 19663
workingfilectx: remove unneeded __repr__ since it is now inherited
Thu, 15 Aug 2013 13:09:34 -0500 workingfilectx: remove bogus comment
Sean Farley <sean.michael.farley@gmail.com> [Thu, 15 Aug 2013 13:09:34 -0500] rev 19662
workingfilectx: remove bogus comment
Thu, 15 Aug 2013 13:32:07 -0500 workingfilectx: remove __str__ manifest since it is now inherited
Sean Farley <sean.michael.farley@gmail.com> [Thu, 15 Aug 2013 13:32:07 -0500] rev 19661
workingfilectx: remove __str__ manifest since it is now inherited
Thu, 15 Aug 2013 13:31:17 -0500 basefilectx: use basectx __str__ instead of duplicating logic
Sean Farley <sean.michael.farley@gmail.com> [Thu, 15 Aug 2013 13:31:17 -0500] rev 19660
basefilectx: use basectx __str__ instead of duplicating logic This change allows us to only rely on one place to convert a context to a string which will help eliminate duplicate code in context.py
Wed, 14 Aug 2013 13:41:09 -0500 workingctx: remove unneeded manifest since it is now inherited
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 13:41:09 -0500] rev 19659
workingctx: remove unneeded manifest since it is now inherited
Wed, 14 Aug 2013 13:32:44 -0500 workingctx: remove unneeded __repr__ since it is now inherited
Sean Farley <sean.michael.farley@gmail.com> [Wed, 14 Aug 2013 13:32:44 -0500] rev 19658
workingctx: remove unneeded __repr__ since it is now inherited
Tue, 03 Sep 2013 20:02:53 +0400 hgweb: import the whole util module in webcommands instead of just one function
Alexander Plavin <alexander@plav.in> [Tue, 03 Sep 2013 20:02:53 +0400] rev 19657
hgweb: import the whole util module in webcommands instead of just one function This is to allow using other functions from this module easily.
Wed, 04 Sep 2013 19:40:04 +0400 hgweb: add string constants for search mode names
Alexander Plavin <alexander@plav.in> [Wed, 04 Sep 2013 19:40:04 +0400] rev 19656
hgweb: add string constants for search mode names It helps detecting mistakes in the mode names.
Wed, 04 Sep 2013 18:42:55 -0700 addremove: don't do full walks
Siddharth Agarwal <sid0@fb.com> [Wed, 04 Sep 2013 18:42:55 -0700] rev 19655
addremove: don't do full walks Full walks are only necessary when the caller needs the list of clean files. addremove by definition doesn't need them. With this patch and an extension that produces a subset of results for dirstate.walk when full is False, on a repository with over 200,000 files, hg addremove drops from 2.8 seconds to 0.5.
Thu, 05 Sep 2013 11:45:27 -0400 merge with mpm
Augie Fackler <raf@durin42.com> [Thu, 05 Sep 2013 11:45:27 -0400] rev 19654
merge with mpm
Tue, 03 Sep 2013 17:06:19 -0400 merge with mpm
Augie Fackler <raf@durin42.com> [Tue, 03 Sep 2013 17:06:19 -0400] rev 19653
merge with mpm
Sat, 17 Aug 2013 20:48:49 -0700 pack_dirstate: only invalidate mtime for files written in the last second
Siddharth Agarwal <sid0@fb.com> [Sat, 17 Aug 2013 20:48:49 -0700] rev 19652
pack_dirstate: only invalidate mtime for files written in the last second Previously we'd place files written in the last second in the lookup set. This can lead to pathological cases where a file always remains in the lookup set if it gets modified before the next time status is run. With this patch, only the mtime of those files is invalidated. This means that if a file's size or mode changes, we can immediately declare it as modified without needing to compare file contents.
Sat, 31 Aug 2013 10:20:15 -0700 dirstate.status: don't ignore symlink placeholders in the normal set
Siddharth Agarwal <sid0@fb.com> [Sat, 31 Aug 2013 10:20:15 -0700] rev 19651
dirstate.status: don't ignore symlink placeholders in the normal set On Windows, there are two ways symlinks can manifest themselves: 1. As placeholders: text files containing the symlink's target. This is what usually happens with fresh clones on Windows. 2. With their dereferenced contents. This happens with clones accessed over NFS or Samba. In order to handle case 2, ca6cebd8734e made dirstate.status ignore all symlink placeholders on Windows. It doesn't ignore symlinks in the lookup set, though, since those don't have the link bit set. This is problematic because it violates the invariant that `hg status` with every file in the normal set produces the same output as `hg status` with every file in the lookup set. With this change, symlink placeholders in the normal set are no longer ignored. We instead rely on code in localrepo.status that uses heuristics to look for suspect placeholders. An upcoming patch will test this out by no longer adding files written in the last second of an update to the lookup set.
Sat, 31 Aug 2013 10:16:06 -0700 localrepo.status: ignore empty symlink placeholders
Siddharth Agarwal <sid0@fb.com> [Sat, 31 Aug 2013 10:16:06 -0700] rev 19650
localrepo.status: ignore empty symlink placeholders A symlink's target should never be empty in normal use. Solaris and some BSDs do allow empty symlinks to be created (with varying semantics on dereference), but a symlink placeholder that started off as empty is either - going to be empty, in which case ignoring it is fine, since it's unchanged, or - going to not be empty, in which case this check is irrelevant.
Tue, 03 Sep 2013 18:08:27 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 03 Sep 2013 18:08:27 -0500] rev 19649
merge with stable
Tue, 03 Sep 2013 18:05:11 -0500 Added signature for changeset 335a558f81dc stable
Matt Mackall <mpm@selenic.com> [Tue, 03 Sep 2013 18:05:11 -0500] rev 19648
Added signature for changeset 335a558f81dc
Tue, 03 Sep 2013 18:05:06 -0500 Added tag 2.7.1 for changeset 335a558f81dc stable
Matt Mackall <mpm@selenic.com> [Tue, 03 Sep 2013 18:05:06 -0500] rev 19647
Added tag 2.7.1 for changeset 335a558f81dc
Wed, 28 Aug 2013 22:09:53 +0900 tags: write tag overwriting history also into tag cache file (issue3911) stable 2.7.1
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 28 Aug 2013 22:09:53 +0900] rev 19646
tags: write tag overwriting history also into tag cache file (issue3911) Before this patch, tag overwriting history is not written into tag cache file ".hg/cache/tags". This may give higher priority to local tag than global one, even if the former is overwritten by the latter, because tag overwriting history is used to compare priorities of them (as "rank"). In such cases, "hg tags" invocations using tag cache file shows incorrect tag information. This patch writes tag overwriting history also into tag cache file.
Tue, 03 Sep 2013 15:50:59 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 03 Sep 2013 15:50:59 -0500] rev 19645
merge with stable
Mon, 26 Aug 2013 16:11:21 +0900 histedit: add description about "histedit --outgoing" to command help stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 26 Aug 2013 16:11:21 +0900] rev 19644
histedit: add description about "histedit --outgoing" to command help Before this patch, there is no explicit description that argument is treated as the URL of the destination repository when "--outgoing" is specified. This patch adds description about "histedit --outgoing" to command help of it.
Mon, 26 Aug 2013 16:11:21 +0900 histedit: add description about basic histedit function to command help stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 26 Aug 2013 16:11:21 +0900] rev 19643
histedit: add description about basic histedit function to command help Before this patch, there is no explicit description that histedit edits changesets between specified ancestor and the parent of the working directory: users may notice it by error message "REV is not an ancestor of working directory". This patch adds description about basic histedit function to command help of it. This patch uses term "ancestor" instead of "parent", because it seems to be more suitable, and almost all (error) messages already use it.
Tue, 03 Sep 2013 15:12:35 -0400 rebase: handle bookmarks matching revset function names (issue3950) stable
Bryan O'Sullivan <bryano@fb.com> [Tue, 03 Sep 2013 15:12:35 -0400] rev 19642
rebase: handle bookmarks matching revset function names (issue3950) We handled these correctly with all rev-specifying options except, somehow, -r/--rev.
Tue, 03 Sep 2013 15:12:35 -0400 rebase: handle bookmarks matching revset function names (issue3950)
Bryan O'Sullivan <bryano@fb.com> [Tue, 03 Sep 2013 15:12:35 -0400] rev 19641
rebase: handle bookmarks matching revset function names (issue3950) We handled these correctly with all rev-specifying options except, somehow, -r/--rev.
Thu, 25 Jul 2013 22:28:34 -0500 dispatch: add ability to specify a custom pdb module as a debugger
Sean Farley <sean.michael.farley@gmail.com> [Thu, 25 Jul 2013 22:28:34 -0500] rev 19640
dispatch: add ability to specify a custom pdb module as a debugger This adds the ability to specify a config option, ui.debugger, to a custom pdb module, such as ipdb, and have mercurial use that as its debugger. As long as the value of ui.debugger is a loadable module with the set_trace and post_mortem functions, then dispatch will be able to use the custom module. Debugging _parseconfig is still available in the case of an error since it will be caught with a default the value of pdb.post_mortem.
Sat, 13 Jul 2013 16:33:07 -0500 dispatch: move command line --config argument parsing to _runcatch()
Sean Farley <sean.michael.farley@gmail.com> [Sat, 13 Jul 2013 16:33:07 -0500] rev 19639
dispatch: move command line --config argument parsing to _runcatch() Previously, command line parsing of --config arguments was done in _dispatch. This means that it takes place after activating the debugger. In an upcoming patch, we will add a ui.debugger setting so we need to have this parsing done before _runcatch.
Tue, 13 Aug 2013 01:38:30 +0200 mq: update subrepos when applying / unapplying patches that change .hgsubstate
Angel Ezquerra <angel.ezquerra@gmail.com> [Tue, 13 Aug 2013 01:38:30 +0200] rev 19638
mq: update subrepos when applying / unapplying patches that change .hgsubstate Up until now applying or unapplying a patch that modified .hgsubstate would not work as expected because it would not update the subrepos according to the .hgsubstate change. This made it very easy to lose subrepo changes when using mq. This revision also changes the test-mq-subrepo test so that on the qpop / qpush tests. We no longer use the debugsub command to check the state of the subrepos after the qpop and qpush operations. Instead we directly run the id command on the subrepos that we want to check. The reason is that using the debugsub command is misleading because it does not really check the state of the subrepos on the working directory (it just returns what the change that is specified on a given revision). Because of this the tests did not detect the problem that this revision fixes (i.e. that applying a patch did not update the subrepos to the corresponding revisions). # HG changeset patch # User Angel Ezquerra <angel.ezquerra@gmail.com> # Date 1376350710 -7200 # Tue Aug 13 01:38:30 2013 +0200 # Node ID 60897e264858cdcd46f89e27a702086f08adca02 # Parent 2defb5453f223c3027eb2f7788fbddd52bbb3352 mq: update subrepos when applying / unapplying patches that change .hgsubstate Up until now applying or unapplying a patch that modified .hgsubstate would not work as expected because it would not update the subrepos according to the .hgsubstate change. This made it very easy to lose subrepo changes when using mq. This revision also changes the test-mq-subrepo test so that on the qpop / qpush tests. We no longer use the debugsub command to check the state of the subrepos after the qpop and qpush operations. Instead we directly run the id command on the subrepos that we want to check. The reason is that using the debugsub command is misleading because it does not really check the state of the subrepos on the working directory (it just returns what the change that is specified on a given revision). Because of this the tests did not detect the problem that this revision fixes (i.e. that applying a patch did not update the subrepos to the corresponding revisions).
Wed, 21 Aug 2013 22:34:04 +0200 subrepo: make submerge() return the merged substate
Angel Ezquerra <angel.ezquerra@gmail.com> [Wed, 21 Aug 2013 22:34:04 +0200] rev 19637
subrepo: make submerge() return the merged substate This will be useful when reusing submerge() to improve the handling of subrepos on mq. # HG changeset patch # User Angel Ezquerra <angel.ezquerra@gmail.com> # Date 1377117244 -7200 # Wed Aug 21 22:34:04 2013 +0200 # Node ID 2defb5453f223c3027eb2f7788fbddd52bbb3352 # Parent a5c90acff5e61aae714ba6c9457d766c54b4f124 subrepo: make submerge() return the merged substate This will be useful when reusing submerge() to improve the handling of subrepos on mq.
Tue, 06 Aug 2013 00:49:39 +0200 mq: look for modified subrepos when checking for local changes
Angel Ezquerra <angel.ezquerra@gmail.com> [Tue, 06 Aug 2013 00:49:39 +0200] rev 19636
mq: look for modified subrepos when checking for local changes It was possible to apply, unapply, fold, patches (etc) with modified subrepos, which resulted in surprising behavior. For example it was easy to apply a patch with a modified subrepo, and then the refresh it and accidentally end up including the modified subrepo on the refreshed patch. A test has been added to verify this new check. # HG changeset patch # User Angel Ezquerra <angel.ezquerra@gmail.com> # Date 1375742979 -7200 # Tue Aug 06 00:49:39 2013 +0200 # Node ID a5c90acff5e61aae714ba6c9457d766c54b4f124 # Parent 6ac206fb6f27492a98f46bbff090407ee1b1de72 mq: look for modified subrepos when checking for local changes It was possible to apply, unapply, fold, patches (etc) with modified subrepos, which resulted in surprising behavior. For example it was easy to apply a patch with a modified subrepo, and then the refresh it and accidentally end up including the modified subrepo on the refreshed patch. A test has been added to verify this new check.
Wed, 07 Aug 2013 09:59:45 +0800 localrepo: get value from the unfiltered caches should check if the attribute existed.
Wei, Elson <elson.wei@gmail.com> [Wed, 07 Aug 2013 09:59:45 +0800] rev 19635
localrepo: get value from the unfiltered caches should check if the attribute existed. If the attribute existed already, it should be returned by getattr(). Otherwise, it will be evaluated again.
Fri, 19 Jul 2013 02:09:13 +0400 hgweb: always run search when a query is entered (bc)
Alexander Plavin <alexander@plav.in> [Fri, 19 Jul 2013 02:09:13 +0400] rev 19634
hgweb: always run search when a query is entered (bc) This changes the behavior for queries which point at a revision directly, now the output is consistent to other cases: it results in only this matched revision shown, not the log starting with it. A new test checks this behaviour and fails for the old one.
Fri, 19 Jul 2013 02:41:11 +0400 hgweb: search() function supports direct pointing to revision
Alexander Plavin <alexander@plav.in> [Fri, 19 Jul 2013 02:41:11 +0400] rev 19633
hgweb: search() function supports direct pointing to revision This doesn't change the behavior, as queries directly pointing to revisions are not delegated to the search() function now.
Thu, 22 Aug 2013 16:42:10 +0400 hgweb: pass arguments which a function depends on explicitly in search
Alexander Plavin <alexander@plav.in> [Thu, 22 Aug 2013 16:42:10 +0400] rev 19632
hgweb: pass arguments which a function depends on explicitly in search This changes makes clearer which arguments can a function depend on. Now all the modified functions depend on the 'query' argument only, but future additions will change it.
Thu, 22 Aug 2013 16:45:23 +0400 hgweb: add dynamic search function selection, depending on the query
Alexander Plavin <alexander@plav.in> [Thu, 22 Aug 2013 16:45:23 +0400] rev 19631
hgweb: add dynamic search function selection, depending on the query This allows adding other specific search functions, in addition to current keyword search.
Mon, 26 Aug 2013 17:11:01 -0700 unionrevlog: extract 'baserevision' and 'baserevdiff' methods
Wojciech Lopata <lopek@fb.com> [Mon, 26 Aug 2013 17:11:01 -0700] rev 19630
unionrevlog: extract 'baserevision' and 'baserevdiff' methods This makes possible to use unionrevlog class with subclasses of revlog that override revlog's 'revision' and 'revdiff' methods. In particular this change is necessary to implement manifest compression, as it allows extension to replace manifest class and override 'revision' amd 'revdiff' methods there.
Mon, 26 Aug 2013 16:50:31 -0700 bundlerevlog: extract 'baserevision' method
Wojciech Lopata <lopek@fb.com> [Mon, 26 Aug 2013 16:50:31 -0700] rev 19629
bundlerevlog: extract 'baserevision' method This makes possible to use bundlerevlog class with subclasses of revlog that override revlog's 'revision' method. In particular this change is necessary to implement manifest compression, as it allows extension to replace manifest class and override 'revision' method there.
Mon, 26 Aug 2013 15:20:44 -0700 solaris: tests can't use tail -n
Danek Duvall <danek.duvall@oracle.com> [Mon, 26 Aug 2013 15:20:44 -0700] rev 19628
solaris: tests can't use tail -n Solaris tail doesn't recognize the -n option. Replace the one use of it with some inline python code, and add a test case to check-code.py.
Fri, 23 Aug 2013 16:05:38 -0700 solaris: sed doesn't recognize a line without a newline
Danek Duvall <danek.duvall@oracle.com> [Fri, 23 Aug 2013 16:05:38 -0700] rev 19627
solaris: sed doesn't recognize a line without a newline
Fri, 23 Aug 2013 14:31:42 -0700 solaris: test cases can't use grep -a
Danek Duvall <danek.duvall@oracle.com> [Fri, 23 Aug 2013 14:31:42 -0700] rev 19626
solaris: test cases can't use grep -a The -a option to GNU grep isn't available when using Solaris grep. Replace the one use of grep -a in the testsuite with some in-line Python that does the equivalent, and add a check for grep -a in check-code.py.
Mon, 19 Aug 2013 11:25:23 -0700 revlog: pass node as an argument of addrevision
Wojciech Lopata <lopek@fb.com> [Mon, 19 Aug 2013 11:25:23 -0700] rev 19625
revlog: pass node as an argument of addrevision This change will allow revlog subclasses that override 'checkhash' method to use custom strategy of computing nodeids without overriding 'addrevision' method. In particular this change is necessary to implement manifest compression.
Mon, 19 Aug 2013 11:06:38 -0700 revlog: extract 'checkhash' method
Wojciech Lopata <lopek@fb.com> [Mon, 19 Aug 2013 11:06:38 -0700] rev 19624
revlog: extract 'checkhash' method Extract method that decides whether nodeid is correct for paricular revision text and parent nodes. Having this method extracted will allow revlog subclasses to implement custom way of computing nodes. In particular this change is necessary to implement manifest compression.
Mon, 26 Aug 2013 16:11:21 +0900 histedit: discard meaningless comment about 'hexlify node'
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 26 Aug 2013 16:11:21 +0900] rev 19623
histedit: discard meaningless comment about 'hexlify node' Refactoring in 26b41a902195 made this comment meaningless. The node gotten by "discovery.findcommonoutgoing()" is hexlified in "between()" by "repo.set('%n::%n', old, new)".
Mon, 26 Aug 2013 16:11:21 +0900 histedit: add description about "histedit --outgoing" to command help
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 26 Aug 2013 16:11:21 +0900] rev 19622
histedit: add description about "histedit --outgoing" to command help Before this patch, there is no explicit description that argument is treated as the URL of the destination repository when "--outgoing" is specified. This patch adds description about "histedit --outgoing" to command help of it.
Mon, 26 Aug 2013 16:11:21 +0900 histedit: add description about basic histedit function to command help
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 26 Aug 2013 16:11:21 +0900] rev 19621
histedit: add description about basic histedit function to command help Before this patch, there is no explicit description that histedit edits changesets between specified ancestor and the parent of the working directory: users may notice it by error message "REV is not an ancestor of working directory". This patch adds description about basic histedit function to command help of it. This patch uses term "ancestor" instead of "parent", because it seems to be more suitable, and almost all (error) messages already use it.
Fri, 23 Aug 2013 16:16:22 -0400 httpclient: import 0d1b0a8bc549 to fix bug involving late-arriving RST after a response
Augie Fackler <raf@durin42.com> [Fri, 23 Aug 2013 16:16:22 -0400] rev 19620
httpclient: import 0d1b0a8bc549 to fix bug involving late-arriving RST after a response After a day of hunting this defect, I'm now unable to reproduce the bug without this patch applied. Regardless, this should fix the problem I was observing with wireshark. Hopefully this fixes any flakiness in the buildbot from http2.
Fri, 23 Aug 2013 13:28:18 -0400 progress: stop getting stuck in a nested topic during a long inner step
Augie Fackler <raf@durin42.com> [Fri, 23 Aug 2013 13:28:18 -0400] rev 19619
progress: stop getting stuck in a nested topic during a long inner step Convert, for example, has loops like this: for revision in source_repo: progress(revisions) for file in revision: progresss(file) Prior to this change, we would start showing the file-level progress when we encountered a big revision, and then we'd get stuck in showing file-progress instead of revision progress, often producing many many instantly-completing progress bars rather than the actually-helpful top-level revisions bar.
Thu, 15 Aug 2013 21:36:53 -0400 Backed out changeset 77d434760857
Augie Fackler <raf@durin42.com> [Thu, 15 Aug 2013 21:36:53 -0400] rev 19618
Backed out changeset 77d434760857
Thu, 15 Aug 2013 21:35:56 -0400 hgrc.d: separate namespace for mercurial scripts 9diff and 9mail
Jeff Sickel <jas@corpus-callosum.com> [Thu, 15 Aug 2013 21:35:56 -0400] rev 19617
hgrc.d: separate namespace for mercurial scripts 9diff and 9mail
Wed, 14 Aug 2013 12:42:22 -0500 debugfs: add hardlink support reporting
Matt Mackall <mpm@selenic.com> [Wed, 14 Aug 2013 12:42:22 -0500] rev 19616
debugfs: add hardlink support reporting
Sun, 04 Aug 2013 13:43:39 +0200 obsolete: allow passing a revision to successorssets()
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Sun, 04 Aug 2013 13:43:39 +0200] rev 19615
obsolete: allow passing a revision to successorssets()
Mon, 12 Aug 2013 17:44:31 -0500 factotum: clean up keychain for multiple hg repository authentication
Jeff Sickel <jas@corpus-callosum.com> [Mon, 12 Aug 2013 17:44:31 -0500] rev 19614
factotum: clean up keychain for multiple hg repository authentication
Mon, 12 Aug 2013 17:36:49 -0500 9mail: new script to add support for Plan 9 upas/marshal email wrapper
Jeff Sickel <jas@corpus-callosum.com> [Mon, 12 Aug 2013 17:36:49 -0500] rev 19613
9mail: new script to add support for Plan 9 upas/marshal email wrapper
Sun, 11 Aug 2013 23:50:32 -0500 workingfilectx: inherit from basefilectx instead of filectx
Sean Farley <sean.michael.farley@gmail.com> [Sun, 11 Aug 2013 23:50:32 -0500] rev 19612
workingfilectx: inherit from basefilectx instead of filectx
(0) -10000 -3000 -1000 -120 +120 +1000 +3000 +10000 +30000 tip