diff options
author | Paladox <thomasmulhall410@yahoo.com> | 2017-03-30 20:11:58 +0100 |
---|---|---|
committer | Paladox <thomasmulhall410@yahoo.com> | 2017-03-30 20:12:17 +0100 |
commit | 1bd4429f3cb2482bff5ac367f06c4170fe4091fc (patch) | |
tree | a47bf66c86c892b0ea22a94e83d0c6a61b1d2dd6 | |
parent | 885c2c30947c983b7c90e98766fa0893d03279bb (diff) | |
parent | 15e9a266b3a9cb06f8ed131482409b7fc4c73278 (diff) |
Merge branch 'stable-2.12' into stable-2.13
* stable-2.12:
Fix the wrong order of RevWalk.isMergedInto in RebaseSorter
Change-Id: Iaa6fbb0d8ba7f5d2fcf371bebdaa753eac03b57b
-rw-r--r-- | gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/AbstractSubmit.java | 42 | ||||
-rw-r--r-- | gerrit-server/src/main/java/com/google/gerrit/server/git/RebaseSorter.java | 4 |
2 files changed, 44 insertions, 2 deletions
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/AbstractSubmit.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/AbstractSubmit.java index 8ab7c2a13f..c0e6306d90 100644 --- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/AbstractSubmit.java +++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/AbstractSubmit.java @@ -344,6 +344,48 @@ public abstract class AbstractSubmit extends AbstractDaemonTest { assertThat(log).contains(mergeReview.getCommit()); } + @Test + public void submitMergeOfNonChangeBranchNonTip() throws Exception { + // Merge a branch with commits that have not been submitted as + // changes. + // + // MC -- merge commit (pushed for review and submitted) + // |\ S2 -- new stable tip (pushed directly to refs/heads/stable) + // M \ / + // | S1 -- stable (pushed directly to refs/heads/stable) + // | / + // I -- master + // + RevCommit initial = getRemoteHead(project, "master"); + // push directly to stable to S1 + PushOneCommit.Result s1 = pushFactory.create( + db, admin.getIdent(), testRepo, "new commit into stable", "stable1.txt", "") + .to("refs/heads/stable"); + // move the stable tip ahead to S2 + pushFactory.create( + db, admin.getIdent(), testRepo, "Tip of branch stable", "stable2.txt", "") + .to("refs/heads/stable"); + + testRepo.reset(initial); + + // move the master ahead + PushOneCommit.Result m = pushFactory.create( + db, admin.getIdent(), testRepo, "Move master ahead", "master.txt", "") + .to("refs/heads/master"); + + // create merge change + PushOneCommit mc = + pushFactory.create(db, admin.getIdent(), testRepo, "The merge commit", "merge.txt", ""); + mc.setParents(ImmutableList.of(m.getCommit(), s1.getCommit())); + PushOneCommit.Result mergeReview = mc.to("refs/for/master"); + approve(mergeReview.getChangeId()); + submit(mergeReview.getChangeId()); + + List<RevCommit> log = getRemoteLog(); + assertThat(log).contains(s1.getCommit()); + assertThat(log).contains(mergeReview.getCommit()); + } + private void assertSubmitter(PushOneCommit.Result change) throws Exception { ChangeInfo info = get(change.getChangeId(), ListChangesOption.MESSAGES); assertThat(info.messages).isNotNull(); diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/RebaseSorter.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/RebaseSorter.java index 6448d0677b..ccf876a2f3 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/git/RebaseSorter.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/RebaseSorter.java @@ -95,8 +95,8 @@ public class RebaseSorter { mirw.reset(); mirw.markStart(commit); for (RevCommit accepted : alreadyAccepted) { - if (mirw.isMergedInto(mirw.parseCommit(accepted), - mirw.parseCommit(commit))) { + if (mirw.isMergedInto(mirw.parseCommit(commit), + mirw.parseCommit(accepted))) { return true; } } |