The second (i.e. last) Differential Revision of D20, is listed as containing only commit c38e72900ac5.
When arc land-ing this commit after master has incorporated other commits, Phabricator correctly closed the D20.
But although D20 has been marked as closed, the above commit c38e72900ac5 never made it into master. Instead, master has: 855d3a19c625, which is a rebased merge commit of c38e72900ac5 and (back then) master.
This is confusing, as qchris2 reviewed and arc land-ed a different commit than what is shown in master. And when looking at master alone, it is (due to arc land's behaviour) not even visible that qchris2 reviewed a different commit. :-(
And although qchris2 never saw master's commit, it's commit message nevertheless says “Reviewed By: qchris2” :-(
So when looking on the git-only side, it is impossible to see which commit qchris2 reviewed.
And when only looking at the Phabricator side, it's really hard to identify as well. The only indication (I could find) that a different commit has been merged to master is that D20's header says
Commits: rQCHRISTESTFOREIGN855d3a19c625: Add foo10.txt
instead of
Commits: rQCHRISTESTFOREIGNc38e72900ac5: Add foo10.txt
(which would be expected when looking at the Commit hash of first commit of
the second Differential Revision). I doubt I'd check that each time or
notice the mismatch.
The fact that a different commit got merged is too hidden from both
the commits generated by arc land, and also Phabricator's web UI.
Here's a git log of the different commits:
. * bdf9a71 (foo10-arc-land-suggested) Automatic merge by 'arc land' . |\ . * | c38e729 (foo10-reviewed) Add foo10.txt . | | * 855d3a1 (HEAD, master, foo10-merged) Add foo10.txt . | |/ . | * f1414cd intermission . |/ . * 145c288 Add foo9.txt . [...]
Refs:
- foo10-reviewed is the second Differential of D20. This is the commit qchris2 reviewed.
- foo10-arc-land-suggested is the commit that arc land suggested to checkout if I want the killed feature branch back.
- foo10-merged is the commit that got merged to master
You can clone them from https://github.com/somechris/fabtest2 if you want to take a look.
See also T136: Pulling patches from Phabricator does not give consistent commit hashes