Author: danielsh
Date: Thu Mar 17 21:00:18 2022
New Revision: 1899003

URL: http://svn.apache.org/viewvc?rev=1899003&view=rev
Log:
On trunk, cherry-pick r1898739, r1898740, r1898741 from the
pristines-on-demand-on-mwf branch.

    ------------------------------------------------------------------------
    r1898739 | danielsh | 2022-03-08 17:41:51 +0000 (Tue, 08 Mar 2022) | 13 
lines
    
    On the pristines-on-demand-on-mwf branch: Add the WC format and version to 
`svn
    info`'s other output modes.
    
    This finishes SVN-4884.
    
    * subversion/svn/info-cmd.c
      (print_info_xml,
       print_info): Emit the equivalents of --show-item=wc-version and
         --show-item=wc-compatible-version.
    
    * subversion/svn/schema/info.rnc
      (wc-info): New children wc-compatible-version and wc-format.
      (wc-compatible-version, wc-format): New elements.
    ------------------------------------------------------------------------
    r1898740 | danielsh | 2022-03-08 18:33:54 +0000 (Tue, 08 Mar 2022) | 12 
lines
    
    On the pristines-on-demand-on-mwf branch, show an informational message in 
more cases.
    
    Part of SVN-4885.
    
    * subversion/svn/upgrade-cmd.c
      (svn_cl__upgrade): Show the "You can upgrade further" message even when 
the
        command was a no-op.
    
    * subversion/tests/cmdline/upgrade_tests.py
      (dirs_only_upgrade, upgrade_with_missing_subdir): Ensure the message is 
not
        generated by passing --compatible-version's default value explicitly.
      (target_ver): New helper function.
    ------------------------------------------------------------------------
    r1898741 | danielsh | 2022-03-08 18:36:38 +0000 (Tue, 08 Mar 2022) | 9 lines
    
    On the pristines-on-demand-on-mwf branch, copyedit an informational message.
    
    Part of SVN-4885, but the discussion there did not account for the fact that
    there is no single working copy (target) name available in this context.
    
    * subversion/svn/upgrade-cmd.c
      (svn_cl__upgrade): Have the output identify the program that generated
        it.  Use plural since this is an overall message relevant to one or
        more targets.
    ------------------------------------------------------------------------

Modified:
    subversion/trunk/   (props changed)
    subversion/trunk/subversion/svn/info-cmd.c
    subversion/trunk/subversion/svn/schema/info.rnc
    subversion/trunk/subversion/svn/upgrade-cmd.c
    subversion/trunk/subversion/tests/cmdline/upgrade_tests.py

Propchange: subversion/trunk/
------------------------------------------------------------------------------
  Merged /subversion/branches/pristines-on-demand-on-mwf:r1898739-1898741

Modified: subversion/trunk/subversion/svn/info-cmd.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/info-cmd.c?rev=1899003&r1=1899002&r2=1899003&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/info-cmd.c (original)
+++ subversion/trunk/subversion/svn/info-cmd.c Thu Mar 17 21:00:18 2022
@@ -592,6 +592,21 @@ print_info_xml(void *baton,
         svn_cl__xml_tagged_cdata(&sb, pool, "wcroot-abspath",
                                  info->wc_info->wcroot_abspath);
 
+      /* "<wc-compatible-version> xx </wc-compatible-version>" */
+      /* "<wc-format> xx </wc-format>" */
+      if (info->wc_info->wc_format > 0)
+        {
+          const svn_version_t *wc_ver
+            = svn_client_wc_version_from_format(info->wc_info->wc_format, 
pool);
+
+          svn_cl__xml_tagged_cdata(&sb, pool, "wc-compatible-version",
+                                   apr_psprintf(pool, "%d.%d", wc_ver->major,
+                                                wc_ver->minor));
+          svn_cl__xml_tagged_cdata(&sb, pool, "wc-format",
+                                   apr_psprintf(pool, "%d",
+                                                info->wc_info->wc_format));
+        }
+
       /* "<schedule> xx </schedule>" */
       svn_cl__xml_tagged_cdata(&sb, pool, "schedule",
                                schedule_str(info->wc_info->schedule));
@@ -737,6 +752,18 @@ print_info(void *baton,
                                             info->wc_info->wcroot_abspath,
                                             pool)));
 
+  if (info->wc_info && info->wc_info->wc_format > 0)
+    {
+      const svn_version_t *wc_ver
+        = svn_client_wc_version_from_format(info->wc_info->wc_format, pool);
+
+      SVN_ERR(svn_cmdline_printf(pool, _("Working Copy Compatible With 
Version: %d.%d\n"),
+                                 wc_ver->major, wc_ver->minor));
+      SVN_ERR(svn_cmdline_printf(pool, _("Working Copy Format: %d\n"),
+                                 info->wc_info->wc_format));
+    }
+
+
   if (info->URL)
     SVN_ERR(svn_cmdline_printf(pool, _("URL: %s\n"), info->URL));
 

Modified: subversion/trunk/subversion/svn/schema/info.rnc
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/schema/info.rnc?rev=1899003&r1=1899002&r2=1899003&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/schema/info.rnc (original)
+++ subversion/trunk/subversion/svn/schema/info.rnc Thu Mar 17 21:00:18 2022
@@ -57,6 +57,8 @@ uuid = element uuid { uuid.type }
 wc-info =
   element wc-info {
     wcroot-abspath?,
+    wc-compatible-version?,
+    wc-format?,
     schedule?,
     changelist?,
     copy-from-url?,
@@ -70,6 +72,8 @@ wc-info =
   }
 
 wcroot-abspath = element wcroot-abspath { string }
+wc-compatible-version = element wc-compatible-version { string }
+wc-format = element wc-format { xsd:nonNegativeInteger }
 
 schedule =
   element schedule { "normal" | "add" | "delete" | "replace" | "none" }

Modified: subversion/trunk/subversion/svn/upgrade-cmd.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/upgrade-cmd.c?rev=1899003&r1=1899002&r2=1899003&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/upgrade-cmd.c (original)
+++ subversion/trunk/subversion/svn/upgrade-cmd.c Thu Mar 17 21:00:18 2022
@@ -83,18 +83,16 @@ svn_cl__upgrade(apr_getopt_t *os,
   svn_pool_destroy(iterpool);
 
   /* Remind the user they can upgrade further if:
-   *   - no upgrade was performed
    *   - the user did not specify compatible-version explicitly
    *   - a higher version is available. */
-  if (! svn_cl__notifier_get_wc_was_upgraded(ctx->notify_baton2)
-      && ! opt_state->compatible_version
+  if (! opt_state->compatible_version
       && ! svn_version__at_least(default_version,
                                  latest_version->major, latest_version->minor, 
0)
       && ! opt_state->quiet)
     {
       const char *msg
-        = _("Working copy is already at version %d.%d. "
-            "The highest version supported by this client can be "
+        = _("svn: The target working copies are already at version %d.%d; "
+            "the highest version supported by this client can be "
             "specified with '--compatible-version=%d.%d'.\n");
       SVN_ERR(svn_cmdline_printf(scratch_pool, msg,
                                  default_version->major, 
default_version->minor,

Modified: subversion/trunk/subversion/tests/cmdline/upgrade_tests.py
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/upgrade_tests.py?rev=1899003&r1=1899002&r2=1899003&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/upgrade_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/upgrade_tests.py Thu Mar 17 
21:00:18 2022
@@ -58,6 +58,11 @@ def get_current_format():
   """Get the expected WC format."""
   return svntest.main.wc_format()
 
+def target_ver():
+  """Get the default value of --compatible-version to use.
+  
+  Compare svntest.main.wc_format()."""
+  return (svntest.main.options.wc_format_version or 
svntest.main.DEFAULT_COMPATIBLE_VERSION)
 
 def replace_sbox_with_tarfile(sbox, tar_filename,
                               dir=None):
@@ -772,8 +777,12 @@ def dirs_only_upgrade(sbox):
   expected_output = ["Upgraded '%s'\n" % (sbox.ospath('').rstrip(os.path.sep)),
                      "Upgraded '%s'\n" % (sbox.ospath('A'))]
 
+  # Pass --compatible-version explicitly to silence the "You upgraded to
+  # a version other than the latest" message.
   svntest.actions.run_and_verify_svn(expected_output, [],
-                                     'upgrade', sbox.wc_dir)
+                                     'upgrade', sbox.wc_dir,
+                                     '--compatible-version',
+                                     target_ver())
 
   expected_status = svntest.wc.State(sbox.wc_dir, {
       ''                  : Item(status='  ', wc_rev='1'),
@@ -1038,8 +1047,12 @@ def upgrade_with_missing_subdir(sbox):
     "Upgraded '%s'\n" % sbox.ospath('A/D/G'),
     "Upgraded '%s'\n" % sbox.ospath('A/D/H'),
   ])
+  # Pass --compatible-version explicitly to silence the "You upgraded to
+  # a version other than the latest" message.
   svntest.actions.run_and_verify_svn(expected_output, [],
-                                     'upgrade', sbox.wc_dir)
+                                     'upgrade', sbox.wc_dir,
+                                     '--compatible-version',
+                                     target_ver())
 
   # And now perform an update. (This used to fail with an assertion)
   expected_output = svntest.wc.State(wc_dir, {


Reply via email to