summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelipe Contreras <felipe.contreras@gmail.com>2013-08-09 17:38:04 -0500
committerJunio C Hamano <gitster@pobox.com>2013-08-11 23:17:10 -0700
commit3baacc5cc6e4c2ed6184a7c5d9e10299999498dd (patch)
tree01e85417c5baabe1ccf6a2eed4d731f17767b560
parent52f0856a7bf06cf278ce1404a5d80070f327eee1 (diff)
downloadgit-fc/remote-hg-shared-setup.tar.gz
remote-hg: add shared repo upgradefc/remote-hg-shared-setup
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>
-rwxr-xr-xcontrib/remote-helpers/git-remote-hg12
1 files changed, 12 insertions, 0 deletions
diff --git a/contrib/remote-helpers/git-remote-hg b/contrib/remote-helpers/git-remote-hg
index cfd4f53fe1..d2ff0e2653 100755
--- a/contrib/remote-helpers/git-remote-hg
+++ b/contrib/remote-helpers/git-remote-hg
@@ -392,6 +392,18 @@ def get_repo(url, alias):
else:
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)
try:
hg.peer(myui, {}, shared_path, create=True)