X-Git-Url: http://xvm.mit.edu/gitweb/invirt/scripts/git-migration.git/blobdiff_plain/9184744e09f8b681407a19907b88f08cee2578c8..7f2256386c028aa32f3eff436d3b434a3ef0f050:/git-migrate diff --git a/git-migrate b/git-migrate index ccd9934..c116db5 100755 --- a/git-migrate +++ b/git-migrate @@ -1,5 +1,6 @@ #!/usr/bin/python +import glob import os import sys import subprocess @@ -29,6 +30,9 @@ def tagBase(pkg): cwd='%s.git' % pkg) def clonePackage(base, pkg): + path = '%s/%s' % (base, pkg) + pkg = os.path.basename(pkg) + if not os.path.isdir('%s.git' % pkg): if os.path.isdir(pkg): shutil.rmtree(pkg) @@ -39,7 +43,7 @@ def clonePackage(base, pkg): '-Aauthors', '-q', '--no-metadata', - '%s/packages/%s' % (base, pkg)], + '%s' % path], stdout=subprocess.PIPE) # Then make the repository bare, because git-svn can't do this @@ -140,6 +144,14 @@ def mergeHistories(): for merge in merges: shutil.rmtree('%s.git' % merge[0]) +def cleanupRepos(): + for pkg in glob.glob('*.git'): + subprocess.check_call(['git', 'tag', '-d', 'base'], + cwd='%s' % pkg) + + subprocess.check_call(['git', 'gc'], + cwd='%s' % pkg) + if __name__ == '__main__': try: base = sys.argv[1] @@ -148,3 +160,4 @@ if __name__ == '__main__': cloneAllPackages(base) mergeHistories() + cleanupRepos()