- Aug 18, 2014
-
-
Pierre-Yves David authored
We now store the `parents` field on disk. We use the same strategy as for `date`: We stick it into the metadata. This is slow and dirty, but this is also the only way we currently have. At some point we'll have a new obsstore format to store this properly.
-
- Aug 19, 2014
-
-
Pierre-Yves David authored
We are extracting the `date` information from the metadata at read time. However, we failed to remove it from the metadata returned in the markers. This is now fixed.
-
- Aug 18, 2014
-
-
Pierre-Yves David authored
We need this information to build the set of relevant markers during exchanges. This can only be done at the `createmarkers` level since the `obsstore.create` function does not have a repo and therefore has no access to the parent information.
-
Pierre-Yves David authored
We need a way to pass the information to the function. Some guru told me that what's arguments are made for.
-
Pierre-Yves David authored
This field is intended to store the parent of the precursor. This is useful to attach pruned changesets to a set of exchanged changesets. We currently just add the fields with a None value. None stands for "no data recorded".
-
- Aug 19, 2014
-
-
Pierre-Yves David authored
As the number of fields grow, it makes sense to start documenting their contents.
-
- Aug 16, 2014
-
-
Katsunori FUJIWARA authored
"editform" argument for "getcommiteditor" is decided according to the format below: EXTENSION[.COMMAND][.ROUTE] - EXTENSION: name of extension - COMMAND: name of command, if there are two or more commands in EXTENSION - ROUTE: name of route, if there are two or more routes in COMMAND This patch newly adds "normal" and "merge" as ROUTE, to distinguish merge commits from other. This patch adds 4 test patterns to test combination of "merge"(x2) and "--continue"(x2).
-
Katsunori FUJIWARA authored
"editform" argument for "getcommiteditor" is decided according to the format below: EXTENSION[.COMMAND][.ROUTE] - EXTENSION: name of extension - COMMAND: name of command, if there are two or more commands in EXTENSION - ROUTE: name of route, if there are two or more routes in COMMAND This patch newly adds "merge" as ROUTE, to distinguish merge commits from other. This patch passes bool as "ctxorbool" to "mergeeditform", because working context has always 2 parents at this point. Dropping the second parent of non-merging commits is executed in "concludenode". Unlike other patches in this series (e.g. for "hg commit"), this patch doesn't add "normal.normal"/"normal.merge" style ROUTEs, because there is no "merge" case in "collapse" ROUTE.
-
Katsunori FUJIWARA authored
"editform" argument for "getcommiteditor" is decided according to the format below: COMMAND[.ROUTE] - COMMAND: name of command - ROUTE: name of route, if there are two or more routes in COMMAND This patch uses "normal.normal" and "normal.merge" as ROUTE of "editform" instead of "normal", to distinguish merge commits from other in "hg import" without "--bypass" case. This patch assumes "editform" variations for "hg import" below: import.normal.normal import.normal.merge import.bypass.normal import.bypass.merge Unlike other patches in this series, this patch uses "editor.sh" instead of "checkeditform.sh" for the name of the script to check "HGEDITFORM", because it has to do more than checking "HGEDITFORM". To invoke editor forcibly in "test-import-merge.t", this patch creates the patch not having patch description as "merge.nomsg.diff".
-
Katsunori FUJIWARA authored
"editform" argument for "getcommiteditor" is decided according to the format below: COMMAND[.ROUTE] - COMMAND: name of command - ROUTE: name of route, if there are two or more routes in COMMAND This patch uses "amend.normal" and "amend.merge" as ROUTE of "editform" instead of "amend", to distinguish merge commits from other in "hg commit --amend" case.
-
Katsunori FUJIWARA authored
"editform" argument for "getcommiteditor" is decided according to the format below: COMMAND[.ROUTE] - COMMAND: name of command - ROUTE: name of route, if there are two or more routes in COMMAND This patch uses "normal.normal" and "normal.merge" as ROUTE of "editform" instead of "normal", to distinguish merge commits from others in "hg commit" without "--amend" case. This patch assumes "editform" variations for "hg commit" below: commit.normal.normal commit.normal.merge commit.amend.normal commit.amend.merge "mergeeditform" is factored out for subsequent patches. It takes "ctxorbool" argument, because context object can't be passed in some cases.
-
Gregory Szorc authored
The issue fixed in the previous patch was uncovered by implementing an extension that printed additional output locally before the push command completed. This test emulates that. If this change is applied before the previous patch, the test will fail on Linux, with the local output being printed before the "remote: " lines.
-
Gregory Szorc authored
On Linux, fstat().st_size of a pipe always returns 0, even if the pipe has data available for reading. This meant that reading from and subsequently printing the stderr pipe content after wireproto commands over SSH meant that available data wasn't being printed. We now implement pipe reading on POSIX by doing a non-blocking read for all available data.
-
Gregory Szorc authored
Reading all available data from a pipe has a platform-dependent implementation. This patch establishes platform.readpipe() by copying the inline implementation in sshpeer.readerr(). The implementations for POSIX and Windows are currently identical. The POSIX implementation will be changed in a subsequent patch.
-
Pierre-Yves David authored
Not sure how it got there but it is useless.
-
- Aug 19, 2014
-
-
durin42 authored
-
- Aug 16, 2014
-
-
Pierre-Yves David authored
We use the `pushkey` part to exchange bookmark updates within the unified bundle2 push. Note that this only applies on update (moving a bookmark known on both sides) since bookmark export (creation of a new bookmark on remote) is apparently done outside of the _push function.
-
Pierre-Yves David authored
If we add bookmarks to bundle2, we need a way to test the new code. Tests are changed beforehand to highlight that inclusion of bookmarks in bundle does not introduce any behavior changes.
-
Pierre-Yves David authored
If bookmark are to be integrated in the unified bundle2, we need a way to disable the old-style push.
-
Pierre-Yves David authored
The discovery of necessary bookmark updates is now done within the "discovery phase". This opens the door to the inclusion of bookmarks in a unified bundle2 push.
-
Pierre-Yves David authored
We make a temporary variable for the remote bookmark data and we do not expand all elements from `bookmark.compare` since we are going to use only one.
-
- Jun 24, 2014
-
-
Pierre-Yves David authored
Untracked files are handled through status now.
-
Pierre-Yves David authored
This will allow us to drop the code dedicated to this special case.
-
Pierre-Yves David authored
Now that we detect all clean files, we do not need this clause anymore.
-
- Aug 02, 2014
-
-
Pierre-Yves David authored
This prepares for the arrival of a second "not touching file" action: revert of an untracked file.
-
- Aug 01, 2014
-
-
Pierre-Yves David authored
The two breaks can be joined into one. The code gains one level of indent.
-
- Jun 24, 2014
-
-
Pierre-Yves David authored
noop is about to gain a message.
-
- Aug 02, 2014
-
-
Pierre-Yves David authored
1. Special cases are not special enough 2. There are two cases where nothing is done and a message is displayed. This prepares it.
-
- Jun 24, 2014
-
-
Pierre-Yves David authored
The conditional controlling the creation of backup is fairly big. We move config related decisions outside of the loop.
-
Pierre-Yves David authored
Now that the table is simpler, remove one level of depth from it. This simplifies its usage in the for loop.
-
- Aug 16, 2014
-
-
Pierre-Yves David authored
Before this patch, there was always an attempt to update bookmark even if prior steps of the push failed. I cannot see a good semantic reason to do so. We disable this possibility to simplify the push flow with bundle2. Bookmarks will be included in the bundle and fail with other steps.
-
Pierre-Yves David authored
We make the conditional explicit for the sake of readability.
-
- Aug 15, 2014
-
-
Pierre-Yves David authored
Now that ancestors has the same boolean property as a list, we can stop unrolling the set of ancestors. This should provide a significant speedup to this step as ancestor objects are smart and lazy.
-
Pierre-Yves David authored
This allows using the object in a conditional the same way we can use list.
-
Pierre-Yves David authored
Updating bookmarks is part of the push. It should be done within the same lock as the other steps of the push.
-
- Aug 18, 2014
-
-
Gregory Szorc authored
hgweb detects out-of-date repository instances (using a highly suspect mechanism that should probably be fixed) and obtains a new repository object if needed. This patch changes the repository object copy to use the repo URL (instead of path). This preserves more information about the source repository and allows bundles to be served through hgweb. A test verifying that bundles can now be served properly via `hg serve` has been added.
-
- Aug 19, 2014
-
-
Pierre-Yves David authored
The markers are now 5-item tuples (concluded by the date). The obsstore.fields contents have been updated accordingly. There is no change to the on-disk format yet, so the date has to be extracted every time we read binary markers and re-injected each team we write them. This introduces a slowdown that will be solved when a new version of the format is added. Such a slowdown was already introduced by the evolve extension anyway.
-
- Aug 12, 2014
-
-
Pierre-Yves David authored
We are going to increase the amount of data explicitly stored in obsolescence markers. This mean we are going to have a longer tuple and some values will be shuffled around. So we add a ``fields`` attribute to the obsstore class to keep track of what entry is what. This will be useful for extensions and for documentation purpose.
-
- Aug 14, 2014
-
-
Pierre-Yves David authored
As the date is becoming a first-class citizen, we are displaying it in an explicit field. As a bonus it is now readable by humans.
-
Pierre-Yves David authored
The function is now just passing the value to create markers.
-