3 svn = yaml.load(open('svn.yml'))
4 packages = svn['packages']
5 scripts = svn['scripts']
6 quashes = svn['quashes']
8 repos = ['packages/%s' % package for package in packages]
9 repos += ['scripts/%s' % script for script in scripts]
10 repos += ['doc/xvm', 'scripts/osx-update']
12 for package in packages:
13 if 'merge' in packages[package]:
14 repos.remove('packages/%s' % package)
16 def get_repo(package):
17 if 'merge' in packages[package]:
18 return get_repo(packages[package]['merge'])
19 return 'packages/%s.git' % package
21 def get_branch(package):
22 if 'branch' in packages[package]:
23 return packages[package]['branch']
24 if 'merge' in packages[package]:
25 return get_branch(packages[package]['merge'])
28 def get_tag_prefix(package):
29 if 'merge' in packages[package]:
30 return '%s/' % package
35 create repository ${repo}.git
40 % for quash in quashes:
41 match ${quash['path']}
42 min revision ${quash['rev']}
43 max revision ${quash['rev']}
47 % for package in packages:
49 % if package == 'sipb-xen-database':
50 match /trunk/packages/${package}/${package}-0/
51 repository ${get_repo(package)}
52 branch ${get_branch(package)}
57 % if 'undouble' in packages[package]:
58 match /trunk/packages/${package}/${package}/
59 repository ${get_repo(package)}
60 branch ${get_branch(package)}
61 max revision ${packages[package]['undouble'][0] - 1}
64 match /package_tags/${package}/([^/~]+)/${package}/
65 repository ${get_repo(package)}
66 branch tags/${get_tag_prefix(package)}\1
67 % if package == 'sipb-xen-dev':
70 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_tags/${package}/([^/~]+)/
97 repository ${get_repo(package)}
98 branch tags/${get_tag_prefix(package)}\1
99 % if 'undouble' in packages[package]:
100 min revision ${packages[package]['undouble'][1]}
104 match /package_tags/${package}/([^/~]+)~([^/~]+)/
105 repository ${get_repo(package)}
106 branch tags/${get_tag_prefix(package)}\1_\2
107 % if 'undouble' in packages[package]:
108 min revision ${packages[package]['undouble'][1]}
114 match /trunk/packages/(xen-common|xen-3.1)/
117 match /package_tags/(xen-common|xen-3.1)/
121 repository ${get_repo('sipb-xen-dhcp')}
122 branch ${get_branch('sipb-xen-dhcp')}
126 match /trunk/web(/|$)
127 repository ${get_repo('sipb-xen-www')}
128 branch ${get_branch('sipb-xen-www')}
132 match /trunk/vnc/tightvnc-1.3.9_javasrc.zip
135 match /trunk/vnc/vnc_javasrc/
136 repository ${get_repo('sipb-xen-vnc-client')}
137 branch ${get_branch('sipb-xen-vnc-client')}
141 match /trunk/vnc/vnc_server(/|$)
142 repository ${get_repo('sipb-xen-vnc-server')}
143 branch ${get_branch('sipb-xen-vnc-server')}
148 repository ${get_repo('sipb-xen-dns')}
153 % for script in scripts:
154 match /trunk/scripts/${script}/
155 repository scripts/${script}.git
160 match /trunk/scripts/
161 repository scripts/osx-update.git
167 match /trunk/scripts/
168 repository scripts/prod-migration.git
173 % for rev in [803, 804, 925, 926, 928, 1537, 1566]:
175 repository doc/xvm.git
185 match /trunk/COPYING$
188 match /branches/wsgi/