Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 353876

Summary: JGit detects multiple merge-bases, MSysGit/Native Git detects one merge-base
Product: [Technology] JGit Reporter: Manuel Doninger <manuel.doninger>
Component: JGitAssignee: Project Inbox <jgit.core-inbox>
Status: CLOSED DUPLICATE QA Contact:
Severity: normal    
Priority: P3 CC: bklarson, christian.halstrick, matthias.sohn, robin
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Windows XP   
Whiteboard:
Attachments:
Description Flags
Screenshot with exception and history
none
Test repository to reproduce the error none

Description Manuel Doninger CLA 2011-08-04 08:04:38 EDT
Build Identifier: I20110613-1736

I have a branch structure like in the screenshot.
If i want to merge the branch production (362055b6) into development (9b016d89), i get the exception with multiple merge-bases. However, if i execute git merge-base production development, i get the commit 9f93c46e as (single) merge-base.

Strack trace:
org.eclipse.jgit.api.errors.JGitInternalException: Exception caught during execution of merge command. java.io.IOException: Multiple merge bases for:
  9b016d8943e230fb0ec9b01c11395d7b15b518e9
  362055b678aee1accaab4d2ca788523f1efcf929 found:
  9f93c46e5f902ff148a8a968cb5b5ccf8df934ad
  36015871c7718b57bc0b33378f031ecc40dc49b6
	at org.eclipse.jgit.api.MergeCommand.call(MergeCommand.java:251)
	at org.eclipse.egit.core.op.MergeOperation$1.run(MergeOperation.java:108)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2344)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2326)
	at org.eclipse.egit.core.op.MergeOperation.execute(MergeOperation.java:128)
	at org.eclipse.egit.ui.internal.repository.tree.command.MergeCommand$1.run(MergeCommand.java:96)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Caused by: java.io.IOException: Multiple merge bases for:
  9b016d8943e230fb0ec9b01c11395d7b15b518e9
  362055b678aee1accaab4d2ca788523f1efcf929 found:
  9f93c46e5f902ff148a8a968cb5b5ccf8df934ad
  36015871c7718b57bc0b33378f031ecc40dc49b6
	at org.eclipse.jgit.merge.Merger.getBaseCommit(Merger.java:214)
	at org.eclipse.jgit.merge.Merger.mergeBase(Merger.java:179)
	at org.eclipse.jgit.merge.ThreeWayMerger.mergeBase(ThreeWayMerger.java:146)
	at org.eclipse.jgit.merge.ResolveMerger.mergeImpl(ResolveMerger.java:186)
	at org.eclipse.jgit.merge.Merger.merge(Merger.java:156)
	at org.eclipse.jgit.merge.ThreeWayMerger.merge(ThreeWayMerger.java:133)
	at org.eclipse.jgit.merge.ThreeWayMerger.merge(ThreeWayMerger.java:126)
	at org.eclipse.jgit.api.MergeCommand.call(MergeCommand.java:207)
	... 6 more

Reproducible: Always

Steps to Reproduce:
1. Since it's an internal company repository, i cannot publish it. I'll try, if i can produce that history with a test repository
2.
3.
Comment 1 Manuel Doninger CLA 2011-08-04 08:06:25 EDT
Created attachment 200909 [details]
Screenshot with exception and history
Comment 2 Manuel Doninger CLA 2011-09-09 03:39:30 EDT
Created attachment 203042 [details]
Test repository to reproduce the error

test repository. To get the error, merge branch master into branch prod with EGit.
Comment 3 Kevin Sawicki CLA 2011-12-27 12:13:09 EST
It looks like multiple merge bases do exist in the test repository you included.

git merge-base -a prod master

outputs the same commits that JGit generates an exception for.
Comment 4 Matthias Sohn CLA 2012-04-19 02:59:07 EDT
 can we close this or do you still see a problem here ?
Comment 5 Brad Larson CLA 2012-05-09 15:35:54 EDT
I think the bigger problem is that cgit can create a merge here, but jgit cannot.  This is effecting Gerrit as well - see http://code.google.com/p/gerrit/issues/detail?id=1374
Comment 6 Robin Stocker CLA 2012-08-28 12:01:17 EDT
Closed as a duplicate of bug 380314, as that one has a better description.

*** This bug has been marked as a duplicate of bug 380314 ***