Use filter-branch to correct the trunk/packages/$package/$package
[invirt/scripts/git-migration.git] / filter-subdirs
diff --git a/filter-subdirs b/filter-subdirs
new file mode 100755 (executable)
index 0000000..3e44a8d
--- /dev/null
@@ -0,0 +1,23 @@
+#!/usr/bin/python
+
+import sys
+import os
+import subprocess
+
+tree = sys.argv[1]
+package = os.environ['PACKAGE']
+
+p = subprocess.Popen(['git', 'ls-tree',
+                      tree,
+                      package],
+                     stdout=subprocess.PIPE,
+                     stdin=subprocess.PIPE)
+p.wait()
+t = p.stdout.read().strip().split()
+
+if t != [] and t[1] == 'tree':
+    tree = t[2]
+
+subprocess.check_call(['git', 'commit-tree',
+                       tree] + sys.argv[2:],
+                      stdin=sys.stdin)