1
0
Fork 0
mirror of https://we.phorge.it/source/arcanist.git synced 2024-09-20 08:58:55 +02:00
No description
Find a file
epriestley 44959afd4b 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
2011-09-15 07:42:45 -07:00
bin Initial commit. 2011-01-09 15:22:25 -08:00
externals arc lint: fix/enable PEP8 linter 2011-05-18 16:47:23 -07:00
resources Basic 'shell-complete' workflow. 2011-01-17 20:18:27 -08:00
scripts Fix phutil_analyzer bug on interface dependency creation 2011-08-10 12:01:30 -03:00
src Add an "arc merge" workflow 2011-09-15 07:42:45 -07:00
.arcconfig Automatically use the correct path for Conduit URIs in arc 2011-06-23 17:26:08 -07:00
.divinerconfig Updated .divinerconfig. 2011-03-02 15:25:45 -08:00
.gitignore Add .divinercache to .gitignore. 2011-05-25 18:51:52 -07:00
LICENSE Initial commit. 2011-01-09 15:22:25 -08:00
README Initial commit. 2011-01-09 15:22:25 -08:00

PROJECT STATUS: CAVEAT EMPTOR

This is an unstable preview release. I'm open sourcing some of Facebook's
internal tools, but they'll be unstable for at least a couple months.
-epriestley


WHAT IS ARCANIST?

Arcanist is the CLI for Facebook's code review tool, Differential. Since
Differential isn't released yet, it may not be terribly useful on its own.