HomePhabricator

Add an "arc merge" workflow
44959afd4b88Unpublished

Unpublished Commit · Learn More

No further details are available.

Description

Add an "arc merge" workflow

Summary:
This should support conservative rewrite policies in git fairly well, under an
assumed workflow of:

  • Develop in local branches, never rewrite history.
  • Commit with "-m" or by typing a brief, non-template commit message

describing the checkpoint.

  • Provide rich information in the web console (reviewers, etc.)
  • Finalize with "git checkout master && arc merge branch && git push" or some

flavor thereof.

This supports Mercurial somewhat. The major problem is that "hg merge" fails if
the local is a fastforward of the remote, at which point there's nowhere we can
throw the commit message. Oh well. Just push it and we'll do our best to link
them up based on local commit info.

I am increasingly forming an opinion that Mercurial is "saftey-scissors git".
But also maybe I have no clue what I'm doing. I just don't understand why anyone
would think it's a good idea to have a trunk consisting of ~50% known-broken
revisions, random checkpoint parts, whitespace changes, typo fixes, etc. If you
use git with branching you can avoid this by making a trunk out of merges or
with rebase/amend, but there seems to be no way to have "one commit = one idea"
in any real sense in Mercurial.

Test Plan: Execute "arc merge" in git and mercurial.

Reviewers: fratrik, Makinde, aran, jungejason, tuomaspelkonen

Reviewed By: Makinde

CC: aran, epriestley, Makinde

Differential Revision: 860

Details

Provenance
epriestleyAuthored on
Reviewer
Makinde
Differential Revision
Restricted Differential Revision
Parents
rARC31ec0119225a: Move some VCS-specific logic into VCS APIs
Branches
Unknown
Tags
Unknown

Event Timeline