mirror of
https://we.phorge.it/source/arcanist.git
synced 2024-11-21 22:32:41 +01:00
No description
41f6c6ecb2
Summary: After `arc diff` creates a revision in Phabricator it amends the commit to include a link to the revision in the commit message. For Mercurial this is done with `hg commit --amend --logfile` however this will fail when trying to create a diff for a non-head commit. This updates `ArcanistMercurialAPI::amendCommit()` to allow amending a non-head commit in two ways, depending on whether `evolve` is in use: No evolve: 1. Rebasing the current commit onto the current commit's parent, using the new commit message 2. Rebasing all children + descendants of the current commit onto the new resulting commit 3. Stripping the original commit With evolve: 1. Amend the commit with `hg amend --logfile` 2. Run `hg evolve` to tidy up all commits Test Plan: I created 6 commits in a row placing a bookmark at commits 2 `bookmark1`, 4 `bookmark2`, and 6 `bookmark3`, and ensured I had `arc:bookmark` in my base ruleset. No evolve, non-head changeset: 1. I verified I did not have `evolve` enabled by running `hg debugextensions` and did not see `evolve` in the listed active extensions. 2. I updated to `bookmark1` and modified a file to leave a dirty working state. 3. I ran `arc diff` and when prompted to amend my changes I said "yes", and verified a phab revision was created properly. 4. I checked the status of my repository and verified it was still linear and the bookmarks pointed to the proper commits. 5. I ran `hg log -r bookmark1 --template {desc}` to view the full commit message and verified it contained both `Summary: ...` and `Differential Revision: https://...`. 6. I ran `hg diff -c bookmark1` and verified the changes for that commit included the changes I made in step 2. No evolve, head changeset: 1. I updated to `bookmark3` which is the head commit and modified a file to leave a dirty working state. 2. I ran `arc diff` and when prompted to amend my changes I said "yes", and verified a phab revision was created properly. 3. I checked the status of my repository and verified it was still linear and all the bookmarks pointed to the proper commits. 4. I ran `hg log -r bookmark3 --template {desc}` to view the full commit message and verified it contained both `Summary: ...` and `Differential Revision: https://...`. 5. I ran `hg diff -c bookmar3` and verified the changes for that commit included the changes I made in step 1. With evolve: 1. I enabled `evolve` and verified it was enabled by running `hg debugextensions` and saw `evolve` in the listed active extensions. 2. I updated to `bookmark2` and modified a file to leave a dirty working state. 3. I ran `arc diff` and when prompted to amend my changes I said "yes", and verified a phab revision was created properly. 4. I checked the status of my repository and verified it was still linear and all the bookmarks pointed to the proper commits. 5. I ran `hg log -r bookmark2 --template {desc}` to view the full commit message and verfieid it contained both `Summary: ...` and `Differential Revision: https://...`. 6. I ran `hg diff -c bookmark2` and verified the changes for that commit included the changes I made in step 2. Reviewers: #blessed_reviewers, epriestley Reviewed By: #blessed_reviewers, epriestley Subscribers: Korvin, epriestley Differential Revision: https://secure.phabricator.com/D21686 |
||
---|---|---|
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.