diff --git a/GitTfs/Commands/CheckinBase.cs b/GitTfs/Commands/CheckinBase.cs index 8d7a57c8..a11dd8f9 100644 --- a/GitTfs/Commands/CheckinBase.cs +++ b/GitTfs/Commands/CheckinBase.cs @@ -47,7 +47,7 @@ namespace Sep.Git.Tfs.Commands else { _stdout.WriteLine("TFS Changeset #" + newChangesetId + " was created. Marking it as a merge commit..."); - parentChangeset.Remote.FetchWithMerge(newChangesetId, false, null, refToCheckin); + parentChangeset.Remote.FetchWithMerge(newChangesetId, false, refToCheckin); if (refToCheckin == "HEAD") parentChangeset.Remote.Repository.Merge(parentChangeset.Remote.MaxCommitHash); diff --git a/GitTfs/Commands/Rcheckin.cs b/GitTfs/Commands/Rcheckin.cs index 1a1427c1..37e2c6c5 100644 --- a/GitTfs/Commands/Rcheckin.cs +++ b/GitTfs/Commands/Rcheckin.cs @@ -142,7 +142,7 @@ namespace Sep.Git.Tfs.Commands try { newChangesetId = tfsRemote.Checkin(target, currentParent, parentChangeset, commitSpecificCheckinOptions, tfsRepositoryPathOfMergedBranch); - var fetchResult = tfsRemote.FetchWithMerge(newChangesetId, false, null, rc.Parents); + var fetchResult = tfsRemote.FetchWithMerge(newChangesetId, false, rc.Parents); if (fetchResult.NewChangesetCount != 1) { var lastCommit = _globals.Repository.FindCommitHashByChangesetId(newChangesetId); @@ -210,7 +210,7 @@ namespace Sep.Git.Tfs.Commands _stdout.WriteLine("Starting checkin of {0} '{1}'", target.Substring(0, 8), commitSpecificCheckinOptions.CheckinComment); long newChangesetId = tfsRemote.Checkin(rc.Sha, parentChangeset, commitSpecificCheckinOptions, tfsRepositoryPathOfMergedBranch); - tfsRemote.FetchWithMerge(newChangesetId, false, null, rc.Parents); + tfsRemote.FetchWithMerge(newChangesetId, false, rc.Parents); if (tfsRemote.MaxChangesetId != newChangesetId) throw new GitTfsException("error: New TFS changesets were found. Rcheckin was not finished."); diff --git a/GitTfs/Core/IGitTfsRemote.cs b/GitTfs/Core/IGitTfsRemote.cs index 3670a218..110e3178 100644 --- a/GitTfs/Core/IGitTfsRemote.cs +++ b/GitTfs/Core/IGitTfsRemote.cs @@ -73,4 +73,12 @@ namespace Sep.Git.Tfs.Core void EnsureTfsAuthenticated(); bool MatchesUrlAndRepositoryPath(string tfsUrl, string tfsRepositoryPath); } + + public static class IGitTfsRemoteExt + { + public static IFetchResult FetchWithMerge(this IGitTfsRemote remote, long mergeChangesetId, bool stopOnFailMergeCommit = false, params string[] parentCommitsHashes) + { + return remote.FetchWithMerge(mergeChangesetId, stopOnFailMergeCommit, null, parentCommitsHashes); + } + } }