NewBranch.bjs
[gitlive] / GitRepo.vala
index 4c1185f..6664fdd 100644 (file)
@@ -18,6 +18,7 @@ public class GitRepo : Object
     public bool debug = false;
     
     public Gee.HashMap<string,bool> ignore_files;
+    public GitBranch currentBranch;
 
     /**
     * index of.. matching gitpath..
@@ -140,12 +141,65 @@ public class GitRepo : Object
     
     public bool is_autocommit ()
     {
-       return !FileUtils.test(this.gitdir + "/.gitlive-disable-autocommit" , FileTest.IS_DIR);
+       return !FileUtils.test(this.gitdir + "/.gitlive-disable-autocommit" , FileTest.EXISTS);
     }
     public bool is_autopush ()
     {
-       return !FileUtils.test(this.gitdir + "/.gitlive-disable-autopush" , FileTest.IS_DIR);
-    }    
+       return !FileUtils.test(this.gitdir + "/.gitlive-disable-autopush" , FileTest.EXISTS);
+    }
+    
+    Gee.HashMap<string,GitBranch> branches;
+    
+    public void loadBranches()
+    {
+       this.branches = new Gee.HashMap<string,GitBranch>();
+       
+       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.