public Gee.HashMap<string,GitBranch> branches; // accessed in GitBranch..
public RooTicket? activeTicket;
public Gee.HashMap<string,GitRepo> cache;
+ public Gee.HashMap<string,string> config_cache;
*
*/
- private GitRepo(string path) {
+ private GitRepo(string path)
+ {
// cal parent?
this.name = File.new_for_path(path).get_basename();
this.ignore_files = new Gee.HashMap<string,bool>();
}
public void init_config()
{
+ this.config_cache = new Gee.HashMap<string,string>();
// managed =
if (this.get_config("managed") == "") {
this.set_config("managed", this.host == "git.roojs.com" ? "1" : "0");
if (this.get_config("autopush") == "") {
this.set_config("autopush", this.host == "git.roojs.com" ? "1" : "0");
}
+
}
public string get_config(string key) {
- return this.git({ "config" , "gitlive." + key });
+
+ if (this.config_cache.has_key(key)) {
+ return this.config_cache.get(key);
+ }
+ try {
+ return this.git({ "config" , "gitlive." + key });
+ } catch (Error e) {
+ return ""; // happens when there is nothing set...
+ }
+
}
- public string set_config(string key, string value) {
- return this.git({ "config" , "gitlive." + key, value });
+ public void set_config(string key, string value) {
+ this.git({ "config" , "gitlive." + key, value });
}
public bool is_managed()
// may throw error...
var sp = new Spawn(cfg);
+ //GLib.debug( "GOT result: %d" , sp.result);
+
// diff output is a bit big..
if (args_in[0] != "diff") {
GLib.debug( "GOT: %s" , sp.output);
}
repo.update_async(updateAllCallback);
}
-
+ GLib.debug("calls total = %d", (int) update_all_total);
}
public static void updateAllCallback(GitRepo repo, int err, string res)
{
repo.loadStatus();
update_all_total--;
+ GLib.debug("calls remaining = %d", (int)update_all_total);
if (update_all_total > 0 ) {
+
return;
}
switch (update_all_after) {