using System;
using System.Collections.Generic;
using LibGit2Sharp.Core;
namespace LibGit2Sharp
{
///
/// The results of a merge of two trees.
///
public class MergeTreeResult
{
///
/// Needed for mocking purposes.
///
protected MergeTreeResult()
{ }
internal MergeTreeResult(IEnumerable conflicts)
{
this.Status = MergeTreeStatus.Conflicts;
this.Conflicts = conflicts;
}
internal MergeTreeResult(Tree tree)
{
this.Status = MergeTreeStatus.Succeeded;
this.Tree = tree;
this.Conflicts = new List();
}
///
/// The status of the merge.
///
public virtual MergeTreeStatus Status
{
get;
private set;
}
///
/// The resulting tree of the merge.
/// This will return null
if the merge has been unsuccessful due to conflicts.
///
public virtual Tree Tree
{
get;
private set;
}
///
/// The resulting conflicts from the merge.
/// This will return null
if the merge was successful and there were no conflicts.
///
public virtual IEnumerable Conflicts
{
get;
private set;
}
}
///
/// The status of what happened as a result of a merge.
///
public enum MergeTreeStatus
{
///
/// Merge succeeded.
///
Succeeded,
///
/// Merge resulted in conflicts.
///
Conflicts,
}
}