Partial Fix #5560 - Gitlive - branching wip
[gitlive] / Clones.vala
index 3a187ec..78f86ca 100644 (file)
@@ -411,12 +411,29 @@ public class Clones : Object
             this.el.label = "Pull";
 
             //listeners
-            this.el.clicked.connect( () => {
-                
+            this.el.clicked.connect( () =>  {
+            
+               var rv = _this.reposView;
+               var rs = _this.reposStore;
+               var s =rv.el.get_selection();
+               if (s.count_selected_rows() != 1) {
+                       return;
+               }
+               Gtk.TreeIter iter;
+               Gtk.TreeModel tm;
+               s.get_selected(out tm, out iter);
+               GLib.Value val;
+                tm.get_value(iter, 6, out val);
+                var git_working_dir = (string)val;
                 
+                var repo = GitRepo.singleton().get(git_working_dir);
+                GitMonitor.gitmonitor.pause();    
+                repo.pull();
+                repo.loadStatus();
+                _this.reposStore.load();
+                GitMonitor.gitmonitor.start(); 
+            
              
-                   
-                
                 
             });
         }
@@ -523,7 +540,7 @@ public class Clones : Object
 
             //listeners
             this.el.row_activated.connect( (path, col)  =>  {
-               GLib.debug("row activated: %s", col.title);
+            
                if (col.title != "Current Branch") {
                        return;
                }
@@ -656,7 +673,10 @@ public class Clones : Object
                 
                 if (cb.lastrev != cb.remoterev) {
                     col =  "#f2dede";
-                    this.el.set_value( iter, 1, repo.currentBranch.name +"\nRemote != Local"   );
+                    this.el.set_value( iter, 1, repo.currentBranch.name +"\n" +
+                       (repo.ahead_or_behind == "B" ? "Local is BEHIND remote" : "Local is AHEAD of remote")
+                    
+                       );
                 }
                 if (repo.has_local_changes) {
                     col =  "#d9edf7";
@@ -664,7 +684,9 @@ public class Clones : Object
                 }
                 if  ((cb.lastrev != cb.remoterev) && (repo.has_local_changes)) {
                     col =  "#fcf8e3";
-                    this.el.set_value( iter, 1, repo.currentBranch.name +"\nRemote != Local\nHas uncommitted changes"   );            
+                    this.el.set_value( iter, 1, repo.currentBranch.name +"\n" + 
+                    (repo.ahead_or_behind == "B" ? "Local is BEHIND remote" : "Local is AHEAD of remote") +
+                    "\nHas uncommitted changes"   );            
                 }
                 
                 this.el.set_value(iter, 7, col  );