We would like to reject merge commits on a branch A unless they are
In other words, a merge commit is ok if it merges B into A, or if it is an ancestor of the head of B.
The first condition is easy to check. I am a bit stymied with the second. I would like to ask, "does the head of B descend from the merge commit in question."
You would think that it would be a matter of repeatedly calling Commit.getParents
, but that method returns a MinimalCommit
, which is not very useful. Is there a more reasonable way to walk the ancestors of a commit than this?
I've also considered using CommitsBetweenRequest
, but without a more clear definition of the "between" relation for two commits, I'm not sure that will work in all cases. Should I use that instead?
It's a bit confusing what you mean by 2), taken as a whole it reads:
"like to reject merge commits on a branch A unless they are on branch B"
Have a look at the docn for getCommitsBetween: it will let you see if a commit is reachable from another, which I think is what you want.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.