зеркало из https://github.com/microsoft/git.git
remote-hg: add shared repo upgrade
If we have an old organization (v1.8.3), and want to upgrade to a newer one (v1.8.4), the user would have to fetch the whole repository, instead we can just move the repository, so the user would not notice any difference. Also, remove other clones, so in time they get set up as shared. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> Reviewed-by: Antoine Pelisse <apelisse@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
52f0856a7b
Коммит
3baacc5cc6
|
@ -392,6 +392,18 @@ def get_repo(url, alias):
|
||||||
else:
|
else:
|
||||||
shared_path = os.path.join(gitdir, 'hg')
|
shared_path = os.path.join(gitdir, 'hg')
|
||||||
|
|
||||||
|
# check and upgrade old organization
|
||||||
|
hg_path = os.path.join(shared_path, '.hg')
|
||||||
|
if os.path.exists(shared_path) and not os.path.exists(hg_path):
|
||||||
|
repos = os.listdir(shared_path)
|
||||||
|
for x in repos:
|
||||||
|
local_hg = os.path.join(shared_path, x, 'clone', '.hg')
|
||||||
|
if not os.path.exists(local_hg):
|
||||||
|
continue
|
||||||
|
if not os.path.exists(hg_path):
|
||||||
|
shutil.move(local_hg, hg_path)
|
||||||
|
shutil.rmtree(os.path.join(shared_path, x, 'clone'))
|
||||||
|
|
||||||
# setup shared repo (if not there)
|
# setup shared repo (if not there)
|
||||||
try:
|
try:
|
||||||
hg.peer(myui, {}, shared_path, create=True)
|
hg.peer(myui, {}, shared_path, create=True)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче