diff options
author | Santiago M. Mola <santi@mola.io> | 2016-12-14 23:12:44 +0100 |
---|---|---|
committer | Máximo Cuadros <mcuadros@gmail.com> | 2016-12-14 23:12:44 +0100 |
commit | 0af572dd21c0aa79d13745b633ee24ba6c4d6cf1 (patch) | |
tree | 49e81e74e82d84fd88b2fc1e4b0dc7c7bfe9c40f /diff | |
parent | df0f38af83f972f026d7e14150f3d37b95f13484 (diff) | |
download | go-git-0af572dd21c0aa79d13745b633ee24ba6c4d6cf1.tar.gz |
move plumbing from top level package to plumbing (#183)
* plumbing: rename Object -> EncodedObject.
* plumbing/storer: rename ObjectStorer -> EncodedObjectStorer.
* move difftree to plumbing/difftree.
* move diff -> utils/diff
* make Object/Tag/Blob/Tree/Commit/File depend on storer.
* Object and its implementations now depend only on
storer.EncodedObjectStorer, not git.Repository.
* Tests are decoupled accordingly.
* move Object/Commit/File/Tag/Tree to plumbing/object.
* move Object/Commit/File/Tag/Tree to plumbing/object.
* move checkClose to utils/ioutil.
* move RevListObjects to plumbing/revlist.Objects.
* move DiffTree to plumbing/difftree package.
* rename files with plural nouns to singular
* plumbing/object: add GetBlob/GetCommit/GetTag/GetTree.
Diffstat (limited to 'diff')
-rw-r--r-- | diff/diff.go | 45 | ||||
-rw-r--r-- | diff/diff_ext_test.go | 109 |
2 files changed, 0 insertions, 154 deletions
diff --git a/diff/diff.go b/diff/diff.go deleted file mode 100644 index b840ad6..0000000 --- a/diff/diff.go +++ /dev/null @@ -1,45 +0,0 @@ -// Package diff implements line oriented diffs, similar to the ancient -// Unix diff command. -// -// The current implementation is just a wrapper around Sergi's -// go-diff/diffmatchpatch library, which is a go port of Neil -// Fraser's google-diff-match-patch code -package diff - -import ( - "bytes" - - "github.com/sergi/go-diff/diffmatchpatch" -) - -// Do computes the (line oriented) modifications needed to turn the src -// string into the dst string. -func Do(src, dst string) (diffs []diffmatchpatch.Diff) { - dmp := diffmatchpatch.New() - wSrc, wDst, warray := dmp.DiffLinesToChars(src, dst) - diffs = dmp.DiffMain(wSrc, wDst, false) - diffs = dmp.DiffCharsToLines(diffs, warray) - return diffs -} - -// Dst computes and returns the destination text. -func Dst(diffs []diffmatchpatch.Diff) string { - var text bytes.Buffer - for _, d := range diffs { - if d.Type != diffmatchpatch.DiffDelete { - text.WriteString(d.Text) - } - } - return text.String() -} - -// Src computes and returns the source text -func Src(diffs []diffmatchpatch.Diff) string { - var text bytes.Buffer - for _, d := range diffs { - if d.Type != diffmatchpatch.DiffInsert { - text.WriteString(d.Text) - } - } - return text.String() -} diff --git a/diff/diff_ext_test.go b/diff/diff_ext_test.go deleted file mode 100644 index 484c26e..0000000 --- a/diff/diff_ext_test.go +++ /dev/null @@ -1,109 +0,0 @@ -package diff_test - -import ( - "testing" - - "gopkg.in/src-d/go-git.v4/diff" - - "github.com/sergi/go-diff/diffmatchpatch" - . "gopkg.in/check.v1" -) - -func Test(t *testing.T) { TestingT(t) } - -type suiteCommon struct{} - -var _ = Suite(&suiteCommon{}) - -var diffTests = [...]struct { - src string // the src string to diff - dst string // the dst string to diff -}{ - // equal inputs - {"", ""}, - {"a", "a"}, - {"a\n", "a\n"}, - {"a\nb", "a\nb"}, - {"a\nb\n", "a\nb\n"}, - {"a\nb\nc", "a\nb\nc"}, - {"a\nb\nc\n", "a\nb\nc\n"}, - // missing '\n' - {"", "\n"}, - {"\n", ""}, - {"a", "a\n"}, - {"a\n", "a"}, - {"a\nb", "a\nb"}, - {"a\nb\n", "a\nb\n"}, - {"a\nb\nc", "a\nb\nc"}, - {"a\nb\nc\n", "a\nb\nc\n"}, - // generic - {"a\nbbbbb\n\tccc\ndd\n\tfffffffff\n", "bbbbb\n\tccc\n\tDD\n\tffff\n"}, -} - -func (s *suiteCommon) TestAll(c *C) { - for i, t := range diffTests { - diffs := diff.Do(t.src, t.dst) - src := diff.Src(diffs) - dst := diff.Dst(diffs) - c.Assert(src, Equals, t.src, Commentf("subtest %d, src=%q, dst=%q, bad calculated src", i, t.src, t.dst)) - c.Assert(dst, Equals, t.dst, Commentf("subtest %d, src=%q, dst=%q, bad calculated dst", i, t.src, t.dst)) - } -} - -var doTests = [...]struct { - src, dst string - exp []diffmatchpatch.Diff -}{ - { - src: "", - dst: "", - exp: []diffmatchpatch.Diff{}, - }, - { - src: "a", - dst: "a", - exp: []diffmatchpatch.Diff{ - { - Type: 0, - Text: "a", - }, - }, - }, - { - src: "", - dst: "abc\ncba", - exp: []diffmatchpatch.Diff{ - { - Type: 1, - Text: "abc\ncba", - }, - }, - }, - { - src: "abc\ncba", - dst: "", - exp: []diffmatchpatch.Diff{ - { - Type: -1, - Text: "abc\ncba", - }, - }, - }, - { - src: "abc\nbcd\ncde", - dst: "000\nabc\n111\nBCD\n", - exp: []diffmatchpatch.Diff{ - {Type: 1, Text: "000\n"}, - {Type: 0, Text: "abc\n"}, - {Type: -1, Text: "bcd\ncde"}, - {Type: 1, Text: "111\nBCD\n"}, - }, - }, -} - -func (s *suiteCommon) TestDo(c *C) { - for i, t := range doTests { - diffs := diff.Do(t.src, t.dst) - c.Assert(diffs, DeepEquals, t.exp, Commentf("subtest %d", i)) - } -} |