diff --git a/GitTfs.Vs11/GitTfs.Vs11.csproj b/GitTfs.Vs11/GitTfs.Vs11.csproj
index d4828069..cbeed3f8 100644
--- a/GitTfs.Vs11/GitTfs.Vs11.csproj
+++ b/GitTfs.Vs11/GitTfs.Vs11.csproj
@@ -75,6 +75,7 @@
+
diff --git a/GitTfs.Vs11/Wrappers.Vs11.cs b/GitTfs.Vs11/Wrappers.Vs11.cs
new file mode 100644
index 00000000..9d735d3d
--- /dev/null
+++ b/GitTfs.Vs11/Wrappers.Vs11.cs
@@ -0,0 +1,23 @@
+using System.Collections.Generic;
+using Microsoft.TeamFoundation.VersionControl.Client;
+using Sep.Git.Tfs.Core.TfsInterop;
+
+namespace Sep.Git.Tfs.VsCommon
+{
+ public partial class WrapperForWorkspace
+ {
+ public int Checkin(IPendingChange[] changes, string comment, ICheckinNote checkinNote, IEnumerable workItemChanges,
+ TfsPolicyOverrideInfo policyOverrideInfo, bool overrideGatedCheckIn)
+ {
+ var checkinParameters = new WorkspaceCheckInParameters(_bridge.Unwrap(changes), comment)
+ {
+ CheckinNotes = _bridge.Unwrap(checkinNote),
+ AssociatedWorkItems = _bridge.Unwrap(workItemChanges),
+ PolicyOverride = ToTfs(policyOverrideInfo),
+ OverrideGatedCheckIn = overrideGatedCheckIn
+ };
+
+ return _workspace.CheckIn(checkinParameters);
+ }
+ }
+}
diff --git a/GitTfs.Vs2008/GitTfs.Vs2008.csproj b/GitTfs.Vs2008/GitTfs.Vs2008.csproj
index f571a9f0..b40add6d 100644
--- a/GitTfs.Vs2008/GitTfs.Vs2008.csproj
+++ b/GitTfs.Vs2008/GitTfs.Vs2008.csproj
@@ -123,6 +123,7 @@
+
@@ -148,12 +149,12 @@
-
xcopy /y "$(TargetDir)*.dll" "$(SolutionDir)GitTfs\$(OutDir)"
diff --git a/GitTfs.Vs2008/Wrappers.Vs2008.cs b/GitTfs.Vs2008/Wrappers.Vs2008.cs
new file mode 100644
index 00000000..1f9dd04d
--- /dev/null
+++ b/GitTfs.Vs2008/Wrappers.Vs2008.cs
@@ -0,0 +1,20 @@
+using System.Collections.Generic;
+using Microsoft.TeamFoundation.VersionControl.Client;
+using Sep.Git.Tfs.Core.TfsInterop;
+
+namespace Sep.Git.Tfs.VsCommon
+{
+ public partial class WrapperForWorkspace
+ {
+ public int Checkin(IPendingChange[] changes, string comment, ICheckinNote checkinNote, IEnumerable workItemChanges,
+ TfsPolicyOverrideInfo policyOverrideInfo, bool overrideGatedCheckIn)
+ {
+ return _workspace.CheckIn(
+ _bridge.Unwrap(changes),
+ comment,
+ _bridge.Unwrap(checkinNote),
+ _bridge.Unwrap(workItemChanges),
+ ToTfs(policyOverrideInfo));
+ }
+ }
+}
diff --git a/GitTfs.Vs2010/GitTfs.Vs2010.csproj b/GitTfs.Vs2010/GitTfs.Vs2010.csproj
index 9a21cd1c..1a161ae3 100644
--- a/GitTfs.Vs2010/GitTfs.Vs2010.csproj
+++ b/GitTfs.Vs2010/GitTfs.Vs2010.csproj
@@ -113,6 +113,7 @@
+
@@ -138,12 +139,12 @@
-
xcopy /y "$(TargetDir)*.dll" "$(SolutionDir)GitTfs\$(OutDir)"
diff --git a/GitTfs.Vs2010/Wrappers.Vs2010.cs b/GitTfs.Vs2010/Wrappers.Vs2010.cs
new file mode 100644
index 00000000..9d735d3d
--- /dev/null
+++ b/GitTfs.Vs2010/Wrappers.Vs2010.cs
@@ -0,0 +1,23 @@
+using System.Collections.Generic;
+using Microsoft.TeamFoundation.VersionControl.Client;
+using Sep.Git.Tfs.Core.TfsInterop;
+
+namespace Sep.Git.Tfs.VsCommon
+{
+ public partial class WrapperForWorkspace
+ {
+ public int Checkin(IPendingChange[] changes, string comment, ICheckinNote checkinNote, IEnumerable workItemChanges,
+ TfsPolicyOverrideInfo policyOverrideInfo, bool overrideGatedCheckIn)
+ {
+ var checkinParameters = new WorkspaceCheckInParameters(_bridge.Unwrap(changes), comment)
+ {
+ CheckinNotes = _bridge.Unwrap(checkinNote),
+ AssociatedWorkItems = _bridge.Unwrap(workItemChanges),
+ PolicyOverride = ToTfs(policyOverrideInfo),
+ OverrideGatedCheckIn = overrideGatedCheckIn
+ };
+
+ return _workspace.CheckIn(checkinParameters);
+ }
+ }
+}
diff --git a/GitTfs.VsCommon/Wrappers.cs b/GitTfs.VsCommon/Wrappers.cs
index 05137c68..f07e1d05 100644
--- a/GitTfs.VsCommon/Wrappers.cs
+++ b/GitTfs.VsCommon/Wrappers.cs
@@ -379,7 +379,7 @@ namespace Sep.Git.Tfs.VsCommon
}
}
- public class WrapperForWorkspace : WrapperFor, IWorkspace
+ public partial class WrapperForWorkspace : WrapperFor, IWorkspace
{
private readonly TfsApiBridge _bridge;
private readonly Workspace _workspace;
@@ -400,17 +400,6 @@ namespace Sep.Git.Tfs.VsCommon
_workspace.Shelve(_bridge.Unwrap(shelveset), _bridge.Unwrap(changes), _bridge.Convert(options));
}
- public int Checkin(IPendingChange[] changes, string comment, ICheckinNote checkinNote, IEnumerable workItemChanges,
- TfsPolicyOverrideInfo policyOverrideInfo)
- {
- return _workspace.CheckIn(
- _bridge.Unwrap(changes),
- comment,
- _bridge.Unwrap(checkinNote),
- _bridge.Unwrap(workItemChanges),
- ToTfs(policyOverrideInfo));
- }
-
private PolicyOverrideInfo ToTfs(TfsPolicyOverrideInfo policyOverrideInfo)
{
if (policyOverrideInfo == null)
diff --git a/GitTfs/Commands/CheckinOptions.cs b/GitTfs/Commands/CheckinOptions.cs
index ce720266..2e82fbd7 100644
--- a/GitTfs/Commands/CheckinOptions.cs
+++ b/GitTfs/Commands/CheckinOptions.cs
@@ -25,6 +25,8 @@ namespace Sep.Git.Tfs.Commands
{ "w|work-item=:", "Associated work items\ne.g. -w12345 to associate with 12345\nor -w12345:resolve to resolve 12345",
(n, opt) => { if(n == null) throw new OptionException("Missing work item number for option -w.", "-w");
(opt == "resolve" ? WorkItemsToResolve : WorkItemsToAssociate).Add(n); } },
+ { "no-gate", "Disables gated checkin.",
+ v => { OverrideGatedCheckIn = true; } },
};
}
}
@@ -38,6 +40,7 @@ namespace Sep.Git.Tfs.Commands
public bool NoMerge { get; set; }
public string OverrideReason { get; set; }
public bool Force { get; set; }
+ public bool OverrideGatedCheckIn { get; set; }
public List WorkItemsToAssociate { get { return _workItemsToAssociate; } }
public List WorkItemsToResolve { get { return _workItemsToResolve; } }
}
diff --git a/GitTfs/Core/TfsInterop/IWorkspace.cs b/GitTfs/Core/TfsInterop/IWorkspace.cs
index 9a08ad93..35c35592 100644
--- a/GitTfs/Core/TfsInterop/IWorkspace.cs
+++ b/GitTfs/Core/TfsInterop/IWorkspace.cs
@@ -7,7 +7,7 @@ namespace Sep.Git.Tfs.Core.TfsInterop
IPendingChange[] GetPendingChanges();
ICheckinEvaluationResult EvaluateCheckin(TfsCheckinEvaluationOptions options, IPendingChange[] allChanges, IPendingChange[] changes, string comment, ICheckinNote checkinNote, IEnumerable workItemChanges);
void Shelve(IShelveset shelveset, IPendingChange[] changes, TfsShelvingOptions options);
- int Checkin(IPendingChange[] changes, string comment, ICheckinNote checkinNote, IEnumerable workItemChanges, TfsPolicyOverrideInfo policyOverrideInfo);
+ int Checkin(IPendingChange[] changes, string comment, ICheckinNote checkinNote, IEnumerable workItemChanges, TfsPolicyOverrideInfo policyOverrideInfo, bool overrideGatedCheckIn);
int PendAdd(string path);
int PendEdit(string path);
int PendDelete(string path);
diff --git a/GitTfs/Core/TfsWorkspace.cs b/GitTfs/Core/TfsWorkspace.cs
index 46172df4..972ee0c5 100644
--- a/GitTfs/Core/TfsWorkspace.cs
+++ b/GitTfs/Core/TfsWorkspace.cs
@@ -93,7 +93,7 @@ namespace Sep.Git.Tfs.Core
}
var policyOverride = GetPolicyOverrides(checkinProblems.Result);
- var newChangeset = _workspace.Checkin(pendingChanges, _checkinOptions.CheckinComment, null, workItemInfos, policyOverride);
+ var newChangeset = _workspace.Checkin(pendingChanges, _checkinOptions.CheckinComment, null, workItemInfos, policyOverride, _checkinOptions.OverrideGatedCheckIn);
if(newChangeset == 0)
{
throw new GitTfsException("Checkin failed!");