X-Git-Url: http://xvm.mit.edu/gitweb/invirt/scripts/git-migration.git/blobdiff_plain/0226af193c94476ff2029e0d44103bb4d216a331..58cc6ab01e03c699c86a999b8a50ef348e1a2af4:/rules.mako diff --git a/rules.mako b/rules.mako index 415b5c3..5c3ba1e 100644 --- a/rules.mako +++ b/rules.mako @@ -1,79 +1,33 @@ <% - 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] - - 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]) + import yaml + svn = yaml.load(open('svn.yml')) + packages = svn['packages'] + trunks = svn['trunks'] + scripts = svn['scripts'] + quashes = svn['quashes'] + + repos = ['packages/%s' % package for package in packages] + repos += ['scripts/%s' % script for script in scripts] + repos += ['doc/xvm', 'scripts/osx-update', 'scripts/install-invirt'] + + 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 '' %> @@ -84,141 +38,146 @@ 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': -match /trunk/packages/${package}/${package}-0(/|$) +% 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: -match /trunk/packages/${package}/${package}(/|$) +% 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}(/|$) +match /package_tags/${package}/([^/~]+)/${package}/ repository ${get_repo(package)} branch tags/${get_tag_prefix(package)}\1 - max revision ${doubled_packages[package][0] - 1} + max revision ${packages[package]['undouble'][0] - 1} end match -match /trunk/packages/tmp/${package}(/|$) - min revision ${doubled_packages[package][0]} - max revision ${doubled_packages[package][0]} +match /trunk/packages/tmp/${package}/ + 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]} +match /trunk/packages/${package}/ + min revision ${packages[package]['undouble'][1]} + max revision ${packages[package]['undouble'][1]} end match -% endif +% endif -match /trunk/packages/${package}(/|$) +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}/([^/~]+)(/|$) +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}/([^/~]+)~([^/~]+)(/|$) +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 -match /trunk/packages/(xen-common|xen-3.1)(/|$) +match /trunk/packages/(xen-common|xen-3.1)/ +end match + +match /package_tags/(xen-common|xen-3.1)/ end match -match /package_tags/(xen-common|xen-3.1)(/|$) +% for trunk in trunks: +% if 'inclusive' in trunks[trunk]: +match /trunk/${trunk}(/|$) +% else: +match /trunk/${trunk}/ +% endif + repository ${get_repo(trunks[trunk]['merge'])} +% if 'branch' in trunks[trunk]: + branch ${trunks[trunk]['branch']} +% else: + branch ${get_branch(trunks[trunk]['merge'])} +% endif +% if 'inclusive' in trunks[trunk]: + max revision ${trunks[trunk]['punt']} +% else: + max revision ${trunks[trunk]['punt'] - 1} +% endif end match +% endfor -match /trunk/dhcp(/|$) - repository ${get_repo('sipb-xen-dhcp')} - branch ${get_branch('sipb-xen-dhcp')} - max revision 281 +match /trunk/vnc/tightvnc-1.3.9_javasrc.zip end match -match /trunk/web(/|$) - repository ${get_repo('sipb-xen-www')} - branch ${get_branch('sipb-xen-www')} - max revision 303 +% for script in scripts: +match /trunk/scripts/${script}/ + repository scripts/${script}.git + branch master end match +% endfor -match /trunk/vnc/tightvnc-1.3.9_javasrc.zip +match /trunk/scripts/ + repository scripts/osx-update.git + branch master + min revision 1785 + max revision 1785 end match -match /trunk/vnc/vnc_javasrc(/|$) - repository ${get_repo('sipb-xen-vnc-client')} - branch ${get_branch('sipb-xen-vnc-client')} - max revision 304 +match /trunk/scripts/ + repository scripts/install-invirt.git + branch master + min revision 2026 + max revision 2026 end match -match /trunk/vnc/vnc_server(/|$) - repository ${get_repo('sipb-xen-vnc-server')} - branch ${get_branch('sipb-xen-vnc-server')} - max revision 286 +match /trunk/scripts/ + repository scripts/prod-migration.git + branch master + max revision 1863 end match -match /trunk/dns(/|$) - repository ${get_repo('sipb-xen-dns')} - branch dns - max revision 268 +% for rev in [803, 804, 925, 926, 928, 1537, 1566]: +match /trunk/ + repository doc/xvm.git + branch master + min revision ${rev} + max revision ${rev} end match +% endfor -match /trunk/(scripts|vmctl)(/|$) +match /trunk/vmctl/ end match -match /trunk/(COPYING|xvm-host-setup-notes) +match /trunk/COPYING$ end match -match /branches/wsgi(/|$) +match /branches/wsgi/ end match