GitRepo.vala
[gitlive] / GitRepo.vala
index 4d8c65d..7163c97 100644 (file)
@@ -580,14 +580,41 @@ public class GitRepo : Object
      
      }
      
+     public static string previewMerges(string ticket_id)
+    {
+       var ret = "";
+       foreach(var  repo in GitRepo.singleton().cache.values) {
+           if (repo.activeTicket == null || repo.activeTicket.id != ticket_id) {
+                       continue;
+               }
+                       ret += repo.previewMerge() + "\n\n";
+
+       }
+       return ret;
+
+    }
+     
+     
+     
      public string previewMerge()
      {
         try {                                  
                        var lines = this.git({"log", "master...",  "--pretty=format:\"%H %P\"" }).split("\n");;
                        var head = this.git({"log", "-1",  "--pretty=format:\"%H %P\"" });
-                       var last = lines[lines.length-1];
                        var start = head.split(" ")[0];
-                       var end = last.split(" ")[1];
+                       var end = "";
+                       for (var i = 0; i < lines.length; i++) {
+                               var cols = lines[i].split(" ");
+                               if (cols.length > 2) {
+                                       end = cols[0];
+                                       break;
+                               }
+                       }
+                       if (end == "") {
+                               var last = lines[lines.length-1];
+                               end = last.split(" ")[1];                               
+                       }
+
                        return this.git({ "diff" , start+".."+end, "--no-color" });
                }  catch(Error ee) {
                        GitMonitor.gitmonitor.pauseError(ee.message);