Repro steps:
Set up repo with
master -> A -> B
Where A and B are dependent branches.
A doesn't have a revision associated (say we wanted to skip review)
B has a revision associated with both commits A and B.
git checkout master git checkout -b A # do edit A git commit -a -m "Commit A" git checkout -b B # do edit B git commit -a -m "Commit B (requires review)" arc diff master
Now, if you go to branch A and try to land, it will block on the revision from commit B
git checkout A arc land nipunn-mbp:server nipunn$ arc land On branch A. Updating branch master... On branch A. Identifying and merging... Revision 'D137659: Test Commit A Test Commit B (requires review)' has not been accepted. Continue anyway? [y/N] N
Although I understand why this happened (Commit A is technically inside the revision), I was still thrown for a loop when this happened. I expected either:
- Land branch A successfully
- Fail to land because there's no revision in the tree for A
I believe this is the code that does the lookup.
https://github.com/phacility/arcanist/blob/master/src/repository/api/ArcanistGitAPI.php#L1038