3 unstable releases
0.2.0 | Aug 14, 2024 |
---|---|
0.1.1 | Aug 12, 2024 |
0.1.0 | Apr 14, 2024 |
#1137 in Command line utilities
3,206 downloads per month
Used in 5 crates
(via debian-analyzer)
56KB
1.5K
SLoC
Merge3
A rust implementation of 3-way merge of texts.
Given BASE, OTHER, THIS, tries to produce a combined text incorporating the changes from both BASE->OTHER and BASE->THIS. All three will typically be sequences of lines.
Usage
From the command-line::
$ echo foo > mine
$ echo bar > base
$ echo blah > other
$ merge3 mine base other > merged
$ cat merged
Or from rust:
use merge3::Merge3;
fn main() {
let base = vec!["common\n", "base\n"];
let this = vec!["common\n", "a\n"];
let other = vec!["common\n", "b\n"];
let m3 = Merge3::new(&base, &this, &other);
for line in m3.merge_lines() {
println!("{}", line);
}
}
lib.rs
:
Merge3
A rust implementation of 3-way merge of texts.
Given BASE, OTHER, THIS, tries to produce a combined text incorporating the changes from both BASE->OTHER and BASE->THIS. All three will typically be sequences of lines.
Example
use merge3::Merge3;
let base = vec!["common\n", "base\n"];
let this = vec!["common\n", "a\n"];
let other = vec!["common\n", "b\n"];
let m3 = Merge3::new(&base, &this, &other);
for line in m3.merge_lines(false, &merge3::StandardMarkers::default()) {
println!("{}", line);
}
Dependencies
~31–300KB