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; } }
public HunkRangeInfo(HunkRange originaleHunkRange, HunkRange newHunkRange, IEnumerable <string> diffLines) : this(originaleHunkRange, newHunkRange, diffLines, false) { }