sync
[gitlive] / Git.vala
index 22ac6a3..6207008 100644 (file)
--- a/Git.vala
+++ b/Git.vala
@@ -182,11 +182,12 @@ namespace  GitLive {
                                        this.repo.get_config().get_string("user.name"),
                                        this.repo.get_config().get_string("user.email")
                        );
-                       this.repo.create_commit("HEAD", sig, sig, null, "Test Merge", new_tree, parents);
-       
                        
                        
                        
+                       this.repo.create_commit("HEAD", sig, sig, null, "Test Merge", new_tree, parents);
+        
+                       
                        
                }
                public void mergeMasterIntoHead()
@@ -216,15 +217,28 @@ namespace  GitLive {
                        var commits =   new Ggit.AnnotatedCommit[] { ac };
                        
                        this.repo.merge(commits, mo, co);
+                       
+                       var cfg = this.repo.get_config().snapshot();
+                       
                    var sig = new Ggit.Signature.now(
-                                       this.repo.get_config().get_string("user.name"),
-                                       this.repo.get_config().get_string("user.email")
+                                       cfg.get_string("user.name"),
+                                       cfg.get_string("user.email")
                        );
                        var new_head = this.repo.get_head();
+                       var oid = new_head.get_target();
+
+                       var ix = this.repo.get_index();
+                       ix.write();
+                       var treeoid = ix.write_tree();
+
+                       var new_tree = this.repo.lookup(treeoid,typeof (Ggit.Tree))  as   Ggit.Tree;
                        
-                       this.repo.create_commit("HEAD", sig, sig, null, "Test Merge", new_tree, parents);
+                       var parent = new_head.lookup() as Ggit.Commit;
+                       Ggit.Commit[] parents =  new Ggit.Commit[] { parent };
+                       
+                       this.repo.create_commit("refs/heads/" + this.head.get_name(), sig, sig, null, "Test Merge", new_tree, parents);
         
-               
                }