Fri, 28 Mar 2014 11:37:42 -0700 wireproto: document possible return type
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 28 Mar 2014 11:37:42 -0700] rev 20902
wireproto: document possible return type The wireprotocole command use a small set of class as return value. We document the meaning of each of them. AS my knowledge of wire protocol is fairly shallow, the documentation can probably use improvement. But this is a better than nothing.
Tue, 01 Apr 2014 18:56:19 -0700 pull: add a set of steps that remain to be done during the pull
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 01 Apr 2014 18:56:19 -0700] rev 20901
pull: add a set of steps that remain to be done during the pull With bundle2 we'll slowly move current steps into a single bundle2 building and call (changegroup, phases, obsmarkers, bookmarks). But we need to keep the old methods around for servers that do not support bundle2. So we introduce this set of steps that remains to be done.
Tue, 01 Apr 2014 17:35:25 -0700 pull: put discovery step in its own function
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 01 Apr 2014 17:35:25 -0700] rev 20900
pull: put discovery step in its own function The discovery is a full step that will grow to contain more than changesets. We set it in its own function like all other steps.
Tue, 01 Apr 2014 17:28:21 -0700 pull: move the cgresult logic in _pullchangeset
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 01 Apr 2014 17:28:21 -0700] rev 20899
pull: move the cgresult logic in _pullchangeset Logical follow up of the previous changeset. The `_pullchangeset` is now responsible of setting the `pullop.cgresult`.
Tue, 01 Apr 2014 17:21:52 -0700 pull: move return code in the pull operation object
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 01 Apr 2014 17:21:52 -0700] rev 20898
pull: move return code in the pull operation object With bundle2 we'll have multiple code path susceptible to be responsible for adding changeset during the pull. We move it to the pull operation to simplify this the coming logic. The one doing the adding the changegroup will set the value.
Tue, 25 Feb 2014 20:30:08 +0100 merge: use ancestor filename from planning phase instead of filectx ancestor
Mads Kiilerich <madski@unity3d.com> [Tue, 25 Feb 2014 20:30:08 +0100] rev 20897
merge: use ancestor filename from planning phase instead of filectx ancestor test-merge-types.t changes a bit in flag merging. It relied on the implementation detail that 100% identical revlog entries are reused. The revlog reuse did that fctx.ancestor() saw an ancestor where there really not was one.
Wed, 02 Apr 2014 00:01:21 -0700 tests: prevent test-hup from hanging forever if the transaction does not start
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 02 Apr 2014 00:01:21 -0700] rev 20896
tests: prevent test-hup from hanging forever if the transaction does not start If the transaction fails to start because of some programing errors, the test would stay stuck in this while loop forever. We now added a basic safeguard that abort the loop if nothing happen in 10 seconds. 10 seconds sounds enough to let the server catch up and open a transaction.
Mon, 31 Mar 2014 16:03:34 -0700 revset: improve roots revset performance
Durham Goode <durham@fb.com> [Mon, 31 Mar 2014 16:03:34 -0700] rev 20895
revset: improve roots revset performance Previously we would iterate over every item in the subset, checking if it was in the provided args. This often meant iterating over every rev in the repo. Now we iterate over the args provided, checking if they exist in the subset. On a large repo this brings setting phase boundaries (which use this revset roots(X:: - X::Y)) down from 0.8 seconds to 0.4 seconds. The "roots((tip~100::) - (tip~100::tip))" revset in revsetbenchmarks shows it going from 0.12s to 0.10s, so we should be able to catch regressions here in the future. This actually introduces a regression in 'roots(all())' (0.2s to 0.26s) since we're now using spansets, which are slightly slower to do containment checks on. I believe this trade off is worth it, since it makes the revset O(number of args) instead of O(size of repo).
Tue, 25 Mar 2014 14:10:01 -0700 revset: improve _descendants performance
Durham Goode <durham@fb.com> [Tue, 25 Mar 2014 14:10:01 -0700] rev 20894
revset: improve _descendants performance Previously revset._descendants would iterate over the entire subset (which is often the entire repo) and test if each rev was in the descendants list. This is really slow on large repos (3+ seconds). Now we iterate over the descendants and test if they're in the subset. This affects advancing and retracting the phase boundary (3.5 seconds down to 0.8 seconds, which is even faster than it was in 2.9). Also affects commands that move the phase boundary (commit and rebase, presumably). The new revsetbenchmark indicates an improvement from 0.2 to 0.12 seconds. So future revset changes should be able to notice regressions. I removed a bad test. It was recently added and tested '1:: and reverse(all())', which has an amibiguous output direction. Previously it printed in reverse order, because we iterated over the subset (the reverse part). Now it prints in normal order because we iterate over the 1:: . Since the revset itself doesn't imply an order, I removed the test.
Mon, 31 Mar 2014 16:29:39 -0700 revsetbenchmark: remove python 2.7 dependency
Durham Goode <durham@fb.com> [Mon, 31 Mar 2014 16:29:39 -0700] rev 20893
revsetbenchmark: remove python 2.7 dependency revsetbenchmark.py used check_output which only exists in python 2.7. This fixes it.
(0) -10000 -3000 -1000 -300 -100 -10 +10 +100 +300 +1000 +3000 +10000 +30000 tip