* @param refName
* @return a {@link ReflogReader} for the supplied refname, or null if the
* named ref does not exist.
- * @throws IOException the ref could not be accessed.
+ * @throws IOException
+ * the ref could not be accessed.
+ * @since 3.0
*/
public abstract ReflogReader getReflogReader(String refName)
throws IOException;
/**
* Recursive strategy to merge paths. It tries to merge also contents.
* Multiple merge bases are supported
+ * @since 3.0
*/
public static final ThreeWayMergeStrategy RECURSIVE = new StrategyRecursive();
* one of the input objects is not a commit.
* @throws IOException
* objects are missing or multiple merge bases were found.
+ * @since 3.0
*/
protected AbstractTreeIterator mergeBase(RevCommit a, RevCommit b)
throws IOException {
* one of the input objects is not a commit.
* @throws IOException
* objects are missing or multiple merge bases were found.
+ * @since 3.0
*/
protected RevCommit getBaseCommit(RevCommit a, RevCommit b)
throws IncorrectObjectTypeException, IOException {
* - uses "Lists" instead of Arrays for chained types
*
* - recursively merges the merge bases together to compute a usable base
- *
+ * @since 3.0
*/
-
public class RecursiveMerger extends ResolveMerger {
static Logger log = Logger.getLogger(RecursiveMerger.class.toString());
/**
* string versions of a list of commit SHA1s
+ *
+ * @since 3.0
*/
protected String commitNames[];
/**
* merge result as tree
+ *
+ * @since 3.0
*/
protected ObjectId resultTree;
* created as temporary files and a new empty, in-memory dircache will be
* used instead the repo's one. Often used for bare repos where the repo
* doesn't even have a workingtree and dircache.
+ * @since 3.0
*/
protected boolean inCore;
* repository and should handle locking and unlocking of the dircache. If
* this merger should work in-core or if an explicit dircache was specified
* during construction then this field is set to false.
+ * @since 3.0
*/
protected boolean implicitDirCache;
/**
* Directory cache
+ * @since 3.0
*/
protected DirCache dircache;
/**
* The iterator to access the working tree. If set to <code>null</code> this
* merger will not touch the working tree.
+ * @since 3.0
*/
protected WorkingTreeIterator workingTreeIterator;
/**
* our merge algorithm
+ * @since 3.0
*/
protected MergeAlgorithm mergeAlgorithm;
* @param mergeTree
* @return whether the trees merged cleanly
* @throws IOException
+ * @since 3.0
*/
protected boolean mergeTrees(AbstractTreeIterator baseTree,
RevTree headTree, RevTree mergeTree) throws IOException {
* @throws IOException
* the repository could not be accessed to configure the rest of
* the builder's parameters.
+ * @since 3.0
*/
public static Repository create(File gitDir) throws IOException {
return new FileRepositoryBuilder().setGitDir(gitDir).readEnvironment()
* {@link #setLockMessage(String)}.
* @throws IOException
* the stream is malformed, or contains corrupt objects.
+ * @since 3.0
*/
public final PackLock parse(ProgressMonitor progress) throws IOException {
return parse(progress, progress);
* {@link #setLockMessage(String)}.
* @throws IOException
* the stream is malformed, or contains corrupt objects.
+ * @since 3.0
*/
public PackLock parse(ProgressMonitor receiving, ProgressMonitor resolving)
throws IOException {
* @return statistics about pack output, if a pack was sent. Null if no pack
* was sent, such as during the negotation phase of a smart HTTP
* connection, or if the client was already up-to-date.
+ * @since 3.0
*/
public PackWriter.Statistics getPackStatistics() {
return statistics;
return new UploadPackLoggerChain(newLoggers, i);
}
+ /**
+ * @since 3.0
+ */
public void onPackStatistics(PackWriter.Statistics stats) {
for (int i = 0; i < count; i++)
loggers[i].onPackStatistics(stats);
/**
* @return how stat data is compared
- * @since 2.3
+ * @since 3.0
*/
public CheckStat getCheckStat() {
return checkStat;