Uncommited changes synced
[gitlive] / Git.vala
index 9691233..795eabb 100644 (file)
--- a/Git.vala
+++ b/Git.vala
@@ -18,8 +18,9 @@ void main()
 
        
        Ggit.init();
-       var a = new GitLive.Repo("/home/alan/gitlive/web.Texon");
-       a.fetchAll();
+       var a = new GitLive.Repo("/home/alan/gitlive/gitlive");
+       a.diffhead();
+       //a.fetchAll();
        return;
        /*
        GLib.Timeout.add (1, () => {
@@ -224,14 +225,33 @@ namespace  GitLive {
                public void diffhead()
                {
                        var r = this.repo.enumerate_branches(Ggit.BranchType.LOCAL);
-                       Ggit.GitBranch head;
+                       Ggit.Branch? head = null;
                        while (r.next()) {
                                var gbr = r.get() as Ggit.Branch;
                                if (gbr.is_head()) {
                                        head = gbr;
                                }
                        }
-                       
+                       GLib.debug("checking head=%s",head == null ? "EMPTY" :  head.get_name());
+                       var br = this.repo.lookup_branch(head.get_name(),Ggit.BranchType.LOCAL);
+                       var commit  = this.repo.lookup_commit(br.get_target());
+
+                       
+                       var diff = new Ggit.Diff.tree_to_workdir(this.repo, commit.get_tree(), new Ggit.DiffOptions());
+                       var ret = "";
+                       diff.print(Ggit.DiffFormatType.PATCH, (delta, hunk, line) => {
+                               switch(line.get_origin()) {
+                                       case Ggit.DiffLineType.ADDITION: ret+="+"; break;
+                                       case Ggit.DiffLineType.DELETION: ret+="-";break;
+                                       case Ggit.DiffLineType.CONTEXT:  ret+=" ";break;
+                                       case Ggit.DiffLineType.HUNK_HDR: break;                                 
+                                       case Ggit.DiffLineType.FILE_HDR: break;
+                                       default: ret+=" ";break;
+                               }
+                               ret += " " + line.get_text();
+                               return 0;
+                       });
+                       GLib.debug("%s", ret);
                }