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

Last change on this file since 2021 was 2015, checked in by broder, 16 years ago

In the git import, deal with r316, r318 and the corresponding tag by
hand instead of through s-a-f-e.

File size: 4.1 KB
RevLine 
[1901]1<%
[1945]2    import yaml
3    svn = yaml.load(open('svn.yml'))
4    packages = svn['packages']
[1946]5    trunks = svn['trunks']
[1945]6    scripts = svn['scripts']
7    quashes = svn['quashes']
[1901]8
[1945]9    repos = ['packages/%s' % package for package in packages]
[1921]10    repos += ['scripts/%s' % script for script in scripts]
11    repos += ['doc/xvm', 'scripts/osx-update']
12
[1945]13    for package in packages:
14        if 'merge' in packages[package]:
15            repos.remove('packages/%s' % package)
[1906]16
[1901]17    def get_repo(package):
[1945]18        if 'merge' in packages[package]:
19            return get_repo(packages[package]['merge'])
[1901]20        return 'packages/%s.git' % package
21
22    def get_branch(package):
[1945]23        if 'branch' in packages[package]:
24            return packages[package]['branch']
25        if 'merge' in packages[package]:
26            return get_branch(packages[package]['merge'])
[1901]27        return 'master'
28
29    def get_tag_prefix(package):
[1945]30        if 'merge' in packages[package]:
[1901]31            return '%s/' % package
32        return ''
33%>
34
35% for repo in repos:
36create repository ${repo}.git
37end repository
38
39% endfor
40
[1936]41% for quash in quashes:
[1945]42match ${quash['path']}
43  min revision ${quash['rev']}
44  max revision ${quash['rev']}
[1903]45end match
[1936]46% endfor
[1903]47
[1901]48% for package in packages:
[1906]49
[1944]50%   if package == 'sipb-xen-database':
[1931]51match /trunk/packages/${package}/${package}-0/
[1906]52  repository ${get_repo(package)}
53  branch ${get_branch(package)}
54  max revision 8
55end match
[1944]56%   endif
[1906]57
[1945]58%   if 'undouble' in packages[package]:
[1931]59match /trunk/packages/${package}/${package}/
[1901]60  repository ${get_repo(package)}
61  branch ${get_branch(package)}
[1945]62  max revision ${packages[package]['undouble'][0] - 1}
[1901]63end match
64
[1931]65match /package_tags/${package}/([^/~]+)/${package}/
[1901]66  repository ${get_repo(package)}
67  branch tags/${get_tag_prefix(package)}\1
[1945]68  max revision ${packages[package]['undouble'][0] - 1}
[1901]69end match
70
[1931]71match /trunk/packages/tmp/${package}/
[1945]72  min revision ${packages[package]['undouble'][0]}
73  max revision ${packages[package]['undouble'][0]}
[1906]74end match
[1914]75
[1931]76match /trunk/packages/${package}/
[1945]77  min revision ${packages[package]['undouble'][1]}
78  max revision ${packages[package]['undouble'][1]}
[1914]79end match
[1944]80%   endif
[1906]81
[1931]82match /trunk/packages/${package}/
[1901]83  repository ${get_repo(package)}
84  branch ${get_branch(package)}
[1945]85%   if 'undouble' in packages[package]:
86  min revision ${packages[package]['undouble'][1] + 1}
[1944]87%   endif
[1945]88%   if 'punt' in packages[package]:
89  max revision ${packages[package]['punt'] - 1}
[1944]90%   endif
[1901]91end match
92
[1931]93match /package_tags/${package}/([^/~]+)/
[1901]94  repository ${get_repo(package)}
95  branch tags/${get_tag_prefix(package)}\1
[1945]96%   if 'undouble' in packages[package]:
97  min revision ${packages[package]['undouble'][1]}
[1944]98%   endif
[1901]99end match
100
[1931]101match /package_tags/${package}/([^/~]+)~([^/~]+)/
[1901]102  repository ${get_repo(package)}
103  branch tags/${get_tag_prefix(package)}\1_\2
[1945]104%   if 'undouble' in packages[package]:
105  min revision ${packages[package]['undouble'][1]}
[1944]106%   endif
[1901]107end match
108
109% endfor
110
[1931]111match /trunk/packages/(xen-common|xen-3.1)/
[1901]112end match
113
[1931]114match /package_tags/(xen-common|xen-3.1)/
[1901]115end match
116
[1946]117% for trunk in trunks:
118%   if 'inclusive' in trunks[trunk]:
119match /trunk/${trunk}(/|$)
120%   else:
121match /trunk/${trunk}/
122%   endif
123  repository ${get_repo(trunks[trunk]['merge'])}
124%   if 'branch' in trunks[trunk]:
125  branch ${trunks[trunk]['branch']}
126%   else:
127  branch ${get_branch(trunks[trunk]['merge'])}
128%   endif
129%   if 'inclusive' in trunks[trunk]:
130  max revision ${trunks[trunk]['punt']}
131%   else:
132  max revision ${trunks[trunk]['punt'] - 1}
133%   endif
[1901]134end match
[1946]135% endfor
[1901]136
[1905]137match /trunk/vnc/tightvnc-1.3.9_javasrc.zip
138end match
139
[1921]140% for script in scripts:
[1931]141match /trunk/scripts/${script}/
[1921]142  repository scripts/${script}.git
143  branch master
[1920]144end match
[1921]145% endfor
[1920]146
[1931]147match /trunk/scripts/
[1921]148  repository scripts/osx-update.git
149  branch master
150  min revision 1785
151  max revision 1785
[1901]152end match
153
[1931]154match /trunk/scripts/
[1921]155  repository scripts/prod-migration.git
156  branch master
157  max revision 1863
158end match
159
160% for rev in [803, 804, 925, 926, 928, 1537, 1566]:
[1931]161match /trunk/
[1921]162  repository doc/xvm.git
163  branch master
164  min revision ${rev}
165  max revision ${rev}
166end match
167% endfor
168
[1931]169match /trunk/vmctl/
[1921]170end match
171
172match /trunk/COPYING$
173end match
174
[1931]175match /branches/wsgi/
[1901]176end match
Note: See TracBrowser for help on using the repository browser.