How do I set up an Arcanist workflow with a reviewer delay time?

I'm new to git, and even new to Phabricator, and I'm trying to create a clean workflow set up at the start of my project. As far as I understand, the correct way to work with git is to create a new branch for each feature, implement it in the branch, and then merge the branch into master. Works great, no problem.

Enter the fabricator and preview the views with a pre-click. I create a branch, name it "B", implement something, run "arc diff" to get it into Phabricator's differential analysis system, wait for approval, and finally run "arc ground" to push to the main repository. So far, so good. But I don't want to stop further development, waiting for the reviewer to come back to me.

So, I have my commit in review and I want to start working on a qualifier or dependent function. I create a sub-brand, call it "SB" and start working. I am getting SB ready for submission, and B is not yet approved. "arc diff" looks like it would merge an existing commit with my new changes, which I don't want is a new change, not an update to the old one. Instead, I try to use "arc diff B" and it works, I get a new revision in Differential that only includes the new changes. B gets approval, and I run "arc ground" on B to represent it. It works.

SB , "" SB, . . Arcanist SB, master. , . . --revision ( ). . . .

I eventually get the idea to try rebase on SB and this finally gets the "arc ground" to work properly. So, I have a technically working solution, but it seems awkward and awkward to me. Is there a better way to do this, which avoids the need for a manual restore just to get the Arcanist to admit that no, the revision I have already landed is not part of what I am currently arriving at?


source to share

1 answer

Typically, with Arcanist, you will create each branch from master. This will prevent the problem described in point 3.

The workflow would like like this:

  • Execute current running code
  • Use arc branch B

    to create a local branch
  • Modify your changes and use arc diff

    to delimit code.
  • Verify Master again and pull out the current code
  • Use arc branch SB

    to create a local branch
  • Modify your changes and use arc diff

    to delimit code.

There will still be a merge or rebase that should have happened as soon as it B

lands on master.

If you don't want to flush SB

from the master and really want it to be based on B

, you need to specify the base with arc diff B

This will also solve the problem described in point 3. Unfortunately, these options will not prevent merge conflicts in paragraph 4. Before land, you will have to reboot SB

to prevent this.



All Articles