sync
[gitlive] / GitRepo.vala
index 7ec4f41..ec10a01 100644 (file)
@@ -167,6 +167,7 @@ public class GitRepo : Object
                        cache.set( path, this);
        }
        this.loadBranches();
+       this.loadActiveTicket();
     } 
     
     public bool is_wip_branch()
@@ -264,14 +265,14 @@ public class GitRepo : Object
                try {
                    var oldbranch = this.currentBranch.name;
                    this.setActiveTicket(null, "master");
-               string [] cmd = { "merge",   "--squash",  oldbranch };
-               this.git( cmd );
-                cmd = { "commit",   "-a" , "-m",  commit_message };
-               this.git( cmd );
-               this.push();
-               this.loadBranches(); // updates lastrev..
+                          string [] cmd = { "merge",   "--squash",  oldbranch };
+                          this.git( cmd );
+                          cmd = { "commit",   "-a" , "-m",  commit_message };
+                          this.git( cmd );
+                          this.push();
+                          this.loadBranches(); // updates lastrev..
                
-               var notification = new Notify.Notification(
+                      var notification = new Notify.Notification(
                                "Merged branch %s to master".printf(oldbranch),
                                "",
                                 "dialog-information"
@@ -337,14 +338,35 @@ public class GitRepo : Object
        }
        return false;
     }
+        
+    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);  
+       if (ticket_id.length < 1) {
+               return;
+               }
+               this.activeTicket = RooTicket.singleton().getById(ticket_id.strip());
+       
+       
+    }
+    
     
     
-    public bool setActiveTicket(RooTicket ticket, string branchname)
+    public bool setActiveTicket(RooTicket? ticket, string branchname)
     {
        if (!this.createBranchNamed(branchname)) {
                return false;
                }
-       FileUtils.set_contents(this.gitdir + "/.gitlive-active-ticket" , ticket.id);
+               if (ticket != null) {
+               FileUtils.set_contents(this.gitdir + "/.gitlive-active-ticket" , ticket.id);
+       } else {
+               FileUtils.remove(this.gitdir + "/.gitlive-active-ticket" );
+       }
        this.activeTicket = ticket;
        return true;
     }
@@ -404,8 +426,10 @@ public class GitRepo : Object
                                           
                                        string[] cmd = { "checkout", "-b" , branchname  };
                                        this.git(cmd);
-                                       
                        this.push();    
+                       cmd = { "branch", "--set-upstream-to=origin/"+branchname , branchname  };
+                                       this.git(cmd);
+                       
                                        } catch(Error ee) {
                                                GitMonitor.gitmonitor.pauseError(ee.message);
                                                return false;           
@@ -424,7 +448,7 @@ public class GitRepo : Object
        
         
         this.loadBranches(); // update branch list...
-        GitMonitor.gitmonitor.runQueue(); // commit any outstanding...
+        //GitMonitor.gitmonitor.runQueue(); // no point - we have hidden the queue..
         return true;
     }
     
@@ -588,7 +612,7 @@ public class GitRepo : Object
     public string push () throws Error, SpawnError
     {
         // should 
-        return this.git({ "push", "--all" });
+        return this.git({ "push"  });
         
     }