+ 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);