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

Last change on this file since 1905 was 1905, checked in by andersk, 15 years ago

This is almost working.

File size: 3.7 KB
Line 
1<%
2    packages = [line.strip() for line in open('package-list')]
3    packages.append('packages/xvm-console-devconfig')
4    repos = packages
5    packages = [package[len('packages/'):] for package in packages]
6
7    punt = {
8        'sipb-xen-base': 1350,
9        'sipb-xen-chrony-config': 1351,
10        'sipb-xen-database': 1352,
11        'sipb-xen-dev': 1353,
12        'sipb-xen-dom0': 1354,
13        'sipb-xen-host-master': 1355,
14        'sipb-xen-iptables': 1356,
15        'sipb-xen-python-pydhcplib': 1357,
16        'sipb-xen-remctl-auto': 1358,
17        'sipb-xen-vnc-client': 1359,
18        'sipb-xen-www': 1360,
19        'sipb-xen-vnc-server': 1387,
20        'sipb-xen-dhcp': 1436,
21        'sipb-xen-autoinstaller': 1569,
22        'sipb-xen-clvm-config': 1569,
23        'invirt-console-host': 1816,
24        'invirt-console-server': 1816,
25    }
26
27    merges = []
28    for line in open('merges'):
29        line = line.strip()
30        if line == '' or line[0] == '#':
31            continue
32
33        merges.append(line.split())
34
35    merge_map = {}
36    merge_count = {}
37    merge_n = {}
38    for merge in merges:
39        repos.remove('packages/%s' % merge[0])
40        merge_map[merge[0]] = merge[1]
41        if int(merge[2]) == 0:
42            merge_count[merge[1]] = merge_count.get(merge[1], 0) + 1
43        else:
44            merge_n[merge[0]] = int(merge[2])
45
46    def get_repo(package):
47        if package in merge_map:
48            return get_repo(merge_map[package])
49        return 'packages/%s.git' % package
50
51    def get_branch(package):
52        if package in merge_map:
53            if package in merge_n or merge_count[merge_map[package]] > 1:
54                return package
55            return get_branch(merge_map[package])
56        return 'master'
57
58    def get_tag_prefix(package):
59        if package in merge_map:
60            return '%s/' % package
61        return ''
62%>
63
64% for repo in repos:
65create repository ${repo}.git
66end repository
67
68% endfor
69
70match /package_tags/sipb-xen-dev/sipb-xen-dev(/|$)
71end match
72
73% for package in packages:
74match /trunk/packages/${package}/${package}(/|$)
75  repository ${get_repo(package)}
76  branch ${get_branch(package)}
77  max revision 317
78end match
79
80match /package_tags/${package}/([^/~]+)/${package}(/|$)
81  repository ${get_repo(package)}
82  branch tags/${get_tag_prefix(package)}\1
83end match
84
85match /trunk/packages/${package}(/|$)
86  repository ${get_repo(package)}
87  branch ${get_branch(package)}
88% if package in punt:
89  max revision ${punt[package] - 1}
90% endif
91end match
92
93match /package_tags/${package}/([^/~]+)(/|$)
94  repository ${get_repo(package)}
95  branch tags/${get_tag_prefix(package)}\1
96end match
97
98match /package_tags/${package}/([^/~]+)~([^/~]+)(/|$)
99  repository ${get_repo(package)}
100  branch tags/${get_tag_prefix(package)}\1_\2
101end match
102
103% endfor
104
105match /trunk/packages/(xen-common|xen-3.1)(/|$)
106end match
107
108match /package_tags/(xen-common|xen-3.1)(/|$)
109end match
110
111match /trunk/packages/tmp(/|$)
112  repository ${get_repo('sipb-xen-database')}
113  branch ${get_branch('sipb-xen-database')}
114end match
115
116match /trunk/dhcp(/|$)
117  repository ${get_repo('sipb-xen-dhcp')}
118  branch ${get_branch('sipb-xen-dhcp')}
119  max revision 281
120end match
121
122match /trunk/web(/|$)
123  repository ${get_repo('sipb-xen-www')}
124  branch ${get_branch('sipb-xen-www')}
125end match
126
127match /trunk/vnc/tightvnc-1.3.9_javasrc.zip
128end match
129
130match /trunk/vnc/vnc_javasrc(/|$)
131  repository ${get_repo('sipb-xen-vnc-client')}
132  branch ${get_branch('sipb-xen-vnc-client')}
133end match
134
135match /trunk/vnc/vnc_server(/|$)
136  repository ${get_repo('sipb-xen-vnc-server')}
137  branch ${get_branch('sipb-xen-vnc-server')}
138end match
139
140match /trunk/(dns|scripts|vmctl)(/|$)
141end match
142
143match /trunk/(COPYING|xvm-host-setup-notes)
144end match
145
146match /branches/wsgi(/|$)
147end match
Note: See TracBrowser for help on using the repository browser.