2 packages = [line.strip() for line in open('package-list')]
4 packages = [package[len('packages/'):] for package in packages]
6 scripts = ['git-migration', 'invirt.mit.edu', 'munin', 'prod-migration']
7 repos += ['scripts/%s' % script for script in scripts]
9 repos += ['doc/xvm', 'scripts/osx-update']
12 'sipb-xen-guest-installer': (310, 310),
13 'sipb-xen-base': (314, 315),
14 'sipb-xen-database': (311, 313),
15 'sipb-xen-dev': (314, 315),
16 'sipb-xen-dom0': (314, 315),
17 'sipb-xen-remctl-auto': (314, 315),
21 'xvm-console-devconfig': 700,
22 'sipb-xen-guest-installer': 742,
23 'sipb-xen-remote-server': 1176,
25 'sipb-xen-console-server': 1187,
26 'sipb-xen-console': 1201,
27 'sipb-xen-base': 1350,
28 'sipb-xen-chrony-config': 1351,
29 'sipb-xen-database': 1352,
31 'sipb-xen-dom0': 1354,
32 'sipb-xen-host-master': 1355,
33 'sipb-xen-iptables': 1356,
34 'sipb-xen-python-pydhcplib': 1357,
35 'sipb-xen-remctl-auto': 1358,
36 'sipb-xen-vnc-client': 1359,
38 'sipb-xen-vnc-server': 1387,
39 'sipb-xen-dhcp': 1436,
40 'sipb-xen-autoinstaller': 1569,
41 'sipb-xen-clvm-config': 1569,
42 'invirt-console-host': 1815,
43 'invirt-console-server': 1813,
44 'invirt-remote-host': 1822,
45 'invirt-remote-server': 1822,
49 ('/package_tags/sipb-xen-dev/sipb-xen-dev/', 11),
50 ('/package_tags/sipb-xen-dev/13/', 316),
51 ('/package_tags/sipb-xen-console/2/', 347),
52 ('/package_tags/sipb-xen-console/2/sipb-xen-console/', 348),
53 ('/package_tags/sipb-xen-console/2/', 349),
54 ('/package_tags/sipb-xen-console/7.1/sipb-xen-console/', 401),
55 ('/package_tags/sipb-xen-guest-installer/1.0/sipb-xen-guest-installer/', 452),
56 ('/package_tags/sipb-xen-dev/14/sipb-xen-dev/', 462),
57 ('/package_tags/sipb-xen-dev/14/', 463),
58 ('/trunk/packages/sipb-xen-autoinstaller/', 742),
59 ('/trunk/packages/invirt-console-server/', 1201),
60 ('/trunk/packages/xvm-prodconfig/', 1455),
61 ('/trunk/packages/invirt-xen-config/', 1757),
62 ('/trunk/packages/invirt-console/', 1819),
63 ('/trunk/scripts/prod-migration/', 1864),
64 ('/trunk/packages/invirt-dhcp/', 1904),
68 for line in open('merges'):
70 if line == '' or line[0] == '#':
73 merges.append(line.split())
79 repos.remove('packages/%s' % merge[0])
80 merge_map[merge[0]] = merge[1]
81 if int(merge[2]) == 0:
82 merge_count[merge[1]] = merge_count.get(merge[1], 0) + 1
84 merge_n[merge[0]] = int(merge[2])
86 def get_repo(package):
87 if package in merge_map:
88 return get_repo(merge_map[package])
89 return 'packages/%s.git' % package
91 def get_branch(package):
92 if package in merge_map:
93 if package in merge_n or merge_count[merge_map[package]] > 1:
95 return get_branch(merge_map[package])
98 def get_tag_prefix(package):
99 if package in merge_map:
100 return '%s/' % package
105 create repository ${repo}.git
110 % for quash in quashes:
112 min revision ${quash[1]}
113 max revision ${quash[1]}
117 % for package in packages:
119 % if package == 'sipb-xen-database':
120 match /trunk/packages/${package}/${package}-0/
121 repository ${get_repo(package)}
122 branch ${get_branch(package)}
127 % if package in doubled_packages:
128 match /trunk/packages/${package}/${package}/
129 repository ${get_repo(package)}
130 branch ${get_branch(package)}
131 max revision ${doubled_packages[package][0] - 1}
134 match /package_tags/${package}/([^/~]+)/${package}/
135 repository ${get_repo(package)}
136 branch tags/${get_tag_prefix(package)}\1
137 % if package == 'sipb-xen-dev':
140 max revision ${doubled_packages[package][0] - 1}
144 match /trunk/packages/tmp/${package}/
145 min revision ${doubled_packages[package][0]}
146 max revision ${doubled_packages[package][0]}
149 match /trunk/packages/${package}/
150 min revision ${doubled_packages[package][1]}
151 max revision ${doubled_packages[package][1]}
155 match /trunk/packages/${package}/
156 repository ${get_repo(package)}
157 branch ${get_branch(package)}
158 % if package in doubled_packages:
159 min revision ${doubled_packages[package][1] + 1}
161 % if package in punt:
162 max revision ${punt[package] - 1}
166 match /package_tags/${package}/([^/~]+)/
167 repository ${get_repo(package)}
168 branch tags/${get_tag_prefix(package)}\1
169 % if package in doubled_packages:
170 min revision ${doubled_packages[package][1]}
174 match /package_tags/${package}/([^/~]+)~([^/~]+)/
175 repository ${get_repo(package)}
176 branch tags/${get_tag_prefix(package)}\1_\2
177 % if package in doubled_packages:
178 min revision ${doubled_packages[package][1]}
184 match /trunk/packages/(xen-common|xen-3.1)/
187 match /package_tags/(xen-common|xen-3.1)/
191 repository ${get_repo('sipb-xen-dhcp')}
192 branch ${get_branch('sipb-xen-dhcp')}
196 match /trunk/web(/|$)
197 repository ${get_repo('sipb-xen-www')}
198 branch ${get_branch('sipb-xen-www')}
202 match /trunk/vnc/tightvnc-1.3.9_javasrc.zip
205 match /trunk/vnc/vnc_javasrc/
206 repository ${get_repo('sipb-xen-vnc-client')}
207 branch ${get_branch('sipb-xen-vnc-client')}
211 match /trunk/vnc/vnc_server(/|$)
212 repository ${get_repo('sipb-xen-vnc-server')}
213 branch ${get_branch('sipb-xen-vnc-server')}
218 repository ${get_repo('sipb-xen-dns')}
223 % for script in scripts:
224 match /trunk/scripts/${script}/
225 repository scripts/${script}.git
230 match /trunk/scripts/
231 repository scripts/osx-update.git
237 match /trunk/scripts/
238 repository scripts/prod-migration.git
243 % for rev in [803, 804, 925, 926, 928, 1537, 1566]:
245 repository doc/xvm.git
255 match /trunk/COPYING$
258 match /branches/wsgi/