Fri, 29 Aug 2014 05:09:59 +0200 annotate: remove redundant check for empty list of annotation data
Yuya Nishihara <yuya@tcha.org> [Fri, 29 Aug 2014 05:09:59 +0200] rev 22452
annotate: remove redundant check for empty list of annotation data It isn't necessary because zip(*pieces) returns [] if pieces are empty, and pieces are empty only if lines are empty.
Fri, 12 Sep 2014 14:21:18 -0700 revset: lower weight for _intlist function
Durham Goode <durham@fb.com> [Fri, 12 Sep 2014 14:21:18 -0700] rev 22451
revset: lower weight for _intlist function The histedit command uses a revset like: (_intlist('1234\x001235')) and merge() Previously the optimizer gave a weight of 1.5 to the _intlist side (1 for the function, 0.5 for the string) which caused it to process the merge() side first. This caused it to evaluate merge against every commit in the repo, which took 2.5 seconds on a large repo. I changed the weight of _intlist to 0, since it's a trivial calculation, which makes it process intlist first, which makes merge apply only to the revs in the list. Which makes the revset take 0.15 seconds now. Cutting off 2.4 seconds off our histedit performance. >From the revset benchmark: revset #25: (_intlist('20000\x0020001')) and merge() 0) obsolete feature not enabled but 54243 markers found! ! wall 0.036767 comb 0.040000 user 0.040000 sys 0.000000 (best of 100) 1) obsolete feature not enabled but 54243 markers found! ! wall 0.000198 comb 0.000000 user 0.000000 sys 0.000000 (best of 9084)
Fri, 12 Sep 2014 15:00:51 -0700 revset: make parents() O(number of parents)
Durham Goode <durham@fb.com> [Fri, 12 Sep 2014 15:00:51 -0700] rev 22450
revset: make parents() O(number of parents) Strip executes a revset like this: max(parents(_intlist('1234\x001235')) - _intlist('1234\x001235')) Previously the parents() revset would do 'subset & parents' which iterates over each item in the subset and checks if it's in parents. subset is usually the entire repo (a spanset) so this takes a while. Reversing the parameters to be 'parents & subset' means the operation becomes O(number of parents) instead of O(size of repo). It also means the result gets evaluated immediately (since parents isn't a lazy set), but I think this is a win in most scenarios. This shaves 0.3 seconds off strip (amend/histedit/rebase/etc) for large repositories. revset #0: parents(20000) 0) obsolete feature not enabled but 54243 markers found! ! wall 0.006256 comb 0.010000 user 0.010000 sys 0.000000 (best of 289) 1) obsolete feature not enabled but 54243 markers found! ! wall 0.000391 comb 0.000000 user 0.000000 sys 0.000000 (best of 4323)
Fri, 12 Sep 2014 16:21:13 -0700 revset: make descendants() lazier
Durham Goode <durham@fb.com> [Fri, 12 Sep 2014 16:21:13 -0700] rev 22449
revset: make descendants() lazier Previously descendants() would force the provided subset to become a set. In the case of revsets like '(%ld::) - (%ld)' (as used by histedit) this would force the '- (%ld)' set to be evaluated, which produced a set containing every commit in the repo (except %ld). This takes 0.6s on large repos. This changes descendants to trust the subset to implement __contains__ efficiently, which improves the above revset to 0.16s. Shaving 0.4 seconds off of histedit. revset #27: (20000::) - (20000) 0) obsolete feature not enabled but 54243 markers found! ! wall 0.023640 comb 0.020000 user 0.020000 sys 0.000000 (best of 100) 1) obsolete feature not enabled but 54243 markers found! ! wall 0.019589 comb 0.020000 user 0.020000 sys 0.000000 (best of 100) This commit removes the final revset related perf hotspot from histedit. Combined with the previous two patches, they shave a little over 3 seconds off histedit on large repos.
Wed, 17 Sep 2014 00:28:37 +0900 check-code: look for misuse of __bool__
Yuya Nishihara <yuya@tcha.org> [Wed, 17 Sep 2014 00:28:37 +0900] rev 22448
check-code: look for misuse of __bool__
Wed, 17 Sep 2014 00:31:03 +0900 formatter: correct bool testing which should be __nonzero__ in Python 2
Yuya Nishihara <yuya@tcha.org> [Wed, 17 Sep 2014 00:31:03 +0900] rev 22447
formatter: correct bool testing which should be __nonzero__ in Python 2
Mon, 15 Sep 2014 16:07:54 -0400 contrib/synthrepo: return None to delete files on commit, don't raise IOError
Mike Edgar <adgar@google.com> [Mon, 15 Sep 2014 16:07:54 -0400] rev 22446
contrib/synthrepo: return None to delete files on commit, don't raise IOError The internal commit API was changed in 650b5b6e75ed to expect None from the filectx function when a file is to be deleted, not an IOError. This change keeps synthrepo up-to-date.
Mon, 15 Sep 2014 09:36:12 -0500 wix: contrib/sample.hgrc is no more
Steve Borho <steve@borho.org> [Mon, 15 Sep 2014 09:36:12 -0500] rev 22445
wix: contrib/sample.hgrc is no more
Sun, 31 Aug 2014 13:41:09 +0200 dockerrpm: create a yum/dnf repo from the generated rpms
Mads Kiilerich <madski@unity3d.com> [Sun, 31 Aug 2014 13:41:09 +0200] rev 22444
dockerrpm: create a yum/dnf repo from the generated rpms This gives "PPA" functionality where users easily can stay uptodate with latest nightly build.
Thu, 15 May 2014 01:48:37 +0200 docker: add CentOS 5
Mads Kiilerich <madski@unity3d.com> [Thu, 15 May 2014 01:48:37 +0200] rev 22443
docker: add CentOS 5 There is no official CentOS 5 docker template so we use one from saltstack.
Sun, 31 Aug 2014 13:41:09 +0200 docker: use stable tags for fedora and centos
Mads Kiilerich <madski@unity3d.com> [Sun, 31 Aug 2014 13:41:09 +0200] rev 22442
docker: use stable tags for fedora and centos A moving target is rarely useful.
Fri, 30 May 2014 14:14:33 +0200 dockerrpm: prepare source outside docker and just run rpmbuild inside docker
Mads Kiilerich <madski@unity3d.com> [Fri, 30 May 2014 14:14:33 +0200] rev 22441
dockerrpm: prepare source outside docker and just run rpmbuild inside docker Simplifies the rpm build process. We will use platform specific rpmbuild directories and will not clean them and will drop the explicit copy to build directory.
Fri, 30 May 2014 14:14:33 +0200 dockerrpm: run docker build process as the current user, not as root
Mads Kiilerich <madski@unity3d.com> [Fri, 30 May 2014 14:14:33 +0200] rev 22440
dockerrpm: run docker build process as the current user, not as root Docker can be run by ordinary users if they are in the docker group. The build process would however be run as a root user, only protected by the sandboxing. That caused problems with the shared directory where rpmbuild would be picky about building from sources owned by less privileged users and producing files owned by root. Instead, add a build user with the right uid/gid to the image and run the docker process as that user.
Fri, 30 May 2014 14:14:33 +0200 dockerrpm: better handling of specification of docker name
Mads Kiilerich <madski@unity3d.com> [Fri, 30 May 2014 14:14:33 +0200] rev 22439
dockerrpm: better handling of specification of docker name
Fri, 30 May 2014 14:14:33 +0200 dockerrpm: check that docker is running correctly before building
Mads Kiilerich <madski@unity3d.com> [Fri, 30 May 2014 14:14:33 +0200] rev 22438
dockerrpm: check that docker is running correctly before building
Sun, 31 Aug 2014 13:40:53 +0200 buildrpm: introduce --rpmdir instead of using hardcoded rpmbuild dir
Mads Kiilerich <madski@unity3d.com> [Sun, 31 Aug 2014 13:40:53 +0200] rev 22437
buildrpm: introduce --rpmdir instead of using hardcoded rpmbuild dir Used as rpm _topdir when preparing spec and source and building rpms.
Thu, 15 May 2014 01:50:11 +0200 buildrpm: introduce --withpython for building rpms that includes Python 2.7
Mads Kiilerich <madski@unity3d.com> [Thu, 15 May 2014 01:50:11 +0200] rev 22436
buildrpm: introduce --withpython for building rpms that includes Python 2.7
Sun, 31 Aug 2014 12:51:06 +0200 buildrpm: introduce --prepare for preparing without actually building rpms
Mads Kiilerich <madski@unity3d.com> [Sun, 31 Aug 2014 12:51:06 +0200] rev 22435
buildrpm: introduce --prepare for preparing without actually building rpms
Thu, 28 Aug 2014 22:45:36 +0900 templater: add "diff" template function
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 28 Aug 2014 22:45:36 +0900] rev 22434
templater: add "diff" template function "diff" allows to embed changes in the target revision into template output, even if the command itself doesn't take "--patch" option Combination of "[committemplate]" configuration and "diff" template function can achieve the feature like issue231 ("option to have diff displayed in commit editor buffer") http://bz.selenic.com/show_bug.cgi?id=231 For example, templating below can be used to add each "diff" output lines "HG: " prefix:: {splitlines(diff) % 'HG: {line}\n'} This patch implements "diff" not as "a template keyword" but as "a template function" to take include/exclude patterns at runtime. It allows to specify target files of command (by -I/-X command line options) and "diff" separately.
Tue, 16 Sep 2014 11:08:29 -0500 locate: add pointer to files command in help
Matt Mackall <mpm@selenic.com> [Tue, 16 Sep 2014 11:08:29 -0500] rev 22433
locate: add pointer to files command in help
Tue, 16 Sep 2014 11:08:14 -0500 tests: fix breakage from locate deprecation
Matt Mackall <mpm@selenic.com> [Tue, 16 Sep 2014 11:08:14 -0500] rev 22432
tests: fix breakage from locate deprecation
Sun, 16 Mar 2014 13:29:08 -0500 locate: deprecate in favor of files
Matt Mackall <mpm@selenic.com> [Sun, 16 Mar 2014 13:29:08 -0500] rev 22431
locate: deprecate in favor of files
Fri, 12 Sep 2014 18:36:38 -0500 formatter: add pickle format
Matt Mackall <mpm@selenic.com> [Fri, 12 Sep 2014 18:36:38 -0500] rev 22430
formatter: add pickle format This gives convenient Python2 output. Python 3 users will need encoding=bytes.
Mon, 15 Sep 2014 13:15:07 -0500 commands: add hidden -T option for files/manifest/status/tags
Matt Mackall <mpm@selenic.com> [Mon, 15 Sep 2014 13:15:07 -0500] rev 22429
commands: add hidden -T option for files/manifest/status/tags These commands have generic formatting support but no way to enable it yet. When this feature is more fully developed, this flag will be unhidden.
Fri, 12 Sep 2014 18:29:29 -0500 formatter: add json formatter
Matt Mackall <mpm@selenic.com> [Fri, 12 Sep 2014 18:29:29 -0500] rev 22428
formatter: add json formatter
Mon, 15 Sep 2014 13:11:13 -0500 cmdutil: add json style to log-like commands
Matt Mackall <mpm@selenic.com> [Mon, 15 Sep 2014 13:11:13 -0500] rev 22427
cmdutil: add json style to log-like commands Sadly, this can't be done with the normal templater like we do with XML due to JSON's inter-record comma rules.
Mon, 15 Sep 2014 13:12:49 -0500 encoding: add json escaping filter
Matt Mackall <mpm@selenic.com> [Mon, 15 Sep 2014 13:12:49 -0500] rev 22426
encoding: add json escaping filter This ends up here because it needs to be somewhat encoding aware.
Mon, 15 Sep 2014 13:12:20 -0500 encoding: handle empty string in toutf8
Matt Mackall <mpm@selenic.com> [Mon, 15 Sep 2014 13:12:20 -0500] rev 22425
encoding: handle empty string in toutf8
Fri, 12 Sep 2014 19:06:11 -0500 formatter: make debug style match Python syntax
Matt Mackall <mpm@selenic.com> [Fri, 12 Sep 2014 19:06:11 -0500] rev 22424
formatter: make debug style match Python syntax
Fri, 12 Sep 2014 18:32:46 -0500 files: add new command unifying locate and manifest functionality
Matt Mackall <mpm@selenic.com> [Fri, 12 Sep 2014 18:32:46 -0500] rev 22423
files: add new command unifying locate and manifest functionality
Tue, 02 Sep 2014 14:42:30 -0400 filelog: parsemeta stops returning unused key list
Mike Edgar <adgar@google.com> [Tue, 02 Sep 2014 14:42:30 -0400] rev 22422
filelog: parsemeta stops returning unused key list Currently, only the returned meta dictionary is used. An upcoming change will use the returned text offset.
Wed, 10 Sep 2014 00:18:15 -0400 filelog: make parsemeta a public module function, to be used by censor module
Mike Edgar <adgar@google.com> [Wed, 10 Sep 2014 00:18:15 -0400] rev 22421
filelog: make parsemeta a public module function, to be used by censor module
Wed, 10 Sep 2014 00:17:17 -0400 filelog: make packmeta a public module function, to be used by censor
Mike Edgar <adgar@google.com> [Wed, 10 Sep 2014 00:17:17 -0400] rev 22420
filelog: make packmeta a public module function, to be used by censor
Thu, 11 Sep 2014 12:26:12 -0500 ui: move samplehgrcs from config
Matt Mackall <mpm@selenic.com> [Thu, 11 Sep 2014 12:26:12 -0500] rev 22419
ui: move samplehgrcs from config config is generic code that doesn't know about Mercurial usage, so this was at the wrong layer
Thu, 11 Sep 2014 12:21:15 -0500 config: normalize style between user/global example configs
Matt Mackall <mpm@selenic.com> [Thu, 11 Sep 2014 12:21:15 -0500] rev 22418
config: normalize style between user/global example configs
Tue, 19 Aug 2014 14:33:31 -0400 commit: correctly check commit mutability during commit --amend
Augie Fackler <raf@durin42.com> [Tue, 19 Aug 2014 14:33:31 -0400] rev 22417
commit: correctly check commit mutability during commit --amend The right way to check if a context is mutable is to call .mutable(), not to compare .phase() with public.
Tue, 19 Aug 2014 14:33:01 -0400 histedit: check mutability of contexts correctly
Augie Fackler <raf@durin42.com> [Tue, 19 Aug 2014 14:33:01 -0400] rev 22416
histedit: check mutability of contexts correctly The right way to check if a context is mutable is to call .mutable(), not to compare .phase() with public.
Thu, 11 Sep 2014 10:14:34 -0400 manifest: mark addlistdelta and checkforbidden as module-private
Augie Fackler <raf@durin42.com> [Thu, 11 Sep 2014 10:14:34 -0400] rev 22415
manifest: mark addlistdelta and checkforbidden as module-private
Wed, 10 Sep 2014 10:52:00 -0400 convert: enable deterministic conversion progress bar for svn
Augie Fackler <raf@durin42.com> [Wed, 10 Sep 2014 10:52:00 -0400] rev 22414
convert: enable deterministic conversion progress bar for svn This produces slightly bad results when branches are in play, but overall I think it's probably worthwhile. We might be able to do better with branches somehow, but I haven't given it any thought.
Wed, 10 Sep 2014 10:51:46 -0400 convert: enable deterministic conversion progress bar for git
Augie Fackler <raf@durin42.com> [Wed, 10 Sep 2014 10:51:46 -0400] rev 22413
convert: enable deterministic conversion progress bar for git
Wed, 10 Sep 2014 11:04:29 -0400 test-convert-git.t: add a test of convert progress bars for git
Augie Fackler <raf@durin42.com> [Wed, 10 Sep 2014 11:04:29 -0400] rev 22412
test-convert-git.t: add a test of convert progress bars for git We're about to enhance this support, so test the existing behavior so the improved behavior is obvious in the next patch.
Mon, 26 May 2014 11:53:12 -0400 convert: add support for deterministic progress bar on scanning phase
Augie Fackler <raf@durin42.com> [Mon, 26 May 2014 11:53:12 -0400] rev 22411
convert: add support for deterministic progress bar on scanning phase This makes it possible to estimate how long the "scanning source" phase will take, if the specified source repo type supports a quick "how many changes" check.
Wed, 10 Sep 2014 11:01:47 -0400 test-convert-svn-move.t: remove stray '
Augie Fackler <raf@durin42.com> [Wed, 10 Sep 2014 11:01:47 -0400] rev 22410
test-convert-svn-move.t: remove stray '
Thu, 07 Aug 2014 12:47:20 -0400 manifest: move addlistdelta to module-level
Augie Fackler <raf@durin42.com> [Thu, 07 Aug 2014 12:47:20 -0400] rev 22409
manifest: move addlistdelta to module-level Again, there's no reason for this to be inside manifest.add, so we'll define it only once.
Thu, 07 Aug 2014 09:46:05 -0400 manifest: move checkforbidden to module-level
Augie Fackler <raf@durin42.com> [Thu, 07 Aug 2014 09:46:05 -0400] rev 22408
manifest: move checkforbidden to module-level There's no need for this function to be nested, so let's just define it once instead of every time manifest.add() gets called.
Fri, 05 Sep 2014 11:37:44 -0700 dirstate: add exception when calling setparent without begin/end (API)
Durham Goode <durham@fb.com> [Fri, 05 Sep 2014 11:37:44 -0700] rev 22407
dirstate: add exception when calling setparent without begin/end (API) Adds an exception when calling dirstate.setparent without having first called dirstate.beginparentchange. This will prevent people from writing code that modifies the dirstate parent without considering the transactionality of their change. This will break third party extensions that call setparents.
Fri, 05 Sep 2014 15:36:56 -0700 dirstate: add test for exceptions during updates
Durham Goode <durham@fb.com> [Fri, 05 Sep 2014 15:36:56 -0700] rev 22406
dirstate: add test for exceptions during updates Adds a test that checks if the working copy parent and the working copy are in a good state if an exception happens between the time the working copy parent is set and the time the actual updates are recorded in the dirstate.
Fri, 05 Sep 2014 11:36:20 -0700 dirstate: wrap setparent calls with begin/endparentchange (issue4353)
Durham Goode <durham@fb.com> [Fri, 05 Sep 2014 11:36:20 -0700] rev 22405
dirstate: wrap setparent calls with begin/endparentchange (issue4353) This wraps all the locations of dirstate.setparent with the appropriate begin/endparentchange calls. This will prevent exceptions during those calls from causing incoherent dirstates (issue4353).
(0) -10000 -3000 -1000 -300 -100 -48 +48 +100 +300 +1000 +3000 +10000 tip