You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by rh...@apache.org on 2013/06/05 17:47:10 UTC
svn commit: r1489928 - in /subversion/trunk/subversion: libsvn_wc/status.c
tests/cmdline/commit_tests.py tests/cmdline/stat_tests.py
tests/cmdline/tree_conflict_tests.py
Author: rhuijben
Date: Wed Jun 5 15:47:10 2013
New Revision: 1489928
URL: http://svn.apache.org/r1489928
Log:
Handle unversioned-not existing targets properly from the working copy status
walker, by returning the 'svn' expected error for this case.
* subversion/libsvn_wc/status.c
(svn_wc__internal_walk_status): Handle the completely unknown case properly.
* subversion/tests/cmdline/commit_tests.py
(commit_unversioned): Remove XFail marker. Update expected error. Remove unneeded
whitespace.
* subversion/tests/cmdline/stat_tests.py
(status_for_nonexistent_file,
status_not_present): Expect unmodified output, but a warning on stderr.
* subversion/tests/cmdline/tree_conflict_tests.py
(import): Import run_and_verify_svn2.
(ensure_tree_conflict): Ignore warnings for completely unknown nodes.
Modified:
subversion/trunk/subversion/libsvn_wc/status.c
subversion/trunk/subversion/tests/cmdline/commit_tests.py
subversion/trunk/subversion/tests/cmdline/stat_tests.py
subversion/trunk/subversion/tests/cmdline/tree_conflict_tests.py
Modified: subversion/trunk/subversion/libsvn_wc/status.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/status.c?rev=1489928&r1=1489927&r2=1489928&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/status.c (original)
+++ subversion/trunk/subversion/libsvn_wc/status.c Wed Jun 5 15:47:10 2013
@@ -2757,6 +2757,17 @@ svn_wc__internal_walk_status(svn_wc__db_
cancel_func, cancel_baton,
scratch_pool));
}
+ else if (! info && dirent->kind == svn_node_none)
+ {
+ /* Calling wc status on a node that doesn't exist in the working copy,
+ nor on disk. There is no possible status to describe a not conflicted
+ not-node. */
+
+ return svn_error_createf(SVN_ERR_WC_PATH_NOT_FOUND, NULL,
+ _("The node '%s' was not found."),
+ svn_dirent_local_style(local_abspath,
+ scratch_pool));
+ }
else
{
/* It may be a file or an unversioned item. And this is an explicit
Modified: subversion/trunk/subversion/tests/cmdline/commit_tests.py
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/commit_tests.py?rev=1489928&r1=1489927&r2=1489928&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/commit_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/commit_tests.py Wed Jun 5 15:47:10 2013
@@ -2945,21 +2945,24 @@ def last_changed_of_copied_subdir(sbox):
}
svntest.actions.run_and_verify_info([expected], E_copied)
-@XFail()
+
def commit_unversioned(sbox):
"verify behavior on unversioned targets"
-
+
sbox.build(read_only=True)
wc_dir = sbox.wc_dir
-
+
expected_err = 'E200009: .*existing.*\' is not under version control'
# Unversioned, but existing file
svntest.main.file_write(sbox.ospath('existing'), "xxxx")
svntest.actions.run_and_verify_commit(wc_dir, None, None, expected_err,
sbox.ospath('existing'))
-
+
+
+
# Unversioned, not existing
+ expected_err = 'E155010: .*existing.*\' was not found'
svntest.actions.run_and_verify_commit(wc_dir, None, None, expected_err,
sbox.ospath('not-existing'))
Modified: subversion/trunk/subversion/tests/cmdline/stat_tests.py
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/stat_tests.py?rev=1489928&r1=1489927&r2=1489928&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/stat_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/stat_tests.py Wed Jun 5 15:47:10 2013
@@ -378,8 +378,8 @@ def status_for_nonexistent_file(sbox):
os.chdir(wc_dir)
- exit_code, output, err = svntest.actions.run_and_verify_svn(
- None, None, [], 'status', 'nonexistent-file')
+ exit_code, output, err = svntest.actions.run_and_verify_svn2(
+ None, None, '.*W155010:.*', 0, 'status', 'nonexistent-file')
# there should *not* be a status line printed for the nonexistent file
for line in output:
@@ -1970,12 +1970,13 @@ def status_not_present(sbox):
sbox.ospath('A/mu'), sbox.ospath('A/B'))
sbox.simple_commit()
- svntest.actions.run_and_verify_svn(None, [], [],'status',
- sbox.ospath('iota'),
- sbox.ospath('A/B'),
- sbox.ospath('A/C'),
- sbox.ospath('A/mu'),
- sbox.ospath('no-file'))
+ expected_err = '.*W155010.*'
+ svntest.actions.run_and_verify_svn2(None, [], expected_err, 0 ,'status',
+ sbox.ospath('iota'),
+ sbox.ospath('A/B'),
+ sbox.ospath('A/C'),
+ sbox.ospath('A/mu'),
+ sbox.ospath('no-file'))
# Skip this test is a .svn dir exists in the root directory
@Skip(lambda: os.path.exists("/%s" % svntest.main.get_admin_name()))
Modified: subversion/trunk/subversion/tests/cmdline/tree_conflict_tests.py
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/tree_conflict_tests.py?rev=1489928&r1=1489927&r2=1489928&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/tree_conflict_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/tree_conflict_tests.py Wed Jun 5 15:47:10 2013
@@ -30,7 +30,7 @@ import sys, re, os, traceback
# Our testing module
import svntest
from svntest import main, wc, verify
-from svntest.actions import run_and_verify_svn
+from svntest.actions import run_and_verify_svn, run_and_verify_svn2
from svntest.actions import run_and_verify_commit
from svntest.actions import run_and_verify_resolved
from svntest.actions import run_and_verify_update
@@ -523,8 +523,10 @@ def ensure_tree_conflict(sbox, operation
run_and_verify_resolved([victim_path])
logger.debug("--- Checking that 'status' does not report a conflict")
- exitcode, stdout, stderr = run_and_verify_svn(None, None, [],
- 'status', victim_path)
+
+ exitcode, stdout, stderr = main.run_svn(True, 'status', victim_path)
+ verify.verify_exit_code(None, exitcode, 0)
+
for line in stdout:
if line[6] == 'C': # and line.endswith(victim_path + '\n'):
raise svntest.Failure("unexpected status C") # on victim_path