1.3 KiB
1.3 KiB
3-way merge
Tho tools to make smart merge of two versions of changed original data. See [merge3] function online docs.
Usage
Add dependency:
repositories {
//...
maven("https://gitea.sergeych.net/api/packages/SergeychWorks/maven")
}
and in the source set dependencies something like
dependencies {
// ...
implementation("net.sergeych:mp_diff:0.0.10")
}
Now call it in the code
val src = "Hello world".toList()
val a = "Hello friend".toList()
val b = "Bye world".toList()
val m = merge3(src, b, a)
assertEquals("Bye friend", m.merged.joinToString(""))
println(m.blocks)
Licensing proglem
I found that part of the code was initially under Apache 2.0. I'm sorry I have to change from mit to Apache therefore, will do it soon. My apologies.
Acknowledgments
This work is based on the original kotlin diff port https://github.com/GitLiveApp/kotlin-diff-utils work, unfortunatley its packaging is not compatible with current kotlin MP formats so I can't just use it as the dependencies. The wholde dev.gitlive.difflib
is taken from the link above, where it was published under the Apache 2.0 license at the moment of borrowing this code.