public string git_working_dir;
public bool debug = false;
public bool has_local_changes = false;
+ public string host = "";
public string git_status;
public string git_diff;
public string ahead_or_behind = "";
if ( !cache.has_key(path) ) {
cache.set( path, this);
}
+
+ var r = this.git({ "remote" , "get-url" , "--push" , "origin"});
+ var uri = new Soup.URI(r);
+ this.host = uri.get_host();
+
+
this.loadBranches();
this.loadActiveTicket();
this.loadStatus();
return this.currentBranch.name == "master" || this.currentBranch.name == "roojs";
}
+ public void init_config()
+ {
+ // managed =
+ if (this.get_config("managed") == "") {
+ this.set_config("managed", this.host != "git.roojs.com" ? "1" : "0";
+ }
+
+ }
+
+
+
+ public string get_config(string key) {
+ return this.git({ "config" , "gitlive." + key);
+ }
+ public string set_config(string key, string value) {
+ return this.git({ "config" , "gitlive." + key, value);
+ }
public bool is_managed()
{
// is it a roojs origin?
- var r = this.git({ "remote" , "get-url" , "--push" , "origin"});
- var uri = new Soup.URI(r);
- if (uri.get_host() != "git.roojs.com") { // we can only push to this url. -- unless we have forced it to be managed.
+
+ if (this.host != "git.roojs.com") { // we can only push to this url. -- unless we have forced it to be managed.
+ var r = this.git({ "config" , "gitlive.managed");
+
return FileUtils.test(this.gitdir + "/.gitlive-managed" , FileTest.EXISTS);
}
// otherwise see if unmanaged is set to disable it..
return false;
}
// check remote...
+ if (this.is_managed()) {
+ return true;
+ }
+ return false;
- return FileUtils.test(this.gitdir + "/.gitlive-enable-auto-branch" , FileTest.EXISTS);
+
}
public void set_auto_branch(bool val)
if (cur == val) {
return; // no change..
}
- if (val) {
- FileUtils.set_contents(this.gitdir + "/.gitlive-enable-auto-branch" , "x");
+ 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" );
+ }
+ return;
+
+ }
+
+ if (val) {
+ FileUtils.remove(this.gitdir + "/.gitlive-unmanaged" );
} else {
- // it exists...
- FileUtils.remove(this.gitdir + "/.gitlive-enable-auto-branch" );
+ FileUtils.set_contents(this.gitdir + "/.gitlive-unmanaged" , "x");
+
}
+
}
public bool is_autopush ()