X-Git-Url: http://git.roojs.org/?p=gitlive;a=blobdiff_plain;f=Git.vala;h=795eabbb1ae3dd342dad56151d92586e2a41509b;hp=63c03c7e722fb7056c41c7034c56a5ba1f2c1347;hb=refs%2Fheads%2Fwip_alan_T5782_messing_around_with_libgit2glib;hpb=128c96fc9db69baca7ba185e8a3def8fddff5f27 diff --git a/Git.vala b/Git.vala index 63c03c7e..795eabbb 100644 --- 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, () => { @@ -220,6 +221,40 @@ namespace GitLive { } + + public void diffhead() + { + var r = this.repo.enumerate_branches(Ggit.BranchType.LOCAL); + 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); + } + + public void mergeMasterIntoHead() { // assumes head is not master... @@ -272,6 +307,9 @@ namespace GitLive { } + + + /* public bool doMergeClose(string commit_message) {