- 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();
-
+ ThreadFunc<bool> run = () => {
+
+ if (!force && this.remote_heads != null) {
+ return true;;
+ }
+ var r = this.repo.lookup_remote("origin");
+ r.connect(Ggit.Direction.FETCH, this.callbacks, null, null);
+ yield;
+ this.remote_heads = r.list();
+
+ 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(),
+ br.get_oid().to_string(),
+ br.get_local_oid().to_string(),
+ br.is_local() ? "Y" : "n"
+ );
+ }
+ Idle.add((owned) callback);
+ return true;;
+ };
+ new Thread<bool>("loadRemoteHeads-" , run);
+ yield;
+
+