Exemplo n.º 1
0
 private string FromOriginalToTarget(TrackMergeInfo trackMergeInfo, string targetBranch)
 {
     var mergePath = trackMergeInfo.FromOriginalToSourceBranches.Concat(new[] { trackMergeInfo.SourceBranch, targetBranch })
         .Select(fullBranchName => BranchHelper.GetShortBranchName(fullBranchName, _aliases));
     var mergePathString = string.Join(_format.BranchDelimiter, mergePath);
     return mergePathString;
 }
Exemplo n.º 2
0
        private string FromOriginalToTargetFull(TrackMergeInfo trackMergeInfo, string targetBranch)
        {
            var mergePath       = trackMergeInfo.FromOriginalToSourceBranches.Concat(new[] { trackMergeInfo.SourceBranch, targetBranch });
            var mergePathString = string.Join(_format.BranchDelimiter, mergePath);

            return(mergePathString);
        }
Exemplo n.º 3
0
        private string FromOriginalToTarget(TrackMergeInfo trackMergeInfo, string targetBranch)
        {
            var mergePath = trackMergeInfo.FromOriginalToSourceBranches.Concat(new[] { trackMergeInfo.SourceBranch, targetBranch })
                            .Select(fullBranchName => BranchHelper.GetShortBranchName(fullBranchName));
            var mergePathString = string.Join(_format.BranchDelimiter, mergePath);

            return(mergePathString);
        }
Exemplo n.º 4
0
        public string Format(TrackMergeInfo trackMergeInfo, string targetBranch, MergeOption mergeOption)
        {
            var comment = mergeOption == MergeOption.KeepTarget ? _format.DiscardFormat : _format.Format;
            comment = comment
                .Replace("{OriginalBranch}", BranchHelper.GetShortBranchName(trackMergeInfo.OriginaBranch, _aliases))
                .Replace("{OriginalBranchFull}", trackMergeInfo.OriginaBranch)
                .Replace("{SourceBranch}", BranchHelper.GetShortBranchName(trackMergeInfo.SourceBranch, _aliases))
                .Replace("{SourceBranchFull}", trackMergeInfo.SourceBranch)
                .Replace("{TargetBranch}", BranchHelper.GetShortBranchName(targetBranch, _aliases))
                .Replace("{TargetBranchFull}", targetBranch)
                .Replace("{FromOriginalToTarget}", FromOriginalToTarget(trackMergeInfo, targetBranch))
                .Replace("{FromOriginalToTargetFull}", FromOriginalToTargetFull(trackMergeInfo, targetBranch))
                .Replace("{OriginalComment}", trackMergeInfo.OriginalComment)
                .Replace("{SourceComment}", trackMergeInfo.SourceComment)
                .Replace("{SourceChangesetId}", trackMergeInfo.SourceChangesetId.ToString(CultureInfo.InvariantCulture))
                .Replace("{SourceWorkItemIds}", GetWorkItemIds(trackMergeInfo.SourceWorkItemIds));

            return comment;
        }
Exemplo n.º 5
0
        public string Format(TrackMergeInfo trackMergeInfo, string targetBranch, MergeOption mergeOption)
        {
            var comment = mergeOption == MergeOption.KeepTarget ? _format.DiscardFormat : _format.Format;

            comment = comment
                      .Replace("{OriginalBranch}", BranchHelper.GetShortBranchName(trackMergeInfo.OriginaBranch))
                      .Replace("{OriginalBranchFull}", trackMergeInfo.OriginaBranch)
                      .Replace("{SourceBranch}", BranchHelper.GetShortBranchName(trackMergeInfo.SourceBranch))
                      .Replace("{SourceBranchFull}", trackMergeInfo.SourceBranch)
                      .Replace("{TargetBranch}", BranchHelper.GetShortBranchName(targetBranch))
                      .Replace("{TargetBranchFull}", targetBranch)
                      .Replace("{FromOriginalToTarget}", FromOriginalToTarget(trackMergeInfo, targetBranch))
                      .Replace("{FromOriginalToTargetFull}", FromOriginalToTargetFull(trackMergeInfo, targetBranch))
                      .Replace("{OriginalComment}", trackMergeInfo.OriginalComment)
                      .Replace("{SourceComment}", trackMergeInfo.SourceComment)
                      .Replace("{SourceChangesetId}", trackMergeInfo.SourceChangesetId.ToString(CultureInfo.InvariantCulture))
                      .Replace("{SourceWorkItemIds}", GetWorkItemIds(trackMergeInfo.SourceWorkItemIds))
                      .Replace("{SourceWorkItemTitles}", GetWorkItemTitles(trackMergeInfo.SourceWorkItemTitles));

            return(comment);
        }
Exemplo n.º 6
0
 private string FromOriginalToTargetFull(TrackMergeInfo trackMergeInfo, string targetBranch)
 {
     var mergePath = trackMergeInfo.FromOriginalToSourceBranches.Concat(new[] { trackMergeInfo.SourceBranch, targetBranch });
     var mergePathString = string.Join(_format.BranchDelimiter, mergePath);
     return mergePathString;
 }
Exemplo n.º 7
0
        private TrackMergeInfo GetTrackMergeInfo(VersionControlServer versionControl,
            IEnumerable<ExtendedMerge> allTrackMerges,
            string sourcePath)
        {
            var result = new TrackMergeInfo
            {
                FromOriginalToSourceBranches = new List<string>(),
            };
            var trackMerges = allTrackMerges.Where(m => m.TargetItem.Item == sourcePath).ToArray();
            if (!trackMerges.IsNullOrEmpty())
            {
                var changesetIds = trackMerges.Select(t => t.SourceChangeset.ChangesetId).ToArray();
                var mergeSourceBranches = _changesetService.GetAssociatedBranches(changesetIds)
                    .Select(b => b.Item)
                    .Distinct()
                    .ToArray();

                if (mergeSourceBranches.Length == 1)
                {
                    result.FromOriginalToSourceBranches.Add(mergeSourceBranches[0]);

                    var sourceFolder = trackMerges.First().SourceItem.Item.ServerItem;
                    var comment = trackMerges.First().SourceChangeset.Comment;
                    if (trackMerges.Length > 1)
                    {
                        foreach (var merge in trackMerges.Skip(1))
                            sourceFolder = FindShareFolder(sourceFolder, merge.SourceItem.Item.ServerItem);
                        comment = "source changeset has several comments";
                    }

                    var sourceMergesRelationships = versionControl.QueryMergeRelationships(sourceFolder)
                    .Where(r => !r.IsDeleted)
                    .ToArray();

                    var sourceTrackMerges = versionControl.TrackMerges(changesetIds,
                        new ItemIdentifier(sourceFolder),
                        sourceMergesRelationships,
                        null);

                    var sourceTrackMergeInfo = GetTrackMergeInfo(versionControl, sourceTrackMerges, sourceFolder);

                    if (!sourceTrackMergeInfo.FromOriginalToSourceBranches.IsNullOrEmpty())
                    {
                        result.FromOriginalToSourceBranches.AddRange(sourceTrackMergeInfo.FromOriginalToSourceBranches);
                        result.OriginalComment = sourceTrackMergeInfo.OriginalComment;
                        result.OriginaBranch = sourceTrackMergeInfo.OriginaBranch;
                    }
                    else
                    {
                        result.OriginalComment = comment;
                        result.OriginaBranch = mergeSourceBranches[0];
                    }
                }
                else
                {
                    result.FromOriginalToSourceBranches.Add("multi");
                    result.OriginaBranch = "multi";
                    result.OriginalComment = "source changeset has several comments";
                }
            }

            return result;
        }