stack diff steps
- Checkout & pull latest master
git checkout master && git pull --rebase origin master
- Cut branch from master
arc branch stacked_feature_1
- Make changes, add commits
# ...change, change, change
git add .
git commit
- Diff against master
arc diff
- Push the
stacked_feature_1
branch to github. (Note: this is important so that the following diffs can be patched in the test build for jenkins)
git push origin stacked_feature_1
- Cut branch from
stacked_feature_1
arc branch stacked_feature_2
- Make changes, add commits
# ...change, change, change
git add .
git commit
- Diff against
stacked_feature_1
arc diff stacked_feature_1
- [optional] Verify branch status
arc branch
- Steps 5-9 can be repeated for as needed
- If commits or changes need to be made on
stacked_feature_1
git checkout stacked_feature_1
# ...change, change, change
git add .
git commit
arc diff
11.1 Now we need to update our next branch (Note: this would need to be repeated for each branch that was cut from this)
git checkout stacked_feature_2
git pull
- If commits or changes need to be made on
stacked_feature_2
, we need to make sure we diff against the same branch that we cut from
# ...change, change, change
git add .
git commit
arc diff stacked_feature_1
- When it comes time to land things, there are 2 rules we must follow.
- We must land in the same order that we cut in, or in FIFO order -- first in, first out
- And we land with
--keep-branch
so that the following lands don't break
git checkout stacked_feature_1
arc land --keep-branch
git checkout stacked_feature_2
# You may need to rebase from your upstream branch and then rebase master before landing
git pull --rebase . stacked_feature_1
git pull --rebase origin master
arc land --keep-branch --revision DXXX # Where DXXX is the diff id from stacked_feature_1