git-migration: Exclude punted packages from the superrepo.
[invirt/scripts/git-migration.git] / git-migrate-fast.sh
index f3bfd54..6ae4f30 100755 (executable)
@@ -13,6 +13,16 @@ SVN=${1:-/mit/xvm/svn}
 
 mako-render rules.mako > rules
 
+packages=($(python -c '
+import yaml
+svn = yaml.load(file("svn.yml"))
+packages = svn["packages"]
+current_packages = sorted(package for package in packages
+                          if "punt" not in packages[package] and
+                             "merge" not in packages[package])
+print "\n".join(current_packages)
+'))
+
 rm git -rf
 mkdir git
 cd git
@@ -57,6 +67,13 @@ git filter-branch --tag-name-filter cat -- ^0.2.0^ --all
 rm -rf info/grafts refs/original refs/heads/invirt-database-server
 popd
 
+pushd packages/invirt-web.git
+echo $(git rev-parse 0.1.0^0 0.0.24^0 cherrypy-rebased^1) >> info/grafts
+echo $(git rev-parse 0.1.1~3 0.1.0^0 cherrypy-rebased^0) >> info/grafts
+git filter-branch --tag-name-filter cat -- ^0.0.24^ --all
+rm -rf info/grafts refs/original
+popd
+
 pushd packages/python-routefs.git
 git fetch -t git://github.com/ebroder/python-routefs.git
 git branch -f upstream 1.0.1
@@ -69,8 +86,8 @@ git branch -f upstream 0.1.1
 git branch -f prod 0.1.1-1
 popd
 
-for r in $(ls packages); do
-    pushd "packages/$r"
+for package in "${packages[@]}"; do
+    pushd "packages/$package.git"
     git branch dev prod
     popd
 done
@@ -84,23 +101,22 @@ git symbolic-ref HEAD refs/heads/prod
     echo 'mark :1'
     echo 'committer Invirt Git Import <invirt@mit.edu> now'
     echo 'data <<EOF'
-    echo 'Initial superrepo creation.'
+    echo 'Initial superproject creation.'
     echo 'EOF'
-    for r in $(ls ../packages); do
-       pushd "../packages/$r" &>/dev/null
+    for package in "${packages[@]}"; do
+       pushd "../packages/$package.git" &>/dev/null
        commit="$(git rev-parse refs/heads/prod)"
        popd &>/dev/null
 
-       echo "M 160000 $commit ${r%.git}"
+       echo "M 160000 $commit $package"
     done
 
     echo 'M 100644 inline .gitmodules'
     echo 'data <<EOF'
-    for r in $(ls ../packages); do
-       r="${r%.git}"
-       printf '[submodule "%s"]\n' "$r"
-       printf '\tpath = %s\n' "$r"
-       printf '\turl = git://invirt.mit.edu/invirt/packages/%s.git\n' "$r"
+    for package in "${packages[@]}"; do
+       printf '[submodule "%s"]\n' "$package"
+       printf '\tpath = %s\n' "$package"
+       printf '\turl = ../packages/%s.git\n' "$package"
     done
     echo 'EOF'