You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by da...@apache.org on 2015/09/25 00:04:55 UTC

svn commit: r1705174 - in /subversion/trunk/tools/dist/backport: merger.py status.py

Author: danielsh
Date: Thu Sep 24 22:04:54 2015
New Revision: 1705174

URL: http://svn.apache.org/viewvc?rev=1705174&view=rev
Log:
backport.py: Start multiproject support.

* tools/dist/backport/status.py
  (StatusFile.BRANCHES): Replace this member object with..
  (StatusFile.branch_url): .. this member function.
  (StatusFile.TRUNK): Replace this member object with..
  (StatusFile.trunk_url): .. this member function.

* tools/dist/backport/merger.py
  (merge, validate_branch_contains_named_revisions): Track API changes.

Modified:
    subversion/trunk/tools/dist/backport/merger.py
    subversion/trunk/tools/dist/backport/status.py

Modified: subversion/trunk/tools/dist/backport/merger.py
URL: http://svn.apache.org/viewvc/subversion/trunk/tools/dist/backport/merger.py?rev=1705174&r1=1705173&r2=1705174&view=diff
==============================================================================
--- subversion/trunk/tools/dist/backport/merger.py (original)
+++ subversion/trunk/tools/dist/backport/merger.py Thu Sep 24 22:04:54 2015
@@ -161,7 +161,7 @@ def merge(entry, expected_stderr=None, *
   # Prepare mergeargs and logmsg.
   logmsg = ""
   if entry.branch:
-    branch_url = "%s/%s" % (sf.BRANCHES, entry.branch)
+    branch_url = sf.branch_url(entry.branch)
     if svn_version() >= (1, 8):
       mergeargs = ['--', branch_url]
       logmsg = "Merge {}:\n".format(entry.noun())
@@ -181,7 +181,7 @@ def merge(entry, expected_stderr=None, *
       logmsg += "Merge {} from trunk:\n".format(entry.noun())
     logmsg += "\n"
     mergeargs.extend('-c' + str(revision) for revision in entry.revisions)
-    mergeargs.extend(['--', sf.TRUNK])
+    mergeargs.extend(['--', sf.trunk_url()])
   logmsg += entry.raw
 
   # TODO(interactive mode): exclude STATUS from reverts
@@ -237,9 +237,9 @@ def validate_branch_contains_named_revis
     return # skip check
 
   sf = entry.status_file
-  branch_url = "%s/%s" % (sf.BRANCHES, entry.branch)
+  branch_url = sf.branch_url(entry.branch)
   present_str = (
-    run_svn(['mergeinfo', '--show-revs=merged', '--', sf.TRUNK, branch_url])[1]
+    run_svn(['mergeinfo', '--show-revs=merged', '--', sf.trunk_url(), branch_url])[1]
     +
     run_svn(['mergeinfo', '--show-revs=eligible', '--', branch_url])[1]
   )

Modified: subversion/trunk/tools/dist/backport/status.py
URL: http://svn.apache.org/viewvc/subversion/trunk/tools/dist/backport/status.py?rev=1705174&r1=1705173&r2=1705174&view=diff
==============================================================================
--- subversion/trunk/tools/dist/backport/status.py (original)
+++ subversion/trunk/tools/dist/backport/status.py Thu Sep 24 22:04:54 2015
@@ -157,13 +157,24 @@ class Paragraph:
 class StatusFile:
   "Encapsulates the STATUS file."
 
-  TRUNK = '^/subversion/trunk'
-  BRANCHES = '^/subversion/branches'
-
   def __init__(self, status_fp):
     "Constructor.  STATUS_FP is an open file-like object to parse."
     self._parse(status_fp)
     self.validate_unique_entry_ids() # Use-case for making this optional?
+    self._project_root_url = '^/subversion'
+
+  def branch_url(self, branch_basename):
+    """Return the URL of a branch with a given basename, of 'Branch:' headers
+    that specify a basename only.
+
+    The returned URL may be an ^/foo short URL."""
+    return (self._project_root_url + "/branches/" + branch_basename)
+
+  def trunk_url(self):
+    """Return the URL to trunk.  Trunk is used as the default merge source.
+
+    The returned URL may be an ^/foo short URL."""
+    return self._project_root_url + '/trunk'
 
   def _parse(self, status_fp):
     "Parse self.status_fp into self.paragraphs."