org.eclipse.jgit.merge
Class ThreeWayMerger

java.lang.Object
  extended by org.eclipse.jgit.merge.Merger
      extended by org.eclipse.jgit.merge.ThreeWayMerger
Direct Known Subclasses:
ResolveMerger

public abstract class ThreeWayMerger
extends Merger

A merge of 2 trees, using a common base ancestor tree.


Field Summary
 
Fields inherited from class org.eclipse.jgit.merge.Merger
db, reader, sourceCommits, sourceObjects, sourceTrees, walk
 
Constructor Summary
protected ThreeWayMerger(Repository local)
          Create a new merge instance for a repository.
protected ThreeWayMerger(Repository local, boolean inCore)
          Create a new merge instance for a repository.
 
Method Summary
 boolean merge(AnyObjectId... tips)
          Merge together two or more tree-ish objects.
protected  AbstractTreeIterator mergeBase()
          Create an iterator to walk the merge base.
 void setBase(AnyObjectId id)
          Set the common ancestor tree.
 
Methods inherited from class org.eclipse.jgit.merge.Merger
getBaseCommit, getObjectInserter, getRepository, getResultTreeId, mergeBase, mergeImpl, openTree
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ThreeWayMerger

protected ThreeWayMerger(Repository local)
Create a new merge instance for a repository.

Parameters:
local - the repository this merger will read and write data on.

ThreeWayMerger

protected ThreeWayMerger(Repository local,
                         boolean inCore)
Create a new merge instance for a repository.

Parameters:
local - the repository this merger will read and write data on.
inCore - perform the merge in core with no working folder involved
Method Detail

setBase

public void setBase(AnyObjectId id)
             throws MissingObjectException,
                    IncorrectObjectTypeException,
                    IOException
Set the common ancestor tree.

Parameters:
id - common base treeish; null to automatically compute the common base from the input commits during merge(AnyObjectId...).
Throws:
IncorrectObjectTypeException - the object is not a treeish.
MissingObjectException - the object does not exist.
IOException - the object could not be read.

merge

public boolean merge(AnyObjectId... tips)
              throws IOException
Description copied from class: Merger
Merge together two or more tree-ish objects.

Any tree-ish may be supplied as inputs. Commits and/or tags pointing at trees or commits may be passed as input objects.

Overrides:
merge in class Merger
Parameters:
tips - source trees to be combined together. The merge base is not included in this set.
Returns:
true if the merge was completed without conflicts; false if the merge strategy cannot handle this merge or there were conflicts preventing it from automatically resolving all paths.
Throws:
IncorrectObjectTypeException - one of the input objects is not a commit, but the strategy requires it to be a commit.
IOException - one or more sources could not be read, or outputs could not be written to the Repository.

mergeBase

protected AbstractTreeIterator mergeBase()
                                  throws IOException
Create an iterator to walk the merge base.

Returns:
an iterator over the caller-specified merge base, or the natural merge base of the two input commits.
Throws:
IOException


Copyright © 2012. All Rights Reserved.