1
0
Fork 0
mirror of https://we.phorge.it/source/arcanist.git synced 2025-01-22 12:41:18 +01:00
phorge-arcanist/src/workflow
epriestley a03c6079bb Make "arc land" great again
Summary:
Ref T3855. Fixes T9537. Fixes T8620. Fixes T4333.

This declares bankruptcy and replaces the entire `arc land` workflow under Git. These are the notable changes:

  - (T3855) You can now land from a branch to itself.
  - (T3855) We now try to restore the original state very aggressively after any failure, instead of dumping you into the middle of a mess.
  - (T9537) You can now land without a local branch.
  - ([not actually] T9543) We'll now ignore the local branch if it just happens to be named the same thing as the remote branch but doesn't actually track it.
  - (T8620) You can now land from a detached HEAD.
  - (T4333) We now preserve the author and author date of whatever you land.

This may need some followup work. In particular:

  - The signal handler (that tries to put you in a better place if you ^C in the middle of things) causes ^C to work awkwardly in prompts. This might not be worth it.
  - Errors/instructions on push/merge issues might need work.
  - I dropped support for `--delete-remote` and `--update-with-blah-blah` because I think these flags aren't worth their complexity.
  - I've simplified the update/merge algorithm a bit. It may need some complexity added back in.
  - I probably missed a few things because this covers like 200 unique, creative workflows.
  - Users might need more guidance on the workflows that drop them in the middle of nowhere if they manage to reach them more often than I think.

Test Plan:
  - Used `arc land` to land like at least 15,000 different kinds of changes.
  - Landed normally.
  - Landed from a branch onto itself.
  - Landed from a detached head.
  - Landed nothing.
  - Landed with no local branch.
  - Landed onto made-up branches.
  - Landed with bad targets.
  - ^C'd things in the middle.

Reviewers: chad

Reviewed By: chad

Subscribers: tycho.tatitscheff

Maniphest Tasks: T3855, T4333, T8620, T9537, T9543

Differential Revision: https://secure.phabricator.com/D14356
2015-10-28 07:04:57 -07:00
..
exception pht all the things 2015-05-13 21:00:53 +10:00
ArcanistAliasWorkflow.php pht all the things 2015-05-13 21:00:53 +10:00
ArcanistAmendWorkflow.php pht all the things 2015-05-13 21:00:53 +10:00
ArcanistAnoidWorkflow.php Don't explicitly name abstract base classes 2014-07-22 07:49:15 +10:00
ArcanistBackoutWorkflow.php Minor linter fix 2015-08-08 10:18:59 +10:00
ArcanistBookmarkWorkflow.php Minor linter fixes 2015-05-15 07:09:30 +10:00
ArcanistBranchWorkflow.php Minor linter fixes 2015-05-15 07:09:30 +10:00
ArcanistBrowseWorkflow.php pht all the things 2015-05-13 21:00:53 +10:00
ArcanistCallConduitWorkflow.php Use phutil_json_decode instead of json_decode 2015-05-04 22:36:14 +10:00
ArcanistCloseRevisionWorkflow.php pht all the things 2015-05-13 21:00:53 +10:00
ArcanistCloseWorkflow.php Use PhutilInvalidStateException 2015-06-18 22:41:30 +10:00
ArcanistCommitWorkflow.php phtize a bunch more strings 2015-05-22 17:09:56 +10:00
ArcanistCoverWorkflow.php pht all the things 2015-05-13 21:00:53 +10:00
ArcanistDiffWorkflow.php Add a --target flag to arc unit for uploading results 2015-09-29 09:51:51 -07:00
ArcanistDownloadWorkflow.php Fix some format strings 2015-05-25 21:24:40 +10:00
ArcanistExportWorkflow.php Remove call to "arcanist.projectinfo" from arc export 2015-05-25 18:31:09 +10:00
ArcanistFeatureWorkflow.php Improve arc's handling of dirty submodules in Git 2015-09-21 12:40:06 -07:00
ArcanistFlagWorkflow.php pht all the things 2015-05-13 21:00:53 +10:00
ArcanistGetConfigWorkflow.php pht all the things 2015-05-13 21:00:53 +10:00
ArcanistHelpWorkflow.php phtize a bunch more strings 2015-05-22 17:09:56 +10:00
ArcanistInstallCertificateWorkflow.php pht all the things 2015-05-13 21:00:53 +10:00
ArcanistLandWorkflow.php Make "arc land" great again 2015-10-28 07:04:57 -07:00
ArcanistLiberateWorkflow.php Minor linter fixes 2015-05-15 07:09:30 +10:00
ArcanistLintersWorkflow.php arc linters: switch name and short 2015-09-08 10:39:26 -07:00
ArcanistLintWorkflow.php Remove leftover code for "postponed" lint and unit status 2015-08-30 21:56:12 +10:00
ArcanistListWorkflow.php Improve arc's handling of dirty submodules in Git 2015-09-21 12:40:06 -07:00
ArcanistPasteWorkflow.php pht all the things 2015-05-13 21:00:53 +10:00
ArcanistPatchWorkflow.php Fix sanity checks for patch workflow 2015-05-25 18:41:28 +10:00
ArcanistPhrequentWorkflow.php Improve arc's handling of dirty submodules in Git 2015-09-21 12:40:06 -07:00
ArcanistRevertWorkflow.php pht all the things 2015-05-13 21:00:53 +10:00
ArcanistSetConfigWorkflow.php pht all the things 2015-05-13 21:00:53 +10:00
ArcanistShellCompleteWorkflow.php Fix arcanist shell completion 2015-06-19 13:15:44 +10:00
ArcanistStartWorkflow.php Minor tidying of ArcanistPhrequentWorkflow classes 2015-02-01 21:49:53 +11:00
ArcanistStopWorkflow.php Minor tidying of ArcanistPhrequentWorkflow classes 2015-02-01 21:49:53 +11:00
ArcanistTasksWorkflow.php Improve arc's handling of dirty submodules in Git 2015-09-21 12:40:06 -07:00
ArcanistTimeWorkflow.php Minor tidying of ArcanistPhrequentWorkflow classes 2015-02-01 21:49:53 +11:00
ArcanistTodoWorkflow.php pht all the things 2015-05-13 21:00:53 +10:00
ArcanistUnitWorkflow.php Add a --target flag to arc unit for uploading results 2015-09-29 09:51:51 -07:00
ArcanistUpgradeWorkflow.php Improve two error handling behaviors in arc upgrade 2015-10-22 19:55:16 +00:00
ArcanistUploadWorkflow.php Improve temporary file upload API and add viewPolicy support 2015-09-07 12:44:59 -07:00
ArcanistVersionWorkflow.php pht all the things 2015-05-13 21:00:53 +10:00
ArcanistWhichWorkflow.php phtize a bunch more strings 2015-05-22 17:09:56 +10:00
ArcanistWorkflow.php Make "arc land" great again 2015-10-28 07:04:57 -07:00