Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 21:23:46 -0800] rev 850
exchange: add test case for D.3
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 21:23:42 -0800] rev 849
exchange: add test case for D.2
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 21:23:36 -0800] rev 848
exchange: add test case for D.1
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 20:48:06 -0800] rev 847
exchange: add test case for C.4
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 20:42:21 -0800] rev 846
exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 20:39:50 -0800] rev 845
exchange: add test case for C.2
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 20:36:47 -0800] rev 844
exchange: add test case for C.1
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 20:28:03 -0800] rev 843
exchange: add test case for B.7
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 20:21:27 -0800] rev 842
exchange: add test case for B.6
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 20:09:27 -0800] rev 841
exchange: add test case for B.5
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 20:00:45 -0800] rev 840
exchange: add test case for B.4
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 19:51:18 -0800] rev 839
exchange: add test case for B.3
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 19:39:20 -0800] rev 838
exchange: add test case for B.2
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 19:33:00 -0800] rev 837
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 18:51:54 -0800] rev 836
exchange: add test case for A.7
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 15:31:39 -0800] rev 835
exchange: add test case for A.6
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 15:21:01 -0800] rev 834
exchange: add test case for A.5
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 15:14:48 -0800] rev 833
exchange: add test case for A.4
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 14:59:43 -0800] rev 832
exchange: add test case for A.3
Allow arbitrary arguments to dotest. This allow to push --force when the push
creates more heads.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 14:03:41 -0800] rev 831
exchange: automate the testing process too
we now have: dotest TESTNAME [TARGETNODE]
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 13:27:53 -0800] rev 830
exchange: have a function doing all the common initial setup
This will help creation of further test.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 13:12:50 -0800] rev 829
exchance: add a common setup script for all test
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 28 Feb 2014 16:36:37 -0800] rev 828
exchange: add test case for A.2
Testcase defined here: http://mercurial.selenic.com/wiki/ObsolescenceMarkersExchange
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 28 Feb 2014 16:21:22 -0800] rev 827
exchange: add test case for A.1
Testcase defined here: http://mercurial.selenic.com/wiki/ObsolescenceMarkersExchange
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 28 Feb 2014 13:45:59 -0800] rev 826
exchange: add the pullmarker wireproto command to simple4server
This will allow simple server side support.
(yes, code duplication is bad I already told you I won't do it too much mom)
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 28 Feb 2014 13:44:37 -0800] rev 825
exchange: extract computation of pulled markers boundary in a function
I expect massive experimentation on this specific aspect. so we better isolate
it.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 28 Feb 2014 13:38:19 -0800] rev 824
exchange: pull markers relevant to the pulled subset only
With the command recently introduced we can select to pull only markers relevant
to some nodes. We are now pull all markers for all node in the relevant subset.
We'll try to pull less (just markers for node where local and remote marker
diverge) later, but we need some marker discovery mechanism for that. which are
not easy.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 28 Feb 2014 13:25:34 -0800] rev 823
exchange: add a new method to pull markers
It has both local and wire protocol implementation. This command does not
requires escaping of the marker and are expecting to me highly faster than the
pushkey method.
The other main point is that command is to accept a `heads` and `common`
argument to select to pull changeset only relevant to a set a of node.
We are not using this capability yet but we'll do it soon
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 28 Feb 2014 00:55:34 -0800] rev 822
exchange: add the pushmarker wireproto command to simple4server
This will allow simple server side support.
(yes, code duplication is bad, I won't do it too much mom)
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 28 Feb 2014 00:40:29 -0800] rev 821
exchange: introduce a wireprotocol command to push markers
Pushkey is not adapted to transmit a stream of binary data. We used it as a hack
so far. We add a new wire protocol command to speed the things up (and also push
all the markers in a single transaction). The proper way to do it is to
introduce bundle2 in core, but this will already help in the mean time.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 28 Feb 2014 10:30:10 -0800] rev 820
exchange: actually use _pushkeyescape fallback
The code was still calling `obsolete._pushkeyescape` therefore never calling the
fallback we defined. Now that we call it, it had to be fixed to actually work
too.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 19:28:43 -0800] rev 819
merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 19:27:42 -0800] rev 818
prune: accept '0 0' as a valide --date value
I 've no idea why 4c0f6d555032 introduced it with this check.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 27 Feb 2014 19:58:08 -0800] rev 817
exchange: only push the set of marker relevant to want we push
We now compute all markers relevant to pushed set. And just send just those one.
So you are no longer pushing markers that point to changeset your are not
pushing. See the in line comment for details about what "relevant" is.
Multiple nice output have been added in the process.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 27 Feb 2014 18:30:55 -0800] rev 816
evolve: add relevant marker exchange machinery
This is going to be needed for obsolescence marker exchange.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 27 Feb 2014 17:20:34 -0800] rev 815
fastobs: rename var from `node` to `rev`
It contains revision (from repo.revs not node).
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 27 Feb 2014 17:11:09 -0800] rev 814
fastobs: move the extension to the hgext dir
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 26 Feb 2014 15:25:33 -0800] rev 813
test-prune: update test with a prune output compatible with newest hg
Newest hg can record the parent information in the marker. This change the
debugobsstorestate output a lot.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 25 Feb 2014 11:14:37 -0800] rev 812
drophack: major speedup to marker stripping
It appear that each call to obsstore.add have a significant overhead (in
particular the creation of a set form the list of markers and file system
operation to the obsstore file.
We now compute the marker we need to store and write them in a single call.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 24 Feb 2014 19:01:12 -0800] rev 811
evolve: add a cmddebugrecordpruneparents command
This command can be used to create prune marker with parent information from
prune marker on changeset known locally.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 24 Feb 2014 17:44:12 -0800] rev 810
debugobsstorestat: add test for pruning
There is multiple prune specific code in this command. So we test it in the
presence of prun marker too.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 24 Feb 2014 17:32:09 -0800] rev 809
debugobsstorestat: add information about cluster
We now display information about independant osolescence markers clusters.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 24 Feb 2014 19:00:04 -0800] rev 808
evolve: fix creation of prunedchildren for merge
The `p2` code path was broken. (stupid typo)
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 20 Feb 2014 13:59:49 -0800] rev 807
evolve: add a debugobsstorestat command
This commands print multiple some data about the content of the obsstore. This
will be usefull to provide some metric and insight for obsolescence marker
exchange.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 19 Feb 2014 17:27:45 -0800] rev 806
evolve: extend obsstore object to use prune parent information
Now that we have the information, we can use it to build a mapping to access all
marker that prune a children of a node. This is similar to what we do for
successors and precursors.
The performance impact is a few tens of second on my mercurial clone.
Experimenting is worth the trouble.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 13 Feb 2014 18:09:54 -0800] rev 805
prune: wrap mercurial internal to add parent information in prune marker
We store as a p1 (and p2) key in the extra dict for marker. This allow us to
record this information for future use without requiering a format change.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 19 Feb 2014 18:14:20 -0800] rev 804
evolve: drop `latercomer` and `conflicting` compatibility.
Those old alias are deprecated for a long time now. All computations related to
troubles are in Mercurial core for multiple versions.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 20 Feb 2014 13:32:04 -0800] rev 803
test: get rid of all reference to conflicting changesets
They are now called divergent for a long time.