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

Last change on this file since 1921 was 1921, checked in by andersk, 16 years ago

Add the xvm-host-setup-notes (into doc/xvm) and scripts/*.

File size: 6.3 KB
Line 
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
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
12    doubled_packages = {
13        'sipb-xen-guest-installer': (310, 310),
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
21    punt = {
22        'xvm-console-devconfig': 700,
23        'sipb-xen-guest-installer': 742,
24        'sipb-xen-remote-server': 1176,
25        'sipb-xen-dns': 1184,
26        'sipb-xen-console-server': 1187,
27        'sipb-xen-console': 1201,
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,
43        'invirt-console-host': 1815,
44        'invirt-console-server': 1813,
45        'invirt-remote-host': 1822,
46        'invirt-remote-server': 1822,
47    }
48
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
92match /package_tags/sipb-xen-dev/sipb-xen-dev(/|$)
93end match
94
95match /package_tags/sipb-xen-console/2(/|$)
96  min revision 347
97  max revision 349
98end match
99
100match /package_tags/sipb-xen-console/7.1/sipb-xen-console(/|$)
101  min revision 401
102  max revision 401
103end match
104
105match /package_tags/sipb-xen-guest-installer/1.0/sipb-xen-guest-installer(/|$)
106  min revision 452
107  max revision 452
108end match
109
110match /package_tags/sipb-xen-dev/14/sipb-xen-dev(/|$)
111  min revision 462
112  max revision 463
113end match
114
115match /trunk/packages/sipb-xen-autoinstaller(/|$)
116  min revision 742
117  max revision 742
118end match
119
120% for package in packages:
121
122% if package == 'sipb-xen-database':
123match /trunk/packages/${package}/${package}-0(/|$)
124  repository ${get_repo(package)}
125  branch ${get_branch(package)}
126  max revision 8
127end match
128% endif
129
130% if package in doubled_packages:
131match /trunk/packages/${package}/${package}(/|$)
132  repository ${get_repo(package)}
133  branch ${get_branch(package)}
134  max revision ${doubled_packages[package][0] - 1}
135end match
136
137match /package_tags/${package}/([^/~]+)/${package}(/|$)
138  repository ${get_repo(package)}
139  branch tags/${get_tag_prefix(package)}\1
140  max revision ${doubled_packages[package][0] - 1}
141end match
142
143match /trunk/packages/tmp/${package}(/|$)
144  min revision ${doubled_packages[package][0]}
145  max revision ${doubled_packages[package][0]}
146end match
147
148match /trunk/packages/${package}(/|$)
149  min revision ${doubled_packages[package][1]}
150  max revision ${doubled_packages[package][1]}
151end match
152% endif
153
154match /trunk/packages/${package}(/|$)
155  repository ${get_repo(package)}
156  branch ${get_branch(package)}
157% if package in doubled_packages:
158  min revision ${doubled_packages[package][1] + 1}
159% endif
160% if package in punt:
161  max revision ${punt[package] - 1}
162% endif
163end match
164
165match /package_tags/${package}/([^/~]+)(/|$)
166  repository ${get_repo(package)}
167  branch tags/${get_tag_prefix(package)}\1
168% if package in doubled_packages:
169  min revision ${doubled_packages[package][1]}
170% endif
171end match
172
173match /package_tags/${package}/([^/~]+)~([^/~]+)(/|$)
174  repository ${get_repo(package)}
175  branch tags/${get_tag_prefix(package)}\1_\2
176% if package in doubled_packages:
177  min revision ${doubled_packages[package][1]}
178% endif
179end match
180
181% endfor
182
183match /trunk/packages/(xen-common|xen-3.1)(/|$)
184end match
185
186match /package_tags/(xen-common|xen-3.1)(/|$)
187end match
188
189match /trunk/dhcp(/|$)
190  repository ${get_repo('sipb-xen-dhcp')}
191  branch ${get_branch('sipb-xen-dhcp')}
192  max revision 281
193end match
194
195match /trunk/web(/|$)
196  repository ${get_repo('sipb-xen-www')}
197  branch ${get_branch('sipb-xen-www')}
198  max revision 303
199end match
200
201match /trunk/vnc/tightvnc-1.3.9_javasrc.zip
202end match
203
204match /trunk/vnc/vnc_javasrc(/|$)
205  repository ${get_repo('sipb-xen-vnc-client')}
206  branch ${get_branch('sipb-xen-vnc-client')}
207  max revision 304
208end match
209
210match /trunk/vnc/vnc_server(/|$)
211  repository ${get_repo('sipb-xen-vnc-server')}
212  branch ${get_branch('sipb-xen-vnc-server')}
213  max revision 286
214end match
215
216match /trunk/dns(/|$)
217  repository ${get_repo('sipb-xen-dns')}
218  branch dns
219  max revision 268
220end match
221
222% for script in scripts:
223match /trunk/scripts/${script}(/|$)
224  repository scripts/${script}.git
225  branch master
226end match
227% endfor
228
229match /trunk/scripts(/|$)
230  repository scripts/osx-update.git
231  branch master
232  min revision 1785
233  max revision 1785
234end match
235
236match /trunk/scripts(/|$)
237  repository scripts/prod-migration.git
238  branch master
239  max revision 1863
240end match
241
242% for rev in [803, 804, 925, 926, 928, 1537, 1566]:
243match /trunk(/|$)
244  repository doc/xvm.git
245  branch master
246  min revision ${rev}
247  max revision ${rev}
248end match
249% endfor
250
251match /trunk/vmctl(/|$)
252end match
253
254match /trunk/COPYING$
255end match
256
257match /branches/wsgi(/|$)
258end match
Note: See TracBrowser for help on using the repository browser.