a06f331eb8
install-script / powershell-syntax (push) Waiting to run
CI / benchmark (push) Has been skipped
install-script / posix-syntax (push) Successful in 6m1s
install-script / install (macos-14) (push) Waiting to run
install-script / install (ubuntu-latest) (push) Waiting to run
CI / build-onnx (push) Failing after 6m43s
init-smoke / dry-run (push) Failing after 15m57s
security / govulncheck (push) Has been cancelled
security / trivy-fs (push) Has been cancelled
CI / test (1.26, ubuntu-latest) (push) Has been cancelled
Scorecard supply-chain security / Scorecard analysis (push) Has been cancelled
CI / test (1.26, macos-latest) (push) Has been cancelled
CI / build-windows (push) Has been cancelled
CI / lint (push) Has been cancelled
28 lines
824 B
Go
28 lines
824 B
Go
package mcp
|
|
|
|
import (
|
|
"github.com/pmezard/go-difflib/difflib"
|
|
)
|
|
|
|
// unifiedDiff renders a standard unified diff (3 lines of context) between
|
|
// oldContent and newContent, labelled with the given repo-relative path. It
|
|
// powers the dry_run previews of the edit tools so an agent can see exactly
|
|
// what a write would change — and review it — before committing the edit.
|
|
// Returns "" when the inputs are identical or a diff cannot be produced.
|
|
func unifiedDiff(path, oldContent, newContent string) string {
|
|
if oldContent == newContent {
|
|
return ""
|
|
}
|
|
out, err := difflib.GetUnifiedDiffString(difflib.UnifiedDiff{
|
|
A: difflib.SplitLines(oldContent),
|
|
B: difflib.SplitLines(newContent),
|
|
FromFile: "a/" + path,
|
|
ToFile: "b/" + path,
|
|
Context: 3,
|
|
})
|
|
if err != nil {
|
|
return ""
|
|
}
|
|
return out
|
|
}
|