73 from optparse
import OptionParser
74 parser = OptionParser()
78 help=
"Create -pre tags instead of final tags.")
83 "Use the given (global) branch as source for the tags instead of the trunk" 85 opts, args = parser.parse_args()
87 opts.branch =
"/".join([
"branches",
"GAUDI", opts.branch])
91 url =
"svn+ssh://svn.cern.ch/reps/gaudi" 93 container =
"GaudiRelease" 94 project_info = ConfigParser()
95 project_info.optionxform = str
96 project_info.read(
'project.info')
97 packages = dict(project_info.items(
'Packages'))
98 tempdir = tempfile.mkdtemp()
105 pvers =
"%s_%s" % (proj.upper(), packages[container])
108 ptagdir =
"%s/tags/%s/%s" % (proj, proj.upper(), pvers)
110 svn(
'cp',
'/'.join([proj, opts.branch]), ptagdir).wait()
113 tag_re = re.compile(
r"^v(\d+)r(\d+)(?:p(\d+))?$")
116 pktagdir =
"%s/tags/%s/%s" % (proj, p, tag)
120 make_tag = no_tag
or (opts.pre
and no_tag
125 svn(
"cp",
"/".join([proj, opts.branch, p]), pktagdir).wait()
127 tagElements = tag_re.match(tag)
129 tagElements =
"-".join([
130 "%02d" % int(el
or "0")
for el
in tagElements.groups()
132 pktagdir =
"%s/tags/%s/%s-%s" % (proj, p, p, tagElements)
133 svn(
"cp",
"/".join([proj, opts.branch, p]),
138 svn(
"up",
"--depth=empty", pktagdir).wait()
143 shutil.rmtree(tempdir, ignore_errors=
True)
def checkout_structure(url, proj, branch)