예제 #1
0
        public HunkRangeInfo(HunkRange originaleHunkRange, HunkRange newHunkRange, IEnumerable <string> diffLines, bool suppressRollback)
        {
            OriginalHunkRange = originaleHunkRange;
            NewHunkRange      = newHunkRange;
            DiffLines         = diffLines.ToList();
            SuppressRollback  = suppressRollback;

            IsAddition     = DiffLines.All(s => s.StartsWith("+") || s.StartsWith("\\") || string.IsNullOrWhiteSpace(s));
            IsDeletion     = DiffLines.All(s => s.StartsWith("-") || s.StartsWith("\\") || string.IsNullOrWhiteSpace(s));
            IsModification = !IsAddition && !IsDeletion;

            if (IsDeletion || IsModification)
            {
                OriginalText = DiffLines.Where(s => s.StartsWith("-")).Select(s => s.Remove(0, 1).TrimEnd('\n').TrimEnd('\r')).ToList();
            }

            // Perforce diff give line before deletion not after
            if (IsDeletion)
            {
                NewHunkRange.StartingLineNumber -= 1;
            }
        }
예제 #2
0
 public HunkRangeInfo(HunkRange originaleHunkRange, HunkRange newHunkRange, IEnumerable <string> diffLines)
     : this(originaleHunkRange, newHunkRange, diffLines, false)
 {
 }