source: trunk/scripts/git-migration/rules.mako @ 1932

Last change on this file since 1932 was 1932, checked in by andersk, 15 years ago

Fix the screwed-up sipb-xen-dev/13 tag.

File size: 6.4 KB
RevLine 
[1901]1<%
2    packages = [line.strip() for line in open('package-list')]
3    packages.append('packages/xvm-console-devconfig')
4    repos = packages
5    packages = [package[len('packages/'):] for package in packages]
6
[1921]7    scripts = ['git-migration', 'invirt.mit.edu', 'munin', 'prod-migration']
8    repos += ['scripts/%s' % script for script in scripts]
9
10    repos += ['doc/xvm', 'scripts/osx-update']
11
[1906]12    doubled_packages = {
[1914]13        'sipb-xen-guest-installer': (310, 310),
[1906]14        'sipb-xen-base': (314, 315),
15        'sipb-xen-database': (311, 313),
16        'sipb-xen-dev': (314, 315),
17        'sipb-xen-dom0': (314, 315),
18        'sipb-xen-remctl-auto': (314, 315),
19    }
20
[1905]21    punt = {
[1914]22        'xvm-console-devconfig': 700,
[1906]23        'sipb-xen-guest-installer': 742,
[1914]24        'sipb-xen-remote-server': 1176,
[1906]25        'sipb-xen-dns': 1184,
[1914]26        'sipb-xen-console-server': 1187,
27        'sipb-xen-console': 1201,
[1905]28        'sipb-xen-base': 1350,
29        'sipb-xen-chrony-config': 1351,
30        'sipb-xen-database': 1352,
31        'sipb-xen-dev': 1353,
32        'sipb-xen-dom0': 1354,
33        'sipb-xen-host-master': 1355,
34        'sipb-xen-iptables': 1356,
35        'sipb-xen-python-pydhcplib': 1357,
36        'sipb-xen-remctl-auto': 1358,
37        'sipb-xen-vnc-client': 1359,
38        'sipb-xen-www': 1360,
39        'sipb-xen-vnc-server': 1387,
40        'sipb-xen-dhcp': 1436,
41        'sipb-xen-autoinstaller': 1569,
42        'sipb-xen-clvm-config': 1569,
[1920]43        'invirt-console-host': 1815,
44        'invirt-console-server': 1813,
[1914]45        'invirt-remote-host': 1822,
46        'invirt-remote-server': 1822,
[1905]47    }
48
[1901]49    merges = []
50    for line in open('merges'):
51        line = line.strip()
52        if line == '' or line[0] == '#':
53            continue
54
55        merges.append(line.split())
56
57    merge_map = {}
58    merge_count = {}
59    merge_n = {}
60    for merge in merges:
61        repos.remove('packages/%s' % merge[0])
62        merge_map[merge[0]] = merge[1]
63        if int(merge[2]) == 0:
64            merge_count[merge[1]] = merge_count.get(merge[1], 0) + 1
65        else:
66            merge_n[merge[0]] = int(merge[2])
67
68    def get_repo(package):
69        if package in merge_map:
70            return get_repo(merge_map[package])
71        return 'packages/%s.git' % package
72
73    def get_branch(package):
74        if package in merge_map:
75            if package in merge_n or merge_count[merge_map[package]] > 1:
76                return package
77            return get_branch(merge_map[package])
78        return 'master'
79
80    def get_tag_prefix(package):
81        if package in merge_map:
82            return '%s/' % package
83        return ''
84%>
85
86% for repo in repos:
87create repository ${repo}.git
88end repository
89
90% endfor
91
[1931]92match /package_tags/sipb-xen-dev/sipb-xen-dev/
[1903]93end match
94
[1932]95match /package_tags/sipb-xen-dev/13/
96  min revision 316
97  max revision 316
98end match
99
[1931]100match /package_tags/sipb-xen-console/2/
[1914]101  min revision 347
102  max revision 349
103end match
104
[1931]105match /package_tags/sipb-xen-console/7.1/sipb-xen-console/
[1914]106  min revision 401
107  max revision 401
108end match
109
[1931]110match /package_tags/sipb-xen-guest-installer/1.0/sipb-xen-guest-installer/
[1914]111  min revision 452
112  max revision 452
113end match
114
115match /package_tags/sipb-xen-dev/14/sipb-xen-dev(/|$)
116  min revision 462
117  max revision 463
118end match
119
[1931]120match /trunk/packages/sipb-xen-autoinstaller/
[1906]121  min revision 742
122  max revision 742
123end match
124
[1901]125% for package in packages:
[1906]126
127% if package == 'sipb-xen-database':
[1931]128match /trunk/packages/${package}/${package}-0/
[1906]129  repository ${get_repo(package)}
130  branch ${get_branch(package)}
131  max revision 8
132end match
133% endif
134
135% if package in doubled_packages:
[1931]136match /trunk/packages/${package}/${package}/
[1901]137  repository ${get_repo(package)}
138  branch ${get_branch(package)}
[1906]139  max revision ${doubled_packages[package][0] - 1}
[1901]140end match
141
[1931]142match /package_tags/${package}/([^/~]+)/${package}/
[1901]143  repository ${get_repo(package)}
144  branch tags/${get_tag_prefix(package)}\1
[1932]145% if package == 'sipb-xen-dev':
146  max revision 318
147% else:
[1906]148  max revision ${doubled_packages[package][0] - 1}
[1932]149% endif
[1901]150end match
151
[1931]152match /trunk/packages/tmp/${package}/
[1914]153  min revision ${doubled_packages[package][0]}
154  max revision ${doubled_packages[package][0]}
[1906]155end match
[1914]156
[1931]157match /trunk/packages/${package}/
[1914]158  min revision ${doubled_packages[package][1]}
159  max revision ${doubled_packages[package][1]}
160end match
[1906]161% endif
162
[1931]163match /trunk/packages/${package}/
[1901]164  repository ${get_repo(package)}
165  branch ${get_branch(package)}
[1906]166% if package in doubled_packages:
[1914]167  min revision ${doubled_packages[package][1] + 1}
[1906]168% endif
[1905]169% if package in punt:
170  max revision ${punt[package] - 1}
171% endif
[1901]172end match
173
[1931]174match /package_tags/${package}/([^/~]+)/
[1901]175  repository ${get_repo(package)}
176  branch tags/${get_tag_prefix(package)}\1
[1906]177% if package in doubled_packages:
178  min revision ${doubled_packages[package][1]}
179% endif
[1901]180end match
181
[1931]182match /package_tags/${package}/([^/~]+)~([^/~]+)/
[1901]183  repository ${get_repo(package)}
184  branch tags/${get_tag_prefix(package)}\1_\2
[1906]185% if package in doubled_packages:
186  min revision ${doubled_packages[package][1]}
187% endif
[1901]188end match
189
190% endfor
191
[1931]192match /trunk/packages/(xen-common|xen-3.1)/
[1901]193end match
194
[1931]195match /package_tags/(xen-common|xen-3.1)/
[1901]196end match
197
[1931]198match /trunk/dhcp/
[1905]199  repository ${get_repo('sipb-xen-dhcp')}
200  branch ${get_branch('sipb-xen-dhcp')}
201  max revision 281
[1901]202end match
203
[1905]204match /trunk/web(/|$)
205  repository ${get_repo('sipb-xen-www')}
206  branch ${get_branch('sipb-xen-www')}
[1914]207  max revision 303
[1905]208end match
209
210match /trunk/vnc/tightvnc-1.3.9_javasrc.zip
211end match
212
[1931]213match /trunk/vnc/vnc_javasrc/
[1905]214  repository ${get_repo('sipb-xen-vnc-client')}
215  branch ${get_branch('sipb-xen-vnc-client')}
[1914]216  max revision 304
[1905]217end match
218
219match /trunk/vnc/vnc_server(/|$)
220  repository ${get_repo('sipb-xen-vnc-server')}
221  branch ${get_branch('sipb-xen-vnc-server')}
[1914]222  max revision 286
[1905]223end match
224
[1931]225match /trunk/dns/
[1920]226  repository ${get_repo('sipb-xen-dns')}
227  branch dns
228  max revision 268
[1905]229end match
230
[1921]231% for script in scripts:
[1931]232match /trunk/scripts/${script}/
[1921]233  repository scripts/${script}.git
234  branch master
[1920]235end match
[1921]236% endfor
[1920]237
[1931]238match /trunk/scripts/
[1921]239  repository scripts/osx-update.git
240  branch master
241  min revision 1785
242  max revision 1785
[1901]243end match
244
[1931]245match /trunk/scripts/
[1921]246  repository scripts/prod-migration.git
247  branch master
248  max revision 1863
249end match
250
251% for rev in [803, 804, 925, 926, 928, 1537, 1566]:
[1931]252match /trunk/
[1921]253  repository doc/xvm.git
254  branch master
255  min revision ${rev}
256  max revision ${rev}
257end match
258% endfor
259
[1931]260match /trunk/vmctl/
[1921]261end match
262
263match /trunk/COPYING$
264end match
265
[1931]266match /branches/wsgi/
[1901]267end match
Note: See TracBrowser for help on using the repository browser.