3 svn = yaml.load(open('svn.yml'))
4 packages = svn['packages']
6 scripts = svn['scripts']
8 quashes = svn['quashes']
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]
15 for package in packages:
16 if 'merge' in packages[package]:
17 repos.remove('packages/%s' % package)
19 def get_repo(package):
20 if 'merge' in packages[package]:
21 return get_repo(packages[package]['merge'])
22 return 'packages/%s.git' % package
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'])
31 def get_tag_prefix(package):
32 if 'merge' in packages[package]:
33 return '%s/' % package
38 create repository ${repo}.git
43 % for quash in quashes:
44 match ${quash['path']}
45 min revision ${quash['rev']}
46 max revision ${quash['rev']}
50 % for package in packages:
52 % if package == 'sipb-xen-database':
53 match /trunk/packages/${package}/${package}-0/
54 repository ${get_repo(package)}
55 branch ${get_branch(package)}
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}
67 match /package_tags/${package}/([^/~]+)/${package}/
68 repository ${get_repo(package)}
69 branch refs/tags/${get_tag_prefix(package)}\1
71 max revision ${packages[package]['undouble'][0] - 1}
74 match /trunk/packages/tmp/${package}/
75 min revision ${packages[package]['undouble'][0]}
76 max revision ${packages[package]['undouble'][0]}
79 match /trunk/packages/${package}/
80 min revision ${packages[package]['undouble'][1]}
81 max revision ${packages[package]['undouble'][1]}
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}
91 % if 'punt' in packages[package]:
92 max revision ${packages[package]['punt'] - 1}
96 match /package_branches/${package}/([^/~]+)/
97 repository ${get_repo(package)}
98 branch ${get_tag_prefix(package)}\1
101 match /package_tags/${package}/([^/~]+)/
102 repository ${get_repo(package)}
103 branch refs/tags/${get_tag_prefix(package)}\1
105 % if 'undouble' in packages[package]:
106 min revision ${packages[package]['undouble'][1]}
110 match /package_tags/${package}/([^/~]+)~([^/~]+)/
111 repository ${get_repo(package)}
112 branch refs/tags/${get_tag_prefix(package)}\1_\2
114 % if 'undouble' in packages[package]:
115 min revision ${packages[package]['undouble'][1]}
121 match /trunk/packages/(xen-common|xen-3.1)/
124 match /package_tags/(xen-common|xen-3.1)/
127 % for trunk in trunks:
128 % if 'inclusive' in trunks[trunk]:
129 match /trunk/${trunk}(/|$)
131 match /trunk/${trunk}/
133 repository ${get_repo(trunks[trunk]['merge'])}
134 % if 'branch' in trunks[trunk]:
135 branch ${trunks[trunk]['branch']}
137 branch ${get_branch(trunks[trunk]['merge'])}
139 % if 'inclusive' in trunks[trunk]:
140 max revision ${trunks[trunk]['punt']}
142 max revision ${trunks[trunk]['punt'] - 1}
147 match /trunk/vnc/tightvnc-1.3.9_javasrc.zip
150 % for script in scripts:
151 match /trunk/scripts/${script}/
152 repository scripts/${script}.git
157 match /trunk/scripts/
158 repository scripts/osx-update.git
164 match /trunk/scripts/
165 repository scripts/install-invirt.git
171 match /trunk/scripts/
172 repository scripts/prod-migration.git
178 match /trunk/third/${t}/
179 repository third/${t}.git
183 match /third_tags/${t}/([^/~]+)/
184 repository third/${t}.git
190 % for rev in [803, 804, 925, 926, 928, 1537, 1566]:
192 repository doc/xvm.git
202 match /trunk/COPYING$
205 match /branches/wsgi/