+<%
+ packages = [line.strip() for line in open('package-list')]
+ packages.append('packages/xvm-console-devconfig')
+ repos = packages
+ packages = [package[len('packages/'):] for package in packages]
+
+ merges = []
+ for line in open('merges'):
+ line = line.strip()
+ if line == '' or line[0] == '#':
+ continue
+
+ merges.append(line.split())
+
+ merge_map = {}
+ merge_count = {}
+ merge_n = {}
+ for merge in merges:
+ repos.remove('packages/%s' % merge[0])
+ merge_map[merge[0]] = merge[1]
+ if int(merge[2]) == 0:
+ merge_count[merge[1]] = merge_count.get(merge[1], 0) + 1
+ else:
+ merge_n[merge[0]] = int(merge[2])
+
+ def get_repo(package):
+ if package in merge_map:
+ return get_repo(merge_map[package])
+ return 'packages/%s.git' % package
+
+ def get_branch(package):
+ if package in merge_map:
+ if package in merge_n or merge_count[merge_map[package]] > 1:
+ return package
+ return get_branch(merge_map[package])
+ return 'master'
+
+ def get_tag_prefix(package):
+ if package in merge_map:
+ return '%s/' % package
+ return ''
+%>
+
+% for repo in repos:
+create repository ${repo}.git
+end repository
+
+% endfor
+
+% for package in packages:
+match /trunk/packages/${package}/${package}/
+ repository ${get_repo(package)}
+ branch ${get_branch(package)}
+end match
+
+match /package_tags/${package}/([^/~]+)/${package}/
+ repository ${get_repo(package)}
+ branch tags/${get_tag_prefix(package)}\1
+end match
+
+match /trunk/packages/${package}/
+ repository ${get_repo(package)}
+ branch ${get_branch(package)}
+end match
+
+match /package_tags/${package}/([^/~]+)/
+ repository ${get_repo(package)}
+ branch tags/${get_tag_prefix(package)}\1
+end match
+
+match /package_tags/${package}/([^/~]+)~([^/~]+)/
+ repository ${get_repo(package)}
+ branch tags/${get_tag_prefix(package)}\1_\2
+end match
+
+% endfor
+
+match /trunk/packages/(xen-common|xen-3.1)/
+end match
+
+match /package_tags/(xen-common|xen-3.1)/
+end match
+
+match /trunk/packages/tmp/
+ repository ${get_repo('sipb-xen-database')}
+ branch ${get_branch('sipb-xen-database')}
+end match
+
+match /trunk/(dhcp|dns|scripts|vnc|web|vmctl)/
+end match
+
+match /trunk/(COPYING|xvm-host-setup-notes)
+end match
+
+match /branches/wsgi/
+end match