X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=GitRepo.vala;h=b5e9ad0b775b1a923caebc778064d67f03a5a835;hb=4ef0ac118072715407907c93a38120afc117af77;hp=e98516031d555aa1fa57c0d7f0d7514869d4ee0e;hpb=9968190185d9dd287c8793d7bad773630f167e5d;p=gitlive diff --git a/GitRepo.vala b/GitRepo.vala index e9851603..b5e9ad0b 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.. @@ -151,6 +152,8 @@ public class GitRepo : Object 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"); @@ -159,10 +162,43 @@ public class GitRepo : Object 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, string branchname) + { + + + } + + public void createBranchNamed(string branchname) + { + string[] cmd = { "checkout", "-b" , branchname }; + this.git(cmd); + this.loadBranches(); // update branch list... + } + /** * add: