step fifty four: fast-forward merge
This commit is contained in:
parent
8060fab18e
commit
87418b8763
19
src/base.rs
19
src/base.rs
|
@ -285,10 +285,23 @@ pub fn merge(oid: String) {
|
||||||
assert!(head.value != "");
|
assert!(head.value != "");
|
||||||
|
|
||||||
let merge_base = get_merge_base(oid.clone(), head.value.clone());
|
let merge_base = get_merge_base(oid.clone(), head.value.clone());
|
||||||
let c_base = get_commit(merge_base);
|
|
||||||
let c_head = get_commit(head.value);
|
|
||||||
let c_other = get_commit(oid.clone());
|
let c_other = get_commit(oid.clone());
|
||||||
|
|
||||||
|
// Handle fast-forward merge
|
||||||
|
if merge_base == head.value {
|
||||||
|
read_tree(c_other.tree);
|
||||||
|
data::update_ref(
|
||||||
|
"HEAD".to_owned(),
|
||||||
|
data::RefValue {
|
||||||
|
symbolic: false,
|
||||||
|
value: oid,
|
||||||
|
},
|
||||||
|
true,
|
||||||
|
);
|
||||||
|
println!("Fast-forward merge, no need to commit");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
data::update_ref(
|
data::update_ref(
|
||||||
"MERGE_HEAD".to_owned(),
|
"MERGE_HEAD".to_owned(),
|
||||||
data::RefValue {
|
data::RefValue {
|
||||||
|
@ -298,6 +311,8 @@ pub fn merge(oid: String) {
|
||||||
true,
|
true,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
let c_base = get_commit(merge_base);
|
||||||
|
let c_head = get_commit(head.value);
|
||||||
read_tree_merged(c_base.tree, c_head.tree, c_other.tree);
|
read_tree_merged(c_base.tree, c_head.tree, c_other.tree);
|
||||||
println!("Merged in working tree");
|
println!("Merged in working tree");
|
||||||
println!("Please commit");
|
println!("Please commit");
|
||||||
|
|
Loading…
Reference in New Issue