git-migration updates for openais, corosync, xvm-host-setup-notes.
[invirt/scripts/git-migration.git] / rules.mako
1 <%
2     import yaml
3     svn = yaml.load(open('svn.yml'))
4     packages = svn['packages']
5     trunks = svn['trunks']
6     scripts = svn['scripts']
7     third = svn['third']
8     quashes = svn['quashes']
9
10     repos = ['packages/%s' % package for package in packages]
11     repos += ['scripts/%s' % script for script in scripts]
12     repos += ['doc/xvm', 'scripts/osx-update', 'scripts/install-invirt']
13     repos += ['third/%s' % t for t in third]
14
15     for package in packages:
16         if 'merge' in packages[package]:
17             repos.remove('packages/%s' % package)
18
19     def get_repo(package):
20         if 'merge' in packages[package]:
21             return get_repo(packages[package]['merge'])
22         return 'packages/%s.git' % package
23
24     def get_branch(package):
25         if 'branch' in packages[package]:
26             return packages[package]['branch']
27         if 'merge' in packages[package]:
28             return get_branch(packages[package]['merge'])
29         return 'prod'
30
31     def get_tag_prefix(package):
32         if 'merge' in packages[package]:
33             return '%s/' % package
34         return ''
35 %>
36
37 % for repo in repos:
38 create repository ${repo}.git
39 end repository
40
41 % endfor
42
43 % for quash in quashes:
44 match ${quash['path']}
45   min revision ${quash['rev']}
46   max revision ${quash['rev']}
47 end match
48 % endfor
49
50 % for package in packages:
51
52 %   if package == 'sipb-xen-database':
53 match /trunk/packages/${package}/${package}-0/
54   repository ${get_repo(package)}
55   branch ${get_branch(package)}
56   max revision 8
57 end match
58 %   endif
59
60 %   if 'undouble' in packages[package]:
61 match /trunk/packages/${package}/${package}/
62   repository ${get_repo(package)}
63   branch ${get_branch(package)}
64   max revision ${packages[package]['undouble'][0] - 1}
65 end match
66
67 match /package_tags/${package}/([^/~]+)/${package}/
68   repository ${get_repo(package)}
69   branch refs/tags/${get_tag_prefix(package)}\1
70   annotated true
71   max revision ${packages[package]['undouble'][0] - 1}
72 end match
73
74 match /trunk/packages/tmp/${package}/
75   min revision ${packages[package]['undouble'][0]}
76   max revision ${packages[package]['undouble'][0]}
77 end match
78
79 match /trunk/packages/${package}/
80   min revision ${packages[package]['undouble'][1]}
81   max revision ${packages[package]['undouble'][1]}
82 end match
83 %   endif
84
85 match /trunk/packages/${package}/
86   repository ${get_repo(package)}
87   branch ${get_branch(package)}
88 %   if 'undouble' in packages[package]:
89   min revision ${packages[package]['undouble'][1] + 1}
90 %   endif
91 %   if 'punt' in packages[package]:
92   max revision ${packages[package]['punt'] - 1}
93 %   endif
94 end match
95
96 match /package_branches/${package}/([^/~]+)/
97   repository ${get_repo(package)}
98   branch ${get_tag_prefix(package)}\1
99 end match
100
101 match /package_tags/${package}/([^/~]+)/
102   repository ${get_repo(package)}
103   branch refs/tags/${get_tag_prefix(package)}\1
104   annotated true
105 %   if 'undouble' in packages[package]:
106   min revision ${packages[package]['undouble'][1]}
107 %   endif
108 end match
109
110 match /package_tags/${package}/([^/~]+)~([^/~]+)/
111   repository ${get_repo(package)}
112   branch refs/tags/${get_tag_prefix(package)}\1_\2
113   annotated true
114 %   if 'undouble' in packages[package]:
115   min revision ${packages[package]['undouble'][1]}
116 %   endif
117 end match
118
119 % endfor
120
121 match /trunk/packages/(xen-common|xen-3.1)/
122 end match
123
124 match /package_tags/(xen-common|xen-3.1)/
125 end match
126
127 % for trunk in trunks:
128 %   if 'inclusive' in trunks[trunk]:
129 match /trunk/${trunk}(/|$)
130 %   else:
131 match /trunk/${trunk}/
132 %   endif
133   repository ${get_repo(trunks[trunk]['merge'])}
134 %   if 'branch' in trunks[trunk]:
135   branch ${trunks[trunk]['branch']}
136 %   else:
137   branch ${get_branch(trunks[trunk]['merge'])}
138 %   endif
139 %   if 'inclusive' in trunks[trunk]:
140   max revision ${trunks[trunk]['punt']}
141 %   else:
142   max revision ${trunks[trunk]['punt'] - 1}
143 %   endif
144 end match
145 % endfor
146
147 match /trunk/vnc/tightvnc-1.3.9_javasrc.zip
148 end match
149
150 % for script in scripts:
151 match /trunk/scripts/${script}/
152   repository scripts/${script}.git
153   branch master
154 end match
155 % endfor
156
157 match /trunk/scripts/
158   repository scripts/osx-update.git
159   branch master
160   min revision 1785
161   max revision 1785
162 end match
163
164 match /trunk/scripts/
165   repository scripts/install-invirt.git
166   branch master
167   min revision 2026
168   max revision 2026
169 end match
170
171 match /trunk/scripts/
172   repository scripts/prod-migration.git
173   branch master
174   max revision 1863
175 end match
176
177 % for t in third:
178 match /trunk/third/${t}/
179   repository third/${t}.git
180   branch master
181 end match
182
183 match /third_tags/${t}/([^/~]+)/
184   repository third/${t}.git
185   branch refs/tags/\1
186   annotated true
187 end match
188 % endfor
189
190 % for rev in [803, 804, 925, 926, 928, 1537, 1566, 3024]:
191 match /trunk/
192   repository doc/xvm.git
193   branch master
194   min revision ${rev}
195   max revision ${rev}
196 end match
197 % endfor
198
199 match /trunk/vmctl/
200 end match
201
202 match /trunk/COPYING$
203 end match
204
205 match /branches/wsgi/
206 end match