Author: rhuijben
Date: Thu Jul 18 15:52:08 2013
New Revision: 1504505
URL: http://svn.apache.org/r1504505
Log:
Following up on r1504192, stop trying to calculate local wc-diffs on
all unversioned paths. This should fix issue #4396.
* subversion/libsvn_wc/diff_local.c
(diff_status_callback): Simplify global status check by checking for
unversioned and conflicted specifically.
* subversion/tests/cmdline/diff_tests.py
(diff_local_missing_obstruction): Extend test with an external.
Modified:
subversion/trunk/subversion/libsvn_wc/diff_local.c
subversion/trunk/subversion/tests/cmdline/diff_tests.py
Modified: subversion/trunk/subversion/libsvn_wc/diff_local.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/diff_local.c?rev=1504505&r1=1504504&r2=1504505&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/diff_local.c (original)
+++ subversion/trunk/subversion/libsvn_wc/diff_local.c Thu Jul 18 15:52:08 2013
@@ -195,23 +195,15 @@ diff_status_callback(void *baton,
struct diff_baton *eb = baton;
svn_wc__db_t *db = eb->db;
- switch (status->node_status)
- {
- case svn_wc_status_unversioned:
- case svn_wc_status_ignored:
- return SVN_NO_ERROR; /* No diff */
-
- case svn_wc_status_conflicted:
- if (status->text_status == svn_wc_status_none
- && status->prop_status == svn_wc_status_none)
- {
- /* Node is an actual only node describing a tree conflict */
- return SVN_NO_ERROR;
- }
- break;
+ if (! status->versioned)
+ return SVN_NO_ERROR; /* unversioned (includes dir externals) */
- default:
- break; /* Go check other conditions */
+ if (status->node_status == svn_wc_status_conflicted
+ && status->text_status == svn_wc_status_none
+ && status->prop_status == svn_wc_status_none)
+ {
+ /* Node is an actual only node describing a tree conflict */
+ return SVN_NO_ERROR;
}
/* Not text/prop modified, not copied. Easy out */
Modified: subversion/trunk/subversion/tests/cmdline/diff_tests.py
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/diff_tests.py?rev=1504505&r1=1504504&r2=1504505&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/diff_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/diff_tests.py Thu Jul 18 15:52:08
2013
@@ -4626,6 +4626,13 @@ def diff_local_missing_obstruction(sbox)
]
svntest.actions.run_and_verify_svn(None, expected_output, [], 'diff', wc_dir)
+ # Create an external. This produces an error in 1.8.0.
+ sbox.simple_propset('svn:externals', 'AA/BB ' + sbox.repo_url + '/A', '.')
+ sbox.simple_update()
+
+ svntest.actions.run_and_verify_svn(None, svntest.verify.AnyOutput, [],
+ 'diff', wc_dir)
+
########################################################################
#Run the tests