Author: cmpilato
Date: Fri Nov 18 15:12:03 2011
New Revision: 1203687

URL: http://svn.apache.org/viewvc?rev=1203687&view=rev
Log:
For issue #1935 ("svn status too verbose with svn:externals
definitions"), continue trying to refile the filtering of "X" lines.

* subversion/svn/status.c
  (svn_cl__print_status): Iterate on the logic which filters out
    boring "X" lines.

Reported by: rhuijben

Modified:
    subversion/trunk/subversion/svn/status.c

Modified: subversion/trunk/subversion/svn/status.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/status.c?rev=1203687&r1=1203686&r2=1203687&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/status.c (original)
+++ subversion/trunk/subversion/svn/status.c Fri Nov 18 15:12:03 2011
@@ -548,12 +548,27 @@ svn_cl__print_status(const char *cwd_abs
           && status->repos_node_status == svn_wc_status_none))
     return SVN_NO_ERROR;
 
+  /* If we're trying not to print boring "X  /path/to/external"
+     lines..." */
   if (suppress_externals_placeholders)
     {
-      if (status->node_status == svn_wc_status_external)
+      /* ... skip regular externals unmodified in the repository. */
+      if ((status->node_status == svn_wc_status_external)
+          && (status->repos_node_status == svn_wc_status_none))
         return SVN_NO_ERROR;
-      if ((status->node_status == svn_wc_status_normal)
-          && (status->file_external))
+
+      /* ... skip file externals that aren't modified locally or
+         remotely, changelisted, or locked (in either sense of the
+         word). */
+      if ((status->file_external)
+          && (status->repos_node_status == svn_wc_status_none)
+          && ((status->node_status == svn_wc_status_normal)
+              || (status->node_status == svn_wc_status_none))
+          && ((status->prop_status == svn_wc_status_normal)
+              || (status->prop_status == svn_wc_status_none))
+          && (! status->changelist)
+          && (! status->lock)
+          && (! status->wc_is_locked))
         return SVN_NO_ERROR;
     }
 


Reply via email to