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
|
||
|
```
|