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


Reply via email to