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

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

Put some more stuff in YAML.

File size: 4.2 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']
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%     if package == 'sipb-xen-dev':
69  max revision 318
70%     else:
71  max revision ${packages[package]['undouble'][0] - 1}
72%     endif
73end match
74
75match /trunk/packages/tmp/${package}/
76  min revision ${packages[package]['undouble'][0]}
77  max revision ${packages[package]['undouble'][0]}
78end match
79
80match /trunk/packages/${package}/
81  min revision ${packages[package]['undouble'][1]}
82  max revision ${packages[package]['undouble'][1]}
83end match
84%   endif
85
86match /trunk/packages/${package}/
87  repository ${get_repo(package)}
88  branch ${get_branch(package)}
89%   if 'undouble' in packages[package]:
90  min revision ${packages[package]['undouble'][1] + 1}
91%   endif
92%   if 'punt' in packages[package]:
93  max revision ${packages[package]['punt'] - 1}
94%   endif
95end match
96
97match /package_tags/${package}/([^/~]+)/
98  repository ${get_repo(package)}
99  branch tags/${get_tag_prefix(package)}\1
100%   if 'undouble' in packages[package]:
101  min revision ${packages[package]['undouble'][1]}
102%   endif
103end match
104
105match /package_tags/${package}/([^/~]+)~([^/~]+)/
106  repository ${get_repo(package)}
107  branch tags/${get_tag_prefix(package)}\1_\2
108%   if 'undouble' in packages[package]:
109  min revision ${packages[package]['undouble'][1]}
110%   endif
111end match
112
113% endfor
114
115match /trunk/packages/(xen-common|xen-3.1)/
116end match
117
118match /package_tags/(xen-common|xen-3.1)/
119end match
120
121% for trunk in trunks:
122%   if 'inclusive' in trunks[trunk]:
123match /trunk/${trunk}(/|$)
124%   else:
125match /trunk/${trunk}/
126%   endif
127  repository ${get_repo(trunks[trunk]['merge'])}
128%   if 'branch' in trunks[trunk]:
129  branch ${trunks[trunk]['branch']}
130%   else:
131  branch ${get_branch(trunks[trunk]['merge'])}
132%   endif
133%   if 'inclusive' in trunks[trunk]:
134  max revision ${trunks[trunk]['punt']}
135%   else:
136  max revision ${trunks[trunk]['punt'] - 1}
137%   endif
138end match
139% endfor
140
141match /trunk/vnc/tightvnc-1.3.9_javasrc.zip
142end match
143
144% for script in scripts:
145match /trunk/scripts/${script}/
146  repository scripts/${script}.git
147  branch master
148end match
149% endfor
150
151match /trunk/scripts/
152  repository scripts/osx-update.git
153  branch master
154  min revision 1785
155  max revision 1785
156end match
157
158match /trunk/scripts/
159  repository scripts/prod-migration.git
160  branch master
161  max revision 1863
162end match
163
164% for rev in [803, 804, 925, 926, 928, 1537, 1566]:
165match /trunk/
166  repository doc/xvm.git
167  branch master
168  min revision ${rev}
169  max revision ${rev}
170end match
171% endfor
172
173match /trunk/vmctl/
174end match
175
176match /trunk/COPYING$
177end match
178
179match /branches/wsgi/
180end match
Note: See TracBrowser for help on using the repository browser.