]> source.dussan.org Git - jgit.git/commitdiff
Don't print "into HEAD" when merging refs/heads/master 96/2396/1
authorRobin Stocker <robin@nibor.org>
Tue, 1 Feb 2011 21:27:33 +0000 (22:27 +0100)
committerRobin Stocker <robin@nibor.org>
Tue, 1 Feb 2011 21:27:33 +0000 (22:27 +0100)
When MergeMessageFormatter was given a symbolic ref HEAD which points to
refs/heads/master (which is the case when merging a branch in EGit), it
would result in a merge message like the following:

  Merge branch 'a' into HEAD

But it should print the following (as C Git does):

  Merge branch 'a'

The solution is to use the leaf ref when checking for refs/heads/master.

Change-Id: I28ae5713b7e8123a0176fc6d7356e469900e7e97

org.eclipse.jgit.test/tst/org/eclipse/jgit/merge/MergeMessageFormatterTest.java
org.eclipse.jgit/src/org/eclipse/jgit/merge/MergeMessageFormatter.java

index 2fbcd093dbd98f2d2958a1581928fbe1dc438fa6..04cfa25197c099672f8e64069d66b7e0a127e3d4 100644 (file)
@@ -50,6 +50,7 @@ import java.util.Arrays;
 import org.eclipse.jgit.lib.ObjectId;
 import org.eclipse.jgit.lib.ObjectIdRef;
 import org.eclipse.jgit.lib.Ref;
+import org.eclipse.jgit.lib.SymbolicRef;
 import org.eclipse.jgit.lib.Ref.Storage;
 import org.eclipse.jgit.lib.RefUpdate;
 import org.eclipse.jgit.lib.SampleDataRepositoryTestCase;
@@ -166,4 +167,13 @@ public class MergeMessageFormatterTest extends SampleDataRepositoryTestCase {
                String message = formatter.format(Arrays.asList(a), b);
                assertEquals("Merge branch 'a' into b", message);
        }
+
+       @Test
+       public void testIntoSymbolicRefHeadPointingToMaster() throws IOException {
+               Ref a = db.getRef("refs/heads/a");
+               Ref master = db.getRef("refs/heads/master");
+               SymbolicRef head = new SymbolicRef("HEAD", master);
+               String message = formatter.format(Arrays.asList(a), head);
+               assertEquals("Merge branch 'a'", message);
+       }
 }
index cb2f8a522c2785abd842056831a6f20d6c148356..cdd7a2f371a903b8cf3bd9c163259f8582716cdb 100644 (file)
@@ -113,7 +113,8 @@ public class MergeMessageFormatter {
 
                sb.append(StringUtils.join(listings, ", "));
 
-               if (!target.getName().equals(Constants.R_HEADS + Constants.MASTER)) {
+               String targetName = target.getLeaf().getName();
+               if (!targetName.equals(Constants.R_HEADS + Constants.MASTER)) {
                        String targetShortName = Repository
                                        .shortenRefName(target.getName());
                        sb.append(" into " + targetShortName);