Пример #1
0
        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);
        }