Clone this repo:
  1. 5d4384e Merge pull request #10 from justbuchanan/master by Patrick Mézard · 8 weeks ago master
  2. fca3d27 travis: remove travis integration by Patrick Mezard · 8 weeks ago
  3. 1ef1646 README: end of maintenance notice. by Patrick Mezard · 8 weeks ago
  4. 4d7e5c1 Update README.md by Justin Buchanan · 1 year, 2 months ago
  5. 792786c Merge branch 'shazow-master' by Patrick Mezard · 3 years, 1 month ago v1.0.0

go-difflib

THIS PACKAGE IS NO LONGER MAINTAINED.

At this point, I have no longer the time nor the interest to work on go-difflib. I apologize for the inconvenience.

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 := difflib.UnifiedDiff{
    A:        difflib.SplitLines("foo\nbar\n"),
    B:        difflib.SplitLines("foo\nbaz\n"),
    FromFile: "Original",
    ToFile:   "Current",
    Context:  3,
}
text, _ := difflib.GetUnifiedDiffString(diff)
fmt.Printf(text)

would output:

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