Use Gitlab::Git operations for repository mirroring
This commit is contained in:
parent
dea6d054cd
commit
fe4874c43d
2 changed files with 0 additions and 33 deletions
|
@ -1,32 +0,0 @@
|
|||
module RepositoryMirroring
|
||||
IMPORT_HEAD_REFS = '+refs/heads/*:refs/heads/*'.freeze
|
||||
IMPORT_TAG_REFS = '+refs/tags/*:refs/tags/*'.freeze
|
||||
|
||||
def set_remote_as_mirror(name)
|
||||
# This is used to define repository as equivalent as "git clone --mirror"
|
||||
raw_repository.rugged.config["remote.#{name}.fetch"] = 'refs/*:refs/*'
|
||||
raw_repository.rugged.config["remote.#{name}.mirror"] = true
|
||||
raw_repository.rugged.config["remote.#{name}.prune"] = true
|
||||
end
|
||||
|
||||
def set_import_remote_as_mirror(remote_name)
|
||||
# Add first fetch with Rugged so it does not create its own.
|
||||
raw_repository.rugged.config["remote.#{remote_name}.fetch"] = IMPORT_HEAD_REFS
|
||||
|
||||
add_remote_fetch_config(remote_name, IMPORT_TAG_REFS)
|
||||
|
||||
raw_repository.rugged.config["remote.#{remote_name}.mirror"] = true
|
||||
raw_repository.rugged.config["remote.#{remote_name}.prune"] = true
|
||||
end
|
||||
|
||||
def add_remote_fetch_config(remote_name, refspec)
|
||||
run_git(%W[config --add remote.#{remote_name}.fetch #{refspec}])
|
||||
end
|
||||
|
||||
def fetch_mirror(remote, url)
|
||||
add_remote(remote, url)
|
||||
set_remote_as_mirror(remote)
|
||||
fetch_remote(remote, forced: true)
|
||||
remove_remote(remote)
|
||||
end
|
||||
end
|
|
@ -15,7 +15,6 @@ class Repository
|
|||
].freeze
|
||||
|
||||
include Gitlab::ShellAdapter
|
||||
include RepositoryMirroring
|
||||
|
||||
attr_accessor :full_path, :disk_path, :project, :is_wiki
|
||||
|
||||
|
|
Loading…
Reference in a new issue