using System;
using LibGit2Sharp.Core;
using LibGit2Sharp.Handlers;
namespace LibGit2Sharp
{
///
/// Options controlling Merge behavior.
///
public sealed class MergeOptions : MergeAndCheckoutOptionsBase
{
///
/// Initializes a new instance of the class.
///
/// Default behavior:
/// A fast-forward merge will be performed if possible, unless the merge.ff configuration option is set.
/// A merge commit will be committed, if one was created.
/// Merge will attempt to find renames.
///
///
public MergeOptions()
{
}
///
/// The type of merge to perform.
///
public FastForwardStrategy FastForwardStrategy { get; set; }
}
///
/// Strategy used for merging.
///
public enum FastForwardStrategy
{
///
/// Default fast-forward strategy. If the merge.ff configuration option is set,
/// it will be used. If it is not set, this will perform a fast-forward merge if
/// possible, otherwise a non-fast-forward merge that results in a merge commit.
///
Default = 0,
///
/// Do not fast-forward. Always creates a merge commit.
///
[Obsolete("This enum member will be removed in the next release. Please use NoFastForward instead.")]
NoFastFoward = 1, /* GIT_MERGE_NO_FASTFORWARD */
///
/// Do not fast-forward. Always creates a merge commit.
///
NoFastForward = 1, /* GIT_MERGE_NO_FASTFORWARD */
///
/// Only perform fast-forward merges.
///
FastForwardOnly = 2, /* GIT_MERGE_FASTFORWARD_ONLY */
}
}