> -----Original Message----- > From: Sergey Raevskiy [mailto:sergey.raevs...@visualsvn.com] > Sent: woensdag 12 oktober 2016 12:44 > To: Subversion Development <dev@subversion.apache.org> > Subject: [PATCH] Add '--include' and '--exclude' options to 'svnadmin dump' > > Hi! > > I've attached a patch that adds '--include/--exclude' options to 'svnadmin > dump'. These options work similarly to 'svndumpfilter include/exclude' > but provide proper handling of 'copy from' paths. > > Consider the following example with svndumpfilter: > [[ > $ svnadmin create /repo > $ svn mkdir -m "" file:///repo/A > $ svn copy -m "" file:///repo/A file:///repo/B > $ svnadmin dump /repo | svndumpfilter include /B > dump
I don't see a --renumber-revs on your invocation of svndumpfilter. Did you try these options to see if these resolve your problem (they should) $ svndumpfilter help include include: Filter out nodes without given prefixes from dumpstream. usage: svndumpfilter include PATH_PREFIX... Valid options: --drop-empty-revs : Remove revisions emptied by filtering. --drop-all-empty-revs : Remove all empty revisions found in dumpstream except revision 0. --renumber-revs : Renumber revisions left after filtering. --skip-missing-merge-sources : Skip missing merge sources. --targets ARG : Read additional prefixes, one per line, from file ARG. --preserve-revprops : Don't filter revision properties. --quiet : Do not display filtering statistics. --pattern : Treat the path prefixes as file glob patterns. Bert > ... > Revision 0 committed as 0. > Revision 1 committed as 1. > svndumpfilter: E200003: Invalid copy source path '/A' > ]] > > The 'svnadmin dump' with proposed include/exclude options can handle this > use > case properly: > [[ > $ svnadmin dump /repo --include /B > dump > * Dumped revision 0. > * Dumped revision 1. > * Dumped revision 2. > ]] > > The proposed options are implemented using 'svn_repos_authz_func_t' and the > not-included copy sources are hidden by the 'svn_repos' layer. > > Some usage examples for the proposed options: > [[ > $ svnadmin dump repos --include /calc > calc-dumpfile > ... > $ svnadmin dump repos --include /calc --include /calendar > dumpfile > ... > $ svnadmin dump repos --exclude /secret > dumpfile > ... > $ svnadmin dump repos --include /calc --exclude /calendar > dumpfile > svnadmin: E205000: Try 'svnadmin help' for more info > svnadmin: E205000: '--exclude' and '--include' options cannot be used > simultaneously > > $ svnadmin dump repos --include /cal* --pattern > dumpfile > ... > ]] > > Log message: > > [[ > Add '--include' and '--exclude' options to 'svnadmin dump'. > > * include/svn_repos.h > (svn_repos_dump_filter_func_t): New. > (svn_repos_dump_fs4): Update function signature and comment. > (svn_repos_dump_fs3): Update comment. > > * libsvn_repos/deprecated.c > (svn_repos_dump_fs3): Update caller. > > * libsvn_repos/dump.c > (write_revision_record): Call to svn_repos_fs_revision_proplist() (with > AUTHZ_FUNC) instead of svn_fs_revision_proplist2() to filter revision > properties as well as revisions. Update comment. > (dump_filter_baton_t, > dump_filter_authz_func): New. > (svn_repos_dump_fs4): Initialize and pass AUTHZ_FUNC and AUTHZ_BATON > to > the repos layer API if FILTER_FUNC is specified by caller. > > * subversion/svnadmin/svnadmin.c > (svnadmin__cmdline_options_t): Add enum values for new options. > (options_table): Add new options. > (cmd_table): Add new options to 'dump' subcommand. > (svnadmin_opt_state): Add new fields to represent new options. > (ary_prefix_match): New. Copied from svndumpfilter. > (dump_filter_baton_t, > dump_filter_func): New. > (subcommand_dump): Initialize FILTER_BATON. Pass DUMP_FILTER_FUNC > and a > pointer to FILTER_BATON to svn_repos_dump_fs() if any filtering prefixes > specified. > (sub_main): Handle new options. > > * subversion/tests/cmdline/svnadmin_tests.py > (dump_exclude, > dump_exclude_copysource, > dump_include, > dump_not_include_copysource, > dump_exclude_by_pattern, > dump_include_by_pattern, > dump_exclude_all_rev_changes, > dump_invalid_filtering_option): New. > (test_list): Add new tests to table. > > * subversion/tests/libsvn_repos/dump-load-test.c > (test_dump_bad_props): Update caller. > > Patch by: sergey.raevskiy{_AT_}visualsvn.com > ]]