Watch
1
0
Fork
You've already forked golang-github-pmezard-go-difflib
0
No description
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Daniel Baumann 46c5d781dc
Releasing fastforward version 1.0.0-4~ffwd13+u1.
Signed-off-by: Daniel Baumann <daniel@debian.org>
2026-09-26 07:14:11 +02:00
debian Releasing fastforward version 1.0.0-4~ffwd13+u1. 2026-09-26 07:14:11 +02:00
difflib Adding upstream version 1.0.0. 2026-09-26 07:13:59 +02:00
.travis.yml Adding upstream version 1.0.0. 2026-09-26 07:13:59 +02:00
LICENSE Adding upstream version 1.0.0. 2026-09-26 07:13:59 +02:00
README.md Adding upstream version 1.0.0. 2026-09-26 07:13:59 +02:00

go-difflib

Build Status GoDoc

Go-difflib is a partial port of python 3 difflib package. Its main goal was to make unified and context diff available in pure Go, mostly for testing purposes.

The following class and functions (and related tests) have be ported:

  • SequenceMatcher
  • unified_diff()
  • context_diff()

Installation

$ go get github.com/pmezard/go-difflib/difflib

Quick Start

Diffs are configured with Unified (or ContextDiff) structures, and can be output to an io.Writer or returned as a string.

diff := UnifiedDiff{
    A:        difflib.SplitLines("foo\nbar\n"),
    B:        difflib.SplitLines("foo\nbaz\n"),
    FromFile: "Original",
    ToFile:   "Current",
    Context:  3,
}
text, _ := GetUnifiedDiffString(diff)
fmt.Printf(text)

would output:

--- Original
+++ Current
@@ -1,3 +1,3 @@
 foo
-bar
+baz