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, () => {
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);
}