X-Git-Url: http://xvm.mit.edu/gitweb/invirt/scripts/git-migration.git/blobdiff_plain/5ed5cfff2dc88b60d28c4063b4a9913a72678466..7ee61b3ca53e31cfd15f533b94f19de94f096cee:/rules.mako diff --git a/rules.mako b/rules.mako index 6317656..015aa62 100644 --- a/rules.mako +++ b/rules.mako @@ -1,84 +1,32 @@ <% - packages = [line.strip() for line in open('package-list')] - packages.append('packages/xvm-console-devconfig') - 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, - } - - 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 '' %> @@ -89,93 +37,76 @@ end repository % endfor -match /package_tags/sipb-xen-dev/sipb-xen-dev/ -end match - -match /package_tags/sipb-xen-console/2/ - min revision 347 - max revision 349 -end match - -match /package_tags/sipb-xen-console/7.1/sipb-xen-console/ - min revision 401 - max revision 401 -end match - -match /package_tags/sipb-xen-guest-installer/1.0/sipb-xen-guest-installer/ - min revision 452 - max revision 452 -end match - -match /package_tags/sipb-xen-dev/14/sipb-xen-dev(/|$) - min revision 462 - max revision 463 -end match - -match /trunk/packages/sipb-xen-autoinstaller/ - min revision 742 - max revision 742 +% for quash in quashes: +match ${quash['path']} + min revision ${quash['rev']} + max revision ${quash['rev']} end match +% endfor % for package in packages: -% if package == 'sipb-xen-database': +% if package == 'sipb-xen-database': match /trunk/packages/${package}/${package}-0/ repository ${get_repo(package)} branch ${get_branch(package)} max revision 8 end match -% endif +% 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}/ repository ${get_repo(package)} branch tags/${get_tag_prefix(package)}\1 - max revision ${doubled_packages[package][0] - 1} +% if package == 'sipb-xen-dev': + max revision 318 +% else: + 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 +% 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} -% endif -% if package in punt: - max revision ${punt[package] - 1} -% endif +% if 'undouble' in packages[package]: + min revision ${packages[package]['undouble'][1] + 1} +% endif +% 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]} -% endif +% 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]} -% endif +% if 'undouble' in packages[package]: + min revision ${packages[package]['undouble'][1]} +% endif end match % endfor