From fa8b06629c40c25cc75aba126d6cd3f0f1cea631 Mon Sep 17 00:00:00 2001
From: Gabriel Mazetto <brodock@gmail.com>
Date: Tue, 1 Mar 2016 04:22:24 -0300
Subject: [PATCH] Changed remote name for mirrors in Geo to not conflict with
 old Mirrors Fixed non-fast-forward fetch

---
 app/models/repository.rb | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/app/models/repository.rb b/app/models/repository.rb
index 841d34c4731..3c150596deb 100644
--- a/app/models/repository.rb
+++ b/app/models/repository.rb
@@ -6,6 +6,7 @@ class Repository
   class CommitError < StandardError; end
 
   MIRROR_REMOTE = "upstream"
+  MIRROR_GEO = "geo"
 
   include Gitlab::ShellAdapter
 
@@ -192,6 +193,11 @@ class Repository
     gitlab_shell.fetch_remote(path_with_namespace, remote)
   end
 
+  def fetch_remote_forced!(remote)
+    args = %W(#{Gitlab.config.git.bin_path} fetch #{remote} -f)
+    Gitlab::Popen.popen(args, path_to_repo)
+  end
+
   def branch_names
     cache.fetch(:branch_names) { raw_repository.branch_names }
   end
@@ -750,9 +756,9 @@ class Repository
   end
 
   def fetch_geo_mirror(url)
-    add_remote(Repository::MIRROR_REMOTE, url)
-    set_remote_as_mirror(Repository::MIRROR_REMOTE)
-    fetch_remote(Repository::MIRROR_REMOTE)
+    add_remote(Repository::MIRROR_GEO, url)
+    set_remote_as_mirror(Repository::MIRROR_GEO)
+    fetch_remote_forced!(Repository::MIRROR_GEO)
   end
 
   def upstream_branches
-- 
2.30.9