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/01/22 16:42:29 UTC
svn commit: r1437001 - in /subversion/trunk/subversion/tests/cmdline:
entries-dump.c svntest/main.py svntest/wc.py
Author: rhuijben
Date: Tue Jan 22 15:42:28 2013
New Revision: 1437001
URL: http://svn.apache.org/viewvc?rev=1437001&view=rev
Log:
* subversion/tests/cmdline/entries-dump.c
(tree_dump_dir): Dump using the relative path to avoid problems with the
path already stored in the access baton.
* subversion/tests/cmdline/svntest/main.py
(run_entriesdump_tree): New function, wrapping the new --tree-dump feature
of the entries-dump tool.
* subversion/tests/cmdline/svntest/wc.py
(from_entries): Use run_entriesdump_tree to reduce the number of invocations
of entries-dump by the number of directories in a working copy.
Modified:
subversion/trunk/subversion/tests/cmdline/entries-dump.c
subversion/trunk/subversion/tests/cmdline/svntest/main.py
subversion/trunk/subversion/tests/cmdline/svntest/wc.py
Modified: subversion/trunk/subversion/tests/cmdline/entries-dump.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/entries-dump.c?rev=1437001&r1=1437000&r2=1437001&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/entries-dump.c (original)
+++ subversion/trunk/subversion/tests/cmdline/entries-dump.c Tue Jan 22 15:42:28 2013
@@ -280,7 +280,7 @@ tree_dump_dir(const char *local_abspath,
path = local_abspath;
printf("entries = {}\n");
- SVN_ERR(entries_dump(local_abspath, bt->adm_access, scratch_pool));
+ SVN_ERR(entries_dump(path, bt->adm_access, scratch_pool));
printf("dirs['%s'] = entries\n", path);
return SVN_NO_ERROR;
Modified: subversion/trunk/subversion/tests/cmdline/svntest/main.py
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/svntest/main.py?rev=1437001&r1=1437000&r2=1437001&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/svntest/main.py (original)
+++ subversion/trunk/subversion/tests/cmdline/svntest/main.py Tue Jan 22 15:42:28 2013
@@ -727,6 +727,23 @@ def run_entriesdump_subdirs(path):
0, False, None, '--subdirs', path)
return map(lambda line: line.strip(), filter_dbg(stdout_lines))
+def run_entriesdump_tree(path):
+ """Run the entries-dump helper, returning a dict of a dict of Entry objects."""
+ # use spawn_process rather than run_command to avoid copying all the data
+ # to stdout in verbose mode.
+ exit_code, stdout_lines, stderr_lines = spawn_process(entriesdump_binary,
+ 0, False, None,
+ '--tree-dump', path)
+ if exit_code or stderr_lines:
+ ### report on this? or continue to just skip it?
+ return None
+
+ class Entry(object):
+ pass
+ dirs = { }
+ exec(''.join(filter_dbg(stdout_lines)))
+ return dirs
+
def run_atomic_ra_revprop_change(url, revision, propname, skel, want_error):
"""Run the atomic-ra-revprop-change helper, returning its exit code, stdout,
and stderr. For HTTP, default HTTP library is used."""
Modified: subversion/trunk/subversion/tests/cmdline/svntest/wc.py
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/svntest/wc.py?rev=1437001&r1=1437000&r2=1437001&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/svntest/wc.py (original)
+++ subversion/trunk/subversion/tests/cmdline/svntest/wc.py Tue Jan 22 15:42:28 2013
@@ -663,21 +663,14 @@ class State:
desc = { }
dot_svn = svntest.main.get_admin_name()
- for dirpath in svntest.main.run_entriesdump_subdirs(base):
+ dump_data = svntest.main.run_entriesdump_tree(base)
- if base == '.' and dirpath != '.':
- dirpath = '.' + os.path.sep + dirpath
+ if not dump_data:
+ # Probably 'svn status' run on an actual only node
+ # ### Improve!
+ return cls('', desc)
- entries = svntest.main.run_entriesdump(dirpath)
- if entries is None:
- continue
-
- if dirpath == '.':
- parent = ''
- elif dirpath.startswith('.' + os.sep):
- parent = to_relpath(dirpath[2:])
- else:
- parent = to_relpath(dirpath)
+ for parent, entries in sorted(dump_data.items()):
parent_url = entries[''].url