public void Shelve(string shelvesetName, bool evaluateCheckinPolicies, CheckinOptions checkinOptions, Func <string> generateCheckinComment) { var pendingChanges = _workspace.GetPendingChanges(); if (pendingChanges.IsEmpty()) { throw new GitTfsException("Nothing to shelve!"); } var shelveset = _tfsHelper.CreateShelveset(_workspace, shelvesetName); shelveset.Comment = string.IsNullOrWhiteSpace(_checkinOptions.CheckinComment) && !_checkinOptions.NoGenerateCheckinComment ? generateCheckinComment() : _checkinOptions.CheckinComment; shelveset.WorkItemInfo = GetWorkItemInfos(checkinOptions).ToArray(); if (evaluateCheckinPolicies) { var checkinProblems = _policyEvaluator.EvaluateCheckin(_workspace, pendingChanges, shelveset.Comment, null, shelveset.WorkItemInfo); TraceCheckinPolicyErrors(checkinProblems, false); } _workspace.Shelve(shelveset, pendingChanges, _checkinOptions.Force ? TfsShelvingOptions.Replace : TfsShelvingOptions.None); }
public void Shelve(string shelvesetName, bool evaluateCheckinPolicies, Func <string> generateCheckinComment) { var pendingChanges = _workspace.GetPendingChanges(); if (pendingChanges.IsEmpty()) { throw new GitTfsException("Nothing to shelve!"); } var shelveset = _tfsHelper.CreateShelveset(_workspace, shelvesetName); shelveset.Comment = string.IsNullOrWhiteSpace(_checkinOptions.CheckinComment) && !_checkinOptions.NoGenerateCheckinComment ? generateCheckinComment() : _checkinOptions.CheckinComment; shelveset.WorkItemInfo = GetWorkItemInfos().ToArray(); if (evaluateCheckinPolicies) { foreach (var message in _policyEvaluator.EvaluateCheckin(_workspace, pendingChanges, shelveset.Comment, null, shelveset.WorkItemInfo).Messages) { _stdout.WriteLine("[Checkin Policy] " + message); } } _workspace.Shelve(shelveset, pendingChanges, _checkinOptions.Force ? TfsShelvingOptions.Replace : TfsShelvingOptions.None); }