Fix change stuck in SUBMITTED state but actually merged
This behavior is caused by submitting a commit that has a tag.
Method MergeUtil.markCleanMerges is used by each merge strategy
to update the status of a change if it was a clean merge. It skips
commits that are identified as accepted and their entire ancestry
chain. If a commit is tagged, method MergeOp.getAlreadyAccepted
identifies it as accepted (even if it is not merged yet).
Fix prevents a commit that is referred by a tag to be included in
alreadyAccepted set. If such commit is already merged then it will
be covered anyway by adding heads to alreadyAccepted.
Add a corresponding test that pushes a commit with a tag
Bug: Issue 600
Change-Id: If00247b809b985eaf60ef5ef09fad0f475fb06b9
(cherry picked from commit b22ee233f1
)
This commit is contained in:

committed by
Dave Borowitz

parent
ce4d28cb19
commit
72fa3c2422
@@ -456,8 +456,7 @@ public class MergeOp {
|
||||
|
||||
try {
|
||||
for (final Ref r : repo.getAllRefs().values()) {
|
||||
if (r.getName().startsWith(Constants.R_HEADS)
|
||||
|| r.getName().startsWith(Constants.R_TAGS)) {
|
||||
if (r.getName().startsWith(Constants.R_HEADS)) {
|
||||
try {
|
||||
alreadyAccepted.add(rw.parseCommit(r.getObjectId()));
|
||||
} catch (IncorrectObjectTypeException iote) {
|
||||
|
Reference in New Issue
Block a user