Thu, 22 Sep 2016 17:48:46 +0900 dagop: yield intro filectx by filectxancestors()
Yuya Nishihara <yuya@tcha.org> [Thu, 22 Sep 2016 17:48:46 +0900] rev 35281
dagop: yield intro filectx by filectxancestors() This is the convention of dagop.*ancestors() functions.
Sun, 22 Oct 2017 17:23:34 +0900 filectx: extract helper method to obtain filectx pointing to its introrev
Yuya Nishihara <yuya@tcha.org> [Sun, 22 Oct 2017 17:23:34 +0900] rev 35280
filectx: extract helper method to obtain filectx pointing to its introrev
Thu, 22 Sep 2016 17:16:53 +0900 dagop: copy basefilectx.ancestors() to free function
Yuya Nishihara <yuya@tcha.org> [Thu, 22 Sep 2016 17:16:53 +0900] rev 35279
dagop: copy basefilectx.ancestors() to free function The primary goal of this series is to make follow() support multiple start revisions. dagop.filectxancestors() will be extended to take multiple filectxs. basefilectx.ancestors() is not forwarded to this function because doing that would resurrect the performance issue fixed by 24b57c3899f8.
Thu, 22 Sep 2016 15:52:09 +0900 test-log: test that fctx.ancestors() can't index parents only by linkrev
Yuya Nishihara <yuya@tcha.org> [Thu, 22 Sep 2016 15:52:09 +0900] rev 35278
test-log: test that fctx.ancestors() can't index parents only by linkrev This covers a possible bug that could be caused by the following change: --- a/mercurial/context.py +++ b/mercurial/context.py @@ -1047,7 +1047,7 @@ class basefilectx(object): while True: for parent in c.parents()[:cut]: - visit[(parent.linkrev(), parent.filenode())] = parent + visit[parent.linkrev()] = parent if not visit: break c = visit.pop(max(visit))
Tue, 17 Oct 2017 15:27:22 +0200 pull: retrieve bookmarks through the binary part when possible
Boris Feld <boris.feld@octobus.net> [Tue, 17 Oct 2017 15:27:22 +0200] rev 35277
pull: retrieve bookmarks through the binary part when possible This makes pull consistent with the part used by push and provide us with a more compact representation of bookmarks. In addition, this opens the way for smarter bookmark exchanges (e.g. filtering by names or only sending the bookmark relevant to the pulled set, etc).
Tue, 17 Oct 2017 15:27:17 +0200 getbundle: add support for 'bookmarks' boolean argument
Boris Feld <boris.feld@octobus.net> [Tue, 17 Oct 2017 15:27:17 +0200] rev 35276
getbundle: add support for 'bookmarks' boolean argument This new argument requests a 'bookmarks' part from the server. It is meant to be used instead of the "listkeys" request.
Tue, 17 Oct 2017 15:26:16 +0200 bundle2: support a 'records' mode for the 'bookmarks' part
Boris Feld <boris.feld@octobus.net> [Tue, 17 Oct 2017 15:26:16 +0200] rev 35275
bundle2: support a 'records' mode for the 'bookmarks' part In this mode, the bookmarks changes are record in the 'bundleoperation' records instead of inflicted to the repository. This is necessary to use the part when pulling.
Tue, 17 Oct 2017 15:39:34 +0200 bundle2: add a 'modes' dictionary to the bundle operation
Boris Feld <boris.feld@octobus.net> [Tue, 17 Oct 2017 15:39:34 +0200] rev 35274
bundle2: add a 'modes' dictionary to the bundle operation This new attribute allows the codes requesting an unbundling to pass important information to individual part handlers. The current target use case is to allow for receiving 'bookmarks' part without directly updating local repository, but just recording the received data instead. This is necessary for pull where the remote bookmarks are processed locally. I expect the concept to be beneficial to other parts in the future. To clarify the bookmark behavior on pull, the remote bookmark value are not just taken -as-is- into the local repository. There is an extra step to detect bookmark divergence. The remote bookmarks data are stored until this processing happens.
Tue, 17 Oct 2017 12:38:13 +0200 bookmark: use the 'bookmarks' bundle2 part to push bookmark update (issue5165)
Boris Feld <boris.feld@octobus.net> [Tue, 17 Oct 2017 12:38:13 +0200] rev 35273
bookmark: use the 'bookmarks' bundle2 part to push bookmark update (issue5165) We use the new binary parts we introduced earlier to exchange bookmark. The payload is a bit more compact since we use binary and the length of bookmarks is no longer constrained to 255. .. fix:: Issue 5165 Bookmark, whose name is longer than 255, can again be exchanged again between 4.4+ client and servers.
Tue, 17 Oct 2017 12:37:39 +0200 bookmark: introduce in advance a variant of the exchange test
Boris Feld <boris.feld@octobus.net> [Tue, 17 Oct 2017 12:37:39 +0200] rev 35272
bookmark: introduce in advance a variant of the exchange test We are about to introduce a new way to push bookmark to server. We introduce the test variant before actually updating the exchange to help the output changes to stand out when it happens.
Sun, 15 Oct 2017 19:22:56 +0200 push: move bundle2-pushkey based bookmarks exchange in its own function
Boris Feld <boris.feld@octobus.net> [Sun, 15 Oct 2017 19:22:56 +0200] rev 35271
push: move bundle2-pushkey based bookmarks exchange in its own function We are about to introduce an alternative way to push bookmark over bundle2.
Tue, 17 Oct 2017 12:07:24 +0200 bookmark: add pushkey hook compatiblity to the bundle2 part
Boris Feld <boris.feld@octobus.net> [Tue, 17 Oct 2017 12:07:24 +0200] rev 35270
bookmark: add pushkey hook compatiblity to the bundle2 part Currently, pushing a bookmark update triggers a pushkey hooks. It is likely that users in the wild use such hooks to control bookmark movement. Using a non push-key mechanism to exchange bookmark means these hooks are no longer called, possibly breaking existing users setup. So we add explicit call to the pushkey hooks in the handling of the bundle2 part. This behavior can be disabled with a new config knob: 'server.bookmarks-pushkey-compat'.
Sun, 15 Oct 2017 18:02:11 +0200 bookmark: introduce a 'bookmarks' part
Boris Feld <boris.feld@octobus.net> [Sun, 15 Oct 2017 18:02:11 +0200] rev 35269
bookmark: introduce a 'bookmarks' part This part can carry and apply bookmarks information. We start with adding the core behavior of the part. In its current form, the part is only suitable for push since it plain update the bookmark without consideration for the local state. Support of the behavior needed for pulling will be added in later changesets.
Mon, 13 Nov 2017 04:22:45 +0100 push: include a 'check:bookmarks' part when possible
Boris Feld <boris.feld@octobus.net> [Mon, 13 Nov 2017 04:22:45 +0100] rev 35268
push: include a 'check:bookmarks' part when possible Before updating the actual bookmark update, we can start with updating the way we check for push race. Checking bookmarks state earlier is useful even if we still use pushkey. Aborting before the changegroup is added can save a lot of time.
Sun, 15 Oct 2017 15:01:03 +0200 bookmark: add a 'check:bookmarks' bundle2 part
Boris Feld <boris.feld@octobus.net> [Sun, 15 Oct 2017 15:01:03 +0200] rev 35267
bookmark: add a 'check:bookmarks' bundle2 part This part checks that bookmarks are still at the node they are expected to be. This allows a pushing client to detect push race where the repository was updated between the time it discovered the server state and the time it managed to finish its push. Such checking already exists when pushing bookmark through pushkey. This new part can be inserted at the beginning of the bundle, triggering abort earlier. In addition, we would like to move away from pushey to push bookmark. A step useful to solve issue5165.
Sun, 15 Oct 2017 14:59:55 +0200 bookmark: add methods to binary encode and decode bookmark values
Boris Feld <boris.feld@octobus.net> [Sun, 15 Oct 2017 14:59:55 +0200] rev 35266
bookmark: add methods to binary encode and decode bookmark values Coming new bundle2 parts related to bookmark will use a binary encoding. It encodes a series of '(bookmark, node)' pairs. Bookmark name has a high enough size limit to not be affected by issue5165. (64K length, we are well covered)
(0) -30000 -10000 -3000 -1000 -300 -100 -16 +16 +100 +300 +1000 +3000 +10000 tip