From 64c3501f4c889f21226d0a7734549553f2e624c0 Mon Sep 17 00:00:00 2001 From: Dmirty Krychkov Date: Sat, 25 Feb 2012 17:02:52 +1000 Subject: [PATCH] Fixed issue #148 --- GitTfs.VsCommon/Wrappers.cs | 58 ++++++++++++++++++++++--------------- 1 file changed, 35 insertions(+), 23 deletions(-) diff --git a/GitTfs.VsCommon/Wrappers.cs b/GitTfs.VsCommon/Wrappers.cs index a37b6df9..7a0a5a08 100644 --- a/GitTfs.VsCommon/Wrappers.cs +++ b/GitTfs.VsCommon/Wrappers.cs @@ -1,14 +1,14 @@ using System; +using System.Collections.Generic; using System.Diagnostics; +using System.IO; using Microsoft.TeamFoundation.Server; using Microsoft.TeamFoundation.VersionControl.Client; using Sep.Git.Tfs.Core.TfsInterop; -using System.Collections.Generic; -using System.IO; namespace Sep.Git.Tfs.VsCommon { - public class WrapperForVersionControlServer :WrapperFor, IVersionControlServer + public class WrapperForVersionControlServer : WrapperFor, IVersionControlServer { private readonly TfsApiBridge _bridge; private readonly VersionControlServer _versionControlServer; @@ -37,15 +37,18 @@ namespace Sep.Git.Tfs.VsCommon DeletedState.NonDeleted, ItemType.Any, true - ); + ); return _bridge.Wrap(itemSet.Items); } - public IEnumerable QueryHistory(string path, int version, int deletionId, - TfsRecursionType recursion, string user, int versionFrom, int versionTo, int maxCount, - bool includeChanges, bool slotMode, bool includeDownloadInfo) + public IEnumerable QueryHistory(string path, int version, int deletionId, + TfsRecursionType recursion, string user, int versionFrom, int versionTo, int maxCount, + bool includeChanges, bool slotMode, bool includeDownloadInfo) { - var history = _versionControlServer.QueryHistory(path, new ChangesetVersionSpec(version), deletionId, _bridge.Convert(recursion), user, new ChangesetVersionSpec(versionFrom), new ChangesetVersionSpec(versionTo), maxCount, includeChanges, slotMode, includeDownloadInfo); + var history = _versionControlServer.QueryHistory(path, new ChangesetVersionSpec(version), deletionId, + _bridge.Convert(recursion), user, new ChangesetVersionSpec(versionFrom), + new ChangesetVersionSpec(versionTo), maxCount, includeChanges, slotMode, + includeDownloadInfo); return _bridge.Wrap(history); } } @@ -61,7 +64,7 @@ namespace Sep.Git.Tfs.VsCommon _changeset = changeset; } - public IChange [] Changes + public IChange[] Changes { get { return _bridge.Wrap(_changeset.Changes); } } @@ -72,7 +75,7 @@ namespace Sep.Git.Tfs.VsCommon { var committer = _changeset.Committer; var owner = _changeset.Owner; - + // Sometimes TFS itself commits the changeset if (owner != committer) return owner; @@ -248,7 +251,8 @@ namespace Sep.Git.Tfs.VsCommon public class WrapperForCheckinNote : WrapperFor, ICheckinNote { public WrapperForCheckinNote(CheckinNote checkiNote) : base(checkiNote) - {} + { + } } public class WrapperForCheckinEvaluationResult : WrapperFor, ICheckinEvaluationResult @@ -386,17 +390,18 @@ namespace Sep.Git.Tfs.VsCommon _workspace = workspace; } - public IPendingChange [] GetPendingChanges() + public IPendingChange[] GetPendingChanges() { return _bridge.Wrap(_workspace.GetPendingChanges()); } - public void Shelve(IShelveset shelveset, IPendingChange [] changes, TfsShelvingOptions options) + public void Shelve(IShelveset shelveset, IPendingChange[] changes, TfsShelvingOptions options) { _workspace.Shelve(_bridge.Unwrap(shelveset), _bridge.Unwrap(changes), _bridge.Convert(options)); } - public int Checkin(IPendingChange[] changes, string comment, ICheckinNote checkinNote, IEnumerable workItemChanges, TfsPolicyOverrideInfo policyOverrideInfo) + public int Checkin(IPendingChange[] changes, string comment, ICheckinNote checkinNote, IEnumerable workItemChanges, + TfsPolicyOverrideInfo policyOverrideInfo) { return _workspace.CheckIn( _bridge.Unwrap(changes), @@ -414,7 +419,8 @@ namespace Sep.Git.Tfs.VsCommon _bridge.Unwrap(policyOverrideInfo.Failures)); } - public ICheckinEvaluationResult EvaluateCheckin(TfsCheckinEvaluationOptions options, IPendingChange[] allChanges, IPendingChange[] changes, string comment, ICheckinNote checkinNote, IEnumerable workItemChanges) + public ICheckinEvaluationResult EvaluateCheckin(TfsCheckinEvaluationOptions options, IPendingChange[] allChanges, IPendingChange[] changes, + string comment, ICheckinNote checkinNote, IEnumerable workItemChanges) { return _bridge.Wrap(_workspace.EvaluateCheckin( _bridge.Convert(options), @@ -442,17 +448,11 @@ namespace Sep.Git.Tfs.VsCommon public int PendRename(string pathFrom, string pathTo) { - //looks like TFS Api cannot overwrite existing target file - EnsureTargetFileDoesNotExist(pathTo); + TfsApiLimitations.PendRename.EnsureTargetFileDoesNotExist(pathTo); return _workspace.PendRename(pathFrom, pathTo); } - private void EnsureTargetFileDoesNotExist(string pathTo) - { - File.Delete(pathTo); - } - public void ForceGetFile(string path, int changeset) { var item = new ItemSpec(path, RecursionType.None); @@ -464,4 +464,16 @@ namespace Sep.Git.Tfs.VsCommon get { return _workspace.OwnerName; } } } -} + + internal class TfsApiLimitations + { + internal class PendRename + { + internal static void EnsureTargetFileDoesNotExist(string pathTo) + { + if (File.Exists(pathTo)) + File.Delete(pathTo); + } + } + } +} \ No newline at end of file