Stefan Sperling <stsp_at_elego.de> writes:
> On Thu, Mar 10, 2011 at 04:49:32PM +0530, Noorul Islam K M wrote:
>
>>
>> >From issue tracker
>> (http://subversion.tigris.org/issues/show_bug.cgi?id=3787)
>>
>> It would be ever-so-helpful to folks looking to capture and replicate a working
>> copy sparse checkouts configuration if 'svn info -R' would show exclude items,
>> if only optionally, and even then if only just with minimal info:
>>
>> Path: some/excluded-path
>> Depth: exclude
>>
>> Today you cannot look at 'svn info -R' output and get a complete picture of what
>> is and isn't in the sparse configuration.
>> --------------------------------------------------------------------------------
>>
>> I added new option "--show-exclude" to 'svn info' subcommand. When this
>> option is passed to info command along with '-R', it will include nodes
>> with depth 'exclude' also for displaying information. This issue is
>> related to 3792 which is already fixed.
>
> I don't think the new --show-exclude option is necessary.
> We should always show information about excluded items in the output
> svn info -R.
>
> Can you rework the patch accordingly? That will also make it smaller.
>
Please find updated patch. All tests pass using 'make check'.
Log
[[[
Fix for issue 3787. Make 'svn info -R' display minimal information about
nodes with depth exclude in the tree.
* subversion/libsvn_client/info.c
(crawl_entries): If depth is infinity or files then pass TRUE to
svn_wc__node_walk_children as show_hidden parameter value.
* subversion/tests/cmdline/depth_tests.py
(info_show_exclude): New test.
(test_list): Run it.
Patch by: Noorul Islam K M <noorul{_AT_}collab.net>
]]]
Index: subversion/tests/cmdline/depth_tests.py
===================================================================
--- subversion/tests/cmdline/depth_tests.py (revision 1089373)
+++ subversion/tests/cmdline/depth_tests.py (working copy)
@@ -2815,7 +2815,38 @@
None, None, None, None, None, False,
'--parents', omega_path)
+@Issue(3787)
+def info_show_exclude(sbox):
+ "tests 'info -R' on excluded directory"
+ sbox.build()
+ wc_dir = sbox.wc_dir
+
+ A_path = os.path.join(wc_dir, 'A')
+ svntest.main.run_svn(None, 'up', '--set-depth', 'exclude', A_path)
+
+ expected_info = [{
+ 'Path' : '.',
+ 'Repository Root' : sbox.repo_url,
+ 'Repository UUID' : svntest.actions.get_wc_uuid(wc_dir),
+ }]
+
+ expected_info.append({
+ 'Path' : 'A',
+ 'Repository Root' : sbox.repo_url,
+ 'Repository UUID' : svntest.actions.get_wc_uuid(wc_dir),
+ 'Depth' : 'exclude',
+ })
+
+ expected_info.append({
+ 'Path' : re.escape("iota"),
+ 'Repository Root' : sbox.repo_url,
+ 'Repository UUID' : svntest.actions.get_wc_uuid(wc_dir),
+ })
+
+ os.chdir(wc_dir)
+ svntest.actions.run_and_verify_info(expected_info, '-R')
+
#----------------------------------------------------------------------
# list all tests here, starting with None:
test_list = [ None,
@@ -2862,6 +2893,7 @@
update_excluded_path_sticky_depths,
update_depth_empty_root_of_infinite_children,
sparse_update_with_dash_dash_parents,
+ info_show_exclude,
]
if __name__ == "__main__":
Index: subversion/libsvn_client/info.c
===================================================================
--- subversion/libsvn_client/info.c (revision 1089373)
+++ subversion/libsvn_client/info.c (working copy)
@@ -408,13 +408,17 @@
{
struct found_entry_baton fe_baton;
svn_error_t *err;
+ svn_boolean_t show_exclude = FALSE;
fe_baton.changelist_hash = changelist_hash;
fe_baton.receiver = receiver;
fe_baton.receiver_baton = receiver_baton;
fe_baton.wc_ctx = ctx->wc_ctx;
- err = svn_wc__node_walk_children(ctx->wc_ctx, local_abspath, FALSE,
+ if (depth == SVN_DEPTH_INFINITY_OR_FILES(TRUE))
+ show_exclude = TRUE;
+
+ err = svn_wc__node_walk_children(ctx->wc_ctx, local_abspath, show_exclude,
info_found_node_callback, &fe_baton, depth,
ctx->cancel_func, ctx->cancel_baton, pool);
Received on 2011-04-07 06:50:00 CEST