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

Last change on this file since 2268 was 2031, checked in by broder, 16 years ago

Revert r2030. I'm an idiot.

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