50 lines
1.1 KiB
Markdown
50 lines
1.1 KiB
Markdown
go-difflib
|
|
==========
|
|
|
|
[![Build Status](https://travis-ci.org/pmezard/go-difflib.png?branch=master)](https://travis-ci.org/pmezard/go-difflib)
|
|
[![GoDoc](https://godoc.org/github.com/pmezard/go-difflib/difflib?status.svg)](https://godoc.org/github.com/pmezard/go-difflib/difflib)
|
|
|
|
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
|
|
|
|
```bash
|
|
$ 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.
|
|
|
|
```Go
|
|
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
|
|
```
|
|
|