Ggit.init();
+ var loop = new MainLoop();
+
var a = new GitLive.Repo("/home/alan/gitlive/gitlive");
+
+ a.loadRemoteHeads.begin((obj,res) => {
+ a.loadRemoteHeads.end(res);
+ print("got results");
+ a.loadLocalBranches();
+ loop.quit();
+ });
+ loop.run();
//a.mergeMasterIntoHead();
//a.walkDiff();
//return;
//a.is_managed();
//a.is_autocommit();
- a.loadLocalBranches();
- a.loadRemoteHeads();
+
+
//a.fetchAll();
//
/*
}
- public void loadRemoteHeads(bool force = false)
+ public async void loadRemoteHeads(bool force = false)
{
+ SourceFunc callback = loadRemoteHeads.callback;
- if (!force && this.remote_heads != null) {
- return;
- }
- var r = this.repo.lookup_remote("origin");
- r.connect(Ggit.Direction.FETCH, this.callbacks, null, null);
- this.remote_heads = r.list();
-
- foreach(var br in this.remote_heads) {
- if (!br.get_name().has_prefix("refs/heads/")) {
- continue;
+ ThreadFunc<bool> run = () => {
+
+ if (!force && this.remote_heads != null) {
+ return;
}
+ var r = this.repo.lookup_remote("origin");
+ r.connect(Ggit.Direction.FETCH, this.callbacks, null, null);
+ this.remote_heads = r.list();
- GLib.debug("Remote: name=%s oid=%s local_oid=%s is_local=%s",
- br.get_name().substring(11),
- br.get_oid().to_string(),
- br.get_local_oid().to_string(),
- br.is_local() ? "Y" : "n"
- );
+ foreach(var br in this.remote_heads) {
+ if (!br.get_name().has_prefix("refs/heads/")) {
+ continue;
}
-
+
+ GLib.debug("Remote: name=%s oid=%s local_oid=%s is_local=%s",
+ br.get_name().substring(11),
+ br.get_oid().to_string(),
+ br.get_local_oid().to_string(),
+ br.is_local() ? "Y" : "n"
+ );
+ }
+ Idle.add((owned) callback);
+
}