private int PerformCheckin(TfsChangesetInfo parentChangeset, string refToCheckin)
{
var newChangesetId = DoCheckin(parentChangeset, refToCheckin);
if (_checkinOptions.NoMerge)
{
Trace.TraceInformation("TFS Changeset #" + newChangesetId + " was created.");
parentChangeset.Remote.Fetch();
}
else
{
Trace.TraceInformation("TFS Changeset #" + newChangesetId + " was created. Marking it as a merge commit...");
parentChangeset.Remote.FetchWithMerge(newChangesetId, false, refToCheckin);
if (refToCheckin == "HEAD")
parentChangeset.Remote.Repository.Merge(parentChangeset.Remote.MaxCommitHash);
}
Trace.WriteLine("Cleaning...");
parentChangeset.Remote.CleanupWorkspaceDirectory();
return GitTfsExitCodes.OK;
}