public async void doUpdate()
{
- // update the branches..
- this.loadBranches();
+ SourceFunc callback = GitRepo.get.callback;
+ GitRepo ret = null;
+ ThreadFunc<bool> run = () => {
+
+
+ // update the branches..
+ this.loadBranches();
- //GLib.debug("connecting '%s'", r.get_url());
- string[] far = {}
- foreach(var br in this.branches.values) {
- if (br.remote == "" || br.remoterev == br.lastrev) {
- continue;
+ //GLib.debug("connecting '%s'", r.get_url());
+ string[] far = {}
+ foreach(var br in this.branches.values) {
+ if (br.remote == "" || br.remoterev == br.lastrev) {
+ continue;
+ }
+ far += ("+refs/heads/" + br.name + ":refs/remotes/" + br.remote);
}
- far += ("+refs/heads/" + br.name + ":refs/remotes/" + br.remote);
- }
- if (far.length > 0) {
- var r = this.repo.lookup_remote("origin");
- r.connect(Ggit.Direction.FETCH, new GitCallbacks, null, null);
- var options = new Ggit.FetchOptions();
- //options.set_remote_callbacks(this.callbacks);
- r.download(far, options);
- }
- repo.loadStatus();
+ if (far.length > 0) {
+ var r = this.repo.lookup_remote("origin");
+ r.connect(Ggit.Direction.FETCH, new GitCallbacks, null, null);
+ var options = new Ggit.FetchOptions();
+ //options.set_remote_callbacks(this.callbacks);
+ r.download(far, options);
+ }
+ repo.loadStatus();
+
+
+ Idle.add((owned) callback);
+ return true;
+
+ };
+ new Thread<bool>("thread-new-gitrepo", run);
+ yield;
+ return ret;
+
+