Author: philip
Date: Fri Jan 13 11:58:01 2012
New Revision: 1231029
URL: http://svn.apache.org/viewvc?rev=1231029&view=rev
Log:
Fix issue 4097, XML status not showing new files in repository.
* subversion/svn/status.c
(svn_cl__print_status_xml): Check repository status.
* subversion/tests/cmdline/stat_tests.py
(status_in_xml): Extend.
Modified:
subversion/trunk/subversion/svn/status.c
subversion/trunk/subversion/tests/cmdline/stat_tests.py
Modified: subversion/trunk/subversion/svn/status.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/status.c?rev=1231029&r1=1231028&r2=1231029&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/status.c (original)
+++ subversion/trunk/subversion/svn/status.c Fri Jan 13 11:58:01 2012
@@ -432,7 +432,8 @@ svn_cl__print_status_xml(const char *cwd
const char *local_abspath = status->local_abspath;
svn_boolean_t tree_conflicted = FALSE;
- if (status->node_status == svn_wc_status_none)
+ if (status->node_status == svn_wc_status_none
+ && status->repos_node_status == svn_wc_status_none)
return SVN_NO_ERROR;
if (status->conflicted)
Modified: subversion/trunk/subversion/tests/cmdline/stat_tests.py
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/stat_tests.py?rev=1231029&r1=1231028&r2=1231029&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/stat_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/stat_tests.py Fri Jan 13 11:58:01
2012
@@ -905,7 +905,7 @@ def missing_dir_in_anchor(sbox):
def status_in_xml(sbox):
"status output in XML format"
- sbox.build(read_only = True)
+ sbox.build()
wc_dir = sbox.wc_dir
file_name = "iota"
@@ -957,6 +957,44 @@ def status_in_xml(sbox):
print("ERROR: expected: %s actual: %s" % (template[i], output[i]))
raise svntest.Failure
+ svntest.actions.run_and_verify_svn(None, None, [],
+ 'cp', '-m', 'repo-to-repo copy',
+ sbox.repo_url + '/iota',
+ sbox.repo_url + '/iota2')
+
+ file_path = sbox.ospath('iota2')
+
+ template = ['<?xml version="1.0" encoding="UTF-8"?>\n',
+ "<status>\n",
+ "<target\n",
+ " path=\"%s\">\n" % (file_path),
+ "<entry\n",
+ " path=\"%s\">\n" % (file_path),
+ "<wc-status\n",
+ " props=\"none\"\n",
+ " item=\"none\">\n",
+ "</wc-status>\n",
+ "<repos-status\n",
+ " props=\"none\"\n",
+ " item=\"added\">\n",
+ "</repos-status>\n",
+ "</entry>\n",
+ "<against\n",
+ " revision=\"2\"/>\n",
+ "</target>\n",
+ "</status>\n",
+ ]
+
+ exit_code, output, error = svntest.actions.run_and_verify_svn(None, None, [],
+ 'status',
+ file_path,
+ '--xml', '-u')
+
+ for i in range(0, len(output)):
+ if output[i] != template[i]:
+ print("ERROR: expected: %s actual: %s" % (template[i], output[i]))
+ raise svntest.Failure
+
#----------------------------------------------------------------------
def status_ignored_dir(sbox):