GitRepo.vala
[gitlive] / GitRepo.vala
index 6954437..7163c97 100644 (file)
@@ -579,6 +579,50 @@ public class GitRepo : Object
                        return true;
      
      }
+     
+     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 start = head.split(" ")[0];
+                       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);
+                       return "Error getting diff";            
+               }
+        
+     
+     }