Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 30 Jan 2014 21:01:13 -0800] rev 20464
push: move `incoming` into the push object
The fact that there is some unknown changes on remote one of the result of
discovery. It is then used by some push validation logic.
We move it in the object to be able to extract the said logic.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 30 Jan 2014 20:44:55 -0800] rev 20463
push: move changeset push logic in its own function
Now that every necessary information is held in the `pushoperation` object, we
can extract the logic pushing changeset to it's own function.
This changeset is pure code movement only.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 30 Jan 2014 20:34:35 -0800] rev 20462
push: move `remoteheads` into the push object
The heads of the remote repository are used to detect race when pushing
changeset. We now store this information in `pushoperation` object to allow
extraction of the changeset pushing part.
Lucas Moscovicz <lmoscovicz@fb.com> [Tue, 04 Feb 2014 15:07:03 -0800] rev 20461
revset: added lazyset implementation to contains revset
Lucas Moscovicz <lmoscovicz@fb.com> [Tue, 04 Feb 2014 09:29:19 -0800] rev 20460
revset: added lazyset implementation to secret revset
Lucas Moscovicz <lmoscovicz@fb.com> [Tue, 04 Feb 2014 09:14:45 -0800] rev 20459
revset: added lazyset implementation to matching revset
Performance Benchmarking:
$ time hg log -qr "first(matching(0))"
0:
9117c6561b0b
real 0m2.213s
user 0m2.149s
sys 0m0.055s
$ time ./hg log -qr "first(matching(0))"
0:
9117c6561b0b
real 0m0.177s
user 0m0.137s
sys 0m0.038s
Lucas Moscovicz <lmoscovicz@fb.com> [Tue, 04 Feb 2014 08:51:07 -0800] rev 20458
revset: added lazyset implementation to _matchfiles
Performance Benchmarking:
$ time hg log -qr "first(file(README))"
0:
9117c6561b0b
real 0m2.234s
user 0m2.180s
sys 0m0.044s
$ time ./hg log -qr "first(file(README))"
0:
9117c6561b0b
real 0m0.172s
user 0m0.129s
sys 0m0.042s
Lucas Moscovicz <lmoscovicz@fb.com> [Fri, 31 Jan 2014 10:47:51 -0800] rev 20457
revset: added lazyset implementation to checkstatus
This improves the performance of the revsets 'adds' 'modifies' and 'removes'
Performance benchmarking:
$ time hg log -qr "first(adds(README))"
0:
9117c6561b0b
real 0m2.279s
user 0m2.222s
sys 0m0.053s
$ time ./hg log -qr "first(adds(README))"
0:
9117c6561b0b
real 0m0.172s
user 0m0.131s
sys 0m0.041s
$ time hg log -qr "first(modifies(README))"
1:
273ce12ad8f1
real 0m2.292s
user 0m2.227s
sys 0m0.061s
$ time ./hg log -qr "first(modifies(README))"
1:
273ce12ad8f1
real 0m0.178s
user 0m0.130s
sys 0m0.038s
$ time hg log -qr "first(removes(README))"
2379:
e90cff87f871
real 0m2.297s
user 0m2.235s
sys 0m0.058s
$ time ./hg log -qr "first(removes(README))"
2379:
e90cff87f871
real 0m0.975s
user 0m0.797s
sys 0m0.056s
Lucas Moscovicz <lmoscovicz@fb.com> [Thu, 30 Jan 2014 17:46:08 -0800] rev 20456
revset: added lazyset implementation to public revset
Performance Benchmarking:
$ time hg log -qr "first(public())"
...
real 0m1.184s
user 0m1.051s
sys 0m0.130s
$ time ./hg log -qr "first(public())"
...
real 0m0.548s
user 0m0.427s
sys 0m0.118s
Olle Lundberg <geek@nerd.sh> [Wed, 12 Feb 2014 01:00:51 +0100] rev 20455
color: add debugcolor command (
issue4094)
This patch adds a debugcolor command that prints all
colors that the extension knows about.
Lucas Moscovicz <lmoscovicz@fb.com> [Thu, 30 Jan 2014 16:47:29 -0800] rev 20454
revset: added lazyset implementation to merge revset
Performance benchmarking:
$ time hg log -qr "first(merge())"
102:
58039eddbdda
real 0m0.276s
user 0m0.208s
sys 0m0.047s
$ time ./hg log -qr "first(merge())"
102:
58039eddbdda
real 0m0.192s
user 0m0.154s
sys 0m0.027s
Lucas Moscovicz <lmoscovicz@fb.com> [Thu, 30 Jan 2014 16:03:18 -0800] rev 20453
revset: added lazyset implementation to grep revset
Performance benchmarking:
$ time hg log -qr "first(grep(hg))"
0:
9117c6561b0b
real 0m2.214s
user 0m2.163s
sys 0m0.045s
$ time ./hg log -qr "first(grep(hg))"
0:
9117c6561b0b
real 0m0.211s
user 0m0.146s
sys 0m0.035s
Lucas Moscovicz <lmoscovicz@fb.com> [Thu, 30 Jan 2014 15:39:56 -0800] rev 20452
revset: added lazyset implementation to desc revset
Performance benchmarking:
$ time hg log -qr "first(desc(hg))"
changeset: 0:
9117c6561b0b
real 0m2.210s
user 0m2.158s
sys 0m0.049s
$ time ./hg log -qr "first(desc(hg))"
changeset: 0:
9117c6561b0b
real 0m0.171s
user 0m0.131s
sys 0m0.035s
Lucas Moscovicz <lmoscovicz@fb.com> [Mon, 03 Feb 2014 16:15:25 -0800] rev 20451
revset: added lazyset implementation to draft revset
Lucas Moscovicz <lmoscovicz@fb.com> [Wed, 29 Jan 2014 15:23:16 -0800] rev 20450
revset: added lazyset implementation bookmark revset
Lucas Moscovicz <lmoscovicz@fb.com> [Mon, 03 Feb 2014 16:02:48 -0800] rev 20449
revset: added lazyset implementation to date revset
Performance Benchmarking:
$ time hg log -qr "first(date(05/03/2005))"
0:
9117c6561b0b
real 0m3.157s
user 0m2.994s
sys 0m0.087s
$ time ./hg log -qr "first(date(05/03/2005))"
0:
9117c6561b0b
real 0m0.509s
user 0m0.289s
sys 0m0.070s
Lucas Moscovicz <lmoscovicz@fb.com> [Wed, 29 Jan 2014 09:22:31 -0800] rev 20448
revset: added lazyset implementation to author revset
Performance benchmarking:
$ time hg log -qr "first(author(mpm))"
0:
9117c6561b0b
real 0m3.486s
user 0m3.317s
sys 0m0.077s
$ time ./hg log -qr "first(author(mpm))"
0:
9117c6561b0b
real 0m0.551s
user 0m0.295s
sys 0m0.072s
Lucas Moscovicz <lmoscovicz@fb.com> [Wed, 29 Jan 2014 09:04:03 -0800] rev 20447
revset: added lazyset implementation to keyword revset
Performance benchmarking:
$ time hg log -qr "first(keyword(changeset))"
0:
9117c6561b0b
real 0m3.466s
user 0m3.345s
sys 0m0.072s
$ time ./hg log -qr "first(keyword(changeset))"
0:
9117c6561b0b
real 0m0.365s
user 0m0.199s
sys 0m0.083s
Lucas Moscovicz <lmoscovicz@fb.com> [Tue, 28 Jan 2014 16:19:30 -0800] rev 20446
revset: changed limit revset implementation to work with lazy revsets
Performance benchmarking:
$ time hg log -qr "first(branch(default))"
0:
9117c6561b0b
real 0m3.130s
user 0m3.025s
sys 0m0.074s
$ time ./hg log -qr "first(branch(default))"
0:
9117c6561b0b
real 0m0.300s
user 0m0.198s
sys 0m0.069s
Lucas Moscovicz <lmoscovicz@fb.com> [Wed, 05 Feb 2014 16:12:03 -0800] rev 20445
revset: added lazyset implementation to branch revset
Performance Benchmarking:
$ time hg log -l1 -qr "branch(default)"
0:
9117c6561b0b
real 0m3.366s
user 0m3.217s
sys 0m0.095s
$ time ./hg log -l1 -qr "branch(default)"
0:
9117c6561b0b
real 0m0.389s
user 0m0.199s
sys 0m0.061s
Simon Heimberg <simohe@besonet.ch> [Tue, 11 Feb 2014 01:15:07 +0100] rev 20444
run-tests: fix typo and print out failing line
Instead of stripping the newline and printing the line, only the newline was
printed.
The output on buildbot will make more sense now.
Lucas Moscovicz <lmoscovicz@fb.com> [Tue, 28 Jan 2014 15:19:14 -0800] rev 20443
revset: changed getset so that it can return a lazyset
Not converting it manually to a baseset anymore. At this point every revset
method should return a baseset typed structure.
Lucas Moscovicz <lmoscovicz@fb.com> [Tue, 11 Feb 2014 09:00:38 -0800] rev 20442
hgext: updated extensions to return a baseset when adding symbols
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 30 Jan 2014 20:22:43 -0800] rev 20441
push: move phases synchronisation function in its own function
Now that every necessary information is held in the `pushoperation` object, we
can finally extract the phase synchronisation phase to it's own function. This
is the first concrete block of code we extract from the huge push function.
Hooray!
This changeset is pure code movement only.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 30 Jan 2014 20:18:26 -0800] rev 20440
push: move outgoing object in the push object
The set of outgoing and common changeset are used by phases to compute the new
common set between local and remote. So we need to move it into the object to
extract the phase sync from the god function.
Note that this information will be used by obsolescence markers too.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 30 Jan 2014 19:43:28 -0800] rev 20439
push: move push return value in the push object
The return code convey information about the success of changeset push. This is
used by phases to compute the new common set between local and remote. So we
need to move it into the object to extract the phase sync from the god
function.
Note that this information will be used by obsolescence markers too.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 30 Jan 2014 20:10:59 -0800] rev 20438
push: move local phase move in a normal function
We now have the modularity for simpler approach `localphasemove`.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 30 Jan 2014 20:09:21 -0800] rev 20437
push: explicitly feed pushop to localphasemove
Now that pushop is holding all the push related data, we do not really need a
closure anymore. So we start feeding the object to `localphasemove` and will
make it a normal function in the next commit.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 30 Jan 2014 20:00:34 -0800] rev 20436
push: move local lock logic in pushoperation
During push, we try to lock the local repo to move local phase according to what
we saw/pushed on the remote repo. Locking the repo may fail, in that case we let
the push proceed without local phase movement (printing warning).
This mean we have code in phase synchronisation that will check if the local repo is
locked or not. we need to move this information in the push object to be able to
extract the phase synchronisation in its own function. This is done as a boolean
because putting reference to the actual lock outside of the main function
sounded a bad idea.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 30 Jan 2014 19:55:09 -0800] rev 20435
push: move obsolescence related message into _pushobsolescence function
No good reason to have them in the main fonction.