mirror of
https://we.phorge.it/source/arcanist.git
synced 2024-11-21 22:32:41 +01:00
No description
a43a3a9aab
Summary: Refs T13546 **Behavior Changes** 1. Currently, after landing the `--onto` bookmark will not be advanced to the newly pushed commit(s) - This updates so that after pushing commits upstream, onto-marker bookmarks are pulled back from the server to retrieve their updated state 2. Currently, after landing the working directory will typically be the old `--onto` commit - This updates the behavior in the following ways 1. If the starting working state is a commit that is part of a revision being landed, the post-land state will be the newly published commit for that revision 2. If the starting working state is a commit for a tip revision being landed and there is only a single `--onto` target, the post-land state will be the newly published commit and the `--onto` bookmark will be activated, if applicable. If there are multiple `--onto` targets defined (uncommon) then the resulting working state will be the same behavior as before, as the desired behavior for this case is ambiguous. 3. If the starting working state is a commit that is not part of any revision being landed, then the post-land state will be that same commit, activating the same previous bookmark if applicable. **Bugs Fixed** 1. When landing a diff that includes multiple commits, where the non-tip commit adds a file and later commit modifies that file, the land process would fail during rebasing. 2. When landing, the display of what commits are going to be landed only includes the commit hash but should include part of the commit message for easy identification. 3. If errors occur during a rebase while landing, the resulting state is an in-progress rebase. Users will typically not be able to resolve this in-progress rebase and possibly confuse them further as they have to first abort the rebase before trying to clean up. These rebases will now be aborted by arcanist before exiting. 4. If using evolve, landing a non-tip revision would leave behind orphaned commits. Test Plan: Bookmark test - I created a diff with bookmark `test`, as a branch from before the `master` commit - I updated working state to activate `test` - I landed that diff - I verified that the resulting working state was on the newly published `master` commit Non-bookmark test - I created a diff with bookmark `test`, as a branch from before the `master` commit - I updated working state to be the new commit, but not activate `test` even though it points to that same commit - I landed that diff - I verified that the resulting working state was on the newly published `master` commit Not-working state test - I created a diff with bookmark `test`, as a branch from before the `master` commit - I updated working state to an older commit not related to the one being landed - I landed that diff - I verified the ending resulting working state was on the older commit I was on prior to landing Multiple commits test - Using `test` bookmark I created a commit that added a new file, made a diff, made another new commit on top of it which modified that file, then updated the diff - I updated my working state to the first commit for the diff (non-head) - I ran `arc land test` to land the diff - I verified that the resulting working state was on the newly published `master` commit Landing while on `master` - I created a diff with a bookmark `test`, as a branch from before the `master` commit - I updated working state to the `master` bookmark - I landed that diff - I verified that the resulting working state was on the newly published `master` commit Landing with no local `master` bookmark - I created a diff consisting of two commits with bookmark `test`, as a branch from before the `master` commit - I left working state on `test` and deleted my local `master` bookmark - I landed that diff - I verified that the resulting working state was on the newly published `master` commit and the `master` bookmark was pulled and active Cascading diffs while on an earlier diff changeset - I setup two diffs, each consisting of two commits, one depending on the other - I put the working state onto a commit from the earlier diff - I landed the later diff - I verified that the resulting working state was on the newly published commit associated with the earlier diff, which is not the new `master` commit so there was no active bookmark Cascading diffs while on the later diff changeset - I setup two diffs, each consisting of two commits, one depending on the other - I put the working state into a commit from the later diff - I landed the later diff - I verified that the resulting working state was on the newly published commit for the later diff which was `master` and `master` was active Landing a non-tip revision, with evolve - I setup three diffs, each consisting of two commits, creating a dependency chain - I verified I had the evolve extension enabled via `hg debugextensions` - I put the working state on a commit in the first revision - I landed the second revision - I verified that the resulting working state was clean, that revisions 1 and 2 were properly landed and published, and the resulting working state was on the published commit for the first revision. Landing a non-tip revision, without evolve - I setup three diffs, each consisting of two commits, creating a dependency chain - I verified I did not have the evolve extension enabled via `hg debugextensions` - I put the working state on a commit in the first revision - I landed the second revision - I verified that the resulting working state was clean, that revisions 1 and 2 were properly landed and published, and the resulting working state was on the published commit for the first revision. Landing a non-tip revision, while the non-landing revision is active - I setup three diffs, each consisting of two commits, creating a dependency chain - I put the working state on the latest tip revision commit and its bookmark - I landed the second revision - I verified that revisions 1 and 2 were properly landed and published, and the resulting working state was still on the latest tip revision commit and its bookmark was active. Reviewers: #blessed_reviewers, epriestley Reviewed By: #blessed_reviewers, epriestley Subscribers: Korvin, epriestley Maniphest Tasks: T13546 Differential Revision: https://secure.phabricator.com/D21680 |
||
---|---|---|
bin | ||
externals | ||
resources | ||
scripts | ||
src | ||
support | ||
.arcconfig | ||
.arclint | ||
.arcunit | ||
.editorconfig | ||
.gitignore | ||
LICENSE | ||
NOTICE | ||
README.md |
Arcanist is the command-line tool for Phabricator. It allows you to interact with Phabricator installs to send code for review, download patches, transfer files, view status, make API calls, and various other things. You can read more in the User Guide
For more information about Phabricator, see http://phabricator.org/.
LICENSE
Arcanist is released under the Apache 2.0 license except as otherwise noted.