What you want to do is to submit one revision per commit, and link them together via dependencies (the experimental branch of arcanist does this automatically). Having individual revisions is one of the main advantages of this workflow.
You then set your .arcrc base to git:HEAD^ and have one local branch per stack, submitting each via arc diff. There a 1:1 mapping between revisions and commits, which makes things a LOT easier, especially rebases. You can then use an interactive rebase to re-visit and amend old revisions, or land them.
I also have an autodiff alias in .arcrc that will automatically create a new revision and open it in the browser, assuming the Test Plan field is already filled out in the commit:
And useful .bashrc aliases for working with a stack:
alias cascade-show="git log @{push}..HEAD --oneline"
alias cascade-amend="git rebase @{push} -x 'arc amend'"
alias cascade-rebase="git rebase -i @{push}"
alias cascade-autorebase="git rebase -i @{push} -x 'arc diff HEAD^ -m Autorebase'"
You then set your .arcrc base to git:HEAD^ and have one local branch per stack, submitting each via arc diff. There a 1:1 mapping between revisions and commits, which makes things a LOT easier, especially rebases. You can then use an interactive rebase to re-visit and amend old revisions, or land them.
I also have an autodiff alias in .arcrc that will automatically create a new revision and open it in the browser, assuming the Test Plan field is already filled out in the commit:
And useful .bashrc aliases for working with a stack: