sync with changes
[gitlive] / GitRepo.vala
index 6108c1e..034d535 100644 (file)
@@ -32,7 +32,7 @@ public class GitRepo : Object
         }
         return _GitRepo;
     }
-
     /**
     * index of.. matching gitpath..
     */
@@ -247,9 +247,7 @@ public class GitRepo : Object
        }
        GitMonitor.gitmonitor.start();
     }
-    
-
-
+     
 
     public bool doMerge(string action, string ticket_id, string commit_message)
     {
@@ -258,14 +256,14 @@ public class GitRepo : Object
                   var ret = "";
                   if (action == "CLOSE" || action == "LEAVE") {
                                   
                try {
-                       var oldbranch = this.currentBranch.name;
-                       this.setActiveTicket(null, "master");
+                   var oldbranch = this.currentBranch.name;
+                   this.setActiveTicket(null, "master");
                string [] cmd = { "merge",   "--squash",  oldbranch };
                this.git( cmd );
-                cmd = { "commit",   "--m",  commit_message };
+                cmd = { "commit",   "-a" , "-m",  commit_message };
                this.git( cmd );
+               this.push();
                this.loadBranches(); // updates lastrev..
                
                var notification = new Notify.Notification(
@@ -369,33 +367,39 @@ public class GitRepo : Object
                                
                                  }
                                  try {
-                                    string[] cmd = { "merge", "master"  };
-                                           this.git(cmd);
+                                          if (branchname != "master") {
+                                              string[] cmd = { "merge", "master"  };
+                                                   this.git(cmd);
+                                              cmd = { "commit",   "-a" , "-m",  commit_message };
+                                      this.git( cmd );
+                                           }
                                   } catch(Error e) {
-                                               try {
-                                                   string[] cmd = { "mergetool" };
-                                                       this.git(cmd);
-                                                   cmd = { "commit",  "-m" , "Fix merge conflicts from master" };
-                                                       this.git(cmd);
-                                               } catch(Error ee) {
-                                                       GitMonitor.gitmonitor.pauseError(ee.message);
-                                                       return false;           
-                                               }
+                                           string[] cmd = { "checkout", "master"  };
+                                           this.git(cmd);
+                                               GitMonitor.gitmonitor.pauseError(
+                                                       "Use\n\na) git checkout %s\nb) git mergetool\nc) git commit\nd) git push\n d) stash pop \ne) start gitlive again\n".printf(
+                                                               branchname)
+                                                        + e.message
+                                               );
+                                               return false;           
+                                        
                                        }
-                                 try {                                 
+                                  try {                                        
                                           string[]  cmd = { "stash", "pop"  };
                                            if (stash) { this.git(cmd); }
                                        } catch(Error ee) {
                                                GitMonitor.gitmonitor.pauseError(ee.message);
                                                return false;           
                                        }
-                                   
+                   this.push();
                    
                    } else {
                                    try {                                       
                                           
                                        string[] cmd = { "checkout", "-b" , branchname  };
                                        this.git(cmd);
+                                       
+                       this.push();    
                                        } catch(Error ee) {
                                                GitMonitor.gitmonitor.pauseError(ee.message);
                                                return false;           
@@ -412,8 +416,7 @@ public class GitRepo : Object
                notification.set_timeout(5);
                notification.show();   
        
-                   
-           
+        
         this.loadBranches(); // update branch list...
         GitMonitor.gitmonitor.runQueue(); // commit any outstanding...
         return true;
@@ -579,7 +582,7 @@ public class GitRepo : Object
     public string push () throws Error, SpawnError
     {
         // should 
-        return this.git({ "push", "origin", "HEAD" });
+        return this.git({ "push", "--all" });
         
     }