From b786b937fa0d8857c039170f3ad979ed026c4e37 Mon Sep 17 00:00:00 2001 From: Zhen Chen Date: Thu, 15 Sep 2016 11:22:26 -0700 Subject: [PATCH] Allow use `theirs` merge strategy to snap back to previous commit Normally, merge an merged commit is not allowed. However, there is a special case that user want to snap back to an older commit but keep the history. The way to do this is using `theirs` merge strategy to create a merge change. Change-Id: I93fbd7157c6f723d79728c7a8c95f3034b762716 --- .../src/main/java/com/google/gerrit/server/git/MergeUtil.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/MergeUtil.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/MergeUtil.java index 89ec1d6a27..44fe101c53 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/git/MergeUtil.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/MergeUtil.java @@ -213,7 +213,8 @@ public class MergeUtil { PersonIdent committerIndent, String commitMsg, RevWalk rw) throws IOException, MergeIdenticalTreeException, MergeConflictException { - if (rw.isMergedInto(originalCommit, mergeTip)) { + if (!MergeStrategy.THEIRS.getName().equals(mergeStrategy) && + rw.isMergedInto(originalCommit, mergeTip)) { throw new ChangeAlreadyMergedException( "'" + originalCommit.getName() + "' has already been merged"); }