X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=GitRepo.vala;h=6664fddb4484c0fe4ef20cf8106679a7e43af1ff;hb=55e9325349365ed19eb69c73ea4a8f9759c5c056;hp=29d091901154971bec7e64f7bb8d6ff323ecbdfe;hpb=279f308501fcc04b55031581ef7ab477c33ea047;p=gitlive diff --git a/GitRepo.vala b/GitRepo.vala index 29d09190..6664fddb 100644 --- a/GitRepo.vala +++ b/GitRepo.vala @@ -18,6 +18,7 @@ public class GitRepo : Object public bool debug = false; public Gee.HashMap ignore_files; + public GitBranch currentBranch; /** * index of.. matching gitpath.. @@ -136,6 +137,69 @@ public class GitRepo : Object //Repo.superclass.constructor.call(this,cfg); } + + + public bool is_autocommit () + { + return !FileUtils.test(this.gitdir + "/.gitlive-disable-autocommit" , FileTest.EXISTS); + } + public bool is_autopush () + { + return !FileUtils.test(this.gitdir + "/.gitlive-disable-autopush" , FileTest.EXISTS); + } + + Gee.HashMap branches; + + public void loadBranches() + { + this.branches = new Gee.HashMap(); + + string[] cmd = { "branch", "--no-color", "--verbose", "--no-abbrev" , "-a" }; + var res = this.git( cmd ); + var lines = res.split("\n"); + for (var i = 0; i < lines.length ; i++) { + var br = new GitBranch(this); + if (!br.parseBranchListItem(lines[i])) { + continue; + } + GLib.debug("add branch %s", br.realName()); + + branches.set(br.realName(), br); + if (br.active) { + this.currentBranch = br; + } + } + + } + public string branchesToString() + { + var ret = ""; + foreach( var br in this.branches.values) { + if (br.name == "") { + continue; + } + ret += ret.length > 0 ? "," : ""; + ret += br.name; + + } + return ret; + + } + + public void setActiveTicket(RooTicket ticket) + { + + + } + + public void createBranchNamed(string branchname) + { + string[] cmd = { "checkout", "-b" , branchname }; + this.git(cmd); + + } + + /** * add: * add files to track.