X-Git-Url: http://xvm.mit.edu/gitweb/invirt/scripts/git-migration.git/blobdiff_plain/8a400ded68b16317a3e3c96f7bd5cf3d632ebe86..abbc5e9ccf467827545eb44f3603b6bc26bf0a14:/git-migrate diff --git a/git-migrate b/git-migrate index 7440717..65c7a12 100755 --- a/git-migrate +++ b/git-migrate @@ -32,7 +32,7 @@ def clonePackage(base, pkg): stdout=subprocess.PIPE) p.wait() if len(p.stdout.read()) == 0: - subprocess.check_call(['git', 'reset', 'HEAD^'], + subprocess.check_call(['git', 'reset', '--soft', 'HEAD^'], cwd='%s.git' % pkg) def cloneAllPackages(base): @@ -81,13 +81,26 @@ def mergeHistory(old_pkg, new_pkg, n): print >>f, ' '.join(graft) def mergeHistories(): - for line in open('grafts'): + merges = [] + for line in open('merges'): line = line.strip() - if line[0] == '#' or line == '': + if line == '' or line[0] == '#': continue - old_pkg, new_pkg, n = line.split() - mergeHistory(old_pkg, new_pkg, int(n)) + merges.append(line.split()) + + for merge in merges: + mergeHistory(*merge) + + for line in open('package-list'): + line = line.strip() + subprocess.check_call(['git', 'filter-branch', + '--', + '--all'], + cwd='%s.git' % line) + + for merge in merges: + shutil.rmtree('%s.git' % merge[0]) if __name__ == '__main__': try: