MCPcopy
hub / github.com/harness/harness / modifyHeader

Function modifyHeader

git/api/diff.go:54–89  ·  view source on GitHub ↗

modifyHeader needs to modify diff hunk header with the new start line and end line with calculated span. if diff hunk header is -100, 50 +100, 50 and startLine = 120, endLine=140 then we need to modify header to -120,20 +120,20. warning: changes are possible and param endLine may not exist in the fu

(hunk parser.HunkHeader, startLine, endLine int)

Source from the content-addressed store, hash-verified

52// then we need to modify header to -120,20 +120,20.
53// warning: changes are possible and param endLine may not exist in the future.
54func modifyHeader(hunk parser.HunkHeader, startLine, endLine int) []byte {
55 oldStartLine := hunk.OldLine
56 newStartLine := hunk.NewLine
57 oldSpan := hunk.OldSpan
58 newSpan := hunk.NewSpan
59
60 oldEndLine := oldStartLine + oldSpan
61 newEndLine := newStartLine + newSpan
62
63 if startLine > 0 {
64 if startLine < oldEndLine {
65 oldStartLine = startLine
66 }
67
68 if startLine < newEndLine {
69 newStartLine = startLine
70 }
71 }
72
73 if endLine > 0 {
74 if endLine < oldEndLine {
75 oldSpan = endLine - startLine
76 } else if oldEndLine > startLine {
77 oldSpan = oldEndLine - startLine
78 }
79
80 if endLine < newEndLine {
81 newSpan = endLine - startLine
82 } else if newEndLine > startLine {
83 newSpan = newEndLine - startLine
84 }
85 }
86
87 return []byte(fmt.Sprintf("@@ -%d,%d +%d,%d @@",
88 oldStartLine, oldSpan, newStartLine, newSpan))
89}
90
91// cutLinesFromFullFileDiff reads from r and writes to w headers and between
92// startLine and endLine. if startLine and endLine is equal to 0 then it uses io.Copy

Callers 2

cutLinesFromFullFileDiffFunction · 0.85
Test_modifyHeaderFunction · 0.85

Calls

no outgoing calls

Tested by 1

Test_modifyHeaderFunction · 0.68

Used in the wild real call sites across dependent graphs

searching dependent graphs…