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 */ } }