--- /dev/null
+#!/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)
subprocess.check_call(['git', 'reset', '--soft', 'HEAD^'],
cwd='%s.git' % pkg)
+ # Early in the project's history, there were a bunch of double
+ # directory trees - i.e. the source was actually in
+ # trunk/packages/$package/$package. Correct for that
+ cwd = os.getcwd()
+ os.environ['PACKAGE'] = pkg
+ p = subprocess.check_call(['git', 'filter-branch',
+ '--commit-filter', '%s "$@"' % os.path.join(cwd, 'filter-subdirs'),
+ '--tag-name-filter', 'cat',
+ '--',
+ '--all'],
+ cwd='%s.git' % pkg)
+
tagBase(pkg)
def cloneAllPackages(base):