Start by pushing revisions around as necessary for merging.
[invirt/scripts/git-migration.git] / git-migrate
index f10a512..b79053a 100755 (executable)
@@ -39,6 +39,22 @@ def cloneAllPackages(base):
     for pkg in open('package-list'):
         clonePackage(base, pkg.strip())
 
+def mergeHistory(old_pkg, new_pkg, n):
+    cwd = os.getcwd()
+    subprocess.check_call(['git', 'push',
+                           'file:///%s/%s.git' % (cwd, new_pkg),
+                           'master:refs/heads/%s' % old_pkg],
+                          cwd=new_pkg)
+
+def mergeHistories():
+    for line in open('grafts'):
+        line = line.strip()
+        if line[0] == '#' or line == '':
+            continue
+        
+        old_pkg, new_pkg, n = line.split()
+        mergeHistory(old_pkg, new_pkg, int(n))
+
 if __name__ == '__main__':
     try:
         base = sys.argv[1]
@@ -46,3 +62,4 @@ if __name__ == '__main__':
         base = 'svn://invirt.mit.edu/trunk'
     
     cloneAllPackages(base)
+    mergeHistories()