Mon, 24 Mar 2014 19:37:59 -0700 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 24 Mar 2014 19:37:59 -0700] rev 20950
bundle2: first crude version of bundling changeset with bundle2 The current changegroup format is put in a "changegroup" part and processed by an appropriate handlers. This is not production ready code, but let us start smoke testing.
Wed, 02 Apr 2014 22:37:50 -0700 bundle2: record processing results in the bundleoperation object
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 02 Apr 2014 22:37:50 -0700] rev 20949
bundle2: record processing results in the bundleoperation object Part handlers can now add records to the `bundleoperation` object. This can be used to help other parts or to let the caller of the unbundling process react to the results.
Wed, 02 Apr 2014 22:24:44 -0700 bundle2: introduce a bundleoperation object
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 02 Apr 2014 22:24:44 -0700] rev 20948
bundle2: introduce a bundleoperation object This object will hold all data and state gathered through the processing of a bundle. This will allow: - each handler to be aware of the things unbundled so far - the caller to retrieve data about the execution - bear useful object and logic (like repo, transaction) - bear possible bundle2 reply triggered by the unbundling. For now the object is very simple but it will grow at the same time as the bundle2 implementation.
Wed, 02 Apr 2014 13:50:57 -0700 bundle2: feed a unbundle20 to the `processbundle` function
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 02 Apr 2014 13:50:57 -0700] rev 20947
bundle2: feed a unbundle20 to the `processbundle` function The unbundle can comes from multiple sources. (on disk file, peer, etc) and (ultimately) of multiple type (bundle10, bundle20). The `processbundle` is no longer in charge of creating the bundle.
Thu, 03 Apr 2014 17:25:47 -0700 bundle2: lock the repo during unbundle test
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 03 Apr 2014 17:25:47 -0700] rev 20946
bundle2: lock the repo during unbundle test We forgot the lock the repo. It's not too bad during tests, but the lock also still carry some transaction logic. (yes we need to get rid of this)
Sun, 02 Mar 2014 18:52:16 +0100 merge: keep destination filename as key in filemerge actions
Mads Kiilerich <madski@unity3d.com> [Sun, 02 Mar 2014 18:52:16 +0100] rev 20945
merge: keep destination filename as key in filemerge actions Gives more readable debug output and makes it possible to compare/merge actions later.
Sun, 02 Mar 2014 18:49:36 +0100 merge: keep destination filename as key in actions for merge with dir rename
Mads Kiilerich <madski@unity3d.com> [Sun, 02 Mar 2014 18:49:36 +0100] rev 20944
merge: keep destination filename as key in actions for merge with dir rename Avoids None: local renamed directory to b/c -> d updating:None 1/1 files (100.00%) and makes it possible to compare/merge actions later.
Fri, 28 Feb 2014 02:38:33 +0100 merge: include ancestor node in merge actions
Mads Kiilerich <madski@unity3d.com> [Fri, 28 Feb 2014 02:38:33 +0100] rev 20943
merge: include ancestor node in merge actions
Fri, 04 Apr 2014 14:01:25 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Fri, 04 Apr 2014 14:01:25 -0500] rev 20942
merge with stable
Fri, 28 Mar 2014 12:51:05 -0500 repoview: use _gethiddenblockers in computehidden
Sean Farley <sean.michael.farley@gmail.com> [Fri, 28 Mar 2014 12:51:05 -0500] rev 20941
repoview: use _gethiddenblockers in computehidden No functionality has changed, since we've only extracted the code into its own function. Now extensions can wrap _gethiddenblockers to provide their own blocker without polluting bookmarks or local tags.
Thu, 03 Apr 2014 20:07:42 -0500 repoview: add _gethiddenblockers method
Sean Farley <sean.michael.farley@gmail.com> [Thu, 03 Apr 2014 20:07:42 -0500] rev 20940
repoview: add _gethiddenblockers method This is a standalone function that will provide the ability for extensions to wrap.
Thu, 27 Mar 2014 20:14:55 -0500 repoview: improve performance for computehidden (issue4206)
Sean Farley <sean.michael.farley@gmail.com> [Thu, 27 Mar 2014 20:14:55 -0500] rev 20939
repoview: improve performance for computehidden (issue4206) For repos with a large number of heads (including hidden heads), a stale tag cache would cause computehidden to be drastically slower because of a the call to repo.tags() (which would build the tag cache). We actually don't need the tag cache for computehidden because we filter out global tags. This patch replaces the call to repo.tags with readlocaltags so as to avoid the tag cache.
Thu, 03 Apr 2014 20:35:56 -0500 tests: remove unused variables from test-pathencode.py caught by pyflakes stable
Sean Farley <sean.michael.farley@gmail.com> [Thu, 03 Apr 2014 20:35:56 -0500] rev 20938
tests: remove unused variables from test-pathencode.py caught by pyflakes
Thu, 03 Apr 2014 20:32:56 -0500 shelve: remove unused variable caught by pyflakes stable
Sean Farley <sean.michael.farley@gmail.com> [Thu, 03 Apr 2014 20:32:56 -0500] rev 20937
shelve: remove unused variable caught by pyflakes
Thu, 03 Apr 2014 20:29:03 -0500 changegroup: remove unused variable caught by pyflakes stable
Sean Farley <sean.michael.farley@gmail.com> [Thu, 03 Apr 2014 20:29:03 -0500] rev 20936
changegroup: remove unused variable caught by pyflakes
Sat, 15 Mar 2014 18:27:51 +0100 hgk: use hg export to write commits
Andrew Shadura <andrew@shadura.me> [Sat, 15 Mar 2014 18:27:51 +0100] rev 20935
hgk: use hg export to write commits Instead of calling internal command, use hg export to produce changeset diffs compatible with hg import directly.
Tue, 25 Mar 2014 22:47:59 +0100 hgk: add .diff extension when exporting commits
Andrew Shadura <andrew@shadura.me> [Tue, 25 Mar 2014 22:47:59 +0100] rev 20934
hgk: add .diff extension when exporting commits Append the .diff extension automatically.
Tue, 01 Apr 2014 15:27:53 -0700 localrepo: move the addchangegroup method in changegroup module
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 01 Apr 2014 15:27:53 -0700] rev 20933
localrepo: move the addchangegroup method in changegroup module This is a gratuitous code move aimed at reducing the localrepo bloatness. The method had few callers, not enough to be kept in local repo.
Tue, 01 Apr 2014 15:21:56 -0700 localrepo: move the addchangegroupfiles method in changegroup module
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 01 Apr 2014 15:21:56 -0700] rev 20932
localrepo: move the addchangegroupfiles method in changegroup module This is a gratuitous code move aimed at reducing the localrepo bloatness. The method had a single caller, far too few for being kept in local repo.
Tue, 01 Apr 2014 15:08:27 -0700 localrepo: move the changegroup method in changegroup module
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 01 Apr 2014 15:08:27 -0700] rev 20931
localrepo: move the changegroup method in changegroup module This is a gratuitous code move aimed at reducing the localrepo bloatness. The method had few callers, not enough to be kept in local repo. The peer API stay unchanged.
Tue, 01 Apr 2014 14:40:35 -0700 localrepo: move the getbundle method in changegroup module
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 01 Apr 2014 14:40:35 -0700] rev 20930
localrepo: move the getbundle method in changegroup module This is a gratuitous code move aimed at reducing the localrepo bloatness. The method had few callers, not enough to be kept in local repo. The peer API remains unchanged.
Thu, 03 Apr 2014 12:59:12 -0500 store: drop unused existing list
Matt Mackall <mpm@selenic.com> [Thu, 03 Apr 2014 12:59:12 -0500] rev 20929
store: drop unused existing list
Tue, 01 Apr 2014 14:33:23 -0700 localrepo: move the getlocalbundle method in changegroup module
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 01 Apr 2014 14:33:23 -0700] rev 20928
localrepo: move the getlocalbundle method in changegroup module This is a gratuitous code move aimed at reducing the localrepo bloatness. The method had 3 callers total, far too few for being kept in local repo.
Tue, 01 Apr 2014 14:25:03 -0700 localrepo: move the changegroupsubset method in changegroup module
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 01 Apr 2014 14:25:03 -0700] rev 20927
localrepo: move the changegroupsubset method in changegroup module This is a gratuitous code move aimed at reducing the localrepo bloatness. The method had few callers, not enough to be kept in local repo. The peer API remains unchanged.
Tue, 01 Apr 2014 14:13:34 -0700 localrepo: move the changegroupinfo method in changegroup module
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 01 Apr 2014 14:13:34 -0700] rev 20926
localrepo: move the changegroupinfo method in changegroup module This is a gratuitous code move aimed at reducing the localrepo bloatness. The method had a single caller... already in this changegroup module.
Tue, 01 Apr 2014 13:59:55 -0700 localrepo: move the _changegroupsubset method in changegroup module
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 01 Apr 2014 13:59:55 -0700] rev 20925
localrepo: move the _changegroupsubset method in changegroup module This is a gratuitous code move aimed at reducing the localrepo bloatness. The method had 3 callers total, far too few for being kept in local repo.
Tue, 01 Apr 2014 13:45:48 -0700 push: pass a `pushoperation` object to localrepo.checkpush
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 01 Apr 2014 13:45:48 -0700] rev 20924
push: pass a `pushoperation` object to localrepo.checkpush The `pushoperation` object contains strictly more data the arguments currently passed to `localrepo.checkpush` we pass the new object instead. This function is used by MQ to abort push that includes MQ changesets. Note: extension that may use this function will have to align.
Fri, 28 Mar 2014 14:43:30 -0700 wireproto: use decorator for the ubundle command
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 28 Mar 2014 14:43:30 -0700] rev 20923
wireproto: use decorator for the ubundle command
Fri, 28 Mar 2014 14:43:11 -0700 wireproto: use decorator for the stream command
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 28 Mar 2014 14:43:11 -0700] rev 20922
wireproto: use decorator for the stream command
Fri, 28 Mar 2014 14:42:55 -0700 wireproto: use decorator for the pushkey command
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 28 Mar 2014 14:42:55 -0700] rev 20921
wireproto: use decorator for the pushkey command
Fri, 28 Mar 2014 14:42:38 -0700 wireproto: use decorator for the lookup command
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 28 Mar 2014 14:42:38 -0700] rev 20920
wireproto: use decorator for the lookup command
Fri, 28 Mar 2014 14:42:21 -0700 wireproto: use decorator for the listkeys command
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 28 Mar 2014 14:42:21 -0700] rev 20919
wireproto: use decorator for the listkeys command
Fri, 28 Mar 2014 14:42:06 -0700 wireproto: use decorator for the known command
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 28 Mar 2014 14:42:06 -0700] rev 20918
wireproto: use decorator for the known command
Fri, 28 Mar 2014 14:40:44 -0700 wireproto: use decorator for the hello command
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 28 Mar 2014 14:40:44 -0700] rev 20917
wireproto: use decorator for the hello command
Fri, 28 Mar 2014 14:40:31 -0700 wireproto: use decorator for the heads command
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 28 Mar 2014 14:40:31 -0700] rev 20916
wireproto: use decorator for the heads command
Fri, 28 Mar 2014 14:40:07 -0700 wireproto: use decorator for the getbundle command
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 28 Mar 2014 14:40:07 -0700] rev 20915
wireproto: use decorator for the getbundle command
Fri, 28 Mar 2014 14:39:06 -0700 wireproto: use decorator for the debugwireargs command
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 28 Mar 2014 14:39:06 -0700] rev 20914
wireproto: use decorator for the debugwireargs command
Fri, 28 Mar 2014 14:38:40 -0700 wireproto: use decorator for the changegroupsubset command
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 28 Mar 2014 14:38:40 -0700] rev 20913
wireproto: use decorator for the changegroupsubset command
Fri, 28 Mar 2014 14:38:19 -0700 wireproto: use decorator for the changegroup command
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 28 Mar 2014 14:38:19 -0700] rev 20912
wireproto: use decorator for the changegroup command
Fri, 28 Mar 2014 14:37:28 -0700 wireproto: use decorator for the capabilities command
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 28 Mar 2014 14:37:28 -0700] rev 20911
wireproto: use decorator for the capabilities command
Fri, 28 Mar 2014 14:37:02 -0700 wireproto: use decorator for the branches command
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 28 Mar 2014 14:37:02 -0700] rev 20910
wireproto: use decorator for the branches command
Fri, 28 Mar 2014 14:36:41 -0700 wireproto: use decorator for the branchmap command
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 28 Mar 2014 14:36:41 -0700] rev 20909
wireproto: use decorator for the branchmap command
Fri, 28 Mar 2014 14:36:05 -0700 wireproto: use decorator for the between command
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 28 Mar 2014 14:36:05 -0700] rev 20908
wireproto: use decorator for the between command
Fri, 28 Mar 2014 14:35:36 -0700 wireproto: use decorator for the batch command
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 28 Mar 2014 14:35:36 -0700] rev 20907
wireproto: use decorator for the batch command
Fri, 28 Mar 2014 14:30:11 -0700 wireproto: add decorator for wire protocol command
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 28 Mar 2014 14:30:11 -0700] rev 20906
wireproto: add decorator for wire protocol command Move move in the same direction we took for command line commands. each wire protocol function will be decorated with its name and arguments. Beside beside easier to read, this open the road to easily adding more metadata (like security level or return type)
Fri, 28 Mar 2014 14:24:13 -0700 wireproto: drop the _decompress method in favor a new call type
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 28 Mar 2014 14:24:13 -0700] rev 20905
wireproto: drop the _decompress method in favor a new call type We already have multiple call function for multiple return type. The `_decompress` function is only used for http and seems like a layer violation. We drop it in favor of a new call type dedicated to "stream that may be useful to compress".
Fri, 28 Mar 2014 12:29:34 -0700 wireproto: document protocol specific function of wirepeer
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 28 Mar 2014 12:29:34 -0700] rev 20904
wireproto: document protocol specific function of wirepeer Those function are explicitly declared and documented now.
Fri, 28 Mar 2014 11:10:33 -0700 wireproto: introduce an abstractserverproto class
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 28 Mar 2014 11:10:33 -0700] rev 20903
wireproto: introduce an abstractserverproto class sshserver and webproto now inherit from an abstractserverproto class. This class is introduced for documentation purpose.
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.
Mon, 24 Mar 2014 17:20:15 -0700 bundle2: read the whole bundle from stream on abort
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 24 Mar 2014 17:20:15 -0700] rev 20892
bundle2: read the whole bundle from stream on abort When the bundle processing abort on unknown mandatory parts, we now makes sure all the bundle content is read. This avoid leaving the communication channel in an unrecoverable state.
Mon, 24 Mar 2014 13:02:02 -0700 bundle2: add some distinction between mandatory and advisory part
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 24 Mar 2014 13:02:02 -0700] rev 20891
bundle2: add some distinction between mandatory and advisory part Mandatory part cannot be ignored when unknown. We raise a simple KeyError exception when this happen. This is very early version of this logic, see inline comment for future improvement lead.
Mon, 24 Mar 2014 15:51:00 -0700 bundle2: introduce a `parthandler` decorator
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 24 Mar 2014 15:51:00 -0700] rev 20890
bundle2: introduce a `parthandler` decorator Simple syntax sugar to register an handler for a new part type.
Mon, 24 Mar 2014 12:25:33 -0700 bundle2: first version of a bundle processing
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 24 Mar 2014 12:25:33 -0700] rev 20889
bundle2: first version of a bundle processing We now have a function that interpret part content. This is a version early version of this function. It'll see major changes in scope and API in future development. As for previous I'm just focussing on getting minimal logic setup. Refining will happen with real world usage.
Mon, 24 Mar 2014 11:27:00 -0700 bundle2: rename unbundle2 test command to statbundle2
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 24 Mar 2014 11:27:00 -0700] rev 20888
bundle2: rename unbundle2 test command to statbundle2 We will introduce object to actually process the bundle, we need to keep the simplistic unbundle around for the test.
Tue, 01 Apr 2014 00:08:15 -0700 bundle2: safely read unpack data from part header
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 01 Apr 2014 00:08:15 -0700] rev 20887
bundle2: safely read unpack data from part header We use the same approach that the other unpack, as function is given the struct format and his both responsible for reading the right amount of data from the header and unpack the struct. This give use flexibility if we decide to change the size of something in the format before the release.
Wed, 02 Apr 2014 13:41:23 -0500 transaction: drop extra import caught by pyflakes
Matt Mackall <mpm@selenic.com> [Wed, 02 Apr 2014 13:41:23 -0500] rev 20886
transaction: drop extra import caught by pyflakes
Mon, 24 Mar 2014 15:43:15 -0700 fncache: clean up fncache during strips
Durham Goode <durham@fb.com> [Mon, 24 Mar 2014 15:43:15 -0700] rev 20885
fncache: clean up fncache during strips Previously the fncache was cleaned up at read time by noticing when it was out of sync. This caused writes to happen outside the scope of transactions and could have caused race conditions. With this change, we'll keep the fncache up-to-date as we go by removing old entries during repair.strip.
Mon, 24 Mar 2014 15:35:07 -0700 caches: invalidate store caches when lock is taken
Durham Goode <durham@fb.com> [Mon, 24 Mar 2014 15:35:07 -0700] rev 20884
caches: invalidate store caches when lock is taken The fncache was not being properly invalidated each time the lock was taken, so in theory it could contain old data from prior to the caller having the lock. This changes it to be invalidated as soon as the lock is taken (same as all our other caches).
Mon, 24 Mar 2014 15:42:13 -0700 fncache: move fncache writing to be in a transaction
Durham Goode <durham@fb.com> [Mon, 24 Mar 2014 15:42:13 -0700] rev 20883
fncache: move fncache writing to be in a transaction Previously the fncache was written at lock.release time. This meant it was not tracked by a transaction, and if an error occurred during the fncache write it would fail to update the fncache, but would not rollback the transaction, resulting in an fncache that was not in sync with the files on disk (which causes verify to fail, and causes streaming clones to not copy all the revlogs). This uses the new transaction backup mechanism to make the fncache transacted. It also moves the fncache from being written at lock.release time, to being written at transaction.close time.
Mon, 24 Mar 2014 15:21:51 -0700 transaction: add support for non-append files
Durham Goode <durham@fb.com> [Mon, 24 Mar 2014 15:21:51 -0700] rev 20882
transaction: add support for non-append files This adds support for normal, non-append-only files in transactions. For example, .hg/store/fncache and .hg/store/phaseroots should be written as part of the transaction, but are not append only files. This adds a journal.backupfiles along side the normal journal. This tracks which files have been backed up as part of the transaction. transaction.addbackup() creates a backup of the file (using a hardlink), which is later used to recover in the event of the transaction failing. Using a seperate journal allows the repository to still be used by older versions of Mercurial. A future patch will use this functionality and add tests for it.
Mon, 24 Mar 2014 15:57:47 -0700 transaction: add onclose/onabort hook for pre-close logic
Durham Goode <durham@fb.com> [Mon, 24 Mar 2014 15:57:47 -0700] rev 20881
transaction: add onclose/onabort hook for pre-close logic Adds an optional onclose parameter to transactions that gets called just before the transaction is committed. This allows things that build up data over the course of the transaction (like the fncache) to commit their data. Also adds onabort. It's not used, but will allow extensions to hook into onclose and onabort to provide transaction support.
Mon, 24 Mar 2014 15:38:20 -0700 clone: put streaming clones in a transaction
Durham Goode <durham@fb.com> [Mon, 24 Mar 2014 15:38:20 -0700] rev 20880
clone: put streaming clones in a transaction Streaming clones were writing to files outside of a transaction. Soon the fncache will be written at transaction close time, so we need streaming clones to be in a transaction.
Mon, 24 Mar 2014 15:31:47 -0700 fncache: remove the rewriting logic
Durham Goode <durham@fb.com> [Mon, 24 Mar 2014 15:31:47 -0700] rev 20879
fncache: remove the rewriting logic The fncache could rewrite itself during a read operation if it noticed any entries that were no longer on disk. This was problematic because it caused Mercurial to perform write operations outside the scope of a lock or transaction, which could interefere with any other pending writes. This will be replaced in a future patch by logic that cleans up the fncache as files are deleted during strips.
Wed, 26 Mar 2014 15:55:32 -0700 pull: prevent duplicated entry in `op.pulledsubset`
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 26 Mar 2014 15:55:32 -0700] rev 20878
pull: prevent duplicated entry in `op.pulledsubset` In the bare pull case we could add the same node multiple time to the `pulloperation.pulledsubset`. Beside being a bit wrong this confused the new revset implementation of `revset._revancestor` into giving bad result. This changeset fix the pull operation part. The fix for the revset itself will come in another changeset.
Thu, 20 Mar 2014 01:24:45 -0700 bundle2: part params
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 20 Mar 2014 01:24:45 -0700] rev 20877
bundle2: part params
Wed, 19 Mar 2014 23:36:15 -0700 bundle2: support for bundling and unbundling payload
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 19 Mar 2014 23:36:15 -0700] rev 20876
bundle2: support for bundling and unbundling payload We add the ability to bundle and unbundle a payload in parts. The payload is the actual binary data of the part. It is used to convey all the applicative data. For now we stick to very simple implementation with all the data fit in single chunk. This open the door to some bundle2 testing usage. This will be improved before bundle2 get used for real. We need to be able to stream the payload in multiple part to exchange any changegroup efficiently. This simple version will do for now. Bundling and unbundling are done in the same changeset because the test for parts is less modular. However, the result is not too complex.
Tue, 01 Apr 2014 17:59:06 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 01 Apr 2014 17:59:06 -0500] rev 20875
merge with stable
Tue, 01 Apr 2014 17:57:04 -0500 Added signature for changeset 3f83fc5cfe71 stable
Matt Mackall <mpm@selenic.com> [Tue, 01 Apr 2014 17:57:04 -0500] rev 20874
Added signature for changeset 3f83fc5cfe71
Tue, 01 Apr 2014 17:56:55 -0500 Added tag 2.9.2 for changeset 3f83fc5cfe71 stable
Matt Mackall <mpm@selenic.com> [Tue, 01 Apr 2014 17:56:55 -0500] rev 20873
Added tag 2.9.2 for changeset 3f83fc5cfe71
Sat, 08 Mar 2014 18:52:16 +0900 backout: correct commit status of no changes made (BC) (issue4190) stable 2.9.2
Yuya Nishihara <yuya@tcha.org> [Sat, 08 Mar 2014 18:52:16 +0900] rev 20872
backout: correct commit status of no changes made (BC) (issue4190) If backout generated no changes to commit, it showed wrong status, "changeset <target> backs out changeset <target>", and raised TypeError with -v option. This changes the return code to 1, which is the same as "hg commit" and "hg rebase".
Sat, 08 Mar 2014 18:41:56 +0900 backout: document return code of merge conflict stable
Yuya Nishihara <yuya@tcha.org> [Sat, 08 Mar 2014 18:41:56 +0900] rev 20871
backout: document return code of merge conflict
Tue, 01 Apr 2014 15:11:19 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 01 Apr 2014 15:11:19 -0500] rev 20870
merge with stable
Tue, 01 Apr 2014 02:46:03 +0900 i18n: fix "% inside _()" problems stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 01 Apr 2014 02:46:03 +0900] rev 20869
i18n: fix "% inside _()" problems Before this patch, "contrib/check-code.py" can't detect these problems, because the regexp pattern to detect "% inside _()" doesn't suppose the case that format string consists of multiple string components concatenated implicitly or explicitly, This patch does below for that regexp pattern to detect "% inside _()" problems in such case. - put "+" into separator part ("[ \t\n]") for explicit concatenation ("...." + "...." style) - enclose "component and separator" part by "(?:....)+" for concatenation itself ("...." "...." or "...." + "....")
Tue, 01 Apr 2014 02:46:03 +0900 i18n: fix "% inside _()" problems stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 01 Apr 2014 02:46:03 +0900] rev 20868
i18n: fix "% inside _()" problems Before this patch, "contrib/check-code.py" can't detect these problems, because the regexp pattern to detect "% inside _()" doesn't suppose the case that the format string and "%" aren't placed in the same line. This patch replaces "\s" in that regexp pattern with "[ \t\n]" to detect "% inside _()" problems in such case. "[\s\n]" can't be used in this purpose, because "\s" is automatically replaced with "[ \t]" by "_preparepats()" and "\s" in "[]" causes nested "[]" unexpectedly.
Tue, 01 Apr 2014 02:46:03 +0900 merge: fix lack of "%s" in format string causing TypeError at runtime stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 01 Apr 2014 02:46:03 +0900] rev 20867
merge: fix lack of "%s" in format string causing TypeError at runtime
Tue, 01 Apr 2014 13:27:12 -0300 i18n-pt_BR: synchronized with c57c9cece645 stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Tue, 01 Apr 2014 13:27:12 -0300] rev 20866
i18n-pt_BR: synchronized with c57c9cece645
Mon, 31 Mar 2014 21:03:39 +0900 i18n-ja: synchronized with e259d4c462b5 stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 31 Mar 2014 21:03:39 +0900] rev 20865
i18n-ja: synchronized with e259d4c462b5
Wed, 19 Mar 2014 23:04:03 -0700 bundle2: support unbundling empty part
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 19 Mar 2014 23:04:03 -0700] rev 20864
bundle2: support unbundling empty part We augment the unbundler to make it able to unbundle the empty part we are now able to bundle.
Fri, 28 Mar 2014 17:00:13 -0700 revset: raise ValueError when calling min or max on empty smartset
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 28 Mar 2014 17:00:13 -0700] rev 20863
revset: raise ValueError when calling min or max on empty smartset min([]) raise a ValueError, we do the same thing in smartset.min() and smartset.max() for the sake of consistency. The min/amax test are greatly improved in the process to prevent this familly of regression
Thu, 20 Mar 2014 18:44:25 -0700 revpair: smartset compatibility
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 20 Mar 2014 18:44:25 -0700] rev 20862
revpair: smartset compatibility Since recent revset changes, revrange now return a smartset. This smart set probably does not support indexing (_addset does not). This led to crash. Instead when the smartset is ordered we use the `min` and `max` method of smart set. Otherwise we turn is into a list and use indexing on it. The tests have been updated to catch such regression.
Fri, 28 Mar 2014 16:12:05 -0700 revsetbenchmark: add entry for ::rev::
Gregory Szorc <gregory.szorc@gmail.com> [Fri, 28 Mar 2014 16:12:05 -0700] rev 20861
revsetbenchmark: add entry for ::rev:: Revsets of the form ::rev:: were identified as the source behind the regressions in issue 4201. Ensure we have explicit coverage of that revset.
Mon, 31 Mar 2014 10:12:07 -0500 merge with stable
Kevin Bullock <kbullock@ringworld.org> [Mon, 31 Mar 2014 10:12:07 -0500] rev 20860
merge with stable This should correct an earlier couple of bad merges (5433856b2558 and 596960a4ad0d, now pruned) that accidentally brought in a change that had been marked obsolete (244ac996a821).
Fri, 28 Mar 2014 14:33:27 -0500 tests: use TESTTMP instead of TESTDIR stable
Sean Farley <sean.michael.farley@gmail.com> [Fri, 28 Mar 2014 14:33:27 -0500] rev 20859
tests: use TESTTMP instead of TESTDIR In 57d0c8c3b947, f042d4b263f4, 1e686e55780c, and 5d22cadd1938, new tests were added that used TESTDIR instead of TESTTMP thereby leading to polluting the working directory with these temporary files. Now, we use TESTTMP so that they will be cleaned up properly.
Sat, 29 Mar 2014 01:20:07 +0900 hg: introduce "wirepeersetupfuncs" to setup wire peer by extensions (issue4109) stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 29 Mar 2014 01:20:07 +0900] rev 20858
hg: introduce "wirepeersetupfuncs" to setup wire peer by extensions (issue4109) Since changeset 6f72e7d28b35, "reposetup()" of each extensions is invoked only on repositories enabling corresponded extensions. This causes that largefiles specific interactions between the repository enabling largefiles locally and remote (wire) peer fail, because there is no way to know whether largefiles is enabled on the remote repository behind the wire peer, and largefiles specific "wireproto functions" are not given to any wire peers. To avoid this problem, largefiles should be enabled in wider scope than each repositories (e.g. user-wide "${HOME}/.hgrc"). This patch introduces "wirepeersetupfuncs" to setup wire peer by extensions already enabled. Functions registered into "wirepeersetupfuncs" are invoked for all wire peers. This patch uses plain list instead of "util.hooks" for "wirepeersetupfuncs", because the former allows to control order of function invocation by order of extension enabling: it may be useful for workaround of problems with combination of enabled extensions
Thu, 27 Mar 2014 17:21:27 -0500 templater: raise error for unknown func stable
Sean Farley <sean.michael.farley@gmail.com> [Thu, 27 Mar 2014 17:21:27 -0500] rev 20857
templater: raise error for unknown func Previously, if a template '{foo()}' was given, the buildfunc would not be able to match it and hit a code path that would not return so it would error out later in the templater stating that NoneType was not iterable. This patch makes sure that a proper error is raised so that the user can be informed. Tests have been updated.
Tue, 18 Mar 2014 14:29:33 -0700 bundle2: support bundling of empty part (with a type)
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 18 Mar 2014 14:29:33 -0700] rev 20856
bundle2: support bundling of empty part (with a type) Here start the work on bundle2 parts. Our first step is to be able to bundle a simplistic part that just have a type, no parameters, empty payload.
Wed, 26 Mar 2014 18:51:49 -0700 revsetbenchmark: add a summary at the end of execution
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 26 Mar 2014 18:51:49 -0700] rev 20855
revsetbenchmark: add a summary at the end of execution The summary list timing per revset making it much more easier to compare revision to each other.
(0) -10000 -3000 -1000 -300 -100 -96 +96 +100 +300 +1000 +3000 +10000 +30000 tip