sync with changes
[gitlive] / GitRepo.vala
index 1916311..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,13 +256,12 @@ 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..
@@ -347,7 +344,6 @@ public class GitRepo : Object
        return true;
     }
     
-    
     public bool createBranchNamed(string branchname)
     {  
                
@@ -371,20 +367,24 @@ 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" , "--no-prompt" }; 
-                                                       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) {
@@ -416,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;