Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 12 Mar 2014 12:44:33 -0700] rev 882
simple4server: option to advertise obsolescence support
We had an option to control the advertising of the obsolescence markers support
from the server. The goal of this option is to allow large scale repo hosting
service to control the use of obsolescence markers exchange.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 10 Mar 2014 19:47:24 -0700] rev 881
export: add test for simple4server
We now officially test it over http
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 10 Mar 2014 21:57:41 -0700] rev 880
exchange: fix push markers over wire protocol for http peer
Http actually interpret the data passed to _callpush expecting them to a bundle.
Interpretation of a markers stream as a bundle obviously led to crash.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 10 Mar 2014 21:55:41 -0700] rev 879
exchange: expose length of pushed markers
http wireprotocol will need it.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 10 Mar 2014 22:09:26 -0700] rev 878
simple4server: update "from <changeset>" statement
Could obviously not do it in the same changeset than the original changes.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 10 Mar 2014 21:35:54 -0700] rev 877
exchange: fix changeset pulling over http
http compress its stream. The were building a bogus stream where the first 10
bytes where uncompressed. Confusing the client.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 10 Mar 2014 22:08:21 -0700] rev 876
simple4server: update "from <changeset>" statement
Could obviously not do it in the same changeset than the original changes.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 10 Mar 2014 21:34:36 -0700] rev 875
exchange: properly wrap wireprotocol capabilities
Just wrapping the module function only works for ssh. Ssh gets capability
through the `hello` command. We also need to wrap the function stored in the
command dict. This fix discovery for http peer.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 10 Mar 2014 17:40:38 -0700] rev 874
simple4server: add origin and documentation to most function
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 10 Mar 2014 16:54:08 -0700] rev 873
evolve: add 2.9.1 compatibility seal to simple4server
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 10 Mar 2014 16:52:46 -0700] rev 872
simple4server: fix a missing import
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 10 Mar 2014 16:27:21 -0700] rev 871
evolve: update version compatibility error message
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 07 Mar 2014 14:46:45 -0800] rev 870
exchange: fix pull over wire protocol
Actually hand pulled obsolescence markers to the pull logic.
In the wire protocol case we did not reset the position of the file pointer
after writing the pulled data. This lead the pull logic to thing that no markers
were send at all.
This changeset fix this client side bug.
(apparently no test check both markers pulling and wireprotocol)
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 06 Mar 2014 12:15:04 -0800] rev 869
exchange: enforce permission on new wireprotocol command
hgweb needs an explicit declaration of the permission level of each commands.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 05 Mar 2014 19:08:58 -0800] rev 868
merge stable
André Sintzoff <andre.sintzoff@gmail.com> [Sun, 02 Mar 2014 15:19:31 +0100] rev 867
evolve: fix typos in uncommit docstring
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 05 Mar 2014 15:21:21 -0800] rev 866
simple4server: add the wireproto command for obsolescence markers discovery
This come with its usual train of duplicated utility.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 05 Mar 2014 15:14:40 -0800] rev 865
discovery: use the discovery process for pull
Wow! Such speed! Much functional! Very proof on concept implementation!
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 05 Mar 2014 15:09:07 -0800] rev 864
discovery: implement a discovery process and use it for push
Much faster! So functional! Very proof on concept implementation! Wow!
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 05 Mar 2014 16:58:56 -0800] rev 863
discovery: first version of the "hash tree" idea
We build a hash for each node based on the markers that applies to it and the
hash of its parent. This will allow a kind of discovery process for markers.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 04 Mar 2014 11:34:38 -0800] rev 862
evolve: update changelog with recent advance
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 04 Mar 2014 11:31:11 -0800] rev 861
merged 3.3 release into default
Some of the default content was released in 3.3.0 the other ones are moved to
3.4
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 04 Mar 2014 11:14:24 -0800] rev 860
Added tag 3.3.0 for changeset 83882f2fbecb
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 04 Mar 2014 11:14:15 -0800] rev 859
prepare 3.3.0 release
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 19 Feb 2014 18:14:20 -0800] rev 858
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> [Wed, 19 Feb 2014 18:03:13 -0800] rev 857
evolve: use flag value from core for bumped fix
This flag is available from core for a long time, lets use it directly from
there.
This commit intend to cleanup old stuff from the evolve extention.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 20 Feb 2014 13:32:04 -0800] rev 856
test: get rid of all reference to conflicting changesets
They are now called divergent for a long time.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 04 Mar 2014 11:02:42 -0800] rev 855
merge various improvement to stable
We want a good stable state before starting massive changes in default for
obsolescence marker update.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 22:46:46 -0800] rev 854
exchange: add progress bar when pushing using wire protocol command
Progress bar on pull was only available for pushkey based push before this
changeset. This implementation is very hacky but we are still at a proof of
concept stage for those new exchange method.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 22:18:05 -0800] rev 853
exchange: add progress bar when pulling using wire protocol command
progress bar on pull was only available for pushkey based pull before this
changeset.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 21:37:18 -0800] rev 852
exchange: fix pulling from simple for server
There is far too much code duplication down there.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 21:23:52 -0800] rev 851
exchange: add test case for D.4
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.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 19 Feb 2014 18:03:13 -0800] rev 802
evolve: use flag value from core for bumped fix
This flag is available from core for a long time, lets use it directly from
there.
This commit intend to cleanup old stuff from the evolve extention.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 20 Feb 2014 12:56:57 -0800] rev 801
importing fastop extension in this repo
This repo is dedicated to experimentation on mutable history topic. Fastop is
appropriate there.
Augie Fackler <raf@durin42.com> [Wed, 19 Feb 2014 15:31:00 -0500] rev 800
fastobs: revset refactor related fixes
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 18 Feb 2014 15:32:31 -0800] rev 799
adapt fastopt extension to mercurial.exchange module
The push code have changed to be more modular. the fastop extension need to be
rewritten. No backward compatibility preserved for mercurial <=2.9x.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 18 Feb 2014 15:30:54 -0800] rev 798
drop unused function `pushmarkerwrapper`
I can find any user for this function.
Augie Fackler <raf@durin42.com> [Sat, 16 Nov 2013 20:44:44 -0500] rev 797
Add initial test.
Augie Fackler <raf@durin42.com> [Sat, 16 Nov 2013 20:44:37 -0500] rev 796
Deduplicate markers. Depends on __hash__ and __eq__ on obsolete.marker
Augie Fackler <raf@durin42.com> [Sat, 16 Nov 2013 20:43:44 -0500] rev 795
copy precursor revset from evolve so we don't depend on involve
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 03 Sep 2013 21:46:50 +0200] rev 794
fastobs: details strategies in the main help
Augie Fackler <raf@durin42.com> [Fri, 26 Jul 2013 21:35:56 -0400] rev 793
fastobs: fix a bunch of stupid errors that prevented it from working at all
Augie Fackler <raf@durin42.com> [Fri, 26 Jul 2013 16:08:56 -0400] rev 792
fastobs: clean up logging a little
Augie Fackler <raf@durin42.com> [Fri, 26 Jul 2013 16:04:40 -0400] rev 791
fastobs: first commit of an extension to test obsolete marker exchange methods
This currently implements the "fill in the box" approach discussed at
the 2.6 sprint, which seems to handle common cases correctly with
significantly less data transferred.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 12 Feb 2014 17:18:50 -0800] rev 790
drophack: add a new drop hack extension for Matt Mackall usage
This extension is hacky and not intended for real world usage. See documentation
for details.
Sean Farley <sean.michael.farley@gmail.com> [Tue, 11 Feb 2014 00:02:18 -0600] rev 789
prune: add biject option
This option allows two ranges to be given for successors and precursors such
that there is a one-to-one match between each range.
Test coverage has been added.
Simon Heimberg <simohe@besonet.ch> [Fri, 07 Feb 2014 09:36:42 +0100] rev 788
evolve: register a summary hook instead of wrapping the summary command
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 22 Jan 2014 14:30:45 -0800] rev 787
merge stable into default.