コード例 #1
0
        private string ProcessChangeset(ITfsChangeset changeset, LogEntry log)
        {
            if (ExportMetadatas)
            {
                if (changeset.Summary.Workitems.Any())
                {
                    var workItems = TranslateWorkItems(changeset.Summary.Workitems.Select(wi => new ExportWorkItem(wi)));
                    if (workItems != null)
                    {
                        log.Log += "\nWorkitems:";
                        foreach (var workItem in workItems)
                        {
                            log.Log += "\n#" + workItem.Id + " " + workItem.Title;
                        }
                    }
                }

                if (!string.IsNullOrWhiteSpace(changeset.Summary.PolicyOverrideComment))
                {
                    log.Log += "\n" + GitTfsConstants.GitTfsPolicyOverrideCommentPrefix + " " + changeset.Summary.PolicyOverrideComment;
                }

                foreach (var checkinNote in changeset.Summary.CheckinNotes)
                {
                    if (!string.IsNullOrWhiteSpace(checkinNote.Name) && !string.IsNullOrWhiteSpace(checkinNote.Value))
                    {
                        log.Log += "\n" + GitTfsConstants.GitTfsPrefix + "-" + CamelCaseToDelimitedStringConverter.Convert(checkinNote.Name, "-") + ": " + checkinNote.Value;
                    }
                }
            }

            var commitSha = Commit(log);

            UpdateTfsHead(commitSha, changeset.Summary.ChangesetId);
            StringBuilder metadatas = new StringBuilder();

            if (changeset.Summary.Workitems.Any())
            {
                string workitemNote = "Workitems:\n";
                foreach (var workitem in changeset.Summary.Workitems)
                {
                    var workitemId  = workitem.Id.ToString();
                    var workitemUrl = workitem.Url;
                    if (ExportMetadatas && ExportWorkitemsMapping.Count != 0)
                    {
                        if (ExportWorkitemsMapping.ContainsKey(workitemId))
                        {
                            var oldWorkitemId = workitemId;
                            workitemId  = ExportWorkitemsMapping[workitemId].Id;
                            workitemUrl = workitemUrl.Replace(oldWorkitemId, workitemId);
                        }
                    }
                    workitemNote += string.Format("[{0}] {1}\n    {2}\n", workitemId, workitem.Title, workitemUrl);
                }
                metadatas.Append(workitemNote);
            }

            if (!string.IsNullOrWhiteSpace(changeset.Summary.PolicyOverrideComment))
            {
                metadatas.Append("\nPolicy Override Comment: " + changeset.Summary.PolicyOverrideComment);
            }

            foreach (var checkinNote in changeset.Summary.CheckinNotes)
            {
                if (!string.IsNullOrWhiteSpace(checkinNote.Name) && !string.IsNullOrWhiteSpace(checkinNote.Value))
                {
                    metadatas.Append("\n" + checkinNote.Name + ": " + checkinNote.Value);
                }
            }

            if (!string.IsNullOrWhiteSpace(changeset.OmittedParentBranch))
            {
                metadatas.Append("\nOmitted parent branch: " + changeset.OmittedParentBranch);
            }

            if (metadatas.Length != 0)
            {
                Repository.CreateNote(commitSha, metadatas.ToString(), log.AuthorName, log.AuthorEmail, log.Date);
            }
            return(commitSha);
        }
コード例 #2
0
        public void ReturnsExpectedValue(string stringWithCamelCase, string delimiter, string expected)
        {
            var actual = CamelCaseToDelimitedStringConverter.Convert(stringWithCamelCase, delimiter);

            Assert.Equal(expected, actual);
        }