}
+ public void mergeMasterIntoHead()
+ {
+ // assumes head is not master...
+ var head_oid = this.repo.revparse(this.head.get_name() ).get_id() ;
+ var master_oid = this.repo.revparse("refs/heads/master" ).get_id() ;
+
+ var master_commit = this.repo.lookup_commit(master_oid);;
+ var head_commit = this.repo.lookup_commit(head_oid);
+
+
+ var anc_oid = this.repo.merge_base(master_commit.get_id(), head_commit.get_id());
+
+ var anc_commit = this.repo.lookup_commit(anc_oid);
+ var anc_tree = anc_commit.get_tree();
+
+ var master_tree = master_commit.get_tree();
+ var head_tree = head_commit.get_tree();
+ var mo = new Ggit.MergeOptions();
+ mo.set_file_favor(Ggit.MergeFileFavor.THEIRS);
+ var ix = this.repo.merge_trees(anc_tree, master_tree, head_tree, mo);
+
+
+ }
+
/*
public bool doMergeClose(string commit_message)