From 7ee61b3ca53e31cfd15f533b94f19de94f096cee Mon Sep 17 00:00:00 2001 From: Anders Kaseorg Date: Mon, 29 Dec 2008 03:55:59 -0500 Subject: [PATCH 1/1] Move lots of information to a YAML database. svn path=/trunk/scripts/git-migration/; revision=1945 --- merges | 32 -------------- package-list | 56 ------------------------ rules.mako | 138 +++++++++++++++------------------------------------------- svn.yml | 106 ++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 140 insertions(+), 192 deletions(-) delete mode 100644 merges delete mode 100644 package-list create mode 100644 svn.yml diff --git a/merges b/merges deleted file mode 100644 index f593991..0000000 --- a/merges +++ /dev/null @@ -1,32 +0,0 @@ -# The format of this file is: -# package-that-vanished package-it-vanished-into n -# -# Where n is the number of the commit in the new repository where the -# old package should be merged in, starting from the beginning of the -# new package's history -# -# (n is translated into a revision using git rev-list --reverse -# --skip= | head -n 1) - -sipb-xen-base invirt-base 0 -sipb-xen-console invirt-console-server 0 -sipb-xen-console-server invirt-console-host 0 -sipb-xen-database invirt-database 0 -sipb-xen-dev invirt-dev 0 -sipb-xen-dhcp invirt-dhcp 0 -sipb-xen-dns invirt-dns 0 -sipb-xen-dom0 invirt-xen-config 0 -sipb-xen-guest-installer sipb-xen-autoinstaller 0 -sipb-xen-host-master invirt-host-master 0 -sipb-xen-iptables invirt-web-iptables 0 -sipb-xen-python-pydhcplib python-pydhcplib 0 -sipb-xen-remctl-auto invirt-remote-host 0 -sipb-xen-remote-server invirt-remote-server 0 -sipb-xen-vnc-client invirt-vnc-client 0 -sipb-xen-vnc-server invirt-vnc-server 0 -sipb-xen-www invirt-web 0 -invirt-console-server invirt-console 0 -invirt-console-host invirt-console 2 -sipb-xen-autoinstaller invirt-autoinstaller 0 -invirt-remote-host invirt-remote 0 -invirt-remote-server invirt-remote 0 diff --git a/package-list b/package-list deleted file mode 100644 index 3b0d02d..0000000 --- a/package-list +++ /dev/null @@ -1,56 +0,0 @@ -packages/invirt-autoinstaller -packages/invirt-base -packages/invirt-cluster-config -packages/invirt-console -packages/invirt-console-host -packages/invirt-console-server -packages/invirt-database -packages/invirt-database-server -packages/invirt-dev -packages/invirt-dhcp -packages/invirt-dns -packages/invirt-host-master -packages/invirt-images -packages/invirt-manual-config -packages/invirt-remote -packages/invirt-remote-host -packages/invirt-remote-server -packages/invirt-svn-server -packages/invirt-vnc-client -packages/invirt-vnc-server -packages/invirt-web -packages/invirt-web-iptables -packages/invirt-xen-config -packages/libapache2-mod-auth-sslcert -packages/libyaml -packages/python-pydhcplib -packages/python-routefs -packages/pyyaml -packages/sipb-xen-autoinstaller -packages/sipb-xen-base -packages/sipb-xen-chrony-config -packages/sipb-xen-clvm-config -packages/sipb-xen-console -packages/sipb-xen-console-server -packages/sipb-xen-database -packages/sipb-xen-dev -packages/sipb-xen-dhcp -packages/sipb-xen-dns -packages/sipb-xen-dom0 -packages/sipb-xen-guest-installer -packages/sipb-xen-host-master -packages/sipb-xen-iptables -packages/sipb-xen-python-pydhcplib -packages/sipb-xen-remctl-auto -packages/sipb-xen-remote-server -packages/sipb-xen-vnc-client -packages/sipb-xen-vnc-server -packages/sipb-xen-www -packages/xvm-console-devconfig -packages/xvm-db-backup -packages/xvm-devconfig -packages/xvm-iscsi-config -packages/xvm-mail-config -packages/xvm-meta -packages/xvm-munin-config -packages/xvm-prodconfig diff --git a/rules.mako b/rules.mako index e3b8e9c..015aa62 100644 --- a/rules.mako +++ b/rules.mako @@ -1,102 +1,32 @@ <% - packages = [line.strip() for line in open('package-list')] - repos = packages - packages = [package[len('packages/'):] for package in packages] + import yaml + svn = yaml.load(open('svn.yml')) + packages = svn['packages'] + scripts = svn['scripts'] + quashes = svn['quashes'] - scripts = ['git-migration', 'invirt.mit.edu', 'munin', 'prod-migration'] + repos = ['packages/%s' % package for package in packages] repos += ['scripts/%s' % script for script in scripts] - repos += ['doc/xvm', 'scripts/osx-update'] - doubled_packages = { - 'sipb-xen-guest-installer': (310, 310), - 'sipb-xen-base': (314, 315), - 'sipb-xen-database': (311, 313), - 'sipb-xen-dev': (314, 315), - 'sipb-xen-dom0': (314, 315), - 'sipb-xen-remctl-auto': (314, 315), - } - - punt = { - 'xvm-console-devconfig': 700, - 'sipb-xen-guest-installer': 742, - 'sipb-xen-remote-server': 1176, - 'sipb-xen-dns': 1184, - 'sipb-xen-console-server': 1187, - 'sipb-xen-console': 1201, - 'sipb-xen-base': 1350, - 'sipb-xen-chrony-config': 1351, - 'sipb-xen-database': 1352, - 'sipb-xen-dev': 1353, - 'sipb-xen-dom0': 1354, - 'sipb-xen-host-master': 1355, - 'sipb-xen-iptables': 1356, - 'sipb-xen-python-pydhcplib': 1357, - 'sipb-xen-remctl-auto': 1358, - 'sipb-xen-vnc-client': 1359, - 'sipb-xen-www': 1360, - 'sipb-xen-vnc-server': 1387, - 'sipb-xen-dhcp': 1436, - 'sipb-xen-autoinstaller': 1569, - 'sipb-xen-clvm-config': 1569, - 'invirt-console-host': 1815, - 'invirt-console-server': 1813, - 'invirt-remote-host': 1822, - 'invirt-remote-server': 1822, - } - - quashes = [ - ('/package_tags/sipb-xen-dev/sipb-xen-dev/', 11), - ('/package_tags/sipb-xen-dev/13/', 316), - ('/package_tags/sipb-xen-console/2/', 347), - ('/package_tags/sipb-xen-console/2/sipb-xen-console/', 348), - ('/package_tags/sipb-xen-console/2/', 349), - ('/package_tags/sipb-xen-console/7.1/sipb-xen-console/', 401), - ('/package_tags/sipb-xen-guest-installer/1.0/sipb-xen-guest-installer/', 452), - ('/package_tags/sipb-xen-dev/14/sipb-xen-dev/', 462), - ('/package_tags/sipb-xen-dev/14/', 463), - ('/trunk/packages/sipb-xen-autoinstaller/', 742), - ('/trunk/packages/invirt-console-server/', 1201), - ('/trunk/packages/xvm-prodconfig/', 1455), - ('/trunk/packages/invirt-xen-config/', 1757), - ('/trunk/packages/invirt-console/', 1819), - ('/trunk/scripts/prod-migration/', 1864), - ('/trunk/packages/invirt-dhcp/', 1904), - ] - - merges = [] - for line in open('merges'): - line = line.strip() - if line == '' or line[0] == '#': - continue - - merges.append(line.split()) - - merge_map = {} - merge_count = {} - merge_n = {} - for merge in merges: - repos.remove('packages/%s' % merge[0]) - merge_map[merge[0]] = merge[1] - if int(merge[2]) == 0: - merge_count[merge[1]] = merge_count.get(merge[1], 0) + 1 - else: - merge_n[merge[0]] = int(merge[2]) + for package in packages: + if 'merge' in packages[package]: + repos.remove('packages/%s' % package) def get_repo(package): - if package in merge_map: - return get_repo(merge_map[package]) + if 'merge' in packages[package]: + return get_repo(packages[package]['merge']) return 'packages/%s.git' % package def get_branch(package): - if package in merge_map: - if package in merge_n or merge_count[merge_map[package]] > 1: - return package - return get_branch(merge_map[package]) + if 'branch' in packages[package]: + return packages[package]['branch'] + if 'merge' in packages[package]: + return get_branch(packages[package]['merge']) return 'master' def get_tag_prefix(package): - if package in merge_map: + if 'merge' in packages[package]: return '%s/' % package return '' %> @@ -108,9 +38,9 @@ end repository % endfor % for quash in quashes: -match ${quash[0]} - min revision ${quash[1]} - max revision ${quash[1]} +match ${quash['path']} + min revision ${quash['rev']} + max revision ${quash['rev']} end match % endfor @@ -124,11 +54,11 @@ match /trunk/packages/${package}/${package}-0/ end match % endif -% if package in doubled_packages: +% if 'undouble' in packages[package]: match /trunk/packages/${package}/${package}/ repository ${get_repo(package)} branch ${get_branch(package)} - max revision ${doubled_packages[package][0] - 1} + max revision ${packages[package]['undouble'][0] - 1} end match match /package_tags/${package}/([^/~]+)/${package}/ @@ -137,45 +67,45 @@ match /package_tags/${package}/([^/~]+)/${package}/ % if package == 'sipb-xen-dev': max revision 318 % else: - max revision ${doubled_packages[package][0] - 1} + max revision ${packages[package]['undouble'][0] - 1} % endif end match match /trunk/packages/tmp/${package}/ - min revision ${doubled_packages[package][0]} - max revision ${doubled_packages[package][0]} + min revision ${packages[package]['undouble'][0]} + max revision ${packages[package]['undouble'][0]} end match match /trunk/packages/${package}/ - min revision ${doubled_packages[package][1]} - max revision ${doubled_packages[package][1]} + min revision ${packages[package]['undouble'][1]} + max revision ${packages[package]['undouble'][1]} end match % endif match /trunk/packages/${package}/ repository ${get_repo(package)} branch ${get_branch(package)} -% if package in doubled_packages: - min revision ${doubled_packages[package][1] + 1} +% if 'undouble' in packages[package]: + min revision ${packages[package]['undouble'][1] + 1} % endif -% if package in punt: - max revision ${punt[package] - 1} +% if 'punt' in packages[package]: + max revision ${packages[package]['punt'] - 1} % endif end match match /package_tags/${package}/([^/~]+)/ repository ${get_repo(package)} branch tags/${get_tag_prefix(package)}\1 -% if package in doubled_packages: - min revision ${doubled_packages[package][1]} +% if 'undouble' in packages[package]: + min revision ${packages[package]['undouble'][1]} % endif end match match /package_tags/${package}/([^/~]+)~([^/~]+)/ repository ${get_repo(package)} branch tags/${get_tag_prefix(package)}\1_\2 -% if package in doubled_packages: - min revision ${doubled_packages[package][1]} +% if 'undouble' in packages[package]: + min revision ${packages[package]['undouble'][1]} % endif end match diff --git a/svn.yml b/svn.yml new file mode 100644 index 0000000..8c1def7 --- /dev/null +++ b/svn.yml @@ -0,0 +1,106 @@ +%YAML 1.1 +--- +packages: + invirt-autoinstaller: {} + invirt-base: {} + invirt-cluster-config: {} + invirt-console: {} + invirt-console-host: + {punt: 1815, merge: invirt-console, branch: invirt-console-host} + invirt-console-server: + {punt: 1813, merge: invirt-console} + invirt-database: {} + invirt-database-server: {} + invirt-dev: {} + invirt-dhcp: {} + invirt-dns: {} + invirt-host-master: {} + invirt-images: {} + invirt-manual-config: {} + invirt-remote: {} + invirt-remote-host: + {punt: 1822, merge: invirt-remote, branch: invirt-remote-host} + invirt-remote-server: + {punt: 1822, merge: invirt-remote, branch: invirt-remote-server} + invirt-svn-server: {} + invirt-vnc-client: {} + invirt-vnc-server: {} + invirt-web: {} + invirt-web-iptables: {} + invirt-xen-config: {} + libapache2-mod-auth-sslcert: {} + libyaml: {} + python-pydhcplib: {} + python-routefs: {} + pyyaml: {} + sipb-xen-autoinstaller: + {punt: 1569, merge: invirt-autoinstaller} + sipb-xen-base: + {undouble: [314, 315], punt: 1350, merge: invirt-base} + sipb-xen-chrony-config: + {punt: 1351} + sipb-xen-clvm-config: + {punt: 1569} + sipb-xen-console: + {punt: 1201, merge: invirt-console-server} + sipb-xen-console-server: + {punt: 1187, merge: invirt-console-host} + sipb-xen-database: + {undouble: [311, 313], punt: 1352, merge: invirt-database} + sipb-xen-dev: + {undouble: [314, 315], punt: 1353, merge: invirt-dev} + sipb-xen-dhcp: + {punt: 1436, merge: invirt-dhcp} + sipb-xen-dns: + {punt: 1184, merge: invirt-dns} + sipb-xen-dom0: + {undouble: [314, 315], punt: 1354, merge: invirt-xen-config} + sipb-xen-guest-installer: + {undouble: [310, 310], punt: 742, merge: sipb-xen-autoinstaller} + sipb-xen-host-master: + {punt: 1355, merge: invirt-host-master} + sipb-xen-iptables: + {punt: 1356, merge: invirt-web-iptables} + sipb-xen-python-pydhcplib: + {punt: 1357, merge: python-pydhcplib} + sipb-xen-remctl-auto: + {undouble: [314, 315], punt: 1358, merge: invirt-remote-host} + sipb-xen-remote-server: + {punt: 1176, merge: invirt-remote-server} + sipb-xen-vnc-client: + {punt: 1359, merge: invirt-vnc-client} + sipb-xen-vnc-server: + {punt: 1387, merge: invirt-vnc-server} + sipb-xen-www: + {punt: 1360, merge: invirt-web} + xvm-console-devconfig: + {punt: 700} + xvm-db-backup: {} + xvm-devconfig: {} + xvm-iscsi-config: {} + xvm-mail-config: {} + xvm-meta: {} + xvm-munin-config: {} + xvm-prodconfig: {} +scripts: +- git-migration +- invirt.mit.edu +- munin +- prod-migration +quashes: +- {rev: 11, path: /package_tags/sipb-xen-dev/sipb-xen-dev/} +- {rev: 316, path: /package_tags/sipb-xen-dev/13/} +- {rev: 347, path: /package_tags/sipb-xen-console/2/} +- {rev: 348, path: /package_tags/sipb-xen-console/2/sipb-xen-console/} +- {rev: 349, path: /package_tags/sipb-xen-console/2/} +- {rev: 401, path: /package_tags/sipb-xen-console/7.1/sipb-xen-console/} +- {rev: 452, path: /package_tags/sipb-xen-guest-installer/1.0/sipb-xen-guest-installer/} +- {rev: 462, path: /package_tags/sipb-xen-dev/14/sipb-xen-dev/} +- {rev: 463, path: /package_tags/sipb-xen-dev/14/} +- {rev: 742, path: /trunk/packages/sipb-xen-autoinstaller/} +- {rev: 1201, path: /trunk/packages/invirt-console-server/} +- {rev: 1455, path: /trunk/packages/xvm-prodconfig/} +- {rev: 1757, path: /trunk/packages/invirt-xen-config/} +- {rev: 1819, path: /trunk/packages/invirt-console/} +- {rev: 1864, path: /trunk/scripts/prod-migration/} +- {rev: 1904, path: /trunk/packages/invirt-dhcp/} -- 1.7.9.5