+++ /dev/null
-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
<%
- 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 ''
%>
% 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
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}/
% 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
--- /dev/null
+%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/}