-
Notifications
You must be signed in to change notification settings - Fork 224
Closed
Description
I think the patch generated by the following code is wrong:
package main
import (
"io"
"os"
"github.com/sergi/go-diff/diffmatchpatch"
)
const (
text1 = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus ut risus et enim consectetur convallis a non ipsum. Sed nec nibh cursus, interdum libero vel."
text2 = "Lorem a ipsum dolor sit amet, consectetur adipiscing elit. Vivamus ut risus et enim consectetur convallis a non ipsum. Sed nec nibh cursus, interdum liberovel."
)
func main() {
dmp := diffmatchpatch.New()
dmp.DiffTimeout = 0
// dmp.DiffTimeout = time.Hour // it works
diffs := dmp.DiffMain(text1, text2, true)
diffs = dmp.DiffCleanupSemantic(diffs)
patches := dmp.PatchMake(text1, diffs)
io.WriteString(os.Stdout, dmp.PatchToText(patches))
}It generates:
@@ -1,17 +1,18 @@
Lorem
+a
ro
-
um dolorHowever, the correct patch would be:
@@ -1,14 +1,16 @@
Lorem
+a
ipsum do
@@ -148,13 +148,12 @@
m libero
-
vel.which is generated by setting dmp.DiffTimeout = time.Hour. Note that C++ implementation (with timeout=0) also generates the latter patch.
Metadata
Metadata
Assignees
Labels
No labels