Author: julianfoad
Date: Fri Sep 13 12:01:23 2019
New Revision: 1866898
URL: http://svn.apache.org/viewvc?rev=1866898&view=rev
Log:
* tools/dist/release.py
(get_branch_path): New, factored out from several callers.
Modified:
subversion/trunk/tools/dist/release.py
Modified: subversion/trunk/tools/dist/release.py
URL:
http://svn.apache.org/viewvc/subversion/trunk/tools/dist/release.py?rev=1866898&r1=1866897&r2=1866898&view=diff
==============================================================================
--- subversion/trunk/tools/dist/release.py (original)
+++ subversion/trunk/tools/dist/release.py Fri Sep 13 12:01:23 2019
@@ -293,6 +293,15 @@ def get_target(args):
else:
return get_deploydir(args.base_dir)
+def get_branch_path(args):
+ if not args.branch:
+ try:
+ args.branch = 'branches/%d.%d.x' % (args.version.major,
args.version.minor)
+ except AttributeError:
+ raise RuntimeError("Please specify the release version label or
--branch-path")
+
+ return args.branch.rstrip('/') # canonicalize for later comparisons
+
def get_tmpldir():
return os.path.join(os.path.abspath(sys.path[0]), 'templates')
@@ -561,16 +570,12 @@ def replace_lines(path, actions):
def roll_tarballs(args):
'Create the release artifacts.'
- if not args.branch:
- args.branch = 'branches/%d.%d.x' % (args.version.major,
args.version.minor)
-
- branch = args.branch # shorthand
- branch = branch.rstrip('/') # canonicalize for later comparisons
+ branch = get_branch_path(args)
logging.info('Rolling release %s from branch %s@%d' % (args.version,
branch,
args.revnum))
- check_copyright_year(repos, args.branch, args.revnum)
+ check_copyright_year(repos, branch, args.revnum)
# Ensure we've got the appropriate rolling dependencies available
autoconf = AutoconfDep(args.base_dir, False, args.verbose,
@@ -820,10 +825,7 @@ def create_tag_only(args):
logging.info('Creating tag for %s' % str(args.version))
- if not args.branch:
- args.branch = 'branches/%d.%d.x' % (args.version.major,
args.version.minor)
-
- branch = secure_repos + '/' + args.branch.rstrip('/')
+ branch_url = secure_repos + '/' + get_branch_path(args)
tag = secure_repos + '/tags/' + str(args.version)
@@ -831,7 +833,7 @@ def create_tag_only(args):
'Tagging release ' + str(args.version)]
if (args.username):
svnmucc_cmd += ['--username', args.username]
- svnmucc_cmd += ['cp', str(args.revnum), branch, tag]
+ svnmucc_cmd += ['cp', str(args.revnum), branch_url, tag]
svnmucc_cmd += ['put', os.path.join(target, 'svn_version.h.dist' + '-' +
str(args.version)),
tag + '/subversion/include/svn_version.h']
@@ -849,10 +851,7 @@ def bump_versions_on_branch(args):
logging.info('Bumping version numbers on the branch')
- if not args.branch:
- args.branch = 'branches/%d.%d.x' % (args.version.major,
args.version.minor)
-
- branch = secure_repos + '/' + args.branch.rstrip('/')
+ branch_url = secure_repos + '/' + get_branch_path(args)
def replace_in_place(fd, startofline, flat, spare):
"""In file object FD, replace FLAT with SPARE in the first line
@@ -880,11 +879,11 @@ def bump_versions_on_branch(args):
args.version.patch + 1))
HEAD = subprocess.check_output(['svn', 'info', '--show-item=revision',
- '--', branch]).strip()
+ '--', branch_url]).strip()
HEAD = int(HEAD)
def file_object_for(relpath):
fd = tempfile.NamedTemporaryFile()
- url = branch + '/' + relpath
+ url = branch_url + '/' + relpath
fd.url = url
subprocess.check_call(['svn', 'cat', '%s@%d' % (url, HEAD)],
stdout=fd)
@@ -903,7 +902,7 @@ def bump_versions_on_branch(args):
subprocess.check_call(['svnmucc', '-r', str(HEAD),
'-m', 'Post-release housekeeping: '
'bump the %s branch to %s.'
- % (branch.split('/')[-1], str(new_version)),
+ % (branch_url.split('/')[-1], str(new_version)),
'put', svn_version_h.name, svn_version_h.url,
'put', STATUS.name, STATUS.url,
])
@@ -1321,13 +1320,13 @@ def write_changelog(args):
# New svn_ra_list() API function [D:api]
# [D:bindings] JavaHL: Allow access to constructors of a couple JavaHL
classes
- branch = secure_repos + '/' + args.branch
+ branch_url = secure_repos + '/' + get_branch_path(args)
previous = secure_repos + '/' + args.previous
include_unlabeled = args.include_unlabeled
separator_line = ('-' * 72) + '\n'
mergeinfo = subprocess.check_output(['svn', 'mergeinfo', '--show-revs',
- 'eligible', '--log', branch, previous])
+ 'eligible', '--log', branch_url, previous])
log_messages_dict = {
# This is a dictionary mapping revision numbers to their respective
# log messages. The expression in the "key:" part of the dict