changeset 2383:e576410f911d beta

Don't do git pull on remote repos since they are bare now, we need to use git fetch on them
author Marcin Kuzminski <marcin@python-works.com>
date Mon, 04 Jun 2012 03:55:28 +0200
parents 034e4fe1ebb2
children 5563af834d92
files rhodecode/lib/vcs/backends/git/repository.py rhodecode/model/scm.py
diffstat 2 files changed, 15 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/rhodecode/lib/vcs/backends/git/repository.py	Mon Jun 04 02:56:09 2012 +0200
+++ b/rhodecode/lib/vcs/backends/git/repository.py	Mon Jun 04 03:55:28 2012 +0200
@@ -500,6 +500,17 @@
         # If error occurs run_git_command raises RepositoryError already
         self.run_git_command(cmd)
 
+    def fetch(self, url):
+        """
+        Tries to pull changes from external location.
+        """
+        url = self._get_url(url)
+        cmd = ['fetch']
+        cmd.append(url)
+        cmd = ' '.join(cmd)
+        # If error occurs run_git_command raises RepositoryError already
+        self.run_git_command(cmd)
+
     @LazyProperty
     def workdir(self):
         """
--- a/rhodecode/model/scm.py	Mon Jun 04 02:56:09 2012 +0200
+++ b/rhodecode/model/scm.py	Mon Jun 04 03:55:28 2012 +0200
@@ -360,8 +360,10 @@
             # inject ui extra param to log this action via push logger
             for k, v in extras.items():
                 repo._repo.ui.setconfig('rhodecode_extras', k, v)
-
-            repo.pull(clone_uri)
+            if repo.alias == 'git':
+                repo.fetch(clone_uri)
+            else:
+                repo.pull(clone_uri)
             self.mark_for_invalidation(repo_name)
         except:
             log.error(traceback.format_exc())