projects
/
gitlive
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
NewBranch.bjs
[gitlive]
/
GitRepo.vala
diff --git
a/GitRepo.vala
b/GitRepo.vala
index
cdadaed
..
21cf4de
100644
(file)
--- a/
GitRepo.vala
+++ b/
GitRepo.vala
@@
-168,7
+168,7
@@
public class GitRepo : Object
return true;
};
return true;
};
- new Thread<bool>("thread-new-gitrepo
"
, run);
+ new Thread<bool>("thread-new-gitrepo
-" + path
, run);
yield;
return ret;
yield;
return ret;
@@
-958,7
+958,7
@@
public class GitRepo : Object
public async void doUpdate()
{
public async void doUpdate()
{
- SourceFunc callback =
GitRepo.get
.callback;
+ SourceFunc callback =
this.doUpdate
.callback;
GitRepo ret = null;
ThreadFunc<bool> run = () => {
GitRepo ret = null;
ThreadFunc<bool> run = () => {
@@
-967,7
+967,7
@@
public class GitRepo : Object
this.loadBranches();
//GLib.debug("connecting '%s'", r.get_url());
this.loadBranches();
//GLib.debug("connecting '%s'", r.get_url());
- string[] far = {}
+ string[] far = {}
;
foreach(var br in this.branches.values) {
if (br.remote == "" || br.remoterev == br.lastrev) {
continue;
foreach(var br in this.branches.values) {
if (br.remote == "" || br.remoterev == br.lastrev) {
continue;
@@
-975,45
+975,54
@@
public class GitRepo : Object
far += ("+refs/heads/" + br.name + ":refs/remotes/" + br.remote);
}
if (far.length > 0) {
far += ("+refs/heads/" + br.name + ":refs/remotes/" + br.remote);
}
if (far.length > 0) {
+ GLib.debug("PUlling %s", this.name);
var r = this.repo.lookup_remote("origin");
var r = this.repo.lookup_remote("origin");
- r.connect(Ggit.Direction.FETCH, new GitCallbacks, null, null);
+ r.connect(Ggit.Direction.FETCH, new GitCallbacks
(this)
, null, null);
var options = new Ggit.FetchOptions();
var options = new Ggit.FetchOptions();
-
//options.set_remote_callbacks(this.callbacks
);
+
options.set_remote_callbacks( new GitCallbacks(this)
);
r.download(far, options);
}
r.download(far, options);
}
-
repo
.loadStatus();
-
+
this
.loadStatus();
+
Idle.add((owned) callback);
return true;
};
Idle.add((owned) callback);
return true;
};
- new Thread<bool>("thread-new-git
repo"
, run);
+ new Thread<bool>("thread-new-git
pull-" + this.name
, run);
yield;
yield;
- return ret;
-
-
-
-
-
+
}
public static void updateAllAsync(string after)
{
}
public static void updateAllAsync(string after)
{
- var done = 0;
+
+
+ var doing = new Gee.HashMap<string,bool>();;
var tr = GitRepo.singleton().cache;
var tr = GitRepo.singleton().cache;
-
+
var update_all_total = tr.size;
foreach(var repo in tr.values) {
var update_all_total = tr.size;
foreach(var repo in tr.values) {
+ if (!repo.is_managed()) {
+ update_all_total--;
+ continue;
+ }
+ doing.set(repo.name, true);
repo.doUpdate.begin((obj, res) => {
repo.doUpdate.begin((obj, res) => {
- GitRepo.updateRepo.end(res);
- done++;
- if (update_all_total != done) {
- return;
+ repo.doUpdate.end(res);
+ doing.set(repo.name, false);
+
+ foreach(var b in doing.keys) {
+ if (doing.get(b)) {
+ GLib.debug("pending: %s", b);
+ return;
+ }
}
}
+
+
switch (after) {
case "show_clones":
Clones.singleton().show();
switch (after) {
case "show_clones":
Clones.singleton().show();
@@
-1022,7
+1031,7
@@
public class GitRepo : Object
GLib.debug("Unkown call after load = %s", update_all_after);
break;
}
GLib.debug("Unkown call after load = %s", update_all_after);
break;
}
- }
+ }
);
}
}