var r = this.git({ "remote" , "get-url" , "--push" , "origin"});
var uri = new Soup.URI(r);
this.host = uri.get_host();
-
+ this.init_config();
this.loadBranches();
this.loadActiveTicket();
return this.currentBranch.name == "master" || this.currentBranch.name == "roojs";
}
-
- public bool is_managed()
+ public void init_config()
{
- // is it a roojs origin?
-
- if (this.host != "git.roojs.com") { // we can only push to this url. -- unless we have forced it to be managed.
- return FileUtils.test(this.gitdir + "/.gitlive-managed" , FileTest.EXISTS);
+ // managed =
+ if (this.get_config("managed") == "") {
+ this.set_config("managed", this.host == "git.roojs.com" ? "1" : "0");
+ }
+ if (this.get_config("autocommit") == "") {
+ this.set_config("autocommit", 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) {
+ try {
+ return this.git({ "config" , "gitlive." + key });
+ } catch (Error e) {
+ return ""; // happens when there is nothing set...
}
- // otherwise see if unmanaged is set to disable it..
- return !FileUtils.test(this.gitdir + "/.gitlive-unmanaged" , FileTest.EXISTS);
+ }
+ public void set_config(string key, string value) {
+ this.git({ "config" , "gitlive." + key, value });
+ }
+
+ public bool is_managed()
+ {
+ return this.get_config("managed") == "1";
}
public bool is_autocommit ()
{
- return !FileUtils.test(this.gitdir + "/.gitlive-disable-autocommit" , FileTest.EXISTS);
+ return this.get_config("autocommit") == "1";
}
+
public void set_autocommit(bool val)
{
-
- var cur = this.is_autocommit();
- GLib.debug("SET auto commit : %s <= %s", val ? "ON" : "OFF", cur ? "ON" : "OFF");
- if (cur == val) {
- return; // no change..
- }
- if (!val) {
- FileUtils.set_contents(this.gitdir + "/.gitlive-disable-autocommit" , "x");
- } else {
- // it exists...
- FileUtils.remove(this.gitdir + "/.gitlive-disable-autocommit" );
- }
+ this.set_config("autocommit", val ? "1" : "0");
}
public void set_auto_branch(bool val)
{
-
- var cur = this.is_auto_branch();
- GLib.debug("SET auto branch : %s <= %s", val ? "ON" : "OFF", cur ? "ON" : "OFF");
-
- if (cur == val) {
- return; // no change..
- }
- if (this.host != "git.roojs.com") { // we can only push to this url. -- unless we have forced it to be managed.
- // remote is not our server..
- if (val) {
- FileUtils.set_contents(this.gitdir + "/.gitlive-managed" , "x");
- } else {
- FileUtils.remove(this.gitdir + "/.gitlive-managed" );
- }
+ if (this.name == "gitlog") {
return;
-
- }
-
- if (val) {
- FileUtils.remove(this.gitdir + "/.gitlive-unmanaged" );
- } else {
- FileUtils.set_contents(this.gitdir + "/.gitlive-unmanaged" , "x");
-
}
-
+ this.set_config("managed", val ? "1" : "0");
}
public bool is_autopush ()
{
- return !FileUtils.test(this.gitdir + "/.gitlive-disable-autopush" , FileTest.EXISTS);
+ return this.get_config("autopush") == "1";
}
public void set_autopush(bool val)
{
-
- var cur = this.is_autopush();
- GLib.debug("SET auto push : %s <= %s", val ? "ON" : "OFF", cur ? "ON" : "OFF");
- if (cur == val) {
- return; // no change..
- }
- if (!val) {
- FileUtils.set_contents(this.gitdir + "/.gitlive-disable-autopush" , "");
- } else {
- // it exists...
- FileUtils.remove(this.gitdir + "/.gitlive-disable-autopush" );
- }
-
+ this.set_config("autopush", val ? "1" : "0");
}
public void loadActiveTicket()
{
this.activeTicket = null;
- if (!FileUtils.test(this.gitdir + "/.gitlive-active-ticket" , FileTest.EXISTS)) {
- return;
- }
- string ticket_id;
- FileUtils.get_contents(this.gitdir + "/.gitlive-active-ticket" , out ticket_id);
+ var ticket_id = this.get_config("ticket");
+
if (ticket_id.length < 1) {
return;
}
public bool setActiveTicket(RooTicket? ticket, string branchname)
{
+ this.set_config("ticket", "");
if (!this.createBranchNamed(branchname)) {
return false;
}
- if (ticket != null) {
- FileUtils.set_contents(this.gitdir + "/.gitlive-active-ticket" , ticket.id);
- } else {
- FileUtils.remove(this.gitdir + "/.gitlive-active-ticket" );
- }
+ this.set_config("ticket", ticket == null ? "": ticket.id);
this.activeTicket = ticket;
return true;
}
// 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.loadStatus();
update_all_total--;
+ GLib.debug("calls remaining = %d", update_all_total);
if (update_all_total > 0 ) {
+
return;
}
switch (update_all_after) {