On 19/01/17 12:02 PM, Jeff King wrote:
It's much trickier to find from the git topology whether a particular
history contains rebased versions of commits. You can look at the
--cherry options to "git log", which use patch-ids to try to equate
commits. Something like:
git for-each-ref --format='%(refname)' 'refs/pull/*/head' |
while read refname; do
if test -z "$(git rev-list --right-only --cherry-pick -1
origin...$refname)
then
echo "$refname: not merged"
fi
done
That's obviously much less efficient than `--no-merged`, but it should
generally work. The exception is if the rebase changed the commit
sufficiently that its patch-id may have changed.
Cool, thanks for all your help! "git log --cherry-pick" works quite
well. One thing: I expected the following to be equivalent, but found
that they're not. Is that by accident or design?
$ git rev-list --cherry-pick --right-only master...refs/pull/1112/head
$ git rev-list --cherry-pick master..refs/pull/1112/head
I think that's probably the best answer to your "unmerged" question,
too. Ask the API which PRs are unmerged, and then do whatever git-level
analysis you want based on that.
Right, that makes sense. Thanks again!