summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames McCoy <jamessan@debian.org>2018-10-02 21:50:32 -0400
committerJames McCoy <jamessan@debian.org>2018-10-02 21:50:32 -0400
commit784e881a5aaa645a37eda4fb775484f27c81143a (patch)
tree3702672116cb73f976a31fd30a57824e12339050
parentfb8514369ffb04ec2aea8d8ee7916fdff101b84e (diff)
parentdb2274467e932f2ac8f15a9372bbe32aa4fdfeb1 (diff)
Update to upstream 1.11.0~rc2
[git-debrebase anchor: new upstream 1.11.0~rc2, merge]
-rw-r--r--CHANGES49
-rw-r--r--INSTALL20
-rw-r--r--Makefile.in6
-rw-r--r--build-outputs.mk366
-rw-r--r--build.conf99
-rw-r--r--build/ac-macros/java.m42
-rw-r--r--build/ac-macros/swig.m45
-rw-r--r--build/generator/gen_base.py115
-rw-r--r--build/generator/gen_make.py2
-rw-r--r--build/generator/gen_win.py47
-rw-r--r--build/generator/gen_win_dependencies.py10
-rw-r--r--build/generator/templates/build-outputs.mk.ezt10
-rw-r--r--build/generator/templates/vcnet_vcxproj.ezt1
-rwxr-xr-xbuild/transform_libtool_scripts.sh1
-rwxr-xr-xbuild/transform_sql.py2
-rw-r--r--build/win32/vc6-build.bat.in176
-rwxr-xr-xconfigure54
-rw-r--r--configure.ac2
-rw-r--r--doc/user/svn-best-practices.html2
-rwxr-xr-xgen-make.py1
-rw-r--r--subversion/bindings/javahl/README4
-rw-r--r--subversion/bindings/javahl/native/JNIUtil.cpp15
-rw-r--r--subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitItemStateFlags.java9
-rw-r--r--subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java7
-rw-r--r--subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/UserPasswordCallback.java5
-rw-r--r--subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Revision.java2
-rw-r--r--subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java2
-rw-r--r--subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java2
-rw-r--r--subversion/bindings/swig/perl/native/core.c1226
-rw-r--r--subversion/bindings/swig/perl/native/svn_client.c4143
-rw-r--r--subversion/bindings/swig/perl/native/svn_delta.c55
-rw-r--r--subversion/bindings/swig/perl/native/svn_diff.c45
-rw-r--r--subversion/bindings/swig/perl/native/svn_fs.c55
-rw-r--r--subversion/bindings/swig/perl/native/svn_ra.c67
-rw-r--r--subversion/bindings/swig/perl/native/svn_repos.c77
-rw-r--r--subversion/bindings/swig/perl/native/svn_wc.c289
-rw-r--r--subversion/bindings/swig/proxy/svn_client_h.swg16
-rw-r--r--subversion/bindings/swig/proxy/svn_opt_h.swg1
-rw-r--r--subversion/bindings/swig/python/client.py373
-rw-r--r--subversion/bindings/swig/python/core.c994
-rw-r--r--subversion/bindings/swig/python/core.py124
-rw-r--r--subversion/bindings/swig/python/svn/fs.py74
-rw-r--r--subversion/bindings/swig/python/svn_client.c3628
-rw-r--r--subversion/bindings/swig/python/svn_delta.c49
-rw-r--r--subversion/bindings/swig/python/svn_diff.c47
-rw-r--r--subversion/bindings/swig/python/svn_fs.c49
-rw-r--r--subversion/bindings/swig/python/svn_ra.c61
-rw-r--r--subversion/bindings/swig/python/svn_repos.c71
-rw-r--r--subversion/bindings/swig/python/svn_wc.c251
-rw-r--r--subversion/bindings/swig/python/tests/fs.py124
-rw-r--r--subversion/bindings/swig/python/tests/run_all.py3
-rw-r--r--subversion/bindings/swig/python/wc.py4
-rw-r--r--subversion/bindings/swig/ruby/core.c1113
-rw-r--r--subversion/bindings/swig/ruby/svn/util.rb2
-rw-r--r--subversion/bindings/swig/ruby/svn_client.c3813
-rw-r--r--subversion/bindings/swig/ruby/svn_delta.c53
-rw-r--r--subversion/bindings/swig/ruby/svn_diff.c43
-rw-r--r--subversion/bindings/swig/ruby/svn_fs.c53
-rw-r--r--subversion/bindings/swig/ruby/svn_ra.c65
-rw-r--r--subversion/bindings/swig/ruby/svn_repos.c75
-rw-r--r--subversion/bindings/swig/ruby/svn_wc.c241
-rw-r--r--subversion/bindings/swig/ruby/test/test_client.rb2
-rw-r--r--subversion/include/private/svn_client_private.h71
-rw-r--r--subversion/include/private/svn_diff_tree.h1
-rw-r--r--subversion/include/private/svn_element.h2
-rw-r--r--subversion/include/private/svn_repos_private.h22
-rw-r--r--subversion/include/private/svn_sorts_private.h4
-rw-r--r--subversion/include/private/svn_subr_private.h14
-rw-r--r--subversion/include/private/svn_wc_private.h38
-rw-r--r--subversion/include/svn_client.h730
-rw-r--r--subversion/include/svn_fs.h4
-rw-r--r--subversion/include/svn_opt.h132
-rw-r--r--subversion/include/svn_props.h19
-rw-r--r--subversion/include/svn_ra.h8
-rw-r--r--subversion/include/svn_repos.h11
-rw-r--r--subversion/include/svn_time.h11
-rw-r--r--subversion/include/svn_utf.h2
-rw-r--r--subversion/include/svn_version.h10
-rw-r--r--subversion/include/svn_wc.h33
-rw-r--r--subversion/libsvn_client/client.h91
-rw-r--r--subversion/libsvn_client/conflicts.c1833
-rw-r--r--subversion/libsvn_client/deprecated.c101
-rw-r--r--subversion/libsvn_client/diff.c891
-rw-r--r--subversion/libsvn_client/diff_local.c126
-rw-r--r--subversion/libsvn_client/diff_summarize.c20
-rw-r--r--subversion/libsvn_client/export.c33
-rw-r--r--subversion/libsvn_client/layout.c289
-rw-r--r--subversion/libsvn_client/list.c2
-rw-r--r--subversion/libsvn_client/merge.c328
-rw-r--r--subversion/libsvn_client/patch.c8
-rw-r--r--subversion/libsvn_client/repos_diff.c15
-rw-r--r--subversion/libsvn_client/revert.c8
-rw-r--r--subversion/libsvn_client/shelf.c2101
-rw-r--r--subversion/libsvn_client/shelve.c552
-rw-r--r--subversion/libsvn_client/status.c79
-rw-r--r--subversion/libsvn_client/update.c10
-rw-r--r--subversion/libsvn_delta/debug_editor.c159
-rw-r--r--subversion/libsvn_delta/element.c4
-rw-r--r--subversion/libsvn_diff/diff_tree.c75
-rw-r--r--subversion/libsvn_diff/parse-diff.c98
-rw-r--r--subversion/libsvn_fs_fs/cached_data.h2
-rw-r--r--subversion/libsvn_fs_fs/dag.c2
-rw-r--r--subversion/libsvn_fs_fs/id.c3
-rw-r--r--subversion/libsvn_fs_fs/index.c4
-rw-r--r--subversion/libsvn_fs_fs/load-index.c4
-rw-r--r--subversion/libsvn_fs_fs/low_level.c2
-rw-r--r--subversion/libsvn_fs_fs/pack.c14
-rw-r--r--subversion/libsvn_fs_fs/recovery.c12
-rw-r--r--subversion/libsvn_fs_fs/rep-cache-db.h2
-rw-r--r--subversion/libsvn_fs_fs/temp_serializer.h6
-rw-r--r--subversion/libsvn_fs_x/changes.c2
-rw-r--r--subversion/libsvn_fs_x/low_level.c2
-rw-r--r--subversion/libsvn_fs_x/pack.c12
-rw-r--r--subversion/libsvn_fs_x/rep-cache-db.h2
-rw-r--r--subversion/libsvn_fs_x/transaction.c2
-rw-r--r--subversion/libsvn_fs_x/tree.c2
-rw-r--r--subversion/libsvn_ra_serf/commit.c4
-rw-r--r--subversion/libsvn_ra_serf/list.c13
-rw-r--r--subversion/libsvn_ra_serf/options.c18
-rw-r--r--subversion/libsvn_ra_serf/replay.c2
-rw-r--r--subversion/libsvn_ra_serf/update.c2
-rw-r--r--subversion/libsvn_ra_serf/util.c20
-rw-r--r--subversion/libsvn_ra_svn/protocol2
-rw-r--r--subversion/libsvn_repos/dump.c14
-rw-r--r--subversion/libsvn_repos/dump_editor.c1035
-rw-r--r--subversion/libsvn_repos/list.c2
-rw-r--r--subversion/libsvn_repos/load-fs-vtable.c6
-rw-r--r--subversion/libsvn_repos/log.c2
-rw-r--r--subversion/libsvn_repos/repos.c4
-rw-r--r--subversion/libsvn_subr/compress_lz4.c2
-rw-r--r--subversion/libsvn_subr/config_win.c2
-rw-r--r--subversion/libsvn_subr/deprecated.c412
-rw-r--r--subversion/libsvn_subr/internal_statements.h2
-rw-r--r--subversion/libsvn_subr/io.c13
-rw-r--r--subversion/libsvn_subr/lz4/lz4.c2
-rw-r--r--subversion/libsvn_subr/lz4/lz4internal.h2
-rw-r--r--subversion/libsvn_subr/opt.c119
-rw-r--r--subversion/libsvn_subr/ssl_client_cert_pw_providers.c14
-rw-r--r--subversion/libsvn_subr/stream.c4
-rw-r--r--subversion/libsvn_subr/utf.c2
-rw-r--r--subversion/libsvn_subr/x509info.c2
-rw-r--r--subversion/libsvn_wc/README10
-rw-r--r--subversion/libsvn_wc/conflicts.c83
-rw-r--r--subversion/libsvn_wc/conflicts.h7
-rw-r--r--subversion/libsvn_wc/deprecated.c30
-rw-r--r--subversion/libsvn_wc/diff_local.c27
-rw-r--r--subversion/libsvn_wc/node.c14
-rw-r--r--subversion/libsvn_wc/props.c4
-rw-r--r--subversion/libsvn_wc/questions.c2
-rw-r--r--subversion/libsvn_wc/revert.c42
-rw-r--r--subversion/libsvn_wc/tree_conflicts.c2
-rw-r--r--subversion/libsvn_wc/update_editor.c31
-rw-r--r--subversion/libsvn_wc/upgrade.c2
-rw-r--r--subversion/libsvn_wc/wc-checks.h2
-rw-r--r--subversion/libsvn_wc/wc-metadata.h2
-rw-r--r--subversion/libsvn_wc/wc-queries.h1252
-rw-r--r--subversion/libsvn_wc/wc-queries.sql11
-rw-r--r--subversion/libsvn_wc/wc.h1
-rw-r--r--subversion/libsvn_wc/wc_db.c61
-rw-r--r--subversion/libsvn_wc/wc_db.h30
-rw-r--r--subversion/libsvn_wc/wc_db_update_move.c10
-rw-r--r--subversion/libsvn_wc/wc_db_wcroot.c16
-rw-r--r--subversion/libsvn_wc/wcroot_anchor.c5
-rw-r--r--subversion/mod_dav_svn/reports/file-revs.c2
-rw-r--r--subversion/mod_dav_svn/reports/replay.c2
-rw-r--r--subversion/mod_dav_svn/repos.c7
-rw-r--r--subversion/po/de.po13583
-rw-r--r--subversion/po/subversion.pot4222
-rw-r--r--subversion/po/sv.po6508
-rw-r--r--subversion/svn/auth-cmd.c17
-rw-r--r--subversion/svn/cl.h34
-rw-r--r--subversion/svn/conflict-callbacks.c136
-rw-r--r--subversion/svn/diff-cmd.c48
-rw-r--r--subversion/svn/help-cmd.c2
-rw-r--r--subversion/svn/info-cmd.c280
-rw-r--r--subversion/svn/log-cmd.c5
-rw-r--r--subversion/svn/notify.c2
-rw-r--r--subversion/svn/propset-cmd.c2
-rw-r--r--subversion/svn/revert-cmd.c3
-rw-r--r--subversion/svn/shelf-cmd.c1209
-rw-r--r--subversion/svn/shelve-cmd.c369
-rw-r--r--subversion/svn/svn.c1015
-rw-r--r--subversion/svnadmin/svnadmin.c283
-rw-r--r--subversion/svnbench/cl.h2
-rw-r--r--subversion/svnbench/help-cmd.c2
-rw-r--r--subversion/svnbench/svnbench.c92
-rw-r--r--subversion/svndumpfilter/svndumpfilter.c41
-rw-r--r--subversion/svnfsfs/load-index-cmd.c2
-rw-r--r--subversion/svnfsfs/svnfsfs.c64
-rw-r--r--subversion/svnlook/svnlook.c160
-rw-r--r--subversion/svnmucc/svnmucc.c2
-rw-r--r--subversion/svnrdump/dump_editor.c967
-rw-r--r--subversion/svnrdump/load_editor.c2
-rw-r--r--subversion/svnrdump/svnrdump.c50
-rw-r--r--subversion/svnserve/serve.c2
-rw-r--r--subversion/svnserve/svnserve.c2
-rw-r--r--subversion/svnsync/svnsync.c81
-rw-r--r--subversion/svnversion/svnversion.c2
-rw-r--r--subversion/tests/afl/afl-svndiff-testcase/test1bin0 -> 4 bytes
-rw-r--r--subversion/tests/afl/afl-svndiff-testcase/test2bin0 -> 16 bytes
-rw-r--r--subversion/tests/afl/afl-svndiff-testcase/test3bin0 -> 18 bytes
-rw-r--r--subversion/tests/afl/afl-svndiff.c85
-rw-r--r--subversion/tests/afl/afl-x509-testcase/test2bin0 -> 694 bytes
-rw-r--r--subversion/tests/afl/afl-x509-testcase/test3bin0 -> 810 bytes
-rwxr-xr-xsubversion/tests/cmdline/authz_tests.py34
-rwxr-xr-xsubversion/tests/cmdline/basic_tests.py71
-rwxr-xr-xsubversion/tests/cmdline/blame_tests.py3
-rwxr-xr-xsubversion/tests/cmdline/commit_tests.py3
-rwxr-xr-xsubversion/tests/cmdline/copy_tests.py2
-rwxr-xr-xsubversion/tests/cmdline/dav-mirror-autocheck.sh55
-rwxr-xr-xsubversion/tests/cmdline/dav_tests.py82
-rwxr-xr-xsubversion/tests/cmdline/davautocheck.sh20
-rwxr-xr-xsubversion/tests/cmdline/depth_tests.py2
-rwxr-xr-xsubversion/tests/cmdline/diff_tests.py112
-rwxr-xr-xsubversion/tests/cmdline/entries_tests.py9
-rwxr-xr-xsubversion/tests/cmdline/export_tests.py14
-rwxr-xr-xsubversion/tests/cmdline/externals_tests.py24
-rw-r--r--subversion/tests/cmdline/getopt_tests_data/svn--help_stdout11
-rw-r--r--subversion/tests/cmdline/getopt_tests_data/svn_help_log_switch_stdout4
-rw-r--r--subversion/tests/cmdline/getopt_tests_data/svn_help_stdout11
-rwxr-xr-xsubversion/tests/cmdline/iprop_authz_tests.py2
-rwxr-xr-xsubversion/tests/cmdline/lock_tests.py4
-rwxr-xr-xsubversion/tests/cmdline/log_tests.py8
-rwxr-xr-xsubversion/tests/cmdline/merge_authz_tests.py4
-rwxr-xr-xsubversion/tests/cmdline/merge_automatic_tests.py2
-rwxr-xr-xsubversion/tests/cmdline/merge_reintegrate_tests.py2
-rwxr-xr-xsubversion/tests/cmdline/merge_tests.py32
-rwxr-xr-xsubversion/tests/cmdline/merge_tree_conflict_tests.py4
-rwxr-xr-xsubversion/tests/cmdline/mergeinfo_tests.py2
-rwxr-xr-x[-rw-r--r--]subversion/tests/cmdline/mod_dav_svn_tests.py0
-rwxr-xr-xsubversion/tests/cmdline/move_tests.py2
-rwxr-xr-xsubversion/tests/cmdline/patch_tests.py231
-rwxr-xr-xsubversion/tests/cmdline/prop_tests.py2
-rwxr-xr-xsubversion/tests/cmdline/revert_tests.py9
-rwxr-xr-xsubversion/tests/cmdline/shelf_tests.py995
-rwxr-xr-xsubversion/tests/cmdline/shelve_tests.py176
-rwxr-xr-xsubversion/tests/cmdline/special_tests.py5
-rwxr-xr-xsubversion/tests/cmdline/stat_tests.py3
-rwxr-xr-xsubversion/tests/cmdline/svnadmin_tests.py135
-rwxr-xr-xsubversion/tests/cmdline/svnauthz_tests.py10
-rwxr-xr-xsubversion/tests/cmdline/svndumpfilter_tests.py8
-rwxr-xr-xsubversion/tests/cmdline/svnfsfs_tests.py3
-rwxr-xr-xsubversion/tests/cmdline/svnmover_tests.py6
-rwxr-xr-xsubversion/tests/cmdline/svnmucc_tests.py2
-rwxr-xr-xsubversion/tests/cmdline/svnrdump_tests.py6
-rwxr-xr-xsubversion/tests/cmdline/svnsync_authz_tests.py2
-rwxr-xr-xsubversion/tests/cmdline/svnsync_tests.py2
-rw-r--r--subversion/tests/cmdline/svntest/actions.py5
-rw-r--r--subversion/tests/cmdline/svntest/main.py36
-rw-r--r--[-rwxr-xr-x]subversion/tests/cmdline/svntest/mergetrees.py0
-rw-r--r--subversion/tests/cmdline/svntest/sandbox.py24
-rw-r--r--subversion/tests/cmdline/svntest/tree.py15
-rw-r--r--subversion/tests/cmdline/svntest/verify.py103
-rw-r--r--subversion/tests/cmdline/svntest/wc.py3
-rwxr-xr-xsubversion/tests/cmdline/svnversion_tests.py18
-rwxr-xr-xsubversion/tests/cmdline/trans_tests.py6
-rwxr-xr-xsubversion/tests/cmdline/tree_conflict_tests.py49
-rwxr-xr-xsubversion/tests/cmdline/update_tests.py3
-rwxr-xr-xsubversion/tests/cmdline/upgrade_tests.py6
-rw-r--r--subversion/tests/libsvn_client/conflicts-test.c1046
-rw-r--r--subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c4
-rw-r--r--subversion/tests/libsvn_repos/authz-test.c39
-rw-r--r--subversion/tests/libsvn_repos/dump-load-test.c4
-rw-r--r--subversion/tests/libsvn_repos/repos-test.c2
-rw-r--r--subversion/tests/libsvn_subr/priority-queue-test.c6
-rw-r--r--subversion/tests/libsvn_wc/conflict-data-test.c11
-rw-r--r--subversion/tests/libsvn_wc/op-depth-test.c2
-rw-r--r--subversion/tests/libsvn_wc/utils.c3
-rw-r--r--subversion/tests/libsvn_wc/wc-queries-test.c1
-rw-r--r--subversion/tests/libsvn_wc/wc-test-queries.h2
-rw-r--r--subversion/tests/svn_test_main.c5
-rwxr-xr-xtools/backup/hot-backup.py.in2
-rwxr-xr-xtools/buildbot/slaves/bb-openbsd/svnbuild.sh9
-rwxr-xr-xtools/buildbot/slaves/bb-openbsd/svncheck-bindings.sh6
-rwxr-xr-xtools/buildbot/slaves/bb-openbsd/svncheck.sh6
-rwxr-xr-xtools/buildbot/slaves/bb-openbsd/svnclean.sh14
-rw-r--r--tools/buildbot/slaves/xp-vc60-ia32/config.bat.tmpl44
-rw-r--r--tools/buildbot/slaves/xp-vc60-ia32/svnbuild.bat77
-rw-r--r--tools/buildbot/slaves/xp-vc60-ia32/svncheck.bat51
-rw-r--r--tools/buildbot/slaves/xp-vc60-ia32/svnclean.bat28
-rw-r--r--tools/buildbot/slaves/xp-vc60-ia32/svnlog.bat25
-rw-r--r--tools/client-side/bash_completion53
-rw-r--r--tools/client-side/svn-mergeinfo-normalizer/help-cmd.c2
-rw-r--r--tools/client-side/svn-mergeinfo-normalizer/mergeinfo-normalizer.h2
-rw-r--r--tools/client-side/svn-mergeinfo-normalizer/svn-mergeinfo-normalizer.c65
-rw-r--r--tools/client-side/svn-mergeinfo-normalizer/wc_mergeinfo.c4
-rwxr-xr-xtools/client-side/svn-viewspec.py50
-rw-r--r--tools/client-side/svnconflict/svnconflict.c102
-rwxr-xr-xtools/client-side/svnviewspec_test.py428
-rw-r--r--tools/dev/svnmover/svnmover.c4
-rw-r--r--tools/dev/svnraisetreeconflict/svnraisetreeconflict.c2
-rw-r--r--tools/dev/unix-build/Makefile.svn188
-rw-r--r--tools/dev/unix-build/README19
-rw-r--r--tools/dev/wc-ng/svn-wc-db-tester.c2
-rwxr-xr-xtools/dev/which-error.py2
-rw-r--r--tools/dist/README.backport36
-rwxr-xr-xtools/dist/backport.pl11
-rw-r--r--tools/dist/backport/status.py10
-rw-r--r--tools/dist/backport_tests.py22
-rw-r--r--tools/dist/backport_tests_data/backport_logsummary_colon.dump522
-rwxr-xr-xtools/dist/create-minor-release-branch.py298
-rwxr-xr-xtools/dist/edit-N-log-messages94
-rwxr-xr-xtools/dist/release.py421
-rw-r--r--tools/dist/templates/download.ezt6
-rw-r--r--tools/dist/templates/rc-news.ezt4
-rw-r--r--tools/dist/templates/rc-release-ann.ezt21
-rw-r--r--tools/dist/templates/stable-news.ezt6
-rw-r--r--tools/dist/templates/stable-release-ann.ezt21
-rwxr-xr-xtools/examples/svnlook.py2
-rwxr-xr-xtools/hook-scripts/commit-access-control.pl.in2
-rwxr-xr-xtools/hook-scripts/mailer/mailer.py22
-rwxr-xr-xtools/hook-scripts/svn2feed.py2
-rwxr-xr-xtools/hook-scripts/svnperms.py2
-rwxr-xr-xtools/server-side/fsfs-reshard.py2
-rw-r--r--tools/server-side/svnauthz.c62
-rwxr-xr-xtools/server-side/svnpubsub/svnwcsub.py2
-rw-r--r--win-tests.py2
317 files changed, 48020 insertions, 17181 deletions
diff --git a/CHANGES b/CHANGES
index 7c094e0..096923c 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,52 @@
+Version 1.11.0
+(24 Oct 2018, from /branches/1.11.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.11.0
+
+ User-visible changes:
+ - Major new features:
+ * Shelving is no longer based on patch files (experimental) (issue #3625)
+ * Checkpointing (experimental) (issue #3626)
+ * Viewspec output command (experimental) (issue #4753)
+
+ - Minor new features and improvements:
+ * Improvements to tree conflict resolution (issue #4694 #4766 ...)
+ * 'patch' can now read non-pretty-printed svn:mergeinfo diffs (r1822151)
+ * Better error when http:// URL is not a Subversion repository (r1825302)
+ * Add 'schedule' and 'depth' items to 'svn info --show-item' (r1827032)
+ * Allow the client cert password to be saved (r1836762)
+
+ - Client-side bugfixes:
+ * Fix a crash in a repo:WC summary diff of a local copy (r1835218)
+ * Fix double diff headers (r1836746)
+ * Tree conflict resolver: avoid endless scan in some cases (r1839662)
+
+ - Server-side bugfixes:
+ * svnadmin dump shouldn't canonicalize svn:date (issue #4767)
+ * 'svnadmin verify --keep-going --quiet' shows an error summary (r1837790)
+ * Let 'svnadmin recover' prune the rep-cache even if disabled (r1838813)
+
+ - Client-side and server-side bugfixes:
+ * Fix pattern-matching of top level path in listing with search (r1830599)
+ * Allow commands like 'svn ci --file X' to work when X is a FIFO (r1836306)
+
+ - Other tool improvements and bugfixes:
+ * tools/client-side/bash_completion: Add '--password-from-stdin' (r1820045)
+
+ Developer-visible changes:
+ - General:
+ * new tool: tools/dist/edit-N-log-messages (r1819207)
+ * tools/dev/unix-build/Makefile.svn: various fixes
+ * Expose the diff option 'pretty_print_mergeinfo' in APIs (r1822014)
+ * In 'revert' APIs, choose whether to delete schedule-add nodes (r1822534)
+
+ - Bindings:
+ * Fix Python binding fs.FileDiff behaviour with python-future (r1823802)
+ * Fix Python unit test, fs.SubversionFSTestCase, on Windows (r1824410)
+ * Bump minimum JDK version required for JavaHL to 1.8 (r1831895)
+ * Enable building against Java 10 (r1841180 et al)
+ * Fix a potential crash in JavaHL (issue #4764)
+
+
Version 1.10.2
(20 Jul 2018, from /branches/1.10.x)
http://svn.apache.org/repos/asf/subversion/tags/1.10.2
diff --git a/INSTALL b/INSTALL
index dcbf67c..928f619 100644
--- a/INSTALL
+++ b/INSTALL
@@ -3,7 +3,7 @@
A Quick Guide
======================================
-$LastChangedDate: 2017-12-25 04:00:08 +0000 (Mon, 25 Dec 2017) $
+$LastChangedDate: 2018-04-15 19:04:31 +0000 (Sun, 15 Apr 2018) $
Contents:
@@ -147,10 +147,11 @@ I. INTRODUCTION
for other languages, you need to have those languages
available at build time.
- * KDELibs, GNOME Keyring (OPTIONAL for client)
+ * KDE Framework 5, libsecret, GNOME Keyring (OPTIONAL for client)
Subversion contains optional support for storing passwords in
- KWallet (KDE 4) or GNOME Keyring.
+ KWallet via KDE Framework 5 libraries (preferred) or kdelibs4,
+ and GNOME Keyring via libsecret (preferred) or GNOME APIs.
* libmagic (OPTIONAL)
@@ -456,19 +457,22 @@ I. INTRODUCTION
and GNOME Keyring. pkg-config is needed to find D-Bus headers and library.
- 15. Qt 4 (Unix only, OPTIONAL)
+ 15. Qt 5 or Qt 4 (Unix only, OPTIONAL)
Qt is a cross-platform application framework. QtCore, QtDBus and QtGui
modules are required for support for KWallet. pkg-config is needed
to find Qt headers and libraries.
- 16. KDELibs 4 (Unix only, OPTIONAL)
+ 16. KDE 5 Framework libraries or KDELibs 4 (Unix only, OPTIONAL)
Subversion contains optional support for storing passwords in KWallet.
+ Subversion will look for KF5Wallet, KF5CoreAddons, KF5I18n APIs by default,
+ and needs kf5-config to find them. The KDELibs 4 api is also supported.
KDELibs contains core KDE libraries. Subversion uses libkdecore and libkdeui
libraries when support for KWallet is enabled. kde4-config is used to get
some necessary options. pkg-config, D-Bus and Qt 4 are also required.
+
If you want to build support for KWallet, then pass the '--with-kwallet'
option to `configure`. If KDE is installed in a non-standard prefix, then
use:
@@ -856,11 +860,7 @@ II. INSTALLATION
E.4 Building the Binaries
- To build the binaries either follow the instructions here or use
- build\win32\vc6-build.bat.in after editing its default paths to match
- yours and saving it as vc6-build.bat. The vc6-build.bat does a full build
- using all options so it requires Apache 2 source and the other optional
- components.
+ To build the binaries either follow these instructions.
Start in the SVN directory you created.
diff --git a/Makefile.in b/Makefile.in
index f4c6e61..8098371 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -218,7 +218,6 @@ COMPILE_SWIG_RB = $(LIBTOOL) $(LTFLAGS) --mode=compile $(SWIG_RB_COMPILE) $(CPPF
# special compilation for files destined for javahl (i.e. C++)
COMPILE_JAVAHL_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=compile $(COMPILE_CXX) $(LT_CFLAGS) $(JAVAHL_INCLUDES) -o $@ -c
COMPILE_JAVAHL_JAVAC = $(JAVAC) $(JAVAC_FLAGS)
-COMPILE_JAVAHL_JAVAH = $(JAVAH)
COMPILE_JAVAHL_COMPAT_JAVAC = $(JAVAC) $(JAVAC_COMPAT_FLAGS)
# On Mac OS X, export an env variable so that the tests can run without
@@ -393,7 +392,6 @@ JAVAC = @JAVAC@
JAVADOC = @JAVADOC@
JAVAC_FLAGS = @JAVAC_FLAGS@
JAVAC_COMPAT_FLAGS = @JAVAC_COMPAT_FLAGS@
-JAVAH = @JAVAH@
JAR = @JAR@
JAVA_CLASSPATH=$(abs_srcdir)/subversion/bindings/javahl/src:@JAVA_CLASSPATH@
@@ -494,8 +492,8 @@ revision-install:
install-static: @INSTALL_STATIC_RULES@
# JavaHL target aliases
-javahl: mkdir-init javahl-java javahl-javah javahl-callback-javah javahl-remote-javah javahl-types-javah javahl-util-javah javahl-lib @JAVAHL_TESTS_TARGET@ javahl-compat
-install-javahl: javahl install-javahl-java install-javahl-javah install-javahl-lib
+javahl: mkdir-init javahl-java javahl-callback-java javahl-remote-java javahl-types-java javahl-util-java javahl-lib @JAVAHL_TESTS_TARGET@ javahl-compat
+install-javahl: javahl install-javahl-java install-javahl-lib
javahl-compat: javahl-compat-java @JAVAHL_COMPAT_TESTS_TARGET@
clean-javahl:
diff --git a/build-outputs.mk b/build-outputs.mk
index 7948a51..b95b113 100644
--- a/build-outputs.mk
+++ b/build-outputs.mk
@@ -23,21 +23,21 @@ RA_SERF_LINK = ../../subversion/libsvn_ra_serf/libsvn_ra_serf-1.la ../../subvers
RA_SVN_DEPS = subversion/libsvn_ra_svn/libsvn_ra_svn-1.la subversion/libsvn_delta/libsvn_delta-1.la subversion/libsvn_subr/libsvn_subr-1.la
RA_SVN_LINK = ../../subversion/libsvn_ra_svn/libsvn_ra_svn-1.la ../../subversion/libsvn_delta/libsvn_delta-1.la ../../subversion/libsvn_subr/libsvn_subr-1.la
-BUILD_DIRS = subversion/tests/afl subversion/tests/cmdline subversion/tests/libsvn_subr subversion/tests/libsvn_repos subversion/tests/libsvn_fs_base subversion/tests/libsvn_client subversion/tests/libsvn_wc subversion/tests/libsvn_client/../libsvn_wc subversion/bindings/cxxhl subversion/bindings/cxxhl/tests tools/diff subversion/tests/libsvn_diff subversion/tests/libsvn_fs_fs subversion/tests/libsvn_fs subversion/tests/libsvn_fs_x tools/dev subversion/bindings/javahl/src/org/apache/subversion/javahl/callback subversion/bindings/javahl/classes subversion/bindings/javahl/include subversion/bindings/javahl/src/org/tigris/subversion/javahl subversion/bindings/javahl/tests/org/tigris/subversion/javahl subversion/bindings/javahl/src/org/apache/subversion/javahl subversion/bindings/javahl/src/org/apache/subversion/javahl/remote subversion/bindings/javahl/src/org/apache/subversion/javahl/types subversion/bindings/javahl/src/org/apache/subversion/javahl/util subversion/bindings/javahl/tests/org/apache/subversion/javahl googlemock googlemock/googletest/src googlemock/googlemock/src subversion/libsvn_auth_gnome_keyring subversion/libsvn_auth_kwallet subversion/libsvn_client subversion/libsvn_delta subversion/libsvn_diff subversion/libsvn_fs subversion/libsvn_fs_base subversion/libsvn_fs_base/bdb subversion/libsvn_fs_base/util subversion/libsvn_fs_fs subversion/libsvn_fs_util subversion/libsvn_fs_x subversion/libsvn_ra subversion/libsvn_ra_local subversion/libsvn_ra_serf subversion/libsvn_ra_svn subversion/libsvn_repos subversion/libsvn_subr subversion/libsvn_subr/lz4 subversion/bindings/swig/perl/libsvn_swig_perl subversion/bindings/swig/python/libsvn_swig_py subversion/bindings/swig/ruby/libsvn_swig_ruby subversion/tests subversion/libsvn_wc subversion/bindings/cxxhl/src subversion/bindings/cxxhl/src/aprwrap subversion/bindings/javahl/native subversion/bindings/javahl/native/jniwrapper subversion/po subversion/mod_authz_svn subversion/mod_dav_svn subversion/mod_dav_svn/reports subversion/mod_dav_svn/posts tools/server-side/mod_dontdothat subversion/tests/libsvn_ra_local subversion/tests/libsvn_ra subversion/tests/libsvn_delta subversion/svn tools/client-side/svn-mergeinfo-normalizer tools/server-side tools/dev/wc-ng subversion/svnadmin subversion/svnbench tools/client-side/svnconflict subversion/svndumpfilter subversion/svnfsfs subversion/svnlook tools/dev/svnmover subversion/svnmucc tools/dev/svnraisetreeconflict subversion/svnrdump subversion/svnserve subversion/svnsync subversion/svnversion subversion/bindings/swig subversion/tests/libsvn_wc/../../libsvn_subr subversion/bindings/swig/python subversion/bindings/swig/perl subversion/bindings/swig/ruby subversion/bindings/swig/proxy
+BUILD_DIRS = subversion/tests/afl subversion/tests/cmdline subversion/tests/libsvn_subr subversion/tests/libsvn_repos subversion/tests/libsvn_fs_base subversion/tests/libsvn_client subversion/tests/libsvn_wc subversion/tests/libsvn_client/../libsvn_wc subversion/bindings/cxxhl subversion/bindings/cxxhl/tests tools/diff subversion/tests/libsvn_diff subversion/tests/libsvn_fs_fs subversion/tests/libsvn_fs subversion/tests/libsvn_fs_x tools/dev subversion/bindings/javahl/src/org/apache/subversion/javahl/callback subversion/bindings/javahl/classes subversion/bindings/javahl/include subversion/bindings/javahl/src/org/tigris/subversion/javahl subversion/bindings/javahl/tests/org/tigris/subversion/javahl subversion/bindings/javahl/src/org/apache/subversion/javahl subversion/bindings/javahl/src/org/apache/subversion/javahl/remote subversion/bindings/javahl/tests/org/apache/subversion/javahl subversion/bindings/javahl/src/org/apache/subversion/javahl/types subversion/bindings/javahl/src/org/apache/subversion/javahl/util googlemock googlemock/googletest/src googlemock/googlemock/src subversion/libsvn_auth_gnome_keyring subversion/libsvn_auth_kwallet subversion/libsvn_client subversion/libsvn_delta subversion/libsvn_diff subversion/libsvn_fs subversion/libsvn_fs_base subversion/libsvn_fs_base/bdb subversion/libsvn_fs_base/util subversion/libsvn_fs_fs subversion/libsvn_fs_util subversion/libsvn_fs_x subversion/libsvn_ra subversion/libsvn_ra_local subversion/libsvn_ra_serf subversion/libsvn_ra_svn subversion/libsvn_repos subversion/libsvn_subr subversion/libsvn_subr/lz4 subversion/bindings/swig/perl/libsvn_swig_perl subversion/bindings/swig/python/libsvn_swig_py subversion/bindings/swig/ruby/libsvn_swig_ruby subversion/tests subversion/libsvn_wc subversion/bindings/cxxhl/src subversion/bindings/cxxhl/src/aprwrap subversion/bindings/javahl/native subversion/bindings/javahl/native/jniwrapper subversion/po subversion/mod_authz_svn subversion/mod_dav_svn subversion/mod_dav_svn/reports subversion/mod_dav_svn/posts tools/server-side/mod_dontdothat subversion/tests/libsvn_ra_local subversion/tests/libsvn_ra subversion/tests/libsvn_delta subversion/svn tools/client-side/svn-mergeinfo-normalizer tools/server-side tools/dev/wc-ng subversion/svnadmin subversion/svnbench tools/client-side/svnconflict subversion/svndumpfilter subversion/svnfsfs subversion/svnlook tools/dev/svnmover subversion/svnmucc tools/dev/svnraisetreeconflict subversion/svnrdump subversion/svnserve subversion/svnsync subversion/svnversion subversion/bindings/swig subversion/tests/libsvn_wc/../../libsvn_subr subversion/bindings/swig/python subversion/bindings/swig/perl subversion/bindings/swig/ruby subversion/bindings/swig/proxy
BDB_TEST_DEPS = subversion/tests/libsvn_fs_base/changes-test$(EXEEXT) subversion/tests/libsvn_fs_base/fs-base-test$(EXEEXT) subversion/tests/libsvn_fs_base/strings-reps-test$(EXEEXT)
BDB_TEST_PROGRAMS = subversion/tests/libsvn_fs_base/changes-test$(EXEEXT) subversion/tests/libsvn_fs_base/fs-base-test$(EXEEXT) subversion/tests/libsvn_fs_base/strings-reps-test$(EXEEXT)
-TEST_DEPS = subversion/tests/afl/afl-x509$(EXEEXT) subversion/tests/cmdline/atomic-ra-revprop-change$(EXEEXT) subversion/tests/libsvn_subr/auth-test$(EXEEXT) subversion/tests/libsvn_repos/authz-test$(EXEEXT) subversion/tests/libsvn_subr/bit-array-test$(EXEEXT) subversion/tests/libsvn_subr/cache-test$(EXEEXT) subversion/tests/libsvn_subr/checksum-test$(EXEEXT) subversion/tests/libsvn_client/client-test$(EXEEXT) subversion/tests/libsvn_subr/compat-test$(EXEEXT) subversion/tests/libsvn_subr/compress-test$(EXEEXT) subversion/tests/libsvn_subr/config-test$(EXEEXT) subversion/tests/libsvn_wc/conflict-data-test$(EXEEXT) subversion/tests/libsvn_client/conflicts-test$(EXEEXT) subversion/tests/libsvn_subr/crypto-test$(EXEEXT) subversion/tests/libsvn_wc/db-test$(EXEEXT) subversion/tests/libsvn_diff/diff-diff3-test$(EXEEXT) subversion/tests/libsvn_subr/dirent_uri-test$(EXEEXT) subversion/tests/libsvn_repos/dump-load-test$(EXEEXT) subversion/tests/libsvn_wc/entries-compat-test$(EXEEXT) subversion/tests/cmdline/entries-dump$(EXEEXT) subversion/tests/libsvn_subr/error-code-test$(EXEEXT) subversion/tests/libsvn_subr/error-test$(EXEEXT) subversion/tests/libsvn_fs_fs/fs-fs-pack-test$(EXEEXT) subversion/tests/libsvn_fs_fs/fs-fs-private-test$(EXEEXT) subversion/tests/libsvn_fs/fs-sequential-test$(EXEEXT) subversion/tests/libsvn_fs/fs-test$(EXEEXT) subversion/tests/libsvn_fs_x/fs-x-pack-test$(EXEEXT) subversion/tests/libsvn_subr/hashdump-test$(EXEEXT) subversion/tests/libsvn_subr/io-test$(EXEEXT) subversion/tests/cmdline/lock-helper$(EXEEXT) subversion/tests/libsvn_fs/locks-test$(EXEEXT) subversion/tests/libsvn_subr/mergeinfo-test$(EXEEXT) subversion/tests/libsvn_client/mtcc-test$(EXEEXT) subversion/tests/libsvn_wc/op-depth-test$(EXEEXT) subversion/tests/libsvn_subr/opt-test$(EXEEXT) subversion/tests/libsvn_subr/packed-data-test$(EXEEXT) subversion/tests/libsvn_diff/parse-diff-test$(EXEEXT) subversion/tests/libsvn_subr/path-test$(EXEEXT) subversion/tests/libsvn_subr/prefix-string-test$(EXEEXT) subversion/tests/libsvn_subr/priority-queue-test$(EXEEXT) subversion/tests/libsvn_wc/pristine-store-test$(EXEEXT) subversion/tests/libsvn_ra_local/ra-local-test$(EXEEXT) subversion/tests/libsvn_ra/ra-test$(EXEEXT) subversion/tests/libsvn_delta/random-test$(EXEEXT) subversion/tests/libsvn_repos/repos-test$(EXEEXT) subversion/tests/libsvn_subr/revision-test$(EXEEXT) subversion/tests/libsvn_subr/root-pools-test$(EXEEXT) subversion/tests/libsvn_subr/skel-test$(EXEEXT) subversion/tests/libsvn_subr/spillbuf-test$(EXEEXT) subversion/tests/libsvn_subr/sqlite-test$(EXEEXT) subversion/tests/libsvn_subr/stream-test$(EXEEXT) subversion/tests/libsvn_fs_x/string-table-test$(EXEEXT) subversion/tests/libsvn_subr/string-test$(EXEEXT) subversion/tests/libsvn_subr/subst_translate-test$(EXEEXT) tools/dev/wc-ng/svn-wc-db-tester$(EXEEXT) tools/server-side/svnauthz$(EXEEXT) tools/server-side/svnauthz-validate$(EXEEXT) subversion/tests/libsvn_delta/svndiff-stream-test$(EXEEXT) subversion/tests/libsvn_delta/svndiff-test$(EXEEXT) subversion/tests/libsvn_subr/time-test$(EXEEXT) subversion/tests/libsvn_subr/translate-test$(EXEEXT) subversion/tests/libsvn_subr/utf-test$(EXEEXT) subversion/tests/libsvn_delta/vdelta-test$(EXEEXT) subversion/tests/libsvn_wc/wc-incomplete-tester$(EXEEXT) subversion/tests/libsvn_wc/wc-lock-tester$(EXEEXT) subversion/tests/libsvn_wc/wc-queries-test$(EXEEXT) subversion/tests/libsvn_wc/wc-test$(EXEEXT) subversion/tests/libsvn_delta/window-test$(EXEEXT) subversion/tests/libsvn_subr/x509-test$(EXEEXT) subversion/tests/libsvn_subr/xml-test$(EXEEXT) subversion/tests/cmdline/authz_tests.py subversion/tests/cmdline/autoprop_tests.py subversion/tests/cmdline/basic_tests.py subversion/tests/cmdline/blame_tests.py subversion/tests/cmdline/cat_tests.py subversion/tests/cmdline/changelist_tests.py subversion/tests/cmdline/checkout_tests.py subversion/tests/cmdline/commit_tests.py subversion/tests/cmdline/copy_tests.py subversion/tests/cmdline/depth_tests.py subversion/tests/cmdline/diff_tests.py subversion/tests/cmdline/entries_tests.py subversion/tests/cmdline/export_tests.py subversion/tests/cmdline/externals_tests.py subversion/tests/cmdline/getopt_tests.py subversion/tests/cmdline/history_tests.py subversion/tests/cmdline/import_tests.py subversion/tests/cmdline/info_tests.py subversion/tests/cmdline/input_validation_tests.py subversion/tests/cmdline/iprop_authz_tests.py subversion/tests/cmdline/iprop_tests.py subversion/tests/cmdline/lock_tests.py subversion/tests/cmdline/log_tests.py subversion/tests/cmdline/merge_authz_tests.py subversion/tests/cmdline/merge_automatic_tests.py subversion/tests/cmdline/merge_reintegrate_tests.py subversion/tests/cmdline/merge_tests.py subversion/tests/cmdline/merge_tree_conflict_tests.py subversion/tests/cmdline/mergeinfo_tests.py subversion/tests/cmdline/mod_authz_svn_tests.py subversion/tests/cmdline/mod_dav_svn_tests.py subversion/tests/cmdline/move_tests.py subversion/tests/cmdline/patch_tests.py subversion/tests/cmdline/prop_tests.py subversion/tests/cmdline/redirect_tests.py subversion/tests/cmdline/relocate_tests.py subversion/tests/cmdline/resolve_tests.py subversion/tests/cmdline/revert_tests.py subversion/tests/cmdline/schedule_tests.py subversion/tests/cmdline/shelve_tests.py subversion/tests/cmdline/special_tests.py subversion/tests/cmdline/stat_tests.py subversion/tests/cmdline/svnadmin_tests.py subversion/tests/cmdline/svnauthz_tests.py subversion/tests/cmdline/svndumpfilter_tests.py subversion/tests/cmdline/svnfsfs_tests.py subversion/tests/cmdline/svnlook_tests.py subversion/tests/cmdline/svnmover_tests.py subversion/tests/cmdline/svnmucc_tests.py subversion/tests/cmdline/svnrdump_tests.py subversion/tests/cmdline/svnsync_authz_tests.py subversion/tests/cmdline/svnsync_tests.py subversion/tests/cmdline/svnversion_tests.py subversion/tests/cmdline/switch_tests.py subversion/tests/cmdline/trans_tests.py subversion/tests/cmdline/tree_conflict_tests.py subversion/tests/cmdline/update_tests.py subversion/tests/cmdline/upgrade_tests.py subversion/tests/cmdline/wc_tests.py
+TEST_DEPS = subversion/tests/afl/afl-svndiff$(EXEEXT) subversion/tests/afl/afl-x509$(EXEEXT) subversion/tests/cmdline/atomic-ra-revprop-change$(EXEEXT) subversion/tests/libsvn_subr/auth-test$(EXEEXT) subversion/tests/libsvn_repos/authz-test$(EXEEXT) subversion/tests/libsvn_subr/bit-array-test$(EXEEXT) subversion/tests/libsvn_subr/cache-test$(EXEEXT) subversion/tests/libsvn_subr/checksum-test$(EXEEXT) subversion/tests/libsvn_client/client-test$(EXEEXT) subversion/tests/libsvn_subr/compat-test$(EXEEXT) subversion/tests/libsvn_subr/compress-test$(EXEEXT) subversion/tests/libsvn_subr/config-test$(EXEEXT) subversion/tests/libsvn_wc/conflict-data-test$(EXEEXT) subversion/tests/libsvn_client/conflicts-test$(EXEEXT) subversion/tests/libsvn_subr/crypto-test$(EXEEXT) subversion/tests/libsvn_wc/db-test$(EXEEXT) subversion/tests/libsvn_diff/diff-diff3-test$(EXEEXT) subversion/tests/libsvn_subr/dirent_uri-test$(EXEEXT) subversion/tests/libsvn_repos/dump-load-test$(EXEEXT) subversion/tests/libsvn_wc/entries-compat-test$(EXEEXT) subversion/tests/cmdline/entries-dump$(EXEEXT) subversion/tests/libsvn_subr/error-code-test$(EXEEXT) subversion/tests/libsvn_subr/error-test$(EXEEXT) subversion/tests/libsvn_fs_fs/fs-fs-pack-test$(EXEEXT) subversion/tests/libsvn_fs_fs/fs-fs-private-test$(EXEEXT) subversion/tests/libsvn_fs/fs-sequential-test$(EXEEXT) subversion/tests/libsvn_fs/fs-test$(EXEEXT) subversion/tests/libsvn_fs_x/fs-x-pack-test$(EXEEXT) subversion/tests/libsvn_subr/hashdump-test$(EXEEXT) subversion/tests/libsvn_subr/io-test$(EXEEXT) subversion/tests/cmdline/lock-helper$(EXEEXT) subversion/tests/libsvn_fs/locks-test$(EXEEXT) subversion/tests/libsvn_subr/mergeinfo-test$(EXEEXT) subversion/tests/libsvn_client/mtcc-test$(EXEEXT) subversion/tests/libsvn_wc/op-depth-test$(EXEEXT) subversion/tests/libsvn_subr/opt-test$(EXEEXT) subversion/tests/libsvn_subr/packed-data-test$(EXEEXT) subversion/tests/libsvn_diff/parse-diff-test$(EXEEXT) subversion/tests/libsvn_subr/path-test$(EXEEXT) subversion/tests/libsvn_subr/prefix-string-test$(EXEEXT) subversion/tests/libsvn_subr/priority-queue-test$(EXEEXT) subversion/tests/libsvn_wc/pristine-store-test$(EXEEXT) subversion/tests/libsvn_ra_local/ra-local-test$(EXEEXT) subversion/tests/libsvn_ra/ra-test$(EXEEXT) subversion/tests/libsvn_delta/random-test$(EXEEXT) subversion/tests/libsvn_repos/repos-test$(EXEEXT) subversion/tests/libsvn_subr/revision-test$(EXEEXT) subversion/tests/libsvn_subr/root-pools-test$(EXEEXT) subversion/tests/libsvn_subr/skel-test$(EXEEXT) subversion/tests/libsvn_subr/spillbuf-test$(EXEEXT) subversion/tests/libsvn_subr/sqlite-test$(EXEEXT) subversion/tests/libsvn_subr/stream-test$(EXEEXT) subversion/tests/libsvn_fs_x/string-table-test$(EXEEXT) subversion/tests/libsvn_subr/string-test$(EXEEXT) subversion/tests/libsvn_subr/subst_translate-test$(EXEEXT) tools/dev/wc-ng/svn-wc-db-tester$(EXEEXT) tools/server-side/svnauthz$(EXEEXT) tools/server-side/svnauthz-validate$(EXEEXT) subversion/tests/libsvn_delta/svndiff-stream-test$(EXEEXT) subversion/tests/libsvn_delta/svndiff-test$(EXEEXT) subversion/tests/libsvn_subr/time-test$(EXEEXT) subversion/tests/libsvn_subr/translate-test$(EXEEXT) subversion/tests/libsvn_subr/utf-test$(EXEEXT) subversion/tests/libsvn_delta/vdelta-test$(EXEEXT) subversion/tests/libsvn_wc/wc-incomplete-tester$(EXEEXT) subversion/tests/libsvn_wc/wc-lock-tester$(EXEEXT) subversion/tests/libsvn_wc/wc-queries-test$(EXEEXT) subversion/tests/libsvn_wc/wc-test$(EXEEXT) subversion/tests/libsvn_delta/window-test$(EXEEXT) subversion/tests/libsvn_subr/x509-test$(EXEEXT) subversion/tests/libsvn_subr/xml-test$(EXEEXT) subversion/tests/cmdline/authz_tests.py subversion/tests/cmdline/autoprop_tests.py subversion/tests/cmdline/basic_tests.py subversion/tests/cmdline/blame_tests.py subversion/tests/cmdline/cat_tests.py subversion/tests/cmdline/changelist_tests.py subversion/tests/cmdline/checkout_tests.py subversion/tests/cmdline/commit_tests.py subversion/tests/cmdline/copy_tests.py subversion/tests/cmdline/dav_tests.py subversion/tests/cmdline/depth_tests.py subversion/tests/cmdline/diff_tests.py subversion/tests/cmdline/entries_tests.py subversion/tests/cmdline/export_tests.py subversion/tests/cmdline/externals_tests.py subversion/tests/cmdline/getopt_tests.py subversion/tests/cmdline/history_tests.py subversion/tests/cmdline/import_tests.py subversion/tests/cmdline/info_tests.py subversion/tests/cmdline/input_validation_tests.py subversion/tests/cmdline/iprop_authz_tests.py subversion/tests/cmdline/iprop_tests.py subversion/tests/cmdline/lock_tests.py subversion/tests/cmdline/log_tests.py subversion/tests/cmdline/merge_authz_tests.py subversion/tests/cmdline/merge_automatic_tests.py subversion/tests/cmdline/merge_reintegrate_tests.py subversion/tests/cmdline/merge_tests.py subversion/tests/cmdline/merge_tree_conflict_tests.py subversion/tests/cmdline/mergeinfo_tests.py subversion/tests/cmdline/mod_authz_svn_tests.py subversion/tests/cmdline/mod_dav_svn_tests.py subversion/tests/cmdline/move_tests.py subversion/tests/cmdline/patch_tests.py subversion/tests/cmdline/prop_tests.py subversion/tests/cmdline/redirect_tests.py subversion/tests/cmdline/relocate_tests.py subversion/tests/cmdline/resolve_tests.py subversion/tests/cmdline/revert_tests.py subversion/tests/cmdline/schedule_tests.py subversion/tests/cmdline/shelf_tests.py subversion/tests/cmdline/special_tests.py subversion/tests/cmdline/stat_tests.py subversion/tests/cmdline/svnadmin_tests.py subversion/tests/cmdline/svnauthz_tests.py subversion/tests/cmdline/svndumpfilter_tests.py subversion/tests/cmdline/svnfsfs_tests.py subversion/tests/cmdline/svnlook_tests.py subversion/tests/cmdline/svnmover_tests.py subversion/tests/cmdline/svnmucc_tests.py subversion/tests/cmdline/svnrdump_tests.py subversion/tests/cmdline/svnsync_authz_tests.py subversion/tests/cmdline/svnsync_tests.py subversion/tests/cmdline/svnversion_tests.py subversion/tests/cmdline/switch_tests.py subversion/tests/cmdline/trans_tests.py subversion/tests/cmdline/tree_conflict_tests.py subversion/tests/cmdline/update_tests.py subversion/tests/cmdline/upgrade_tests.py subversion/tests/cmdline/wc_tests.py
-TEST_PROGRAMS = subversion/tests/libsvn_subr/auth-test$(EXEEXT) subversion/tests/libsvn_repos/authz-test$(EXEEXT) subversion/tests/libsvn_subr/bit-array-test$(EXEEXT) subversion/tests/libsvn_subr/cache-test$(EXEEXT) subversion/tests/libsvn_subr/checksum-test$(EXEEXT) subversion/tests/libsvn_client/client-test$(EXEEXT) subversion/tests/libsvn_subr/compat-test$(EXEEXT) subversion/tests/libsvn_subr/compress-test$(EXEEXT) subversion/tests/libsvn_subr/config-test$(EXEEXT) subversion/tests/libsvn_wc/conflict-data-test$(EXEEXT) subversion/tests/libsvn_client/conflicts-test$(EXEEXT) subversion/tests/libsvn_subr/crypto-test$(EXEEXT) subversion/tests/libsvn_wc/db-test$(EXEEXT) subversion/tests/libsvn_diff/diff-diff3-test$(EXEEXT) subversion/tests/libsvn_subr/dirent_uri-test$(EXEEXT) subversion/tests/libsvn_repos/dump-load-test$(EXEEXT) subversion/tests/libsvn_wc/entries-compat-test$(EXEEXT) subversion/tests/libsvn_subr/error-code-test$(EXEEXT) subversion/tests/libsvn_subr/error-test$(EXEEXT) subversion/tests/libsvn_fs_fs/fs-fs-pack-test$(EXEEXT) subversion/tests/libsvn_fs_fs/fs-fs-private-test$(EXEEXT) subversion/tests/libsvn_fs/fs-sequential-test$(EXEEXT) subversion/tests/libsvn_fs/fs-test$(EXEEXT) subversion/tests/libsvn_fs_x/fs-x-pack-test$(EXEEXT) subversion/tests/libsvn_subr/hashdump-test$(EXEEXT) subversion/tests/libsvn_subr/io-test$(EXEEXT) subversion/tests/libsvn_fs/locks-test$(EXEEXT) subversion/tests/libsvn_subr/mergeinfo-test$(EXEEXT) subversion/tests/libsvn_client/mtcc-test$(EXEEXT) subversion/tests/libsvn_wc/op-depth-test$(EXEEXT) subversion/tests/libsvn_subr/opt-test$(EXEEXT) subversion/tests/libsvn_subr/packed-data-test$(EXEEXT) subversion/tests/libsvn_diff/parse-diff-test$(EXEEXT) subversion/tests/libsvn_subr/path-test$(EXEEXT) subversion/tests/libsvn_subr/prefix-string-test$(EXEEXT) subversion/tests/libsvn_subr/priority-queue-test$(EXEEXT) subversion/tests/libsvn_wc/pristine-store-test$(EXEEXT) subversion/tests/libsvn_ra_local/ra-local-test$(EXEEXT) subversion/tests/libsvn_ra/ra-test$(EXEEXT) subversion/tests/libsvn_delta/random-test$(EXEEXT) subversion/tests/libsvn_repos/repos-test$(EXEEXT) subversion/tests/libsvn_subr/revision-test$(EXEEXT) subversion/tests/libsvn_subr/root-pools-test$(EXEEXT) subversion/tests/libsvn_subr/skel-test$(EXEEXT) subversion/tests/libsvn_subr/spillbuf-test$(EXEEXT) subversion/tests/libsvn_subr/sqlite-test$(EXEEXT) subversion/tests/libsvn_subr/stream-test$(EXEEXT) subversion/tests/libsvn_fs_x/string-table-test$(EXEEXT) subversion/tests/libsvn_subr/string-test$(EXEEXT) subversion/tests/libsvn_subr/subst_translate-test$(EXEEXT) subversion/tests/libsvn_delta/svndiff-stream-test$(EXEEXT) subversion/tests/libsvn_subr/time-test$(EXEEXT) subversion/tests/libsvn_subr/translate-test$(EXEEXT) subversion/tests/libsvn_subr/utf-test$(EXEEXT) subversion/tests/libsvn_wc/wc-queries-test$(EXEEXT) subversion/tests/libsvn_wc/wc-test$(EXEEXT) subversion/tests/libsvn_delta/window-test$(EXEEXT) subversion/tests/libsvn_subr/x509-test$(EXEEXT) subversion/tests/libsvn_subr/xml-test$(EXEEXT) subversion/tests/cmdline/authz_tests.py subversion/tests/cmdline/autoprop_tests.py subversion/tests/cmdline/basic_tests.py subversion/tests/cmdline/blame_tests.py subversion/tests/cmdline/cat_tests.py subversion/tests/cmdline/changelist_tests.py subversion/tests/cmdline/checkout_tests.py subversion/tests/cmdline/commit_tests.py subversion/tests/cmdline/copy_tests.py subversion/tests/cmdline/depth_tests.py subversion/tests/cmdline/diff_tests.py subversion/tests/cmdline/entries_tests.py subversion/tests/cmdline/export_tests.py subversion/tests/cmdline/externals_tests.py subversion/tests/cmdline/getopt_tests.py subversion/tests/cmdline/history_tests.py subversion/tests/cmdline/import_tests.py subversion/tests/cmdline/info_tests.py subversion/tests/cmdline/input_validation_tests.py subversion/tests/cmdline/iprop_authz_tests.py subversion/tests/cmdline/iprop_tests.py subversion/tests/cmdline/lock_tests.py subversion/tests/cmdline/log_tests.py subversion/tests/cmdline/merge_authz_tests.py subversion/tests/cmdline/merge_automatic_tests.py subversion/tests/cmdline/merge_reintegrate_tests.py subversion/tests/cmdline/merge_tests.py subversion/tests/cmdline/merge_tree_conflict_tests.py subversion/tests/cmdline/mergeinfo_tests.py subversion/tests/cmdline/mod_authz_svn_tests.py subversion/tests/cmdline/mod_dav_svn_tests.py subversion/tests/cmdline/move_tests.py subversion/tests/cmdline/patch_tests.py subversion/tests/cmdline/prop_tests.py subversion/tests/cmdline/redirect_tests.py subversion/tests/cmdline/relocate_tests.py subversion/tests/cmdline/resolve_tests.py subversion/tests/cmdline/revert_tests.py subversion/tests/cmdline/schedule_tests.py subversion/tests/cmdline/shelve_tests.py subversion/tests/cmdline/special_tests.py subversion/tests/cmdline/stat_tests.py subversion/tests/cmdline/svnadmin_tests.py subversion/tests/cmdline/svnauthz_tests.py subversion/tests/cmdline/svndumpfilter_tests.py subversion/tests/cmdline/svnfsfs_tests.py subversion/tests/cmdline/svnlook_tests.py subversion/tests/cmdline/svnmover_tests.py subversion/tests/cmdline/svnmucc_tests.py subversion/tests/cmdline/svnrdump_tests.py subversion/tests/cmdline/svnsync_authz_tests.py subversion/tests/cmdline/svnsync_tests.py subversion/tests/cmdline/svnversion_tests.py subversion/tests/cmdline/switch_tests.py subversion/tests/cmdline/trans_tests.py subversion/tests/cmdline/tree_conflict_tests.py subversion/tests/cmdline/update_tests.py subversion/tests/cmdline/upgrade_tests.py subversion/tests/cmdline/wc_tests.py
+TEST_PROGRAMS = subversion/tests/libsvn_subr/auth-test$(EXEEXT) subversion/tests/libsvn_repos/authz-test$(EXEEXT) subversion/tests/libsvn_subr/bit-array-test$(EXEEXT) subversion/tests/libsvn_subr/cache-test$(EXEEXT) subversion/tests/libsvn_subr/checksum-test$(EXEEXT) subversion/tests/libsvn_client/client-test$(EXEEXT) subversion/tests/libsvn_subr/compat-test$(EXEEXT) subversion/tests/libsvn_subr/compress-test$(EXEEXT) subversion/tests/libsvn_subr/config-test$(EXEEXT) subversion/tests/libsvn_wc/conflict-data-test$(EXEEXT) subversion/tests/libsvn_client/conflicts-test$(EXEEXT) subversion/tests/libsvn_subr/crypto-test$(EXEEXT) subversion/tests/libsvn_wc/db-test$(EXEEXT) subversion/tests/libsvn_diff/diff-diff3-test$(EXEEXT) subversion/tests/libsvn_subr/dirent_uri-test$(EXEEXT) subversion/tests/libsvn_repos/dump-load-test$(EXEEXT) subversion/tests/libsvn_wc/entries-compat-test$(EXEEXT) subversion/tests/libsvn_subr/error-code-test$(EXEEXT) subversion/tests/libsvn_subr/error-test$(EXEEXT) subversion/tests/libsvn_fs_fs/fs-fs-pack-test$(EXEEXT) subversion/tests/libsvn_fs_fs/fs-fs-private-test$(EXEEXT) subversion/tests/libsvn_fs/fs-sequential-test$(EXEEXT) subversion/tests/libsvn_fs/fs-test$(EXEEXT) subversion/tests/libsvn_fs_x/fs-x-pack-test$(EXEEXT) subversion/tests/libsvn_subr/hashdump-test$(EXEEXT) subversion/tests/libsvn_subr/io-test$(EXEEXT) subversion/tests/libsvn_fs/locks-test$(EXEEXT) subversion/tests/libsvn_subr/mergeinfo-test$(EXEEXT) subversion/tests/libsvn_client/mtcc-test$(EXEEXT) subversion/tests/libsvn_wc/op-depth-test$(EXEEXT) subversion/tests/libsvn_subr/opt-test$(EXEEXT) subversion/tests/libsvn_subr/packed-data-test$(EXEEXT) subversion/tests/libsvn_diff/parse-diff-test$(EXEEXT) subversion/tests/libsvn_subr/path-test$(EXEEXT) subversion/tests/libsvn_subr/prefix-string-test$(EXEEXT) subversion/tests/libsvn_subr/priority-queue-test$(EXEEXT) subversion/tests/libsvn_wc/pristine-store-test$(EXEEXT) subversion/tests/libsvn_ra_local/ra-local-test$(EXEEXT) subversion/tests/libsvn_ra/ra-test$(EXEEXT) subversion/tests/libsvn_delta/random-test$(EXEEXT) subversion/tests/libsvn_repos/repos-test$(EXEEXT) subversion/tests/libsvn_subr/revision-test$(EXEEXT) subversion/tests/libsvn_subr/root-pools-test$(EXEEXT) subversion/tests/libsvn_subr/skel-test$(EXEEXT) subversion/tests/libsvn_subr/spillbuf-test$(EXEEXT) subversion/tests/libsvn_subr/sqlite-test$(EXEEXT) subversion/tests/libsvn_subr/stream-test$(EXEEXT) subversion/tests/libsvn_fs_x/string-table-test$(EXEEXT) subversion/tests/libsvn_subr/string-test$(EXEEXT) subversion/tests/libsvn_subr/subst_translate-test$(EXEEXT) subversion/tests/libsvn_delta/svndiff-stream-test$(EXEEXT) subversion/tests/libsvn_subr/time-test$(EXEEXT) subversion/tests/libsvn_subr/translate-test$(EXEEXT) subversion/tests/libsvn_subr/utf-test$(EXEEXT) subversion/tests/libsvn_wc/wc-queries-test$(EXEEXT) subversion/tests/libsvn_wc/wc-test$(EXEEXT) subversion/tests/libsvn_delta/window-test$(EXEEXT) subversion/tests/libsvn_subr/x509-test$(EXEEXT) subversion/tests/libsvn_subr/xml-test$(EXEEXT) subversion/tests/cmdline/authz_tests.py subversion/tests/cmdline/autoprop_tests.py subversion/tests/cmdline/basic_tests.py subversion/tests/cmdline/blame_tests.py subversion/tests/cmdline/cat_tests.py subversion/tests/cmdline/changelist_tests.py subversion/tests/cmdline/checkout_tests.py subversion/tests/cmdline/commit_tests.py subversion/tests/cmdline/copy_tests.py subversion/tests/cmdline/dav_tests.py subversion/tests/cmdline/depth_tests.py subversion/tests/cmdline/diff_tests.py subversion/tests/cmdline/entries_tests.py subversion/tests/cmdline/export_tests.py subversion/tests/cmdline/externals_tests.py subversion/tests/cmdline/getopt_tests.py subversion/tests/cmdline/history_tests.py subversion/tests/cmdline/import_tests.py subversion/tests/cmdline/info_tests.py subversion/tests/cmdline/input_validation_tests.py subversion/tests/cmdline/iprop_authz_tests.py subversion/tests/cmdline/iprop_tests.py subversion/tests/cmdline/lock_tests.py subversion/tests/cmdline/log_tests.py subversion/tests/cmdline/merge_authz_tests.py subversion/tests/cmdline/merge_automatic_tests.py subversion/tests/cmdline/merge_reintegrate_tests.py subversion/tests/cmdline/merge_tests.py subversion/tests/cmdline/merge_tree_conflict_tests.py subversion/tests/cmdline/mergeinfo_tests.py subversion/tests/cmdline/mod_authz_svn_tests.py subversion/tests/cmdline/mod_dav_svn_tests.py subversion/tests/cmdline/move_tests.py subversion/tests/cmdline/patch_tests.py subversion/tests/cmdline/prop_tests.py subversion/tests/cmdline/redirect_tests.py subversion/tests/cmdline/relocate_tests.py subversion/tests/cmdline/resolve_tests.py subversion/tests/cmdline/revert_tests.py subversion/tests/cmdline/schedule_tests.py subversion/tests/cmdline/shelf_tests.py subversion/tests/cmdline/special_tests.py subversion/tests/cmdline/stat_tests.py subversion/tests/cmdline/svnadmin_tests.py subversion/tests/cmdline/svnauthz_tests.py subversion/tests/cmdline/svndumpfilter_tests.py subversion/tests/cmdline/svnfsfs_tests.py subversion/tests/cmdline/svnlook_tests.py subversion/tests/cmdline/svnmover_tests.py subversion/tests/cmdline/svnmucc_tests.py subversion/tests/cmdline/svnrdump_tests.py subversion/tests/cmdline/svnsync_authz_tests.py subversion/tests/cmdline/svnsync_tests.py subversion/tests/cmdline/svnversion_tests.py subversion/tests/cmdline/switch_tests.py subversion/tests/cmdline/trans_tests.py subversion/tests/cmdline/tree_conflict_tests.py subversion/tests/cmdline/update_tests.py subversion/tests/cmdline/upgrade_tests.py subversion/tests/cmdline/wc_tests.py
-check-deps test-deps: subversion/tests/afl/afl-x509$(EXEEXT) subversion/tests/cmdline/atomic-ra-revprop-change$(EXEEXT) subversion/tests/cmdline/entries-dump$(EXEEXT) subversion/tests/cmdline/lock-helper$(EXEEXT) tools/dev/wc-ng/svn-wc-db-tester$(EXEEXT) tools/server-side/svnauthz$(EXEEXT) tools/server-side/svnauthz-validate$(EXEEXT) subversion/tests/libsvn_delta/svndiff-test$(EXEEXT) subversion/tests/libsvn_delta/vdelta-test$(EXEEXT) subversion/tests/libsvn_wc/wc-incomplete-tester$(EXEEXT) subversion/tests/libsvn_wc/wc-lock-tester$(EXEEXT)
+check-deps test-deps: subversion/tests/afl/afl-svndiff$(EXEEXT) subversion/tests/afl/afl-x509$(EXEEXT) subversion/tests/cmdline/atomic-ra-revprop-change$(EXEEXT) subversion/tests/cmdline/entries-dump$(EXEEXT) subversion/tests/cmdline/lock-helper$(EXEEXT) tools/dev/wc-ng/svn-wc-db-tester$(EXEEXT) tools/server-side/svnauthz$(EXEEXT) tools/server-side/svnauthz-validate$(EXEEXT) subversion/tests/libsvn_delta/svndiff-test$(EXEEXT) subversion/tests/libsvn_delta/vdelta-test$(EXEEXT) subversion/tests/libsvn_wc/wc-incomplete-tester$(EXEEXT) subversion/tests/libsvn_wc/wc-lock-tester$(EXEEXT)
MANPAGES = subversion/svn/svn.1 subversion/svnadmin/svnadmin.1 subversion/svndumpfilter/svndumpfilter.1 subversion/svnlook/svnlook.1 subversion/svnmucc/svnmucc.1 subversion/svnrdump/svnrdump.1 subversion/svnserve/svnserve.8 subversion/svnserve/svnserve.conf.5 subversion/svnsync/svnsync.1 subversion/svnversion/svnversion.1
-CLEAN_FILES = subversion/bindings/cxxhl/cxxhl-tests$(EXEEXT) subversion/svn/svn$(EXEEXT) subversion/svnadmin/svnadmin$(EXEEXT) subversion/svnbench/svnbench$(EXEEXT) subversion/svndumpfilter/svndumpfilter$(EXEEXT) subversion/svnfsfs/svnfsfs$(EXEEXT) subversion/svnlook/svnlook$(EXEEXT) subversion/svnmucc/svnmucc$(EXEEXT) subversion/svnrdump/svnrdump$(EXEEXT) subversion/svnserve/svnserve$(EXEEXT) subversion/svnsync/svnsync$(EXEEXT) subversion/svnversion/svnversion$(EXEEXT) subversion/tests/afl/afl-x509$(EXEEXT) subversion/tests/cmdline/atomic-ra-revprop-change$(EXEEXT) subversion/tests/cmdline/authz_tests.pyc subversion/tests/cmdline/autoprop_tests.pyc subversion/tests/cmdline/basic_tests.pyc subversion/tests/cmdline/blame_tests.pyc subversion/tests/cmdline/cat_tests.pyc subversion/tests/cmdline/changelist_tests.pyc subversion/tests/cmdline/checkout_tests.pyc subversion/tests/cmdline/commit_tests.pyc subversion/tests/cmdline/copy_tests.pyc subversion/tests/cmdline/depth_tests.pyc subversion/tests/cmdline/diff_tests.pyc subversion/tests/cmdline/entries-dump$(EXEEXT) subversion/tests/cmdline/entries_tests.pyc subversion/tests/cmdline/export_tests.pyc subversion/tests/cmdline/externals_tests.pyc subversion/tests/cmdline/getopt_tests.pyc subversion/tests/cmdline/history_tests.pyc subversion/tests/cmdline/import_tests.pyc subversion/tests/cmdline/info_tests.pyc subversion/tests/cmdline/input_validation_tests.pyc subversion/tests/cmdline/iprop_authz_tests.pyc subversion/tests/cmdline/iprop_tests.pyc subversion/tests/cmdline/lock-helper$(EXEEXT) subversion/tests/cmdline/lock_tests.pyc subversion/tests/cmdline/log_tests.pyc subversion/tests/cmdline/merge_authz_tests.pyc subversion/tests/cmdline/merge_automatic_tests.pyc subversion/tests/cmdline/merge_reintegrate_tests.pyc subversion/tests/cmdline/merge_tests.pyc subversion/tests/cmdline/merge_tree_conflict_tests.pyc subversion/tests/cmdline/mergeinfo_tests.pyc subversion/tests/cmdline/mod_authz_svn_tests.pyc subversion/tests/cmdline/mod_dav_svn_tests.pyc subversion/tests/cmdline/move_tests.pyc subversion/tests/cmdline/patch_tests.pyc subversion/tests/cmdline/prop_tests.pyc subversion/tests/cmdline/redirect_tests.pyc subversion/tests/cmdline/relocate_tests.pyc subversion/tests/cmdline/resolve_tests.pyc subversion/tests/cmdline/revert_tests.pyc subversion/tests/cmdline/schedule_tests.pyc subversion/tests/cmdline/shelve_tests.pyc subversion/tests/cmdline/special_tests.pyc subversion/tests/cmdline/stat_tests.pyc subversion/tests/cmdline/svnadmin_tests.pyc subversion/tests/cmdline/svnauthz_tests.pyc subversion/tests/cmdline/svndumpfilter_tests.pyc subversion/tests/cmdline/svnfsfs_tests.pyc subversion/tests/cmdline/svnlook_tests.pyc subversion/tests/cmdline/svnmover_tests.pyc subversion/tests/cmdline/svnmucc_tests.pyc subversion/tests/cmdline/svnrdump_tests.pyc subversion/tests/cmdline/svnsync_authz_tests.pyc subversion/tests/cmdline/svnsync_tests.pyc subversion/tests/cmdline/svnversion_tests.pyc subversion/tests/cmdline/switch_tests.pyc subversion/tests/cmdline/trans_tests.pyc subversion/tests/cmdline/tree_conflict_tests.pyc subversion/tests/cmdline/update_tests.pyc subversion/tests/cmdline/upgrade_tests.pyc subversion/tests/cmdline/wc_tests.pyc subversion/tests/libsvn_client/client-test$(EXEEXT) subversion/tests/libsvn_client/conflicts-test$(EXEEXT) subversion/tests/libsvn_client/mtcc-test$(EXEEXT) subversion/tests/libsvn_delta/random-test$(EXEEXT) subversion/tests/libsvn_delta/svndiff-stream-test$(EXEEXT) subversion/tests/libsvn_delta/svndiff-test$(EXEEXT) subversion/tests/libsvn_delta/vdelta-test$(EXEEXT) subversion/tests/libsvn_delta/window-test$(EXEEXT) subversion/tests/libsvn_diff/diff-diff3-test$(EXEEXT) subversion/tests/libsvn_diff/parse-diff-test$(EXEEXT) subversion/tests/libsvn_fs/fs-sequential-test$(EXEEXT) subversion/tests/libsvn_fs/fs-test$(EXEEXT) subversion/tests/libsvn_fs/locks-test$(EXEEXT) subversion/tests/libsvn_fs_base/changes-test$(EXEEXT) subversion/tests/libsvn_fs_base/fs-base-test$(EXEEXT) subversion/tests/libsvn_fs_base/strings-reps-test$(EXEEXT) subversion/tests/libsvn_fs_fs/fs-fs-fuzzy-test$(EXEEXT) subversion/tests/libsvn_fs_fs/fs-fs-pack-test$(EXEEXT) subversion/tests/libsvn_fs_fs/fs-fs-private-test$(EXEEXT) subversion/tests/libsvn_fs_x/fs-x-pack-test$(EXEEXT) subversion/tests/libsvn_fs_x/string-table-test$(EXEEXT) subversion/tests/libsvn_ra/ra-test$(EXEEXT) subversion/tests/libsvn_ra_local/ra-local-test$(EXEEXT) subversion/tests/libsvn_repos/authz-test$(EXEEXT) subversion/tests/libsvn_repos/dump-load-test$(EXEEXT) subversion/tests/libsvn_repos/repos-test$(EXEEXT) subversion/tests/libsvn_subr/auth-test$(EXEEXT) subversion/tests/libsvn_subr/bit-array-test$(EXEEXT) subversion/tests/libsvn_subr/cache-test$(EXEEXT) subversion/tests/libsvn_subr/checksum-test$(EXEEXT) subversion/tests/libsvn_subr/compat-test$(EXEEXT) subversion/tests/libsvn_subr/compress-test$(EXEEXT) subversion/tests/libsvn_subr/config-test$(EXEEXT) subversion/tests/libsvn_subr/crypto-test$(EXEEXT) subversion/tests/libsvn_subr/dirent_uri-test$(EXEEXT) subversion/tests/libsvn_subr/error-code-test$(EXEEXT) subversion/tests/libsvn_subr/error-test$(EXEEXT) subversion/tests/libsvn_subr/hashdump-test$(EXEEXT) subversion/tests/libsvn_subr/io-test$(EXEEXT) subversion/tests/libsvn_subr/mergeinfo-test$(EXEEXT) subversion/tests/libsvn_subr/opt-test$(EXEEXT) subversion/tests/libsvn_subr/packed-data-test$(EXEEXT) subversion/tests/libsvn_subr/path-test$(EXEEXT) subversion/tests/libsvn_subr/prefix-string-test$(EXEEXT) subversion/tests/libsvn_subr/priority-queue-test$(EXEEXT) subversion/tests/libsvn_subr/revision-test$(EXEEXT) subversion/tests/libsvn_subr/root-pools-test$(EXEEXT) subversion/tests/libsvn_subr/skel-test$(EXEEXT) subversion/tests/libsvn_subr/spillbuf-test$(EXEEXT) subversion/tests/libsvn_subr/sqlite-test$(EXEEXT) subversion/tests/libsvn_subr/stream-test$(EXEEXT) subversion/tests/libsvn_subr/string-test$(EXEEXT) subversion/tests/libsvn_subr/subst_translate-test$(EXEEXT) subversion/tests/libsvn_subr/time-test$(EXEEXT) subversion/tests/libsvn_subr/translate-test$(EXEEXT) subversion/tests/libsvn_subr/utf-test$(EXEEXT) subversion/tests/libsvn_subr/x509-test$(EXEEXT) subversion/tests/libsvn_subr/xml-test$(EXEEXT) subversion/tests/libsvn_wc/conflict-data-test$(EXEEXT) subversion/tests/libsvn_wc/db-test$(EXEEXT) subversion/tests/libsvn_wc/entries-compat-test$(EXEEXT) subversion/tests/libsvn_wc/op-depth-test$(EXEEXT) subversion/tests/libsvn_wc/pristine-store-test$(EXEEXT) subversion/tests/libsvn_wc/wc-incomplete-tester$(EXEEXT) subversion/tests/libsvn_wc/wc-lock-tester$(EXEEXT) subversion/tests/libsvn_wc/wc-queries-test$(EXEEXT) subversion/tests/libsvn_wc/wc-test$(EXEEXT) tools/client-side/svn-mergeinfo-normalizer/svn-mergeinfo-normalizer$(EXEEXT) tools/client-side/svnconflict/svnconflict$(EXEEXT) tools/dev/fsfs-access-map$(EXEEXT) tools/dev/svnmover/svnmover$(EXEEXT) tools/dev/svnraisetreeconflict/svnraisetreeconflict$(EXEEXT) tools/dev/wc-ng/svn-wc-db-tester$(EXEEXT) tools/dev/x509-parser$(EXEEXT) tools/diff/diff$(EXEEXT) tools/diff/diff3$(EXEEXT) tools/diff/diff4$(EXEEXT) tools/server-side/svn-populate-node-origins-index$(EXEEXT) tools/server-side/svnauthz$(EXEEXT) tools/server-side/svnauthz-validate$(EXEEXT)
+CLEAN_FILES = subversion/bindings/cxxhl/cxxhl-tests$(EXEEXT) subversion/svn/svn$(EXEEXT) subversion/svnadmin/svnadmin$(EXEEXT) subversion/svnbench/svnbench$(EXEEXT) subversion/svndumpfilter/svndumpfilter$(EXEEXT) subversion/svnfsfs/svnfsfs$(EXEEXT) subversion/svnlook/svnlook$(EXEEXT) subversion/svnmucc/svnmucc$(EXEEXT) subversion/svnrdump/svnrdump$(EXEEXT) subversion/svnserve/svnserve$(EXEEXT) subversion/svnsync/svnsync$(EXEEXT) subversion/svnversion/svnversion$(EXEEXT) subversion/tests/afl/afl-svndiff$(EXEEXT) subversion/tests/afl/afl-x509$(EXEEXT) subversion/tests/cmdline/atomic-ra-revprop-change$(EXEEXT) subversion/tests/cmdline/authz_tests.pyc subversion/tests/cmdline/autoprop_tests.pyc subversion/tests/cmdline/basic_tests.pyc subversion/tests/cmdline/blame_tests.pyc subversion/tests/cmdline/cat_tests.pyc subversion/tests/cmdline/changelist_tests.pyc subversion/tests/cmdline/checkout_tests.pyc subversion/tests/cmdline/commit_tests.pyc subversion/tests/cmdline/copy_tests.pyc subversion/tests/cmdline/dav_tests.pyc subversion/tests/cmdline/depth_tests.pyc subversion/tests/cmdline/diff_tests.pyc subversion/tests/cmdline/entries-dump$(EXEEXT) subversion/tests/cmdline/entries_tests.pyc subversion/tests/cmdline/export_tests.pyc subversion/tests/cmdline/externals_tests.pyc subversion/tests/cmdline/getopt_tests.pyc subversion/tests/cmdline/history_tests.pyc subversion/tests/cmdline/import_tests.pyc subversion/tests/cmdline/info_tests.pyc subversion/tests/cmdline/input_validation_tests.pyc subversion/tests/cmdline/iprop_authz_tests.pyc subversion/tests/cmdline/iprop_tests.pyc subversion/tests/cmdline/lock-helper$(EXEEXT) subversion/tests/cmdline/lock_tests.pyc subversion/tests/cmdline/log_tests.pyc subversion/tests/cmdline/merge_authz_tests.pyc subversion/tests/cmdline/merge_automatic_tests.pyc subversion/tests/cmdline/merge_reintegrate_tests.pyc subversion/tests/cmdline/merge_tests.pyc subversion/tests/cmdline/merge_tree_conflict_tests.pyc subversion/tests/cmdline/mergeinfo_tests.pyc subversion/tests/cmdline/mod_authz_svn_tests.pyc subversion/tests/cmdline/mod_dav_svn_tests.pyc subversion/tests/cmdline/move_tests.pyc subversion/tests/cmdline/patch_tests.pyc subversion/tests/cmdline/prop_tests.pyc subversion/tests/cmdline/redirect_tests.pyc subversion/tests/cmdline/relocate_tests.pyc subversion/tests/cmdline/resolve_tests.pyc subversion/tests/cmdline/revert_tests.pyc subversion/tests/cmdline/schedule_tests.pyc subversion/tests/cmdline/shelf_tests.pyc subversion/tests/cmdline/special_tests.pyc subversion/tests/cmdline/stat_tests.pyc subversion/tests/cmdline/svnadmin_tests.pyc subversion/tests/cmdline/svnauthz_tests.pyc subversion/tests/cmdline/svndumpfilter_tests.pyc subversion/tests/cmdline/svnfsfs_tests.pyc subversion/tests/cmdline/svnlook_tests.pyc subversion/tests/cmdline/svnmover_tests.pyc subversion/tests/cmdline/svnmucc_tests.pyc subversion/tests/cmdline/svnrdump_tests.pyc subversion/tests/cmdline/svnsync_authz_tests.pyc subversion/tests/cmdline/svnsync_tests.pyc subversion/tests/cmdline/svnversion_tests.pyc subversion/tests/cmdline/switch_tests.pyc subversion/tests/cmdline/trans_tests.pyc subversion/tests/cmdline/tree_conflict_tests.pyc subversion/tests/cmdline/update_tests.pyc subversion/tests/cmdline/upgrade_tests.pyc subversion/tests/cmdline/wc_tests.pyc subversion/tests/libsvn_client/client-test$(EXEEXT) subversion/tests/libsvn_client/conflicts-test$(EXEEXT) subversion/tests/libsvn_client/mtcc-test$(EXEEXT) subversion/tests/libsvn_delta/random-test$(EXEEXT) subversion/tests/libsvn_delta/svndiff-stream-test$(EXEEXT) subversion/tests/libsvn_delta/svndiff-test$(EXEEXT) subversion/tests/libsvn_delta/vdelta-test$(EXEEXT) subversion/tests/libsvn_delta/window-test$(EXEEXT) subversion/tests/libsvn_diff/diff-diff3-test$(EXEEXT) subversion/tests/libsvn_diff/parse-diff-test$(EXEEXT) subversion/tests/libsvn_fs/fs-sequential-test$(EXEEXT) subversion/tests/libsvn_fs/fs-test$(EXEEXT) subversion/tests/libsvn_fs/locks-test$(EXEEXT) subversion/tests/libsvn_fs_base/changes-test$(EXEEXT) subversion/tests/libsvn_fs_base/fs-base-test$(EXEEXT) subversion/tests/libsvn_fs_base/strings-reps-test$(EXEEXT) subversion/tests/libsvn_fs_fs/fs-fs-fuzzy-test$(EXEEXT) subversion/tests/libsvn_fs_fs/fs-fs-pack-test$(EXEEXT) subversion/tests/libsvn_fs_fs/fs-fs-private-test$(EXEEXT) subversion/tests/libsvn_fs_x/fs-x-pack-test$(EXEEXT) subversion/tests/libsvn_fs_x/string-table-test$(EXEEXT) subversion/tests/libsvn_ra/ra-test$(EXEEXT) subversion/tests/libsvn_ra_local/ra-local-test$(EXEEXT) subversion/tests/libsvn_repos/authz-test$(EXEEXT) subversion/tests/libsvn_repos/dump-load-test$(EXEEXT) subversion/tests/libsvn_repos/repos-test$(EXEEXT) subversion/tests/libsvn_subr/auth-test$(EXEEXT) subversion/tests/libsvn_subr/bit-array-test$(EXEEXT) subversion/tests/libsvn_subr/cache-test$(EXEEXT) subversion/tests/libsvn_subr/checksum-test$(EXEEXT) subversion/tests/libsvn_subr/compat-test$(EXEEXT) subversion/tests/libsvn_subr/compress-test$(EXEEXT) subversion/tests/libsvn_subr/config-test$(EXEEXT) subversion/tests/libsvn_subr/crypto-test$(EXEEXT) subversion/tests/libsvn_subr/dirent_uri-test$(EXEEXT) subversion/tests/libsvn_subr/error-code-test$(EXEEXT) subversion/tests/libsvn_subr/error-test$(EXEEXT) subversion/tests/libsvn_subr/hashdump-test$(EXEEXT) subversion/tests/libsvn_subr/io-test$(EXEEXT) subversion/tests/libsvn_subr/mergeinfo-test$(EXEEXT) subversion/tests/libsvn_subr/opt-test$(EXEEXT) subversion/tests/libsvn_subr/packed-data-test$(EXEEXT) subversion/tests/libsvn_subr/path-test$(EXEEXT) subversion/tests/libsvn_subr/prefix-string-test$(EXEEXT) subversion/tests/libsvn_subr/priority-queue-test$(EXEEXT) subversion/tests/libsvn_subr/revision-test$(EXEEXT) subversion/tests/libsvn_subr/root-pools-test$(EXEEXT) subversion/tests/libsvn_subr/skel-test$(EXEEXT) subversion/tests/libsvn_subr/spillbuf-test$(EXEEXT) subversion/tests/libsvn_subr/sqlite-test$(EXEEXT) subversion/tests/libsvn_subr/stream-test$(EXEEXT) subversion/tests/libsvn_subr/string-test$(EXEEXT) subversion/tests/libsvn_subr/subst_translate-test$(EXEEXT) subversion/tests/libsvn_subr/time-test$(EXEEXT) subversion/tests/libsvn_subr/translate-test$(EXEEXT) subversion/tests/libsvn_subr/utf-test$(EXEEXT) subversion/tests/libsvn_subr/x509-test$(EXEEXT) subversion/tests/libsvn_subr/xml-test$(EXEEXT) subversion/tests/libsvn_wc/conflict-data-test$(EXEEXT) subversion/tests/libsvn_wc/db-test$(EXEEXT) subversion/tests/libsvn_wc/entries-compat-test$(EXEEXT) subversion/tests/libsvn_wc/op-depth-test$(EXEEXT) subversion/tests/libsvn_wc/pristine-store-test$(EXEEXT) subversion/tests/libsvn_wc/wc-incomplete-tester$(EXEEXT) subversion/tests/libsvn_wc/wc-lock-tester$(EXEEXT) subversion/tests/libsvn_wc/wc-queries-test$(EXEEXT) subversion/tests/libsvn_wc/wc-test$(EXEEXT) tools/client-side/svn-mergeinfo-normalizer/svn-mergeinfo-normalizer$(EXEEXT) tools/client-side/svnconflict/svnconflict$(EXEEXT) tools/dev/fsfs-access-map$(EXEEXT) tools/dev/svnmover/svnmover$(EXEEXT) tools/dev/svnraisetreeconflict/svnraisetreeconflict$(EXEEXT) tools/dev/wc-ng/svn-wc-db-tester$(EXEEXT) tools/dev/x509-parser$(EXEEXT) tools/diff/diff$(EXEEXT) tools/diff/diff3$(EXEEXT) tools/diff/diff4$(EXEEXT) tools/server-side/svn-populate-node-origins-index$(EXEEXT) tools/server-side/svnauthz$(EXEEXT) tools/server-side/svnauthz-validate$(EXEEXT)
EXTRACLEAN_FILES = subversion/libsvn_fs_fs/rep-cache-db.h subversion/libsvn_fs_x/rep-cache-db.h subversion/libsvn_subr/internal_statements.h subversion/libsvn_wc/wc-queries.h subversion/tests/libsvn_wc/wc-test-queries.h \
$(abs_builddir)/subversion/libsvn_subr/errorcode.inc \
$(abs_builddir)/subversion/libsvn_subr/config_keys.inc \
@@ -93,6 +93,12 @@ autogen-swig: autogen-swig-rb
# Section 5: Individual target build rules
########################################
+afl_svndiff_PATH = subversion/tests/afl
+afl_svndiff_DEPS = subversion/tests/afl/afl-svndiff.lo subversion/libsvn_delta/libsvn_delta-1.la subversion/libsvn_subr/libsvn_subr-1.la
+afl_svndiff_OBJECTS = afl-svndiff.lo
+subversion/tests/afl/afl-svndiff$(EXEEXT): $(afl_svndiff_DEPS)
+ cd subversion/tests/afl && $(LINK) $(afl_svndiff_LDFLAGS) -o afl-svndiff$(EXEEXT) $(afl_svndiff_OBJECTS) ../../../subversion/libsvn_delta/libsvn_delta-1.la ../../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APR_LIBS) $(LIBS)
+
afl_x509_PATH = subversion/tests/afl
afl_x509_DEPS = subversion/tests/afl/afl-x509.lo subversion/libsvn_subr/libsvn_subr-1.la
afl_x509_OBJECTS = afl-x509.lo
@@ -315,24 +321,23 @@ io_test_OBJECTS = io-test.lo
subversion/tests/libsvn_subr/io-test$(EXEEXT): $(io_test_DEPS)
cd subversion/tests/libsvn_subr && $(LINK) $(io_test_LDFLAGS) -o io-test$(EXEEXT) $(io_test_OBJECTS) ../../../subversion/tests/libsvn_test-1.la ../../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APRUTIL_LIBS) $(SVN_APR_LIBS) $(LIBS)
-javahl_callback_javah_PATH = subversion/bindings/javahl/include
-javahl_callback_javah_HEADERS = subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_AuthnCallback.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_BlameCallback.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_ChangelistCallback.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_ClientNotifyCallback.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_CommitCallback.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_CommitMessageCallback.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_ConfigEvent.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_ConflictResolverCallback.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_DiffSummaryCallback.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_ImportFilterCallback.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_InfoCallback.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_InheritedProplistCallback.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_ListCallback.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_ListItemCallback.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_LogMessageCallback.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_PatchCallback.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_ProgressCallback.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_ProplistCallback.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_RemoteFileRevisionsCallback.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_RemoteLocationSegmentsCallback.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_RemoteStatus.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_ReposFreezeAction.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_ReposNotifyCallback.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_ReposVerifyCallback.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_StatusCallback.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_TunnelAgent.h subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_UserPasswordCallback.h
-javahl_callback_javah_OBJECTS =
-javahl_callback_javah_DEPS = $(javahl_callback_javah_HEADERS) $(javahl_callback_javah_OBJECTS) $(javahl_java_DEPS)
-javahl-callback-javah: $(javahl_callback_javah_DEPS)
-javahl_callback_javah_CLASS_FILENAMES = subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/AuthnCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/BlameCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ChangelistCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ClientNotifyCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/CommitCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/CommitMessageCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ConfigEvent.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ConflictResolverCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/DiffSummaryCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ImportFilterCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/InfoCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/InheritedProplistCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ListCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ListItemCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/LogMessageCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/PatchCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ProgressCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ProplistCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/RemoteFileRevisionsCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/RemoteLocationSegmentsCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/RemoteStatus.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ReposFreezeAction.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ReposNotifyCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ReposVerifyCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/StatusCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/TunnelAgent.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/UserPasswordCallback.class
-javahl_callback_javah_CLASSES = org.apache.subversion.javahl.callback.AuthnCallback org.apache.subversion.javahl.callback.BlameCallback org.apache.subversion.javahl.callback.ChangelistCallback org.apache.subversion.javahl.callback.ClientNotifyCallback org.apache.subversion.javahl.callback.CommitCallback org.apache.subversion.javahl.callback.CommitMessageCallback org.apache.subversion.javahl.callback.ConfigEvent org.apache.subversion.javahl.callback.ConflictResolverCallback org.apache.subversion.javahl.callback.DiffSummaryCallback org.apache.subversion.javahl.callback.ImportFilterCallback org.apache.subversion.javahl.callback.InfoCallback org.apache.subversion.javahl.callback.InheritedProplistCallback org.apache.subversion.javahl.callback.ListCallback org.apache.subversion.javahl.callback.ListItemCallback org.apache.subversion.javahl.callback.LogMessageCallback org.apache.subversion.javahl.callback.PatchCallback org.apache.subversion.javahl.callback.ProgressCallback org.apache.subversion.javahl.callback.ProplistCallback org.apache.subversion.javahl.callback.RemoteFileRevisionsCallback org.apache.subversion.javahl.callback.RemoteLocationSegmentsCallback org.apache.subversion.javahl.callback.RemoteStatus org.apache.subversion.javahl.callback.ReposFreezeAction org.apache.subversion.javahl.callback.ReposNotifyCallback org.apache.subversion.javahl.callback.ReposVerifyCallback org.apache.subversion.javahl.callback.StatusCallback org.apache.subversion.javahl.callback.TunnelAgent org.apache.subversion.javahl.callback.UserPasswordCallback
-$(javahl_callback_javah_HEADERS): $(javahl_callback_javah_CLASS_FILENAMES)
- $(COMPILE_JAVAHL_JAVAH) -force -d subversion/bindings/javahl/include -classpath subversion/bindings/javahl/classes:$(javahl_callback_javah_CLASSPATH) $(javahl_callback_javah_CLASSES)
+javahl_callback_java_PATH = subversion/bindings/javahl/classes
+javahl_callback_java_HEADERS = subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_UserPasswordCallback.h
+javahl_callback_java_OBJECTS = subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/AuthnCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/BlameCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ChangelistCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ClientNotifyCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/CommitCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/CommitMessageCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ConfigEvent.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ConflictResolverCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/DiffSummaryCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ImportFilterCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/InfoCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/InheritedProplistCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ListCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ListItemCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/LogMessageCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/PatchCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ProgressCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ProplistCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/RemoteFileRevisionsCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/RemoteLocationSegmentsCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/RemoteStatus.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ReposFreezeAction.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ReposNotifyCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ReposVerifyCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/StatusCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/TunnelAgent.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/UserPasswordCallback.class
+javahl_callback_java_DEPS = $(javahl_callback_java_HEADERS) $(javahl_callback_java_OBJECTS)
+javahl-callback-java: $(javahl_callback_java_DEPS)
+javahl_callback_java_SRC = $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/AuthnCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/BlameCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ChangelistCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ClientNotifyCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/CommitCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/CommitMessageCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ConfigEvent.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ConflictResolverCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/DiffSummaryCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ImportFilterCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/InfoCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/InheritedProplistCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ListCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ListItemCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/LogMessageCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/PatchCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ProgressCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ProplistCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/RemoteFileRevisionsCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/RemoteLocationSegmentsCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/RemoteStatus.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ReposFreezeAction.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ReposNotifyCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ReposVerifyCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/StatusCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/TunnelAgent.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/UserPasswordCallback.java
+$(javahl_callback_java_HEADERS) $(javahl_callback_java_OBJECTS): $(javahl_callback_java_SRC)
+ $(COMPILE_JAVAHL_JAVAC) -h subversion/bindings/javahl/include -d subversion/bindings/javahl/classes -classpath subversion/bindings/javahl/classes:$(javahl_callback_java_CLASSPATH) $(javahl_callback_java_SRC)
javahl_compat_java_PATH = subversion/bindings/javahl/classes
javahl_compat_java_HEADERS =
javahl_compat_java_OBJECTS = subversion/bindings/javahl/classes/org/tigris/subversion/javahl/BlameCallback.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/BlameCallback2.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/BlameCallback3.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/BlameCallbackImpl.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/ChangePath.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/ChangelistCallback.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/ClientException.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/CommitItem.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/CommitItemStateFlags.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/CommitMessage.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/ConflictDescriptor.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/ConflictResolverCallback.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/ConflictResult.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/ConflictVersion.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/CopySource.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/Depth.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/DiffSummary.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/DiffSummaryReceiver.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/DirEntry.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/ErrorCodes.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/Info.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/Info2.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/InfoCallback.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/InputInterface.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/ListCallback.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/Lock.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/LockStatus.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/LogDate.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/LogMessage.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/LogMessageCallback.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/Mergeinfo.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/MergeinfoLogKind.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/NativeException.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/NodeKind.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/Notify.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/Notify2.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/NotifyAction.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/NotifyInformation.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/NotifyStatus.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/Operation.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/OutputInterface.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/Path.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/ProgressEvent.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/ProgressListener.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/PromptUserPassword.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/PromptUserPassword2.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/PromptUserPassword3.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/PropertyData.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/ProplistCallback.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/ProplistCallbackImpl.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/Revision.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/RevisionKind.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/RevisionRange.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/SVNAdmin.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/SVNClient.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/SVNClientInterface.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/SVNClientLogLevel.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/SVNClientSynchronized.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/SVNInputStream.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/SVNOutputStream.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/ScheduleKind.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/Status.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/StatusCallback.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/StatusKind.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/SubversionException.class subversion/bindings/javahl/classes/org/tigris/subversion/javahl/Version.class
-javahl_compat_java_DEPS = $(javahl_compat_java_HEADERS) $(javahl_compat_java_OBJECTS) $(javahl_java_DEPS)
+javahl_compat_java_DEPS = $(javahl_compat_java_HEADERS) $(javahl_compat_java_OBJECTS) $(javahl_callback_java_DEPS) $(javahl_remote_java_DEPS) $(javahl_types_java_DEPS) $(javahl_util_java_DEPS) $(javahl_java_DEPS)
javahl-compat-java: $(javahl_compat_java_DEPS)
javahl_compat_java_SRC = $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/BlameCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/BlameCallback2.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/BlameCallback3.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/BlameCallbackImpl.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ChangePath.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ChangelistCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ClientException.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/CommitItem.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/CommitItemStateFlags.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/CommitMessage.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ConflictDescriptor.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ConflictResolverCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ConflictResult.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ConflictVersion.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/CopySource.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Depth.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/DiffSummary.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/DiffSummaryReceiver.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/DirEntry.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ErrorCodes.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Info.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Info2.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/InfoCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/InputInterface.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ListCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Lock.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/LockStatus.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/LogDate.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/LogMessage.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/LogMessageCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Mergeinfo.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/MergeinfoLogKind.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/NativeException.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/NodeKind.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Notify.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Notify2.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/NotifyAction.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/NotifyInformation.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/NotifyStatus.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Operation.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/OutputInterface.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Path.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ProgressEvent.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ProgressListener.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/PromptUserPassword.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/PromptUserPassword2.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/PromptUserPassword3.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/PropertyData.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ProplistCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ProplistCallbackImpl.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Revision.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/RevisionKind.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/RevisionRange.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNAdmin.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClient.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClientInterface.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClientLogLevel.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClientSynchronized.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNInputStream.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNOutputStream.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ScheduleKind.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Status.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/StatusCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/StatusKind.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SubversionException.java $(abs_srcdir)/subversion/bindings/javahl/src/org/tigris/subversion/javahl/Version.java
-$(javahl_compat_java_OBJECTS): $(javahl_compat_java_SRC)
+$(javahl_compat_java_HEADERS) $(javahl_compat_java_OBJECTS): $(javahl_compat_java_SRC)
$(COMPILE_JAVAHL_COMPAT_JAVAC) -d subversion/bindings/javahl/classes -classpath subversion/bindings/javahl/classes:$(javahl_compat_java_CLASSPATH) $(javahl_compat_java_SRC)
@@ -342,72 +347,58 @@ javahl_compat_tests_OBJECTS = subversion/bindings/javahl/classes/org/tigris/subv
javahl_compat_tests_DEPS = $(javahl_compat_tests_HEADERS) $(javahl_compat_tests_OBJECTS) $(javahl_compat_java_DEPS)
javahl-compat-tests: $(javahl_compat_tests_DEPS)
javahl_compat_tests_SRC = $(abs_srcdir)/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java $(abs_srcdir)/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/RunTests.java $(abs_srcdir)/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/SVNAdminTests.java $(abs_srcdir)/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/SVNTests.java $(abs_srcdir)/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/WC.java
-$(javahl_compat_tests_OBJECTS): $(javahl_compat_tests_SRC)
+$(javahl_compat_tests_HEADERS) $(javahl_compat_tests_OBJECTS): $(javahl_compat_tests_SRC)
$(COMPILE_JAVAHL_COMPAT_JAVAC) -d subversion/bindings/javahl/classes -classpath subversion/bindings/javahl/classes:$(javahl_compat_tests_CLASSPATH) $(javahl_compat_tests_SRC)
javahl_java_PATH = subversion/bindings/javahl/classes
-javahl_java_HEADERS =
-javahl_java_OBJECTS = subversion/bindings/javahl/classes/org/apache/subversion/javahl/ClientException.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ClientNotifyInformation.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/CommitInfo.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/CommitItem.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/CommitItemStateFlags.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ConflictDescriptor.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ConflictResult.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/DiffSummary.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNClient.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNConfig.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNEditor.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNRemote.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNReporter.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNRepos.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/JNIError.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/JNIObject.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/NativeException.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/NativeResources.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/OperationContext.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ProgressEvent.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ReposNotifyInformation.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/SVNClient.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/SVNRepos.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/SVNUtil.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/SubversionException.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/AuthnCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/BlameCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ChangelistCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ClientNotifyCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/CommitCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/CommitMessageCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ConfigEvent.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ConflictResolverCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/DiffSummaryCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ImportFilterCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/InfoCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/InheritedProplistCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ListCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ListItemCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/LogMessageCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/PatchCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ProgressCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ProplistCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/RemoteFileRevisionsCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/RemoteLocationSegmentsCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/RemoteStatus.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ReposFreezeAction.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ReposNotifyCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ReposVerifyCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/StatusCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/TunnelAgent.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/UserPasswordCallback.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/CommitEditor.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/RemoteFactory.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/RemoteSession.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/RetryOpenSession.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/StateReporter.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/StatusEditor.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/ChangePath.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Checksum.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/ConflictVersion.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/CopySource.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Depth.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/DiffOptions.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/DirEntry.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/ExternalItem.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Info.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Lock.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/LogDate.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Mergeinfo.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/NativeInputStream.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/NativeOutputStream.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/NodeKind.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Property.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Revision.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/RevisionRange.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/RevisionRangeList.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/RuntimeVersion.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Status.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Tristate.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Version.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/VersionExtended.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/ConfigImpl.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/ConfigLib.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/DiffLib.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/PropLib.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/RequestChannel.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/ResponseChannel.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/SubstLib.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/TunnelChannel.class
+javahl_java_HEADERS = subversion/bindings/javahl/include/org_apache_subversion_javahl_CommitItemStateFlags.h subversion/bindings/javahl/include/org_apache_subversion_javahl_NativeResources.h subversion/bindings/javahl/include/org_apache_subversion_javahl_SVNClient.h subversion/bindings/javahl/include/org_apache_subversion_javahl_SVNRepos.h
+javahl_java_OBJECTS = subversion/bindings/javahl/classes/org/apache/subversion/javahl/ClientException.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ClientNotifyInformation.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/CommitInfo.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/CommitItem.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/CommitItemStateFlags.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ConflictDescriptor.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ConflictResult.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/DiffSummary.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNClient.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNConfig.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNEditor.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNRemote.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNReporter.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNRepos.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/JNIError.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/JNIObject.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/NativeException.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/NativeResources.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/OperationContext.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ProgressEvent.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ReposNotifyInformation.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/SVNClient.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/SVNRepos.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/SVNUtil.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/SubversionException.class
javahl_java_DEPS = $(javahl_java_HEADERS) $(javahl_java_OBJECTS)
javahl-java: $(javahl_java_DEPS)
-javahl_java_SRC = $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientException.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitInfo.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitItem.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitItemStateFlags.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictDescriptor.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictResult.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/DiffSummary.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNConfig.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNEditor.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRemote.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNReporter.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/JNIError.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/JNIObject.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeException.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/OperationContext.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ProgressEvent.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ReposNotifyInformation.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNRepos.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNUtil.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/SubversionException.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/AuthnCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/BlameCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ChangelistCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ClientNotifyCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/CommitCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/CommitMessageCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ConfigEvent.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ConflictResolverCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/DiffSummaryCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ImportFilterCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/InfoCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/InheritedProplistCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ListCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ListItemCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/LogMessageCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/PatchCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ProgressCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ProplistCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/RemoteFileRevisionsCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/RemoteLocationSegmentsCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/RemoteStatus.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ReposFreezeAction.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ReposNotifyCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ReposVerifyCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/StatusCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/TunnelAgent.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/UserPasswordCallback.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/CommitEditor.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RemoteFactory.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RemoteSession.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RetryOpenSession.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/StateReporter.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/StatusEditor.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/ChangePath.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Checksum.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/ConflictVersion.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/CopySource.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Depth.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/DiffOptions.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/DirEntry.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/ExternalItem.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Info.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Lock.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/LogDate.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Mergeinfo.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/NativeInputStream.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/NativeOutputStream.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/NodeKind.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Property.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Revision.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/RevisionRange.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/RevisionRangeList.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/RuntimeVersion.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Status.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Tristate.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Version.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/VersionExtended.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/ConfigImpl.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/ConfigLib.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/DiffLib.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/PropLib.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/RequestChannel.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/ResponseChannel.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/SubstLib.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/TunnelChannel.java
-$(javahl_java_OBJECTS): $(javahl_java_SRC)
- $(COMPILE_JAVAHL_JAVAC) -d subversion/bindings/javahl/classes -classpath subversion/bindings/javahl/classes:$(javahl_java_CLASSPATH) $(javahl_java_SRC)
-
-
-javahl_javah_PATH = subversion/bindings/javahl/include
-javahl_javah_HEADERS = subversion/bindings/javahl/include/org_apache_subversion_javahl_ClientException.h subversion/bindings/javahl/include/org_apache_subversion_javahl_ClientNotifyInformation.h subversion/bindings/javahl/include/org_apache_subversion_javahl_CommitInfo.h subversion/bindings/javahl/include/org_apache_subversion_javahl_CommitItem.h subversion/bindings/javahl/include/org_apache_subversion_javahl_CommitItemStateFlags.h subversion/bindings/javahl/include/org_apache_subversion_javahl_ConflictDescriptor.h subversion/bindings/javahl/include/org_apache_subversion_javahl_ConflictResult.h subversion/bindings/javahl/include/org_apache_subversion_javahl_DiffSummary.h subversion/bindings/javahl/include/org_apache_subversion_javahl_ISVNClient.h subversion/bindings/javahl/include/org_apache_subversion_javahl_ISVNConfig.h subversion/bindings/javahl/include/org_apache_subversion_javahl_ISVNEditor.h subversion/bindings/javahl/include/org_apache_subversion_javahl_ISVNRemote.h subversion/bindings/javahl/include/org_apache_subversion_javahl_ISVNReporter.h subversion/bindings/javahl/include/org_apache_subversion_javahl_ISVNRepos.h subversion/bindings/javahl/include/org_apache_subversion_javahl_JNIError.h subversion/bindings/javahl/include/org_apache_subversion_javahl_JNIObject.h subversion/bindings/javahl/include/org_apache_subversion_javahl_NativeException.h subversion/bindings/javahl/include/org_apache_subversion_javahl_NativeResources.h subversion/bindings/javahl/include/org_apache_subversion_javahl_OperationContext.h subversion/bindings/javahl/include/org_apache_subversion_javahl_ProgressEvent.h subversion/bindings/javahl/include/org_apache_subversion_javahl_ReposNotifyInformation.h subversion/bindings/javahl/include/org_apache_subversion_javahl_SVNClient.h subversion/bindings/javahl/include/org_apache_subversion_javahl_SVNRepos.h subversion/bindings/javahl/include/org_apache_subversion_javahl_SVNUtil.h subversion/bindings/javahl/include/org_apache_subversion_javahl_SubversionException.h
-javahl_javah_OBJECTS =
-javahl_javah_DEPS = $(javahl_javah_HEADERS) $(javahl_javah_OBJECTS) $(javahl_java_DEPS)
-javahl-javah: $(javahl_javah_DEPS)
-javahl_javah_CLASS_FILENAMES = subversion/bindings/javahl/classes/org/apache/subversion/javahl/ClientException.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ClientNotifyInformation.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/CommitInfo.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/CommitItem.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/CommitItemStateFlags.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ConflictDescriptor.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ConflictResult.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/DiffSummary.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNClient.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNConfig.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNEditor.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNRemote.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNReporter.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNRepos.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/JNIError.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/JNIObject.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/NativeException.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/NativeResources.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/OperationContext.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ProgressEvent.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ReposNotifyInformation.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/SVNClient.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/SVNRepos.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/SVNUtil.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/SubversionException.class
-javahl_javah_CLASSES = org.apache.subversion.javahl.ClientException org.apache.subversion.javahl.ClientNotifyInformation org.apache.subversion.javahl.CommitInfo org.apache.subversion.javahl.CommitItem org.apache.subversion.javahl.CommitItemStateFlags org.apache.subversion.javahl.ConflictDescriptor org.apache.subversion.javahl.ConflictResult org.apache.subversion.javahl.DiffSummary org.apache.subversion.javahl.ISVNClient org.apache.subversion.javahl.ISVNConfig org.apache.subversion.javahl.ISVNEditor org.apache.subversion.javahl.ISVNRemote org.apache.subversion.javahl.ISVNReporter org.apache.subversion.javahl.ISVNRepos org.apache.subversion.javahl.JNIError org.apache.subversion.javahl.JNIObject org.apache.subversion.javahl.NativeException org.apache.subversion.javahl.NativeResources org.apache.subversion.javahl.OperationContext org.apache.subversion.javahl.ProgressEvent org.apache.subversion.javahl.ReposNotifyInformation org.apache.subversion.javahl.SVNClient org.apache.subversion.javahl.SVNRepos org.apache.subversion.javahl.SVNUtil org.apache.subversion.javahl.SubversionException
-$(javahl_javah_HEADERS): $(javahl_javah_CLASS_FILENAMES)
- $(COMPILE_JAVAHL_JAVAH) -force -d subversion/bindings/javahl/include -classpath subversion/bindings/javahl/classes:$(javahl_javah_CLASSPATH) $(javahl_javah_CLASSES)
+javahl_java_SRC = $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientException.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitInfo.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitItem.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitItemStateFlags.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictDescriptor.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictResult.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/DiffSummary.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNConfig.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNEditor.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRemote.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNReporter.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/JNIError.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/JNIObject.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeException.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/OperationContext.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ProgressEvent.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/ReposNotifyInformation.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNRepos.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNUtil.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/SubversionException.java
+$(javahl_java_HEADERS) $(javahl_java_OBJECTS): $(javahl_java_SRC)
+ $(COMPILE_JAVAHL_JAVAC) -h subversion/bindings/javahl/include -d subversion/bindings/javahl/classes -classpath subversion/bindings/javahl/classes:$(javahl_java_CLASSPATH) $(javahl_java_SRC)
-javahl_remote_javah_PATH = subversion/bindings/javahl/include
-javahl_remote_javah_HEADERS = subversion/bindings/javahl/include/org_apache_subversion_javahl_remote_CommitEditor.h subversion/bindings/javahl/include/org_apache_subversion_javahl_remote_RemoteFactory.h subversion/bindings/javahl/include/org_apache_subversion_javahl_remote_RemoteSession.h subversion/bindings/javahl/include/org_apache_subversion_javahl_remote_RetryOpenSession.h subversion/bindings/javahl/include/org_apache_subversion_javahl_remote_StateReporter.h subversion/bindings/javahl/include/org_apache_subversion_javahl_remote_StatusEditor.h
-javahl_remote_javah_OBJECTS =
-javahl_remote_javah_DEPS = $(javahl_remote_javah_HEADERS) $(javahl_remote_javah_OBJECTS) $(javahl_java_DEPS)
-javahl-remote-javah: $(javahl_remote_javah_DEPS)
-javahl_remote_javah_CLASS_FILENAMES = subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/CommitEditor.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/RemoteFactory.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/RemoteSession.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/RetryOpenSession.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/StateReporter.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/StatusEditor.class
-javahl_remote_javah_CLASSES = org.apache.subversion.javahl.remote.CommitEditor org.apache.subversion.javahl.remote.RemoteFactory org.apache.subversion.javahl.remote.RemoteSession org.apache.subversion.javahl.remote.RetryOpenSession org.apache.subversion.javahl.remote.StateReporter org.apache.subversion.javahl.remote.StatusEditor
-$(javahl_remote_javah_HEADERS): $(javahl_remote_javah_CLASS_FILENAMES)
- $(COMPILE_JAVAHL_JAVAH) -force -d subversion/bindings/javahl/include -classpath subversion/bindings/javahl/classes:$(javahl_remote_javah_CLASSPATH) $(javahl_remote_javah_CLASSES)
+javahl_remote_java_PATH = subversion/bindings/javahl/classes
+javahl_remote_java_HEADERS = subversion/bindings/javahl/include/org_apache_subversion_javahl_remote_CommitEditor.h subversion/bindings/javahl/include/org_apache_subversion_javahl_remote_RemoteFactory.h subversion/bindings/javahl/include/org_apache_subversion_javahl_remote_RemoteSession.h subversion/bindings/javahl/include/org_apache_subversion_javahl_remote_StateReporter.h
+javahl_remote_java_OBJECTS = subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/CommitEditor.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/RemoteFactory.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/RemoteSession.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/RetryOpenSession.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/StateReporter.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/StatusEditor.class
+javahl_remote_java_DEPS = $(javahl_remote_java_HEADERS) $(javahl_remote_java_OBJECTS)
+javahl-remote-java: $(javahl_remote_java_DEPS)
+javahl_remote_java_SRC = $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/CommitEditor.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RemoteFactory.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RemoteSession.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RetryOpenSession.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/StateReporter.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/StatusEditor.java
+$(javahl_remote_java_HEADERS) $(javahl_remote_java_OBJECTS): $(javahl_remote_java_SRC)
+ $(COMPILE_JAVAHL_JAVAC) -h subversion/bindings/javahl/include -d subversion/bindings/javahl/classes -classpath subversion/bindings/javahl/classes:$(javahl_remote_java_CLASSPATH) $(javahl_remote_java_SRC)
javahl_tests_PATH = subversion/bindings/javahl/classes
javahl_tests_HEADERS =
javahl_tests_OBJECTS = subversion/bindings/javahl/classes/org/apache/subversion/javahl/BasicTests.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/ExceptionTests.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/RunTests.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/SVNRemoteTests.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/SVNReposTests.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/SVNTests.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/UtilTests.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/WC.class
-javahl_tests_DEPS = $(javahl_tests_HEADERS) $(javahl_tests_OBJECTS) $(javahl_java_DEPS)
+javahl_tests_DEPS = $(javahl_tests_HEADERS) $(javahl_tests_OBJECTS) $(javahl_callback_java_DEPS) $(javahl_remote_java_DEPS) $(javahl_types_java_DEPS) $(javahl_util_java_DEPS) $(javahl_java_DEPS)
javahl-tests: $(javahl_tests_DEPS)
javahl_tests_SRC = $(abs_srcdir)/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java $(abs_srcdir)/subversion/bindings/javahl/tests/org/apache/subversion/javahl/ExceptionTests.java $(abs_srcdir)/subversion/bindings/javahl/tests/org/apache/subversion/javahl/RunTests.java $(abs_srcdir)/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRemoteTests.java $(abs_srcdir)/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNReposTests.java $(abs_srcdir)/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java $(abs_srcdir)/subversion/bindings/javahl/tests/org/apache/subversion/javahl/UtilTests.java $(abs_srcdir)/subversion/bindings/javahl/tests/org/apache/subversion/javahl/WC.java
-$(javahl_tests_OBJECTS): $(javahl_tests_SRC)
+$(javahl_tests_HEADERS) $(javahl_tests_OBJECTS): $(javahl_tests_SRC)
$(COMPILE_JAVAHL_JAVAC) -d subversion/bindings/javahl/classes -classpath subversion/bindings/javahl/classes:$(javahl_tests_CLASSPATH) $(javahl_tests_SRC)
-javahl_types_javah_PATH = subversion/bindings/javahl/include
-javahl_types_javah_HEADERS = subversion/bindings/javahl/include/org_apache_subversion_javahl_types_ChangePath.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_Checksum.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_ConflictVersion.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_CopySource.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_Depth.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_DiffOptions.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_DirEntry.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_ExternalItem.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_Info.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_Lock.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_LogDate.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_Mergeinfo.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_NativeInputStream.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_NativeOutputStream.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_NodeKind.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_Property.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_Revision.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_RevisionRange.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_RevisionRangeList.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_RuntimeVersion.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_Status.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_Tristate.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_Version.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_VersionExtended.h
-javahl_types_javah_OBJECTS =
-javahl_types_javah_DEPS = $(javahl_types_javah_HEADERS) $(javahl_types_javah_OBJECTS) $(javahl_java_DEPS)
-javahl-types-javah: $(javahl_types_javah_DEPS)
-javahl_types_javah_CLASS_FILENAMES = subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/ChangePath.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Checksum.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/ConflictVersion.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/CopySource.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Depth.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/DiffOptions.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/DirEntry.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/ExternalItem.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Info.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Lock.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/LogDate.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Mergeinfo.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/NativeInputStream.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/NativeOutputStream.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/NodeKind.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Property.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Revision.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/RevisionRange.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/RevisionRangeList.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/RuntimeVersion.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Status.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Tristate.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Version.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/VersionExtended.class
-javahl_types_javah_CLASSES = org.apache.subversion.javahl.types.ChangePath org.apache.subversion.javahl.types.Checksum org.apache.subversion.javahl.types.ConflictVersion org.apache.subversion.javahl.types.CopySource org.apache.subversion.javahl.types.Depth org.apache.subversion.javahl.types.DiffOptions org.apache.subversion.javahl.types.DirEntry org.apache.subversion.javahl.types.ExternalItem org.apache.subversion.javahl.types.Info org.apache.subversion.javahl.types.Lock org.apache.subversion.javahl.types.LogDate org.apache.subversion.javahl.types.Mergeinfo org.apache.subversion.javahl.types.NativeInputStream org.apache.subversion.javahl.types.NativeOutputStream org.apache.subversion.javahl.types.NodeKind org.apache.subversion.javahl.types.Property org.apache.subversion.javahl.types.Revision org.apache.subversion.javahl.types.RevisionRange org.apache.subversion.javahl.types.RevisionRangeList org.apache.subversion.javahl.types.RuntimeVersion org.apache.subversion.javahl.types.Status org.apache.subversion.javahl.types.Tristate org.apache.subversion.javahl.types.Version org.apache.subversion.javahl.types.VersionExtended
-$(javahl_types_javah_HEADERS): $(javahl_types_javah_CLASS_FILENAMES)
- $(COMPILE_JAVAHL_JAVAH) -force -d subversion/bindings/javahl/include -classpath subversion/bindings/javahl/classes:$(javahl_types_javah_CLASSPATH) $(javahl_types_javah_CLASSES)
+javahl_types_java_PATH = subversion/bindings/javahl/classes
+javahl_types_java_HEADERS = subversion/bindings/javahl/include/org_apache_subversion_javahl_types_NativeInputStream.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_NativeOutputStream.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_Revision.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_RevisionRangeList.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_RuntimeVersion.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_Version.h subversion/bindings/javahl/include/org_apache_subversion_javahl_types_VersionExtended.h
+javahl_types_java_OBJECTS = subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/ChangePath.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Checksum.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/ConflictVersion.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/CopySource.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Depth.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/DiffOptions.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/DirEntry.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/ExternalItem.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Info.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Lock.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/LogDate.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Mergeinfo.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/NativeInputStream.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/NativeOutputStream.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/NodeKind.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Property.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Revision.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/RevisionRange.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/RevisionRangeList.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/RuntimeVersion.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Status.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Tristate.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Version.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/VersionExtended.class
+javahl_types_java_DEPS = $(javahl_types_java_HEADERS) $(javahl_types_java_OBJECTS)
+javahl-types-java: $(javahl_types_java_DEPS)
+javahl_types_java_SRC = $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/ChangePath.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Checksum.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/ConflictVersion.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/CopySource.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Depth.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/DiffOptions.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/DirEntry.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/ExternalItem.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Info.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Lock.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/LogDate.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Mergeinfo.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/NativeInputStream.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/NativeOutputStream.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/NodeKind.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Property.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Revision.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/RevisionRange.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/RevisionRangeList.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/RuntimeVersion.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Status.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Tristate.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Version.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/VersionExtended.java
+$(javahl_types_java_HEADERS) $(javahl_types_java_OBJECTS): $(javahl_types_java_SRC)
+ $(COMPILE_JAVAHL_JAVAC) -h subversion/bindings/javahl/include -d subversion/bindings/javahl/classes -classpath subversion/bindings/javahl/classes:$(javahl_types_java_CLASSPATH) $(javahl_types_java_SRC)
-javahl_util_javah_PATH = subversion/bindings/javahl/include
-javahl_util_javah_HEADERS = subversion/bindings/javahl/include/org_apache_subversion_javahl_util_ConfigImpl.h subversion/bindings/javahl/include/org_apache_subversion_javahl_util_ConfigLib.h subversion/bindings/javahl/include/org_apache_subversion_javahl_util_DiffLib.h subversion/bindings/javahl/include/org_apache_subversion_javahl_util_PropLib.h subversion/bindings/javahl/include/org_apache_subversion_javahl_util_RequestChannel.h subversion/bindings/javahl/include/org_apache_subversion_javahl_util_ResponseChannel.h subversion/bindings/javahl/include/org_apache_subversion_javahl_util_SubstLib.h subversion/bindings/javahl/include/org_apache_subversion_javahl_util_TunnelChannel.h
-javahl_util_javah_OBJECTS =
-javahl_util_javah_DEPS = $(javahl_util_javah_HEADERS) $(javahl_util_javah_OBJECTS) $(javahl_java_DEPS)
-javahl-util-javah: $(javahl_util_javah_DEPS)
-javahl_util_javah_CLASS_FILENAMES = subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/ConfigImpl.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/ConfigLib.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/DiffLib.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/PropLib.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/RequestChannel.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/ResponseChannel.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/SubstLib.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/TunnelChannel.class
-javahl_util_javah_CLASSES = org.apache.subversion.javahl.util.ConfigImpl org.apache.subversion.javahl.util.ConfigLib org.apache.subversion.javahl.util.DiffLib org.apache.subversion.javahl.util.PropLib org.apache.subversion.javahl.util.RequestChannel org.apache.subversion.javahl.util.ResponseChannel org.apache.subversion.javahl.util.SubstLib org.apache.subversion.javahl.util.TunnelChannel
-$(javahl_util_javah_HEADERS): $(javahl_util_javah_CLASS_FILENAMES)
- $(COMPILE_JAVAHL_JAVAH) -force -d subversion/bindings/javahl/include -classpath subversion/bindings/javahl/classes:$(javahl_util_javah_CLASSPATH) $(javahl_util_javah_CLASSES)
+javahl_util_java_PATH = subversion/bindings/javahl/classes
+javahl_util_java_HEADERS = subversion/bindings/javahl/include/org_apache_subversion_javahl_util_ConfigImpl.h subversion/bindings/javahl/include/org_apache_subversion_javahl_util_ConfigLib.h subversion/bindings/javahl/include/org_apache_subversion_javahl_util_DiffLib.h subversion/bindings/javahl/include/org_apache_subversion_javahl_util_PropLib.h subversion/bindings/javahl/include/org_apache_subversion_javahl_util_RequestChannel.h subversion/bindings/javahl/include/org_apache_subversion_javahl_util_ResponseChannel.h subversion/bindings/javahl/include/org_apache_subversion_javahl_util_SubstLib.h subversion/bindings/javahl/include/org_apache_subversion_javahl_util_TunnelChannel.h
+javahl_util_java_OBJECTS = subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/ConfigImpl.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/ConfigLib.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/DiffLib.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/PropLib.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/RequestChannel.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/ResponseChannel.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/SubstLib.class subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/TunnelChannel.class
+javahl_util_java_DEPS = $(javahl_util_java_HEADERS) $(javahl_util_java_OBJECTS)
+javahl-util-java: $(javahl_util_java_DEPS)
+javahl_util_java_SRC = $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/ConfigImpl.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/ConfigLib.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/DiffLib.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/PropLib.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/RequestChannel.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/ResponseChannel.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/SubstLib.java $(abs_srcdir)/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/TunnelChannel.java
+$(javahl_util_java_HEADERS) $(javahl_util_java_OBJECTS): $(javahl_util_java_SRC)
+ $(COMPILE_JAVAHL_JAVAC) -h subversion/bindings/javahl/include -d subversion/bindings/javahl/classes -classpath subversion/bindings/javahl/classes:$(javahl_util_java_CLASSPATH) $(javahl_util_java_SRC)
libgooglemock_PATH = googlemock
@@ -429,8 +420,8 @@ subversion/libsvn_auth_kwallet/libsvn_auth_kwallet-1.la: $(libsvn_auth_kwallet_D
cd subversion/libsvn_auth_kwallet && $(LINK_SHARED_ONLY_CXX_LIB) $(libsvn_auth_kwallet_LDFLAGS) -o libsvn_auth_kwallet-1.la $(LT_NO_UNDEFINED) $(libsvn_auth_kwallet_OBJECTS) ../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APR_LIBS) $(SVN_KWALLET_LIBS) $(LIBS)
libsvn_client_PATH = subversion/libsvn_client
-libsvn_client_DEPS = subversion/libsvn_client/add.lo subversion/libsvn_client/blame.lo subversion/libsvn_client/cat.lo subversion/libsvn_client/changelist.lo subversion/libsvn_client/checkout.lo subversion/libsvn_client/cleanup.lo subversion/libsvn_client/cmdline.lo subversion/libsvn_client/commit.lo subversion/libsvn_client/commit_util.lo subversion/libsvn_client/compat_providers.lo subversion/libsvn_client/conflicts.lo subversion/libsvn_client/copy.lo subversion/libsvn_client/copy_foreign.lo subversion/libsvn_client/ctx.lo subversion/libsvn_client/delete.lo subversion/libsvn_client/deprecated.lo subversion/libsvn_client/diff.lo subversion/libsvn_client/diff_local.lo subversion/libsvn_client/diff_summarize.lo subversion/libsvn_client/export.lo subversion/libsvn_client/externals.lo subversion/libsvn_client/import.lo subversion/libsvn_client/info.lo subversion/libsvn_client/iprops.lo subversion/libsvn_client/list.lo subversion/libsvn_client/locking_commands.lo subversion/libsvn_client/log.lo subversion/libsvn_client/merge.lo subversion/libsvn_client/merge_elements.lo subversion/libsvn_client/mergeinfo.lo subversion/libsvn_client/mtcc.lo subversion/libsvn_client/patch.lo subversion/libsvn_client/prop_commands.lo subversion/libsvn_client/ra.lo subversion/libsvn_client/relocate.lo subversion/libsvn_client/repos_diff.lo subversion/libsvn_client/resolved.lo subversion/libsvn_client/revert.lo subversion/libsvn_client/revisions.lo subversion/libsvn_client/shelve.lo subversion/libsvn_client/status.lo subversion/libsvn_client/switch.lo subversion/libsvn_client/update.lo subversion/libsvn_client/upgrade.lo subversion/libsvn_client/url.lo subversion/libsvn_client/util.lo subversion/libsvn_client/version.lo subversion/libsvn_wc/libsvn_wc-1.la subversion/libsvn_ra/libsvn_ra-1.la subversion/libsvn_delta/libsvn_delta-1.la subversion/libsvn_diff/libsvn_diff-1.la subversion/libsvn_subr/libsvn_subr-1.la
-libsvn_client_OBJECTS = add.lo blame.lo cat.lo changelist.lo checkout.lo cleanup.lo cmdline.lo commit.lo commit_util.lo compat_providers.lo conflicts.lo copy.lo copy_foreign.lo ctx.lo delete.lo deprecated.lo diff.lo diff_local.lo diff_summarize.lo export.lo externals.lo import.lo info.lo iprops.lo list.lo locking_commands.lo log.lo merge.lo merge_elements.lo mergeinfo.lo mtcc.lo patch.lo prop_commands.lo ra.lo relocate.lo repos_diff.lo resolved.lo revert.lo revisions.lo shelve.lo status.lo switch.lo update.lo upgrade.lo url.lo util.lo version.lo
+libsvn_client_DEPS = subversion/libsvn_client/add.lo subversion/libsvn_client/blame.lo subversion/libsvn_client/cat.lo subversion/libsvn_client/changelist.lo subversion/libsvn_client/checkout.lo subversion/libsvn_client/cleanup.lo subversion/libsvn_client/cmdline.lo subversion/libsvn_client/commit.lo subversion/libsvn_client/commit_util.lo subversion/libsvn_client/compat_providers.lo subversion/libsvn_client/conflicts.lo subversion/libsvn_client/copy.lo subversion/libsvn_client/copy_foreign.lo subversion/libsvn_client/ctx.lo subversion/libsvn_client/delete.lo subversion/libsvn_client/deprecated.lo subversion/libsvn_client/diff.lo subversion/libsvn_client/diff_local.lo subversion/libsvn_client/diff_summarize.lo subversion/libsvn_client/export.lo subversion/libsvn_client/externals.lo subversion/libsvn_client/import.lo subversion/libsvn_client/info.lo subversion/libsvn_client/iprops.lo subversion/libsvn_client/layout.lo subversion/libsvn_client/list.lo subversion/libsvn_client/locking_commands.lo subversion/libsvn_client/log.lo subversion/libsvn_client/merge.lo subversion/libsvn_client/merge_elements.lo subversion/libsvn_client/mergeinfo.lo subversion/libsvn_client/mtcc.lo subversion/libsvn_client/patch.lo subversion/libsvn_client/prop_commands.lo subversion/libsvn_client/ra.lo subversion/libsvn_client/relocate.lo subversion/libsvn_client/repos_diff.lo subversion/libsvn_client/resolved.lo subversion/libsvn_client/revert.lo subversion/libsvn_client/revisions.lo subversion/libsvn_client/shelf.lo subversion/libsvn_client/status.lo subversion/libsvn_client/switch.lo subversion/libsvn_client/update.lo subversion/libsvn_client/upgrade.lo subversion/libsvn_client/url.lo subversion/libsvn_client/util.lo subversion/libsvn_client/version.lo subversion/libsvn_wc/libsvn_wc-1.la subversion/libsvn_ra/libsvn_ra-1.la subversion/libsvn_delta/libsvn_delta-1.la subversion/libsvn_diff/libsvn_diff-1.la subversion/libsvn_subr/libsvn_subr-1.la
+libsvn_client_OBJECTS = add.lo blame.lo cat.lo changelist.lo checkout.lo cleanup.lo cmdline.lo commit.lo commit_util.lo compat_providers.lo conflicts.lo copy.lo copy_foreign.lo ctx.lo delete.lo deprecated.lo diff.lo diff_local.lo diff_summarize.lo export.lo externals.lo import.lo info.lo iprops.lo layout.lo list.lo locking_commands.lo log.lo merge.lo merge_elements.lo mergeinfo.lo mtcc.lo patch.lo prop_commands.lo ra.lo relocate.lo repos_diff.lo resolved.lo revert.lo revisions.lo shelf.lo status.lo switch.lo update.lo upgrade.lo url.lo util.lo version.lo
subversion/libsvn_client/libsvn_client-1.la: $(libsvn_client_DEPS)
cd subversion/libsvn_client && $(LINK_LIB) $(libsvn_client_LDFLAGS) -o libsvn_client-1.la $(LT_NO_UNDEFINED) $(libsvn_client_OBJECTS) ../../subversion/libsvn_wc/libsvn_wc-1.la ../../subversion/libsvn_ra/libsvn_ra-1.la ../../subversion/libsvn_delta/libsvn_delta-1.la ../../subversion/libsvn_diff/libsvn_diff-1.la ../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APRUTIL_LIBS) $(SVN_APR_LIBS) $(LIBS)
@@ -503,8 +494,8 @@ subversion/libsvn_ra_svn/libsvn_ra_svn-1.la: $(libsvn_ra_svn_DEPS)
cd subversion/libsvn_ra_svn && $(LINK_LIB) $(libsvn_ra_svn_LDFLAGS) -o libsvn_ra_svn-1.la $(LT_NO_UNDEFINED) $(libsvn_ra_svn_OBJECTS) ../../subversion/libsvn_delta/libsvn_delta-1.la ../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APRUTIL_LIBS) $(SVN_APR_LIBS) $(SVN_SASL_LIBS) $(LIBS)
libsvn_repos_PATH = subversion/libsvn_repos
-libsvn_repos_DEPS = subversion/libsvn_repos/authz.lo subversion/libsvn_repos/authz_info.lo subversion/libsvn_repos/authz_parse.lo subversion/libsvn_repos/commit.lo subversion/libsvn_repos/compat.lo subversion/libsvn_repos/config_file.lo subversion/libsvn_repos/config_pool.lo subversion/libsvn_repos/delta.lo subversion/libsvn_repos/deprecated.lo subversion/libsvn_repos/dump.lo subversion/libsvn_repos/fs-wrap.lo subversion/libsvn_repos/hooks.lo subversion/libsvn_repos/list.lo subversion/libsvn_repos/load-fs-vtable.lo subversion/libsvn_repos/load.lo subversion/libsvn_repos/log.lo subversion/libsvn_repos/node_tree.lo subversion/libsvn_repos/notify.lo subversion/libsvn_repos/replay.lo subversion/libsvn_repos/reporter.lo subversion/libsvn_repos/repos.lo subversion/libsvn_repos/rev_hunt.lo subversion/libsvn_fs/libsvn_fs-1.la subversion/libsvn_delta/libsvn_delta-1.la subversion/libsvn_subr/libsvn_subr-1.la
-libsvn_repos_OBJECTS = authz.lo authz_info.lo authz_parse.lo commit.lo compat.lo config_file.lo config_pool.lo delta.lo deprecated.lo dump.lo fs-wrap.lo hooks.lo list.lo load-fs-vtable.lo load.lo log.lo node_tree.lo notify.lo replay.lo reporter.lo repos.lo rev_hunt.lo
+libsvn_repos_DEPS = subversion/libsvn_repos/authz.lo subversion/libsvn_repos/authz_info.lo subversion/libsvn_repos/authz_parse.lo subversion/libsvn_repos/commit.lo subversion/libsvn_repos/compat.lo subversion/libsvn_repos/config_file.lo subversion/libsvn_repos/config_pool.lo subversion/libsvn_repos/delta.lo subversion/libsvn_repos/deprecated.lo subversion/libsvn_repos/dump.lo subversion/libsvn_repos/dump_editor.lo subversion/libsvn_repos/fs-wrap.lo subversion/libsvn_repos/hooks.lo subversion/libsvn_repos/list.lo subversion/libsvn_repos/load-fs-vtable.lo subversion/libsvn_repos/load.lo subversion/libsvn_repos/log.lo subversion/libsvn_repos/node_tree.lo subversion/libsvn_repos/notify.lo subversion/libsvn_repos/replay.lo subversion/libsvn_repos/reporter.lo subversion/libsvn_repos/repos.lo subversion/libsvn_repos/rev_hunt.lo subversion/libsvn_fs/libsvn_fs-1.la subversion/libsvn_delta/libsvn_delta-1.la subversion/libsvn_subr/libsvn_subr-1.la
+libsvn_repos_OBJECTS = authz.lo authz_info.lo authz_parse.lo commit.lo compat.lo config_file.lo config_pool.lo delta.lo deprecated.lo dump.lo dump_editor.lo fs-wrap.lo hooks.lo list.lo load-fs-vtable.lo load.lo log.lo node_tree.lo notify.lo replay.lo reporter.lo repos.lo rev_hunt.lo
subversion/libsvn_repos/libsvn_repos-1.la: $(libsvn_repos_DEPS)
cd subversion/libsvn_repos && $(LINK_LIB) $(libsvn_repos_LDFLAGS) -o libsvn_repos-1.la $(LT_NO_UNDEFINED) $(libsvn_repos_OBJECTS) ../../subversion/libsvn_fs/libsvn_fs-1.la ../../subversion/libsvn_delta/libsvn_delta-1.la ../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APRUTIL_LIBS) $(SVN_APR_LIBS) $(LIBS)
@@ -551,7 +542,7 @@ subversion/bindings/cxxhl/libsvncxxhl-1.la: $(libsvncxxhl_DEPS)
cd subversion/bindings/cxxhl && $(LINK_CXX_LIB) $(libsvncxxhl_LDFLAGS) -o libsvncxxhl-1.la $(LT_NO_UNDEFINED) $(libsvncxxhl_OBJECTS) ../../../subversion/libsvn_repos/libsvn_repos-1.la ../../../subversion/libsvn_client/libsvn_client-1.la ../../../subversion/libsvn_wc/libsvn_wc-1.la ../../../subversion/libsvn_ra/libsvn_ra-1.la ../../../subversion/libsvn_delta/libsvn_delta-1.la ../../../subversion/libsvn_diff/libsvn_diff-1.la ../../../subversion/libsvn_subr/libsvn_subr-1.la ../../../subversion/libsvn_fs/libsvn_fs-1.la $(SVN_APRUTIL_LIBS) $(SVN_APR_LIBS) $(LIBS)
libsvnjavahl_PATH = subversion/bindings/javahl/native
-libsvnjavahl_DEPS = $(javahl_java_DEPS) $(javahl_callback_javah_DEPS) $(javahl_remote_javah_DEPS) $(javahl_types_javah_DEPS) $(javahl_util_javah_DEPS) $(javahl_javah_DEPS) subversion/bindings/javahl/native/Array.lo subversion/bindings/javahl/native/AuthnCallback.lo subversion/bindings/javahl/native/BlameCallback.lo subversion/bindings/javahl/native/ChangelistCallback.lo subversion/bindings/javahl/native/ClientContext.lo subversion/bindings/javahl/native/CommitCallback.lo subversion/bindings/javahl/native/CommitEditor.lo subversion/bindings/javahl/native/CommitMessage.lo subversion/bindings/javahl/native/CopySources.lo subversion/bindings/javahl/native/CreateJ.lo subversion/bindings/javahl/native/Credential.lo subversion/bindings/javahl/native/DiffOptions.lo subversion/bindings/javahl/native/DiffSummaryReceiver.lo subversion/bindings/javahl/native/EditorCallbacks.lo subversion/bindings/javahl/native/EditorProxy.lo subversion/bindings/javahl/native/EnumMapper.lo subversion/bindings/javahl/native/ExternalItem.lo subversion/bindings/javahl/native/File.lo subversion/bindings/javahl/native/ImportFilterCallback.lo subversion/bindings/javahl/native/InfoCallback.lo subversion/bindings/javahl/native/InputStream.lo subversion/bindings/javahl/native/Iterator.lo subversion/bindings/javahl/native/JNIByteArray.lo subversion/bindings/javahl/native/JNICriticalSection.lo subversion/bindings/javahl/native/JNIMutex.lo subversion/bindings/javahl/native/JNIStackElement.lo subversion/bindings/javahl/native/JNIStringHolder.lo subversion/bindings/javahl/native/JNIUtil.lo subversion/bindings/javahl/native/ListCallback.lo subversion/bindings/javahl/native/LockTokenTable.lo subversion/bindings/javahl/native/LogMessageCallback.lo subversion/bindings/javahl/native/MessageReceiver.lo subversion/bindings/javahl/native/NativeStream.lo subversion/bindings/javahl/native/OperationContext.lo subversion/bindings/javahl/native/OutputStream.lo subversion/bindings/javahl/native/PatchCallback.lo subversion/bindings/javahl/native/Path.lo subversion/bindings/javahl/native/Pool.lo subversion/bindings/javahl/native/Prompter.lo subversion/bindings/javahl/native/PropertyTable.lo subversion/bindings/javahl/native/ProplistCallback.lo subversion/bindings/javahl/native/RemoteSession.lo subversion/bindings/javahl/native/RemoteSessionContext.lo subversion/bindings/javahl/native/ReposFreezeAction.lo subversion/bindings/javahl/native/ReposNotifyCallback.lo subversion/bindings/javahl/native/ReposVerifyCallback.lo subversion/bindings/javahl/native/Revision.lo subversion/bindings/javahl/native/RevisionRange.lo subversion/bindings/javahl/native/RevisionRangeList.lo subversion/bindings/javahl/native/SVNBase.lo subversion/bindings/javahl/native/SVNClient.lo subversion/bindings/javahl/native/SVNRepos.lo subversion/bindings/javahl/native/StateReporter.lo subversion/bindings/javahl/native/StatusCallback.lo subversion/bindings/javahl/native/StringArray.lo subversion/bindings/javahl/native/SubversionException.lo subversion/bindings/javahl/native/Targets.lo subversion/bindings/javahl/native/Utility.lo subversion/bindings/javahl/native/VersionExtended.lo subversion/bindings/javahl/native/deprecated.lo subversion/bindings/javahl/native/jniwrapper/jni_base.lo subversion/bindings/javahl/native/jniwrapper/jni_channel.lo subversion/bindings/javahl/native/jniwrapper/jni_class_cache.lo subversion/bindings/javahl/native/jniwrapper/jni_io_stream.lo subversion/bindings/javahl/native/jniwrapper/jni_iterator.lo subversion/bindings/javahl/native/jniwrapper/jni_list.lo subversion/bindings/javahl/native/jniwrapper/jni_string_map.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_NativeResources.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_CommitEditor.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteFactory.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteSession.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_StateReporter.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_types_RevisionRangeList.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_types_RuntimeVersion.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_types_Version.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_types_VersionExtended.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_util_ConfigImpl_Category.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_util_ConfigLib.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_util_DiffLib.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_util_PropLib.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_util_SubstLib.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_util_TunnelChannel.lo subversion/libsvn_repos/libsvn_repos-1.la subversion/libsvn_client/libsvn_client-1.la subversion/libsvn_wc/libsvn_wc-1.la subversion/libsvn_ra/libsvn_ra-1.la subversion/libsvn_delta/libsvn_delta-1.la subversion/libsvn_diff/libsvn_diff-1.la subversion/libsvn_subr/libsvn_subr-1.la subversion/libsvn_fs/libsvn_fs-1.la
+libsvnjavahl_DEPS = $(javahl_java_DEPS) $(javahl_callback_java_DEPS) $(javahl_remote_java_DEPS) $(javahl_types_java_DEPS) $(javahl_util_java_DEPS) $(javahl_java_DEPS) subversion/bindings/javahl/native/Array.lo subversion/bindings/javahl/native/AuthnCallback.lo subversion/bindings/javahl/native/BlameCallback.lo subversion/bindings/javahl/native/ChangelistCallback.lo subversion/bindings/javahl/native/ClientContext.lo subversion/bindings/javahl/native/CommitCallback.lo subversion/bindings/javahl/native/CommitEditor.lo subversion/bindings/javahl/native/CommitMessage.lo subversion/bindings/javahl/native/CopySources.lo subversion/bindings/javahl/native/CreateJ.lo subversion/bindings/javahl/native/Credential.lo subversion/bindings/javahl/native/DiffOptions.lo subversion/bindings/javahl/native/DiffSummaryReceiver.lo subversion/bindings/javahl/native/EditorCallbacks.lo subversion/bindings/javahl/native/EditorProxy.lo subversion/bindings/javahl/native/EnumMapper.lo subversion/bindings/javahl/native/ExternalItem.lo subversion/bindings/javahl/native/File.lo subversion/bindings/javahl/native/ImportFilterCallback.lo subversion/bindings/javahl/native/InfoCallback.lo subversion/bindings/javahl/native/InputStream.lo subversion/bindings/javahl/native/Iterator.lo subversion/bindings/javahl/native/JNIByteArray.lo subversion/bindings/javahl/native/JNICriticalSection.lo subversion/bindings/javahl/native/JNIMutex.lo subversion/bindings/javahl/native/JNIStackElement.lo subversion/bindings/javahl/native/JNIStringHolder.lo subversion/bindings/javahl/native/JNIUtil.lo subversion/bindings/javahl/native/ListCallback.lo subversion/bindings/javahl/native/LockTokenTable.lo subversion/bindings/javahl/native/LogMessageCallback.lo subversion/bindings/javahl/native/MessageReceiver.lo subversion/bindings/javahl/native/NativeStream.lo subversion/bindings/javahl/native/OperationContext.lo subversion/bindings/javahl/native/OutputStream.lo subversion/bindings/javahl/native/PatchCallback.lo subversion/bindings/javahl/native/Path.lo subversion/bindings/javahl/native/Pool.lo subversion/bindings/javahl/native/Prompter.lo subversion/bindings/javahl/native/PropertyTable.lo subversion/bindings/javahl/native/ProplistCallback.lo subversion/bindings/javahl/native/RemoteSession.lo subversion/bindings/javahl/native/RemoteSessionContext.lo subversion/bindings/javahl/native/ReposFreezeAction.lo subversion/bindings/javahl/native/ReposNotifyCallback.lo subversion/bindings/javahl/native/ReposVerifyCallback.lo subversion/bindings/javahl/native/Revision.lo subversion/bindings/javahl/native/RevisionRange.lo subversion/bindings/javahl/native/RevisionRangeList.lo subversion/bindings/javahl/native/SVNBase.lo subversion/bindings/javahl/native/SVNClient.lo subversion/bindings/javahl/native/SVNRepos.lo subversion/bindings/javahl/native/StateReporter.lo subversion/bindings/javahl/native/StatusCallback.lo subversion/bindings/javahl/native/StringArray.lo subversion/bindings/javahl/native/SubversionException.lo subversion/bindings/javahl/native/Targets.lo subversion/bindings/javahl/native/Utility.lo subversion/bindings/javahl/native/VersionExtended.lo subversion/bindings/javahl/native/deprecated.lo subversion/bindings/javahl/native/jniwrapper/jni_base.lo subversion/bindings/javahl/native/jniwrapper/jni_channel.lo subversion/bindings/javahl/native/jniwrapper/jni_class_cache.lo subversion/bindings/javahl/native/jniwrapper/jni_io_stream.lo subversion/bindings/javahl/native/jniwrapper/jni_iterator.lo subversion/bindings/javahl/native/jniwrapper/jni_list.lo subversion/bindings/javahl/native/jniwrapper/jni_string_map.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_NativeResources.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_CommitEditor.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteFactory.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteSession.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_StateReporter.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_types_RevisionRangeList.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_types_RuntimeVersion.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_types_Version.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_types_VersionExtended.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_util_ConfigImpl_Category.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_util_ConfigLib.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_util_DiffLib.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_util_PropLib.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_util_SubstLib.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_util_TunnelChannel.lo subversion/libsvn_repos/libsvn_repos-1.la subversion/libsvn_client/libsvn_client-1.la subversion/libsvn_wc/libsvn_wc-1.la subversion/libsvn_ra/libsvn_ra-1.la subversion/libsvn_delta/libsvn_delta-1.la subversion/libsvn_diff/libsvn_diff-1.la subversion/libsvn_subr/libsvn_subr-1.la subversion/libsvn_fs/libsvn_fs-1.la
libsvnjavahl_OBJECTS = Array.lo AuthnCallback.lo BlameCallback.lo ChangelistCallback.lo ClientContext.lo CommitCallback.lo CommitEditor.lo CommitMessage.lo CopySources.lo CreateJ.lo Credential.lo DiffOptions.lo DiffSummaryReceiver.lo EditorCallbacks.lo EditorProxy.lo EnumMapper.lo ExternalItem.lo File.lo ImportFilterCallback.lo InfoCallback.lo InputStream.lo Iterator.lo JNIByteArray.lo JNICriticalSection.lo JNIMutex.lo JNIStackElement.lo JNIStringHolder.lo JNIUtil.lo ListCallback.lo LockTokenTable.lo LogMessageCallback.lo MessageReceiver.lo NativeStream.lo OperationContext.lo OutputStream.lo PatchCallback.lo Path.lo Pool.lo Prompter.lo PropertyTable.lo ProplistCallback.lo RemoteSession.lo RemoteSessionContext.lo ReposFreezeAction.lo ReposNotifyCallback.lo ReposVerifyCallback.lo Revision.lo RevisionRange.lo RevisionRangeList.lo SVNBase.lo SVNClient.lo SVNRepos.lo StateReporter.lo StatusCallback.lo StringArray.lo SubversionException.lo Targets.lo Utility.lo VersionExtended.lo deprecated.lo jniwrapper/jni_base.lo jniwrapper/jni_channel.lo jniwrapper/jni_class_cache.lo jniwrapper/jni_io_stream.lo jniwrapper/jni_iterator.lo jniwrapper/jni_list.lo jniwrapper/jni_string_map.lo org_apache_subversion_javahl_NativeResources.lo org_apache_subversion_javahl_SVNClient.lo org_apache_subversion_javahl_SVNRepos.lo org_apache_subversion_javahl_remote_CommitEditor.lo org_apache_subversion_javahl_remote_RemoteFactory.lo org_apache_subversion_javahl_remote_RemoteSession.lo org_apache_subversion_javahl_remote_StateReporter.lo org_apache_subversion_javahl_types_RevisionRangeList.lo org_apache_subversion_javahl_types_RuntimeVersion.lo org_apache_subversion_javahl_types_Version.lo org_apache_subversion_javahl_types_VersionExtended.lo org_apache_subversion_javahl_util_ConfigImpl_Category.lo org_apache_subversion_javahl_util_ConfigLib.lo org_apache_subversion_javahl_util_DiffLib.lo org_apache_subversion_javahl_util_PropLib.lo org_apache_subversion_javahl_util_SubstLib.lo org_apache_subversion_javahl_util_TunnelChannel.lo
subversion/bindings/javahl/native/libsvnjavahl-1.la: $(libsvnjavahl_DEPS)
cd subversion/bindings/javahl/native && $(LINK_JAVAHL_CXX) $(libsvnjavahl_LDFLAGS) -o libsvnjavahl-1.la $(LT_NO_UNDEFINED) $(libsvnjavahl_OBJECTS) ../../../../subversion/libsvn_repos/libsvn_repos-1.la ../../../../subversion/libsvn_client/libsvn_client-1.la ../../../../subversion/libsvn_wc/libsvn_wc-1.la ../../../../subversion/libsvn_ra/libsvn_ra-1.la ../../../../subversion/libsvn_delta/libsvn_delta-1.la ../../../../subversion/libsvn_diff/libsvn_diff-1.la ../../../../subversion/libsvn_subr/libsvn_subr-1.la ../../../../subversion/libsvn_fs/libsvn_fs-1.la $(SVN_APRUTIL_LIBS) $(SVN_APR_LIBS) $(SVN_JAVA_SDK_LIBS) $(LIBS)
@@ -879,8 +870,8 @@ subversion/tests/libsvn_subr/subst_translate-test$(EXEEXT): $(subst_translate_te
cd subversion/tests/libsvn_subr && $(LINK) $(subst_translate_test_LDFLAGS) -o subst_translate-test$(EXEEXT) $(subst_translate_test_OBJECTS) ../../../subversion/tests/libsvn_test-1.la ../../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APRUTIL_LIBS) $(SVN_APR_LIBS) $(LIBS)
svn_PATH = subversion/svn
-svn_DEPS = subversion/svn/add-cmd.lo subversion/svn/auth-cmd.lo subversion/svn/blame-cmd.lo subversion/svn/cat-cmd.lo subversion/svn/changelist-cmd.lo subversion/svn/checkout-cmd.lo subversion/svn/cl-conflicts.lo subversion/svn/cleanup-cmd.lo subversion/svn/commit-cmd.lo subversion/svn/conflict-callbacks.lo subversion/svn/copy-cmd.lo subversion/svn/delete-cmd.lo subversion/svn/deprecated.lo subversion/svn/diff-cmd.lo subversion/svn/export-cmd.lo subversion/svn/file-merge.lo subversion/svn/help-cmd.lo subversion/svn/import-cmd.lo subversion/svn/info-cmd.lo subversion/svn/list-cmd.lo subversion/svn/lock-cmd.lo subversion/svn/log-cmd.lo subversion/svn/merge-cmd.lo subversion/svn/mergeinfo-cmd.lo subversion/svn/mkdir-cmd.lo subversion/svn/move-cmd.lo subversion/svn/notify.lo subversion/svn/patch-cmd.lo subversion/svn/propdel-cmd.lo subversion/svn/propedit-cmd.lo subversion/svn/propget-cmd.lo subversion/svn/proplist-cmd.lo subversion/svn/props.lo subversion/svn/propset-cmd.lo subversion/svn/relocate-cmd.lo subversion/svn/resolve-cmd.lo subversion/svn/resolved-cmd.lo subversion/svn/revert-cmd.lo subversion/svn/shelve-cmd.lo subversion/svn/similarity.lo subversion/svn/status-cmd.lo subversion/svn/status.lo subversion/svn/svn.lo subversion/svn/switch-cmd.lo subversion/svn/unlock-cmd.lo subversion/svn/update-cmd.lo subversion/svn/upgrade-cmd.lo subversion/svn/util.lo subversion/libsvn_client/libsvn_client-1.la subversion/libsvn_wc/libsvn_wc-1.la subversion/libsvn_ra/libsvn_ra-1.la subversion/libsvn_delta/libsvn_delta-1.la subversion/libsvn_diff/libsvn_diff-1.la subversion/libsvn_subr/libsvn_subr-1.la
-svn_OBJECTS = add-cmd.lo auth-cmd.lo blame-cmd.lo cat-cmd.lo changelist-cmd.lo checkout-cmd.lo cl-conflicts.lo cleanup-cmd.lo commit-cmd.lo conflict-callbacks.lo copy-cmd.lo delete-cmd.lo deprecated.lo diff-cmd.lo export-cmd.lo file-merge.lo help-cmd.lo import-cmd.lo info-cmd.lo list-cmd.lo lock-cmd.lo log-cmd.lo merge-cmd.lo mergeinfo-cmd.lo mkdir-cmd.lo move-cmd.lo notify.lo patch-cmd.lo propdel-cmd.lo propedit-cmd.lo propget-cmd.lo proplist-cmd.lo props.lo propset-cmd.lo relocate-cmd.lo resolve-cmd.lo resolved-cmd.lo revert-cmd.lo shelve-cmd.lo similarity.lo status-cmd.lo status.lo svn.lo switch-cmd.lo unlock-cmd.lo update-cmd.lo upgrade-cmd.lo util.lo
+svn_DEPS = subversion/svn/add-cmd.lo subversion/svn/auth-cmd.lo subversion/svn/blame-cmd.lo subversion/svn/cat-cmd.lo subversion/svn/changelist-cmd.lo subversion/svn/checkout-cmd.lo subversion/svn/cl-conflicts.lo subversion/svn/cleanup-cmd.lo subversion/svn/commit-cmd.lo subversion/svn/conflict-callbacks.lo subversion/svn/copy-cmd.lo subversion/svn/delete-cmd.lo subversion/svn/deprecated.lo subversion/svn/diff-cmd.lo subversion/svn/export-cmd.lo subversion/svn/file-merge.lo subversion/svn/help-cmd.lo subversion/svn/import-cmd.lo subversion/svn/info-cmd.lo subversion/svn/list-cmd.lo subversion/svn/lock-cmd.lo subversion/svn/log-cmd.lo subversion/svn/merge-cmd.lo subversion/svn/mergeinfo-cmd.lo subversion/svn/mkdir-cmd.lo subversion/svn/move-cmd.lo subversion/svn/notify.lo subversion/svn/patch-cmd.lo subversion/svn/propdel-cmd.lo subversion/svn/propedit-cmd.lo subversion/svn/propget-cmd.lo subversion/svn/proplist-cmd.lo subversion/svn/props.lo subversion/svn/propset-cmd.lo subversion/svn/relocate-cmd.lo subversion/svn/resolve-cmd.lo subversion/svn/resolved-cmd.lo subversion/svn/revert-cmd.lo subversion/svn/shelf-cmd.lo subversion/svn/similarity.lo subversion/svn/status-cmd.lo subversion/svn/status.lo subversion/svn/svn.lo subversion/svn/switch-cmd.lo subversion/svn/unlock-cmd.lo subversion/svn/update-cmd.lo subversion/svn/upgrade-cmd.lo subversion/svn/util.lo subversion/libsvn_client/libsvn_client-1.la subversion/libsvn_wc/libsvn_wc-1.la subversion/libsvn_ra/libsvn_ra-1.la subversion/libsvn_delta/libsvn_delta-1.la subversion/libsvn_diff/libsvn_diff-1.la subversion/libsvn_subr/libsvn_subr-1.la
+svn_OBJECTS = add-cmd.lo auth-cmd.lo blame-cmd.lo cat-cmd.lo changelist-cmd.lo checkout-cmd.lo cl-conflicts.lo cleanup-cmd.lo commit-cmd.lo conflict-callbacks.lo copy-cmd.lo delete-cmd.lo deprecated.lo diff-cmd.lo export-cmd.lo file-merge.lo help-cmd.lo import-cmd.lo info-cmd.lo list-cmd.lo lock-cmd.lo log-cmd.lo merge-cmd.lo mergeinfo-cmd.lo mkdir-cmd.lo move-cmd.lo notify.lo patch-cmd.lo propdel-cmd.lo propedit-cmd.lo propget-cmd.lo proplist-cmd.lo props.lo propset-cmd.lo relocate-cmd.lo resolve-cmd.lo resolved-cmd.lo revert-cmd.lo shelf-cmd.lo similarity.lo status-cmd.lo status.lo svn.lo switch-cmd.lo unlock-cmd.lo update-cmd.lo upgrade-cmd.lo util.lo
subversion/svn/svn$(EXEEXT): $(svn_DEPS)
cd subversion/svn && $(LINK) $(svn_LDFLAGS) -o svn$(EXEEXT) $(svn_OBJECTS) ../../subversion/libsvn_client/libsvn_client-1.la ../../subversion/libsvn_wc/libsvn_wc-1.la ../../subversion/libsvn_ra/libsvn_ra-1.la ../../subversion/libsvn_delta/libsvn_delta-1.la ../../subversion/libsvn_diff/libsvn_diff-1.la ../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APRUTIL_LIBS) $(SVN_APR_LIBS) $(LIBS)
@@ -1097,7 +1088,7 @@ fsmod-lib: subversion/libsvn_delta/libsvn_delta-1.la subversion/libsvn_fs_fs/lib
gnome-keyring-lib: subversion/libsvn_auth_gnome_keyring/libsvn_auth_gnome_keyring-1.la
-javahl-callback-javah:
+javahl-callback-java:
javahl-compat-java:
@@ -1105,17 +1096,15 @@ javahl-compat-tests:
javahl-java:
-javahl-javah:
-
javahl-lib: subversion/bindings/javahl/native/libsvnjavahl-1.la
-javahl-remote-javah:
+javahl-remote-java:
javahl-tests:
-javahl-types-javah:
+javahl-types-java:
-javahl-util-javah:
+javahl-util-java:
kwallet-lib: subversion/libsvn_auth_kwallet/libsvn_auth_kwallet-1.la
@@ -1139,7 +1128,7 @@ swig-rb: subversion/bindings/swig/ruby/client.la subversion/bindings/swig/ruby/c
swig-rb-lib: subversion/bindings/swig/ruby/libsvn_swig_ruby/libsvn_swig_ruby-1.la
-test: subversion/tests/afl/afl-x509$(EXEEXT) subversion/tests/cmdline/atomic-ra-revprop-change$(EXEEXT) subversion/tests/libsvn_subr/auth-test$(EXEEXT) subversion/tests/libsvn_repos/authz-test$(EXEEXT) subversion/tests/libsvn_subr/bit-array-test$(EXEEXT) subversion/tests/libsvn_subr/cache-test$(EXEEXT) subversion/tests/libsvn_subr/checksum-test$(EXEEXT) subversion/tests/libsvn_client/client-test$(EXEEXT) subversion/tests/libsvn_subr/compat-test$(EXEEXT) subversion/tests/libsvn_subr/compress-test$(EXEEXT) subversion/tests/libsvn_subr/config-test$(EXEEXT) subversion/tests/libsvn_wc/conflict-data-test$(EXEEXT) subversion/tests/libsvn_client/conflicts-test$(EXEEXT) subversion/tests/libsvn_subr/crypto-test$(EXEEXT) subversion/tests/libsvn_wc/db-test$(EXEEXT) subversion/tests/libsvn_diff/diff-diff3-test$(EXEEXT) subversion/tests/libsvn_subr/dirent_uri-test$(EXEEXT) subversion/tests/libsvn_repos/dump-load-test$(EXEEXT) subversion/tests/libsvn_wc/entries-compat-test$(EXEEXT) subversion/tests/cmdline/entries-dump$(EXEEXT) subversion/tests/libsvn_subr/error-code-test$(EXEEXT) subversion/tests/libsvn_subr/error-test$(EXEEXT) subversion/tests/libsvn_fs_fs/fs-fs-pack-test$(EXEEXT) subversion/tests/libsvn_fs_fs/fs-fs-private-test$(EXEEXT) subversion/tests/libsvn_fs/fs-sequential-test$(EXEEXT) subversion/tests/libsvn_fs/fs-test$(EXEEXT) subversion/tests/libsvn_fs_x/fs-x-pack-test$(EXEEXT) subversion/tests/libsvn_subr/hashdump-test$(EXEEXT) subversion/tests/libsvn_subr/io-test$(EXEEXT) subversion/tests/libsvn_test-1.la subversion/tests/cmdline/lock-helper$(EXEEXT) subversion/tests/libsvn_fs/locks-test$(EXEEXT) subversion/tests/libsvn_subr/mergeinfo-test$(EXEEXT) subversion/tests/libsvn_client/mtcc-test$(EXEEXT) subversion/tests/libsvn_wc/op-depth-test$(EXEEXT) subversion/tests/libsvn_subr/opt-test$(EXEEXT) subversion/tests/libsvn_subr/packed-data-test$(EXEEXT) subversion/tests/libsvn_diff/parse-diff-test$(EXEEXT) subversion/tests/libsvn_subr/path-test$(EXEEXT) subversion/tests/libsvn_subr/prefix-string-test$(EXEEXT) subversion/tests/libsvn_subr/priority-queue-test$(EXEEXT) subversion/tests/libsvn_wc/pristine-store-test$(EXEEXT) subversion/tests/libsvn_ra_local/ra-local-test$(EXEEXT) subversion/tests/libsvn_ra/ra-test$(EXEEXT) subversion/tests/libsvn_delta/random-test$(EXEEXT) subversion/tests/libsvn_repos/repos-test$(EXEEXT) subversion/tests/libsvn_subr/revision-test$(EXEEXT) subversion/tests/libsvn_subr/root-pools-test$(EXEEXT) subversion/tests/libsvn_subr/skel-test$(EXEEXT) subversion/tests/libsvn_subr/spillbuf-test$(EXEEXT) subversion/tests/libsvn_subr/sqlite-test$(EXEEXT) subversion/tests/libsvn_subr/stream-test$(EXEEXT) subversion/tests/libsvn_fs_x/string-table-test$(EXEEXT) subversion/tests/libsvn_subr/string-test$(EXEEXT) subversion/tests/libsvn_subr/subst_translate-test$(EXEEXT) tools/dev/wc-ng/svn-wc-db-tester$(EXEEXT) subversion/tests/libsvn_delta/svndiff-stream-test$(EXEEXT) subversion/tests/libsvn_delta/svndiff-test$(EXEEXT) subversion/tests/libsvn_subr/time-test$(EXEEXT) subversion/tests/libsvn_subr/translate-test$(EXEEXT) subversion/tests/libsvn_subr/utf-test$(EXEEXT) subversion/tests/libsvn_delta/vdelta-test$(EXEEXT) subversion/tests/libsvn_wc/wc-incomplete-tester$(EXEEXT) subversion/tests/libsvn_wc/wc-lock-tester$(EXEEXT) subversion/tests/libsvn_wc/wc-queries-test$(EXEEXT) subversion/tests/libsvn_wc/wc-test$(EXEEXT) subversion/tests/libsvn_delta/window-test$(EXEEXT) subversion/tests/libsvn_subr/x509-test$(EXEEXT) subversion/tests/libsvn_subr/xml-test$(EXEEXT)
+test: subversion/tests/afl/afl-svndiff$(EXEEXT) subversion/tests/afl/afl-x509$(EXEEXT) subversion/tests/cmdline/atomic-ra-revprop-change$(EXEEXT) subversion/tests/libsvn_subr/auth-test$(EXEEXT) subversion/tests/libsvn_repos/authz-test$(EXEEXT) subversion/tests/libsvn_subr/bit-array-test$(EXEEXT) subversion/tests/libsvn_subr/cache-test$(EXEEXT) subversion/tests/libsvn_subr/checksum-test$(EXEEXT) subversion/tests/libsvn_client/client-test$(EXEEXT) subversion/tests/libsvn_subr/compat-test$(EXEEXT) subversion/tests/libsvn_subr/compress-test$(EXEEXT) subversion/tests/libsvn_subr/config-test$(EXEEXT) subversion/tests/libsvn_wc/conflict-data-test$(EXEEXT) subversion/tests/libsvn_client/conflicts-test$(EXEEXT) subversion/tests/libsvn_subr/crypto-test$(EXEEXT) subversion/tests/libsvn_wc/db-test$(EXEEXT) subversion/tests/libsvn_diff/diff-diff3-test$(EXEEXT) subversion/tests/libsvn_subr/dirent_uri-test$(EXEEXT) subversion/tests/libsvn_repos/dump-load-test$(EXEEXT) subversion/tests/libsvn_wc/entries-compat-test$(EXEEXT) subversion/tests/cmdline/entries-dump$(EXEEXT) subversion/tests/libsvn_subr/error-code-test$(EXEEXT) subversion/tests/libsvn_subr/error-test$(EXEEXT) subversion/tests/libsvn_fs_fs/fs-fs-pack-test$(EXEEXT) subversion/tests/libsvn_fs_fs/fs-fs-private-test$(EXEEXT) subversion/tests/libsvn_fs/fs-sequential-test$(EXEEXT) subversion/tests/libsvn_fs/fs-test$(EXEEXT) subversion/tests/libsvn_fs_x/fs-x-pack-test$(EXEEXT) subversion/tests/libsvn_subr/hashdump-test$(EXEEXT) subversion/tests/libsvn_subr/io-test$(EXEEXT) subversion/tests/libsvn_test-1.la subversion/tests/cmdline/lock-helper$(EXEEXT) subversion/tests/libsvn_fs/locks-test$(EXEEXT) subversion/tests/libsvn_subr/mergeinfo-test$(EXEEXT) subversion/tests/libsvn_client/mtcc-test$(EXEEXT) subversion/tests/libsvn_wc/op-depth-test$(EXEEXT) subversion/tests/libsvn_subr/opt-test$(EXEEXT) subversion/tests/libsvn_subr/packed-data-test$(EXEEXT) subversion/tests/libsvn_diff/parse-diff-test$(EXEEXT) subversion/tests/libsvn_subr/path-test$(EXEEXT) subversion/tests/libsvn_subr/prefix-string-test$(EXEEXT) subversion/tests/libsvn_subr/priority-queue-test$(EXEEXT) subversion/tests/libsvn_wc/pristine-store-test$(EXEEXT) subversion/tests/libsvn_ra_local/ra-local-test$(EXEEXT) subversion/tests/libsvn_ra/ra-test$(EXEEXT) subversion/tests/libsvn_delta/random-test$(EXEEXT) subversion/tests/libsvn_repos/repos-test$(EXEEXT) subversion/tests/libsvn_subr/revision-test$(EXEEXT) subversion/tests/libsvn_subr/root-pools-test$(EXEEXT) subversion/tests/libsvn_subr/skel-test$(EXEEXT) subversion/tests/libsvn_subr/spillbuf-test$(EXEEXT) subversion/tests/libsvn_subr/sqlite-test$(EXEEXT) subversion/tests/libsvn_subr/stream-test$(EXEEXT) subversion/tests/libsvn_fs_x/string-table-test$(EXEEXT) subversion/tests/libsvn_subr/string-test$(EXEEXT) subversion/tests/libsvn_subr/subst_translate-test$(EXEEXT) tools/dev/wc-ng/svn-wc-db-tester$(EXEEXT) subversion/tests/libsvn_delta/svndiff-stream-test$(EXEEXT) subversion/tests/libsvn_delta/svndiff-test$(EXEEXT) subversion/tests/libsvn_subr/time-test$(EXEEXT) subversion/tests/libsvn_subr/translate-test$(EXEEXT) subversion/tests/libsvn_subr/utf-test$(EXEEXT) subversion/tests/libsvn_delta/vdelta-test$(EXEEXT) subversion/tests/libsvn_wc/wc-incomplete-tester$(EXEEXT) subversion/tests/libsvn_wc/wc-lock-tester$(EXEEXT) subversion/tests/libsvn_wc/wc-queries-test$(EXEEXT) subversion/tests/libsvn_wc/wc-test$(EXEEXT) subversion/tests/libsvn_delta/window-test$(EXEEXT) subversion/tests/libsvn_subr/x509-test$(EXEEXT) subversion/tests/libsvn_subr/xml-test$(EXEEXT)
tools: tools/diff/diff$(EXEEXT) tools/diff/diff3$(EXEEXT) tools/diff/diff4$(EXEEXT) tools/dev/fsfs-access-map$(EXEEXT) tools/server-side/mod_dontdothat/mod_dontdothat.la tools/client-side/svn-mergeinfo-normalizer/svn-mergeinfo-normalizer$(EXEEXT) tools/server-side/svn-populate-node-origins-index$(EXEEXT) tools/server-side/svnauthz$(EXEEXT) tools/server-side/svnauthz-validate$(EXEEXT) tools/client-side/svnconflict/svnconflict$(EXEEXT) tools/dev/svnmover/svnmover$(EXEEXT) tools/dev/svnraisetreeconflict/svnraisetreeconflict$(EXEEXT) tools/dev/x509-parser$(EXEEXT)
@@ -1214,9 +1203,9 @@ install-gnome-keyring-lib: subversion/libsvn_auth_gnome_keyring/libsvn_auth_gnom
cd subversion/libsvn_auth_gnome_keyring ; $(INSTALL_GNOME_KEYRING_LIB) libsvn_auth_gnome_keyring-1.la $(DESTDIR)$(gnome_keyring_libdir)/libsvn_auth_gnome_keyring-1.la
$(INSTALL_DATA) subversion/libsvn_auth_gnome_keyring/libsvn_auth_gnome_keyring.pc $(DESTDIR)$(pkgconfig_dir)/libsvn_auth_gnome_keyring.pc
-install-javahl-callback-javah:
- $(MKDIR) $(DESTDIR)$(javahl_callback_javahdir)
- $(INSTALL_EXTRA_JAVAHL_CALLBACK_JAVAH)
+install-javahl-callback-java:
+ $(MKDIR) $(DESTDIR)$(javahl_callback_javadir)
+ $(INSTALL_EXTRA_JAVAHL_CALLBACK_JAVA)
install-javahl-compat-java:
$(MKDIR) $(DESTDIR)$(javahl_compat_javadir)
@@ -1230,31 +1219,27 @@ install-javahl-java:
$(MKDIR) $(DESTDIR)$(javahl_javadir)
$(INSTALL_EXTRA_JAVAHL_JAVA)
-install-javahl-javah:
- $(MKDIR) $(DESTDIR)$(javahl_javahdir)
- $(INSTALL_EXTRA_JAVAHL_JAVAH)
-
install-javahl-lib: subversion/bindings/javahl/native/libsvnjavahl-1.la
$(MKDIR) $(DESTDIR)$(javahl_libdir)
cd subversion/bindings/javahl/native ; $(INSTALL_JAVAHL_LIB) libsvnjavahl-1.la $(DESTDIR)$(javahl_libdir)/libsvnjavahl-1.la
$(INSTALL_EXTRA_JAVAHL_LIB)
-install-javahl-remote-javah:
- $(MKDIR) $(DESTDIR)$(javahl_remote_javahdir)
- $(INSTALL_EXTRA_JAVAHL_REMOTE_JAVAH)
+install-javahl-remote-java:
+ $(MKDIR) $(DESTDIR)$(javahl_remote_javadir)
+ $(INSTALL_EXTRA_JAVAHL_REMOTE_JAVA)
install-javahl-tests:
$(MKDIR) $(DESTDIR)$(javahl_testsdir)
$(INSTALL_EXTRA_JAVAHL_TESTS)
-install-javahl-types-javah:
- $(MKDIR) $(DESTDIR)$(javahl_types_javahdir)
- $(INSTALL_EXTRA_JAVAHL_TYPES_JAVAH)
+install-javahl-types-java:
+ $(MKDIR) $(DESTDIR)$(javahl_types_javadir)
+ $(INSTALL_EXTRA_JAVAHL_TYPES_JAVA)
-install-javahl-util-javah:
- $(MKDIR) $(DESTDIR)$(javahl_util_javahdir)
- $(INSTALL_EXTRA_JAVAHL_UTIL_JAVAH)
+install-javahl-util-java:
+ $(MKDIR) $(DESTDIR)$(javahl_util_javadir)
+ $(INSTALL_EXTRA_JAVAHL_UTIL_JAVA)
install-kwallet-lib: subversion/libsvn_auth_kwallet/libsvn_auth_kwallet-1.la
$(MKDIR) $(DESTDIR)$(kwallet_libdir) $(DESTDIR)$(pkgconfig_dir)
@@ -1460,6 +1445,7 @@ install-include: subversion/include/mod_authz_svn.h subversion/include/mod_dav_s
# Section 9: Shortcut targets for manual builds of specific items
########################################
+afl-svndiff: subversion/tests/afl/afl-svndiff$(EXEEXT)
afl-x509: subversion/tests/afl/afl-x509$(EXEEXT)
atomic-ra-revprop-change: subversion/tests/cmdline/atomic-ra-revprop-change$(EXEEXT)
auth-test: subversion/tests/libsvn_subr/auth-test$(EXEEXT)
@@ -1968,185 +1954,53 @@ subversion/bindings/javahl/classes/org/tigris/subversion/javahl/Version.class: s
subversion/bindings/javahl/classes/org/tigris/subversion/javahl/WC.class: subversion/bindings/javahl/tests/org/tigris/subversion/javahl/WC.java
-subversion/bindings/javahl/include/AuthnCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/AuthnCallback.class
-
-subversion/bindings/javahl/include/BlameCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/BlameCallback.class
-
-subversion/bindings/javahl/include/ChangePath.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/ChangePath.class
-
-subversion/bindings/javahl/include/ChangelistCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ChangelistCallback.class
-
-subversion/bindings/javahl/include/Checksum.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Checksum.class
-
-subversion/bindings/javahl/include/ClientException.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/ClientException.class
-
-subversion/bindings/javahl/include/ClientNotifyCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ClientNotifyCallback.class
-
-subversion/bindings/javahl/include/ClientNotifyInformation.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/ClientNotifyInformation.class
-
-subversion/bindings/javahl/include/CommitCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/CommitCallback.class
-
-subversion/bindings/javahl/include/CommitEditor.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/CommitEditor.class
-
-subversion/bindings/javahl/include/CommitInfo.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/CommitInfo.class
-
-subversion/bindings/javahl/include/CommitItem.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/CommitItem.class
-
-subversion/bindings/javahl/include/CommitItemStateFlags.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/CommitItemStateFlags.class
-
-subversion/bindings/javahl/include/CommitMessageCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/CommitMessageCallback.class
-
-subversion/bindings/javahl/include/ConfigEvent.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ConfigEvent.class
-
-subversion/bindings/javahl/include/ConfigImpl.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/ConfigImpl.class
-
-subversion/bindings/javahl/include/ConfigLib.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/ConfigLib.class
-
-subversion/bindings/javahl/include/ConflictDescriptor.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/ConflictDescriptor.class
-
-subversion/bindings/javahl/include/ConflictResolverCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ConflictResolverCallback.class
-
-subversion/bindings/javahl/include/ConflictResult.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/ConflictResult.class
-
-subversion/bindings/javahl/include/ConflictVersion.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/ConflictVersion.class
-
-subversion/bindings/javahl/include/CopySource.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/CopySource.class
-
-subversion/bindings/javahl/include/Depth.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Depth.class
-
-subversion/bindings/javahl/include/DiffLib.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/DiffLib.class
-
-subversion/bindings/javahl/include/DiffOptions.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/DiffOptions.class
-
-subversion/bindings/javahl/include/DiffSummary.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/DiffSummary.class
-
-subversion/bindings/javahl/include/DiffSummaryCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/DiffSummaryCallback.class
-
-subversion/bindings/javahl/include/DirEntry.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/DirEntry.class
-
-subversion/bindings/javahl/include/ExternalItem.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/ExternalItem.class
-
-subversion/bindings/javahl/include/ISVNClient.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNClient.class
-
-subversion/bindings/javahl/include/ISVNConfig.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNConfig.class
-
-subversion/bindings/javahl/include/ISVNEditor.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNEditor.class
-
-subversion/bindings/javahl/include/ISVNRemote.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNRemote.class
+subversion/bindings/javahl/include/CommitEditor.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/CommitEditor.java
-subversion/bindings/javahl/include/ISVNReporter.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNReporter.class
+subversion/bindings/javahl/include/CommitItemStateFlags.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitItemStateFlags.java
-subversion/bindings/javahl/include/ISVNRepos.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/ISVNRepos.class
+subversion/bindings/javahl/include/ConfigImpl.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/util/ConfigImpl.java
-subversion/bindings/javahl/include/ImportFilterCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ImportFilterCallback.class
+subversion/bindings/javahl/include/ConfigLib.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/util/ConfigLib.java
-subversion/bindings/javahl/include/Info.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Info.class
+subversion/bindings/javahl/include/DiffLib.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/util/DiffLib.java
-subversion/bindings/javahl/include/InfoCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/InfoCallback.class
+subversion/bindings/javahl/include/NativeInputStream.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/types/NativeInputStream.java
-subversion/bindings/javahl/include/InheritedProplistCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/InheritedProplistCallback.class
+subversion/bindings/javahl/include/NativeOutputStream.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/types/NativeOutputStream.java
-subversion/bindings/javahl/include/JNIError.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/JNIError.class
+subversion/bindings/javahl/include/NativeResources.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java
-subversion/bindings/javahl/include/JNIObject.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/JNIObject.class
+subversion/bindings/javahl/include/PropLib.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/util/PropLib.java
-subversion/bindings/javahl/include/ListCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ListCallback.class
+subversion/bindings/javahl/include/RemoteFactory.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RemoteFactory.java
-subversion/bindings/javahl/include/ListItemCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ListItemCallback.class
+subversion/bindings/javahl/include/RemoteSession.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RemoteSession.java
-subversion/bindings/javahl/include/Lock.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Lock.class
+subversion/bindings/javahl/include/RequestChannel.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/util/RequestChannel.java
-subversion/bindings/javahl/include/LogDate.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/LogDate.class
+subversion/bindings/javahl/include/ResponseChannel.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/util/ResponseChannel.java
-subversion/bindings/javahl/include/LogMessageCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/LogMessageCallback.class
+subversion/bindings/javahl/include/Revision.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Revision.java
-subversion/bindings/javahl/include/Mergeinfo.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Mergeinfo.class
+subversion/bindings/javahl/include/RevisionRangeList.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/types/RevisionRangeList.java
-subversion/bindings/javahl/include/NativeException.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/NativeException.class
+subversion/bindings/javahl/include/RuntimeVersion.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/types/RuntimeVersion.java
-subversion/bindings/javahl/include/NativeInputStream.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/NativeInputStream.class
+subversion/bindings/javahl/include/SVNClient.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
-subversion/bindings/javahl/include/NativeOutputStream.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/NativeOutputStream.class
+subversion/bindings/javahl/include/SVNRepos.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNRepos.java
-subversion/bindings/javahl/include/NativeResources.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/NativeResources.class
+subversion/bindings/javahl/include/StateReporter.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/StateReporter.java
-subversion/bindings/javahl/include/NodeKind.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/NodeKind.class
+subversion/bindings/javahl/include/SubstLib.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/util/SubstLib.java
-subversion/bindings/javahl/include/OperationContext.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/OperationContext.class
+subversion/bindings/javahl/include/TunnelChannel.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/util/TunnelChannel.java
-subversion/bindings/javahl/include/PatchCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/PatchCallback.class
+subversion/bindings/javahl/include/UserPasswordCallback.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/UserPasswordCallback.java
-subversion/bindings/javahl/include/ProgressCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ProgressCallback.class
+subversion/bindings/javahl/include/Version.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Version.java
-subversion/bindings/javahl/include/ProgressEvent.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/ProgressEvent.class
-
-subversion/bindings/javahl/include/PropLib.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/PropLib.class
-
-subversion/bindings/javahl/include/Property.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Property.class
-
-subversion/bindings/javahl/include/ProplistCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ProplistCallback.class
-
-subversion/bindings/javahl/include/RemoteFactory.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/RemoteFactory.class
-
-subversion/bindings/javahl/include/RemoteFileRevisionsCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/RemoteFileRevisionsCallback.class
-
-subversion/bindings/javahl/include/RemoteLocationSegmentsCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/RemoteLocationSegmentsCallback.class
-
-subversion/bindings/javahl/include/RemoteSession.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/RemoteSession.class
-
-subversion/bindings/javahl/include/RemoteStatus.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/RemoteStatus.class
-
-subversion/bindings/javahl/include/ReposFreezeAction.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ReposFreezeAction.class
-
-subversion/bindings/javahl/include/ReposNotifyCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ReposNotifyCallback.class
-
-subversion/bindings/javahl/include/ReposNotifyInformation.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/ReposNotifyInformation.class
-
-subversion/bindings/javahl/include/ReposVerifyCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/ReposVerifyCallback.class
-
-subversion/bindings/javahl/include/RequestChannel.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/RequestChannel.class
-
-subversion/bindings/javahl/include/ResponseChannel.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/ResponseChannel.class
-
-subversion/bindings/javahl/include/RetryOpenSession.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/RetryOpenSession.class
-
-subversion/bindings/javahl/include/Revision.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Revision.class
-
-subversion/bindings/javahl/include/RevisionRange.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/RevisionRange.class
-
-subversion/bindings/javahl/include/RevisionRangeList.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/RevisionRangeList.class
-
-subversion/bindings/javahl/include/RuntimeVersion.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/RuntimeVersion.class
-
-subversion/bindings/javahl/include/SVNClient.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/SVNClient.class
-
-subversion/bindings/javahl/include/SVNRepos.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/SVNRepos.class
-
-subversion/bindings/javahl/include/SVNUtil.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/SVNUtil.class
-
-subversion/bindings/javahl/include/StateReporter.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/StateReporter.class
-
-subversion/bindings/javahl/include/Status.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Status.class
-
-subversion/bindings/javahl/include/StatusCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/StatusCallback.class
-
-subversion/bindings/javahl/include/StatusEditor.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/remote/StatusEditor.class
-
-subversion/bindings/javahl/include/SubstLib.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/SubstLib.class
-
-subversion/bindings/javahl/include/SubversionException.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/SubversionException.class
-
-subversion/bindings/javahl/include/Tristate.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Tristate.class
-
-subversion/bindings/javahl/include/TunnelAgent.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/TunnelAgent.class
-
-subversion/bindings/javahl/include/TunnelChannel.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/util/TunnelChannel.class
-
-subversion/bindings/javahl/include/UserPasswordCallback.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/callback/UserPasswordCallback.class
-
-subversion/bindings/javahl/include/Version.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/Version.class
-
-subversion/bindings/javahl/include/VersionExtended.h: subversion/bindings/javahl/classes/org/apache/subversion/javahl/types/VersionExtended.class
+subversion/bindings/javahl/include/VersionExtended.h: subversion/bindings/javahl/src/org/apache/subversion/javahl/types/VersionExtended.java
subversion/bindings/javahl/native/Array.lo: subversion/bindings/javahl/native/Array.cpp subversion/bindings/javahl/native/Array.h subversion/bindings/javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/Pool.h subversion/include/private/svn_debug.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_pools.h subversion/include/svn_types.h
$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/Array.cpp
@@ -2541,6 +2395,8 @@ subversion/libsvn_client/info.lo: subversion/libsvn_client/info.c subversion/inc
subversion/libsvn_client/iprops.lo: subversion/libsvn_client/iprops.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
+subversion/libsvn_client/layout.lo: subversion/libsvn_client/layout.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
+
subversion/libsvn_client/list.lo: subversion/libsvn_client/list.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_magic.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_utf_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
subversion/libsvn_client/locking_commands.lo: subversion/libsvn_client/locking_commands.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/include/svn_xml.h subversion/libsvn_client/client.h subversion/svn_private_config.h
@@ -2563,7 +2419,7 @@ subversion/libsvn_client/ra.lo: subversion/libsvn_client/ra.c subversion/include
subversion/libsvn_client/relocate.lo: subversion/libsvn_client/relocate.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
-subversion/libsvn_client/repos_diff.lo: subversion/libsvn_client/repos_diff.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
+subversion/libsvn_client/repos_diff.lo: subversion/libsvn_client/repos_diff.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
subversion/libsvn_client/resolved.lo: subversion/libsvn_client/resolved.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
@@ -2571,7 +2427,7 @@ subversion/libsvn_client/revert.lo: subversion/libsvn_client/revert.c subversion
subversion/libsvn_client/revisions.lo: subversion/libsvn_client/revisions.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
-subversion/libsvn_client/shelve.lo: subversion/libsvn_client/shelve.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
+subversion/libsvn_client/shelf.lo: subversion/libsvn_client/shelf.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
subversion/libsvn_client/status.lo: subversion/libsvn_client/status.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_editor.h subversion/include/private/svn_magic.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_client/client.h subversion/svn_private_config.h
@@ -2859,7 +2715,7 @@ subversion/libsvn_ra_serf/getlocks.lo: subversion/libsvn_ra_serf/getlocks.c subv
subversion/libsvn_ra_serf/inherited_props.lo: subversion/libsvn_ra_serf/inherited_props.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
-subversion/libsvn_ra_serf/list.lo: subversion/libsvn_ra_serf/list.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
+subversion/libsvn_ra_serf/list.lo: subversion/libsvn_ra_serf/list.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
subversion/libsvn_ra_serf/lock.lo: subversion/libsvn_ra_serf/lock.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
@@ -2935,6 +2791,8 @@ subversion/libsvn_repos/deprecated.lo: subversion/libsvn_repos/deprecated.c subv
subversion/libsvn_repos/dump.lo: subversion/libsvn_repos/dump.c subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mergeinfo_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/svn_private_config.h
+subversion/libsvn_repos/dump_editor.lo: subversion/libsvn_repos/dump_editor.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h
+
subversion/libsvn_repos/fs-wrap.lo: subversion/libsvn_repos/fs-wrap.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_utf_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/libsvn_repos/repos.h subversion/svn_private_config.h
subversion/libsvn_repos/hooks.lo: subversion/libsvn_repos/hooks.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/libsvn_repos/repos.h subversion/svn_private_config.h
@@ -3385,7 +3243,7 @@ subversion/svn/resolved-cmd.lo: subversion/svn/resolved-cmd.c subversion/include
subversion/svn/revert-cmd.lo: subversion/svn/revert-cmd.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
-subversion/svn/shelve-cmd.lo: subversion/svn/shelve-cmd.c subversion/include/private/svn_debug.h subversion/include/private/svn_sorts_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
+subversion/svn/shelf-cmd.lo: subversion/svn/shelf-cmd.c subversion/include/private/svn_client_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_sorts_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
subversion/svn/similarity.lo: subversion/svn/similarity.c subversion/include/private/svn_debug.h subversion/include/private/svn_string_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/svn/cl.h subversion/svn_private_config.h
@@ -3439,7 +3297,7 @@ subversion/svnlook/svnlook.lo: subversion/svnlook/svnlook.c subversion/include/p
subversion/svnmucc/svnmucc.lo: subversion/svnmucc/svnmucc.c subversion/include/private/svn_client_mtcc.h subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/include/svn_wc.h subversion/svn_private_config.h
-subversion/svnrdump/dump_editor.lo: subversion/svnrdump/dump_editor.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/svnrdump/svnrdump.h
+subversion/svnrdump/dump_editor.lo: subversion/svnrdump/dump_editor.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/svnrdump/svnrdump.h
subversion/svnrdump/load_editor.lo: subversion/svnrdump/load_editor.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mergeinfo_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_object_pool.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_string_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/svn_private_config.h subversion/svnrdump/svnrdump.h
@@ -3465,6 +3323,8 @@ subversion/svnsync/sync.lo: subversion/svnsync/sync.c subversion/include/private
subversion/svnversion/svnversion.lo: subversion/svnversion/svnversion.c subversion/include/private/svn_cmdline_private.h subversion/include/private/svn_debug.h subversion/include/private/svn_opt_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/include/svn_wc.h subversion/svn_private_config.h
+subversion/tests/afl/afl-svndiff.lo: subversion/tests/afl/afl-svndiff.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h
+
subversion/tests/afl/afl-x509.lo: subversion/tests/afl/afl-x509.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_x509.h
subversion/tests/cmdline/atomic-ra-revprop-change.lo: subversion/tests/cmdline/atomic-ra-revprop-change.c subversion/include/private/svn_debug.h subversion/include/private/svn_skel.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/svn_private_config.h
diff --git a/build.conf b/build.conf
index 8f01622..7ca4230 100644
--- a/build.conf
+++ b/build.conf
@@ -608,16 +608,14 @@ msvc-export = ../bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h
[javahl-java]
type = java
path = subversion/bindings/javahl/src/org/apache/subversion/javahl
- subversion/bindings/javahl/src/org/apache/subversion/javahl/callback
- subversion/bindings/javahl/src/org/apache/subversion/javahl/remote
- subversion/bindings/javahl/src/org/apache/subversion/javahl/types
- subversion/bindings/javahl/src/org/apache/subversion/javahl/util
-src-root = subversion/bindings/javahl/src
sources = *.java
+native = CommitItemStateFlags.java NativeResources.java SVNClient.java
+ SVNRepos.java
install = javahl-java
link-cmd = $(COMPILE_JAVAHL_JAVAC)
classes = subversion/bindings/javahl/classes
-package-roots = org
+headers = subversion/bindings/javahl/include
+package = org.apache.subversion.javahl
[javahl-compat-java]
type = java
@@ -626,10 +624,12 @@ sources = *.java
install = javahl-java
link-cmd = $(COMPILE_JAVAHL_COMPAT_JAVAC)
classes = subversion/bindings/javahl/classes
-add-deps = $(javahl_java_DEPS)
+add-deps = $(javahl_callback_java_DEPS) $(javahl_remote_java_DEPS)
+ $(javahl_types_java_DEPS) $(javahl_util_java_DEPS)
+ $(javahl_java_DEPS)
### Replace JAR call in INSTALL_EXTRA_JAVAHL_JAVA macro Makefile.in.
#jar = svn-javahl.jar
-package-roots = org
+package = org.tigris.subversion.javahl
[javahl-tests]
type = java
@@ -638,10 +638,12 @@ sources = *.java
install = javahl-java
link-cmd = $(COMPILE_JAVAHL_JAVAC)
classes = subversion/bindings/javahl/classes
-package-roots = org
+package = org.apache.subversion.javahl
### Java targets don't do up-to-date checks yet.
#add-deps = javahl-java
-add-deps = $(javahl_java_DEPS)
+add-deps = $(javahl_callback_java_DEPS) $(javahl_remote_java_DEPS)
+ $(javahl_types_java_DEPS) $(javahl_util_java_DEPS)
+ $(javahl_java_DEPS)
[javahl-compat-tests]
type = java
@@ -650,65 +652,59 @@ sources = *.java
install = javahl-java
link-cmd = $(COMPILE_JAVAHL_COMPAT_JAVAC)
classes = subversion/bindings/javahl/classes
-package-roots = org
+package = org.tigris.subversion.javahl
### Java targets don't do up-to-date checks yet.
#add-deps = javahl-compat-java
add-deps = $(javahl_compat_java_DEPS)
-[javahl-callback-javah]
-type = javah
+[javahl-callback-java]
+type = java
path = subversion/bindings/javahl/src/org/apache/subversion/javahl/callback
classes = subversion/bindings/javahl/classes
headers = subversion/bindings/javahl/include
package = org.apache.subversion.javahl.callback
sources = *.java
-add-deps = $(javahl_java_DEPS)
-install = javahl-javah
-link-cmd = $(COMPILE_JAVAHL_JAVAH) -force
+native = UserPasswordCallback.java
+install = javahl-java
+link-cmd = $(COMPILE_JAVAHL_JAVAC)
-[javahl-remote-javah]
-type = javah
+[javahl-remote-java]
+type = java
path = subversion/bindings/javahl/src/org/apache/subversion/javahl/remote
classes = subversion/bindings/javahl/classes
headers = subversion/bindings/javahl/include
package = org.apache.subversion.javahl.remote
sources = *.java
-add-deps = $(javahl_java_DEPS)
-install = javahl-javah
-link-cmd = $(COMPILE_JAVAHL_JAVAH) -force
+native = CommitEditor.java RemoteFactory.java RemoteSession.java
+ StateReporter.java
+install = javahl-java
+link-cmd = $(COMPILE_JAVAHL_JAVAC)
-[javahl-types-javah]
-type = javah
+[javahl-types-java]
+type = java
path = subversion/bindings/javahl/src/org/apache/subversion/javahl/types
classes = subversion/bindings/javahl/classes
headers = subversion/bindings/javahl/include
package = org.apache.subversion.javahl.types
sources = *.java
-add-deps = $(javahl_java_DEPS)
-install = javahl-javah
-link-cmd = $(COMPILE_JAVAHL_JAVAH) -force
+native = NativeInputStream.java NativeOutputStream.java Revision.java
+ RevisionRangeList.java RuntimeVersion.java VersionExtended.java
+ Version.java
+install = javahl-java
+link-cmd = $(COMPILE_JAVAHL_JAVAC)
-[javahl-util-javah]
-type = javah
+[javahl-util-java]
+type = java
path = subversion/bindings/javahl/src/org/apache/subversion/javahl/util
classes = subversion/bindings/javahl/classes
headers = subversion/bindings/javahl/include
package = org.apache.subversion.javahl.util
sources = *.java
-add-deps = $(javahl_java_DEPS)
-install = javahl-javah
-link-cmd = $(COMPILE_JAVAHL_JAVAH) -force
-
-[javahl-javah]
-type = javah
-path = subversion/bindings/javahl/src/org/apache/subversion/javahl
-classes = subversion/bindings/javahl/classes
-headers = subversion/bindings/javahl/include
-package = org.apache.subversion.javahl
-sources = *.java
-add-deps = $(javahl_java_DEPS)
-install = javahl-javah
-link-cmd = $(COMPILE_JAVAHL_JAVAH) -force
+native = ConfigImpl.java ConfigLib.java DiffLib.java PropLib.java
+ RequestChannel.java ResponseChannel.java SubstLib.java
+ TunnelChannel.java
+install = javahl-java
+link-cmd = $(COMPILE_JAVAHL_JAVAC)
[libsvnjavahl]
description = Subversion Java HighLevel binding
@@ -717,9 +713,9 @@ path = subversion/bindings/javahl/native
libs = libsvn_repos libsvn_client libsvn_wc libsvn_ra libsvn_delta libsvn_diff
libsvn_subr libsvn_fs aprutil apriconv apr java-sdk
sources = *.cpp jniwrapper/*.cpp
-add-deps = $(javahl_java_DEPS) $(javahl_callback_javah_DEPS)
- $(javahl_remote_javah_DEPS) $(javahl_types_javah_DEPS)
- $(javahl_util_javah_DEPS) $(javahl_javah_DEPS)
+add-deps = $(javahl_java_DEPS) $(javahl_callback_java_DEPS)
+ $(javahl_remote_java_DEPS) $(javahl_types_java_DEPS)
+ $(javahl_util_java_DEPS) $(javahl_java_DEPS)
install = javahl-lib
# need special build rule to include -I$(JDK)/include/jni.h
compile-cmd = $(COMPILE_JAVAHL_CXX)
@@ -1588,7 +1584,7 @@ libs = __ALL__
conflict-data-test db-test pristine-store-test entries-compat-test
op-depth-test dirent_uri-test wc-queries-test wc-test
auth-test
- parse-diff-test x509-test xml-test afl-x509 compress-test
+ parse-diff-test x509-test xml-test afl-x509 afl-svndiff compress-test
svndiff-stream-test
[__MORE__]
@@ -1630,7 +1626,7 @@ lang = ruby
[__JAVAHL__]
type = project
path = build/win32
-libs = javahl-java javahl-javah libsvnjavahl
+libs = javahl-java libsvnjavahl
[__JAVAHL_TESTS__]
type = project
@@ -1749,3 +1745,12 @@ sources = afl-x509.c
install = test
libs = libsvn_subr apr
testing = skip
+
+[afl-svndiff]
+description = AFL fuzzer for svndiff to txdelta parser
+type = exe
+path = subversion/tests/afl
+sources = afl-svndiff.c
+install = test
+libs = libsvn_delta libsvn_subr apr
+testing = skip
diff --git a/build/ac-macros/java.m4 b/build/ac-macros/java.m4
index d8a7a36..928a9a3 100644
--- a/build/ac-macros/java.m4
+++ b/build/ac-macros/java.m4
@@ -166,7 +166,7 @@ AC_DEFUN(SVN_FIND_JDK,
# The release for "-source" could actually be greater than that
# of "-target", if we want to cross-compile for lesser JVMs.
if test -z "$JAVAC_FLAGS"; then
- JAVAC_FLAGS="-target $JAVA_OLDEST_WORKING_VER -source 1.6"
+ JAVAC_FLAGS="-target $JAVA_OLDEST_WORKING_VER -source 1.8"
if test "$enable_debugging" = "yes"; then
JAVAC_FLAGS="-g -Xlint -Xlint:unchecked -Xlint:serial -Xlint:path $JAVAC_FLAGS"
if test -z "$JAVAC_COMPAT_FLAGS"; then
diff --git a/build/ac-macros/swig.m4 b/build/ac-macros/swig.m4
index 8119d65..55501fb 100644
--- a/build/ac-macros/swig.m4
+++ b/build/ac-macros/swig.m4
@@ -183,6 +183,11 @@ AC_DEFUN(SVN_FIND_SWIG,
SWIG_RB_COMPILE="none"
SWIG_RB_LINK="none"
if test "$RUBY" != "none"; then
+ if test x"$SWIG_VERSION" = x"3""00""008"; then
+ # Use a local variable to escape the '#' sign.
+ ruby_swig_issue_602='https://subversion.apache.org/docs/release-notes/1.11#ruby-swig-issue-602'
+ AC_MSG_WARN([Ruby bindings are known not to support swig 3.0.8; see $ruby_swig_issue_602])
+ fi
rbconfig="$RUBY -rrbconfig -e "
for var_name in arch archdir CC LDSHARED DLEXT LIBS LIBRUBYARG \
diff --git a/build/generator/gen_base.py b/build/generator/gen_base.py
index f7a75da..e4ed243 100644
--- a/build/generator/gen_base.py
+++ b/build/generator/gen_base.py
@@ -900,115 +900,67 @@ class TargetJava(TargetLinked):
def __init__(self, name, options, gen_obj):
TargetLinked.__init__(self, name, options, gen_obj)
self.link_cmd = options.get('link-cmd')
- self.packages = options.get('package-roots', '').split()
+ self.package = options.get('package')
self.jar = options.get('jar')
self.deps = [ ]
-
-class TargetJavaHeaders(TargetJava):
- def __init__(self, name, options, gen_obj):
- TargetJava.__init__(self, name, options, gen_obj)
self.objext = '.class'
- self.javah_objext = '.h'
self.headers = options.get('headers')
self.classes = options.get('classes')
- self.package = options.get('package')
- self.output_dir = self.headers
+ self.native = options.get('native', '')
+ self.output_dir = self.classes
+ self.headers_dir = self.headers
def add_dependencies(self):
sources = _collect_paths(self.sources, self.path)
+ native = _collect_paths(self.native, self.path)
+
+ class_pkg_list = self.package.split('.')
+ sourcepath = build_path_split(self.path)[:-len(class_pkg_list)]
+ sourcepath = build_path_join(*sourcepath)
for src, reldir in sources:
if src[-5:] != '.java':
raise GenError('ERROR: unknown file extension on ' + src)
+ sfile = SourceFile(src, reldir)
+ sfile.sourcepath = sourcepath
+
class_name = build_path_basename(src[:-5])
- class_header = build_path_join(self.headers, class_name + '.h')
- class_header_win = build_path_join(self.headers,
- self.package.replace(".", "_")
- + "_" + class_name + '.h')
- class_pkg_list = self.package.split('.')
class_pkg = build_path_join(*class_pkg_list)
class_file = ObjectFile(build_path_join(self.classes, class_pkg,
class_name + self.objext),
- self.when)
+ self.compile_cmd, self.when)
class_file.source_generated = 1
class_file.class_name = class_name
- hfile = HeaderFile(class_header, self.package + '.' + class_name,
- self.compile_cmd)
- hfile.filename_win = class_header_win
- hfile.source_generated = 1
- self.gen_obj.graph.add(DT_OBJECT, hfile, class_file)
- self.deps.append(hfile)
-
- # target (a linked item) depends upon object
- self.gen_obj.graph.add(DT_LINK, self.name, hfile)
-
-
- # collect all the paths where stuff might get built
- ### we should collect this from the dependency nodes rather than
- ### the sources. "what dir are you going to put yourself into?"
- self.gen_obj.target_dirs.append(self.path)
- self.gen_obj.target_dirs.append(self.classes)
- self.gen_obj.target_dirs.append(self.headers)
- for pattern in self.sources.split():
- dirname = build_path_dirname(pattern)
- if dirname:
- self.gen_obj.target_dirs.append(build_path_join(self.path, dirname))
-
- self.gen_obj.graph.add(DT_INSTALL, self.name, self)
-
-class TargetJavaClasses(TargetJava):
- def __init__(self, name, options, gen_obj):
- TargetJava.__init__(self, name, options, gen_obj)
- self.objext = '.class'
- self.lang = 'java'
- self.classes = options.get('classes')
- self.output_dir = self.classes
-
- def add_dependencies(self):
- sources = []
- for p in self.path.split():
- sources.extend(_collect_paths(self.sources, p))
- for src, reldir in sources:
- if src[-5:] == '.java':
- objname = src[:-5] + self.objext
-
- # As .class files are likely not generated into the same
- # directory as the source files, the object path may need
- # adjustment. To this effect, take "target_ob.classes" into
- # account.
- dirs = build_path_split(objname)
- sourcedirs = dirs[:-1] # Last element is the .class file name.
- while sourcedirs:
- if sourcedirs.pop() in self.packages:
- sourcepath = build_path_join(*sourcedirs)
- objname = build_path_join(self.classes, *dirs[len(sourcedirs):])
- break
- else:
- raise GenError('Unable to find Java package root in path "%s"' % objname)
- else:
- raise GenError('ERROR: unknown file extension on "' + src + '"')
-
- ofile = ObjectFile(objname, self.compile_cmd, self.when)
- sfile = SourceFile(src, reldir)
- sfile.sourcepath = sourcepath
+ self.gen_obj.graph.add(DT_OBJECT, class_file, sfile)
+ self.gen_obj.graph.add(DT_LINK, self.name, class_file)
+ self.deps.append(class_file)
- # object depends upon source
- self.gen_obj.graph.add(DT_OBJECT, ofile, sfile)
+ if (src, reldir) in native:
+ class_header = build_path_join(self.headers, class_name + '.h')
+ class_header_win = build_path_join(self.headers,
+ self.package.replace(".", "_")
+ + "_" + class_name + '.h')
+ hfile = HeaderFile(class_header, self.package + '.' + class_name,
+ self.compile_cmd)
+ hfile.filename_win = class_header_win
+ hfile.source_generated = 1
+ self.gen_obj.graph.add(DT_OBJECT, hfile, sfile)
+ self.deps.append(hfile)
- # target (a linked item) depends upon object
- self.gen_obj.graph.add(DT_LINK, self.name, ofile)
+ # target (a linked item) depends upon object
+ self.gen_obj.graph.add(DT_LINK, self.name, hfile)
- # Add the class file to the dependency tree for this target
- self.deps.append(ofile)
# collect all the paths where stuff might get built
### we should collect this from the dependency nodes rather than
### the sources. "what dir are you going to put yourself into?"
- self.gen_obj.target_dirs.extend(self.path.split())
+ self.gen_obj.target_dirs.append(self.path)
self.gen_obj.target_dirs.append(self.classes)
+ if self.headers:
+ self.gen_obj.target_dirs.append(self.headers)
for pattern in self.sources.split():
dirname = build_path_dirname(pattern)
if dirname:
@@ -1057,8 +1009,7 @@ _build_types = {
'apache-mod': TargetApacheMod,
'shared-only-lib': TargetSharedOnlyLib,
'shared-only-cxx-lib': TargetSharedOnlyCxxLib,
- 'javah' : TargetJavaHeaders,
- 'java' : TargetJavaClasses,
+ 'java' : TargetJava,
'i18n' : TargetI18N,
'sql-header' : TargetSQLHeader,
}
diff --git a/build/generator/gen_make.py b/build/generator/gen_make.py
index df9677c..e1790b9 100644
--- a/build/generator/gen_make.py
+++ b/build/generator/gen_make.py
@@ -309,6 +309,8 @@ class Generator(gen_base.GeneratorBase):
ezt_target.link_cmd = target_ob.link_cmd
if hasattr(target_ob, 'output_dir'):
ezt_target.output_dir = target_ob.output_dir
+ if hasattr(target_ob, 'headers_dir'):
+ ezt_target.headers_dir = target_ob.headers_dir
# Add additional install dependencies if necessary
if target_ob.add_install_deps:
diff --git a/build/generator/gen_win.py b/build/generator/gen_win.py
index d2a900c..e2f2fe4 100644
--- a/build/generator/gen_win.py
+++ b/build/generator/gen_win.py
@@ -217,7 +217,6 @@ class WinGeneratorBase(gen_win_dependencies.GenDependenciesBase):
if 'java_sdk' not in self._libraries:
install_targets = [x for x in install_targets
if not (isinstance(x, gen_base.TargetJava)
- or isinstance(x, gen_base.TargetJavaHeaders)
or x.name == '__JAVAHL__'
or x.name == '__JAVAHL_TESTS__'
or x.name == 'libsvnjavahl')]
@@ -332,11 +331,9 @@ class WinGeneratorBase(gen_win_dependencies.GenDependenciesBase):
sources = [ ]
javac_exe = "javac"
- javah_exe = "javah"
jar_exe = "jar"
if self.jdk_path:
javac_exe = os.path.join(self.jdk_path, "bin", javac_exe)
- javah_exe = os.path.join(self.jdk_path, "bin", javah_exe)
jar_exe = os.path.join(self.jdk_path, "bin", jar_exe)
if not isinstance(target, gen_base.TargetProject):
@@ -345,25 +342,13 @@ class WinGeneratorBase(gen_win_dependencies.GenDependenciesBase):
ctarget = None
cdesc = None
cignore = None
- if isinstance(target, gen_base.TargetJavaHeaders):
- classes = self.path(target.classes)
- if self.junit_path is not None:
- classes = "%s;%s" % (classes, self.junit_path)
-
- headers = self.path(target.headers)
- classname = target.package + "." + source.class_name
-
- cbuild = "%s -verbose -force -classpath %s -d %s %s" \
- % (self.quote(javah_exe), self.quote(classes),
- self.quote(headers), classname)
-
- ctarget = self.path(object.filename_win)
- cdesc = "Generating %s" % (object.filename_win)
-
- elif isinstance(target, gen_base.TargetJavaClasses):
+ if isinstance(target, gen_base.TargetJava):
classes = targetdir = self.path(target.classes)
if self.junit_path is not None:
classes = "%s;%s" % (classes, self.junit_path)
+ headers = ''
+ if target.headers is not None:
+ headers = '-h %s' % self.quote(self.path(target.headers))
sourcepath = self.path(source.sourcepath)
@@ -373,17 +358,21 @@ class WinGeneratorBase(gen_win_dependencies.GenDependenciesBase):
per_project_flags += "-Xlint:-deprecation -Xlint:-dep-ann" \
" -Xlint:-rawtypes"
- cbuild = ("%s -g -Xlint -Xlint:-options " +
- per_project_flags +
- " -target 1.5 -source 1.5 -classpath "
+ cbuild = ("%s -g -Xlint -Xlint:-options %s %s "
+ " -target 1.8 -source 1.8 -classpath "
" %s -d %s "
" -sourcepath %s $(InputPath)") \
- % tuple(map(self.quote, (javac_exe, classes,
- targetdir, sourcepath)))
+ % (self.quote(javac_exe), per_project_flags, headers,
+ self.quote(classes), self.quote(targetdir),
+ self.quote(sourcepath))
- ctarget = self.path(object.filename)
- cdesc = "Compiling %s" % (source)
+ if isinstance(object, gen_base.HeaderFile):
+ ctarget = self.path(object.filename_win)
+ cdesc = "Generating %s" % (object.filename_win)
+ else:
+ ctarget = self.path(object.filename)
+ cdesc = "Compiling %s" % (source)
rsrc = self.path(str(source))
if quote_path and '-' in rsrc:
@@ -403,7 +392,7 @@ class WinGeneratorBase(gen_win_dependencies.GenDependenciesBase):
custom_desc=cdesc, ignored = cignore,
extension=os.path.splitext(rsrc)[1]))
- if isinstance(target, gen_base.TargetJavaClasses) and target.jar:
+ if isinstance(target, gen_base.TargetJava) and target.jar:
classdir = self.path(target.classes)
jarfile = msvc_path_join(classdir, target.jar)
cbuild = "%s cf %s -C %s %s" \
@@ -507,9 +496,7 @@ class WinGeneratorBase(gen_win_dependencies.GenDependenciesBase):
return name[0] + '.pdb'
def get_output_dir(self, target):
- if isinstance(target, gen_base.TargetJavaHeaders):
- return msvc_path("../" + target.headers)
- elif isinstance(target, gen_base.TargetJavaClasses):
+ if isinstance(target, gen_base.TargetJava):
return msvc_path("../" + target.classes)
else:
return msvc_path(target.path)
diff --git a/build/generator/gen_win_dependencies.py b/build/generator/gen_win_dependencies.py
index a9ee652..2325ccf 100644
--- a/build/generator/gen_win_dependencies.py
+++ b/build/generator/gen_win_dependencies.py
@@ -1067,11 +1067,15 @@ class GenDependenciesBase(gen_base.GeneratorBase):
return
try:
- outfp = subprocess.Popen([os.path.join(jdk_path, 'bin', 'javah.exe'),
- '-version'], stdout=subprocess.PIPE).stdout
+ # Apparently a 1.8 javac writes its version output to stderr, while
+ # a 1.10 javac writes it to stdout. To catch them all, we redirect
+ # stderr to stdout.
+ outfp = subprocess.Popen([os.path.join(jdk_path, 'bin', 'javac.exe'),
+ '-version'], stdout=subprocess.PIPE,
+ stderr=subprocess.STDOUT).stdout
line = outfp.read()
if line:
- vermatch = re.search(r'"(([0-9]+(\.[0-9]+)+)(_[._0-9]+)?)"', line, re.M)
+ vermatch = re.search(r'(([0-9]+(\.[0-9]+)+)(_[._0-9]+)?)', line, re.M)
else:
vermatch = None
diff --git a/build/generator/templates/build-outputs.mk.ezt b/build/generator/templates/build-outputs.mk.ezt
index 3677a6d..8e52bdf 100644
--- a/build/generator/templates/build-outputs.mk.ezt
+++ b/build/generator/templates/build-outputs.mk.ezt
@@ -102,13 +102,9 @@ install-[target.install]: [target.install_deps][end]
[target.varname]_OBJECTS = [for target.objects][if-index target.objects first][else] [end][target.objects][end]
[target.varname]_DEPS = $([target.varname]_HEADERS) $([target.varname]_OBJECTS)[for target.add_deps] [target.add_deps][end][for target.deps][if-index target.deps first][else] [end][target.deps][end]
[target.name]: $([target.varname]_DEPS)
-[if-any target.headers][target.varname]_CLASS_FILENAMES =[for target.header_class_filenames] [target.header_class_filenames][end]
-[target.varname]_CLASSES =[for target.header_classes] [target.header_classes][end]
-$([target.varname]_HEADERS): $([target.varname]_CLASS_FILENAMES)
- [target.link_cmd] -d [target.output_dir] -classpath [target.classes]:$([target.varname]_CLASSPATH) $([target.varname]_CLASSES)
-[end][if-any target.sources][target.varname]_SRC =[for target.sources] [target.sources][end]
-$([target.varname]_OBJECTS): $([target.varname]_SRC)
- [target.link_cmd] -d [target.output_dir] -classpath [target.classes]:$([target.varname]_CLASSPATH) $([target.varname]_SRC)
+[if-any target.sources][target.varname]_SRC =[for target.sources] [target.sources][end]
+$([target.varname]_HEADERS) $([target.varname]_OBJECTS): $([target.varname]_SRC)
+ [target.link_cmd][if-any target.headers] -h [target.headers_dir][end] -d [target.output_dir] -classpath [target.classes]:$([target.varname]_CLASSPATH) $([target.varname]_SRC)
[if-any target.jar]
$(JAR) cf [target.jar_path] -C [target.classes][for target.packages] [target.packages][end][end][end]
[else][is target.type "i18n"][target.varname]_DEPS =[for target.add_deps] [target.add_deps][end][for target.objects] [target.objects][end][for target.deps] [target.deps][end]
diff --git a/build/generator/templates/vcnet_vcxproj.ezt b/build/generator/templates/vcnet_vcxproj.ezt
index 845c322..41c8f08 100644
--- a/build/generator/templates/vcnet_vcxproj.ezt
+++ b/build/generator/templates/vcnet_vcxproj.ezt
@@ -62,7 +62,6 @@
<PreprocessorDefinitions>[if-any instrument_apr_pools]APR_POOL_DEBUG=[instrument_apr_pools];[end][is platforms "x64"]WIN64;[end][for configs.defines][configs.defines];[end]%(PreprocessorDefinitions)</PreprocessorDefinitions>
<WarningLevel>Level4</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- <ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileName>
<DisableSpecificWarnings>4100;4127;4206;4512;4701;4706;4800;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<TreatSpecificWarningsAsErrors>4002;4003;4013;4020;4022;4024;4028;4029;4030;4031;4033;4047;4089;4113;4115;4133;4204;4700;4715;4789;%(TreatSpecificWarningsAsErrors)</TreatSpecificWarningsAsErrors>
[if-any configs.forced_include_files] <ForcedIncludeFiles>[for configs.forced_include_files][configs.forced_include_files];[end]%(ForcedIncludeFiles)</ForcedIncludeFiles>
diff --git a/build/transform_libtool_scripts.sh b/build/transform_libtool_scripts.sh
index cdced3a..c4768ec 100755
--- a/build/transform_libtool_scripts.sh
+++ b/build/transform_libtool_scripts.sh
@@ -49,6 +49,7 @@ transform()
DIR=`pwd`
+transform subversion/tests/afl/afl-svndiff "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so"
transform subversion/tests/afl/afl-x509 "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so"
transform subversion/tests/cmdline/atomic-ra-revprop-change "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_ra/.libs/libsvn_ra-1.so $DIR/subversion/libsvn_ra_local/.libs/libsvn_ra_local-1.so $DIR/subversion/libsvn_ra_serf/.libs/libsvn_ra_serf-1.so $DIR/subversion/libsvn_ra_svn/.libs/libsvn_ra_svn-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so"
transform subversion/tests/libsvn_subr/auth-test "$DIR/subversion/libsvn_auth_gnome_keyring/.libs/libsvn_auth_gnome_keyring-1.so $DIR/subversion/libsvn_auth_kwallet/.libs/libsvn_auth_kwallet-1.so $DIR/subversion/libsvn_delta/.libs/libsvn_delta-1.so $DIR/subversion/libsvn_fs/.libs/libsvn_fs-1.so $DIR/subversion/libsvn_fs_base/.libs/libsvn_fs_base-1.so $DIR/subversion/libsvn_fs_fs/.libs/libsvn_fs_fs-1.so $DIR/subversion/libsvn_fs_util/.libs/libsvn_fs_util-1.so $DIR/subversion/libsvn_fs_x/.libs/libsvn_fs_x-1.so $DIR/subversion/libsvn_repos/.libs/libsvn_repos-1.so $DIR/subversion/libsvn_subr/.libs/libsvn_subr-1.so $DIR/subversion/tests/.libs/libsvn_test-1.so"
diff --git a/build/transform_sql.py b/build/transform_sql.py
index a1cc6f0..18091f2 100755
--- a/build/transform_sql.py
+++ b/build/transform_sql.py
@@ -274,7 +274,7 @@ def main(input_filepath, output):
'/* This file is automatically generated from %s and %s.\n'
' * Do not edit this file -- edit the source and rerun gen-make.py */\n'
'\n'
- % (filename, token_map_filename))
+ % (filename, os.path.basename(token_map_filename)))
proc = Processor(os.path.dirname(input_filepath), output, var_name, token_map)
proc.process_file(input)
diff --git a/build/win32/vc6-build.bat.in b/build/win32/vc6-build.bat.in
deleted file mode 100644
index 7bfce71..0000000
--- a/build/win32/vc6-build.bat.in
+++ /dev/null
@@ -1,176 +0,0 @@
-@echo off
-@REM Licensed to the Apache Software Foundation (ASF) under one
-@REM or more contributor license agreements. See the NOTICE file
-@REM distributed with this work for additional information
-@REM regarding copyright ownership. The ASF licenses this file
-@REM to you under the Apache License, Version 2.0 (the
-@REM "License"); you may not use this file except in compliance
-@REM with the License. You may obtain a copy of the License at
-@REM
-@REM http://www.apache.org/licenses/LICENSE-2.0
-@REM
-@REM Unless required by applicable law or agreed to in writing,
-@REM software distributed under the License is distributed on an
-@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-@REM KIND, either express or implied. See the License for the
-@REM specific language governing permissions and limitations
-@REM under the License.
-
-rem ====== Environment change lives only for the duration of the script
-setlocal
-
-rem ====== Set these shell variables before doing a build.
-rem VER is used to name the output bin dir as svn-win32-%VER%
-set VER=trunk
-rem DIR is appended to src- to make the dir name, e.g., src-trunk
-set DIR=trunk
-set DRIVE=C
-set PYTHONDIR=C:\Python22
-set AWKDIR=C:\SVN\awk
-set NASMDIR=C:\SVN\nasm
-set SDKINC=C:\Program Files\Microsoft SDK\include
-set SDKLIB=C:\Program Files\Microsoft SDK\lib
-set APACHEDIR=C:\Program Files\Apache Group\Apache2
-set GETTEXTINC=C:\SVN\gettext\include
-set GETTEXTLIB=C:\SVN\gettext\lib
-set GETTEXTBIN=C:\SVN\gettext\bin
-rem ====== End of shell variables which need to be set.
-
-rem Set up path to include Python and BDB.
-PATH=%PATH%;%DRIVE%:\SVN\src-%DIR%\db4-win32;%NASMDIR%;%PYTHONDIR%;%AWKDIR%;%GETTEXTBIN%
-
-rem Set INCLUDE and LIB for the msdev builds.
-set INCLUDE=%SDKINC%;%INCLUDE%;%GETTEXTINC%
-set LIB=%SDKLIB%;%LIB%;%GETTEXTLIB%
-
-rem Check that the subversion code exists here.
-cd %DRIVE%:\SVN\src-%DIR%
-if not exist subversion goto wrongstartdir
-cd ..
-
-rem ====== Check the prerequisites are at least in the right place.
-if not exist httpd-2.0.50 goto httpderr
-if not exist nasm goto nasmerr
-if not exist openssl-0.9.7d goto opensslerr
-if not exist src-%DIR% goto svnerr
-if not exist zlib goto zliberr
-if not exist zlib\zlibstat.lib goto zlibstaterr
-if not exist src-%DIR%\db4-win32 goto bdberr
-if not exist gettext goto gettexterr
-goto allok
-
-:wrongstartdir
-echo Unable to find %DRIVE%:\SVN\src-%DIR%\subversion
-goto theveryend
-:httpderr
-echo Unable to find httpd-2.0.50
-goto end
-:nasmerr
-echo Unable to find nasm
-goto end
-:opensslerr
-echo Unable to find openssl-0.9.7d
-goto end
-:svnerr
-echo Unable to find Subversion source in src-%DIR%
-goto end
-:zliberr
-echo Unable to find zlib
-goto end
-:zlibstaterr
-echo Please copy zlib\static32\zlibstat.lib to zlib\zlibstat.lib
-goto end
-:bdberr
-echo Unable to find Berekely DB
-goto end
-:gettexterr
-echo Unable to find gettext
-goto end
-:allok
-
-rem ====== Build openssl.
-cd openssl-0.9.7d
-perl Configure VC-WIN32
-call ms\do_nasm
-nmake -f ms\ntdll.mak
-cd out32dll
-call ..\ms\test
-cd ..\..
-
-rem ====== Build Apache 2
-cd src-%DIR%
-python gen-make.py -t dsp --with-httpd=..\httpd-2.0.50 --with-berkeley-db=db4-win32 --with-openssl=..\openssl-0.9.7d --with-zlib=..\zlib --enable-nls --enable-bdb-in-apr-util
-cd ..
-msdev httpd-2.0.50\apache.dsw /MAKE "BuildBin - Win32 Release"
-
-rem ====== Subversion
-cd src-%DIR%
-msdev subversion_msvc.dsw /USEENV /MAKE "__ALL_TESTS__ - Win32 Release"
-mkdir Release\subversion\tests\cmdline
-xcopy /S /Y subversion\tests\cmdline Release\subversion\tests\cmdline
-copy Release\subversion\mod_dav_svn\mod_dav_svn.so "%APACHEDIR%"\modules
-copy Release\subversion\mod_authz_svn\mod_authz_svn.so "%APACHEDIR%"\modules
-cd ..
-
-rem ====== Copy the binaries into a tree suitable for zipping.
-mkdir svn-win32-%VER%
-mkdir svn-win32-%VER%\bin
-mkdir svn-win32-%VER%\httpd
-mkdir svn-win32-%VER%\iconv
-copy src-%DIR%\db4-win32\bin\libdb42.dll svn-win32-%VER%\bin
-copy openssl-0.9.7d\out32dll\libeay32.dll svn-win32-%VER%\bin
-copy openssl-0.9.7d\out32dll\ssleay32.dll svn-win32-%VER%\bin
-copy httpd-2.0.50\srclib\apr\Release\libapr.dll svn-win32-%VER%\bin
-copy httpd-2.0.50\srclib\apr-iconv\Release\libapriconv.dll svn-win32-%VER%\bin
-copy httpd-2.0.50\srclib\apr-iconv\Release\iconv\*.so svn-win32-%VER%\iconv
-copy httpd-2.0.50\srclib\apr-util\Release\libaprutil.dll svn-win32-%VER%\bin
-copy gettext\bin\intl.dll svn-win32-%VER%\bin
-copy gettext\bin\iconv.dll svn-win32-%VER%\bin
-copy src-%DIR%\Release\subversion\svn\svn.exe svn-win32-%VER%\bin
-copy src-%DIR%\Release\subversion\svnadmin\svnadmin.exe svn-win32-%VER%\bin
-copy src-%DIR%\Release\subversion\svndumpfilter\svndumpfilter.exe svn-win32-%VER%\bin
-copy src-%DIR%\Release\subversion\svnlook\svnlook.exe svn-win32-%VER%\bin
-copy src-%DIR%\Release\subversion\svnserve\svnserve.exe svn-win32-%VER%\bin
-copy src-%DIR%\Release\subversion\svnversion\svnversion.exe svn-win32-%VER%\bin
-copy src-%DIR%\Release\subversion\svnrdump\svnrdump.exe svn-win32-%VER%\bin
-copy src-%DIR%\Release\subversion\svnmucc\svnmucc.exe svn-win32-%VER%\bin
-copy src-%DIR%\Release\subversion\mod_authz_svn\mod_authz_svn.so svn-win32-%VER%\httpd
-copy src-%DIR%\Release\subversion\mod_dav_svn\mod_dav_svn.so svn-win32-%VER%\httpd
-copy svn-win32-%VER%\bin\intl.dll "%APACHEDIR%\bin"
-copy svn-win32-%VER%\bin\iconv.dll "%APACHEDIR%\bin"
-copy svn-win32-%VER%\bin\libdb42.dll "%APACHEDIR%\bin"
-
-rem ====== Configure Apache ready for doing tests.
-@echo off
-echo Configure Apache to use the mod_dav_svn and mod_authz_svn modules
-echo by making sure these lines appear uncommented in httpd.conf:
-echo LoadModule dav_module modules/mod_dav.so
-echo LoadModule dav_fs_module modules/mod_dav_fs.so
-echo LoadModule dav_svn_module modules/mod_dav_svn.so
-echo LoadModule authz_svn_module modules/mod_authz_svn.so
-echo And further down the file add:
-echo ^<Location /svn-test-work/repositories^>
-echo DAV svn
-echo SVNParentPath %DRIVE%:/SVN/src-%DIR%/Release/subversion/tests/cmdline/svn-test-work/repositories
-echo ^</Location^>
-echo ^<Location /svn-test-work/local_tmp/repos^>
-echo DAV svn
-echo SVNPath %DRIVE%:/SVN/src-%DIR%/Release/subversion/tests/cmdline/svn-test-work/local_tmp/repos
-echo ^</Location^>
-echo Then restart Apache.
-
-echo Please configure Apache and press enter:
-pause
-@echo on
-
-rem ====== Run the tests.
-PATH=%DRIVE%:\SVN\svn-win32-%VER%\bin;%PATH%
-cd src-%DIR%
-python win-tests.py -c -r -v
-python win-tests.py -c -r -v -u http://localhost
-cd ..
-
-:end
-cd src-%DIR%
-endlocal
-:theveryend
diff --git a/configure b/configure
index 284b76f..40b9722 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for subversion 1.10.2.
+# Generated by GNU Autoconf 2.69 for subversion 1.11.0.
#
# Report bugs to <http://subversion.apache.org/>.
#
@@ -590,8 +590,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='subversion'
PACKAGE_TARNAME='subversion'
-PACKAGE_VERSION='1.10.2'
-PACKAGE_STRING='subversion 1.10.2'
+PACKAGE_VERSION='1.11.0'
+PACKAGE_STRING='subversion 1.11.0'
PACKAGE_BUGREPORT='http://subversion.apache.org/'
PACKAGE_URL=''
@@ -1488,7 +1488,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures subversion 1.10.2 to adapt to many kinds of systems.
+\`configure' configures subversion 1.11.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1554,7 +1554,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of subversion 1.10.2:";;
+ short | recursive ) echo "Configuration of subversion 1.11.0:";;
esac
cat <<\_ACEOF
@@ -1790,7 +1790,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-subversion configure 1.10.2
+subversion configure 1.11.0
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2334,7 +2334,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by subversion $as_me 1.10.2, which was
+It was created by subversion $as_me 1.11.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2714,8 +2714,8 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: Configuring Subversion 1.10.2" >&5
-$as_echo "$as_me: Configuring Subversion 1.10.2" >&6;}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: Configuring Subversion 1.11.0" >&5
+$as_echo "$as_me: Configuring Subversion 1.11.0" >&6;}
abs_srcdir="`cd $srcdir && pwd`"
@@ -23522,7 +23522,7 @@ test -n "$PYTHON" || PYTHON="none"
# The minimum version for the JVM runtime for our Java bytecode.
-JAVA_OLDEST_WORKING_VER='1.6'
+JAVA_OLDEST_WORKING_VER='1.8'
# SVN_CHECK_JDK sets $JAVA_CLASSPATH
JAVA_OLDEST_WORKING_VER="$JAVA_OLDEST_WORKING_VER"
@@ -23647,7 +23647,7 @@ fi
# The release for "-source" could actually be greater than that
# of "-target", if we want to cross-compile for lesser JVMs.
if test -z "$JAVAC_FLAGS"; then
- JAVAC_FLAGS="-target $JAVA_OLDEST_WORKING_VER -source 1.6"
+ JAVAC_FLAGS="-target $JAVA_OLDEST_WORKING_VER -source 1.8"
if test "$enable_debugging" = "yes"; then
JAVAC_FLAGS="-g -Xlint -Xlint:unchecked -Xlint:serial -Xlint:path $JAVAC_FLAGS"
if test -z "$JAVAC_COMPAT_FLAGS"; then
@@ -23787,7 +23787,7 @@ fi
# The release for "-source" could actually be greater than that
# of "-target", if we want to cross-compile for lesser JVMs.
if test -z "$JAVAC_FLAGS"; then
- JAVAC_FLAGS="-target $JAVA_OLDEST_WORKING_VER -source 1.6"
+ JAVAC_FLAGS="-target $JAVA_OLDEST_WORKING_VER -source 1.8"
if test "$enable_debugging" = "yes"; then
JAVAC_FLAGS="-g -Xlint -Xlint:unchecked -Xlint:serial -Xlint:path $JAVAC_FLAGS"
if test -z "$JAVAC_COMPAT_FLAGS"; then
@@ -23930,7 +23930,7 @@ fi
# The release for "-source" could actually be greater than that
# of "-target", if we want to cross-compile for lesser JVMs.
if test -z "$JAVAC_FLAGS"; then
- JAVAC_FLAGS="-target $JAVA_OLDEST_WORKING_VER -source 1.6"
+ JAVAC_FLAGS="-target $JAVA_OLDEST_WORKING_VER -source 1.8"
if test "$enable_debugging" = "yes"; then
JAVAC_FLAGS="-g -Xlint -Xlint:unchecked -Xlint:serial -Xlint:path $JAVAC_FLAGS"
if test -z "$JAVAC_COMPAT_FLAGS"; then
@@ -24538,6 +24538,12 @@ $as_echo "$as_me: WARNING: perl bindings require perl 5.8.0 or newer." >&2;}
SWIG_RB_COMPILE="none"
SWIG_RB_LINK="none"
if test "$RUBY" != "none"; then
+ if test x"$SWIG_VERSION" = x"3""00""008"; then
+ # Use a local variable to escape the '#' sign.
+ ruby_swig_issue_602='https://subversion.apache.org/docs/release-notes/1.11#ruby-swig-issue-602'
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ruby bindings are known not to support swig 3.0.8; see $ruby_swig_issue_602" >&5
+$as_echo "$as_me: WARNING: Ruby bindings are known not to support swig 3.0.8; see $ruby_swig_issue_602" >&2;}
+ fi
rbconfig="$RUBY -rrbconfig -e "
for var_name in arch archdir CC LDSHARED DLEXT LIBS LIBRUBYARG \
@@ -25047,6 +25053,12 @@ $as_echo "$as_me: WARNING: perl bindings require perl 5.8.0 or newer." >&2;}
SWIG_RB_COMPILE="none"
SWIG_RB_LINK="none"
if test "$RUBY" != "none"; then
+ if test x"$SWIG_VERSION" = x"3""00""008"; then
+ # Use a local variable to escape the '#' sign.
+ ruby_swig_issue_602='https://subversion.apache.org/docs/release-notes/1.11#ruby-swig-issue-602'
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ruby bindings are known not to support swig 3.0.8; see $ruby_swig_issue_602" >&5
+$as_echo "$as_me: WARNING: Ruby bindings are known not to support swig 3.0.8; see $ruby_swig_issue_602" >&2;}
+ fi
rbconfig="$RUBY -rrbconfig -e "
for var_name in arch archdir CC LDSHARED DLEXT LIBS LIBRUBYARG \
@@ -25556,6 +25568,12 @@ $as_echo "$as_me: WARNING: perl bindings require perl 5.8.0 or newer." >&2;}
SWIG_RB_COMPILE="none"
SWIG_RB_LINK="none"
if test "$RUBY" != "none"; then
+ if test x"$SWIG_VERSION" = x"3""00""008"; then
+ # Use a local variable to escape the '#' sign.
+ ruby_swig_issue_602='https://subversion.apache.org/docs/release-notes/1.11#ruby-swig-issue-602'
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ruby bindings are known not to support swig 3.0.8; see $ruby_swig_issue_602" >&5
+$as_echo "$as_me: WARNING: Ruby bindings are known not to support swig 3.0.8; see $ruby_swig_issue_602" >&2;}
+ fi
rbconfig="$RUBY -rrbconfig -e "
for var_name in arch archdir CC LDSHARED DLEXT LIBS LIBRUBYARG \
@@ -26068,6 +26086,12 @@ $as_echo "$as_me: WARNING: perl bindings require perl 5.8.0 or newer." >&2;}
SWIG_RB_COMPILE="none"
SWIG_RB_LINK="none"
if test "$RUBY" != "none"; then
+ if test x"$SWIG_VERSION" = x"3""00""008"; then
+ # Use a local variable to escape the '#' sign.
+ ruby_swig_issue_602='https://subversion.apache.org/docs/release-notes/1.11#ruby-swig-issue-602'
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ruby bindings are known not to support swig 3.0.8; see $ruby_swig_issue_602" >&5
+$as_echo "$as_me: WARNING: Ruby bindings are known not to support swig 3.0.8; see $ruby_swig_issue_602" >&2;}
+ fi
rbconfig="$RUBY -rrbconfig -e "
for var_name in arch archdir CC LDSHARED DLEXT LIBS LIBRUBYARG \
@@ -27400,7 +27424,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by subversion $as_me 1.10.2, which was
+This file was extended by subversion $as_me 1.11.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -27466,7 +27490,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-subversion config.status 1.10.2
+subversion config.status 1.11.0
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/configure.ac b/configure.ac
index 5c646bc..32bc3a5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1306,7 +1306,7 @@ fi
AC_PATH_PROGS(PYTHON, "$PYTHON", none)
# The minimum version for the JVM runtime for our Java bytecode.
-JAVA_OLDEST_WORKING_VER='1.6'
+JAVA_OLDEST_WORKING_VER='1.8'
# SVN_CHECK_JDK sets $JAVA_CLASSPATH
SVN_CHECK_JDK($JAVA_OLDEST_WORKING_VER)
diff --git a/doc/user/svn-best-practices.html b/doc/user/svn-best-practices.html
index b168786..8bfa495 100644
--- a/doc/user/svn-best-practices.html
+++ b/doc/user/svn-best-practices.html
@@ -240,7 +240,7 @@ while somebody else is in the process of committing.</p>
<li>Users commit their day-to-day work on <tt>/trunk</tt>.</li>
<li>Rule #1: <tt>/trunk</tt> must compile and pass regression tests at
-all times. Committers who violate this rule are publically
+all times. Committers who violate this rule are publicly
humiliated.</li>
<li>Rule #2: a single commit (changeset) must not be so large
diff --git a/gen-make.py b/gen-make.py
index 9e410c4..c3df266 100755
--- a/gen-make.py
+++ b/gen-make.py
@@ -48,7 +48,6 @@ sys.path.insert(1, 'build')
gen_modules = {
'make' : ('gen_make', 'Makefiles for POSIX systems'),
- 'dsp' : ('gen_msvc_dsp', 'MSVC 6.x project files'),
'vcproj' : ('gen_vcnet_vcproj', 'VC.Net project files'),
}
diff --git a/subversion/bindings/javahl/README b/subversion/bindings/javahl/README
index ca7b9f4..cb12998 100644
--- a/subversion/bindings/javahl/README
+++ b/subversion/bindings/javahl/README
@@ -5,7 +5,7 @@ JavaHL provides a (mostly native, using JNI and javah) implementation of
a high level Java API for Subversion, which was originally targeted for
implementors of GUI clients and IDE plug-ins for Subversion. JavaHL
currently provides a minimal-but-complete set of APIs which expose the
-core Subversion C API to Java. It requires a JRE 1.6+ (runtime).
+core Subversion C API to Java. It requires a JRE 1.8+ (runtime).
It is currently quite mature, and can be considered for production use.
@@ -14,7 +14,7 @@ Build system
------------
JavaHL should compile and run under Linux, Win32, and Mac OS X with
-JDK 1.6+ and a C++ compiler with a complete implementation of
+JDK 1.8+ and a C++ compiler with a complete implementation of
C++98 (for example, GCC 3.2 and older cannot compile JavaHL 1.9+).
Its build will produce both a native library (libsvnjavahl-1.so on Unix
diff --git a/subversion/bindings/javahl/native/JNIUtil.cpp b/subversion/bindings/javahl/native/JNIUtil.cpp
index e5b7a5d..f62b4f1 100644
--- a/subversion/bindings/javahl/native/JNIUtil.cpp
+++ b/subversion/bindings/javahl/native/JNIUtil.cpp
@@ -578,16 +578,17 @@ jthrowable JNIUtil::wrappedCreateClientException(svn_error_t *err, jthrowable jc
if (JNIUtil::isJavaExceptionThrown())
return NULL;
- const char *source = NULL;
+ std::string source;
#ifdef SVN_DEBUG
#ifndef SVN_ERR__TRACING
if (err->file)
{
- std::ostringstream buf;
- buf << err->file;
+ source = err->file;
if (err->line > 0)
- buf << ':' << err->line;
- source = buf.str().c_str();
+ {
+ source += ':';
+ source += err->line;
+ }
}
#endif
#endif
@@ -615,7 +616,7 @@ jthrowable JNIUtil::wrappedCreateClientException(svn_error_t *err, jthrowable jc
JNICriticalSection cs(*g_logMutex);
g_logStream << "Subversion JavaHL exception thrown, message:<";
g_logStream << msg << ">";
- if (source)
+ if (!source.empty())
g_logStream << " source:<" << source << ">";
if (err->apr_err != -1)
g_logStream << " apr-err:<" << err->apr_err << ">";
@@ -624,7 +625,7 @@ jthrowable JNIUtil::wrappedCreateClientException(svn_error_t *err, jthrowable jc
if (isJavaExceptionThrown())
POP_AND_RETURN_NULL;
- jstring jsource = makeJString(source);
+ jstring jsource = (source.empty() ? NULL : makeJString(source.c_str()));
if (isJavaExceptionThrown())
POP_AND_RETURN_NULL;
diff --git a/subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitItemStateFlags.java b/subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitItemStateFlags.java
index 6e8f593..d07452c 100644
--- a/subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitItemStateFlags.java
+++ b/subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitItemStateFlags.java
@@ -23,6 +23,8 @@
package org.apache.subversion.javahl;
+import java.lang.annotation.*;
+
/**
* The constants in this interface describe the changes to an item to
* be committed.
@@ -32,36 +34,43 @@ public interface CommitItemStateFlags
/**
* the item has been added
*/
+ @Native
public static final int Add=1;
/**
* the item has been deleted
*/
+ @Native
public static final int Delete=2;
/**
* the item has text modifications
*/
+ @Native
public static final int TextMods=4;
/**
* the item has property modifications
*/
+ @Native
public static final int PropMods=8;
/**
* the item has been copied
*/
+ @Native
public static final int IsCopy=16;
/**
* the item has a lock token
*/
+ @Native
public static final int LockToken = 32;
/**
* the item was moved to this location
* @since 1.8
*/
+ @Native
public static int MovedHere = 64;
}
diff --git a/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java b/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java
index af1f45b..e158f5f 100644
--- a/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java
+++ b/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java
@@ -141,12 +141,15 @@ public class NativeResources
*/
private static final void init()
{
+ final int SVN_VER_MAJOR = 1;
+ final int SVN_VER_MINOR = 11;
initNativeLibrary();
version = new Version();
- if (!version.isAtLeast(1, 10, 0))
+ if (!version.isAtLeast(SVN_VER_MAJOR, SVN_VER_MINOR, 0))
{
throw new LinkageError("Native library version must be at least " +
- "1.10.0, but is only " + version);
+ SVN_VER_MAJOR + "." + SVN_VER_MINOR + ".0," +
+ "but is only " + version);
}
runtimeVersion = new RuntimeVersion();
diff --git a/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/UserPasswordCallback.java b/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/UserPasswordCallback.java
index a89f219..215c041 100644
--- a/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/UserPasswordCallback.java
+++ b/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/UserPasswordCallback.java
@@ -23,6 +23,8 @@
package org.apache.subversion.javahl.callback;
+import java.lang.annotation.*;
+
/**
* <p>The interface for requesting authentication credentials from the
* user. Should the javahl bindings need the matching information,
@@ -40,16 +42,19 @@ public interface UserPasswordCallback
/**
* Reject the connection to the server.
*/
+ @Native
public static final int Reject = 0;
/**
* Accept the connection to the server <i>once</i>.
*/
+ @Native
public static final int AcceptTemporary = 1;
/**
* Accept the connection to the server <i>forever</i>.
*/
+ @Native
public static final int AcceptPermanently = 2;
/**
diff --git a/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Revision.java b/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Revision.java
index 675737d..9a80778 100644
--- a/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Revision.java
+++ b/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Revision.java
@@ -23,6 +23,7 @@
package org.apache.subversion.javahl.types;
+import java.lang.annotation.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
@@ -179,6 +180,7 @@ public class Revision implements java.io.Serializable
/**
* Marker revision number for no real revision
*/
+ @Native
public static final int SVN_INVALID_REVNUM = -1;
/**
diff --git a/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java b/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
index 9b629be..fcde634 100644
--- a/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
+++ b/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
@@ -3930,7 +3930,7 @@ public class BasicTests extends SVNTests
/*
This is currently commented out, because we don't have an XFail method
for JavaHL. The resolution is pending the result of issue #3680:
- http://subversion.tigris.org/issues/show_bug.cgi?id=3680
+ https://issues.apache.org/jira/browse/SVN-3680
public void testObstructionTolerance()
throws SubversionException, IOException
diff --git a/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java b/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java
index 5d5e022..62a881f 100644
--- a/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java
+++ b/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java
@@ -3066,7 +3066,7 @@ public class BasicTests extends SVNTests
/*
This is currently commented out, because we don't have an XFail method
for JavaHL. The resolution is pending the result of issue #3680:
- http://subversion.tigris.org/issues/show_bug.cgi?id=3680
+ https://issues.apache.org/jira/browse/SVN-3680
public void testObstructionTolerance()
throws SubversionException, IOException
{
diff --git a/subversion/bindings/swig/perl/native/core.c b/subversion/bindings/swig/perl/native/core.c
index abe64a6..03a0f6d 100644
--- a/subversion/bindings/swig/perl/native/core.c
+++ b/subversion/bindings/swig/perl/native/core.c
@@ -1641,29 +1641,31 @@ SWIG_Perl_SetModule(swig_module_info *module) {
#define SWIGTYPE_p_svn_opt_revision_value_t swig_types[129]
#define SWIGTYPE_p_svn_opt_subcommand_desc2_t swig_types[130]
#define SWIGTYPE_p_svn_opt_subcommand_desc2_t_desc_overrides swig_types[131]
-#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[132]
-#define SWIGTYPE_p_svn_patch_file_t swig_types[133]
-#define SWIGTYPE_p_svn_patch_t swig_types[134]
-#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[135]
-#define SWIGTYPE_p_svn_prop_kind swig_types[136]
-#define SWIGTYPE_p_svn_prop_patch_t swig_types[137]
-#define SWIGTYPE_p_svn_prop_t swig_types[138]
-#define SWIGTYPE_p_svn_stream_mark_t swig_types[139]
-#define SWIGTYPE_p_svn_stream_t swig_types[140]
-#define SWIGTYPE_p_svn_string_t swig_types[141]
-#define SWIGTYPE_p_svn_stringbuf_t swig_types[142]
-#define SWIGTYPE_p_svn_tristate_t swig_types[143]
-#define SWIGTYPE_p_svn_version_checklist_t swig_types[144]
-#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[145]
-#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[146]
-#define SWIGTYPE_p_svn_version_extended_t swig_types[147]
-#define SWIGTYPE_p_svn_version_t swig_types[148]
-#define SWIGTYPE_p_svn_wc_external_item2_t swig_types[149]
-#define SWIGTYPE_p_unsigned_char swig_types[150]
-#define SWIGTYPE_p_unsigned_long swig_types[151]
-#define SWIGTYPE_p_void swig_types[152]
-static swig_type_info *swig_types[154];
-static swig_module_info swig_module = {swig_types, 153, 0, 0, 0, 0};
+#define SWIGTYPE_p_svn_opt_subcommand_desc3_t swig_types[132]
+#define SWIGTYPE_p_svn_opt_subcommand_desc3_t_desc_overrides swig_types[133]
+#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[134]
+#define SWIGTYPE_p_svn_patch_file_t swig_types[135]
+#define SWIGTYPE_p_svn_patch_t swig_types[136]
+#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[137]
+#define SWIGTYPE_p_svn_prop_kind swig_types[138]
+#define SWIGTYPE_p_svn_prop_patch_t swig_types[139]
+#define SWIGTYPE_p_svn_prop_t swig_types[140]
+#define SWIGTYPE_p_svn_stream_mark_t swig_types[141]
+#define SWIGTYPE_p_svn_stream_t swig_types[142]
+#define SWIGTYPE_p_svn_string_t swig_types[143]
+#define SWIGTYPE_p_svn_stringbuf_t swig_types[144]
+#define SWIGTYPE_p_svn_tristate_t swig_types[145]
+#define SWIGTYPE_p_svn_version_checklist_t swig_types[146]
+#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[147]
+#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[148]
+#define SWIGTYPE_p_svn_version_extended_t swig_types[149]
+#define SWIGTYPE_p_svn_version_t swig_types[150]
+#define SWIGTYPE_p_svn_wc_external_item2_t swig_types[151]
+#define SWIGTYPE_p_unsigned_char swig_types[152]
+#define SWIGTYPE_p_unsigned_long swig_types[153]
+#define SWIGTYPE_p_void swig_types[154]
+static swig_type_info *swig_types[156];
+static swig_module_info swig_module = {swig_types, 155, 0, 0, 0, 0};
#define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
#define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
@@ -2160,6 +2162,10 @@ static const svn_version_t * svn_version_invoke_func(
typedef struct {
int optch; const char *desc;
+} svn_opt_subcommand_desc3_t_desc_overrides;
+
+typedef struct {
+ int optch; const char *desc;
} svn_opt_subcommand_desc2_t_desc_overrides;
@@ -10795,6 +10801,635 @@ XS(_wrap_svn_prop_name_is_valid) {
}
+XS(_wrap_svn_opt_subcommand_desc3_t_name_set) {
+ {
+ struct svn_opt_subcommand_desc3_t *arg1 = (struct svn_opt_subcommand_desc3_t *) 0 ;
+ char *arg2 = (char *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ int argvi = 0;
+ dXSARGS;
+
+ if ((items < 2) || (items > 2)) {
+ SWIG_croak("Usage: svn_opt_subcommand_desc3_t_name_set(self,name);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_opt_subcommand_desc3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_opt_subcommand_desc3_t_name_set" "', argument " "1"" of type '" "struct svn_opt_subcommand_desc3_t *""'");
+ }
+ arg1 = (struct svn_opt_subcommand_desc3_t *)(argp1);
+ res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_opt_subcommand_desc3_t_name_set" "', argument " "2"" of type '" "char const *""'");
+ }
+ arg2 = (char *)(buf2);
+ {
+ apr_size_t len = strlen(arg2) + 1;
+ char *copied;
+ if (arg1->name) free((char *)arg1->name);
+ copied = malloc(len);
+ memcpy(copied, arg2, len);
+ arg1->name = copied;
+ }
+ ST(argvi) = sv_newmortal();
+
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ XSRETURN(argvi);
+ fail:
+
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_svn_opt_subcommand_desc3_t_name_get) {
+ {
+ struct svn_opt_subcommand_desc3_t *arg1 = (struct svn_opt_subcommand_desc3_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int argvi = 0;
+ char *result = 0 ;
+ dXSARGS;
+
+ if ((items < 1) || (items > 1)) {
+ SWIG_croak("Usage: svn_opt_subcommand_desc3_t_name_get(self);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_opt_subcommand_desc3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_opt_subcommand_desc3_t_name_get" "', argument " "1"" of type '" "struct svn_opt_subcommand_desc3_t *""'");
+ }
+ arg1 = (struct svn_opt_subcommand_desc3_t *)(argp1);
+ result = (char *) ((arg1)->name);
+ ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
+
+ XSRETURN(argvi);
+ fail:
+
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_svn_opt_subcommand_desc3_t_cmd_func_set) {
+ {
+ struct svn_opt_subcommand_desc3_t *arg1 = (struct svn_opt_subcommand_desc3_t *) 0 ;
+ svn_opt_subcommand_t *arg2 = (svn_opt_subcommand_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int argvi = 0;
+ dXSARGS;
+
+ if ((items < 2) || (items > 2)) {
+ SWIG_croak("Usage: svn_opt_subcommand_desc3_t_cmd_func_set(self,cmd_func);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_opt_subcommand_desc3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_opt_subcommand_desc3_t_cmd_func_set" "', argument " "1"" of type '" "struct svn_opt_subcommand_desc3_t *""'");
+ }
+ arg1 = (struct svn_opt_subcommand_desc3_t *)(argp1);
+ {
+ int res = SWIG_ConvertFunctionPtr(ST(1), (void**)(&arg2), SWIGTYPE_p_f_p_apr_getopt_t_p_void_p_apr_pool_t__p_svn_error_t);
+ if (!SWIG_IsOK(res)) {
+ SWIG_exception_fail(SWIG_ArgError(res), "in method '" "svn_opt_subcommand_desc3_t_cmd_func_set" "', argument " "2"" of type '" "svn_opt_subcommand_t *""'");
+ }
+ }
+ if (arg1) (arg1)->cmd_func = arg2;
+ ST(argvi) = sv_newmortal();
+
+
+ XSRETURN(argvi);
+ fail:
+
+
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_svn_opt_subcommand_desc3_t_cmd_func_get) {
+ {
+ struct svn_opt_subcommand_desc3_t *arg1 = (struct svn_opt_subcommand_desc3_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int argvi = 0;
+ svn_opt_subcommand_t *result = 0 ;
+ dXSARGS;
+
+ if ((items < 1) || (items > 1)) {
+ SWIG_croak("Usage: svn_opt_subcommand_desc3_t_cmd_func_get(self);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_opt_subcommand_desc3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_opt_subcommand_desc3_t_cmd_func_get" "', argument " "1"" of type '" "struct svn_opt_subcommand_desc3_t *""'");
+ }
+ arg1 = (struct svn_opt_subcommand_desc3_t *)(argp1);
+ result = (svn_opt_subcommand_t *) ((arg1)->cmd_func);
+ ST(argvi) = SWIG_NewFunctionPtrObj((void *)(result), SWIGTYPE_p_f_p_apr_getopt_t_p_void_p_apr_pool_t__p_svn_error_t); argvi++ ;
+
+ XSRETURN(argvi);
+ fail:
+
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_svn_opt_subcommand_desc3_t_aliases_set) {
+ {
+ struct svn_opt_subcommand_desc3_t *arg1 = (struct svn_opt_subcommand_desc3_t *) 0 ;
+ char **arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ int argvi = 0;
+ dXSARGS;
+
+ if ((items < 2) || (items > 2)) {
+ SWIG_croak("Usage: svn_opt_subcommand_desc3_t_aliases_set(self,aliases);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_opt_subcommand_desc3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_opt_subcommand_desc3_t_aliases_set" "', argument " "1"" of type '" "struct svn_opt_subcommand_desc3_t *""'");
+ }
+ arg1 = (struct svn_opt_subcommand_desc3_t *)(argp1);
+ res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_p_char, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_opt_subcommand_desc3_t_aliases_set" "', argument " "2"" of type '" "char const *[3]""'");
+ }
+ arg2 = (char **)(argp2);
+ {
+ if (arg2) {
+ size_t ii = 0;
+ for (; ii < (size_t)3; ++ii) *(char const * *)&arg1->aliases[ii] = *((char const * *)arg2 + ii);
+ } else {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in variable '""aliases""' of type '""char const *[3]""'");
+ }
+ }
+ ST(argvi) = sv_newmortal();
+
+
+ XSRETURN(argvi);
+ fail:
+
+
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_svn_opt_subcommand_desc3_t_aliases_get) {
+ {
+ struct svn_opt_subcommand_desc3_t *arg1 = (struct svn_opt_subcommand_desc3_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int argvi = 0;
+ char **result = 0 ;
+ dXSARGS;
+
+ if ((items < 1) || (items > 1)) {
+ SWIG_croak("Usage: svn_opt_subcommand_desc3_t_aliases_get(self);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_opt_subcommand_desc3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_opt_subcommand_desc3_t_aliases_get" "', argument " "1"" of type '" "struct svn_opt_subcommand_desc3_t *""'");
+ }
+ arg1 = (struct svn_opt_subcommand_desc3_t *)(argp1);
+ result = (char **)(char **) ((arg1)->aliases);
+ ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_p_char, 0 | 0); argvi++ ;
+
+ XSRETURN(argvi);
+ fail:
+
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_svn_opt_subcommand_desc3_t_help_set) {
+ {
+ struct svn_opt_subcommand_desc3_t *arg1 = (struct svn_opt_subcommand_desc3_t *) 0 ;
+ char **arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ int argvi = 0;
+ dXSARGS;
+
+ if ((items < 2) || (items > 2)) {
+ SWIG_croak("Usage: svn_opt_subcommand_desc3_t_help_set(self,help);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_opt_subcommand_desc3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_opt_subcommand_desc3_t_help_set" "', argument " "1"" of type '" "struct svn_opt_subcommand_desc3_t *""'");
+ }
+ arg1 = (struct svn_opt_subcommand_desc3_t *)(argp1);
+ res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_p_char, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_opt_subcommand_desc3_t_help_set" "', argument " "2"" of type '" "char const *[100]""'");
+ }
+ arg2 = (char **)(argp2);
+ {
+ if (arg2) {
+ size_t ii = 0;
+ for (; ii < (size_t)100; ++ii) *(char const * *)&arg1->help[ii] = *((char const * *)arg2 + ii);
+ } else {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in variable '""help""' of type '""char const *[100]""'");
+ }
+ }
+ ST(argvi) = sv_newmortal();
+
+
+ XSRETURN(argvi);
+ fail:
+
+
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_svn_opt_subcommand_desc3_t_help_get) {
+ {
+ struct svn_opt_subcommand_desc3_t *arg1 = (struct svn_opt_subcommand_desc3_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int argvi = 0;
+ char **result = 0 ;
+ dXSARGS;
+
+ if ((items < 1) || (items > 1)) {
+ SWIG_croak("Usage: svn_opt_subcommand_desc3_t_help_get(self);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_opt_subcommand_desc3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_opt_subcommand_desc3_t_help_get" "', argument " "1"" of type '" "struct svn_opt_subcommand_desc3_t *""'");
+ }
+ arg1 = (struct svn_opt_subcommand_desc3_t *)(argp1);
+ result = (char **)(char **) ((arg1)->help);
+ ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_p_char, 0 | 0); argvi++ ;
+
+ XSRETURN(argvi);
+ fail:
+
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_svn_opt_subcommand_desc3_t_valid_options_set) {
+ {
+ struct svn_opt_subcommand_desc3_t *arg1 = (struct svn_opt_subcommand_desc3_t *) 0 ;
+ int *arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ int argvi = 0;
+ dXSARGS;
+
+ if ((items < 2) || (items > 2)) {
+ SWIG_croak("Usage: svn_opt_subcommand_desc3_t_valid_options_set(self,valid_options);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_opt_subcommand_desc3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_opt_subcommand_desc3_t_valid_options_set" "', argument " "1"" of type '" "struct svn_opt_subcommand_desc3_t *""'");
+ }
+ arg1 = (struct svn_opt_subcommand_desc3_t *)(argp1);
+ res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_int, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_opt_subcommand_desc3_t_valid_options_set" "', argument " "2"" of type '" "int [50]""'");
+ }
+ arg2 = (int *)(argp2);
+ {
+ if (arg2) {
+ size_t ii = 0;
+ for (; ii < (size_t)50; ++ii) *(int *)&arg1->valid_options[ii] = *((int *)arg2 + ii);
+ } else {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in variable '""valid_options""' of type '""int [50]""'");
+ }
+ }
+ ST(argvi) = sv_newmortal();
+
+
+ XSRETURN(argvi);
+ fail:
+
+
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_svn_opt_subcommand_desc3_t_valid_options_get) {
+ {
+ struct svn_opt_subcommand_desc3_t *arg1 = (struct svn_opt_subcommand_desc3_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int argvi = 0;
+ int *result = 0 ;
+ dXSARGS;
+
+ if ((items < 1) || (items > 1)) {
+ SWIG_croak("Usage: svn_opt_subcommand_desc3_t_valid_options_get(self);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_opt_subcommand_desc3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_opt_subcommand_desc3_t_valid_options_get" "', argument " "1"" of type '" "struct svn_opt_subcommand_desc3_t *""'");
+ }
+ arg1 = (struct svn_opt_subcommand_desc3_t *)(argp1);
+ result = (int *)(int *) ((arg1)->valid_options);
+ ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_int, 0 | 0); argvi++ ;
+
+ XSRETURN(argvi);
+ fail:
+
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_svn_opt_subcommand_desc3_t_desc_overrides_get) {
+ {
+ struct svn_opt_subcommand_desc3_t *arg1 = (struct svn_opt_subcommand_desc3_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int argvi = 0;
+ svn_opt_subcommand_desc3_t_desc_overrides *result = 0 ;
+ dXSARGS;
+
+ if ((items < 1) || (items > 1)) {
+ SWIG_croak("Usage: svn_opt_subcommand_desc3_t_desc_overrides_get(self);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_opt_subcommand_desc3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_opt_subcommand_desc3_t_desc_overrides_get" "', argument " "1"" of type '" "struct svn_opt_subcommand_desc3_t *""'");
+ }
+ arg1 = (struct svn_opt_subcommand_desc3_t *)(argp1);
+ result = (svn_opt_subcommand_desc3_t_desc_overrides *)(svn_opt_subcommand_desc3_t_desc_overrides *) ((arg1)->desc_overrides);
+ ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_svn_opt_subcommand_desc3_t_desc_overrides, 0 | SWIG_SHADOW); argvi++ ;
+
+ XSRETURN(argvi);
+ fail:
+
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_new_svn_opt_subcommand_desc3_t) {
+ {
+ int argvi = 0;
+ struct svn_opt_subcommand_desc3_t *result = 0 ;
+ dXSARGS;
+
+ if ((items < 0) || (items > 0)) {
+ SWIG_croak("Usage: new_svn_opt_subcommand_desc3_t();");
+ }
+ {
+ result = (struct svn_opt_subcommand_desc3_t *)calloc(1, sizeof(struct svn_opt_subcommand_desc3_t));
+
+
+
+ }
+ ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_svn_opt_subcommand_desc3_t, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
+ XSRETURN(argvi);
+ fail:
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_delete_svn_opt_subcommand_desc3_t) {
+ {
+ struct svn_opt_subcommand_desc3_t *arg1 = (struct svn_opt_subcommand_desc3_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int argvi = 0;
+ dXSARGS;
+
+ if ((items < 1) || (items > 1)) {
+ SWIG_croak("Usage: delete_svn_opt_subcommand_desc3_t(self);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_opt_subcommand_desc3_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_svn_opt_subcommand_desc3_t" "', argument " "1"" of type '" "struct svn_opt_subcommand_desc3_t *""'");
+ }
+ arg1 = (struct svn_opt_subcommand_desc3_t *)(argp1);
+ {
+ free((char *) arg1);
+
+
+
+ }
+ ST(argvi) = sv_newmortal();
+
+ XSRETURN(argvi);
+ fail:
+
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_svn_opt_subcommand_desc3_t_desc_overrides_optch_set) {
+ {
+ svn_opt_subcommand_desc3_t_desc_overrides *arg1 = (svn_opt_subcommand_desc3_t_desc_overrides *) 0 ;
+ int arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int argvi = 0;
+ dXSARGS;
+
+ if ((items < 2) || (items > 2)) {
+ SWIG_croak("Usage: svn_opt_subcommand_desc3_t_desc_overrides_optch_set(self,optch);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_opt_subcommand_desc3_t_desc_overrides, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_opt_subcommand_desc3_t_desc_overrides_optch_set" "', argument " "1"" of type '" "svn_opt_subcommand_desc3_t_desc_overrides *""'");
+ }
+ arg1 = (svn_opt_subcommand_desc3_t_desc_overrides *)(argp1);
+ ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "svn_opt_subcommand_desc3_t_desc_overrides_optch_set" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = (int)(val2);
+ if (arg1) (arg1)->optch = arg2;
+ ST(argvi) = sv_newmortal();
+
+
+ XSRETURN(argvi);
+ fail:
+
+
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_svn_opt_subcommand_desc3_t_desc_overrides_optch_get) {
+ {
+ svn_opt_subcommand_desc3_t_desc_overrides *arg1 = (svn_opt_subcommand_desc3_t_desc_overrides *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int argvi = 0;
+ int result;
+ dXSARGS;
+
+ if ((items < 1) || (items > 1)) {
+ SWIG_croak("Usage: svn_opt_subcommand_desc3_t_desc_overrides_optch_get(self);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_opt_subcommand_desc3_t_desc_overrides, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_opt_subcommand_desc3_t_desc_overrides_optch_get" "', argument " "1"" of type '" "svn_opt_subcommand_desc3_t_desc_overrides *""'");
+ }
+ arg1 = (svn_opt_subcommand_desc3_t_desc_overrides *)(argp1);
+ result = (int) ((arg1)->optch);
+ ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
+
+ XSRETURN(argvi);
+ fail:
+
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_svn_opt_subcommand_desc3_t_desc_overrides_desc_set) {
+ {
+ svn_opt_subcommand_desc3_t_desc_overrides *arg1 = (svn_opt_subcommand_desc3_t_desc_overrides *) 0 ;
+ char *arg2 = (char *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ int argvi = 0;
+ dXSARGS;
+
+ if ((items < 2) || (items > 2)) {
+ SWIG_croak("Usage: svn_opt_subcommand_desc3_t_desc_overrides_desc_set(self,desc);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_opt_subcommand_desc3_t_desc_overrides, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_opt_subcommand_desc3_t_desc_overrides_desc_set" "', argument " "1"" of type '" "svn_opt_subcommand_desc3_t_desc_overrides *""'");
+ }
+ arg1 = (svn_opt_subcommand_desc3_t_desc_overrides *)(argp1);
+ res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_opt_subcommand_desc3_t_desc_overrides_desc_set" "', argument " "2"" of type '" "char const *""'");
+ }
+ arg2 = (char *)(buf2);
+ {
+ apr_size_t len = strlen(arg2) + 1;
+ char *copied;
+ if (arg1->desc) free((char *)arg1->desc);
+ copied = malloc(len);
+ memcpy(copied, arg2, len);
+ arg1->desc = copied;
+ }
+ ST(argvi) = sv_newmortal();
+
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ XSRETURN(argvi);
+ fail:
+
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_svn_opt_subcommand_desc3_t_desc_overrides_desc_get) {
+ {
+ svn_opt_subcommand_desc3_t_desc_overrides *arg1 = (svn_opt_subcommand_desc3_t_desc_overrides *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int argvi = 0;
+ char *result = 0 ;
+ dXSARGS;
+
+ if ((items < 1) || (items > 1)) {
+ SWIG_croak("Usage: svn_opt_subcommand_desc3_t_desc_overrides_desc_get(self);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_opt_subcommand_desc3_t_desc_overrides, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_opt_subcommand_desc3_t_desc_overrides_desc_get" "', argument " "1"" of type '" "svn_opt_subcommand_desc3_t_desc_overrides *""'");
+ }
+ arg1 = (svn_opt_subcommand_desc3_t_desc_overrides *)(argp1);
+ result = (char *) ((arg1)->desc);
+ ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
+
+ XSRETURN(argvi);
+ fail:
+
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_new_svn_opt_subcommand_desc3_t_desc_overrides) {
+ {
+ int argvi = 0;
+ svn_opt_subcommand_desc3_t_desc_overrides *result = 0 ;
+ dXSARGS;
+
+ if ((items < 0) || (items > 0)) {
+ SWIG_croak("Usage: new_svn_opt_subcommand_desc3_t_desc_overrides();");
+ }
+ {
+ result = (svn_opt_subcommand_desc3_t_desc_overrides *)calloc(1, sizeof(svn_opt_subcommand_desc3_t_desc_overrides));
+
+
+
+ }
+ ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_svn_opt_subcommand_desc3_t_desc_overrides, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
+ XSRETURN(argvi);
+ fail:
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_delete_svn_opt_subcommand_desc3_t_desc_overrides) {
+ {
+ svn_opt_subcommand_desc3_t_desc_overrides *arg1 = (svn_opt_subcommand_desc3_t_desc_overrides *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int argvi = 0;
+ dXSARGS;
+
+ if ((items < 1) || (items > 1)) {
+ SWIG_croak("Usage: delete_svn_opt_subcommand_desc3_t_desc_overrides(self);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_opt_subcommand_desc3_t_desc_overrides, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_svn_opt_subcommand_desc3_t_desc_overrides" "', argument " "1"" of type '" "svn_opt_subcommand_desc3_t_desc_overrides *""'");
+ }
+ arg1 = (svn_opt_subcommand_desc3_t_desc_overrides *)(argp1);
+ {
+ free((char *) arg1);
+
+
+
+ }
+ ST(argvi) = sv_newmortal();
+
+ XSRETURN(argvi);
+ fail:
+
+ SWIG_croak_null();
+ }
+}
+
+
XS(_wrap_svn_opt_subcommand_desc2_t_name_set) {
{
struct svn_opt_subcommand_desc2_t *arg1 = (struct svn_opt_subcommand_desc2_t *) 0 ;
@@ -11834,6 +12469,50 @@ XS(_wrap_delete_svn_opt_subcommand_desc_t) {
}
+XS(_wrap_svn_opt_get_canonical_subcommand3) {
+ {
+ svn_opt_subcommand_desc3_t *arg1 = (svn_opt_subcommand_desc3_t *) 0 ;
+ char *arg2 = (char *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ int argvi = 0;
+ svn_opt_subcommand_desc3_t *result = 0 ;
+ dXSARGS;
+
+ if ((items < 2) || (items > 2)) {
+ SWIG_croak("Usage: svn_opt_get_canonical_subcommand3(table,cmd_name);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_opt_subcommand_desc3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_opt_get_canonical_subcommand3" "', argument " "1"" of type '" "svn_opt_subcommand_desc3_t const *""'");
+ }
+ arg1 = (svn_opt_subcommand_desc3_t *)(argp1);
+ res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_opt_get_canonical_subcommand3" "', argument " "2"" of type '" "char const *""'");
+ }
+ arg2 = (char *)(buf2);
+ {
+ result = (svn_opt_subcommand_desc3_t *)svn_opt_get_canonical_subcommand3((struct svn_opt_subcommand_desc3_t const *)arg1,(char const *)arg2);
+
+
+
+ }
+ ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_svn_opt_subcommand_desc3_t, 0 | SWIG_SHADOW); argvi++ ;
+
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ XSRETURN(argvi);
+ fail:
+
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ SWIG_croak_null();
+ }
+}
+
+
XS(_wrap_svn_opt_get_canonical_subcommand2) {
{
svn_opt_subcommand_desc2_t *arg1 = (svn_opt_subcommand_desc2_t *) 0 ;
@@ -11922,6 +12601,70 @@ XS(_wrap_svn_opt_get_canonical_subcommand) {
}
+XS(_wrap_svn_opt_get_option_from_code3) {
+ {
+ int arg1 ;
+ apr_getopt_option_t *arg2 = (apr_getopt_option_t *) 0 ;
+ svn_opt_subcommand_desc3_t *arg3 = (svn_opt_subcommand_desc3_t *) 0 ;
+ apr_pool_t *arg4 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool ;
+ int val1 ;
+ int ecode1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ int argvi = 0;
+ apr_getopt_option_t *result = 0 ;
+ dXSARGS;
+
+ {
+ _global_pool = arg4 = svn_swig_pl_make_pool (ST(items-1));
+ SPAGAIN;
+ }
+ if ((items < 3) || (items > 4)) {
+ SWIG_croak("Usage: svn_opt_get_option_from_code3(code,option_table,command,pool);");
+ }
+ ecode1 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(0), &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "svn_opt_get_option_from_code3" "', argument " "1"" of type '" "int""'");
+ }
+ arg1 = (int)(val1);
+ res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_apr_getopt_option_t, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_opt_get_option_from_code3" "', argument " "2"" of type '" "apr_getopt_option_t const *""'");
+ }
+ arg2 = (apr_getopt_option_t *)(argp2);
+ res3 = SWIG_ConvertPtr(ST(2), &argp3,SWIGTYPE_p_svn_opt_subcommand_desc3_t, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "svn_opt_get_option_from_code3" "', argument " "3"" of type '" "svn_opt_subcommand_desc3_t const *""'");
+ }
+ arg3 = (svn_opt_subcommand_desc3_t *)(argp3);
+ if (items > 3) {
+
+ }
+ {
+ result = (apr_getopt_option_t *)svn_opt_get_option_from_code3(arg1,(apr_getopt_option_t const *)arg2,(struct svn_opt_subcommand_desc3_t const *)arg3,arg4);
+
+
+
+ }
+ ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_apr_getopt_option_t, 0 | 0); argvi++ ;
+
+
+
+
+ XSRETURN(argvi);
+ fail:
+
+
+
+
+ SWIG_croak_null();
+ }
+}
+
+
XS(_wrap_svn_opt_get_option_from_code2) {
{
int arg1 ;
@@ -12029,6 +12772,61 @@ XS(_wrap_svn_opt_get_option_from_code) {
}
+XS(_wrap_svn_opt_subcommand_takes_option4) {
+ {
+ svn_opt_subcommand_desc3_t *arg1 = (svn_opt_subcommand_desc3_t *) 0 ;
+ int arg2 ;
+ int *arg3 = (int *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int temp3 ;
+ int res3 = SWIG_TMPOBJ ;
+ int argvi = 0;
+ svn_boolean_t result;
+ dXSARGS;
+
+ arg3 = &temp3;
+ if ((items < 2) || (items > 2)) {
+ SWIG_croak("Usage: svn_opt_subcommand_takes_option4(command,option_code);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_opt_subcommand_desc3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_opt_subcommand_takes_option4" "', argument " "1"" of type '" "svn_opt_subcommand_desc3_t const *""'");
+ }
+ arg1 = (svn_opt_subcommand_desc3_t *)(argp1);
+ ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "svn_opt_subcommand_takes_option4" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = (int)(val2);
+ {
+ result = (svn_boolean_t)svn_opt_subcommand_takes_option4((struct svn_opt_subcommand_desc3_t const *)arg1,arg2,(int const *)arg3);
+
+
+
+ }
+ ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
+ if (SWIG_IsTmpObj(res3)) {
+ if (argvi >= items) EXTEND(sp,1); ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1((*arg3)); argvi++ ;
+ } else {
+ int new_flags = SWIG_IsNewObj(res3) ? (SWIG_POINTER_OWN | 0) : 0;
+ if (argvi >= items) EXTEND(sp,1); ST(argvi) = SWIG_NewPointerObj((void*)(arg3), SWIGTYPE_p_int, new_flags); argvi++ ;
+ }
+
+
+
+ XSRETURN(argvi);
+ fail:
+
+
+
+ SWIG_croak_null();
+ }
+}
+
+
XS(_wrap_svn_opt_subcommand_takes_option3) {
{
svn_opt_subcommand_desc2_t *arg1 = (svn_opt_subcommand_desc2_t *) 0 ;
@@ -12170,6 +12968,89 @@ XS(_wrap_svn_opt_subcommand_takes_option) {
}
+XS(_wrap_svn_opt_print_generic_help3) {
+ {
+ char *arg1 = (char *) 0 ;
+ svn_opt_subcommand_desc3_t *arg2 = (svn_opt_subcommand_desc3_t *) 0 ;
+ apr_getopt_option_t *arg3 = (apr_getopt_option_t *) 0 ;
+ char *arg4 = (char *) 0 ;
+ apr_pool_t *arg5 = (apr_pool_t *) 0 ;
+ FILE *arg6 = (FILE *) 0 ;
+ apr_pool_t *_global_pool ;
+ int res1 ;
+ char *buf1 = 0 ;
+ int alloc1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ int res4 ;
+ char *buf4 = 0 ;
+ int alloc4 = 0 ;
+ int argvi = 0;
+ dXSARGS;
+
+ {
+ _global_pool = arg5 = svn_swig_pl_make_pool (ST(items-1));
+ SPAGAIN;
+ }
+ if ((items < 4) || (items > 6)) {
+ SWIG_croak("Usage: svn_opt_print_generic_help3(header,cmd_table,opt_table,footer,pool,stream);");
+ }
+ res1 = SWIG_AsCharPtrAndSize(ST(0), &buf1, NULL, &alloc1);
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_opt_print_generic_help3" "', argument " "1"" of type '" "char const *""'");
+ }
+ arg1 = (char *)(buf1);
+ res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_svn_opt_subcommand_desc3_t, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_opt_print_generic_help3" "', argument " "2"" of type '" "svn_opt_subcommand_desc3_t const *""'");
+ }
+ arg2 = (svn_opt_subcommand_desc3_t *)(argp2);
+ res3 = SWIG_ConvertPtr(ST(2), &argp3,SWIGTYPE_p_apr_getopt_option_t, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "svn_opt_print_generic_help3" "', argument " "3"" of type '" "apr_getopt_option_t const *""'");
+ }
+ arg3 = (apr_getopt_option_t *)(argp3);
+ res4 = SWIG_AsCharPtrAndSize(ST(3), &buf4, NULL, &alloc4);
+ if (!SWIG_IsOK(res4)) {
+ SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "svn_opt_print_generic_help3" "', argument " "4"" of type '" "char const *""'");
+ }
+ arg4 = (char *)(buf4);
+ if (items > 4) {
+
+ }
+ if (items > 5) {
+ {
+ arg6 = PerlIO_exportFILE (IoIFP (sv_2io (ST(5))), NULL);
+ }
+ }
+ {
+ svn_opt_print_generic_help3((char const *)arg1,(struct svn_opt_subcommand_desc3_t const *)arg2,(apr_getopt_option_t const *)arg3,(char const *)arg4,arg5,arg6);
+
+
+
+ }
+ ST(argvi) = sv_newmortal();
+ if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
+
+
+ if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
+
+
+ XSRETURN(argvi);
+ fail:
+ if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
+
+
+ if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
+
+
+ SWIG_croak_null();
+ }
+}
+
+
XS(_wrap_svn_opt_print_generic_help2) {
{
char *arg1 = (char *) 0 ;
@@ -12318,6 +13199,82 @@ XS(_wrap_svn_opt_format_option) {
}
+XS(_wrap_svn_opt_subcommand_help4) {
+ {
+ char *arg1 = (char *) 0 ;
+ svn_opt_subcommand_desc3_t *arg2 = (svn_opt_subcommand_desc3_t *) 0 ;
+ apr_getopt_option_t *arg3 = (apr_getopt_option_t *) 0 ;
+ int *arg4 = (int *) 0 ;
+ apr_pool_t *arg5 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool ;
+ int res1 ;
+ char *buf1 = 0 ;
+ int alloc1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ int temp4 ;
+ int res4 = SWIG_TMPOBJ ;
+ int argvi = 0;
+ dXSARGS;
+
+ {
+ _global_pool = arg5 = svn_swig_pl_make_pool (ST(items-1));
+ SPAGAIN;
+ }
+ arg4 = &temp4;
+ if ((items < 3) || (items > 4)) {
+ SWIG_croak("Usage: svn_opt_subcommand_help4(subcommand,table,options_table,pool);");
+ }
+ res1 = SWIG_AsCharPtrAndSize(ST(0), &buf1, NULL, &alloc1);
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_opt_subcommand_help4" "', argument " "1"" of type '" "char const *""'");
+ }
+ arg1 = (char *)(buf1);
+ res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_svn_opt_subcommand_desc3_t, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_opt_subcommand_help4" "', argument " "2"" of type '" "svn_opt_subcommand_desc3_t const *""'");
+ }
+ arg2 = (svn_opt_subcommand_desc3_t *)(argp2);
+ res3 = SWIG_ConvertPtr(ST(2), &argp3,SWIGTYPE_p_apr_getopt_option_t, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "svn_opt_subcommand_help4" "', argument " "3"" of type '" "apr_getopt_option_t const *""'");
+ }
+ arg3 = (apr_getopt_option_t *)(argp3);
+ if (items > 3) {
+
+ }
+ {
+ svn_opt_subcommand_help4((char const *)arg1,(struct svn_opt_subcommand_desc3_t const *)arg2,(apr_getopt_option_t const *)arg3,(int const *)arg4,arg5);
+
+
+
+ }
+ ST(argvi) = sv_newmortal();
+ if (SWIG_IsTmpObj(res4)) {
+ if (argvi >= items) EXTEND(sp,1); ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1((*arg4)); argvi++ ;
+ } else {
+ int new_flags = SWIG_IsNewObj(res4) ? (SWIG_POINTER_OWN | 0) : 0;
+ if (argvi >= items) EXTEND(sp,1); ST(argvi) = SWIG_NewPointerObj((void*)(arg4), SWIGTYPE_p_int, new_flags); argvi++ ;
+ }
+ if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
+
+
+
+
+ XSRETURN(argvi);
+ fail:
+ if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
+
+
+
+
+ SWIG_croak_null();
+ }
+}
+
+
XS(_wrap_svn_opt_subcommand_help3) {
{
char *arg1 = (char *) 0 ;
@@ -13804,6 +14761,173 @@ XS(_wrap_svn_opt_parse_path) {
}
+XS(_wrap_svn_opt_print_help5) {
+ {
+ apr_getopt_t *arg1 = (apr_getopt_t *) 0 ;
+ char *arg2 = (char *) 0 ;
+ svn_boolean_t arg3 ;
+ svn_boolean_t arg4 ;
+ svn_boolean_t arg5 ;
+ char *arg6 = (char *) 0 ;
+ char *arg7 = (char *) 0 ;
+ svn_opt_subcommand_desc3_t *arg8 = (svn_opt_subcommand_desc3_t *) 0 ;
+ apr_getopt_option_t *arg9 = (apr_getopt_option_t *) 0 ;
+ int *arg10 = (int *) 0 ;
+ char *arg11 = (char *) 0 ;
+ apr_pool_t *arg12 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ int val4 ;
+ int ecode4 = 0 ;
+ int val5 ;
+ int ecode5 = 0 ;
+ int res6 ;
+ char *buf6 = 0 ;
+ int alloc6 = 0 ;
+ int res7 ;
+ char *buf7 = 0 ;
+ int alloc7 = 0 ;
+ void *argp8 = 0 ;
+ int res8 = 0 ;
+ void *argp9 = 0 ;
+ int res9 = 0 ;
+ int temp10 ;
+ int res10 = SWIG_TMPOBJ ;
+ int res11 ;
+ char *buf11 = 0 ;
+ int alloc11 = 0 ;
+ int argvi = 0;
+ svn_error_t *result = 0 ;
+ dXSARGS;
+
+ {
+ _global_pool = arg12 = svn_swig_pl_make_pool (ST(items-1));
+ SPAGAIN;
+ }
+ arg10 = &temp10;
+ if ((items < 10) || (items > 11)) {
+ SWIG_croak("Usage: svn_opt_print_help5(os,pgm_name,print_version,quiet,verbose,version_footer,header,cmd_table,option_table,footer,pool);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_apr_getopt_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_opt_print_help5" "', argument " "1"" of type '" "apr_getopt_t *""'");
+ }
+ arg1 = (apr_getopt_t *)(argp1);
+ res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_opt_print_help5" "', argument " "2"" of type '" "char const *""'");
+ }
+ arg2 = (char *)(buf2);
+ ecode3 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(2), &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "svn_opt_print_help5" "', argument " "3"" of type '" "svn_boolean_t""'");
+ }
+ arg3 = (svn_boolean_t)(val3);
+ ecode4 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(3), &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "svn_opt_print_help5" "', argument " "4"" of type '" "svn_boolean_t""'");
+ }
+ arg4 = (svn_boolean_t)(val4);
+ ecode5 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(4), &val5);
+ if (!SWIG_IsOK(ecode5)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "svn_opt_print_help5" "', argument " "5"" of type '" "svn_boolean_t""'");
+ }
+ arg5 = (svn_boolean_t)(val5);
+ res6 = SWIG_AsCharPtrAndSize(ST(5), &buf6, NULL, &alloc6);
+ if (!SWIG_IsOK(res6)) {
+ SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "svn_opt_print_help5" "', argument " "6"" of type '" "char const *""'");
+ }
+ arg6 = (char *)(buf6);
+ res7 = SWIG_AsCharPtrAndSize(ST(6), &buf7, NULL, &alloc7);
+ if (!SWIG_IsOK(res7)) {
+ SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "svn_opt_print_help5" "', argument " "7"" of type '" "char const *""'");
+ }
+ arg7 = (char *)(buf7);
+ res8 = SWIG_ConvertPtr(ST(7), &argp8,SWIGTYPE_p_svn_opt_subcommand_desc3_t, 0 | 0 );
+ if (!SWIG_IsOK(res8)) {
+ SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "svn_opt_print_help5" "', argument " "8"" of type '" "svn_opt_subcommand_desc3_t const *""'");
+ }
+ arg8 = (svn_opt_subcommand_desc3_t *)(argp8);
+ res9 = SWIG_ConvertPtr(ST(8), &argp9,SWIGTYPE_p_apr_getopt_option_t, 0 | 0 );
+ if (!SWIG_IsOK(res9)) {
+ SWIG_exception_fail(SWIG_ArgError(res9), "in method '" "svn_opt_print_help5" "', argument " "9"" of type '" "apr_getopt_option_t const *""'");
+ }
+ arg9 = (apr_getopt_option_t *)(argp9);
+ res11 = SWIG_AsCharPtrAndSize(ST(9), &buf11, NULL, &alloc11);
+ if (!SWIG_IsOK(res11)) {
+ SWIG_exception_fail(SWIG_ArgError(res11), "in method '" "svn_opt_print_help5" "', argument " "11"" of type '" "char const *""'");
+ }
+ arg11 = (char *)(buf11);
+ if (items > 10) {
+
+ }
+ {
+ result = (svn_error_t *)svn_opt_print_help5(arg1,(char const *)arg2,arg3,arg4,arg5,(char const *)arg6,(char const *)arg7,(struct svn_opt_subcommand_desc3_t const *)arg8,(apr_getopt_option_t const *)arg9,(int const *)arg10,(char const *)arg11,arg12);
+
+
+
+ }
+ {
+ if (result) {
+ SV *exception_handler = perl_get_sv ("SVN::Error::handler", FALSE);
+
+ if (SvOK(exception_handler)) {
+ SV *callback_result;
+
+ PUTBACK;
+ svn_swig_pl_callback_thunk (CALL_SV, exception_handler,
+ &callback_result, "S", result,
+ SWIGTYPE_p_svn_error_t);
+ SPAGAIN;
+ } else {
+ ST(argvi) = SWIG_NewPointerObj(result, SWIGTYPE_p_svn_error_t, 0);
+ argvi++;
+ }
+ }
+ }
+ if (SWIG_IsTmpObj(res10)) {
+ if (argvi >= items) EXTEND(sp,1); ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1((*arg10)); argvi++ ;
+ } else {
+ int new_flags = SWIG_IsNewObj(res10) ? (SWIG_POINTER_OWN | 0) : 0;
+ if (argvi >= items) EXTEND(sp,1); ST(argvi) = SWIG_NewPointerObj((void*)(arg10), SWIGTYPE_p_int, new_flags); argvi++ ;
+ }
+
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+
+
+
+ if (alloc6 == SWIG_NEWOBJ) free((char*)buf6);
+ if (alloc7 == SWIG_NEWOBJ) free((char*)buf7);
+
+
+
+ if (alloc11 == SWIG_NEWOBJ) free((char*)buf11);
+
+ XSRETURN(argvi);
+ fail:
+
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+
+
+
+ if (alloc6 == SWIG_NEWOBJ) free((char*)buf6);
+ if (alloc7 == SWIG_NEWOBJ) free((char*)buf7);
+
+
+
+ if (alloc11 == SWIG_NEWOBJ) free((char*)buf11);
+
+ SWIG_croak_null();
+ }
+}
+
+
XS(_wrap_svn_opt_print_help4) {
{
apr_getopt_t *arg1 = (apr_getopt_t *) 0 ;
@@ -48155,6 +49279,8 @@ static swig_type_info _swigt__p_svn_opt_revision_t = {"_p_svn_opt_revision_t", "
static swig_type_info _swigt__p_svn_opt_revision_value_t = {"_p_svn_opt_revision_value_t", "union svn_opt_revision_value_t *|svn_opt_revision_value_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc2_t = {"_p_svn_opt_subcommand_desc2_t", "struct svn_opt_subcommand_desc2_t *|svn_opt_subcommand_desc2_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc2_t_desc_overrides = {"_p_svn_opt_subcommand_desc2_t_desc_overrides", "svn_opt_subcommand_desc2_t_desc_overrides *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_svn_opt_subcommand_desc3_t = {"_p_svn_opt_subcommand_desc3_t", "struct svn_opt_subcommand_desc3_t *|svn_opt_subcommand_desc3_t *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_svn_opt_subcommand_desc3_t_desc_overrides = {"_p_svn_opt_subcommand_desc3_t_desc_overrides", "svn_opt_subcommand_desc3_t_desc_overrides *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc_t = {"_p_svn_opt_subcommand_desc_t", "struct svn_opt_subcommand_desc_t *|svn_opt_subcommand_desc_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_patch_file_t = {"_p_svn_patch_file_t", "struct svn_patch_file_t *|svn_patch_file_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_patch_t = {"_p_svn_patch_t", "struct svn_patch_t *|svn_patch_t *", 0, 0, (void*)0, 0};
@@ -48310,6 +49436,8 @@ static swig_type_info *swig_type_initial[] = {
&_swigt__p_svn_opt_revision_value_t,
&_swigt__p_svn_opt_subcommand_desc2_t,
&_swigt__p_svn_opt_subcommand_desc2_t_desc_overrides,
+ &_swigt__p_svn_opt_subcommand_desc3_t,
+ &_swigt__p_svn_opt_subcommand_desc3_t_desc_overrides,
&_swigt__p_svn_opt_subcommand_desc_t,
&_swigt__p_svn_patch_file_t,
&_swigt__p_svn_patch_t,
@@ -48465,6 +49593,8 @@ static swig_cast_info _swigc__p_svn_opt_revision_t[] = { {&_swigt__p_svn_opt_re
static swig_cast_info _swigc__p_svn_opt_revision_value_t[] = { {&_swigt__p_svn_opt_revision_value_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc2_t[] = { {&_swigt__p_svn_opt_subcommand_desc2_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc2_t_desc_overrides[] = { {&_swigt__p_svn_opt_subcommand_desc2_t_desc_overrides, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_svn_opt_subcommand_desc3_t[] = { {&_swigt__p_svn_opt_subcommand_desc3_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_svn_opt_subcommand_desc3_t_desc_overrides[] = { {&_swigt__p_svn_opt_subcommand_desc3_t_desc_overrides, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc_t[] = { {&_swigt__p_svn_opt_subcommand_desc_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_patch_file_t[] = { {&_swigt__p_svn_patch_file_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_patch_t[] = { {&_swigt__p_svn_patch_t, 0, 0, 0},{0, 0, 0, 0}};
@@ -48620,6 +49750,8 @@ static swig_cast_info *swig_cast_initial[] = {
_swigc__p_svn_opt_revision_value_t,
_swigc__p_svn_opt_subcommand_desc2_t,
_swigc__p_svn_opt_subcommand_desc2_t_desc_overrides,
+ _swigc__p_svn_opt_subcommand_desc3_t,
+ _swigc__p_svn_opt_subcommand_desc3_t_desc_overrides,
_swigc__p_svn_opt_subcommand_desc_t,
_swigc__p_svn_patch_file_t,
_swigc__p_svn_patch_t,
@@ -48878,6 +50010,25 @@ static swig_command_info swig_commands[] = {
{"SVN::_Core::svn_categorize_props", _wrap_svn_categorize_props},
{"SVN::_Core::svn_prop_diffs", _wrap_svn_prop_diffs},
{"SVN::_Core::svn_prop_name_is_valid", _wrap_svn_prop_name_is_valid},
+{"SVN::_Core::svn_opt_subcommand_desc3_t_name_set", _wrap_svn_opt_subcommand_desc3_t_name_set},
+{"SVN::_Core::svn_opt_subcommand_desc3_t_name_get", _wrap_svn_opt_subcommand_desc3_t_name_get},
+{"SVN::_Core::svn_opt_subcommand_desc3_t_cmd_func_set", _wrap_svn_opt_subcommand_desc3_t_cmd_func_set},
+{"SVN::_Core::svn_opt_subcommand_desc3_t_cmd_func_get", _wrap_svn_opt_subcommand_desc3_t_cmd_func_get},
+{"SVN::_Core::svn_opt_subcommand_desc3_t_aliases_set", _wrap_svn_opt_subcommand_desc3_t_aliases_set},
+{"SVN::_Core::svn_opt_subcommand_desc3_t_aliases_get", _wrap_svn_opt_subcommand_desc3_t_aliases_get},
+{"SVN::_Core::svn_opt_subcommand_desc3_t_help_set", _wrap_svn_opt_subcommand_desc3_t_help_set},
+{"SVN::_Core::svn_opt_subcommand_desc3_t_help_get", _wrap_svn_opt_subcommand_desc3_t_help_get},
+{"SVN::_Core::svn_opt_subcommand_desc3_t_valid_options_set", _wrap_svn_opt_subcommand_desc3_t_valid_options_set},
+{"SVN::_Core::svn_opt_subcommand_desc3_t_valid_options_get", _wrap_svn_opt_subcommand_desc3_t_valid_options_get},
+{"SVN::_Core::svn_opt_subcommand_desc3_t_desc_overrides_get", _wrap_svn_opt_subcommand_desc3_t_desc_overrides_get},
+{"SVN::_Core::new_svn_opt_subcommand_desc3_t", _wrap_new_svn_opt_subcommand_desc3_t},
+{"SVN::_Core::delete_svn_opt_subcommand_desc3_t", _wrap_delete_svn_opt_subcommand_desc3_t},
+{"SVN::_Core::svn_opt_subcommand_desc3_t_desc_overrides_optch_set", _wrap_svn_opt_subcommand_desc3_t_desc_overrides_optch_set},
+{"SVN::_Core::svn_opt_subcommand_desc3_t_desc_overrides_optch_get", _wrap_svn_opt_subcommand_desc3_t_desc_overrides_optch_get},
+{"SVN::_Core::svn_opt_subcommand_desc3_t_desc_overrides_desc_set", _wrap_svn_opt_subcommand_desc3_t_desc_overrides_desc_set},
+{"SVN::_Core::svn_opt_subcommand_desc3_t_desc_overrides_desc_get", _wrap_svn_opt_subcommand_desc3_t_desc_overrides_desc_get},
+{"SVN::_Core::new_svn_opt_subcommand_desc3_t_desc_overrides", _wrap_new_svn_opt_subcommand_desc3_t_desc_overrides},
+{"SVN::_Core::delete_svn_opt_subcommand_desc3_t_desc_overrides", _wrap_delete_svn_opt_subcommand_desc3_t_desc_overrides},
{"SVN::_Core::svn_opt_subcommand_desc2_t_name_set", _wrap_svn_opt_subcommand_desc2_t_name_set},
{"SVN::_Core::svn_opt_subcommand_desc2_t_name_get", _wrap_svn_opt_subcommand_desc2_t_name_get},
{"SVN::_Core::svn_opt_subcommand_desc2_t_cmd_func_set", _wrap_svn_opt_subcommand_desc2_t_cmd_func_set},
@@ -48909,15 +50060,20 @@ static swig_command_info swig_commands[] = {
{"SVN::_Core::svn_opt_subcommand_desc_t_valid_options_get", _wrap_svn_opt_subcommand_desc_t_valid_options_get},
{"SVN::_Core::new_svn_opt_subcommand_desc_t", _wrap_new_svn_opt_subcommand_desc_t},
{"SVN::_Core::delete_svn_opt_subcommand_desc_t", _wrap_delete_svn_opt_subcommand_desc_t},
+{"SVN::_Core::svn_opt_get_canonical_subcommand3", _wrap_svn_opt_get_canonical_subcommand3},
{"SVN::_Core::svn_opt_get_canonical_subcommand2", _wrap_svn_opt_get_canonical_subcommand2},
{"SVN::_Core::svn_opt_get_canonical_subcommand", _wrap_svn_opt_get_canonical_subcommand},
+{"SVN::_Core::svn_opt_get_option_from_code3", _wrap_svn_opt_get_option_from_code3},
{"SVN::_Core::svn_opt_get_option_from_code2", _wrap_svn_opt_get_option_from_code2},
{"SVN::_Core::svn_opt_get_option_from_code", _wrap_svn_opt_get_option_from_code},
+{"SVN::_Core::svn_opt_subcommand_takes_option4", _wrap_svn_opt_subcommand_takes_option4},
{"SVN::_Core::svn_opt_subcommand_takes_option3", _wrap_svn_opt_subcommand_takes_option3},
{"SVN::_Core::svn_opt_subcommand_takes_option2", _wrap_svn_opt_subcommand_takes_option2},
{"SVN::_Core::svn_opt_subcommand_takes_option", _wrap_svn_opt_subcommand_takes_option},
+{"SVN::_Core::svn_opt_print_generic_help3", _wrap_svn_opt_print_generic_help3},
{"SVN::_Core::svn_opt_print_generic_help2", _wrap_svn_opt_print_generic_help2},
{"SVN::_Core::svn_opt_format_option", _wrap_svn_opt_format_option},
+{"SVN::_Core::svn_opt_subcommand_help4", _wrap_svn_opt_subcommand_help4},
{"SVN::_Core::svn_opt_subcommand_help3", _wrap_svn_opt_subcommand_help3},
{"SVN::_Core::svn_opt_subcommand_help2", _wrap_svn_opt_subcommand_help2},
{"SVN::_Core::svn_opt_subcommand_help", _wrap_svn_opt_subcommand_help},
@@ -48949,6 +50105,7 @@ static swig_command_info swig_commands[] = {
{"SVN::_Core::svn_opt_parse_num_args", _wrap_svn_opt_parse_num_args},
{"SVN::_Core::svn_opt_parse_all_args", _wrap_svn_opt_parse_all_args},
{"SVN::_Core::svn_opt_parse_path", _wrap_svn_opt_parse_path},
+{"SVN::_Core::svn_opt_print_help5", _wrap_svn_opt_print_help5},
{"SVN::_Core::svn_opt_print_help4", _wrap_svn_opt_print_help4},
{"SVN::_Core::svn_opt_print_help3", _wrap_svn_opt_print_help3},
{"SVN::_Core::svn_opt_print_help2", _wrap_svn_opt_print_help2},
@@ -51773,17 +52930,17 @@ XS(SWIG_init) {
} while(0) /*@SWIG@*/;
/*@SWIG:/opt/svnrm/prefix/share/swig/3.0.12/perl5/perltypemaps.swg,65,%set_constant@*/ do {
SV *sv = get_sv((char*) SWIG_prefix "SVN_VER_MINOR", TRUE | 0x2 | GV_ADDMULTI);
- sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1((int)(10)));
+ sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1((int)(11)));
SvREADONLY_on(sv);
} while(0) /*@SWIG@*/;
/*@SWIG:/opt/svnrm/prefix/share/swig/3.0.12/perl5/perltypemaps.swg,65,%set_constant@*/ do {
SV *sv = get_sv((char*) SWIG_prefix "SVN_VER_PATCH", TRUE | 0x2 | GV_ADDMULTI);
- sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1((int)(2)));
+ sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1((int)(0)));
SvREADONLY_on(sv);
} while(0) /*@SWIG@*/;
/*@SWIG:/opt/svnrm/prefix/share/swig/3.0.12/perl5/perltypemaps.swg,65,%set_constant@*/ do {
SV *sv = get_sv((char*) SWIG_prefix "SVN_VER_MICRO", TRUE | 0x2 | GV_ADDMULTI);
- sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1((int)(2)));
+ sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1((int)(0)));
SvREADONLY_on(sv);
} while(0) /*@SWIG@*/;
/*@SWIG:/opt/svnrm/prefix/share/swig/3.0.12/perl5/perltypemaps.swg,65,%set_constant@*/ do {
@@ -51793,32 +52950,32 @@ XS(SWIG_init) {
} while(0) /*@SWIG@*/;
/*@SWIG:/opt/svnrm/prefix/share/swig/3.0.12/perl5/perltypemaps.swg,65,%set_constant@*/ do {
SV *sv = get_sv((char*) SWIG_prefix "SVN_VER_TAG", TRUE | 0x2 | GV_ADDMULTI);
- sv_setsv(sv, SWIG_FromCharPtr(" (r1835932)"));
+ sv_setsv(sv, SWIG_FromCharPtr(" (Release Candidate 2)"));
SvREADONLY_on(sv);
} while(0) /*@SWIG@*/;
/*@SWIG:/opt/svnrm/prefix/share/swig/3.0.12/perl5/perltypemaps.swg,65,%set_constant@*/ do {
SV *sv = get_sv((char*) SWIG_prefix "SVN_VER_NUMTAG", TRUE | 0x2 | GV_ADDMULTI);
- sv_setsv(sv, SWIG_FromCharPtr(""));
+ sv_setsv(sv, SWIG_FromCharPtr("-rc2"));
SvREADONLY_on(sv);
} while(0) /*@SWIG@*/;
/*@SWIG:/opt/svnrm/prefix/share/swig/3.0.12/perl5/perltypemaps.swg,65,%set_constant@*/ do {
SV *sv = get_sv((char*) SWIG_prefix "SVN_VER_REVISION", TRUE | 0x2 | GV_ADDMULTI);
- sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1((int)(1835932)));
+ sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1((int)(1842234)));
SvREADONLY_on(sv);
} while(0) /*@SWIG@*/;
/*@SWIG:/opt/svnrm/prefix/share/swig/3.0.12/perl5/perltypemaps.swg,65,%set_constant@*/ do {
SV *sv = get_sv((char*) SWIG_prefix "SVN_VER_NUM", TRUE | 0x2 | GV_ADDMULTI);
- sv_setsv(sv, SWIG_FromCharPtr("1.10.2"));
+ sv_setsv(sv, SWIG_FromCharPtr("1.11.0"));
SvREADONLY_on(sv);
} while(0) /*@SWIG@*/;
/*@SWIG:/opt/svnrm/prefix/share/swig/3.0.12/perl5/perltypemaps.swg,65,%set_constant@*/ do {
SV *sv = get_sv((char*) SWIG_prefix "SVN_VER_NUMBER", TRUE | 0x2 | GV_ADDMULTI);
- sv_setsv(sv, SWIG_FromCharPtr("1.10.2"));
+ sv_setsv(sv, SWIG_FromCharPtr("1.11.0-rc2"));
SvREADONLY_on(sv);
} while(0) /*@SWIG@*/;
/*@SWIG:/opt/svnrm/prefix/share/swig/3.0.12/perl5/perltypemaps.swg,65,%set_constant@*/ do {
SV *sv = get_sv((char*) SWIG_prefix "SVN_VERSION", TRUE | 0x2 | GV_ADDMULTI);
- sv_setsv(sv, SWIG_FromCharPtr("1.10.2 (r1835932)"));
+ sv_setsv(sv, SWIG_FromCharPtr("1.11.0-rc2 (Release Candidate 2)"));
SvREADONLY_on(sv);
} while(0) /*@SWIG@*/;
/*@SWIG:/opt/svnrm/prefix/share/swig/3.0.12/perl5/perltypemaps.swg,65,%set_constant@*/ do {
@@ -52062,6 +53219,11 @@ XS(SWIG_init) {
SvREADONLY_on(sv);
} while(0) /*@SWIG@*/;
/*@SWIG:/opt/svnrm/prefix/share/swig/3.0.12/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+ SV *sv = get_sv((char*) SWIG_prefix "SVN_OPT_MAX_PARAGRAPHS", TRUE | 0x2 | GV_ADDMULTI);
+ sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1((int)(100)));
+ SvREADONLY_on(sv);
+ } while(0) /*@SWIG@*/;
+ /*@SWIG:/opt/svnrm/prefix/share/swig/3.0.12/perl5/perltypemaps.swg,65,%set_constant@*/ do {
SV *sv = get_sv((char*) SWIG_prefix "SVN_OPT_FIRST_LONGOPT_ID", TRUE | 0x2 | GV_ADDMULTI);
sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1((int)(256)));
SvREADONLY_on(sv);
diff --git a/subversion/bindings/swig/perl/native/svn_client.c b/subversion/bindings/swig/perl/native/svn_client.c
index dc58cdd..b98a34d 100644
--- a/subversion/bindings/swig/perl/native/svn_client.c
+++ b/subversion/bindings/swig/perl/native/svn_client.c
@@ -1540,158 +1540,165 @@ SWIG_Perl_SetModule(swig_module_info *module) {
#define SWIGTYPE_p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_array_header_t_p_apr_pool_t__p_svn_error_t swig_types[28]
#define SWIGTYPE_p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_pool_t__p_svn_error_t swig_types[29]
#define SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t swig_types[30]
-#define SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__svn_client_info2_t_p_apr_pool_t__p_svn_error_t swig_types[31]
-#define SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__svn_client_status_t_p_apr_pool_t__p_svn_error_t swig_types[32]
-#define SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_apr_pool_t__p_svn_error_t swig_types[33]
-#define SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t swig_types[34]
-#define SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__svn_info_t_p_apr_pool_t__p_svn_error_t swig_types[35]
-#define SWIGTYPE_p_f_p_void_p_q_const__char_p_struct_svn_wc_status2_t__void swig_types[36]
-#define SWIGTYPE_p_f_p_void_p_q_const__char_p_struct_svn_wc_status_t__void swig_types[37]
-#define SWIGTYPE_p_f_p_void_p_q_const__char_p_svn_wc_status2_t_p_apr_pool_t__p_svn_error_t swig_types[38]
-#define SWIGTYPE_p_f_p_void_p_q_const__struct_svn_wc_notify_t_p_apr_pool_t__void swig_types[39]
-#define SWIGTYPE_p_f_p_void_p_svn_boolean_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t swig_types[40]
-#define SWIGTYPE_p_f_p_void_p_svn_boolean_t_p_q_const__char_p_q_const__svn_io_dirent2_t_p_apr_pool_t__p_svn_error_t swig_types[41]
-#define SWIGTYPE_p_f_p_void_p_svn_client_conflict_t_p_apr_pool_t__p_svn_error_t swig_types[42]
-#define SWIGTYPE_p_f_p_void_p_svn_log_entry_t_p_apr_pool_t__p_svn_error_t swig_types[43]
-#define SWIGTYPE_p_f_p_void_svn_revnum_t_svn_revnum_t_apr_int64_t_svn_revnum_t_p_apr_hash_t_svn_revnum_t_p_apr_hash_t_p_q_const__char_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t swig_types[44]
-#define SWIGTYPE_p_int swig_types[45]
-#define SWIGTYPE_p_long swig_types[46]
-#define SWIGTYPE_p_p_apr_array_header_t swig_types[47]
-#define SWIGTYPE_p_p_apr_hash_t swig_types[48]
-#define SWIGTYPE_p_p_char swig_types[49]
-#define SWIGTYPE_p_p_svn_auth_provider_object_t swig_types[50]
-#define SWIGTYPE_p_p_svn_client_commit_info_t swig_types[51]
-#define SWIGTYPE_p_p_svn_client_commit_item3_t swig_types[52]
-#define SWIGTYPE_p_p_svn_client_conflict_t swig_types[53]
-#define SWIGTYPE_p_p_svn_client_ctx_t swig_types[54]
-#define SWIGTYPE_p_p_svn_commit_info_t swig_types[55]
-#define SWIGTYPE_p_p_svn_ra_session_t swig_types[56]
-#define SWIGTYPE_p_p_svn_string_t swig_types[57]
-#define SWIGTYPE_p_svn_auth_baton_t swig_types[58]
-#define SWIGTYPE_p_svn_auth_cred_simple_t swig_types[59]
-#define SWIGTYPE_p_svn_auth_cred_ssl_client_cert_pw_t swig_types[60]
-#define SWIGTYPE_p_svn_auth_cred_ssl_client_cert_t swig_types[61]
-#define SWIGTYPE_p_svn_auth_cred_ssl_server_trust_t swig_types[62]
-#define SWIGTYPE_p_svn_auth_cred_username_t swig_types[63]
-#define SWIGTYPE_p_svn_auth_iterstate_t swig_types[64]
-#define SWIGTYPE_p_svn_auth_provider_object_t swig_types[65]
-#define SWIGTYPE_p_svn_auth_provider_t swig_types[66]
-#define SWIGTYPE_p_svn_auth_ssl_server_cert_info_t swig_types[67]
-#define SWIGTYPE_p_svn_cache_config_t swig_types[68]
-#define SWIGTYPE_p_svn_checksum_ctx_t swig_types[69]
-#define SWIGTYPE_p_svn_checksum_kind_t swig_types[70]
-#define SWIGTYPE_p_svn_checksum_t swig_types[71]
-#define SWIGTYPE_p_svn_client_commit_info_t swig_types[72]
-#define SWIGTYPE_p_svn_client_commit_item2_t swig_types[73]
-#define SWIGTYPE_p_svn_client_commit_item3_t swig_types[74]
-#define SWIGTYPE_p_svn_client_commit_item_t swig_types[75]
-#define SWIGTYPE_p_svn_client_conflict_option_id_t swig_types[76]
-#define SWIGTYPE_p_svn_client_conflict_option_t swig_types[77]
-#define SWIGTYPE_p_svn_client_conflict_t swig_types[78]
-#define SWIGTYPE_p_svn_client_copy_source_t swig_types[79]
-#define SWIGTYPE_p_svn_client_ctx_t swig_types[80]
-#define SWIGTYPE_p_svn_client_diff_summarize_kind_t swig_types[81]
-#define SWIGTYPE_p_svn_client_diff_summarize_t swig_types[82]
-#define SWIGTYPE_p_svn_client_info2_t swig_types[83]
-#define SWIGTYPE_p_svn_client_proplist_item_t swig_types[84]
-#define SWIGTYPE_p_svn_client_shelved_patch_info_t swig_types[85]
-#define SWIGTYPE_p_svn_client_status_t swig_types[86]
-#define SWIGTYPE_p_svn_commit_info_t swig_types[87]
-#define SWIGTYPE_p_svn_config_t swig_types[88]
-#define SWIGTYPE_p_svn_delta_editor_t swig_types[89]
-#define SWIGTYPE_p_svn_depth_t swig_types[90]
-#define SWIGTYPE_p_svn_diff_binary_patch_t swig_types[91]
-#define SWIGTYPE_p_svn_diff_conflict_display_style_t swig_types[92]
-#define SWIGTYPE_p_svn_diff_datasource_e swig_types[93]
-#define SWIGTYPE_p_svn_diff_file_ignore_space_t swig_types[94]
-#define SWIGTYPE_p_svn_diff_file_options_t swig_types[95]
-#define SWIGTYPE_p_svn_diff_fns2_t swig_types[96]
-#define SWIGTYPE_p_svn_diff_fns_t swig_types[97]
-#define SWIGTYPE_p_svn_diff_hunk_t swig_types[98]
-#define SWIGTYPE_p_svn_diff_operation_kind_e swig_types[99]
-#define SWIGTYPE_p_svn_diff_output_fns_t swig_types[100]
-#define SWIGTYPE_p_svn_diff_t swig_types[101]
-#define SWIGTYPE_p_svn_dirent_t swig_types[102]
-#define SWIGTYPE_p_svn_errno_t swig_types[103]
-#define SWIGTYPE_p_svn_error_t swig_types[104]
-#define SWIGTYPE_p_svn_info_t swig_types[105]
-#define SWIGTYPE_p_svn_io_dirent2_t swig_types[106]
-#define SWIGTYPE_p_svn_io_dirent_t swig_types[107]
-#define SWIGTYPE_p_svn_io_file_del_t swig_types[108]
-#define SWIGTYPE_p_svn_location_segment_t swig_types[109]
-#define SWIGTYPE_p_svn_lock_t swig_types[110]
-#define SWIGTYPE_p_svn_log_changed_path2_t swig_types[111]
-#define SWIGTYPE_p_svn_log_changed_path_t swig_types[112]
-#define SWIGTYPE_p_svn_log_entry_t swig_types[113]
-#define SWIGTYPE_p_svn_merge_range_t swig_types[114]
-#define SWIGTYPE_p_svn_mergeinfo_inheritance_t swig_types[115]
-#define SWIGTYPE_p_svn_node_kind_t swig_types[116]
-#define SWIGTYPE_p_svn_opt_revision_range_t swig_types[117]
-#define SWIGTYPE_p_svn_opt_revision_t swig_types[118]
-#define SWIGTYPE_p_svn_opt_revision_value_t swig_types[119]
-#define SWIGTYPE_p_svn_opt_subcommand_desc2_t swig_types[120]
-#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[121]
-#define SWIGTYPE_p_svn_patch_file_t swig_types[122]
-#define SWIGTYPE_p_svn_patch_t swig_types[123]
-#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[124]
-#define SWIGTYPE_p_svn_prop_kind swig_types[125]
-#define SWIGTYPE_p_svn_prop_patch_t swig_types[126]
-#define SWIGTYPE_p_svn_prop_t swig_types[127]
-#define SWIGTYPE_p_svn_ra_callbacks2_t swig_types[128]
-#define SWIGTYPE_p_svn_ra_callbacks_t swig_types[129]
-#define SWIGTYPE_p_svn_ra_plugin_t swig_types[130]
-#define SWIGTYPE_p_svn_ra_reporter2_t swig_types[131]
-#define SWIGTYPE_p_svn_ra_reporter3_t swig_types[132]
-#define SWIGTYPE_p_svn_ra_reporter_t swig_types[133]
-#define SWIGTYPE_p_svn_ra_session_t swig_types[134]
-#define SWIGTYPE_p_svn_stream_mark_t swig_types[135]
-#define SWIGTYPE_p_svn_stream_t swig_types[136]
-#define SWIGTYPE_p_svn_string_t swig_types[137]
-#define SWIGTYPE_p_svn_stringbuf_t swig_types[138]
-#define SWIGTYPE_p_svn_tristate_t swig_types[139]
-#define SWIGTYPE_p_svn_txdelta_op_t swig_types[140]
-#define SWIGTYPE_p_svn_txdelta_stream_t swig_types[141]
-#define SWIGTYPE_p_svn_txdelta_window_t swig_types[142]
-#define SWIGTYPE_p_svn_version_checklist_t swig_types[143]
-#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[144]
-#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[145]
-#define SWIGTYPE_p_svn_version_extended_t swig_types[146]
-#define SWIGTYPE_p_svn_version_t swig_types[147]
-#define SWIGTYPE_p_svn_wc_adm_access_t swig_types[148]
-#define SWIGTYPE_p_svn_wc_committed_queue_t swig_types[149]
-#define SWIGTYPE_p_svn_wc_conflict_action_t swig_types[150]
-#define SWIGTYPE_p_svn_wc_conflict_choice_t swig_types[151]
-#define SWIGTYPE_p_svn_wc_conflict_description_t swig_types[152]
-#define SWIGTYPE_p_svn_wc_conflict_kind_t swig_types[153]
-#define SWIGTYPE_p_svn_wc_conflict_reason_t swig_types[154]
-#define SWIGTYPE_p_svn_wc_conflict_version_t swig_types[155]
-#define SWIGTYPE_p_svn_wc_context_t swig_types[156]
-#define SWIGTYPE_p_svn_wc_diff_callbacks2_t swig_types[157]
-#define SWIGTYPE_p_svn_wc_diff_callbacks3_t swig_types[158]
-#define SWIGTYPE_p_svn_wc_diff_callbacks4_t swig_types[159]
-#define SWIGTYPE_p_svn_wc_diff_callbacks_t swig_types[160]
-#define SWIGTYPE_p_svn_wc_entry_callbacks2_t swig_types[161]
-#define SWIGTYPE_p_svn_wc_entry_callbacks_t swig_types[162]
-#define SWIGTYPE_p_svn_wc_entry_t swig_types[163]
-#define SWIGTYPE_p_svn_wc_external_item2_t swig_types[164]
-#define SWIGTYPE_p_svn_wc_external_item_t swig_types[165]
-#define SWIGTYPE_p_svn_wc_info_t swig_types[166]
-#define SWIGTYPE_p_svn_wc_merge_outcome_t swig_types[167]
-#define SWIGTYPE_p_svn_wc_notify_action_t swig_types[168]
-#define SWIGTYPE_p_svn_wc_notify_lock_state_t swig_types[169]
-#define SWIGTYPE_p_svn_wc_notify_state_t swig_types[170]
-#define SWIGTYPE_p_svn_wc_notify_t swig_types[171]
-#define SWIGTYPE_p_svn_wc_operation_t swig_types[172]
-#define SWIGTYPE_p_svn_wc_revision_status_t swig_types[173]
-#define SWIGTYPE_p_svn_wc_schedule_t swig_types[174]
-#define SWIGTYPE_p_svn_wc_status2_t swig_types[175]
-#define SWIGTYPE_p_svn_wc_status3_t swig_types[176]
-#define SWIGTYPE_p_svn_wc_status_t swig_types[177]
-#define SWIGTYPE_p_svn_wc_traversal_info_t swig_types[178]
-#define SWIGTYPE_p_unsigned_long swig_types[179]
-#define SWIGTYPE_p_void swig_types[180]
-static swig_type_info *swig_types[182];
-static swig_module_info swig_module = {swig_types, 181, 0, 0, 0, 0};
+#define SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_svn_boolean_t_p_q_const__char_svn_boolean_t_svn_revnum_t_svn_boolean_t_svn_depth_t_p_apr_pool_t__p_svn_error_t swig_types[31]
+#define SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__svn_client_info2_t_p_apr_pool_t__p_svn_error_t swig_types[32]
+#define SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__svn_client_status_t_p_apr_pool_t__p_svn_error_t swig_types[33]
+#define SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_apr_pool_t__p_svn_error_t swig_types[34]
+#define SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t swig_types[35]
+#define SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__svn_info_t_p_apr_pool_t__p_svn_error_t swig_types[36]
+#define SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__svn_wc_status3_t_p_apr_pool_t__p_svn_error_t swig_types[37]
+#define SWIGTYPE_p_f_p_void_p_q_const__char_p_struct_svn_wc_status2_t__void swig_types[38]
+#define SWIGTYPE_p_f_p_void_p_q_const__char_p_struct_svn_wc_status_t__void swig_types[39]
+#define SWIGTYPE_p_f_p_void_p_q_const__char_p_svn_wc_status2_t_p_apr_pool_t__p_svn_error_t swig_types[40]
+#define SWIGTYPE_p_f_p_void_p_q_const__struct_svn_wc_notify_t_p_apr_pool_t__void swig_types[41]
+#define SWIGTYPE_p_f_p_void_p_svn_boolean_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t swig_types[42]
+#define SWIGTYPE_p_f_p_void_p_svn_boolean_t_p_q_const__char_p_q_const__svn_io_dirent2_t_p_apr_pool_t__p_svn_error_t swig_types[43]
+#define SWIGTYPE_p_f_p_void_p_svn_client_conflict_t_p_apr_pool_t__p_svn_error_t swig_types[44]
+#define SWIGTYPE_p_f_p_void_p_svn_log_entry_t_p_apr_pool_t__p_svn_error_t swig_types[45]
+#define SWIGTYPE_p_f_p_void_svn_revnum_t_svn_revnum_t_apr_int64_t_svn_revnum_t_p_apr_hash_t_svn_revnum_t_p_apr_hash_t_p_q_const__char_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t swig_types[46]
+#define SWIGTYPE_p_int swig_types[47]
+#define SWIGTYPE_p_long swig_types[48]
+#define SWIGTYPE_p_p_apr_array_header_t swig_types[49]
+#define SWIGTYPE_p_p_apr_hash_t swig_types[50]
+#define SWIGTYPE_p_p_char swig_types[51]
+#define SWIGTYPE_p_p_svn_auth_provider_object_t swig_types[52]
+#define SWIGTYPE_p_p_svn_client__shelf_t swig_types[53]
+#define SWIGTYPE_p_p_svn_client__shelf_version_t swig_types[54]
+#define SWIGTYPE_p_p_svn_client_commit_info_t swig_types[55]
+#define SWIGTYPE_p_p_svn_client_commit_item3_t swig_types[56]
+#define SWIGTYPE_p_p_svn_client_conflict_t swig_types[57]
+#define SWIGTYPE_p_p_svn_client_ctx_t swig_types[58]
+#define SWIGTYPE_p_p_svn_commit_info_t swig_types[59]
+#define SWIGTYPE_p_p_svn_ra_session_t swig_types[60]
+#define SWIGTYPE_p_p_svn_string_t swig_types[61]
+#define SWIGTYPE_p_svn_auth_baton_t swig_types[62]
+#define SWIGTYPE_p_svn_auth_cred_simple_t swig_types[63]
+#define SWIGTYPE_p_svn_auth_cred_ssl_client_cert_pw_t swig_types[64]
+#define SWIGTYPE_p_svn_auth_cred_ssl_client_cert_t swig_types[65]
+#define SWIGTYPE_p_svn_auth_cred_ssl_server_trust_t swig_types[66]
+#define SWIGTYPE_p_svn_auth_cred_username_t swig_types[67]
+#define SWIGTYPE_p_svn_auth_iterstate_t swig_types[68]
+#define SWIGTYPE_p_svn_auth_provider_object_t swig_types[69]
+#define SWIGTYPE_p_svn_auth_provider_t swig_types[70]
+#define SWIGTYPE_p_svn_auth_ssl_server_cert_info_t swig_types[71]
+#define SWIGTYPE_p_svn_cache_config_t swig_types[72]
+#define SWIGTYPE_p_svn_checksum_ctx_t swig_types[73]
+#define SWIGTYPE_p_svn_checksum_kind_t swig_types[74]
+#define SWIGTYPE_p_svn_checksum_t swig_types[75]
+#define SWIGTYPE_p_svn_client__shelf_info_t swig_types[76]
+#define SWIGTYPE_p_svn_client__shelf_t swig_types[77]
+#define SWIGTYPE_p_svn_client__shelf_version_t swig_types[78]
+#define SWIGTYPE_p_svn_client_commit_info_t swig_types[79]
+#define SWIGTYPE_p_svn_client_commit_item2_t swig_types[80]
+#define SWIGTYPE_p_svn_client_commit_item3_t swig_types[81]
+#define SWIGTYPE_p_svn_client_commit_item_t swig_types[82]
+#define SWIGTYPE_p_svn_client_conflict_option_id_t swig_types[83]
+#define SWIGTYPE_p_svn_client_conflict_option_t swig_types[84]
+#define SWIGTYPE_p_svn_client_conflict_t swig_types[85]
+#define SWIGTYPE_p_svn_client_copy_source_t swig_types[86]
+#define SWIGTYPE_p_svn_client_ctx_t swig_types[87]
+#define SWIGTYPE_p_svn_client_diff_summarize_kind_t swig_types[88]
+#define SWIGTYPE_p_svn_client_diff_summarize_t swig_types[89]
+#define SWIGTYPE_p_svn_client_info2_t swig_types[90]
+#define SWIGTYPE_p_svn_client_proplist_item_t swig_types[91]
+#define SWIGTYPE_p_svn_client_status_t swig_types[92]
+#define SWIGTYPE_p_svn_commit_info_t swig_types[93]
+#define SWIGTYPE_p_svn_config_t swig_types[94]
+#define SWIGTYPE_p_svn_delta_editor_t swig_types[95]
+#define SWIGTYPE_p_svn_depth_t swig_types[96]
+#define SWIGTYPE_p_svn_diff_binary_patch_t swig_types[97]
+#define SWIGTYPE_p_svn_diff_conflict_display_style_t swig_types[98]
+#define SWIGTYPE_p_svn_diff_datasource_e swig_types[99]
+#define SWIGTYPE_p_svn_diff_file_ignore_space_t swig_types[100]
+#define SWIGTYPE_p_svn_diff_file_options_t swig_types[101]
+#define SWIGTYPE_p_svn_diff_fns2_t swig_types[102]
+#define SWIGTYPE_p_svn_diff_fns_t swig_types[103]
+#define SWIGTYPE_p_svn_diff_hunk_t swig_types[104]
+#define SWIGTYPE_p_svn_diff_operation_kind_e swig_types[105]
+#define SWIGTYPE_p_svn_diff_output_fns_t swig_types[106]
+#define SWIGTYPE_p_svn_diff_t swig_types[107]
+#define SWIGTYPE_p_svn_dirent_t swig_types[108]
+#define SWIGTYPE_p_svn_errno_t swig_types[109]
+#define SWIGTYPE_p_svn_error_t swig_types[110]
+#define SWIGTYPE_p_svn_info_t swig_types[111]
+#define SWIGTYPE_p_svn_io_dirent2_t swig_types[112]
+#define SWIGTYPE_p_svn_io_dirent_t swig_types[113]
+#define SWIGTYPE_p_svn_io_file_del_t swig_types[114]
+#define SWIGTYPE_p_svn_location_segment_t swig_types[115]
+#define SWIGTYPE_p_svn_lock_t swig_types[116]
+#define SWIGTYPE_p_svn_log_changed_path2_t swig_types[117]
+#define SWIGTYPE_p_svn_log_changed_path_t swig_types[118]
+#define SWIGTYPE_p_svn_log_entry_t swig_types[119]
+#define SWIGTYPE_p_svn_merge_range_t swig_types[120]
+#define SWIGTYPE_p_svn_mergeinfo_inheritance_t swig_types[121]
+#define SWIGTYPE_p_svn_node_kind_t swig_types[122]
+#define SWIGTYPE_p_svn_opt_revision_range_t swig_types[123]
+#define SWIGTYPE_p_svn_opt_revision_t swig_types[124]
+#define SWIGTYPE_p_svn_opt_revision_value_t swig_types[125]
+#define SWIGTYPE_p_svn_opt_subcommand_desc2_t swig_types[126]
+#define SWIGTYPE_p_svn_opt_subcommand_desc3_t swig_types[127]
+#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[128]
+#define SWIGTYPE_p_svn_patch_file_t swig_types[129]
+#define SWIGTYPE_p_svn_patch_t swig_types[130]
+#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[131]
+#define SWIGTYPE_p_svn_prop_kind swig_types[132]
+#define SWIGTYPE_p_svn_prop_patch_t swig_types[133]
+#define SWIGTYPE_p_svn_prop_t swig_types[134]
+#define SWIGTYPE_p_svn_ra_callbacks2_t swig_types[135]
+#define SWIGTYPE_p_svn_ra_callbacks_t swig_types[136]
+#define SWIGTYPE_p_svn_ra_plugin_t swig_types[137]
+#define SWIGTYPE_p_svn_ra_reporter2_t swig_types[138]
+#define SWIGTYPE_p_svn_ra_reporter3_t swig_types[139]
+#define SWIGTYPE_p_svn_ra_reporter_t swig_types[140]
+#define SWIGTYPE_p_svn_ra_session_t swig_types[141]
+#define SWIGTYPE_p_svn_stream_mark_t swig_types[142]
+#define SWIGTYPE_p_svn_stream_t swig_types[143]
+#define SWIGTYPE_p_svn_string_t swig_types[144]
+#define SWIGTYPE_p_svn_stringbuf_t swig_types[145]
+#define SWIGTYPE_p_svn_tristate_t swig_types[146]
+#define SWIGTYPE_p_svn_txdelta_op_t swig_types[147]
+#define SWIGTYPE_p_svn_txdelta_stream_t swig_types[148]
+#define SWIGTYPE_p_svn_txdelta_window_t swig_types[149]
+#define SWIGTYPE_p_svn_version_checklist_t swig_types[150]
+#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[151]
+#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[152]
+#define SWIGTYPE_p_svn_version_extended_t swig_types[153]
+#define SWIGTYPE_p_svn_version_t swig_types[154]
+#define SWIGTYPE_p_svn_wc_adm_access_t swig_types[155]
+#define SWIGTYPE_p_svn_wc_committed_queue_t swig_types[156]
+#define SWIGTYPE_p_svn_wc_conflict_action_t swig_types[157]
+#define SWIGTYPE_p_svn_wc_conflict_choice_t swig_types[158]
+#define SWIGTYPE_p_svn_wc_conflict_description_t swig_types[159]
+#define SWIGTYPE_p_svn_wc_conflict_kind_t swig_types[160]
+#define SWIGTYPE_p_svn_wc_conflict_reason_t swig_types[161]
+#define SWIGTYPE_p_svn_wc_conflict_version_t swig_types[162]
+#define SWIGTYPE_p_svn_wc_context_t swig_types[163]
+#define SWIGTYPE_p_svn_wc_diff_callbacks2_t swig_types[164]
+#define SWIGTYPE_p_svn_wc_diff_callbacks3_t swig_types[165]
+#define SWIGTYPE_p_svn_wc_diff_callbacks4_t swig_types[166]
+#define SWIGTYPE_p_svn_wc_diff_callbacks_t swig_types[167]
+#define SWIGTYPE_p_svn_wc_entry_callbacks2_t swig_types[168]
+#define SWIGTYPE_p_svn_wc_entry_callbacks_t swig_types[169]
+#define SWIGTYPE_p_svn_wc_entry_t swig_types[170]
+#define SWIGTYPE_p_svn_wc_external_item2_t swig_types[171]
+#define SWIGTYPE_p_svn_wc_external_item_t swig_types[172]
+#define SWIGTYPE_p_svn_wc_info_t swig_types[173]
+#define SWIGTYPE_p_svn_wc_merge_outcome_t swig_types[174]
+#define SWIGTYPE_p_svn_wc_notify_action_t swig_types[175]
+#define SWIGTYPE_p_svn_wc_notify_lock_state_t swig_types[176]
+#define SWIGTYPE_p_svn_wc_notify_state_t swig_types[177]
+#define SWIGTYPE_p_svn_wc_notify_t swig_types[178]
+#define SWIGTYPE_p_svn_wc_operation_t swig_types[179]
+#define SWIGTYPE_p_svn_wc_revision_status_t swig_types[180]
+#define SWIGTYPE_p_svn_wc_schedule_t swig_types[181]
+#define SWIGTYPE_p_svn_wc_status2_t swig_types[182]
+#define SWIGTYPE_p_svn_wc_status3_t swig_types[183]
+#define SWIGTYPE_p_svn_wc_status_t swig_types[184]
+#define SWIGTYPE_p_svn_wc_traversal_info_t swig_types[185]
+#define SWIGTYPE_p_unsigned_long swig_types[186]
+#define SWIGTYPE_p_void swig_types[187]
+static swig_type_info *swig_types[189];
+static swig_module_info swig_module = {swig_types, 188, 0, 0, 0, 0};
#define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
#define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
@@ -2144,6 +2151,11 @@ static svn_error_t * svn_client_invoke_diff_summarize_func(
return _obj(diff, baton, pool);
}
+static svn_error_t * svn_client_invoke__layout_func(
+ svn_client__layout_func_t _obj, void *layout_baton, const char *local_abspath, const char *repos_root_url, svn_boolean_t not_present, svn_boolean_t url_changed, const char *url, svn_boolean_t revision_changed, svn_revnum_t revision, svn_boolean_t depth_changed, svn_depth_t depth, apr_pool_t *scratch_pool) {
+ return _obj(layout_baton, local_abspath, repos_root_url, not_present, url_changed, url, revision_changed, revision, depth_changed, depth, scratch_pool);
+}
+
static svn_error_t * svn_client_invoke_import_filter_func(
svn_client_import_filter_func_t _obj, void *baton, svn_boolean_t *filtered, const char *local_abspath, const svn_io_dirent2_t *dirent, apr_pool_t *scratch_pool) {
return _obj(baton, filtered, local_abspath, dirent, scratch_pool);
@@ -9222,6 +9234,95 @@ XS(_wrap_svn_client_switch) {
}
+XS(_wrap_svn_client__layout_list) {
+ {
+ char *arg1 = (char *) 0 ;
+ svn_client__layout_func_t arg2 = (svn_client__layout_func_t) 0 ;
+ void *arg3 = (void *) 0 ;
+ svn_client_ctx_t *arg4 = (svn_client_ctx_t *) 0 ;
+ apr_pool_t *arg5 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool ;
+ int res1 ;
+ char *buf1 = 0 ;
+ int alloc1 = 0 ;
+ int res3 ;
+ void *argp4 = 0 ;
+ int res4 = 0 ;
+ int argvi = 0;
+ svn_error_t *result = 0 ;
+ dXSARGS;
+
+ {
+ _global_pool = arg5 = svn_swig_pl_make_pool (ST(items-1));
+ SPAGAIN;
+ }
+ if ((items < 4) || (items > 5)) {
+ SWIG_croak("Usage: svn_client__layout_list(local_abspath,layout,layout_baton,ctx,scratch_pool);");
+ }
+ res1 = SWIG_AsCharPtrAndSize(ST(0), &buf1, NULL, &alloc1);
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client__layout_list" "', argument " "1"" of type '" "char const *""'");
+ }
+ arg1 = (char *)(buf1);
+ {
+ int res = SWIG_ConvertFunctionPtr(ST(1), (void**)(&arg2), SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_svn_boolean_t_p_q_const__char_svn_boolean_t_svn_revnum_t_svn_boolean_t_svn_depth_t_p_apr_pool_t__p_svn_error_t);
+ if (!SWIG_IsOK(res)) {
+ SWIG_exception_fail(SWIG_ArgError(res), "in method '" "svn_client__layout_list" "', argument " "2"" of type '" "svn_client__layout_func_t""'");
+ }
+ }
+ res3 = SWIG_ConvertPtr(ST(2),SWIG_as_voidptrptr(&arg3), 0, 0);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "svn_client__layout_list" "', argument " "3"" of type '" "void *""'");
+ }
+ res4 = SWIG_ConvertPtr(ST(3), &argp4,SWIGTYPE_p_svn_client_ctx_t, 0 | 0 );
+ if (!SWIG_IsOK(res4)) {
+ SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "svn_client__layout_list" "', argument " "4"" of type '" "svn_client_ctx_t *""'");
+ }
+ arg4 = (svn_client_ctx_t *)(argp4);
+ if (items > 4) {
+
+ }
+ {
+ result = (svn_error_t *)svn_client__layout_list((char const *)arg1,arg2,arg3,arg4,arg5);
+
+
+
+ }
+ {
+ if (result) {
+ SV *exception_handler = perl_get_sv ("SVN::Error::handler", FALSE);
+
+ if (SvOK(exception_handler)) {
+ SV *callback_result;
+
+ PUTBACK;
+ svn_swig_pl_callback_thunk (CALL_SV, exception_handler,
+ &callback_result, "S", result,
+ SWIGTYPE_p_svn_error_t);
+ SPAGAIN;
+ } else {
+ ST(argvi) = SWIG_NewPointerObj(result, SWIGTYPE_p_svn_error_t, 0);
+ argvi++;
+ }
+ }
+ }
+ if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
+
+
+
+
+ XSRETURN(argvi);
+ fail:
+ if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
+
+
+
+
+ SWIG_croak_null();
+ }
+}
+
+
XS(_wrap_svn_client_add5) {
{
char *arg1 = (char *) 0 ;
@@ -16472,6 +16573,261 @@ XS(_wrap_svn_client_blame) {
}
+XS(_wrap_svn_client_diff7) {
+ {
+ apr_array_header_t *arg1 = (apr_array_header_t *) 0 ;
+ char *arg2 = (char *) 0 ;
+ svn_opt_revision_t *arg3 = (svn_opt_revision_t *) 0 ;
+ char *arg4 = (char *) 0 ;
+ svn_opt_revision_t *arg5 = (svn_opt_revision_t *) 0 ;
+ char *arg6 = (char *) 0 ;
+ svn_depth_t arg7 ;
+ svn_boolean_t arg8 ;
+ svn_boolean_t arg9 ;
+ svn_boolean_t arg10 ;
+ svn_boolean_t arg11 ;
+ svn_boolean_t arg12 ;
+ svn_boolean_t arg13 ;
+ svn_boolean_t arg14 ;
+ svn_boolean_t arg15 ;
+ svn_boolean_t arg16 ;
+ char *arg17 = (char *) 0 ;
+ svn_stream_t *arg18 = (svn_stream_t *) 0 ;
+ svn_stream_t *arg19 = (svn_stream_t *) 0 ;
+ apr_array_header_t *arg20 = (apr_array_header_t *) 0 ;
+ svn_client_ctx_t *arg21 = (svn_client_ctx_t *) 0 ;
+ apr_pool_t *arg22 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ svn_opt_revision_t rev3 ;
+ int res4 ;
+ char *buf4 = 0 ;
+ int alloc4 = 0 ;
+ svn_opt_revision_t rev5 ;
+ int res6 ;
+ char *buf6 = 0 ;
+ int alloc6 = 0 ;
+ int val7 ;
+ int ecode7 = 0 ;
+ int val8 ;
+ int ecode8 = 0 ;
+ int val9 ;
+ int ecode9 = 0 ;
+ int val10 ;
+ int ecode10 = 0 ;
+ int val11 ;
+ int ecode11 = 0 ;
+ int val12 ;
+ int ecode12 = 0 ;
+ int val13 ;
+ int ecode13 = 0 ;
+ int val14 ;
+ int ecode14 = 0 ;
+ int val15 ;
+ int ecode15 = 0 ;
+ int val16 ;
+ int ecode16 = 0 ;
+ int res17 ;
+ char *buf17 = 0 ;
+ int alloc17 = 0 ;
+ void *argp21 = 0 ;
+ int res21 = 0 ;
+ int argvi = 0;
+ svn_error_t *result = 0 ;
+ dXSARGS;
+
+ {
+ _global_pool = arg22 = svn_swig_pl_make_pool (ST(items-1));
+ SPAGAIN;
+ }
+ if ((items < 21) || (items > 22)) {
+ SWIG_croak("Usage: svn_client_diff7(diff_options,path_or_url1,revision1,path_or_url2,revision2,relative_to_dir,depth,ignore_ancestry,no_diff_added,no_diff_deleted,show_copies_as_adds,ignore_content_type,ignore_properties,properties_only,use_git_diff_format,pretty_print_mergeinfo,header_encoding,outstream,errstream,changelists,ctx,pool);");
+ }
+ {
+ arg1 = svn_swig_pl_strings_to_array(ST(0),
+ _global_pool);
+ }
+ res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_client_diff7" "', argument " "2"" of type '" "char const *""'");
+ }
+ arg2 = (char *)(buf2);
+ {
+ if (_global_pool == NULL) {
+ _global_pool = svn_swig_pl_make_pool((SV *)NULL);
+ SPAGAIN;
+ }
+ arg3 = svn_swig_pl_set_revision(&rev3, ST(2), TRUE, _global_pool);
+ }
+ res4 = SWIG_AsCharPtrAndSize(ST(3), &buf4, NULL, &alloc4);
+ if (!SWIG_IsOK(res4)) {
+ SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "svn_client_diff7" "', argument " "4"" of type '" "char const *""'");
+ }
+ arg4 = (char *)(buf4);
+ {
+ if (_global_pool == NULL) {
+ _global_pool = svn_swig_pl_make_pool((SV *)NULL);
+ SPAGAIN;
+ }
+ arg5 = svn_swig_pl_set_revision(&rev5, ST(4), TRUE, _global_pool);
+ }
+ res6 = SWIG_AsCharPtrAndSize(ST(5), &buf6, NULL, &alloc6);
+ if (!SWIG_IsOK(res6)) {
+ SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "svn_client_diff7" "', argument " "6"" of type '" "char const *""'");
+ }
+ arg6 = (char *)(buf6);
+ ecode7 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(6), &val7);
+ if (!SWIG_IsOK(ecode7)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "svn_client_diff7" "', argument " "7"" of type '" "svn_depth_t""'");
+ }
+ arg7 = (svn_depth_t)(val7);
+ ecode8 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(7), &val8);
+ if (!SWIG_IsOK(ecode8)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "svn_client_diff7" "', argument " "8"" of type '" "svn_boolean_t""'");
+ }
+ arg8 = (svn_boolean_t)(val8);
+ ecode9 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(8), &val9);
+ if (!SWIG_IsOK(ecode9)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "svn_client_diff7" "', argument " "9"" of type '" "svn_boolean_t""'");
+ }
+ arg9 = (svn_boolean_t)(val9);
+ ecode10 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(9), &val10);
+ if (!SWIG_IsOK(ecode10)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode10), "in method '" "svn_client_diff7" "', argument " "10"" of type '" "svn_boolean_t""'");
+ }
+ arg10 = (svn_boolean_t)(val10);
+ ecode11 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(10), &val11);
+ if (!SWIG_IsOK(ecode11)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode11), "in method '" "svn_client_diff7" "', argument " "11"" of type '" "svn_boolean_t""'");
+ }
+ arg11 = (svn_boolean_t)(val11);
+ ecode12 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(11), &val12);
+ if (!SWIG_IsOK(ecode12)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode12), "in method '" "svn_client_diff7" "', argument " "12"" of type '" "svn_boolean_t""'");
+ }
+ arg12 = (svn_boolean_t)(val12);
+ ecode13 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(12), &val13);
+ if (!SWIG_IsOK(ecode13)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode13), "in method '" "svn_client_diff7" "', argument " "13"" of type '" "svn_boolean_t""'");
+ }
+ arg13 = (svn_boolean_t)(val13);
+ ecode14 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(13), &val14);
+ if (!SWIG_IsOK(ecode14)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode14), "in method '" "svn_client_diff7" "', argument " "14"" of type '" "svn_boolean_t""'");
+ }
+ arg14 = (svn_boolean_t)(val14);
+ ecode15 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(14), &val15);
+ if (!SWIG_IsOK(ecode15)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode15), "in method '" "svn_client_diff7" "', argument " "15"" of type '" "svn_boolean_t""'");
+ }
+ arg15 = (svn_boolean_t)(val15);
+ ecode16 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(15), &val16);
+ if (!SWIG_IsOK(ecode16)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode16), "in method '" "svn_client_diff7" "', argument " "16"" of type '" "svn_boolean_t""'");
+ }
+ arg16 = (svn_boolean_t)(val16);
+ res17 = SWIG_AsCharPtrAndSize(ST(16), &buf17, NULL, &alloc17);
+ if (!SWIG_IsOK(res17)) {
+ SWIG_exception_fail(SWIG_ArgError(res17), "in method '" "svn_client_diff7" "', argument " "17"" of type '" "char const *""'");
+ }
+ arg17 = (char *)(buf17);
+ {
+ svn_swig_pl_make_stream (&arg18, ST(17));
+ SPAGAIN;
+ }
+ {
+ svn_swig_pl_make_stream (&arg19, ST(18));
+ SPAGAIN;
+ }
+ {
+ arg20 = SvOK(ST(19)) ? svn_swig_pl_strings_to_array(
+ ST(19), _global_pool) : NULL;
+ }
+ res21 = SWIG_ConvertPtr(ST(20), &argp21,SWIGTYPE_p_svn_client_ctx_t, 0 | 0 );
+ if (!SWIG_IsOK(res21)) {
+ SWIG_exception_fail(SWIG_ArgError(res21), "in method '" "svn_client_diff7" "', argument " "21"" of type '" "svn_client_ctx_t *""'");
+ }
+ arg21 = (svn_client_ctx_t *)(argp21);
+ if (items > 21) {
+
+ }
+ {
+ result = (svn_error_t *)svn_client_diff7((apr_array_header_t const *)arg1,(char const *)arg2,(struct svn_opt_revision_t const *)arg3,(char const *)arg4,(struct svn_opt_revision_t const *)arg5,(char const *)arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13,arg14,arg15,arg16,(char const *)arg17,arg18,arg19,(apr_array_header_t const *)arg20,arg21,arg22);
+
+
+
+ }
+ {
+ if (result) {
+ SV *exception_handler = perl_get_sv ("SVN::Error::handler", FALSE);
+
+ if (SvOK(exception_handler)) {
+ SV *callback_result;
+
+ PUTBACK;
+ svn_swig_pl_callback_thunk (CALL_SV, exception_handler,
+ &callback_result, "S", result,
+ SWIGTYPE_p_svn_error_t);
+ SPAGAIN;
+ } else {
+ ST(argvi) = SWIG_NewPointerObj(result, SWIGTYPE_p_svn_error_t, 0);
+ argvi++;
+ }
+ }
+ }
+
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+
+ if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
+
+ if (alloc6 == SWIG_NEWOBJ) free((char*)buf6);
+
+
+
+
+
+
+
+
+
+
+ if (alloc17 == SWIG_NEWOBJ) free((char*)buf17);
+
+
+
+
+
+ XSRETURN(argvi);
+ fail:
+
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+
+ if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
+
+ if (alloc6 == SWIG_NEWOBJ) free((char*)buf6);
+
+
+
+
+
+
+
+
+
+
+ if (alloc17 == SWIG_NEWOBJ) free((char*)buf17);
+
+
+
+
+
+ SWIG_croak_null();
+ }
+}
+
+
XS(_wrap_svn_client_diff6) {
{
apr_array_header_t *arg1 = (apr_array_header_t *) 0 ;
@@ -17616,6 +17972,266 @@ XS(_wrap_svn_client_diff) {
}
+XS(_wrap_svn_client_diff_peg7) {
+ {
+ apr_array_header_t *arg1 = (apr_array_header_t *) 0 ;
+ char *arg2 = (char *) 0 ;
+ svn_opt_revision_t *arg3 = (svn_opt_revision_t *) 0 ;
+ svn_opt_revision_t *arg4 = (svn_opt_revision_t *) 0 ;
+ svn_opt_revision_t *arg5 = (svn_opt_revision_t *) 0 ;
+ char *arg6 = (char *) 0 ;
+ svn_depth_t arg7 ;
+ svn_boolean_t arg8 ;
+ svn_boolean_t arg9 ;
+ svn_boolean_t arg10 ;
+ svn_boolean_t arg11 ;
+ svn_boolean_t arg12 ;
+ svn_boolean_t arg13 ;
+ svn_boolean_t arg14 ;
+ svn_boolean_t arg15 ;
+ svn_boolean_t arg16 ;
+ char *arg17 = (char *) 0 ;
+ svn_stream_t *arg18 = (svn_stream_t *) 0 ;
+ svn_stream_t *arg19 = (svn_stream_t *) 0 ;
+ apr_array_header_t *arg20 = (apr_array_header_t *) 0 ;
+ svn_client_ctx_t *arg21 = (svn_client_ctx_t *) 0 ;
+ apr_pool_t *arg22 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ svn_opt_revision_t rev3 ;
+ svn_opt_revision_t rev4 ;
+ svn_opt_revision_t rev5 ;
+ int res6 ;
+ char *buf6 = 0 ;
+ int alloc6 = 0 ;
+ int val7 ;
+ int ecode7 = 0 ;
+ int val8 ;
+ int ecode8 = 0 ;
+ int val9 ;
+ int ecode9 = 0 ;
+ int val10 ;
+ int ecode10 = 0 ;
+ int val11 ;
+ int ecode11 = 0 ;
+ int val12 ;
+ int ecode12 = 0 ;
+ int val13 ;
+ int ecode13 = 0 ;
+ int val14 ;
+ int ecode14 = 0 ;
+ int val15 ;
+ int ecode15 = 0 ;
+ int val16 ;
+ int ecode16 = 0 ;
+ int res17 ;
+ char *buf17 = 0 ;
+ int alloc17 = 0 ;
+ void *argp21 = 0 ;
+ int res21 = 0 ;
+ int argvi = 0;
+ svn_error_t *result = 0 ;
+ dXSARGS;
+
+ {
+ _global_pool = arg22 = svn_swig_pl_make_pool (ST(items-1));
+ SPAGAIN;
+ }
+ if ((items < 21) || (items > 22)) {
+ SWIG_croak("Usage: svn_client_diff_peg7(diff_options,path_or_url,peg_revision,start_revision,end_revision,relative_to_dir,depth,ignore_ancestry,no_diff_added,no_diff_deleted,show_copies_as_adds,ignore_content_type,ignore_properties,properties_only,use_git_diff_format,pretty_print_mergeinfo,header_encoding,outstream,errstream,changelists,ctx,pool);");
+ }
+ {
+ arg1 = svn_swig_pl_strings_to_array(ST(0),
+ _global_pool);
+ }
+ res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_client_diff_peg7" "', argument " "2"" of type '" "char const *""'");
+ }
+ arg2 = (char *)(buf2);
+ {
+ if (_global_pool == NULL) {
+ _global_pool = svn_swig_pl_make_pool((SV *)NULL);
+ SPAGAIN;
+ }
+ arg3 = svn_swig_pl_set_revision(&rev3, ST(2), TRUE, _global_pool);
+ }
+ {
+ if (_global_pool == NULL) {
+ _global_pool = svn_swig_pl_make_pool((SV *)NULL);
+ SPAGAIN;
+ }
+ arg4 = svn_swig_pl_set_revision(&rev4, ST(3), TRUE, _global_pool);
+ }
+ {
+ if (_global_pool == NULL) {
+ _global_pool = svn_swig_pl_make_pool((SV *)NULL);
+ SPAGAIN;
+ }
+ arg5 = svn_swig_pl_set_revision(&rev5, ST(4), TRUE, _global_pool);
+ }
+ res6 = SWIG_AsCharPtrAndSize(ST(5), &buf6, NULL, &alloc6);
+ if (!SWIG_IsOK(res6)) {
+ SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "svn_client_diff_peg7" "', argument " "6"" of type '" "char const *""'");
+ }
+ arg6 = (char *)(buf6);
+ ecode7 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(6), &val7);
+ if (!SWIG_IsOK(ecode7)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "svn_client_diff_peg7" "', argument " "7"" of type '" "svn_depth_t""'");
+ }
+ arg7 = (svn_depth_t)(val7);
+ ecode8 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(7), &val8);
+ if (!SWIG_IsOK(ecode8)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "svn_client_diff_peg7" "', argument " "8"" of type '" "svn_boolean_t""'");
+ }
+ arg8 = (svn_boolean_t)(val8);
+ ecode9 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(8), &val9);
+ if (!SWIG_IsOK(ecode9)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "svn_client_diff_peg7" "', argument " "9"" of type '" "svn_boolean_t""'");
+ }
+ arg9 = (svn_boolean_t)(val9);
+ ecode10 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(9), &val10);
+ if (!SWIG_IsOK(ecode10)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode10), "in method '" "svn_client_diff_peg7" "', argument " "10"" of type '" "svn_boolean_t""'");
+ }
+ arg10 = (svn_boolean_t)(val10);
+ ecode11 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(10), &val11);
+ if (!SWIG_IsOK(ecode11)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode11), "in method '" "svn_client_diff_peg7" "', argument " "11"" of type '" "svn_boolean_t""'");
+ }
+ arg11 = (svn_boolean_t)(val11);
+ ecode12 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(11), &val12);
+ if (!SWIG_IsOK(ecode12)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode12), "in method '" "svn_client_diff_peg7" "', argument " "12"" of type '" "svn_boolean_t""'");
+ }
+ arg12 = (svn_boolean_t)(val12);
+ ecode13 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(12), &val13);
+ if (!SWIG_IsOK(ecode13)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode13), "in method '" "svn_client_diff_peg7" "', argument " "13"" of type '" "svn_boolean_t""'");
+ }
+ arg13 = (svn_boolean_t)(val13);
+ ecode14 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(13), &val14);
+ if (!SWIG_IsOK(ecode14)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode14), "in method '" "svn_client_diff_peg7" "', argument " "14"" of type '" "svn_boolean_t""'");
+ }
+ arg14 = (svn_boolean_t)(val14);
+ ecode15 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(14), &val15);
+ if (!SWIG_IsOK(ecode15)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode15), "in method '" "svn_client_diff_peg7" "', argument " "15"" of type '" "svn_boolean_t""'");
+ }
+ arg15 = (svn_boolean_t)(val15);
+ ecode16 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(15), &val16);
+ if (!SWIG_IsOK(ecode16)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode16), "in method '" "svn_client_diff_peg7" "', argument " "16"" of type '" "svn_boolean_t""'");
+ }
+ arg16 = (svn_boolean_t)(val16);
+ res17 = SWIG_AsCharPtrAndSize(ST(16), &buf17, NULL, &alloc17);
+ if (!SWIG_IsOK(res17)) {
+ SWIG_exception_fail(SWIG_ArgError(res17), "in method '" "svn_client_diff_peg7" "', argument " "17"" of type '" "char const *""'");
+ }
+ arg17 = (char *)(buf17);
+ {
+ svn_swig_pl_make_stream (&arg18, ST(17));
+ SPAGAIN;
+ }
+ {
+ svn_swig_pl_make_stream (&arg19, ST(18));
+ SPAGAIN;
+ }
+ {
+ arg20 = SvOK(ST(19)) ? svn_swig_pl_strings_to_array(
+ ST(19), _global_pool) : NULL;
+ }
+ res21 = SWIG_ConvertPtr(ST(20), &argp21,SWIGTYPE_p_svn_client_ctx_t, 0 | 0 );
+ if (!SWIG_IsOK(res21)) {
+ SWIG_exception_fail(SWIG_ArgError(res21), "in method '" "svn_client_diff_peg7" "', argument " "21"" of type '" "svn_client_ctx_t *""'");
+ }
+ arg21 = (svn_client_ctx_t *)(argp21);
+ if (items > 21) {
+
+ }
+ {
+ if (!arg3) {
+ SWIG_exception(SWIG_ValueError,"Received a NULL pointer.");
+ }
+ }
+ {
+ result = (svn_error_t *)svn_client_diff_peg7((apr_array_header_t const *)arg1,(char const *)arg2,(struct svn_opt_revision_t const *)arg3,(struct svn_opt_revision_t const *)arg4,(struct svn_opt_revision_t const *)arg5,(char const *)arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13,arg14,arg15,arg16,(char const *)arg17,arg18,arg19,(apr_array_header_t const *)arg20,arg21,arg22);
+
+
+
+ }
+ {
+ if (result) {
+ SV *exception_handler = perl_get_sv ("SVN::Error::handler", FALSE);
+
+ if (SvOK(exception_handler)) {
+ SV *callback_result;
+
+ PUTBACK;
+ svn_swig_pl_callback_thunk (CALL_SV, exception_handler,
+ &callback_result, "S", result,
+ SWIGTYPE_p_svn_error_t);
+ SPAGAIN;
+ } else {
+ ST(argvi) = SWIG_NewPointerObj(result, SWIGTYPE_p_svn_error_t, 0);
+ argvi++;
+ }
+ }
+ }
+
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+
+
+
+ if (alloc6 == SWIG_NEWOBJ) free((char*)buf6);
+
+
+
+
+
+
+
+
+
+
+ if (alloc17 == SWIG_NEWOBJ) free((char*)buf17);
+
+
+
+
+
+ XSRETURN(argvi);
+ fail:
+
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+
+
+
+ if (alloc6 == SWIG_NEWOBJ) free((char*)buf6);
+
+
+
+
+
+
+
+
+
+
+ if (alloc17 == SWIG_NEWOBJ) free((char*)buf17);
+
+
+
+
+
+ SWIG_croak_null();
+ }
+}
+
+
XS(_wrap_svn_client_diff_peg6) {
{
apr_array_header_t *arg1 = (apr_array_header_t *) 0 ;
@@ -22792,6 +23408,121 @@ XS(_wrap_svn_client_relocate) {
}
+XS(_wrap_svn_client_revert4) {
+ {
+ apr_array_header_t *arg1 = (apr_array_header_t *) 0 ;
+ svn_depth_t arg2 ;
+ apr_array_header_t *arg3 = (apr_array_header_t *) 0 ;
+ svn_boolean_t arg4 ;
+ svn_boolean_t arg5 ;
+ svn_boolean_t arg6 ;
+ svn_client_ctx_t *arg7 = (svn_client_ctx_t *) 0 ;
+ apr_pool_t *arg8 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int val4 ;
+ int ecode4 = 0 ;
+ int val5 ;
+ int ecode5 = 0 ;
+ int val6 ;
+ int ecode6 = 0 ;
+ void *argp7 = 0 ;
+ int res7 = 0 ;
+ int argvi = 0;
+ svn_error_t *result = 0 ;
+ dXSARGS;
+
+ {
+ _global_pool = arg8 = svn_swig_pl_make_pool (ST(items-1));
+ SPAGAIN;
+ }
+ if ((items < 7) || (items > 8)) {
+ SWIG_croak("Usage: svn_client_revert4(paths,depth,changelists,clear_changelists,metadata_only,added_keep_local,ctx,scratch_pool);");
+ }
+ {
+ arg1 = svn_swig_pl_strings_to_array(ST(0),
+ _global_pool);
+ }
+ ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "svn_client_revert4" "', argument " "2"" of type '" "svn_depth_t""'");
+ }
+ arg2 = (svn_depth_t)(val2);
+ {
+ arg3 = SvOK(ST(2)) ? svn_swig_pl_strings_to_array(
+ ST(2), _global_pool) : NULL;
+ }
+ ecode4 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(3), &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "svn_client_revert4" "', argument " "4"" of type '" "svn_boolean_t""'");
+ }
+ arg4 = (svn_boolean_t)(val4);
+ ecode5 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(4), &val5);
+ if (!SWIG_IsOK(ecode5)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "svn_client_revert4" "', argument " "5"" of type '" "svn_boolean_t""'");
+ }
+ arg5 = (svn_boolean_t)(val5);
+ ecode6 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(5), &val6);
+ if (!SWIG_IsOK(ecode6)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "svn_client_revert4" "', argument " "6"" of type '" "svn_boolean_t""'");
+ }
+ arg6 = (svn_boolean_t)(val6);
+ res7 = SWIG_ConvertPtr(ST(6), &argp7,SWIGTYPE_p_svn_client_ctx_t, 0 | 0 );
+ if (!SWIG_IsOK(res7)) {
+ SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "svn_client_revert4" "', argument " "7"" of type '" "svn_client_ctx_t *""'");
+ }
+ arg7 = (svn_client_ctx_t *)(argp7);
+ if (items > 7) {
+
+ }
+ {
+ result = (svn_error_t *)svn_client_revert4((apr_array_header_t const *)arg1,arg2,(apr_array_header_t const *)arg3,arg4,arg5,arg6,arg7,arg8);
+
+
+
+ }
+ {
+ if (result) {
+ SV *exception_handler = perl_get_sv ("SVN::Error::handler", FALSE);
+
+ if (SvOK(exception_handler)) {
+ SV *callback_result;
+
+ PUTBACK;
+ svn_swig_pl_callback_thunk (CALL_SV, exception_handler,
+ &callback_result, "S", result,
+ SWIGTYPE_p_svn_error_t);
+ SPAGAIN;
+ } else {
+ ST(argvi) = SWIG_NewPointerObj(result, SWIGTYPE_p_svn_error_t, 0);
+ argvi++;
+ }
+ }
+ }
+
+
+
+
+
+
+
+
+ XSRETURN(argvi);
+ fail:
+
+
+
+
+
+
+
+
+ SWIG_croak_null();
+ }
+}
+
+
XS(_wrap_svn_client_revert3) {
{
apr_array_header_t *arg1 = (apr_array_header_t *) 0 ;
@@ -23105,6 +23836,91 @@ XS(_wrap_svn_client_conflict_option_set_merged_propval) {
}
+XS(_wrap_svn_client_conflict_option_get_moved_to_repos_relpath_candidates2) {
+ {
+ apr_array_header_t **arg1 = (apr_array_header_t **) 0 ;
+ svn_client_conflict_option_t *arg2 = (svn_client_conflict_option_t *) 0 ;
+ apr_pool_t *arg3 = (apr_pool_t *) 0 ;
+ apr_pool_t *arg4 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool ;
+ apr_array_header_t *temp1 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ int argvi = 0;
+ svn_error_t *result = 0 ;
+ dXSARGS;
+
+ {
+ _global_pool = arg3 = svn_swig_pl_make_pool (ST(items-1));
+ SPAGAIN;
+ }
+ {
+ _global_pool = arg4 = svn_swig_pl_make_pool (ST(items-1));
+ SPAGAIN;
+ }
+ arg1 = &temp1;
+ if ((items < 1) || (items > 3)) {
+ SWIG_croak("Usage: svn_client_conflict_option_get_moved_to_repos_relpath_candidates2(option,result_pool,scratch_pool);");
+ }
+ res2 = SWIG_ConvertPtr(ST(0), &argp2,SWIGTYPE_p_svn_client_conflict_option_t, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_client_conflict_option_get_moved_to_repos_relpath_candidates2" "', argument " "2"" of type '" "svn_client_conflict_option_t *""'");
+ }
+ arg2 = (svn_client_conflict_option_t *)(argp2);
+ if (items > 1) {
+
+ }
+ if (items > 2) {
+
+ }
+ {
+ result = (svn_error_t *)svn_client_conflict_option_get_moved_to_repos_relpath_candidates2(arg1,arg2,arg3,arg4);
+
+
+
+ }
+ {
+ if (result) {
+ SV *exception_handler = perl_get_sv ("SVN::Error::handler", FALSE);
+
+ if (SvOK(exception_handler)) {
+ SV *callback_result;
+
+ PUTBACK;
+ svn_swig_pl_callback_thunk (CALL_SV, exception_handler,
+ &callback_result, "S", result,
+ SWIGTYPE_p_svn_error_t);
+ SPAGAIN;
+ } else {
+ ST(argvi) = SWIG_NewPointerObj(result, SWIGTYPE_p_svn_error_t, 0);
+ argvi++;
+ }
+ }
+ }
+ {
+ /* FIXME: Missing argout typemap: svn_client_conflict_option_get_moved_to_repos_relpath_candidates2 arg 1 (apr_array_header_t **) */
+
+
+
+
+ SWIG_exception(SWIG_ValueError, "svn_client_conflict_option_get_moved_to_repos_relpath_candidates2 is not implemented yet");
+
+ }
+
+
+
+
+ XSRETURN(argvi);
+ fail:
+
+
+
+
+ SWIG_croak_null();
+ }
+}
+
+
XS(_wrap_svn_client_conflict_option_get_moved_to_repos_relpath_candidates) {
{
apr_array_header_t **arg1 = (apr_array_header_t **) 0 ;
@@ -23190,6 +24006,87 @@ XS(_wrap_svn_client_conflict_option_get_moved_to_repos_relpath_candidates) {
}
+XS(_wrap_svn_client_conflict_option_set_moved_to_repos_relpath2) {
+ {
+ svn_client_conflict_option_t *arg1 = (svn_client_conflict_option_t *) 0 ;
+ int arg2 ;
+ svn_client_ctx_t *arg3 = (svn_client_ctx_t *) 0 ;
+ apr_pool_t *arg4 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ int argvi = 0;
+ svn_error_t *result = 0 ;
+ dXSARGS;
+
+ {
+ _global_pool = arg4 = svn_swig_pl_make_pool (ST(items-1));
+ SPAGAIN;
+ }
+ if ((items < 3) || (items > 4)) {
+ SWIG_croak("Usage: svn_client_conflict_option_set_moved_to_repos_relpath2(option,preferred_move_target_idx,ctx,scratch_pool);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client_conflict_option_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client_conflict_option_set_moved_to_repos_relpath2" "', argument " "1"" of type '" "svn_client_conflict_option_t *""'");
+ }
+ arg1 = (svn_client_conflict_option_t *)(argp1);
+ ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "svn_client_conflict_option_set_moved_to_repos_relpath2" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = (int)(val2);
+ res3 = SWIG_ConvertPtr(ST(2), &argp3,SWIGTYPE_p_svn_client_ctx_t, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "svn_client_conflict_option_set_moved_to_repos_relpath2" "', argument " "3"" of type '" "svn_client_ctx_t *""'");
+ }
+ arg3 = (svn_client_ctx_t *)(argp3);
+ if (items > 3) {
+
+ }
+ {
+ result = (svn_error_t *)svn_client_conflict_option_set_moved_to_repos_relpath2(arg1,arg2,arg3,arg4);
+
+
+
+ }
+ {
+ if (result) {
+ SV *exception_handler = perl_get_sv ("SVN::Error::handler", FALSE);
+
+ if (SvOK(exception_handler)) {
+ SV *callback_result;
+
+ PUTBACK;
+ svn_swig_pl_callback_thunk (CALL_SV, exception_handler,
+ &callback_result, "S", result,
+ SWIGTYPE_p_svn_error_t);
+ SPAGAIN;
+ } else {
+ ST(argvi) = SWIG_NewPointerObj(result, SWIGTYPE_p_svn_error_t, 0);
+ argvi++;
+ }
+ }
+ }
+
+
+
+
+ XSRETURN(argvi);
+ fail:
+
+
+
+
+ SWIG_croak_null();
+ }
+}
+
+
XS(_wrap_svn_client_conflict_option_set_moved_to_repos_relpath) {
{
svn_client_conflict_option_t *arg1 = (svn_client_conflict_option_t *) 0 ;
@@ -23271,6 +24168,91 @@ XS(_wrap_svn_client_conflict_option_set_moved_to_repos_relpath) {
}
+XS(_wrap_svn_client_conflict_option_get_moved_to_abspath_candidates2) {
+ {
+ apr_array_header_t **arg1 = (apr_array_header_t **) 0 ;
+ svn_client_conflict_option_t *arg2 = (svn_client_conflict_option_t *) 0 ;
+ apr_pool_t *arg3 = (apr_pool_t *) 0 ;
+ apr_pool_t *arg4 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool ;
+ apr_array_header_t *temp1 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ int argvi = 0;
+ svn_error_t *result = 0 ;
+ dXSARGS;
+
+ {
+ _global_pool = arg3 = svn_swig_pl_make_pool (ST(items-1));
+ SPAGAIN;
+ }
+ {
+ _global_pool = arg4 = svn_swig_pl_make_pool (ST(items-1));
+ SPAGAIN;
+ }
+ arg1 = &temp1;
+ if ((items < 1) || (items > 3)) {
+ SWIG_croak("Usage: svn_client_conflict_option_get_moved_to_abspath_candidates2(option,result_pool,scratch_pool);");
+ }
+ res2 = SWIG_ConvertPtr(ST(0), &argp2,SWIGTYPE_p_svn_client_conflict_option_t, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_client_conflict_option_get_moved_to_abspath_candidates2" "', argument " "2"" of type '" "svn_client_conflict_option_t *""'");
+ }
+ arg2 = (svn_client_conflict_option_t *)(argp2);
+ if (items > 1) {
+
+ }
+ if (items > 2) {
+
+ }
+ {
+ result = (svn_error_t *)svn_client_conflict_option_get_moved_to_abspath_candidates2(arg1,arg2,arg3,arg4);
+
+
+
+ }
+ {
+ if (result) {
+ SV *exception_handler = perl_get_sv ("SVN::Error::handler", FALSE);
+
+ if (SvOK(exception_handler)) {
+ SV *callback_result;
+
+ PUTBACK;
+ svn_swig_pl_callback_thunk (CALL_SV, exception_handler,
+ &callback_result, "S", result,
+ SWIGTYPE_p_svn_error_t);
+ SPAGAIN;
+ } else {
+ ST(argvi) = SWIG_NewPointerObj(result, SWIGTYPE_p_svn_error_t, 0);
+ argvi++;
+ }
+ }
+ }
+ {
+ /* FIXME: Missing argout typemap: svn_client_conflict_option_get_moved_to_abspath_candidates2 arg 1 (apr_array_header_t **) */
+
+
+
+
+ SWIG_exception(SWIG_ValueError, "svn_client_conflict_option_get_moved_to_abspath_candidates2 is not implemented yet");
+
+ }
+
+
+
+
+ XSRETURN(argvi);
+ fail:
+
+
+
+
+ SWIG_croak_null();
+ }
+}
+
+
XS(_wrap_svn_client_conflict_option_get_moved_to_abspath_candidates) {
{
apr_array_header_t **arg1 = (apr_array_header_t **) 0 ;
@@ -23356,6 +24338,87 @@ XS(_wrap_svn_client_conflict_option_get_moved_to_abspath_candidates) {
}
+XS(_wrap_svn_client_conflict_option_set_moved_to_abspath2) {
+ {
+ svn_client_conflict_option_t *arg1 = (svn_client_conflict_option_t *) 0 ;
+ int arg2 ;
+ svn_client_ctx_t *arg3 = (svn_client_ctx_t *) 0 ;
+ apr_pool_t *arg4 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ int argvi = 0;
+ svn_error_t *result = 0 ;
+ dXSARGS;
+
+ {
+ _global_pool = arg4 = svn_swig_pl_make_pool (ST(items-1));
+ SPAGAIN;
+ }
+ if ((items < 3) || (items > 4)) {
+ SWIG_croak("Usage: svn_client_conflict_option_set_moved_to_abspath2(option,preferred_move_target_idx,ctx,scratch_pool);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client_conflict_option_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client_conflict_option_set_moved_to_abspath2" "', argument " "1"" of type '" "svn_client_conflict_option_t *""'");
+ }
+ arg1 = (svn_client_conflict_option_t *)(argp1);
+ ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "svn_client_conflict_option_set_moved_to_abspath2" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = (int)(val2);
+ res3 = SWIG_ConvertPtr(ST(2), &argp3,SWIGTYPE_p_svn_client_ctx_t, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "svn_client_conflict_option_set_moved_to_abspath2" "', argument " "3"" of type '" "svn_client_ctx_t *""'");
+ }
+ arg3 = (svn_client_ctx_t *)(argp3);
+ if (items > 3) {
+
+ }
+ {
+ result = (svn_error_t *)svn_client_conflict_option_set_moved_to_abspath2(arg1,arg2,arg3,arg4);
+
+
+
+ }
+ {
+ if (result) {
+ SV *exception_handler = perl_get_sv ("SVN::Error::handler", FALSE);
+
+ if (SvOK(exception_handler)) {
+ SV *callback_result;
+
+ PUTBACK;
+ svn_swig_pl_callback_thunk (CALL_SV, exception_handler,
+ &callback_result, "S", result,
+ SWIGTYPE_p_svn_error_t);
+ SPAGAIN;
+ } else {
+ ST(argvi) = SWIG_NewPointerObj(result, SWIGTYPE_p_svn_error_t, 0);
+ argvi++;
+ }
+ }
+ }
+
+
+
+
+ XSRETURN(argvi);
+ fail:
+
+
+
+
+ SWIG_croak_null();
+ }
+}
+
+
XS(_wrap_svn_client_conflict_option_set_moved_to_abspath) {
{
svn_client_conflict_option_t *arg1 = (svn_client_conflict_option_t *) 0 ;
@@ -32451,77 +33514,920 @@ XS(_wrap_svn_client_cat) {
}
-XS(_wrap_svn_client_shelve) {
+XS(_wrap_svn_client__shelf_t_name_set) {
{
- char *arg1 = (char *) 0 ;
- apr_array_header_t *arg2 = (apr_array_header_t *) 0 ;
- svn_depth_t arg3 ;
- apr_array_header_t *arg4 = (apr_array_header_t *) 0 ;
- svn_boolean_t arg5 ;
- svn_boolean_t arg6 ;
- svn_client_ctx_t *arg7 = (svn_client_ctx_t *) 0 ;
- apr_pool_t *arg8 = (apr_pool_t *) 0 ;
+ struct svn_client__shelf_t *arg1 = (struct svn_client__shelf_t *) 0 ;
+ char *arg2 = (char *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ int argvi = 0;
+ dXSARGS;
+
+ if ((items < 2) || (items > 2)) {
+ SWIG_croak("Usage: svn_client__shelf_t_name_set(self,name);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client__shelf_t_name_set" "', argument " "1"" of type '" "struct svn_client__shelf_t *""'");
+ }
+ arg1 = (struct svn_client__shelf_t *)(argp1);
+ res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_client__shelf_t_name_set" "', argument " "2"" of type '" "char const *""'");
+ }
+ arg2 = (char *)(buf2);
+ {
+ apr_size_t len = strlen(arg2) + 1;
+ char *copied;
+ if (arg1->name) free((char *)arg1->name);
+ copied = malloc(len);
+ memcpy(copied, arg2, len);
+ arg1->name = copied;
+ }
+ ST(argvi) = sv_newmortal();
+
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ XSRETURN(argvi);
+ fail:
+
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_svn_client__shelf_t_name_get) {
+ {
+ struct svn_client__shelf_t *arg1 = (struct svn_client__shelf_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int argvi = 0;
+ char *result = 0 ;
+ dXSARGS;
+
+ if ((items < 1) || (items > 1)) {
+ SWIG_croak("Usage: svn_client__shelf_t_name_get(self);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client__shelf_t_name_get" "', argument " "1"" of type '" "struct svn_client__shelf_t *""'");
+ }
+ arg1 = (struct svn_client__shelf_t *)(argp1);
+ result = (char *) ((arg1)->name);
+ ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
+
+ XSRETURN(argvi);
+ fail:
+
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_svn_client__shelf_t_max_version_set) {
+ {
+ struct svn_client__shelf_t *arg1 = (struct svn_client__shelf_t *) 0 ;
+ int arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int argvi = 0;
+ dXSARGS;
+
+ if ((items < 2) || (items > 2)) {
+ SWIG_croak("Usage: svn_client__shelf_t_max_version_set(self,max_version);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client__shelf_t_max_version_set" "', argument " "1"" of type '" "struct svn_client__shelf_t *""'");
+ }
+ arg1 = (struct svn_client__shelf_t *)(argp1);
+ ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "svn_client__shelf_t_max_version_set" "', argument " "2"" of type '" "int""'");
+ }
+ arg2 = (int)(val2);
+ if (arg1) (arg1)->max_version = arg2;
+ ST(argvi) = sv_newmortal();
+
+
+ XSRETURN(argvi);
+ fail:
+
+
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_svn_client__shelf_t_max_version_get) {
+ {
+ struct svn_client__shelf_t *arg1 = (struct svn_client__shelf_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int argvi = 0;
+ int result;
+ dXSARGS;
+
+ if ((items < 1) || (items > 1)) {
+ SWIG_croak("Usage: svn_client__shelf_t_max_version_get(self);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client__shelf_t_max_version_get" "', argument " "1"" of type '" "struct svn_client__shelf_t *""'");
+ }
+ arg1 = (struct svn_client__shelf_t *)(argp1);
+ result = (int) ((arg1)->max_version);
+ ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
+
+ XSRETURN(argvi);
+ fail:
+
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_svn_client__shelf_t_wc_root_abspath_set) {
+ {
+ struct svn_client__shelf_t *arg1 = (struct svn_client__shelf_t *) 0 ;
+ char *arg2 = (char *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ int argvi = 0;
+ dXSARGS;
+
+ if ((items < 2) || (items > 2)) {
+ SWIG_croak("Usage: svn_client__shelf_t_wc_root_abspath_set(self,wc_root_abspath);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client__shelf_t_wc_root_abspath_set" "', argument " "1"" of type '" "struct svn_client__shelf_t *""'");
+ }
+ arg1 = (struct svn_client__shelf_t *)(argp1);
+ res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_client__shelf_t_wc_root_abspath_set" "', argument " "2"" of type '" "char const *""'");
+ }
+ arg2 = (char *)(buf2);
+ {
+ apr_size_t len = strlen(arg2) + 1;
+ char *copied;
+ if (arg1->wc_root_abspath) free((char *)arg1->wc_root_abspath);
+ copied = malloc(len);
+ memcpy(copied, arg2, len);
+ arg1->wc_root_abspath = copied;
+ }
+ ST(argvi) = sv_newmortal();
+
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ XSRETURN(argvi);
+ fail:
+
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_svn_client__shelf_t_wc_root_abspath_get) {
+ {
+ struct svn_client__shelf_t *arg1 = (struct svn_client__shelf_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int argvi = 0;
+ char *result = 0 ;
+ dXSARGS;
+
+ if ((items < 1) || (items > 1)) {
+ SWIG_croak("Usage: svn_client__shelf_t_wc_root_abspath_get(self);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client__shelf_t_wc_root_abspath_get" "', argument " "1"" of type '" "struct svn_client__shelf_t *""'");
+ }
+ arg1 = (struct svn_client__shelf_t *)(argp1);
+ result = (char *) ((arg1)->wc_root_abspath);
+ ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
+
+ XSRETURN(argvi);
+ fail:
+
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_svn_client__shelf_t_shelves_dir_set) {
+ {
+ struct svn_client__shelf_t *arg1 = (struct svn_client__shelf_t *) 0 ;
+ char *arg2 = (char *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ int argvi = 0;
+ dXSARGS;
+
+ if ((items < 2) || (items > 2)) {
+ SWIG_croak("Usage: svn_client__shelf_t_shelves_dir_set(self,shelves_dir);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client__shelf_t_shelves_dir_set" "', argument " "1"" of type '" "struct svn_client__shelf_t *""'");
+ }
+ arg1 = (struct svn_client__shelf_t *)(argp1);
+ res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_client__shelf_t_shelves_dir_set" "', argument " "2"" of type '" "char const *""'");
+ }
+ arg2 = (char *)(buf2);
+ {
+ apr_size_t len = strlen(arg2) + 1;
+ char *copied;
+ if (arg1->shelves_dir) free((char *)arg1->shelves_dir);
+ copied = malloc(len);
+ memcpy(copied, arg2, len);
+ arg1->shelves_dir = copied;
+ }
+ ST(argvi) = sv_newmortal();
+
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ XSRETURN(argvi);
+ fail:
+
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_svn_client__shelf_t_shelves_dir_get) {
+ {
+ struct svn_client__shelf_t *arg1 = (struct svn_client__shelf_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int argvi = 0;
+ char *result = 0 ;
+ dXSARGS;
+
+ if ((items < 1) || (items > 1)) {
+ SWIG_croak("Usage: svn_client__shelf_t_shelves_dir_get(self);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client__shelf_t_shelves_dir_get" "', argument " "1"" of type '" "struct svn_client__shelf_t *""'");
+ }
+ arg1 = (struct svn_client__shelf_t *)(argp1);
+ result = (char *) ((arg1)->shelves_dir);
+ ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
+
+ XSRETURN(argvi);
+ fail:
+
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_svn_client__shelf_t_revprops_set) {
+ {
+ struct svn_client__shelf_t *arg1 = (struct svn_client__shelf_t *) 0 ;
+ apr_hash_t *arg2 = (apr_hash_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ apr_pool_t *_global_pool = NULL ;
+ int argvi = 0;
+ dXSARGS;
+
+ if ((items < 2) || (items > 2)) {
+ SWIG_croak("Usage: svn_client__shelf_t_revprops_set(self,revprops);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client__shelf_t_revprops_set" "', argument " "1"" of type '" "struct svn_client__shelf_t *""'");
+ }
+ arg1 = (struct svn_client__shelf_t *)(argp1);
+ {
+ if (_global_pool == NULL) {
+ _global_pool = svn_swig_pl_make_pool((SV *)NULL);
+ SPAGAIN;
+ }
+ arg2 = svn_swig_pl_hash_to_prophash(ST(1), _global_pool);
+ }
+ if (arg1) (arg1)->revprops = arg2;
+ ST(argvi) = sv_newmortal();
+
+
+ XSRETURN(argvi);
+ fail:
+
+
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_svn_client__shelf_t_revprops_get) {
+ {
+ struct svn_client__shelf_t *arg1 = (struct svn_client__shelf_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int argvi = 0;
+ apr_hash_t *result = 0 ;
+ dXSARGS;
+
+ if ((items < 1) || (items > 1)) {
+ SWIG_croak("Usage: svn_client__shelf_t_revprops_get(self);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client__shelf_t_revprops_get" "', argument " "1"" of type '" "struct svn_client__shelf_t *""'");
+ }
+ arg1 = (struct svn_client__shelf_t *)(argp1);
+ result = (apr_hash_t *) ((arg1)->revprops);
+ {
+ if (argvi >= items) EXTEND(sp,1); ST(argvi) = svn_swig_pl_prophash_to_hash(result); argvi++ ;
+ }
+
+ XSRETURN(argvi);
+ fail:
+
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_svn_client__shelf_t_ctx_set) {
+ {
+ struct svn_client__shelf_t *arg1 = (struct svn_client__shelf_t *) 0 ;
+ svn_client_ctx_t *arg2 = (svn_client_ctx_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ int argvi = 0;
+ dXSARGS;
+
+ if ((items < 2) || (items > 2)) {
+ SWIG_croak("Usage: svn_client__shelf_t_ctx_set(self,ctx);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client__shelf_t_ctx_set" "', argument " "1"" of type '" "struct svn_client__shelf_t *""'");
+ }
+ arg1 = (struct svn_client__shelf_t *)(argp1);
+ res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_svn_client_ctx_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_client__shelf_t_ctx_set" "', argument " "2"" of type '" "svn_client_ctx_t *""'");
+ }
+ arg2 = (svn_client_ctx_t *)(argp2);
+ if (arg1) (arg1)->ctx = arg2;
+ ST(argvi) = sv_newmortal();
+
+
+ XSRETURN(argvi);
+ fail:
+
+
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_svn_client__shelf_t_ctx_get) {
+ {
+ struct svn_client__shelf_t *arg1 = (struct svn_client__shelf_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int argvi = 0;
+ svn_client_ctx_t *result = 0 ;
+ dXSARGS;
+
+ if ((items < 1) || (items > 1)) {
+ SWIG_croak("Usage: svn_client__shelf_t_ctx_get(self);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client__shelf_t_ctx_get" "', argument " "1"" of type '" "struct svn_client__shelf_t *""'");
+ }
+ arg1 = (struct svn_client__shelf_t *)(argp1);
+ result = (svn_client_ctx_t *) ((arg1)->ctx);
+ ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_svn_client_ctx_t, 0 | SWIG_SHADOW); argvi++ ;
+
+ XSRETURN(argvi);
+ fail:
+
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_svn_client__shelf_t_pool_set) {
+ {
+ struct svn_client__shelf_t *arg1 = (struct svn_client__shelf_t *) 0 ;
+ apr_pool_t *arg2 = (apr_pool_t *) 0 ;
apr_pool_t *_global_pool ;
- int res1 ;
- char *buf1 = 0 ;
- int alloc1 = 0 ;
- int val3 ;
- int ecode3 = 0 ;
- int val5 ;
- int ecode5 = 0 ;
- int val6 ;
- int ecode6 = 0 ;
- void *argp7 = 0 ;
- int res7 = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
int argvi = 0;
- svn_error_t *result = 0 ;
dXSARGS;
{
- _global_pool = arg8 = svn_swig_pl_make_pool (ST(items-1));
+ _global_pool = arg2 = svn_swig_pl_make_pool (ST(items-1));
SPAGAIN;
}
- if ((items < 7) || (items > 8)) {
- SWIG_croak("Usage: svn_client_shelve(name,paths,depth,changelists,keep_local,dry_run,ctx,pool);");
+ if ((items < 1) || (items > 2)) {
+ SWIG_croak("Usage: svn_client__shelf_t_pool_set(self,pool);");
}
- res1 = SWIG_AsCharPtrAndSize(ST(0), &buf1, NULL, &alloc1);
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client_shelve" "', argument " "1"" of type '" "char const *""'");
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client__shelf_t_pool_set" "', argument " "1"" of type '" "struct svn_client__shelf_t *""'");
+ }
+ arg1 = (struct svn_client__shelf_t *)(argp1);
+ if (items > 1) {
+
+ }
+ if (arg1) (arg1)->pool = arg2;
+ ST(argvi) = sv_newmortal();
+
+
+ XSRETURN(argvi);
+ fail:
+
+
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_svn_client__shelf_t_pool_get) {
+ {
+ struct svn_client__shelf_t *arg1 = (struct svn_client__shelf_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int argvi = 0;
+ apr_pool_t *result = 0 ;
+ dXSARGS;
+
+ if ((items < 1) || (items > 1)) {
+ SWIG_croak("Usage: svn_client__shelf_t_pool_get(self);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client__shelf_t_pool_get" "', argument " "1"" of type '" "struct svn_client__shelf_t *""'");
+ }
+ arg1 = (struct svn_client__shelf_t *)(argp1);
+ result = (apr_pool_t *) ((arg1)->pool);
+ ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_apr_pool_t, 0 | 0); argvi++ ;
+
+ XSRETURN(argvi);
+ fail:
+
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_new_svn_client__shelf_t) {
+ {
+ int argvi = 0;
+ struct svn_client__shelf_t *result = 0 ;
+ dXSARGS;
+
+ if ((items < 0) || (items > 0)) {
+ SWIG_croak("Usage: new_svn_client__shelf_t();");
}
- arg1 = (char *)(buf1);
{
- arg2 = svn_swig_pl_strings_to_array(ST(1),
- _global_pool);
+ result = (struct svn_client__shelf_t *)calloc(1, sizeof(struct svn_client__shelf_t));
+
+
+
}
- ecode3 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(2), &val3);
- if (!SWIG_IsOK(ecode3)) {
- SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "svn_client_shelve" "', argument " "3"" of type '" "svn_depth_t""'");
- }
- arg3 = (svn_depth_t)(val3);
+ ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_svn_client__shelf_t, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
+ XSRETURN(argvi);
+ fail:
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_delete_svn_client__shelf_t) {
+ {
+ struct svn_client__shelf_t *arg1 = (struct svn_client__shelf_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int argvi = 0;
+ dXSARGS;
+
+ if ((items < 1) || (items > 1)) {
+ SWIG_croak("Usage: delete_svn_client__shelf_t(self);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client__shelf_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_svn_client__shelf_t" "', argument " "1"" of type '" "struct svn_client__shelf_t *""'");
+ }
+ arg1 = (struct svn_client__shelf_t *)(argp1);
{
- arg4 = SvOK(ST(3)) ? svn_swig_pl_strings_to_array(
- ST(3), _global_pool) : NULL;
+ free((char *) arg1);
+
+
+
}
- ecode5 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(4), &val5);
- if (!SWIG_IsOK(ecode5)) {
- SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "svn_client_shelve" "', argument " "5"" of type '" "svn_boolean_t""'");
+ ST(argvi) = sv_newmortal();
+
+ XSRETURN(argvi);
+ fail:
+
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_svn_client__shelf_version_t_shelf_set) {
+ {
+ struct svn_client__shelf_version_t *arg1 = (struct svn_client__shelf_version_t *) 0 ;
+ svn_client__shelf_t *arg2 = (svn_client__shelf_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ int argvi = 0;
+ dXSARGS;
+
+ if ((items < 2) || (items > 2)) {
+ SWIG_croak("Usage: svn_client__shelf_version_t_shelf_set(self,shelf);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client__shelf_version_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client__shelf_version_t_shelf_set" "', argument " "1"" of type '" "struct svn_client__shelf_version_t *""'");
+ }
+ arg1 = (struct svn_client__shelf_version_t *)(argp1);
+ res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_svn_client__shelf_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_client__shelf_version_t_shelf_set" "', argument " "2"" of type '" "svn_client__shelf_t *""'");
+ }
+ arg2 = (svn_client__shelf_t *)(argp2);
+ if (arg1) (arg1)->shelf = arg2;
+ ST(argvi) = sv_newmortal();
+
+
+ XSRETURN(argvi);
+ fail:
+
+
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_svn_client__shelf_version_t_shelf_get) {
+ {
+ struct svn_client__shelf_version_t *arg1 = (struct svn_client__shelf_version_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int argvi = 0;
+ svn_client__shelf_t *result = 0 ;
+ dXSARGS;
+
+ if ((items < 1) || (items > 1)) {
+ SWIG_croak("Usage: svn_client__shelf_version_t_shelf_get(self);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client__shelf_version_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client__shelf_version_t_shelf_get" "', argument " "1"" of type '" "struct svn_client__shelf_version_t *""'");
+ }
+ arg1 = (struct svn_client__shelf_version_t *)(argp1);
+ result = (svn_client__shelf_t *) ((arg1)->shelf);
+ ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_svn_client__shelf_t, 0 | SWIG_SHADOW); argvi++ ;
+
+ XSRETURN(argvi);
+ fail:
+
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_svn_client__shelf_version_t_mtime_set) {
+ {
+ struct svn_client__shelf_version_t *arg1 = (struct svn_client__shelf_version_t *) 0 ;
+ apr_time_t arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ long long val2 ;
+ int ecode2 = 0 ;
+ int argvi = 0;
+ dXSARGS;
+
+ if ((items < 2) || (items > 2)) {
+ SWIG_croak("Usage: svn_client__shelf_version_t_mtime_set(self,mtime);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client__shelf_version_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client__shelf_version_t_mtime_set" "', argument " "1"" of type '" "struct svn_client__shelf_version_t *""'");
+ }
+ arg1 = (struct svn_client__shelf_version_t *)(argp1);
+ ecode2 = SWIG_AsVal_long_SS_long SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "svn_client__shelf_version_t_mtime_set" "', argument " "2"" of type '" "apr_time_t""'");
}
- arg5 = (svn_boolean_t)(val5);
- ecode6 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(5), &val6);
- if (!SWIG_IsOK(ecode6)) {
- SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "svn_client_shelve" "', argument " "6"" of type '" "svn_boolean_t""'");
+ arg2 = (apr_time_t)(val2);
+ if (arg1) (arg1)->mtime = arg2;
+ ST(argvi) = sv_newmortal();
+
+
+ XSRETURN(argvi);
+ fail:
+
+
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_svn_client__shelf_version_t_mtime_get) {
+ {
+ struct svn_client__shelf_version_t *arg1 = (struct svn_client__shelf_version_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int argvi = 0;
+ apr_time_t result;
+ dXSARGS;
+
+ if ((items < 1) || (items > 1)) {
+ SWIG_croak("Usage: svn_client__shelf_version_t_mtime_get(self);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client__shelf_version_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client__shelf_version_t_mtime_get" "', argument " "1"" of type '" "struct svn_client__shelf_version_t *""'");
+ }
+ arg1 = (struct svn_client__shelf_version_t *)(argp1);
+ result = ((arg1)->mtime);
+ {
+ char temp[30];
+ sprintf(temp, "%" APR_INT64_T_FMT, (apr_int64_t) result);
+ if (argvi >= items) EXTEND(sp,1); ST(argvi) = sv_2mortal(newSVpv(temp, 0)); argvi++ ;
+ }
+
+ XSRETURN(argvi);
+ fail:
+
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_svn_client__shelf_version_t_files_dir_abspath_set) {
+ {
+ struct svn_client__shelf_version_t *arg1 = (struct svn_client__shelf_version_t *) 0 ;
+ char *arg2 = (char *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ int argvi = 0;
+ dXSARGS;
+
+ if ((items < 2) || (items > 2)) {
+ SWIG_croak("Usage: svn_client__shelf_version_t_files_dir_abspath_set(self,files_dir_abspath);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client__shelf_version_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client__shelf_version_t_files_dir_abspath_set" "', argument " "1"" of type '" "struct svn_client__shelf_version_t *""'");
+ }
+ arg1 = (struct svn_client__shelf_version_t *)(argp1);
+ res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_client__shelf_version_t_files_dir_abspath_set" "', argument " "2"" of type '" "char const *""'");
+ }
+ arg2 = (char *)(buf2);
+ {
+ apr_size_t len = strlen(arg2) + 1;
+ char *copied;
+ if (arg1->files_dir_abspath) free((char *)arg1->files_dir_abspath);
+ copied = malloc(len);
+ memcpy(copied, arg2, len);
+ arg1->files_dir_abspath = copied;
+ }
+ ST(argvi) = sv_newmortal();
+
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ XSRETURN(argvi);
+ fail:
+
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_svn_client__shelf_version_t_files_dir_abspath_get) {
+ {
+ struct svn_client__shelf_version_t *arg1 = (struct svn_client__shelf_version_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int argvi = 0;
+ char *result = 0 ;
+ dXSARGS;
+
+ if ((items < 1) || (items > 1)) {
+ SWIG_croak("Usage: svn_client__shelf_version_t_files_dir_abspath_get(self);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client__shelf_version_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client__shelf_version_t_files_dir_abspath_get" "', argument " "1"" of type '" "struct svn_client__shelf_version_t *""'");
+ }
+ arg1 = (struct svn_client__shelf_version_t *)(argp1);
+ result = (char *) ((arg1)->files_dir_abspath);
+ ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
+
+ XSRETURN(argvi);
+ fail:
+
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_svn_client__shelf_version_t_version_number_set) {
+ {
+ struct svn_client__shelf_version_t *arg1 = (struct svn_client__shelf_version_t *) 0 ;
+ int arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int argvi = 0;
+ dXSARGS;
+
+ if ((items < 2) || (items > 2)) {
+ SWIG_croak("Usage: svn_client__shelf_version_t_version_number_set(self,version_number);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client__shelf_version_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client__shelf_version_t_version_number_set" "', argument " "1"" of type '" "struct svn_client__shelf_version_t *""'");
+ }
+ arg1 = (struct svn_client__shelf_version_t *)(argp1);
+ ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "svn_client__shelf_version_t_version_number_set" "', argument " "2"" of type '" "int""'");
}
- arg6 = (svn_boolean_t)(val6);
- res7 = SWIG_ConvertPtr(ST(6), &argp7,SWIGTYPE_p_svn_client_ctx_t, 0 | 0 );
- if (!SWIG_IsOK(res7)) {
- SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "svn_client_shelve" "', argument " "7"" of type '" "svn_client_ctx_t *""'");
+ arg2 = (int)(val2);
+ if (arg1) (arg1)->version_number = arg2;
+ ST(argvi) = sv_newmortal();
+
+
+ XSRETURN(argvi);
+ fail:
+
+
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_svn_client__shelf_version_t_version_number_get) {
+ {
+ struct svn_client__shelf_version_t *arg1 = (struct svn_client__shelf_version_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int argvi = 0;
+ int result;
+ dXSARGS;
+
+ if ((items < 1) || (items > 1)) {
+ SWIG_croak("Usage: svn_client__shelf_version_t_version_number_get(self);");
}
- arg7 = (svn_client_ctx_t *)(argp7);
- if (items > 7) {
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client__shelf_version_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client__shelf_version_t_version_number_get" "', argument " "1"" of type '" "struct svn_client__shelf_version_t *""'");
+ }
+ arg1 = (struct svn_client__shelf_version_t *)(argp1);
+ result = (int) ((arg1)->version_number);
+ ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
+
+ XSRETURN(argvi);
+ fail:
+
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_new_svn_client__shelf_version_t) {
+ {
+ int argvi = 0;
+ struct svn_client__shelf_version_t *result = 0 ;
+ dXSARGS;
+
+ if ((items < 0) || (items > 0)) {
+ SWIG_croak("Usage: new_svn_client__shelf_version_t();");
+ }
+ {
+ result = (struct svn_client__shelf_version_t *)calloc(1, sizeof(struct svn_client__shelf_version_t));
+
+
+
+ }
+ ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_svn_client__shelf_version_t, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
+ XSRETURN(argvi);
+ fail:
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_delete_svn_client__shelf_version_t) {
+ {
+ struct svn_client__shelf_version_t *arg1 = (struct svn_client__shelf_version_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int argvi = 0;
+ dXSARGS;
+
+ if ((items < 1) || (items > 1)) {
+ SWIG_croak("Usage: delete_svn_client__shelf_version_t(self);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client__shelf_version_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_svn_client__shelf_version_t" "', argument " "1"" of type '" "struct svn_client__shelf_version_t *""'");
+ }
+ arg1 = (struct svn_client__shelf_version_t *)(argp1);
+ {
+ free((char *) arg1);
+
+
+
+ }
+ ST(argvi) = sv_newmortal();
+
+ XSRETURN(argvi);
+ fail:
+
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_svn_client__shelf_open_or_create) {
+ {
+ svn_client__shelf_t **arg1 = (svn_client__shelf_t **) 0 ;
+ char *arg2 = (char *) 0 ;
+ char *arg3 = (char *) 0 ;
+ svn_client_ctx_t *arg4 = (svn_client_ctx_t *) 0 ;
+ apr_pool_t *arg5 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool ;
+ svn_client__shelf_t *temp1 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ int res3 ;
+ char *buf3 = 0 ;
+ int alloc3 = 0 ;
+ void *argp4 = 0 ;
+ int res4 = 0 ;
+ int argvi = 0;
+ svn_error_t *result = 0 ;
+ dXSARGS;
+
+ {
+ _global_pool = arg5 = svn_swig_pl_make_pool (ST(items-1));
+ SPAGAIN;
+ }
+ arg1 = &temp1;
+ if ((items < 3) || (items > 4)) {
+ SWIG_croak("Usage: svn_client__shelf_open_or_create(name,local_abspath,ctx,result_pool);");
+ }
+ res2 = SWIG_AsCharPtrAndSize(ST(0), &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_client__shelf_open_or_create" "', argument " "2"" of type '" "char const *""'");
+ }
+ arg2 = (char *)(buf2);
+ res3 = SWIG_AsCharPtrAndSize(ST(1), &buf3, NULL, &alloc3);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "svn_client__shelf_open_or_create" "', argument " "3"" of type '" "char const *""'");
+ }
+ arg3 = (char *)(buf3);
+ res4 = SWIG_ConvertPtr(ST(2), &argp4,SWIGTYPE_p_svn_client_ctx_t, 0 | 0 );
+ if (!SWIG_IsOK(res4)) {
+ SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "svn_client__shelf_open_or_create" "', argument " "4"" of type '" "svn_client_ctx_t *""'");
+ }
+ arg4 = (svn_client_ctx_t *)(argp4);
+ if (items > 3) {
}
{
- result = (svn_error_t *)svn_client_shelve((char const *)arg1,(apr_array_header_t const *)arg2,arg3,(apr_array_header_t const *)arg4,arg5,arg6,arg7,arg8);
+ result = (svn_error_t *)svn_client__shelf_open_or_create(arg1,(char const *)arg2,(char const *)arg3,arg4,arg5);
@@ -32544,22 +34450,25 @@ XS(_wrap_svn_client_shelve) {
}
}
}
- if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-
-
-
-
+ {
+ /* FIXME: Missing argout typemap: svn_client__shelf_open_or_create arg 1 (svn_client__shelf_t **) */
+
+
+
+
+ SWIG_exception(SWIG_ValueError, "svn_client__shelf_open_or_create is not implemented yet");
+
+ }
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
XSRETURN(argvi);
fail:
- if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-
-
-
-
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
SWIG_croak_null();
@@ -32567,68 +34476,55 @@ XS(_wrap_svn_client_shelve) {
}
-XS(_wrap_svn_client_unshelve) {
+XS(_wrap_svn_client__shelf_open_existing) {
{
- char *arg1 = (char *) 0 ;
+ svn_client__shelf_t **arg1 = (svn_client__shelf_t **) 0 ;
char *arg2 = (char *) 0 ;
- svn_boolean_t arg3 ;
- svn_boolean_t arg4 ;
- svn_client_ctx_t *arg5 = (svn_client_ctx_t *) 0 ;
- apr_pool_t *arg6 = (apr_pool_t *) 0 ;
+ char *arg3 = (char *) 0 ;
+ svn_client_ctx_t *arg4 = (svn_client_ctx_t *) 0 ;
+ apr_pool_t *arg5 = (apr_pool_t *) 0 ;
apr_pool_t *_global_pool ;
- int res1 ;
- char *buf1 = 0 ;
- int alloc1 = 0 ;
+ svn_client__shelf_t *temp1 ;
int res2 ;
char *buf2 = 0 ;
int alloc2 = 0 ;
- int val3 ;
- int ecode3 = 0 ;
- int val4 ;
- int ecode4 = 0 ;
- void *argp5 = 0 ;
- int res5 = 0 ;
+ int res3 ;
+ char *buf3 = 0 ;
+ int alloc3 = 0 ;
+ void *argp4 = 0 ;
+ int res4 = 0 ;
int argvi = 0;
svn_error_t *result = 0 ;
dXSARGS;
{
- _global_pool = arg6 = svn_swig_pl_make_pool (ST(items-1));
+ _global_pool = arg5 = svn_swig_pl_make_pool (ST(items-1));
SPAGAIN;
}
- if ((items < 5) || (items > 6)) {
- SWIG_croak("Usage: svn_client_unshelve(name,local_abspath,keep,dry_run,ctx,pool);");
- }
- res1 = SWIG_AsCharPtrAndSize(ST(0), &buf1, NULL, &alloc1);
- if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client_unshelve" "', argument " "1"" of type '" "char const *""'");
+ arg1 = &temp1;
+ if ((items < 3) || (items > 4)) {
+ SWIG_croak("Usage: svn_client__shelf_open_existing(name,local_abspath,ctx,result_pool);");
}
- arg1 = (char *)(buf1);
- res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
+ res2 = SWIG_AsCharPtrAndSize(ST(0), &buf2, NULL, &alloc2);
if (!SWIG_IsOK(res2)) {
- SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_client_unshelve" "', argument " "2"" of type '" "char const *""'");
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_client__shelf_open_existing" "', argument " "2"" of type '" "char const *""'");
}
arg2 = (char *)(buf2);
- ecode3 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(2), &val3);
- if (!SWIG_IsOK(ecode3)) {
- SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "svn_client_unshelve" "', argument " "3"" of type '" "svn_boolean_t""'");
- }
- arg3 = (svn_boolean_t)(val3);
- ecode4 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(3), &val4);
- if (!SWIG_IsOK(ecode4)) {
- SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "svn_client_unshelve" "', argument " "4"" of type '" "svn_boolean_t""'");
- }
- arg4 = (svn_boolean_t)(val4);
- res5 = SWIG_ConvertPtr(ST(4), &argp5,SWIGTYPE_p_svn_client_ctx_t, 0 | 0 );
- if (!SWIG_IsOK(res5)) {
- SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "svn_client_unshelve" "', argument " "5"" of type '" "svn_client_ctx_t *""'");
+ res3 = SWIG_AsCharPtrAndSize(ST(1), &buf3, NULL, &alloc3);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "svn_client__shelf_open_existing" "', argument " "3"" of type '" "char const *""'");
}
- arg5 = (svn_client_ctx_t *)(argp5);
- if (items > 5) {
+ arg3 = (char *)(buf3);
+ res4 = SWIG_ConvertPtr(ST(2), &argp4,SWIGTYPE_p_svn_client_ctx_t, 0 | 0 );
+ if (!SWIG_IsOK(res4)) {
+ SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "svn_client__shelf_open_existing" "', argument " "4"" of type '" "svn_client_ctx_t *""'");
+ }
+ arg4 = (svn_client_ctx_t *)(argp4);
+ if (items > 3) {
}
{
- result = (svn_error_t *)svn_client_unshelve((char const *)arg1,(char const *)arg2,arg3,arg4,arg5,arg6);
+ result = (svn_error_t *)svn_client__shelf_open_existing(arg1,(char const *)arg2,(char const *)arg3,arg4,arg5);
@@ -32651,18 +34547,86 @@ XS(_wrap_svn_client_unshelve) {
}
}
}
- if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
- if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-
+ {
+ /* FIXME: Missing argout typemap: svn_client__shelf_open_existing arg 1 (svn_client__shelf_t **) */
+
+
+
+
+ SWIG_exception(SWIG_ValueError, "svn_client__shelf_open_existing is not implemented yet");
+
+ }
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
XSRETURN(argvi);
fail:
- if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
+
if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+
+
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_svn_client__shelf_close) {
+ {
+ svn_client__shelf_t *arg1 = (svn_client__shelf_t *) 0 ;
+ apr_pool_t *arg2 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int argvi = 0;
+ svn_error_t *result = 0 ;
+ dXSARGS;
+
+ {
+ _global_pool = arg2 = svn_swig_pl_make_pool (ST(items-1));
+ SPAGAIN;
+ }
+ if ((items < 1) || (items > 2)) {
+ SWIG_croak("Usage: svn_client__shelf_close(shelf,scratch_pool);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client__shelf_close" "', argument " "1"" of type '" "svn_client__shelf_t *""'");
+ }
+ arg1 = (svn_client__shelf_t *)(argp1);
+ if (items > 1) {
+
+ }
+ {
+ result = (svn_error_t *)svn_client__shelf_close(arg1,arg2);
+
+
+
+ }
+ {
+ if (result) {
+ SV *exception_handler = perl_get_sv ("SVN::Error::handler", FALSE);
+
+ if (SvOK(exception_handler)) {
+ SV *callback_result;
+
+ PUTBACK;
+ svn_swig_pl_callback_thunk (CALL_SV, exception_handler,
+ &callback_result, "S", result,
+ SWIGTYPE_p_svn_error_t);
+ SPAGAIN;
+ } else {
+ ST(argvi) = SWIG_NewPointerObj(result, SWIGTYPE_p_svn_error_t, 0);
+ argvi++;
+ }
+ }
+ }
+ XSRETURN(argvi);
+ fail:
SWIG_croak_null();
@@ -32670,7 +34634,7 @@ XS(_wrap_svn_client_unshelve) {
}
-XS(_wrap_svn_client_shelves_delete) {
+XS(_wrap_svn_client__shelf_delete) {
{
char *arg1 = (char *) 0 ;
char *arg2 = (char *) 0 ;
@@ -32697,33 +34661,33 @@ XS(_wrap_svn_client_shelves_delete) {
SPAGAIN;
}
if ((items < 4) || (items > 5)) {
- SWIG_croak("Usage: svn_client_shelves_delete(name,local_abspath,dry_run,ctx,pool);");
+ SWIG_croak("Usage: svn_client__shelf_delete(name,local_abspath,dry_run,ctx,scratch_pool);");
}
res1 = SWIG_AsCharPtrAndSize(ST(0), &buf1, NULL, &alloc1);
if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client_shelves_delete" "', argument " "1"" of type '" "char const *""'");
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client__shelf_delete" "', argument " "1"" of type '" "char const *""'");
}
arg1 = (char *)(buf1);
res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
if (!SWIG_IsOK(res2)) {
- SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_client_shelves_delete" "', argument " "2"" of type '" "char const *""'");
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_client__shelf_delete" "', argument " "2"" of type '" "char const *""'");
}
arg2 = (char *)(buf2);
ecode3 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(2), &val3);
if (!SWIG_IsOK(ecode3)) {
- SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "svn_client_shelves_delete" "', argument " "3"" of type '" "svn_boolean_t""'");
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "svn_client__shelf_delete" "', argument " "3"" of type '" "svn_boolean_t""'");
}
arg3 = (svn_boolean_t)(val3);
res4 = SWIG_ConvertPtr(ST(3), &argp4,SWIGTYPE_p_svn_client_ctx_t, 0 | 0 );
if (!SWIG_IsOK(res4)) {
- SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "svn_client_shelves_delete" "', argument " "4"" of type '" "svn_client_ctx_t *""'");
+ SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "svn_client__shelf_delete" "', argument " "4"" of type '" "svn_client_ctx_t *""'");
}
arg4 = (svn_client_ctx_t *)(argp4);
if (items > 4) {
}
{
- result = (svn_error_t *)svn_client_shelves_delete((char const *)arg1,(char const *)arg2,arg3,arg4,arg5);
+ result = (svn_error_t *)svn_client__shelf_delete((char const *)arg1,(char const *)arg2,arg3,arg4,arg5);
@@ -32763,355 +34727,955 @@ XS(_wrap_svn_client_shelves_delete) {
}
-XS(_wrap_svn_client_shelved_patch_info_t_message_set) {
+XS(_wrap_svn_client__shelf_save_new_version3) {
{
- struct svn_client_shelved_patch_info_t *arg1 = (struct svn_client_shelved_patch_info_t *) 0 ;
- char *arg2 = (char *) 0 ;
- void *argp1 = 0 ;
- int res1 = 0 ;
- int res2 ;
- char *buf2 = 0 ;
- int alloc2 = 0 ;
+ svn_client__shelf_version_t **arg1 = (svn_client__shelf_version_t **) 0 ;
+ svn_client__shelf_t *arg2 = (svn_client__shelf_t *) 0 ;
+ apr_array_header_t *arg3 = (apr_array_header_t *) 0 ;
+ svn_depth_t arg4 ;
+ apr_array_header_t *arg5 = (apr_array_header_t *) 0 ;
+ svn_client_status_func_t arg6 = (svn_client_status_func_t) 0 ;
+ void *arg7 = (void *) 0 ;
+ svn_client_status_func_t arg8 = (svn_client_status_func_t) 0 ;
+ void *arg9 = (void *) 0 ;
+ apr_pool_t *arg10 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool ;
+ svn_client__shelf_version_t *temp1 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ int val4 ;
+ int ecode4 = 0 ;
+ int res7 ;
+ int res9 ;
int argvi = 0;
+ svn_error_t *result = 0 ;
dXSARGS;
- if ((items < 2) || (items > 2)) {
- SWIG_croak("Usage: svn_client_shelved_patch_info_t_message_set(self,message);");
+ {
+ _global_pool = arg10 = svn_swig_pl_make_pool (ST(items-1));
+ SPAGAIN;
}
- res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client_shelved_patch_info_t, 0 | 0 );
- if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client_shelved_patch_info_t_message_set" "', argument " "1"" of type '" "struct svn_client_shelved_patch_info_t *""'");
+ arg1 = &temp1;
+ if ((items < 8) || (items > 9)) {
+ SWIG_croak("Usage: svn_client__shelf_save_new_version3(shelf,paths,depth,changelists,shelved_func,shelved_baton,not_shelved_func,not_shelved_baton,scratch_pool);");
}
- arg1 = (struct svn_client_shelved_patch_info_t *)(argp1);
- res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
+ res2 = SWIG_ConvertPtr(ST(0), &argp2,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
if (!SWIG_IsOK(res2)) {
- SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_client_shelved_patch_info_t_message_set" "', argument " "2"" of type '" "char const *""'");
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_client__shelf_save_new_version3" "', argument " "2"" of type '" "svn_client__shelf_t *""'");
}
- arg2 = (char *)(buf2);
+ arg2 = (svn_client__shelf_t *)(argp2);
{
- apr_size_t len = strlen(arg2) + 1;
- char *copied;
- if (arg1->message) free((char *)arg1->message);
- copied = malloc(len);
- memcpy(copied, arg2, len);
- arg1->message = copied;
+ arg3 = svn_swig_pl_strings_to_array(ST(1),
+ _global_pool);
+ }
+ ecode4 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(2), &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "svn_client__shelf_save_new_version3" "', argument " "4"" of type '" "svn_depth_t""'");
+ }
+ arg4 = (svn_depth_t)(val4);
+ {
+ arg5 = SvOK(ST(3)) ? svn_swig_pl_strings_to_array(
+ ST(3), _global_pool) : NULL;
+ }
+ {
+ int res = SWIG_ConvertFunctionPtr(ST(4), (void**)(&arg6), SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__svn_client_status_t_p_apr_pool_t__p_svn_error_t);
+ if (!SWIG_IsOK(res)) {
+ SWIG_exception_fail(SWIG_ArgError(res), "in method '" "svn_client__shelf_save_new_version3" "', argument " "6"" of type '" "svn_client_status_func_t""'");
+ }
+ }
+ res7 = SWIG_ConvertPtr(ST(5),SWIG_as_voidptrptr(&arg7), 0, 0);
+ if (!SWIG_IsOK(res7)) {
+ SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "svn_client__shelf_save_new_version3" "', argument " "7"" of type '" "void *""'");
+ }
+ {
+ int res = SWIG_ConvertFunctionPtr(ST(6), (void**)(&arg8), SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__svn_client_status_t_p_apr_pool_t__p_svn_error_t);
+ if (!SWIG_IsOK(res)) {
+ SWIG_exception_fail(SWIG_ArgError(res), "in method '" "svn_client__shelf_save_new_version3" "', argument " "8"" of type '" "svn_client_status_func_t""'");
+ }
+ }
+ res9 = SWIG_ConvertPtr(ST(7),SWIG_as_voidptrptr(&arg9), 0, 0);
+ if (!SWIG_IsOK(res9)) {
+ SWIG_exception_fail(SWIG_ArgError(res9), "in method '" "svn_client__shelf_save_new_version3" "', argument " "9"" of type '" "void *""'");
+ }
+ if (items > 8) {
+
+ }
+ {
+ result = (svn_error_t *)svn_client__shelf_save_new_version3(arg1,arg2,(apr_array_header_t const *)arg3,arg4,(apr_array_header_t const *)arg5,arg6,arg7,arg8,arg9,arg10);
+
+
+
+ }
+ {
+ if (result) {
+ SV *exception_handler = perl_get_sv ("SVN::Error::handler", FALSE);
+
+ if (SvOK(exception_handler)) {
+ SV *callback_result;
+
+ PUTBACK;
+ svn_swig_pl_callback_thunk (CALL_SV, exception_handler,
+ &callback_result, "S", result,
+ SWIGTYPE_p_svn_error_t);
+ SPAGAIN;
+ } else {
+ ST(argvi) = SWIG_NewPointerObj(result, SWIGTYPE_p_svn_error_t, 0);
+ argvi++;
+ }
+ }
+ }
+ {
+ /* FIXME: Missing argout typemap: svn_client__shelf_save_new_version3 arg 1 (svn_client__shelf_version_t **) */
+
+
+
+
+ SWIG_exception(SWIG_ValueError, "svn_client__shelf_save_new_version3 is not implemented yet");
+
}
- ST(argvi) = sv_newmortal();
- if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+
+
+
+
+
+
+
+
+
XSRETURN(argvi);
fail:
- if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+
+
+
+
+
+
+
+
+
SWIG_croak_null();
}
}
-XS(_wrap_svn_client_shelved_patch_info_t_message_get) {
+XS(_wrap_svn_client__shelf_delete_newer_versions) {
{
- struct svn_client_shelved_patch_info_t *arg1 = (struct svn_client_shelved_patch_info_t *) 0 ;
+ svn_client__shelf_t *arg1 = (svn_client__shelf_t *) 0 ;
+ svn_client__shelf_version_t *arg2 = (svn_client__shelf_version_t *) 0 ;
+ apr_pool_t *arg3 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool ;
void *argp1 = 0 ;
int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
int argvi = 0;
- char *result = 0 ;
+ svn_error_t *result = 0 ;
dXSARGS;
- if ((items < 1) || (items > 1)) {
- SWIG_croak("Usage: svn_client_shelved_patch_info_t_message_get(self);");
+ {
+ _global_pool = arg3 = svn_swig_pl_make_pool (ST(items-1));
+ SPAGAIN;
+ }
+ if ((items < 2) || (items > 3)) {
+ SWIG_croak("Usage: svn_client__shelf_delete_newer_versions(shelf,shelf_version,scratch_pool);");
}
- res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client_shelved_patch_info_t, 0 | 0 );
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client_shelved_patch_info_t_message_get" "', argument " "1"" of type '" "struct svn_client_shelved_patch_info_t *""'");
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client__shelf_delete_newer_versions" "', argument " "1"" of type '" "svn_client__shelf_t *""'");
+ }
+ arg1 = (svn_client__shelf_t *)(argp1);
+ res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_svn_client__shelf_version_t, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_client__shelf_delete_newer_versions" "', argument " "2"" of type '" "svn_client__shelf_version_t *""'");
+ }
+ arg2 = (svn_client__shelf_version_t *)(argp2);
+ if (items > 2) {
+
+ }
+ {
+ result = (svn_error_t *)svn_client__shelf_delete_newer_versions(arg1,arg2,arg3);
+
+
+
+ }
+ {
+ if (result) {
+ SV *exception_handler = perl_get_sv ("SVN::Error::handler", FALSE);
+
+ if (SvOK(exception_handler)) {
+ SV *callback_result;
+
+ PUTBACK;
+ svn_swig_pl_callback_thunk (CALL_SV, exception_handler,
+ &callback_result, "S", result,
+ SWIGTYPE_p_svn_error_t);
+ SPAGAIN;
+ } else {
+ ST(argvi) = SWIG_NewPointerObj(result, SWIGTYPE_p_svn_error_t, 0);
+ argvi++;
+ }
+ }
}
- arg1 = (struct svn_client_shelved_patch_info_t *)(argp1);
- result = (char *) ((arg1)->message);
- ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
+
+
XSRETURN(argvi);
fail:
+
+
SWIG_croak_null();
}
}
-XS(_wrap_svn_client_shelved_patch_info_t_patch_path_set) {
+XS(_wrap_svn_client__shelf_version_open) {
{
- struct svn_client_shelved_patch_info_t *arg1 = (struct svn_client_shelved_patch_info_t *) 0 ;
- char *arg2 = (char *) 0 ;
- void *argp1 = 0 ;
- int res1 = 0 ;
- int res2 ;
- char *buf2 = 0 ;
- int alloc2 = 0 ;
+ svn_client__shelf_version_t **arg1 = (svn_client__shelf_version_t **) 0 ;
+ svn_client__shelf_t *arg2 = (svn_client__shelf_t *) 0 ;
+ int arg3 ;
+ apr_pool_t *arg4 = (apr_pool_t *) 0 ;
+ apr_pool_t *arg5 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool ;
+ svn_client__shelf_version_t *temp1 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
int argvi = 0;
+ svn_error_t *result = 0 ;
dXSARGS;
- if ((items < 2) || (items > 2)) {
- SWIG_croak("Usage: svn_client_shelved_patch_info_t_patch_path_set(self,patch_path);");
+ {
+ _global_pool = arg4 = svn_swig_pl_make_pool (ST(items-1));
+ SPAGAIN;
}
- res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client_shelved_patch_info_t, 0 | 0 );
- if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client_shelved_patch_info_t_patch_path_set" "', argument " "1"" of type '" "struct svn_client_shelved_patch_info_t *""'");
+ {
+ _global_pool = arg5 = svn_swig_pl_make_pool (ST(items-1));
+ SPAGAIN;
}
- arg1 = (struct svn_client_shelved_patch_info_t *)(argp1);
- res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
+ arg1 = &temp1;
+ if ((items < 2) || (items > 4)) {
+ SWIG_croak("Usage: svn_client__shelf_version_open(shelf,version_number,result_pool,scratch_pool);");
+ }
+ res2 = SWIG_ConvertPtr(ST(0), &argp2,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
if (!SWIG_IsOK(res2)) {
- SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_client_shelved_patch_info_t_patch_path_set" "', argument " "2"" of type '" "char const *""'");
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_client__shelf_version_open" "', argument " "2"" of type '" "svn_client__shelf_t *""'");
+ }
+ arg2 = (svn_client__shelf_t *)(argp2);
+ ecode3 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "svn_client__shelf_version_open" "', argument " "3"" of type '" "int""'");
+ }
+ arg3 = (int)(val3);
+ if (items > 2) {
+
+ }
+ if (items > 3) {
+
}
- arg2 = (char *)(buf2);
{
- apr_size_t len = strlen(arg2) + 1;
- char *copied;
- if (arg1->patch_path) free((char *)arg1->patch_path);
- copied = malloc(len);
- memcpy(copied, arg2, len);
- arg1->patch_path = copied;
+ result = (svn_error_t *)svn_client__shelf_version_open(arg1,arg2,arg3,arg4,arg5);
+
+
+
+ }
+ {
+ if (result) {
+ SV *exception_handler = perl_get_sv ("SVN::Error::handler", FALSE);
+
+ if (SvOK(exception_handler)) {
+ SV *callback_result;
+
+ PUTBACK;
+ svn_swig_pl_callback_thunk (CALL_SV, exception_handler,
+ &callback_result, "S", result,
+ SWIGTYPE_p_svn_error_t);
+ SPAGAIN;
+ } else {
+ ST(argvi) = SWIG_NewPointerObj(result, SWIGTYPE_p_svn_error_t, 0);
+ argvi++;
+ }
+ }
+ }
+ {
+ /* FIXME: Missing argout typemap: svn_client__shelf_version_open arg 1 (svn_client__shelf_version_t **) */
+
+
+
+
+ SWIG_exception(SWIG_ValueError, "svn_client__shelf_version_open is not implemented yet");
+
}
- ST(argvi) = sv_newmortal();
- if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+
+
+
+
XSRETURN(argvi);
fail:
- if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+
+
+
+
SWIG_croak_null();
}
}
-XS(_wrap_svn_client_shelved_patch_info_t_patch_path_get) {
+XS(_wrap_svn_client__shelf_get_newest_version) {
{
- struct svn_client_shelved_patch_info_t *arg1 = (struct svn_client_shelved_patch_info_t *) 0 ;
- void *argp1 = 0 ;
- int res1 = 0 ;
+ svn_client__shelf_version_t **arg1 = (svn_client__shelf_version_t **) 0 ;
+ svn_client__shelf_t *arg2 = (svn_client__shelf_t *) 0 ;
+ apr_pool_t *arg3 = (apr_pool_t *) 0 ;
+ apr_pool_t *arg4 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool ;
+ svn_client__shelf_version_t *temp1 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
int argvi = 0;
- char *result = 0 ;
+ svn_error_t *result = 0 ;
dXSARGS;
- if ((items < 1) || (items > 1)) {
- SWIG_croak("Usage: svn_client_shelved_patch_info_t_patch_path_get(self);");
+ {
+ _global_pool = arg3 = svn_swig_pl_make_pool (ST(items-1));
+ SPAGAIN;
}
- res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client_shelved_patch_info_t, 0 | 0 );
- if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client_shelved_patch_info_t_patch_path_get" "', argument " "1"" of type '" "struct svn_client_shelved_patch_info_t *""'");
+ {
+ _global_pool = arg4 = svn_swig_pl_make_pool (ST(items-1));
+ SPAGAIN;
}
- arg1 = (struct svn_client_shelved_patch_info_t *)(argp1);
- result = (char *) ((arg1)->patch_path);
- ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
+ arg1 = &temp1;
+ if ((items < 1) || (items > 3)) {
+ SWIG_croak("Usage: svn_client__shelf_get_newest_version(shelf,result_pool,scratch_pool);");
+ }
+ res2 = SWIG_ConvertPtr(ST(0), &argp2,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_client__shelf_get_newest_version" "', argument " "2"" of type '" "svn_client__shelf_t *""'");
+ }
+ arg2 = (svn_client__shelf_t *)(argp2);
+ if (items > 1) {
+
+ }
+ if (items > 2) {
+
+ }
+ {
+ result = (svn_error_t *)svn_client__shelf_get_newest_version(arg1,arg2,arg3,arg4);
+
+
+
+ }
+ {
+ if (result) {
+ SV *exception_handler = perl_get_sv ("SVN::Error::handler", FALSE);
+
+ if (SvOK(exception_handler)) {
+ SV *callback_result;
+
+ PUTBACK;
+ svn_swig_pl_callback_thunk (CALL_SV, exception_handler,
+ &callback_result, "S", result,
+ SWIGTYPE_p_svn_error_t);
+ SPAGAIN;
+ } else {
+ ST(argvi) = SWIG_NewPointerObj(result, SWIGTYPE_p_svn_error_t, 0);
+ argvi++;
+ }
+ }
+ }
+ {
+ /* FIXME: Missing argout typemap: svn_client__shelf_get_newest_version arg 1 (svn_client__shelf_version_t **) */
+
+
+
+
+ SWIG_exception(SWIG_ValueError, "svn_client__shelf_get_newest_version is not implemented yet");
+
+ }
+
+
+
XSRETURN(argvi);
fail:
+
+
+
SWIG_croak_null();
}
}
-XS(_wrap_svn_client_shelved_patch_info_t_dirent_set) {
+XS(_wrap_svn_client__shelf_get_all_versions) {
{
- struct svn_client_shelved_patch_info_t *arg1 = (struct svn_client_shelved_patch_info_t *) 0 ;
- svn_io_dirent2_t *arg2 = (svn_io_dirent2_t *) 0 ;
- void *argp1 = 0 ;
- int res1 = 0 ;
+ apr_array_header_t **arg1 = (apr_array_header_t **) 0 ;
+ svn_client__shelf_t *arg2 = (svn_client__shelf_t *) 0 ;
+ apr_pool_t *arg3 = (apr_pool_t *) 0 ;
+ apr_pool_t *arg4 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool ;
+ apr_array_header_t *temp1 ;
void *argp2 = 0 ;
int res2 = 0 ;
int argvi = 0;
+ svn_error_t *result = 0 ;
dXSARGS;
- if ((items < 2) || (items > 2)) {
- SWIG_croak("Usage: svn_client_shelved_patch_info_t_dirent_set(self,dirent);");
+ {
+ _global_pool = arg3 = svn_swig_pl_make_pool (ST(items-1));
+ SPAGAIN;
}
- res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client_shelved_patch_info_t, 0 | 0 );
- if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client_shelved_patch_info_t_dirent_set" "', argument " "1"" of type '" "struct svn_client_shelved_patch_info_t *""'");
+ {
+ _global_pool = arg4 = svn_swig_pl_make_pool (ST(items-1));
+ SPAGAIN;
+ }
+ arg1 = &temp1;
+ if ((items < 1) || (items > 3)) {
+ SWIG_croak("Usage: svn_client__shelf_get_all_versions(shelf,result_pool,scratch_pool);");
}
- arg1 = (struct svn_client_shelved_patch_info_t *)(argp1);
- res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_svn_io_dirent2_t, SWIG_POINTER_DISOWN | 0 );
+ res2 = SWIG_ConvertPtr(ST(0), &argp2,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
if (!SWIG_IsOK(res2)) {
- SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_client_shelved_patch_info_t_dirent_set" "', argument " "2"" of type '" "svn_io_dirent2_t *""'");
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_client__shelf_get_all_versions" "', argument " "2"" of type '" "svn_client__shelf_t *""'");
}
- arg2 = (svn_io_dirent2_t *)(argp2);
- if (arg1) (arg1)->dirent = arg2;
- ST(argvi) = sv_newmortal();
+ arg2 = (svn_client__shelf_t *)(argp2);
+ if (items > 1) {
+
+ }
+ if (items > 2) {
+
+ }
+ {
+ result = (svn_error_t *)svn_client__shelf_get_all_versions(arg1,arg2,arg3,arg4);
+
+
+
+ }
+ {
+ if (result) {
+ SV *exception_handler = perl_get_sv ("SVN::Error::handler", FALSE);
+
+ if (SvOK(exception_handler)) {
+ SV *callback_result;
+
+ PUTBACK;
+ svn_swig_pl_callback_thunk (CALL_SV, exception_handler,
+ &callback_result, "S", result,
+ SWIGTYPE_p_svn_error_t);
+ SPAGAIN;
+ } else {
+ ST(argvi) = SWIG_NewPointerObj(result, SWIGTYPE_p_svn_error_t, 0);
+ argvi++;
+ }
+ }
+ }
+ {
+ /* FIXME: Missing argout typemap: svn_client__shelf_get_all_versions arg 1 (apr_array_header_t **) */
+
+
+
+
+ SWIG_exception(SWIG_ValueError, "svn_client__shelf_get_all_versions is not implemented yet");
+
+ }
+
+
XSRETURN(argvi);
fail:
+
+
SWIG_croak_null();
}
}
-XS(_wrap_svn_client_shelved_patch_info_t_dirent_get) {
+XS(_wrap_svn_client__shelf_apply) {
{
- struct svn_client_shelved_patch_info_t *arg1 = (struct svn_client_shelved_patch_info_t *) 0 ;
+ svn_client__shelf_version_t *arg1 = (svn_client__shelf_version_t *) 0 ;
+ svn_boolean_t arg2 ;
+ apr_pool_t *arg3 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool ;
void *argp1 = 0 ;
int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
int argvi = 0;
- svn_io_dirent2_t *result = 0 ;
+ svn_error_t *result = 0 ;
dXSARGS;
- if ((items < 1) || (items > 1)) {
- SWIG_croak("Usage: svn_client_shelved_patch_info_t_dirent_get(self);");
+ {
+ _global_pool = arg3 = svn_swig_pl_make_pool (ST(items-1));
+ SPAGAIN;
}
- res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client_shelved_patch_info_t, 0 | 0 );
+ if ((items < 2) || (items > 3)) {
+ SWIG_croak("Usage: svn_client__shelf_apply(shelf_version,dry_run,scratch_pool);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client__shelf_version_t, 0 | 0 );
if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client_shelved_patch_info_t_dirent_get" "', argument " "1"" of type '" "struct svn_client_shelved_patch_info_t *""'");
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client__shelf_apply" "', argument " "1"" of type '" "svn_client__shelf_version_t *""'");
+ }
+ arg1 = (svn_client__shelf_version_t *)(argp1);
+ ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "svn_client__shelf_apply" "', argument " "2"" of type '" "svn_boolean_t""'");
+ }
+ arg2 = (svn_boolean_t)(val2);
+ if (items > 2) {
+
+ }
+ {
+ result = (svn_error_t *)svn_client__shelf_apply(arg1,arg2,arg3);
+
+
+
+ }
+ {
+ if (result) {
+ SV *exception_handler = perl_get_sv ("SVN::Error::handler", FALSE);
+
+ if (SvOK(exception_handler)) {
+ SV *callback_result;
+
+ PUTBACK;
+ svn_swig_pl_callback_thunk (CALL_SV, exception_handler,
+ &callback_result, "S", result,
+ SWIGTYPE_p_svn_error_t);
+ SPAGAIN;
+ } else {
+ ST(argvi) = SWIG_NewPointerObj(result, SWIGTYPE_p_svn_error_t, 0);
+ argvi++;
+ }
+ }
}
- arg1 = (struct svn_client_shelved_patch_info_t *)(argp1);
- result = (svn_io_dirent2_t *) ((arg1)->dirent);
- ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_svn_io_dirent2_t, 0 | SWIG_SHADOW); argvi++ ;
+
+
XSRETURN(argvi);
fail:
+
+
SWIG_croak_null();
}
}
-XS(_wrap_svn_client_shelved_patch_info_t_mtime_set) {
+XS(_wrap_svn_client__shelf_test_apply_file) {
{
- struct svn_client_shelved_patch_info_t *arg1 = (struct svn_client_shelved_patch_info_t *) 0 ;
- apr_time_t arg2 ;
+ svn_boolean_t *arg1 = (svn_boolean_t *) 0 ;
+ svn_client__shelf_version_t *arg2 = (svn_client__shelf_version_t *) 0 ;
+ char *arg3 = (char *) 0 ;
+ apr_pool_t *arg4 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool ;
+ svn_boolean_t temp1 ;
+ int res1 = SWIG_TMPOBJ ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ int res3 ;
+ char *buf3 = 0 ;
+ int alloc3 = 0 ;
+ int argvi = 0;
+ svn_error_t *result = 0 ;
+ dXSARGS;
+
+ {
+ _global_pool = arg4 = svn_swig_pl_make_pool (ST(items-1));
+ SPAGAIN;
+ }
+ arg1 = &temp1;
+ if ((items < 2) || (items > 3)) {
+ SWIG_croak("Usage: svn_client__shelf_test_apply_file(shelf_version,file_relpath,scratch_pool);");
+ }
+ res2 = SWIG_ConvertPtr(ST(0), &argp2,SWIGTYPE_p_svn_client__shelf_version_t, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_client__shelf_test_apply_file" "', argument " "2"" of type '" "svn_client__shelf_version_t *""'");
+ }
+ arg2 = (svn_client__shelf_version_t *)(argp2);
+ res3 = SWIG_AsCharPtrAndSize(ST(1), &buf3, NULL, &alloc3);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "svn_client__shelf_test_apply_file" "', argument " "3"" of type '" "char const *""'");
+ }
+ arg3 = (char *)(buf3);
+ if (items > 2) {
+
+ }
+ {
+ result = (svn_error_t *)svn_client__shelf_test_apply_file(arg1,arg2,(char const *)arg3,arg4);
+
+
+
+ }
+ {
+ if (result) {
+ SV *exception_handler = perl_get_sv ("SVN::Error::handler", FALSE);
+
+ if (SvOK(exception_handler)) {
+ SV *callback_result;
+
+ PUTBACK;
+ svn_swig_pl_callback_thunk (CALL_SV, exception_handler,
+ &callback_result, "S", result,
+ SWIGTYPE_p_svn_error_t);
+ SPAGAIN;
+ } else {
+ ST(argvi) = SWIG_NewPointerObj(result, SWIGTYPE_p_svn_error_t, 0);
+ argvi++;
+ }
+ }
+ }
+ if (SWIG_IsTmpObj(res1)) {
+ if (argvi >= items) EXTEND(sp,1); ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1((*arg1)); argvi++ ;
+ } else {
+ int new_flags = SWIG_IsNewObj(res1) ? (SWIG_POINTER_OWN | 0) : 0;
+ if (argvi >= items) EXTEND(sp,1); ST(argvi) = SWIG_NewPointerObj((void*)(arg1), SWIGTYPE_p_int, new_flags); argvi++ ;
+ }
+
+
+ if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+
+ XSRETURN(argvi);
+ fail:
+
+
+ if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_svn_client__shelf_unapply) {
+ {
+ svn_client__shelf_version_t *arg1 = (svn_client__shelf_version_t *) 0 ;
+ svn_boolean_t arg2 ;
+ apr_pool_t *arg3 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool ;
void *argp1 = 0 ;
int res1 = 0 ;
- long long val2 ;
+ int val2 ;
int ecode2 = 0 ;
int argvi = 0;
+ svn_error_t *result = 0 ;
dXSARGS;
- if ((items < 2) || (items > 2)) {
- SWIG_croak("Usage: svn_client_shelved_patch_info_t_mtime_set(self,mtime);");
+ {
+ _global_pool = arg3 = svn_swig_pl_make_pool (ST(items-1));
+ SPAGAIN;
+ }
+ if ((items < 2) || (items > 3)) {
+ SWIG_croak("Usage: svn_client__shelf_unapply(shelf_version,dry_run,scratch_pool);");
}
- res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client_shelved_patch_info_t, 0 | 0 );
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client__shelf_version_t, 0 | 0 );
if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client_shelved_patch_info_t_mtime_set" "', argument " "1"" of type '" "struct svn_client_shelved_patch_info_t *""'");
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client__shelf_unapply" "', argument " "1"" of type '" "svn_client__shelf_version_t *""'");
}
- arg1 = (struct svn_client_shelved_patch_info_t *)(argp1);
- ecode2 = SWIG_AsVal_long_SS_long SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
+ arg1 = (svn_client__shelf_version_t *)(argp1);
+ ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
if (!SWIG_IsOK(ecode2)) {
- SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "svn_client_shelved_patch_info_t_mtime_set" "', argument " "2"" of type '" "apr_time_t""'");
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "svn_client__shelf_unapply" "', argument " "2"" of type '" "svn_boolean_t""'");
}
- arg2 = (apr_time_t)(val2);
- if (arg1) (arg1)->mtime = arg2;
- ST(argvi) = sv_newmortal();
+ arg2 = (svn_boolean_t)(val2);
+ if (items > 2) {
+
+ }
+ {
+ result = (svn_error_t *)svn_client__shelf_unapply(arg1,arg2,arg3);
+
+
+
+ }
+ {
+ if (result) {
+ SV *exception_handler = perl_get_sv ("SVN::Error::handler", FALSE);
+
+ if (SvOK(exception_handler)) {
+ SV *callback_result;
+
+ PUTBACK;
+ svn_swig_pl_callback_thunk (CALL_SV, exception_handler,
+ &callback_result, "S", result,
+ SWIGTYPE_p_svn_error_t);
+ SPAGAIN;
+ } else {
+ ST(argvi) = SWIG_NewPointerObj(result, SWIGTYPE_p_svn_error_t, 0);
+ argvi++;
+ }
+ }
+ }
+
XSRETURN(argvi);
fail:
+
SWIG_croak_null();
}
}
-XS(_wrap_svn_client_shelved_patch_info_t_mtime_get) {
+XS(_wrap_svn_client__shelf_paths_changed) {
{
- struct svn_client_shelved_patch_info_t *arg1 = (struct svn_client_shelved_patch_info_t *) 0 ;
- void *argp1 = 0 ;
- int res1 = 0 ;
+ apr_hash_t **arg1 = (apr_hash_t **) 0 ;
+ svn_client__shelf_version_t *arg2 = (svn_client__shelf_version_t *) 0 ;
+ apr_pool_t *arg3 = (apr_pool_t *) 0 ;
+ apr_pool_t *arg4 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool ;
+ apr_hash_t *temp1 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
int argvi = 0;
- apr_time_t result;
+ svn_error_t *result = 0 ;
dXSARGS;
- if ((items < 1) || (items > 1)) {
- SWIG_croak("Usage: svn_client_shelved_patch_info_t_mtime_get(self);");
+ {
+ _global_pool = arg3 = svn_swig_pl_make_pool (ST(items-1));
+ SPAGAIN;
}
- res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client_shelved_patch_info_t, 0 | 0 );
- if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client_shelved_patch_info_t_mtime_get" "', argument " "1"" of type '" "struct svn_client_shelved_patch_info_t *""'");
+ {
+ _global_pool = arg4 = svn_swig_pl_make_pool (ST(items-1));
+ SPAGAIN;
+ }
+ arg1 = &temp1;
+ if ((items < 1) || (items > 3)) {
+ SWIG_croak("Usage: svn_client__shelf_paths_changed(shelf_version,result_pool,scratch_pool);");
+ }
+ res2 = SWIG_ConvertPtr(ST(0), &argp2,SWIGTYPE_p_svn_client__shelf_version_t, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_client__shelf_paths_changed" "', argument " "2"" of type '" "svn_client__shelf_version_t *""'");
+ }
+ arg2 = (svn_client__shelf_version_t *)(argp2);
+ if (items > 1) {
+
+ }
+ if (items > 2) {
+
}
- arg1 = (struct svn_client_shelved_patch_info_t *)(argp1);
- result = ((arg1)->mtime);
{
- char temp[30];
- sprintf(temp, "%" APR_INT64_T_FMT, (apr_int64_t) result);
- if (argvi >= items) EXTEND(sp,1); ST(argvi) = sv_2mortal(newSVpv(temp, 0)); argvi++ ;
+ result = (svn_error_t *)svn_client__shelf_paths_changed(arg1,arg2,arg3,arg4);
+
+
+
+ }
+ {
+ if (result) {
+ SV *exception_handler = perl_get_sv ("SVN::Error::handler", FALSE);
+
+ if (SvOK(exception_handler)) {
+ SV *callback_result;
+
+ PUTBACK;
+ svn_swig_pl_callback_thunk (CALL_SV, exception_handler,
+ &callback_result, "S", result,
+ SWIGTYPE_p_svn_error_t);
+ SPAGAIN;
+ } else {
+ ST(argvi) = SWIG_NewPointerObj(result, SWIGTYPE_p_svn_error_t, 0);
+ argvi++;
+ }
+ }
}
+ {
+ /* FIXME: Missing argout typemap: svn_client__shelf_paths_changed arg 1 (apr_hash_t **) */
+
+
+
+
+ SWIG_exception(SWIG_ValueError, "svn_client__shelf_paths_changed is not implemented yet");
+
+ }
+
+
+
XSRETURN(argvi);
fail:
+
+
+
SWIG_croak_null();
}
}
-XS(_wrap_new_svn_client_shelved_patch_info_t) {
+XS(_wrap_svn_client__shelf_revprop_set) {
{
+ svn_client__shelf_t *arg1 = (svn_client__shelf_t *) 0 ;
+ char *arg2 = (char *) 0 ;
+ svn_string_t *arg3 = (svn_string_t *) 0 ;
+ apr_pool_t *arg4 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ svn_string_t value3 ;
int argvi = 0;
- struct svn_client_shelved_patch_info_t *result = 0 ;
+ svn_error_t *result = 0 ;
dXSARGS;
- if ((items < 0) || (items > 0)) {
- SWIG_croak("Usage: new_svn_client_shelved_patch_info_t();");
+ {
+ _global_pool = arg4 = svn_swig_pl_make_pool (ST(items-1));
+ SPAGAIN;
+ }
+ if ((items < 3) || (items > 4)) {
+ SWIG_croak("Usage: svn_client__shelf_revprop_set(shelf,prop_name,prop_val,scratch_pool);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client__shelf_revprop_set" "', argument " "1"" of type '" "svn_client__shelf_t *""'");
+ }
+ arg1 = (svn_client__shelf_t *)(argp1);
+ res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_client__shelf_revprop_set" "', argument " "2"" of type '" "char const *""'");
+ }
+ arg2 = (char *)(buf2);
+ {
+ if (SvOK(ST(2))) {
+ value3.data = SvPV(ST(2), value3.len);
+ arg3 = &value3;
+ }
+ else {
+ arg3 = NULL;
+ }
+ }
+ if (items > 3) {
+
}
{
- result = (struct svn_client_shelved_patch_info_t *)calloc(1, sizeof(struct svn_client_shelved_patch_info_t));
+ result = (svn_error_t *)svn_client__shelf_revprop_set(arg1,(char const *)arg2,(struct svn_string_t const *)arg3,arg4);
}
- ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_svn_client_shelved_patch_info_t, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
+ {
+ if (result) {
+ SV *exception_handler = perl_get_sv ("SVN::Error::handler", FALSE);
+
+ if (SvOK(exception_handler)) {
+ SV *callback_result;
+
+ PUTBACK;
+ svn_swig_pl_callback_thunk (CALL_SV, exception_handler,
+ &callback_result, "S", result,
+ SWIGTYPE_p_svn_error_t);
+ SPAGAIN;
+ } else {
+ ST(argvi) = SWIG_NewPointerObj(result, SWIGTYPE_p_svn_error_t, 0);
+ argvi++;
+ }
+ }
+ }
+
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+
+
XSRETURN(argvi);
fail:
+
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+
+
SWIG_croak_null();
}
}
-XS(_wrap_delete_svn_client_shelved_patch_info_t) {
+XS(_wrap_svn_client__shelf_revprop_set_all) {
{
- struct svn_client_shelved_patch_info_t *arg1 = (struct svn_client_shelved_patch_info_t *) 0 ;
+ svn_client__shelf_t *arg1 = (svn_client__shelf_t *) 0 ;
+ apr_hash_t *arg2 = (apr_hash_t *) 0 ;
+ apr_pool_t *arg3 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool ;
void *argp1 = 0 ;
int res1 = 0 ;
int argvi = 0;
+ svn_error_t *result = 0 ;
dXSARGS;
- if ((items < 1) || (items > 1)) {
- SWIG_croak("Usage: delete_svn_client_shelved_patch_info_t(self);");
+ {
+ _global_pool = arg3 = svn_swig_pl_make_pool (ST(items-1));
+ SPAGAIN;
+ }
+ if ((items < 2) || (items > 3)) {
+ SWIG_croak("Usage: svn_client__shelf_revprop_set_all(shelf,revprop_table,scratch_pool);");
}
- res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client_shelved_patch_info_t, SWIG_POINTER_DISOWN | 0 );
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_svn_client_shelved_patch_info_t" "', argument " "1"" of type '" "struct svn_client_shelved_patch_info_t *""'");
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client__shelf_revprop_set_all" "', argument " "1"" of type '" "svn_client__shelf_t *""'");
}
- arg1 = (struct svn_client_shelved_patch_info_t *)(argp1);
+ arg1 = (svn_client__shelf_t *)(argp1);
{
- free((char *) arg1);
+ if (_global_pool == NULL) {
+ _global_pool = svn_swig_pl_make_pool((SV *)NULL);
+ SPAGAIN;
+ }
+ arg2 = svn_swig_pl_hash_to_prophash(ST(1), _global_pool);
+ }
+ if (items > 2) {
+
+ }
+ {
+ result = (svn_error_t *)svn_client__shelf_revprop_set_all(arg1,arg2,arg3);
}
- ST(argvi) = sv_newmortal();
+ {
+ if (result) {
+ SV *exception_handler = perl_get_sv ("SVN::Error::handler", FALSE);
+
+ if (SvOK(exception_handler)) {
+ SV *callback_result;
+
+ PUTBACK;
+ svn_swig_pl_callback_thunk (CALL_SV, exception_handler,
+ &callback_result, "S", result,
+ SWIGTYPE_p_svn_error_t);
+ SPAGAIN;
+ } else {
+ ST(argvi) = SWIG_NewPointerObj(result, SWIGTYPE_p_svn_error_t, 0);
+ argvi++;
+ }
+ }
+ }
+
+
XSRETURN(argvi);
fail:
+
+
SWIG_croak_null();
}
}
-XS(_wrap_svn_client_shelves_list) {
+XS(_wrap_svn_client__shelf_revprop_get) {
{
- apr_hash_t **arg1 = (apr_hash_t **) 0 ;
- char *arg2 = (char *) 0 ;
- svn_client_ctx_t *arg3 = (svn_client_ctx_t *) 0 ;
+ svn_string_t **arg1 = (svn_string_t **) 0 ;
+ svn_client__shelf_t *arg2 = (svn_client__shelf_t *) 0 ;
+ char *arg3 = (char *) 0 ;
apr_pool_t *arg4 = (apr_pool_t *) 0 ;
- apr_pool_t *arg5 = (apr_pool_t *) 0 ;
apr_pool_t *_global_pool ;
- apr_hash_t *temp1 ;
- int res2 ;
- char *buf2 = 0 ;
- int alloc2 = 0 ;
- void *argp3 = 0 ;
- int res3 = 0 ;
+ svn_string_t *temp1 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ int res3 ;
+ char *buf3 = 0 ;
+ int alloc3 = 0 ;
int argvi = 0;
svn_error_t *result = 0 ;
dXSARGS;
@@ -33120,32 +35684,25 @@ XS(_wrap_svn_client_shelves_list) {
_global_pool = arg4 = svn_swig_pl_make_pool (ST(items-1));
SPAGAIN;
}
- {
- _global_pool = arg5 = svn_swig_pl_make_pool (ST(items-1));
- SPAGAIN;
- }
arg1 = &temp1;
- if ((items < 2) || (items > 4)) {
- SWIG_croak("Usage: svn_client_shelves_list(local_abspath,ctx,result_pool,scratch_pool);");
+ if ((items < 2) || (items > 3)) {
+ SWIG_croak("Usage: svn_client__shelf_revprop_get(shelf,prop_name,result_pool);");
}
- res2 = SWIG_AsCharPtrAndSize(ST(0), &buf2, NULL, &alloc2);
+ res2 = SWIG_ConvertPtr(ST(0), &argp2,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
if (!SWIG_IsOK(res2)) {
- SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_client_shelves_list" "', argument " "2"" of type '" "char const *""'");
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_client__shelf_revprop_get" "', argument " "2"" of type '" "svn_client__shelf_t *""'");
}
- arg2 = (char *)(buf2);
- res3 = SWIG_ConvertPtr(ST(1), &argp3,SWIGTYPE_p_svn_client_ctx_t, 0 | 0 );
+ arg2 = (svn_client__shelf_t *)(argp2);
+ res3 = SWIG_AsCharPtrAndSize(ST(1), &buf3, NULL, &alloc3);
if (!SWIG_IsOK(res3)) {
- SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "svn_client_shelves_list" "', argument " "3"" of type '" "svn_client_ctx_t *""'");
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "svn_client__shelf_revprop_get" "', argument " "3"" of type '" "char const *""'");
}
- arg3 = (svn_client_ctx_t *)(argp3);
+ arg3 = (char *)(buf3);
if (items > 2) {
}
- if (items > 3) {
-
- }
{
- result = (svn_error_t *)svn_client_shelves_list(arg1,(char const *)arg2,arg3,arg4,arg5);
+ result = (svn_error_t *)svn_client__shelf_revprop_get(arg1,arg2,(char const *)arg3,arg4);
@@ -33169,24 +35726,89 @@ XS(_wrap_svn_client_shelves_list) {
}
}
{
- /* FIXME: Missing argout typemap: svn_client_shelves_list arg 1 (apr_hash_t **) */
-
+ if (*arg1) {
+ if (argvi >= items) EXTEND(sp,1); ST(argvi) = sv_2mortal(newSVpvn((*arg1)->data, (*arg1)->len)); argvi++ ;
+ } else {
+ if (argvi >= items) EXTEND(sp,1); ST(argvi) = &PL_sv_undef; argvi++ ;
+ }
+ }
+
+
+ if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+
+ XSRETURN(argvi);
+ fail:
+
+
+ if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_svn_client__shelf_revprop_list) {
+ {
+ apr_hash_t **arg1 = (apr_hash_t **) 0 ;
+ svn_client__shelf_t *arg2 = (svn_client__shelf_t *) 0 ;
+ apr_pool_t *arg3 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool ;
+ apr_hash_t *temp1 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ int argvi = 0;
+ svn_error_t *result = 0 ;
+ dXSARGS;
+
+ {
+ _global_pool = arg3 = svn_swig_pl_make_pool (ST(items-1));
+ SPAGAIN;
+ }
+ arg1 = &temp1;
+ if ((items < 1) || (items > 2)) {
+ SWIG_croak("Usage: svn_client__shelf_revprop_list(shelf,result_pool);");
+ }
+ res2 = SWIG_ConvertPtr(ST(0), &argp2,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_client__shelf_revprop_list" "', argument " "2"" of type '" "svn_client__shelf_t *""'");
+ }
+ arg2 = (svn_client__shelf_t *)(argp2);
+ if (items > 1) {
+ }
+ {
+ result = (svn_error_t *)svn_client__shelf_revprop_list(arg1,arg2,arg3);
- SWIG_exception(SWIG_ValueError, "svn_client_shelves_list is not implemented yet");
}
-
- if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ {
+ if (result) {
+ SV *exception_handler = perl_get_sv ("SVN::Error::handler", FALSE);
+
+ if (SvOK(exception_handler)) {
+ SV *callback_result;
+
+ PUTBACK;
+ svn_swig_pl_callback_thunk (CALL_SV, exception_handler,
+ &callback_result, "S", result,
+ SWIGTYPE_p_svn_error_t);
+ SPAGAIN;
+ } else {
+ ST(argvi) = SWIG_NewPointerObj(result, SWIGTYPE_p_svn_error_t, 0);
+ argvi++;
+ }
+ }
+ }
+ {
+ if (argvi >= items) EXTEND(sp,1); ST(argvi) = svn_swig_pl_prophash_to_hash(*arg1); argvi++ ;
+ }
XSRETURN(argvi);
fail:
- if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-
SWIG_croak_null();
@@ -33194,47 +35816,43 @@ XS(_wrap_svn_client_shelves_list) {
}
-XS(_wrap_svn_client_shelves_any) {
+XS(_wrap_svn_client__shelf_set_log_message) {
{
- svn_boolean_t *arg1 = (svn_boolean_t *) 0 ;
+ svn_client__shelf_t *arg1 = (svn_client__shelf_t *) 0 ;
char *arg2 = (char *) 0 ;
- svn_client_ctx_t *arg3 = (svn_client_ctx_t *) 0 ;
- apr_pool_t *arg4 = (apr_pool_t *) 0 ;
+ apr_pool_t *arg3 = (apr_pool_t *) 0 ;
apr_pool_t *_global_pool ;
- svn_boolean_t temp1 ;
- int res1 = SWIG_TMPOBJ ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
int res2 ;
char *buf2 = 0 ;
int alloc2 = 0 ;
- void *argp3 = 0 ;
- int res3 = 0 ;
int argvi = 0;
svn_error_t *result = 0 ;
dXSARGS;
{
- _global_pool = arg4 = svn_swig_pl_make_pool (ST(items-1));
+ _global_pool = arg3 = svn_swig_pl_make_pool (ST(items-1));
SPAGAIN;
}
- arg1 = &temp1;
if ((items < 2) || (items > 3)) {
- SWIG_croak("Usage: svn_client_shelves_any(local_abspath,ctx,scratch_pool);");
+ SWIG_croak("Usage: svn_client__shelf_set_log_message(shelf,log_message,scratch_pool);");
}
- res2 = SWIG_AsCharPtrAndSize(ST(0), &buf2, NULL, &alloc2);
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client__shelf_set_log_message" "', argument " "1"" of type '" "svn_client__shelf_t *""'");
+ }
+ arg1 = (svn_client__shelf_t *)(argp1);
+ res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
if (!SWIG_IsOK(res2)) {
- SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_client_shelves_any" "', argument " "2"" of type '" "char const *""'");
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_client__shelf_set_log_message" "', argument " "2"" of type '" "char const *""'");
}
arg2 = (char *)(buf2);
- res3 = SWIG_ConvertPtr(ST(1), &argp3,SWIGTYPE_p_svn_client_ctx_t, 0 | 0 );
- if (!SWIG_IsOK(res3)) {
- SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "svn_client_shelves_any" "', argument " "3"" of type '" "svn_client_ctx_t *""'");
- }
- arg3 = (svn_client_ctx_t *)(argp3);
if (items > 2) {
}
{
- result = (svn_error_t *)svn_client_shelves_any(arg1,(char const *)arg2,arg3,arg4);
+ result = (svn_error_t *)svn_client__shelf_set_log_message(arg1,(char const *)arg2,arg3);
@@ -33257,84 +35875,266 @@ XS(_wrap_svn_client_shelves_any) {
}
}
}
- if (SWIG_IsTmpObj(res1)) {
- if (argvi >= items) EXTEND(sp,1); ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1((*arg1)); argvi++ ;
- } else {
- int new_flags = SWIG_IsNewObj(res1) ? (SWIG_POINTER_OWN | 0) : 0;
- if (argvi >= items) EXTEND(sp,1); ST(argvi) = SWIG_NewPointerObj((void*)(arg1), SWIGTYPE_p_int, new_flags); argvi++ ;
- }
if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-
XSRETURN(argvi);
fail:
if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_svn_client__shelf_get_log_message) {
+ {
+ char **arg1 = (char **) 0 ;
+ svn_client__shelf_t *arg2 = (svn_client__shelf_t *) 0 ;
+ apr_pool_t *arg3 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool ;
+ char *temp1 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ int argvi = 0;
+ svn_error_t *result = 0 ;
+ dXSARGS;
+
+ {
+ _global_pool = arg3 = svn_swig_pl_make_pool (ST(items-1));
+ SPAGAIN;
+ }
+ arg1 = &temp1;
+ if ((items < 1) || (items > 2)) {
+ SWIG_croak("Usage: svn_client__shelf_get_log_message(shelf,result_pool);");
+ }
+ res2 = SWIG_ConvertPtr(ST(0), &argp2,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_client__shelf_get_log_message" "', argument " "2"" of type '" "svn_client__shelf_t *""'");
+ }
+ arg2 = (svn_client__shelf_t *)(argp2);
+ if (items > 1) {
+
+ }
+ {
+ result = (svn_error_t *)svn_client__shelf_get_log_message(arg1,arg2,arg3);
+
+
+
+ }
+ {
+ if (result) {
+ SV *exception_handler = perl_get_sv ("SVN::Error::handler", FALSE);
+
+ if (SvOK(exception_handler)) {
+ SV *callback_result;
+
+ PUTBACK;
+ svn_swig_pl_callback_thunk (CALL_SV, exception_handler,
+ &callback_result, "S", result,
+ SWIGTYPE_p_svn_error_t);
+ SPAGAIN;
+ } else {
+ ST(argvi) = SWIG_NewPointerObj(result, SWIGTYPE_p_svn_error_t, 0);
+ argvi++;
+ }
+ }
+ }
+ {
+ /* FIXME: Missing argout typemap: svn_client__shelf_get_log_message arg 1 (char **) */
+
+
+
+
+ SWIG_exception(SWIG_ValueError, "svn_client__shelf_get_log_message is not implemented yet");
+
+ }
+
+
+
+ XSRETURN(argvi);
+ fail:
+
+
+
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_svn_client__shelf_info_t_mtime_set) {
+ {
+ struct svn_client__shelf_info_t *arg1 = (struct svn_client__shelf_info_t *) 0 ;
+ apr_time_t arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ long long val2 ;
+ int ecode2 = 0 ;
+ int argvi = 0;
+ dXSARGS;
+
+ if ((items < 2) || (items > 2)) {
+ SWIG_croak("Usage: svn_client__shelf_info_t_mtime_set(self,mtime);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client__shelf_info_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client__shelf_info_t_mtime_set" "', argument " "1"" of type '" "struct svn_client__shelf_info_t *""'");
+ }
+ arg1 = (struct svn_client__shelf_info_t *)(argp1);
+ ecode2 = SWIG_AsVal_long_SS_long SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "svn_client__shelf_info_t_mtime_set" "', argument " "2"" of type '" "apr_time_t""'");
+ }
+ arg2 = (apr_time_t)(val2);
+ if (arg1) (arg1)->mtime = arg2;
+ ST(argvi) = sv_newmortal();
+
+
+ XSRETURN(argvi);
+ fail:
+
+
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_svn_client__shelf_info_t_mtime_get) {
+ {
+ struct svn_client__shelf_info_t *arg1 = (struct svn_client__shelf_info_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int argvi = 0;
+ apr_time_t result;
+ dXSARGS;
+
+ if ((items < 1) || (items > 1)) {
+ SWIG_croak("Usage: svn_client__shelf_info_t_mtime_get(self);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client__shelf_info_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client__shelf_info_t_mtime_get" "', argument " "1"" of type '" "struct svn_client__shelf_info_t *""'");
+ }
+ arg1 = (struct svn_client__shelf_info_t *)(argp1);
+ result = ((arg1)->mtime);
+ {
+ char temp[30];
+ sprintf(temp, "%" APR_INT64_T_FMT, (apr_int64_t) result);
+ if (argvi >= items) EXTEND(sp,1); ST(argvi) = sv_2mortal(newSVpv(temp, 0)); argvi++ ;
+ }
+
+ XSRETURN(argvi);
+ fail:
+
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_new_svn_client__shelf_info_t) {
+ {
+ int argvi = 0;
+ struct svn_client__shelf_info_t *result = 0 ;
+ dXSARGS;
+
+ if ((items < 0) || (items > 0)) {
+ SWIG_croak("Usage: new_svn_client__shelf_info_t();");
+ }
+ {
+ result = (struct svn_client__shelf_info_t *)calloc(1, sizeof(struct svn_client__shelf_info_t));
+
+
+
+ }
+ ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_svn_client__shelf_info_t, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
+ XSRETURN(argvi);
+ fail:
+ SWIG_croak_null();
+ }
+}
+
+
+XS(_wrap_delete_svn_client__shelf_info_t) {
+ {
+ struct svn_client__shelf_info_t *arg1 = (struct svn_client__shelf_info_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int argvi = 0;
+ dXSARGS;
+
+ if ((items < 1) || (items > 1)) {
+ SWIG_croak("Usage: delete_svn_client__shelf_info_t(self);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client__shelf_info_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_svn_client__shelf_info_t" "', argument " "1"" of type '" "struct svn_client__shelf_info_t *""'");
+ }
+ arg1 = (struct svn_client__shelf_info_t *)(argp1);
+ {
+ free((char *) arg1);
+
+
+
+ }
+ ST(argvi) = sv_newmortal();
+
+ XSRETURN(argvi);
+ fail:
SWIG_croak_null();
}
}
-XS(_wrap_svn_client_shelf_get_paths) {
+XS(_wrap_svn_client__shelf_list) {
{
apr_hash_t **arg1 = (apr_hash_t **) 0 ;
char *arg2 = (char *) 0 ;
- char *arg3 = (char *) 0 ;
- svn_client_ctx_t *arg4 = (svn_client_ctx_t *) 0 ;
+ svn_client_ctx_t *arg3 = (svn_client_ctx_t *) 0 ;
+ apr_pool_t *arg4 = (apr_pool_t *) 0 ;
apr_pool_t *arg5 = (apr_pool_t *) 0 ;
- apr_pool_t *arg6 = (apr_pool_t *) 0 ;
apr_pool_t *_global_pool ;
apr_hash_t *temp1 ;
int res2 ;
char *buf2 = 0 ;
int alloc2 = 0 ;
- int res3 ;
- char *buf3 = 0 ;
- int alloc3 = 0 ;
- void *argp4 = 0 ;
- int res4 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
int argvi = 0;
svn_error_t *result = 0 ;
dXSARGS;
{
- _global_pool = arg5 = svn_swig_pl_make_pool (ST(items-1));
+ _global_pool = arg4 = svn_swig_pl_make_pool (ST(items-1));
SPAGAIN;
}
{
- _global_pool = arg6 = svn_swig_pl_make_pool (ST(items-1));
+ _global_pool = arg5 = svn_swig_pl_make_pool (ST(items-1));
SPAGAIN;
}
arg1 = &temp1;
- if ((items < 3) || (items > 5)) {
- SWIG_croak("Usage: svn_client_shelf_get_paths(name,local_abspath,ctx,result_pool,scratch_pool);");
+ if ((items < 2) || (items > 4)) {
+ SWIG_croak("Usage: svn_client__shelf_list(local_abspath,ctx,result_pool,scratch_pool);");
}
res2 = SWIG_AsCharPtrAndSize(ST(0), &buf2, NULL, &alloc2);
if (!SWIG_IsOK(res2)) {
- SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_client_shelf_get_paths" "', argument " "2"" of type '" "char const *""'");
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_client__shelf_list" "', argument " "2"" of type '" "char const *""'");
}
arg2 = (char *)(buf2);
- res3 = SWIG_AsCharPtrAndSize(ST(1), &buf3, NULL, &alloc3);
+ res3 = SWIG_ConvertPtr(ST(1), &argp3,SWIGTYPE_p_svn_client_ctx_t, 0 | 0 );
if (!SWIG_IsOK(res3)) {
- SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "svn_client_shelf_get_paths" "', argument " "3"" of type '" "char const *""'");
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "svn_client__shelf_list" "', argument " "3"" of type '" "svn_client_ctx_t *""'");
}
- arg3 = (char *)(buf3);
- res4 = SWIG_ConvertPtr(ST(2), &argp4,SWIGTYPE_p_svn_client_ctx_t, 0 | 0 );
- if (!SWIG_IsOK(res4)) {
- SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "svn_client_shelf_get_paths" "', argument " "4"" of type '" "svn_client_ctx_t *""'");
- }
- arg4 = (svn_client_ctx_t *)(argp4);
- if (items > 3) {
+ arg3 = (svn_client_ctx_t *)(argp3);
+ if (items > 2) {
}
- if (items > 4) {
+ if (items > 3) {
}
{
- result = (svn_error_t *)svn_client_shelf_get_paths(arg1,(char const *)arg2,(char const *)arg3,arg4,arg5,arg6);
+ result = (svn_error_t *)svn_client__shelf_list(arg1,(char const *)arg2,arg3,arg4,arg5);
@@ -33358,17 +36158,16 @@ XS(_wrap_svn_client_shelf_get_paths) {
}
}
{
- /* FIXME: Missing argout typemap: svn_client_shelf_get_paths arg 1 (apr_hash_t **) */
+ /* FIXME: Missing argout typemap: svn_client__shelf_list arg 1 (apr_hash_t **) */
- SWIG_exception(SWIG_ValueError, "svn_client_shelf_get_paths is not implemented yet");
+ SWIG_exception(SWIG_ValueError, "svn_client__shelf_list is not implemented yet");
}
if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
- if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
@@ -33376,7 +36175,6 @@ XS(_wrap_svn_client_shelf_get_paths) {
fail:
if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
- if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
@@ -33385,24 +36183,20 @@ XS(_wrap_svn_client_shelf_get_paths) {
}
-XS(_wrap_svn_client_shelf_has_changes) {
+XS(_wrap_svn_client__shelf_version_status_walk) {
{
- svn_boolean_t *arg1 = (svn_boolean_t *) 0 ;
+ svn_client__shelf_version_t *arg1 = (svn_client__shelf_version_t *) 0 ;
char *arg2 = (char *) 0 ;
- char *arg3 = (char *) 0 ;
- svn_client_ctx_t *arg4 = (svn_client_ctx_t *) 0 ;
+ svn_wc_status_func4_t arg3 = (svn_wc_status_func4_t) 0 ;
+ void *arg4 = (void *) 0 ;
apr_pool_t *arg5 = (apr_pool_t *) 0 ;
apr_pool_t *_global_pool ;
- svn_boolean_t temp1 ;
- int res1 = SWIG_TMPOBJ ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
int res2 ;
char *buf2 = 0 ;
int alloc2 = 0 ;
- int res3 ;
- char *buf3 = 0 ;
- int alloc3 = 0 ;
- void *argp4 = 0 ;
- int res4 = 0 ;
+ int res4 ;
int argvi = 0;
svn_error_t *result = 0 ;
dXSARGS;
@@ -33411,30 +36205,34 @@ XS(_wrap_svn_client_shelf_has_changes) {
_global_pool = arg5 = svn_swig_pl_make_pool (ST(items-1));
SPAGAIN;
}
- arg1 = &temp1;
- if ((items < 3) || (items > 4)) {
- SWIG_croak("Usage: svn_client_shelf_has_changes(name,local_abspath,ctx,scratch_pool);");
+ if ((items < 4) || (items > 5)) {
+ SWIG_croak("Usage: svn_client__shelf_version_status_walk(shelf_version,wc_relpath,walk_func,walk_baton,scratch_pool);");
}
- res2 = SWIG_AsCharPtrAndSize(ST(0), &buf2, NULL, &alloc2);
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_client__shelf_version_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_client__shelf_version_status_walk" "', argument " "1"" of type '" "svn_client__shelf_version_t *""'");
+ }
+ arg1 = (svn_client__shelf_version_t *)(argp1);
+ res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
if (!SWIG_IsOK(res2)) {
- SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_client_shelf_has_changes" "', argument " "2"" of type '" "char const *""'");
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_client__shelf_version_status_walk" "', argument " "2"" of type '" "char const *""'");
}
arg2 = (char *)(buf2);
- res3 = SWIG_AsCharPtrAndSize(ST(1), &buf3, NULL, &alloc3);
- if (!SWIG_IsOK(res3)) {
- SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "svn_client_shelf_has_changes" "', argument " "3"" of type '" "char const *""'");
+ {
+ int res = SWIG_ConvertFunctionPtr(ST(2), (void**)(&arg3), SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__svn_wc_status3_t_p_apr_pool_t__p_svn_error_t);
+ if (!SWIG_IsOK(res)) {
+ SWIG_exception_fail(SWIG_ArgError(res), "in method '" "svn_client__shelf_version_status_walk" "', argument " "3"" of type '" "svn_wc_status_func4_t""'");
+ }
}
- arg3 = (char *)(buf3);
- res4 = SWIG_ConvertPtr(ST(2), &argp4,SWIGTYPE_p_svn_client_ctx_t, 0 | 0 );
+ res4 = SWIG_ConvertPtr(ST(3),SWIG_as_voidptrptr(&arg4), 0, 0);
if (!SWIG_IsOK(res4)) {
- SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "svn_client_shelf_has_changes" "', argument " "4"" of type '" "svn_client_ctx_t *""'");
+ SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "svn_client__shelf_version_status_walk" "', argument " "4"" of type '" "void *""'");
}
- arg4 = (svn_client_ctx_t *)(argp4);
- if (items > 3) {
+ if (items > 4) {
}
{
- result = (svn_error_t *)svn_client_shelf_has_changes(arg1,(char const *)arg2,(char const *)arg3,arg4,arg5);
+ result = (svn_error_t *)svn_client__shelf_version_status_walk(arg1,(char const *)arg2,arg3,arg4,arg5);
@@ -33457,22 +36255,16 @@ XS(_wrap_svn_client_shelf_has_changes) {
}
}
}
- if (SWIG_IsTmpObj(res1)) {
- if (argvi >= items) EXTEND(sp,1); ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1((*arg1)); argvi++ ;
- } else {
- int new_flags = SWIG_IsNewObj(res1) ? (SWIG_POINTER_OWN | 0) : 0;
- if (argvi >= items) EXTEND(sp,1); ST(argvi) = SWIG_NewPointerObj((void*)(arg1), SWIGTYPE_p_int, new_flags); argvi++ ;
- }
if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
- if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+
XSRETURN(argvi);
fail:
if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
- if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+
SWIG_croak_null();
@@ -39509,6 +42301,167 @@ XS(_wrap_svn_client_invoke_diff_summarize_func) {
}
+XS(_wrap_svn_client_invoke__layout_func) {
+ {
+ svn_client__layout_func_t arg1 = (svn_client__layout_func_t) 0 ;
+ void *arg2 = (void *) 0 ;
+ char *arg3 = (char *) 0 ;
+ char *arg4 = (char *) 0 ;
+ svn_boolean_t arg5 ;
+ svn_boolean_t arg6 ;
+ char *arg7 = (char *) 0 ;
+ svn_boolean_t arg8 ;
+ svn_revnum_t arg9 ;
+ svn_boolean_t arg10 ;
+ svn_depth_t arg11 ;
+ apr_pool_t *arg12 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool ;
+ int res2 ;
+ int res3 ;
+ char *buf3 = 0 ;
+ int alloc3 = 0 ;
+ int res4 ;
+ char *buf4 = 0 ;
+ int alloc4 = 0 ;
+ int val5 ;
+ int ecode5 = 0 ;
+ int val6 ;
+ int ecode6 = 0 ;
+ int res7 ;
+ char *buf7 = 0 ;
+ int alloc7 = 0 ;
+ int val8 ;
+ int ecode8 = 0 ;
+ long val9 ;
+ int ecode9 = 0 ;
+ int val10 ;
+ int ecode10 = 0 ;
+ int val11 ;
+ int ecode11 = 0 ;
+ int argvi = 0;
+ svn_error_t *result = 0 ;
+ dXSARGS;
+
+ {
+ _global_pool = arg12 = svn_swig_pl_make_pool (ST(items-1));
+ SPAGAIN;
+ }
+ if ((items < 11) || (items > 12)) {
+ SWIG_croak("Usage: svn_client_invoke__layout_func(_obj,layout_baton,local_abspath,repos_root_url,not_present,url_changed,url,revision_changed,revision,depth_changed,depth,scratch_pool);");
+ }
+ {
+ int res = SWIG_ConvertFunctionPtr(ST(0), (void**)(&arg1), SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_svn_boolean_t_p_q_const__char_svn_boolean_t_svn_revnum_t_svn_boolean_t_svn_depth_t_p_apr_pool_t__p_svn_error_t);
+ if (!SWIG_IsOK(res)) {
+ SWIG_exception_fail(SWIG_ArgError(res), "in method '" "svn_client_invoke__layout_func" "', argument " "1"" of type '" "svn_client__layout_func_t""'");
+ }
+ }
+ res2 = SWIG_ConvertPtr(ST(1),SWIG_as_voidptrptr(&arg2), 0, 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_client_invoke__layout_func" "', argument " "2"" of type '" "void *""'");
+ }
+ res3 = SWIG_AsCharPtrAndSize(ST(2), &buf3, NULL, &alloc3);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "svn_client_invoke__layout_func" "', argument " "3"" of type '" "char const *""'");
+ }
+ arg3 = (char *)(buf3);
+ res4 = SWIG_AsCharPtrAndSize(ST(3), &buf4, NULL, &alloc4);
+ if (!SWIG_IsOK(res4)) {
+ SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "svn_client_invoke__layout_func" "', argument " "4"" of type '" "char const *""'");
+ }
+ arg4 = (char *)(buf4);
+ ecode5 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(4), &val5);
+ if (!SWIG_IsOK(ecode5)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "svn_client_invoke__layout_func" "', argument " "5"" of type '" "svn_boolean_t""'");
+ }
+ arg5 = (svn_boolean_t)(val5);
+ ecode6 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(5), &val6);
+ if (!SWIG_IsOK(ecode6)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "svn_client_invoke__layout_func" "', argument " "6"" of type '" "svn_boolean_t""'");
+ }
+ arg6 = (svn_boolean_t)(val6);
+ res7 = SWIG_AsCharPtrAndSize(ST(6), &buf7, NULL, &alloc7);
+ if (!SWIG_IsOK(res7)) {
+ SWIG_exception_fail(SWIG_ArgError(res7), "in method '" "svn_client_invoke__layout_func" "', argument " "7"" of type '" "char const *""'");
+ }
+ arg7 = (char *)(buf7);
+ ecode8 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(7), &val8);
+ if (!SWIG_IsOK(ecode8)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "svn_client_invoke__layout_func" "', argument " "8"" of type '" "svn_boolean_t""'");
+ }
+ arg8 = (svn_boolean_t)(val8);
+ ecode9 = SWIG_AsVal_long SWIG_PERL_CALL_ARGS_2(ST(8), &val9);
+ if (!SWIG_IsOK(ecode9)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode9), "in method '" "svn_client_invoke__layout_func" "', argument " "9"" of type '" "svn_revnum_t""'");
+ }
+ arg9 = (svn_revnum_t)(val9);
+ ecode10 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(9), &val10);
+ if (!SWIG_IsOK(ecode10)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode10), "in method '" "svn_client_invoke__layout_func" "', argument " "10"" of type '" "svn_boolean_t""'");
+ }
+ arg10 = (svn_boolean_t)(val10);
+ ecode11 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(10), &val11);
+ if (!SWIG_IsOK(ecode11)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode11), "in method '" "svn_client_invoke__layout_func" "', argument " "11"" of type '" "svn_depth_t""'");
+ }
+ arg11 = (svn_depth_t)(val11);
+ if (items > 11) {
+
+ }
+ {
+ result = (svn_error_t *)svn_client_invoke__layout_func(arg1,arg2,(char const *)arg3,(char const *)arg4,arg5,arg6,(char const *)arg7,arg8,arg9,arg10,arg11,arg12);
+
+
+
+ }
+ {
+ if (result) {
+ SV *exception_handler = perl_get_sv ("SVN::Error::handler", FALSE);
+
+ if (SvOK(exception_handler)) {
+ SV *callback_result;
+
+ PUTBACK;
+ svn_swig_pl_callback_thunk (CALL_SV, exception_handler,
+ &callback_result, "S", result,
+ SWIGTYPE_p_svn_error_t);
+ SPAGAIN;
+ } else {
+ ST(argvi) = SWIG_NewPointerObj(result, SWIGTYPE_p_svn_error_t, 0);
+ argvi++;
+ }
+ }
+ }
+
+
+ if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+ if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
+
+
+ if (alloc7 == SWIG_NEWOBJ) free((char*)buf7);
+
+
+
+
+
+ XSRETURN(argvi);
+ fail:
+
+
+ if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+ if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
+
+
+ if (alloc7 == SWIG_NEWOBJ) free((char*)buf7);
+
+
+
+
+
+ SWIG_croak_null();
+ }
+}
+
+
XS(_wrap_svn_client_invoke_import_filter_func) {
{
svn_client_import_filter_func_t arg1 = (svn_client_import_filter_func_t) 0 ;
@@ -40344,11 +43297,13 @@ static swig_type_info _swigt__p_f_p_void_p_q_const__char_enum_svn_wc_notify_acti
static swig_type_info _swigt__p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_array_header_t_p_apr_pool_t__p_svn_error_t = {"_p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_array_header_t_p_apr_pool_t__p_svn_error_t", "struct svn_error_t *(*)(void *,char const *,apr_hash_t *,apr_array_header_t *,apr_pool_t *)|svn_proplist_receiver2_t", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_pool_t__p_svn_error_t = {"_p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_pool_t__p_svn_error_t", "struct svn_error_t *(*)(void *,char const *,apr_hash_t *,apr_pool_t *)|svn_proplist_receiver_t", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_f_p_void_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t = {"_p_f_p_void_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t", "struct svn_error_t *(*)(void *,char const *,char const *,apr_pool_t *)|svn_changelist_receiver_t", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_f_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_svn_boolean_t_p_q_const__char_svn_boolean_t_svn_revnum_t_svn_boolean_t_svn_depth_t_p_apr_pool_t__p_svn_error_t = {"_p_f_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_svn_boolean_t_p_q_const__char_svn_boolean_t_svn_revnum_t_svn_boolean_t_svn_depth_t_p_apr_pool_t__p_svn_error_t", "struct svn_error_t *(*)(void *,char const *,char const *,svn_boolean_t,svn_boolean_t,char const *,svn_boolean_t,svn_revnum_t,svn_boolean_t,svn_depth_t,apr_pool_t *)|svn_client__layout_func_t", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_f_p_void_p_q_const__char_p_q_const__svn_client_info2_t_p_apr_pool_t__p_svn_error_t = {"_p_f_p_void_p_q_const__char_p_q_const__svn_client_info2_t_p_apr_pool_t__p_svn_error_t", "svn_client_info_receiver2_t|struct svn_error_t *(*)(void *,char const *,svn_client_info2_t const *,apr_pool_t *)", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_f_p_void_p_q_const__char_p_q_const__svn_client_status_t_p_apr_pool_t__p_svn_error_t = {"_p_f_p_void_p_q_const__char_p_q_const__svn_client_status_t_p_apr_pool_t__p_svn_error_t", "svn_client_status_func_t|struct svn_error_t *(*)(void *,char const *,svn_client_status_t const *,apr_pool_t *)", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_apr_pool_t__p_svn_error_t = {"_p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_apr_pool_t__p_svn_error_t", "struct svn_error_t *(*)(void *,char const *,svn_dirent_t const *,svn_lock_t const *,char const *,apr_pool_t *)|svn_client_list_func_t", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t = {"_p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t", "struct svn_error_t *(*)(void *,char const *,svn_dirent_t const *,svn_lock_t const *,char const *,char const *,char const *,apr_pool_t *)|svn_client_list_func2_t", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_f_p_void_p_q_const__char_p_q_const__svn_info_t_p_apr_pool_t__p_svn_error_t = {"_p_f_p_void_p_q_const__char_p_q_const__svn_info_t_p_apr_pool_t__p_svn_error_t", "struct svn_error_t *(*)(void *,char const *,svn_info_t const *,apr_pool_t *)|svn_info_receiver_t", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_f_p_void_p_q_const__char_p_q_const__svn_wc_status3_t_p_apr_pool_t__p_svn_error_t = {"_p_f_p_void_p_q_const__char_p_q_const__svn_wc_status3_t_p_apr_pool_t__p_svn_error_t", "struct svn_error_t *(*)(void *,char const *,svn_wc_status3_t const *,apr_pool_t *)|svn_wc_status_func4_t", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_f_p_void_p_q_const__char_p_struct_svn_wc_status2_t__void = {"_p_f_p_void_p_q_const__char_p_struct_svn_wc_status2_t__void", "void (*)(void *,char const *,struct svn_wc_status2_t *)|svn_wc_status_func2_t", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_f_p_void_p_q_const__char_p_struct_svn_wc_status_t__void = {"_p_f_p_void_p_q_const__char_p_struct_svn_wc_status_t__void", "void (*)(void *,char const *,struct svn_wc_status_t *)|svn_wc_status_func_t", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_f_p_void_p_q_const__char_p_svn_wc_status2_t_p_apr_pool_t__p_svn_error_t = {"_p_f_p_void_p_q_const__char_p_svn_wc_status2_t_p_apr_pool_t__p_svn_error_t", "struct svn_error_t *(*)(void *,char const *,svn_wc_status2_t *,apr_pool_t *)|svn_wc_status_func3_t", 0, 0, (void*)0, 0};
@@ -40364,6 +43319,8 @@ static swig_type_info _swigt__p_p_apr_array_header_t = {"_p_p_apr_array_header_t
static swig_type_info _swigt__p_p_apr_hash_t = {"_p_p_apr_hash_t", "apr_hash_t **", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_p_char = {"_p_p_char", "char **", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_p_svn_auth_provider_object_t = {"_p_p_svn_auth_provider_object_t", "struct svn_auth_provider_object_t **|svn_auth_provider_object_t **", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_p_svn_client__shelf_t = {"_p_p_svn_client__shelf_t", "struct svn_client__shelf_t **|svn_client__shelf_t **", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_p_svn_client__shelf_version_t = {"_p_p_svn_client__shelf_version_t", "struct svn_client__shelf_version_t **|svn_client__shelf_version_t **", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_p_svn_client_commit_info_t = {"_p_p_svn_client_commit_info_t", "struct svn_client_commit_info_t **|svn_client_commit_info_t **", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_p_svn_client_commit_item3_t = {"_p_p_svn_client_commit_item3_t", "struct svn_client_commit_item3_t **|svn_client_commit_item3_t **", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_p_svn_client_conflict_t = {"_p_p_svn_client_conflict_t", "struct svn_client_conflict_t **|svn_client_conflict_t **", 0, 0, (void*)0, 0};
@@ -40385,6 +43342,9 @@ static swig_type_info _swigt__p_svn_cache_config_t = {"_p_svn_cache_config_t", "
static swig_type_info _swigt__p_svn_checksum_ctx_t = {"_p_svn_checksum_ctx_t", "struct svn_checksum_ctx_t *|svn_checksum_ctx_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_checksum_kind_t = {"_p_svn_checksum_kind_t", "enum svn_checksum_kind_t *|svn_checksum_kind_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_checksum_t = {"_p_svn_checksum_t", "struct svn_checksum_t *|svn_checksum_t *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_svn_client__shelf_info_t = {"_p_svn_client__shelf_info_t", "struct svn_client__shelf_info_t *|svn_client__shelf_info_t *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_svn_client__shelf_t = {"_p_svn_client__shelf_t", "struct svn_client__shelf_t *|svn_client__shelf_t *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_svn_client__shelf_version_t = {"_p_svn_client__shelf_version_t", "struct svn_client__shelf_version_t *|svn_client__shelf_version_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_client_commit_info_t = {"_p_svn_client_commit_info_t", "struct svn_client_commit_info_t *|svn_client_commit_info_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_client_commit_item2_t = {"_p_svn_client_commit_item2_t", "struct svn_client_commit_item2_t *|svn_client_commit_item2_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_client_commit_item3_t = {"_p_svn_client_commit_item3_t", "struct svn_client_commit_item3_t *|svn_client_commit_item3_t *", 0, 0, (void*)0, 0};
@@ -40398,7 +43358,6 @@ static swig_type_info _swigt__p_svn_client_diff_summarize_kind_t = {"_p_svn_clie
static swig_type_info _swigt__p_svn_client_diff_summarize_t = {"_p_svn_client_diff_summarize_t", "struct svn_client_diff_summarize_t *|svn_client_diff_summarize_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_client_info2_t = {"_p_svn_client_info2_t", "struct svn_client_info2_t *|svn_client_info2_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_client_proplist_item_t = {"_p_svn_client_proplist_item_t", "struct svn_client_proplist_item_t *|svn_client_proplist_item_t *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_svn_client_shelved_patch_info_t = {"_p_svn_client_shelved_patch_info_t", "struct svn_client_shelved_patch_info_t *|svn_client_shelved_patch_info_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_client_status_t = {"_p_svn_client_status_t", "struct svn_client_status_t *|svn_client_status_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_commit_info_t = {"_p_svn_commit_info_t", "struct svn_commit_info_t *|svn_commit_info_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_config_t = {"_p_svn_config_t", "struct svn_config_t *|svn_config_t *", 0, 0, (void*)0, 0};
@@ -40434,6 +43393,7 @@ static swig_type_info _swigt__p_svn_opt_revision_range_t = {"_p_svn_opt_revision
static swig_type_info _swigt__p_svn_opt_revision_t = {"_p_svn_opt_revision_t", "struct svn_opt_revision_t *|svn_opt_revision_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_revision_value_t = {"_p_svn_opt_revision_value_t", "union svn_opt_revision_value_t *|svn_opt_revision_value_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc2_t = {"_p_svn_opt_subcommand_desc2_t", "struct svn_opt_subcommand_desc2_t *|svn_opt_subcommand_desc2_t *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_svn_opt_subcommand_desc3_t = {"_p_svn_opt_subcommand_desc3_t", "struct svn_opt_subcommand_desc3_t *|svn_opt_subcommand_desc3_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc_t = {"_p_svn_opt_subcommand_desc_t", "struct svn_opt_subcommand_desc_t *|svn_opt_subcommand_desc_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_patch_file_t = {"_p_svn_patch_file_t", "struct svn_patch_file_t *|svn_patch_file_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_patch_t = {"_p_svn_patch_t", "struct svn_patch_t *|svn_patch_t *", 0, 0, (void*)0, 0};
@@ -40527,11 +43487,13 @@ static swig_type_info *swig_type_initial[] = {
&_swigt__p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_array_header_t_p_apr_pool_t__p_svn_error_t,
&_swigt__p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_pool_t__p_svn_error_t,
&_swigt__p_f_p_void_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t,
+ &_swigt__p_f_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_svn_boolean_t_p_q_const__char_svn_boolean_t_svn_revnum_t_svn_boolean_t_svn_depth_t_p_apr_pool_t__p_svn_error_t,
&_swigt__p_f_p_void_p_q_const__char_p_q_const__svn_client_info2_t_p_apr_pool_t__p_svn_error_t,
&_swigt__p_f_p_void_p_q_const__char_p_q_const__svn_client_status_t_p_apr_pool_t__p_svn_error_t,
&_swigt__p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_apr_pool_t__p_svn_error_t,
&_swigt__p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t,
&_swigt__p_f_p_void_p_q_const__char_p_q_const__svn_info_t_p_apr_pool_t__p_svn_error_t,
+ &_swigt__p_f_p_void_p_q_const__char_p_q_const__svn_wc_status3_t_p_apr_pool_t__p_svn_error_t,
&_swigt__p_f_p_void_p_q_const__char_p_struct_svn_wc_status2_t__void,
&_swigt__p_f_p_void_p_q_const__char_p_struct_svn_wc_status_t__void,
&_swigt__p_f_p_void_p_q_const__char_p_svn_wc_status2_t_p_apr_pool_t__p_svn_error_t,
@@ -40547,6 +43509,8 @@ static swig_type_info *swig_type_initial[] = {
&_swigt__p_p_apr_hash_t,
&_swigt__p_p_char,
&_swigt__p_p_svn_auth_provider_object_t,
+ &_swigt__p_p_svn_client__shelf_t,
+ &_swigt__p_p_svn_client__shelf_version_t,
&_swigt__p_p_svn_client_commit_info_t,
&_swigt__p_p_svn_client_commit_item3_t,
&_swigt__p_p_svn_client_conflict_t,
@@ -40568,6 +43532,9 @@ static swig_type_info *swig_type_initial[] = {
&_swigt__p_svn_checksum_ctx_t,
&_swigt__p_svn_checksum_kind_t,
&_swigt__p_svn_checksum_t,
+ &_swigt__p_svn_client__shelf_info_t,
+ &_swigt__p_svn_client__shelf_t,
+ &_swigt__p_svn_client__shelf_version_t,
&_swigt__p_svn_client_commit_info_t,
&_swigt__p_svn_client_commit_item2_t,
&_swigt__p_svn_client_commit_item3_t,
@@ -40581,7 +43548,6 @@ static swig_type_info *swig_type_initial[] = {
&_swigt__p_svn_client_diff_summarize_t,
&_swigt__p_svn_client_info2_t,
&_swigt__p_svn_client_proplist_item_t,
- &_swigt__p_svn_client_shelved_patch_info_t,
&_swigt__p_svn_client_status_t,
&_swigt__p_svn_commit_info_t,
&_swigt__p_svn_config_t,
@@ -40617,6 +43583,7 @@ static swig_type_info *swig_type_initial[] = {
&_swigt__p_svn_opt_revision_t,
&_swigt__p_svn_opt_revision_value_t,
&_swigt__p_svn_opt_subcommand_desc2_t,
+ &_swigt__p_svn_opt_subcommand_desc3_t,
&_swigt__p_svn_opt_subcommand_desc_t,
&_swigt__p_svn_patch_file_t,
&_swigt__p_svn_patch_t,
@@ -40710,11 +43677,13 @@ static swig_cast_info _swigc__p_f_p_void_p_q_const__char_enum_svn_wc_notify_acti
static swig_cast_info _swigc__p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_array_header_t_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_array_header_t_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_f_p_void_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_f_p_void_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_f_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_svn_boolean_t_p_q_const__char_svn_boolean_t_svn_revnum_t_svn_boolean_t_svn_depth_t_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_f_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_svn_boolean_t_p_q_const__char_svn_boolean_t_svn_revnum_t_svn_boolean_t_svn_depth_t_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_f_p_void_p_q_const__char_p_q_const__svn_client_info2_t_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_f_p_void_p_q_const__char_p_q_const__svn_client_info2_t_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_f_p_void_p_q_const__char_p_q_const__svn_client_status_t_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_f_p_void_p_q_const__char_p_q_const__svn_client_status_t_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_f_p_void_p_q_const__char_p_q_const__svn_info_t_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_f_p_void_p_q_const__char_p_q_const__svn_info_t_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_f_p_void_p_q_const__char_p_q_const__svn_wc_status3_t_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_f_p_void_p_q_const__char_p_q_const__svn_wc_status3_t_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_f_p_void_p_q_const__char_p_struct_svn_wc_status2_t__void[] = { {&_swigt__p_f_p_void_p_q_const__char_p_struct_svn_wc_status2_t__void, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_f_p_void_p_q_const__char_p_struct_svn_wc_status_t__void[] = { {&_swigt__p_f_p_void_p_q_const__char_p_struct_svn_wc_status_t__void, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_f_p_void_p_q_const__char_p_svn_wc_status2_t_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_f_p_void_p_q_const__char_p_svn_wc_status2_t_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
@@ -40730,6 +43699,8 @@ static swig_cast_info _swigc__p_p_apr_array_header_t[] = { {&_swigt__p_p_apr_ar
static swig_cast_info _swigc__p_p_apr_hash_t[] = { {&_swigt__p_p_apr_hash_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_p_char[] = { {&_swigt__p_p_char, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_p_svn_auth_provider_object_t[] = { {&_swigt__p_p_svn_auth_provider_object_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_p_svn_client__shelf_t[] = { {&_swigt__p_p_svn_client__shelf_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_p_svn_client__shelf_version_t[] = { {&_swigt__p_p_svn_client__shelf_version_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_p_svn_client_commit_info_t[] = { {&_swigt__p_p_svn_client_commit_info_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_p_svn_client_commit_item3_t[] = { {&_swigt__p_p_svn_client_commit_item3_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_p_svn_client_conflict_t[] = { {&_swigt__p_p_svn_client_conflict_t, 0, 0, 0},{0, 0, 0, 0}};
@@ -40751,6 +43722,9 @@ static swig_cast_info _swigc__p_svn_cache_config_t[] = { {&_swigt__p_svn_cache_
static swig_cast_info _swigc__p_svn_checksum_ctx_t[] = { {&_swigt__p_svn_checksum_ctx_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_checksum_kind_t[] = { {&_swigt__p_svn_checksum_kind_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_checksum_t[] = { {&_swigt__p_svn_checksum_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_svn_client__shelf_info_t[] = { {&_swigt__p_svn_client__shelf_info_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_svn_client__shelf_t[] = { {&_swigt__p_svn_client__shelf_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_svn_client__shelf_version_t[] = { {&_swigt__p_svn_client__shelf_version_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_client_commit_info_t[] = { {&_swigt__p_svn_client_commit_info_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_client_commit_item2_t[] = { {&_swigt__p_svn_client_commit_item2_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_client_commit_item3_t[] = { {&_swigt__p_svn_client_commit_item3_t, 0, 0, 0},{0, 0, 0, 0}};
@@ -40764,7 +43738,6 @@ static swig_cast_info _swigc__p_svn_client_diff_summarize_kind_t[] = { {&_swigt
static swig_cast_info _swigc__p_svn_client_diff_summarize_t[] = { {&_swigt__p_svn_client_diff_summarize_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_client_info2_t[] = { {&_swigt__p_svn_client_info2_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_client_proplist_item_t[] = { {&_swigt__p_svn_client_proplist_item_t, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_svn_client_shelved_patch_info_t[] = { {&_swigt__p_svn_client_shelved_patch_info_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_client_status_t[] = { {&_swigt__p_svn_client_status_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_commit_info_t[] = { {&_swigt__p_svn_commit_info_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_config_t[] = { {&_swigt__p_svn_config_t, 0, 0, 0},{0, 0, 0, 0}};
@@ -40800,6 +43773,7 @@ static swig_cast_info _swigc__p_svn_opt_revision_range_t[] = { {&_swigt__p_svn_
static swig_cast_info _swigc__p_svn_opt_revision_t[] = { {&_swigt__p_svn_opt_revision_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_revision_value_t[] = { {&_swigt__p_svn_opt_revision_value_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc2_t[] = { {&_swigt__p_svn_opt_subcommand_desc2_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_svn_opt_subcommand_desc3_t[] = { {&_swigt__p_svn_opt_subcommand_desc3_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc_t[] = { {&_swigt__p_svn_opt_subcommand_desc_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_patch_file_t[] = { {&_swigt__p_svn_patch_file_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_patch_t[] = { {&_swigt__p_svn_patch_t, 0, 0, 0},{0, 0, 0, 0}};
@@ -40893,11 +43867,13 @@ static swig_cast_info *swig_cast_initial[] = {
_swigc__p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_array_header_t_p_apr_pool_t__p_svn_error_t,
_swigc__p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_pool_t__p_svn_error_t,
_swigc__p_f_p_void_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t,
+ _swigc__p_f_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_svn_boolean_t_p_q_const__char_svn_boolean_t_svn_revnum_t_svn_boolean_t_svn_depth_t_p_apr_pool_t__p_svn_error_t,
_swigc__p_f_p_void_p_q_const__char_p_q_const__svn_client_info2_t_p_apr_pool_t__p_svn_error_t,
_swigc__p_f_p_void_p_q_const__char_p_q_const__svn_client_status_t_p_apr_pool_t__p_svn_error_t,
_swigc__p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_apr_pool_t__p_svn_error_t,
_swigc__p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t,
_swigc__p_f_p_void_p_q_const__char_p_q_const__svn_info_t_p_apr_pool_t__p_svn_error_t,
+ _swigc__p_f_p_void_p_q_const__char_p_q_const__svn_wc_status3_t_p_apr_pool_t__p_svn_error_t,
_swigc__p_f_p_void_p_q_const__char_p_struct_svn_wc_status2_t__void,
_swigc__p_f_p_void_p_q_const__char_p_struct_svn_wc_status_t__void,
_swigc__p_f_p_void_p_q_const__char_p_svn_wc_status2_t_p_apr_pool_t__p_svn_error_t,
@@ -40913,6 +43889,8 @@ static swig_cast_info *swig_cast_initial[] = {
_swigc__p_p_apr_hash_t,
_swigc__p_p_char,
_swigc__p_p_svn_auth_provider_object_t,
+ _swigc__p_p_svn_client__shelf_t,
+ _swigc__p_p_svn_client__shelf_version_t,
_swigc__p_p_svn_client_commit_info_t,
_swigc__p_p_svn_client_commit_item3_t,
_swigc__p_p_svn_client_conflict_t,
@@ -40934,6 +43912,9 @@ static swig_cast_info *swig_cast_initial[] = {
_swigc__p_svn_checksum_ctx_t,
_swigc__p_svn_checksum_kind_t,
_swigc__p_svn_checksum_t,
+ _swigc__p_svn_client__shelf_info_t,
+ _swigc__p_svn_client__shelf_t,
+ _swigc__p_svn_client__shelf_version_t,
_swigc__p_svn_client_commit_info_t,
_swigc__p_svn_client_commit_item2_t,
_swigc__p_svn_client_commit_item3_t,
@@ -40947,7 +43928,6 @@ static swig_cast_info *swig_cast_initial[] = {
_swigc__p_svn_client_diff_summarize_t,
_swigc__p_svn_client_info2_t,
_swigc__p_svn_client_proplist_item_t,
- _swigc__p_svn_client_shelved_patch_info_t,
_swigc__p_svn_client_status_t,
_swigc__p_svn_commit_info_t,
_swigc__p_svn_config_t,
@@ -40983,6 +43963,7 @@ static swig_cast_info *swig_cast_initial[] = {
_swigc__p_svn_opt_revision_t,
_swigc__p_svn_opt_revision_value_t,
_swigc__p_svn_opt_subcommand_desc2_t,
+ _swigc__p_svn_opt_subcommand_desc3_t,
_swigc__p_svn_opt_subcommand_desc_t,
_swigc__p_svn_patch_file_t,
_swigc__p_svn_patch_t,
@@ -41225,6 +44206,7 @@ static swig_command_info swig_commands[] = {
{"SVN::_Client::svn_client_switch3", _wrap_svn_client_switch3},
{"SVN::_Client::svn_client_switch2", _wrap_svn_client_switch2},
{"SVN::_Client::svn_client_switch", _wrap_svn_client_switch},
+{"SVN::_Client::svn_client__layout_list", _wrap_svn_client__layout_list},
{"SVN::_Client::svn_client_add5", _wrap_svn_client_add5},
{"SVN::_Client::svn_client_add4", _wrap_svn_client_add4},
{"SVN::_Client::svn_client_add3", _wrap_svn_client_add3},
@@ -41334,12 +44316,14 @@ static swig_command_info swig_commands[] = {
{"SVN::_Client::svn_client_blame3", _wrap_svn_client_blame3},
{"SVN::_Client::svn_client_blame2", _wrap_svn_client_blame2},
{"SVN::_Client::svn_client_blame", _wrap_svn_client_blame},
+{"SVN::_Client::svn_client_diff7", _wrap_svn_client_diff7},
{"SVN::_Client::svn_client_diff6", _wrap_svn_client_diff6},
{"SVN::_Client::svn_client_diff5", _wrap_svn_client_diff5},
{"SVN::_Client::svn_client_diff4", _wrap_svn_client_diff4},
{"SVN::_Client::svn_client_diff3", _wrap_svn_client_diff3},
{"SVN::_Client::svn_client_diff2", _wrap_svn_client_diff2},
{"SVN::_Client::svn_client_diff", _wrap_svn_client_diff},
+{"SVN::_Client::svn_client_diff_peg7", _wrap_svn_client_diff_peg7},
{"SVN::_Client::svn_client_diff_peg6", _wrap_svn_client_diff_peg6},
{"SVN::_Client::svn_client_diff_peg5", _wrap_svn_client_diff_peg5},
{"SVN::_Client::svn_client_diff_peg4", _wrap_svn_client_diff_peg4},
@@ -41374,13 +44358,18 @@ static swig_command_info swig_commands[] = {
{"SVN::_Client::svn_client_upgrade", _wrap_svn_client_upgrade},
{"SVN::_Client::svn_client_relocate2", _wrap_svn_client_relocate2},
{"SVN::_Client::svn_client_relocate", _wrap_svn_client_relocate},
+{"SVN::_Client::svn_client_revert4", _wrap_svn_client_revert4},
{"SVN::_Client::svn_client_revert3", _wrap_svn_client_revert3},
{"SVN::_Client::svn_client_revert2", _wrap_svn_client_revert2},
{"SVN::_Client::svn_client_revert", _wrap_svn_client_revert},
{"SVN::_Client::svn_client_conflict_option_set_merged_propval", _wrap_svn_client_conflict_option_set_merged_propval},
+{"SVN::_Client::svn_client_conflict_option_get_moved_to_repos_relpath_candidates2", _wrap_svn_client_conflict_option_get_moved_to_repos_relpath_candidates2},
{"SVN::_Client::svn_client_conflict_option_get_moved_to_repos_relpath_candidates", _wrap_svn_client_conflict_option_get_moved_to_repos_relpath_candidates},
+{"SVN::_Client::svn_client_conflict_option_set_moved_to_repos_relpath2", _wrap_svn_client_conflict_option_set_moved_to_repos_relpath2},
{"SVN::_Client::svn_client_conflict_option_set_moved_to_repos_relpath", _wrap_svn_client_conflict_option_set_moved_to_repos_relpath},
+{"SVN::_Client::svn_client_conflict_option_get_moved_to_abspath_candidates2", _wrap_svn_client_conflict_option_get_moved_to_abspath_candidates2},
{"SVN::_Client::svn_client_conflict_option_get_moved_to_abspath_candidates", _wrap_svn_client_conflict_option_get_moved_to_abspath_candidates},
+{"SVN::_Client::svn_client_conflict_option_set_moved_to_abspath2", _wrap_svn_client_conflict_option_set_moved_to_abspath2},
{"SVN::_Client::svn_client_conflict_option_set_moved_to_abspath", _wrap_svn_client_conflict_option_set_moved_to_abspath},
{"SVN::_Client::svn_client_conflict_option_find_by_id", _wrap_svn_client_conflict_option_find_by_id},
{"SVN::_Client::svn_client_conflict_get", _wrap_svn_client_conflict_get},
@@ -41474,23 +44463,57 @@ static swig_command_info swig_commands[] = {
{"SVN::_Client::svn_client_cat3", _wrap_svn_client_cat3},
{"SVN::_Client::svn_client_cat2", _wrap_svn_client_cat2},
{"SVN::_Client::svn_client_cat", _wrap_svn_client_cat},
-{"SVN::_Client::svn_client_shelve", _wrap_svn_client_shelve},
-{"SVN::_Client::svn_client_unshelve", _wrap_svn_client_unshelve},
-{"SVN::_Client::svn_client_shelves_delete", _wrap_svn_client_shelves_delete},
-{"SVN::_Client::svn_client_shelved_patch_info_t_message_set", _wrap_svn_client_shelved_patch_info_t_message_set},
-{"SVN::_Client::svn_client_shelved_patch_info_t_message_get", _wrap_svn_client_shelved_patch_info_t_message_get},
-{"SVN::_Client::svn_client_shelved_patch_info_t_patch_path_set", _wrap_svn_client_shelved_patch_info_t_patch_path_set},
-{"SVN::_Client::svn_client_shelved_patch_info_t_patch_path_get", _wrap_svn_client_shelved_patch_info_t_patch_path_get},
-{"SVN::_Client::svn_client_shelved_patch_info_t_dirent_set", _wrap_svn_client_shelved_patch_info_t_dirent_set},
-{"SVN::_Client::svn_client_shelved_patch_info_t_dirent_get", _wrap_svn_client_shelved_patch_info_t_dirent_get},
-{"SVN::_Client::svn_client_shelved_patch_info_t_mtime_set", _wrap_svn_client_shelved_patch_info_t_mtime_set},
-{"SVN::_Client::svn_client_shelved_patch_info_t_mtime_get", _wrap_svn_client_shelved_patch_info_t_mtime_get},
-{"SVN::_Client::new_svn_client_shelved_patch_info_t", _wrap_new_svn_client_shelved_patch_info_t},
-{"SVN::_Client::delete_svn_client_shelved_patch_info_t", _wrap_delete_svn_client_shelved_patch_info_t},
-{"SVN::_Client::svn_client_shelves_list", _wrap_svn_client_shelves_list},
-{"SVN::_Client::svn_client_shelves_any", _wrap_svn_client_shelves_any},
-{"SVN::_Client::svn_client_shelf_get_paths", _wrap_svn_client_shelf_get_paths},
-{"SVN::_Client::svn_client_shelf_has_changes", _wrap_svn_client_shelf_has_changes},
+{"SVN::_Client::svn_client__shelf_t_name_set", _wrap_svn_client__shelf_t_name_set},
+{"SVN::_Client::svn_client__shelf_t_name_get", _wrap_svn_client__shelf_t_name_get},
+{"SVN::_Client::svn_client__shelf_t_max_version_set", _wrap_svn_client__shelf_t_max_version_set},
+{"SVN::_Client::svn_client__shelf_t_max_version_get", _wrap_svn_client__shelf_t_max_version_get},
+{"SVN::_Client::svn_client__shelf_t_wc_root_abspath_set", _wrap_svn_client__shelf_t_wc_root_abspath_set},
+{"SVN::_Client::svn_client__shelf_t_wc_root_abspath_get", _wrap_svn_client__shelf_t_wc_root_abspath_get},
+{"SVN::_Client::svn_client__shelf_t_shelves_dir_set", _wrap_svn_client__shelf_t_shelves_dir_set},
+{"SVN::_Client::svn_client__shelf_t_shelves_dir_get", _wrap_svn_client__shelf_t_shelves_dir_get},
+{"SVN::_Client::svn_client__shelf_t_revprops_set", _wrap_svn_client__shelf_t_revprops_set},
+{"SVN::_Client::svn_client__shelf_t_revprops_get", _wrap_svn_client__shelf_t_revprops_get},
+{"SVN::_Client::svn_client__shelf_t_ctx_set", _wrap_svn_client__shelf_t_ctx_set},
+{"SVN::_Client::svn_client__shelf_t_ctx_get", _wrap_svn_client__shelf_t_ctx_get},
+{"SVN::_Client::svn_client__shelf_t_pool_set", _wrap_svn_client__shelf_t_pool_set},
+{"SVN::_Client::svn_client__shelf_t_pool_get", _wrap_svn_client__shelf_t_pool_get},
+{"SVN::_Client::new_svn_client__shelf_t", _wrap_new_svn_client__shelf_t},
+{"SVN::_Client::delete_svn_client__shelf_t", _wrap_delete_svn_client__shelf_t},
+{"SVN::_Client::svn_client__shelf_version_t_shelf_set", _wrap_svn_client__shelf_version_t_shelf_set},
+{"SVN::_Client::svn_client__shelf_version_t_shelf_get", _wrap_svn_client__shelf_version_t_shelf_get},
+{"SVN::_Client::svn_client__shelf_version_t_mtime_set", _wrap_svn_client__shelf_version_t_mtime_set},
+{"SVN::_Client::svn_client__shelf_version_t_mtime_get", _wrap_svn_client__shelf_version_t_mtime_get},
+{"SVN::_Client::svn_client__shelf_version_t_files_dir_abspath_set", _wrap_svn_client__shelf_version_t_files_dir_abspath_set},
+{"SVN::_Client::svn_client__shelf_version_t_files_dir_abspath_get", _wrap_svn_client__shelf_version_t_files_dir_abspath_get},
+{"SVN::_Client::svn_client__shelf_version_t_version_number_set", _wrap_svn_client__shelf_version_t_version_number_set},
+{"SVN::_Client::svn_client__shelf_version_t_version_number_get", _wrap_svn_client__shelf_version_t_version_number_get},
+{"SVN::_Client::new_svn_client__shelf_version_t", _wrap_new_svn_client__shelf_version_t},
+{"SVN::_Client::delete_svn_client__shelf_version_t", _wrap_delete_svn_client__shelf_version_t},
+{"SVN::_Client::svn_client__shelf_open_or_create", _wrap_svn_client__shelf_open_or_create},
+{"SVN::_Client::svn_client__shelf_open_existing", _wrap_svn_client__shelf_open_existing},
+{"SVN::_Client::svn_client__shelf_close", _wrap_svn_client__shelf_close},
+{"SVN::_Client::svn_client__shelf_delete", _wrap_svn_client__shelf_delete},
+{"SVN::_Client::svn_client__shelf_save_new_version3", _wrap_svn_client__shelf_save_new_version3},
+{"SVN::_Client::svn_client__shelf_delete_newer_versions", _wrap_svn_client__shelf_delete_newer_versions},
+{"SVN::_Client::svn_client__shelf_version_open", _wrap_svn_client__shelf_version_open},
+{"SVN::_Client::svn_client__shelf_get_newest_version", _wrap_svn_client__shelf_get_newest_version},
+{"SVN::_Client::svn_client__shelf_get_all_versions", _wrap_svn_client__shelf_get_all_versions},
+{"SVN::_Client::svn_client__shelf_apply", _wrap_svn_client__shelf_apply},
+{"SVN::_Client::svn_client__shelf_test_apply_file", _wrap_svn_client__shelf_test_apply_file},
+{"SVN::_Client::svn_client__shelf_unapply", _wrap_svn_client__shelf_unapply},
+{"SVN::_Client::svn_client__shelf_paths_changed", _wrap_svn_client__shelf_paths_changed},
+{"SVN::_Client::svn_client__shelf_revprop_set", _wrap_svn_client__shelf_revprop_set},
+{"SVN::_Client::svn_client__shelf_revprop_set_all", _wrap_svn_client__shelf_revprop_set_all},
+{"SVN::_Client::svn_client__shelf_revprop_get", _wrap_svn_client__shelf_revprop_get},
+{"SVN::_Client::svn_client__shelf_revprop_list", _wrap_svn_client__shelf_revprop_list},
+{"SVN::_Client::svn_client__shelf_set_log_message", _wrap_svn_client__shelf_set_log_message},
+{"SVN::_Client::svn_client__shelf_get_log_message", _wrap_svn_client__shelf_get_log_message},
+{"SVN::_Client::svn_client__shelf_info_t_mtime_set", _wrap_svn_client__shelf_info_t_mtime_set},
+{"SVN::_Client::svn_client__shelf_info_t_mtime_get", _wrap_svn_client__shelf_info_t_mtime_get},
+{"SVN::_Client::new_svn_client__shelf_info_t", _wrap_new_svn_client__shelf_info_t},
+{"SVN::_Client::delete_svn_client__shelf_info_t", _wrap_delete_svn_client__shelf_info_t},
+{"SVN::_Client::svn_client__shelf_list", _wrap_svn_client__shelf_list},
+{"SVN::_Client::svn_client__shelf_version_status_walk", _wrap_svn_client__shelf_version_status_walk},
{"SVN::_Client::svn_client_add_to_changelist", _wrap_svn_client_add_to_changelist},
{"SVN::_Client::svn_client_remove_from_changelists", _wrap_svn_client_remove_from_changelists},
{"SVN::_Client::svn_client_get_changelists", _wrap_svn_client_get_changelists},
@@ -41603,6 +44626,7 @@ static swig_command_info swig_commands[] = {
{"SVN::_Client::svn_client_invoke_blame_receiver2", _wrap_svn_client_invoke_blame_receiver2},
{"SVN::_Client::svn_client_invoke_blame_receiver", _wrap_svn_client_invoke_blame_receiver},
{"SVN::_Client::svn_client_invoke_diff_summarize_func", _wrap_svn_client_invoke_diff_summarize_func},
+{"SVN::_Client::svn_client_invoke__layout_func", _wrap_svn_client_invoke__layout_func},
{"SVN::_Client::svn_client_invoke_import_filter_func", _wrap_svn_client_invoke_import_filter_func},
{"SVN::_Client::svn_client_invoke_status_func", _wrap_svn_client_invoke_status_func},
{"SVN::_Client::svn_client_invoke_conflict_walk_func", _wrap_svn_client_invoke_conflict_walk_func},
@@ -42086,6 +45110,21 @@ XS(SWIG_init) {
SvREADONLY_on(sv);
} while(0) /*@SWIG@*/;
/*@SWIG:/opt/svnrm/prefix/share/swig/3.0.12/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+ SV *sv = get_sv((char*) SWIG_prefix "svn_client_conflict_option_local_move_dir_merge", TRUE | 0x2 | GV_ADDMULTI);
+ sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1((int)(svn_client_conflict_option_local_move_dir_merge)));
+ SvREADONLY_on(sv);
+ } while(0) /*@SWIG@*/;
+ /*@SWIG:/opt/svnrm/prefix/share/swig/3.0.12/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+ SV *sv = get_sv((char*) SWIG_prefix "svn_client_conflict_option_sibling_move_file_text_merge", TRUE | 0x2 | GV_ADDMULTI);
+ sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1((int)(svn_client_conflict_option_sibling_move_file_text_merge)));
+ SvREADONLY_on(sv);
+ } while(0) /*@SWIG@*/;
+ /*@SWIG:/opt/svnrm/prefix/share/swig/3.0.12/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+ SV *sv = get_sv((char*) SWIG_prefix "svn_client_conflict_option_sibling_move_dir_merge", TRUE | 0x2 | GV_ADDMULTI);
+ sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1((int)(svn_client_conflict_option_sibling_move_dir_merge)));
+ SvREADONLY_on(sv);
+ } while(0) /*@SWIG@*/;
+ /*@SWIG:/opt/svnrm/prefix/share/swig/3.0.12/perl5/perltypemaps.swg,65,%set_constant@*/ do {
SV *sv = get_sv((char*) SWIG_prefix "SWIG_SVN_INFO_SIZE_UNKNOWN", TRUE | 0x2 | GV_ADDMULTI);
sv_setsv(sv, SWIG_From_unsigned_SS_long SWIG_PERL_CALL_ARGS_1((unsigned long)(-1)));
SvREADONLY_on(sv);
diff --git a/subversion/bindings/swig/perl/native/svn_delta.c b/subversion/bindings/swig/perl/native/svn_delta.c
index d221e36..898cc24 100644
--- a/subversion/bindings/swig/perl/native/svn_delta.c
+++ b/subversion/bindings/swig/perl/native/svn_delta.c
@@ -1593,31 +1593,32 @@ SWIG_Perl_SetModule(swig_module_info *module) {
#define SWIGTYPE_p_svn_opt_revision_t swig_types[81]
#define SWIGTYPE_p_svn_opt_revision_value_t swig_types[82]
#define SWIGTYPE_p_svn_opt_subcommand_desc2_t swig_types[83]
-#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[84]
-#define SWIGTYPE_p_svn_patch_file_t swig_types[85]
-#define SWIGTYPE_p_svn_patch_t swig_types[86]
-#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[87]
-#define SWIGTYPE_p_svn_prop_kind swig_types[88]
-#define SWIGTYPE_p_svn_prop_patch_t swig_types[89]
-#define SWIGTYPE_p_svn_stream_mark_t swig_types[90]
-#define SWIGTYPE_p_svn_stream_t swig_types[91]
-#define SWIGTYPE_p_svn_string_t swig_types[92]
-#define SWIGTYPE_p_svn_stringbuf_t swig_types[93]
-#define SWIGTYPE_p_svn_tristate_t swig_types[94]
-#define SWIGTYPE_p_svn_txdelta_op_t swig_types[95]
-#define SWIGTYPE_p_svn_txdelta_stream_t swig_types[96]
-#define SWIGTYPE_p_svn_txdelta_window_t swig_types[97]
-#define SWIGTYPE_p_svn_version_checklist_t swig_types[98]
-#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[99]
-#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[100]
-#define SWIGTYPE_p_svn_version_extended_t swig_types[101]
-#define SWIGTYPE_p_svn_version_t swig_types[102]
-#define SWIGTYPE_p_svn_wc_external_item2_t swig_types[103]
-#define SWIGTYPE_p_unsigned_char swig_types[104]
-#define SWIGTYPE_p_unsigned_long swig_types[105]
-#define SWIGTYPE_p_void swig_types[106]
-static swig_type_info *swig_types[108];
-static swig_module_info swig_module = {swig_types, 107, 0, 0, 0, 0};
+#define SWIGTYPE_p_svn_opt_subcommand_desc3_t swig_types[84]
+#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[85]
+#define SWIGTYPE_p_svn_patch_file_t swig_types[86]
+#define SWIGTYPE_p_svn_patch_t swig_types[87]
+#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[88]
+#define SWIGTYPE_p_svn_prop_kind swig_types[89]
+#define SWIGTYPE_p_svn_prop_patch_t swig_types[90]
+#define SWIGTYPE_p_svn_stream_mark_t swig_types[91]
+#define SWIGTYPE_p_svn_stream_t swig_types[92]
+#define SWIGTYPE_p_svn_string_t swig_types[93]
+#define SWIGTYPE_p_svn_stringbuf_t swig_types[94]
+#define SWIGTYPE_p_svn_tristate_t swig_types[95]
+#define SWIGTYPE_p_svn_txdelta_op_t swig_types[96]
+#define SWIGTYPE_p_svn_txdelta_stream_t swig_types[97]
+#define SWIGTYPE_p_svn_txdelta_window_t swig_types[98]
+#define SWIGTYPE_p_svn_version_checklist_t swig_types[99]
+#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[100]
+#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[101]
+#define SWIGTYPE_p_svn_version_extended_t swig_types[102]
+#define SWIGTYPE_p_svn_version_t swig_types[103]
+#define SWIGTYPE_p_svn_wc_external_item2_t swig_types[104]
+#define SWIGTYPE_p_unsigned_char swig_types[105]
+#define SWIGTYPE_p_unsigned_long swig_types[106]
+#define SWIGTYPE_p_void swig_types[107]
+static swig_type_info *swig_types[109];
+static swig_module_info swig_module = {swig_types, 108, 0, 0, 0, 0};
#define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
#define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
@@ -8354,6 +8355,7 @@ static swig_type_info _swigt__p_svn_opt_revision_range_t = {"_p_svn_opt_revision
static swig_type_info _swigt__p_svn_opt_revision_t = {"_p_svn_opt_revision_t", "struct svn_opt_revision_t *|svn_opt_revision_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_revision_value_t = {"_p_svn_opt_revision_value_t", "union svn_opt_revision_value_t *|svn_opt_revision_value_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc2_t = {"_p_svn_opt_subcommand_desc2_t", "struct svn_opt_subcommand_desc2_t *|svn_opt_subcommand_desc2_t *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_svn_opt_subcommand_desc3_t = {"_p_svn_opt_subcommand_desc3_t", "struct svn_opt_subcommand_desc3_t *|svn_opt_subcommand_desc3_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc_t = {"_p_svn_opt_subcommand_desc_t", "struct svn_opt_subcommand_desc_t *|svn_opt_subcommand_desc_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_patch_file_t = {"_p_svn_patch_file_t", "struct svn_patch_file_t *|svn_patch_file_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_patch_t = {"_p_svn_patch_t", "struct svn_patch_t *|svn_patch_t *", 0, 0, (void*)0, 0};
@@ -8463,6 +8465,7 @@ static swig_type_info *swig_type_initial[] = {
&_swigt__p_svn_opt_revision_t,
&_swigt__p_svn_opt_revision_value_t,
&_swigt__p_svn_opt_subcommand_desc2_t,
+ &_swigt__p_svn_opt_subcommand_desc3_t,
&_swigt__p_svn_opt_subcommand_desc_t,
&_swigt__p_svn_patch_file_t,
&_swigt__p_svn_patch_t,
@@ -8572,6 +8575,7 @@ static swig_cast_info _swigc__p_svn_opt_revision_range_t[] = { {&_swigt__p_svn_
static swig_cast_info _swigc__p_svn_opt_revision_t[] = { {&_swigt__p_svn_opt_revision_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_revision_value_t[] = { {&_swigt__p_svn_opt_revision_value_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc2_t[] = { {&_swigt__p_svn_opt_subcommand_desc2_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_svn_opt_subcommand_desc3_t[] = { {&_swigt__p_svn_opt_subcommand_desc3_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc_t[] = { {&_swigt__p_svn_opt_subcommand_desc_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_patch_file_t[] = { {&_swigt__p_svn_patch_file_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_patch_t[] = { {&_swigt__p_svn_patch_t, 0, 0, 0},{0, 0, 0, 0}};
@@ -8681,6 +8685,7 @@ static swig_cast_info *swig_cast_initial[] = {
_swigc__p_svn_opt_revision_t,
_swigc__p_svn_opt_revision_value_t,
_swigc__p_svn_opt_subcommand_desc2_t,
+ _swigc__p_svn_opt_subcommand_desc3_t,
_swigc__p_svn_opt_subcommand_desc_t,
_swigc__p_svn_patch_file_t,
_swigc__p_svn_patch_t,
diff --git a/subversion/bindings/swig/perl/native/svn_diff.c b/subversion/bindings/swig/perl/native/svn_diff.c
index 91fafd1..006d753 100644
--- a/subversion/bindings/swig/perl/native/svn_diff.c
+++ b/subversion/bindings/swig/perl/native/svn_diff.c
@@ -1562,26 +1562,27 @@ SWIG_Perl_SetModule(swig_module_info *module) {
#define SWIGTYPE_p_svn_opt_revision_t swig_types[50]
#define SWIGTYPE_p_svn_opt_revision_value_t swig_types[51]
#define SWIGTYPE_p_svn_opt_subcommand_desc2_t swig_types[52]
-#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[53]
-#define SWIGTYPE_p_svn_patch_file_t swig_types[54]
-#define SWIGTYPE_p_svn_patch_t swig_types[55]
-#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[56]
-#define SWIGTYPE_p_svn_prop_kind swig_types[57]
-#define SWIGTYPE_p_svn_prop_patch_t swig_types[58]
-#define SWIGTYPE_p_svn_stream_mark_t swig_types[59]
-#define SWIGTYPE_p_svn_stream_t swig_types[60]
-#define SWIGTYPE_p_svn_string_t swig_types[61]
-#define SWIGTYPE_p_svn_stringbuf_t swig_types[62]
-#define SWIGTYPE_p_svn_tristate_t swig_types[63]
-#define SWIGTYPE_p_svn_version_checklist_t swig_types[64]
-#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[65]
-#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[66]
-#define SWIGTYPE_p_svn_version_extended_t swig_types[67]
-#define SWIGTYPE_p_svn_version_t swig_types[68]
-#define SWIGTYPE_p_svn_wc_external_item2_t swig_types[69]
-#define SWIGTYPE_p_unsigned_long swig_types[70]
-static swig_type_info *swig_types[72];
-static swig_module_info swig_module = {swig_types, 71, 0, 0, 0, 0};
+#define SWIGTYPE_p_svn_opt_subcommand_desc3_t swig_types[53]
+#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[54]
+#define SWIGTYPE_p_svn_patch_file_t swig_types[55]
+#define SWIGTYPE_p_svn_patch_t swig_types[56]
+#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[57]
+#define SWIGTYPE_p_svn_prop_kind swig_types[58]
+#define SWIGTYPE_p_svn_prop_patch_t swig_types[59]
+#define SWIGTYPE_p_svn_stream_mark_t swig_types[60]
+#define SWIGTYPE_p_svn_stream_t swig_types[61]
+#define SWIGTYPE_p_svn_string_t swig_types[62]
+#define SWIGTYPE_p_svn_stringbuf_t swig_types[63]
+#define SWIGTYPE_p_svn_tristate_t swig_types[64]
+#define SWIGTYPE_p_svn_version_checklist_t swig_types[65]
+#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[66]
+#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[67]
+#define SWIGTYPE_p_svn_version_extended_t swig_types[68]
+#define SWIGTYPE_p_svn_version_t swig_types[69]
+#define SWIGTYPE_p_svn_wc_external_item2_t swig_types[70]
+#define SWIGTYPE_p_unsigned_long swig_types[71]
+static swig_type_info *swig_types[73];
+static swig_module_info swig_module = {swig_types, 72, 0, 0, 0, 0};
#define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
#define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
@@ -1705,6 +1706,7 @@ static swig_type_info _swigt__p_svn_opt_revision_range_t = {"_p_svn_opt_revision
static swig_type_info _swigt__p_svn_opt_revision_t = {"_p_svn_opt_revision_t", "struct svn_opt_revision_t *|svn_opt_revision_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_revision_value_t = {"_p_svn_opt_revision_value_t", "union svn_opt_revision_value_t *|svn_opt_revision_value_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc2_t = {"_p_svn_opt_subcommand_desc2_t", "struct svn_opt_subcommand_desc2_t *|svn_opt_subcommand_desc2_t *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_svn_opt_subcommand_desc3_t = {"_p_svn_opt_subcommand_desc3_t", "struct svn_opt_subcommand_desc3_t *|svn_opt_subcommand_desc3_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc_t = {"_p_svn_opt_subcommand_desc_t", "struct svn_opt_subcommand_desc_t *|svn_opt_subcommand_desc_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_patch_file_t = {"_p_svn_patch_file_t", "struct svn_patch_file_t *|svn_patch_file_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_patch_t = {"_p_svn_patch_t", "struct svn_patch_t *|svn_patch_t *", 0, 0, (void*)0, 0};
@@ -1778,6 +1780,7 @@ static swig_type_info *swig_type_initial[] = {
&_swigt__p_svn_opt_revision_t,
&_swigt__p_svn_opt_revision_value_t,
&_swigt__p_svn_opt_subcommand_desc2_t,
+ &_swigt__p_svn_opt_subcommand_desc3_t,
&_swigt__p_svn_opt_subcommand_desc_t,
&_swigt__p_svn_patch_file_t,
&_swigt__p_svn_patch_t,
@@ -1851,6 +1854,7 @@ static swig_cast_info _swigc__p_svn_opt_revision_range_t[] = { {&_swigt__p_svn_
static swig_cast_info _swigc__p_svn_opt_revision_t[] = { {&_swigt__p_svn_opt_revision_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_revision_value_t[] = { {&_swigt__p_svn_opt_revision_value_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc2_t[] = { {&_swigt__p_svn_opt_subcommand_desc2_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_svn_opt_subcommand_desc3_t[] = { {&_swigt__p_svn_opt_subcommand_desc3_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc_t[] = { {&_swigt__p_svn_opt_subcommand_desc_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_patch_file_t[] = { {&_swigt__p_svn_patch_file_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_patch_t[] = { {&_swigt__p_svn_patch_t, 0, 0, 0},{0, 0, 0, 0}};
@@ -1924,6 +1928,7 @@ static swig_cast_info *swig_cast_initial[] = {
_swigc__p_svn_opt_revision_t,
_swigc__p_svn_opt_revision_value_t,
_swigc__p_svn_opt_subcommand_desc2_t,
+ _swigc__p_svn_opt_subcommand_desc3_t,
_swigc__p_svn_opt_subcommand_desc_t,
_swigc__p_svn_patch_file_t,
_swigc__p_svn_patch_t,
diff --git a/subversion/bindings/swig/perl/native/svn_fs.c b/subversion/bindings/swig/perl/native/svn_fs.c
index 7c612a9..e541306 100644
--- a/subversion/bindings/swig/perl/native/svn_fs.c
+++ b/subversion/bindings/swig/perl/native/svn_fs.c
@@ -1616,31 +1616,32 @@ SWIG_Perl_SetModule(swig_module_info *module) {
#define SWIGTYPE_p_svn_opt_revision_t swig_types[104]
#define SWIGTYPE_p_svn_opt_revision_value_t swig_types[105]
#define SWIGTYPE_p_svn_opt_subcommand_desc2_t swig_types[106]
-#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[107]
-#define SWIGTYPE_p_svn_patch_file_t swig_types[108]
-#define SWIGTYPE_p_svn_patch_t swig_types[109]
-#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[110]
-#define SWIGTYPE_p_svn_prop_kind swig_types[111]
-#define SWIGTYPE_p_svn_prop_patch_t swig_types[112]
-#define SWIGTYPE_p_svn_stream_mark_t swig_types[113]
-#define SWIGTYPE_p_svn_stream_t swig_types[114]
-#define SWIGTYPE_p_svn_string_t swig_types[115]
-#define SWIGTYPE_p_svn_stringbuf_t swig_types[116]
-#define SWIGTYPE_p_svn_tristate_t swig_types[117]
-#define SWIGTYPE_p_svn_txdelta_op_t swig_types[118]
-#define SWIGTYPE_p_svn_txdelta_stream_t swig_types[119]
-#define SWIGTYPE_p_svn_txdelta_window_t swig_types[120]
-#define SWIGTYPE_p_svn_version_checklist_t swig_types[121]
-#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[122]
-#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[123]
-#define SWIGTYPE_p_svn_version_extended_t swig_types[124]
-#define SWIGTYPE_p_svn_version_t swig_types[125]
-#define SWIGTYPE_p_svn_wc_external_item2_t swig_types[126]
-#define SWIGTYPE_p_unsigned_char swig_types[127]
-#define SWIGTYPE_p_unsigned_long swig_types[128]
-#define SWIGTYPE_p_void swig_types[129]
-static swig_type_info *swig_types[131];
-static swig_module_info swig_module = {swig_types, 130, 0, 0, 0, 0};
+#define SWIGTYPE_p_svn_opt_subcommand_desc3_t swig_types[107]
+#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[108]
+#define SWIGTYPE_p_svn_patch_file_t swig_types[109]
+#define SWIGTYPE_p_svn_patch_t swig_types[110]
+#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[111]
+#define SWIGTYPE_p_svn_prop_kind swig_types[112]
+#define SWIGTYPE_p_svn_prop_patch_t swig_types[113]
+#define SWIGTYPE_p_svn_stream_mark_t swig_types[114]
+#define SWIGTYPE_p_svn_stream_t swig_types[115]
+#define SWIGTYPE_p_svn_string_t swig_types[116]
+#define SWIGTYPE_p_svn_stringbuf_t swig_types[117]
+#define SWIGTYPE_p_svn_tristate_t swig_types[118]
+#define SWIGTYPE_p_svn_txdelta_op_t swig_types[119]
+#define SWIGTYPE_p_svn_txdelta_stream_t swig_types[120]
+#define SWIGTYPE_p_svn_txdelta_window_t swig_types[121]
+#define SWIGTYPE_p_svn_version_checklist_t swig_types[122]
+#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[123]
+#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[124]
+#define SWIGTYPE_p_svn_version_extended_t swig_types[125]
+#define SWIGTYPE_p_svn_version_t swig_types[126]
+#define SWIGTYPE_p_svn_wc_external_item2_t swig_types[127]
+#define SWIGTYPE_p_unsigned_char swig_types[128]
+#define SWIGTYPE_p_unsigned_long swig_types[129]
+#define SWIGTYPE_p_void swig_types[130]
+static swig_type_info *swig_types[132];
+static swig_module_info swig_module = {swig_types, 131, 0, 0, 0, 0};
#define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
#define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
@@ -15674,6 +15675,7 @@ static swig_type_info _swigt__p_svn_opt_revision_range_t = {"_p_svn_opt_revision
static swig_type_info _swigt__p_svn_opt_revision_t = {"_p_svn_opt_revision_t", "struct svn_opt_revision_t *|svn_opt_revision_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_revision_value_t = {"_p_svn_opt_revision_value_t", "union svn_opt_revision_value_t *|svn_opt_revision_value_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc2_t = {"_p_svn_opt_subcommand_desc2_t", "struct svn_opt_subcommand_desc2_t *|svn_opt_subcommand_desc2_t *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_svn_opt_subcommand_desc3_t = {"_p_svn_opt_subcommand_desc3_t", "struct svn_opt_subcommand_desc3_t *|svn_opt_subcommand_desc3_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc_t = {"_p_svn_opt_subcommand_desc_t", "struct svn_opt_subcommand_desc_t *|svn_opt_subcommand_desc_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_patch_file_t = {"_p_svn_patch_file_t", "struct svn_patch_file_t *|svn_patch_file_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_patch_t = {"_p_svn_patch_t", "struct svn_patch_t *|svn_patch_t *", 0, 0, (void*)0, 0};
@@ -15806,6 +15808,7 @@ static swig_type_info *swig_type_initial[] = {
&_swigt__p_svn_opt_revision_t,
&_swigt__p_svn_opt_revision_value_t,
&_swigt__p_svn_opt_subcommand_desc2_t,
+ &_swigt__p_svn_opt_subcommand_desc3_t,
&_swigt__p_svn_opt_subcommand_desc_t,
&_swigt__p_svn_patch_file_t,
&_swigt__p_svn_patch_t,
@@ -15938,6 +15941,7 @@ static swig_cast_info _swigc__p_svn_opt_revision_range_t[] = { {&_swigt__p_svn_
static swig_cast_info _swigc__p_svn_opt_revision_t[] = { {&_swigt__p_svn_opt_revision_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_revision_value_t[] = { {&_swigt__p_svn_opt_revision_value_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc2_t[] = { {&_swigt__p_svn_opt_subcommand_desc2_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_svn_opt_subcommand_desc3_t[] = { {&_swigt__p_svn_opt_subcommand_desc3_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc_t[] = { {&_swigt__p_svn_opt_subcommand_desc_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_patch_file_t[] = { {&_swigt__p_svn_patch_file_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_patch_t[] = { {&_swigt__p_svn_patch_t, 0, 0, 0},{0, 0, 0, 0}};
@@ -16070,6 +16074,7 @@ static swig_cast_info *swig_cast_initial[] = {
_swigc__p_svn_opt_revision_t,
_swigc__p_svn_opt_revision_value_t,
_swigc__p_svn_opt_subcommand_desc2_t,
+ _swigc__p_svn_opt_subcommand_desc3_t,
_swigc__p_svn_opt_subcommand_desc_t,
_swigc__p_svn_patch_file_t,
_swigc__p_svn_patch_t,
diff --git a/subversion/bindings/swig/perl/native/svn_ra.c b/subversion/bindings/swig/perl/native/svn_ra.c
index 26fa3d0..180ffa4 100644
--- a/subversion/bindings/swig/perl/native/svn_ra.c
+++ b/subversion/bindings/swig/perl/native/svn_ra.c
@@ -1636,37 +1636,38 @@ SWIG_Perl_SetModule(swig_module_info *module) {
#define SWIGTYPE_p_svn_opt_revision_t swig_types[124]
#define SWIGTYPE_p_svn_opt_revision_value_t swig_types[125]
#define SWIGTYPE_p_svn_opt_subcommand_desc2_t swig_types[126]
-#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[127]
-#define SWIGTYPE_p_svn_patch_file_t swig_types[128]
-#define SWIGTYPE_p_svn_patch_t swig_types[129]
-#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[130]
-#define SWIGTYPE_p_svn_prop_kind swig_types[131]
-#define SWIGTYPE_p_svn_prop_patch_t swig_types[132]
-#define SWIGTYPE_p_svn_ra_callbacks2_t swig_types[133]
-#define SWIGTYPE_p_svn_ra_callbacks_t swig_types[134]
-#define SWIGTYPE_p_svn_ra_plugin_t swig_types[135]
-#define SWIGTYPE_p_svn_ra_reporter2_t swig_types[136]
-#define SWIGTYPE_p_svn_ra_reporter3_t swig_types[137]
-#define SWIGTYPE_p_svn_ra_reporter_t swig_types[138]
-#define SWIGTYPE_p_svn_ra_session_t swig_types[139]
-#define SWIGTYPE_p_svn_stream_mark_t swig_types[140]
-#define SWIGTYPE_p_svn_stream_t swig_types[141]
-#define SWIGTYPE_p_svn_string_t swig_types[142]
-#define SWIGTYPE_p_svn_stringbuf_t swig_types[143]
-#define SWIGTYPE_p_svn_tristate_t swig_types[144]
-#define SWIGTYPE_p_svn_txdelta_op_t swig_types[145]
-#define SWIGTYPE_p_svn_txdelta_stream_t swig_types[146]
-#define SWIGTYPE_p_svn_txdelta_window_t swig_types[147]
-#define SWIGTYPE_p_svn_version_checklist_t swig_types[148]
-#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[149]
-#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[150]
-#define SWIGTYPE_p_svn_version_extended_t swig_types[151]
-#define SWIGTYPE_p_svn_version_t swig_types[152]
-#define SWIGTYPE_p_svn_wc_external_item2_t swig_types[153]
-#define SWIGTYPE_p_unsigned_long swig_types[154]
-#define SWIGTYPE_p_void swig_types[155]
-static swig_type_info *swig_types[157];
-static swig_module_info swig_module = {swig_types, 156, 0, 0, 0, 0};
+#define SWIGTYPE_p_svn_opt_subcommand_desc3_t swig_types[127]
+#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[128]
+#define SWIGTYPE_p_svn_patch_file_t swig_types[129]
+#define SWIGTYPE_p_svn_patch_t swig_types[130]
+#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[131]
+#define SWIGTYPE_p_svn_prop_kind swig_types[132]
+#define SWIGTYPE_p_svn_prop_patch_t swig_types[133]
+#define SWIGTYPE_p_svn_ra_callbacks2_t swig_types[134]
+#define SWIGTYPE_p_svn_ra_callbacks_t swig_types[135]
+#define SWIGTYPE_p_svn_ra_plugin_t swig_types[136]
+#define SWIGTYPE_p_svn_ra_reporter2_t swig_types[137]
+#define SWIGTYPE_p_svn_ra_reporter3_t swig_types[138]
+#define SWIGTYPE_p_svn_ra_reporter_t swig_types[139]
+#define SWIGTYPE_p_svn_ra_session_t swig_types[140]
+#define SWIGTYPE_p_svn_stream_mark_t swig_types[141]
+#define SWIGTYPE_p_svn_stream_t swig_types[142]
+#define SWIGTYPE_p_svn_string_t swig_types[143]
+#define SWIGTYPE_p_svn_stringbuf_t swig_types[144]
+#define SWIGTYPE_p_svn_tristate_t swig_types[145]
+#define SWIGTYPE_p_svn_txdelta_op_t swig_types[146]
+#define SWIGTYPE_p_svn_txdelta_stream_t swig_types[147]
+#define SWIGTYPE_p_svn_txdelta_window_t swig_types[148]
+#define SWIGTYPE_p_svn_version_checklist_t swig_types[149]
+#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[150]
+#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[151]
+#define SWIGTYPE_p_svn_version_extended_t swig_types[152]
+#define SWIGTYPE_p_svn_version_t swig_types[153]
+#define SWIGTYPE_p_svn_wc_external_item2_t swig_types[154]
+#define SWIGTYPE_p_unsigned_long swig_types[155]
+#define SWIGTYPE_p_void swig_types[156]
+static swig_type_info *swig_types[158];
+static swig_module_info swig_module = {swig_types, 157, 0, 0, 0, 0};
#define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
#define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
@@ -17694,6 +17695,7 @@ static swig_type_info _swigt__p_svn_opt_revision_range_t = {"_p_svn_opt_revision
static swig_type_info _swigt__p_svn_opt_revision_t = {"_p_svn_opt_revision_t", "struct svn_opt_revision_t *|svn_opt_revision_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_revision_value_t = {"_p_svn_opt_revision_value_t", "union svn_opt_revision_value_t *|svn_opt_revision_value_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc2_t = {"_p_svn_opt_subcommand_desc2_t", "struct svn_opt_subcommand_desc2_t *|svn_opt_subcommand_desc2_t *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_svn_opt_subcommand_desc3_t = {"_p_svn_opt_subcommand_desc3_t", "struct svn_opt_subcommand_desc3_t *|svn_opt_subcommand_desc3_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc_t = {"_p_svn_opt_subcommand_desc_t", "struct svn_opt_subcommand_desc_t *|svn_opt_subcommand_desc_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_patch_file_t = {"_p_svn_patch_file_t", "struct svn_patch_file_t *|svn_patch_file_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_patch_t = {"_p_svn_patch_t", "struct svn_patch_t *|svn_patch_t *", 0, 0, (void*)0, 0};
@@ -17852,6 +17854,7 @@ static swig_type_info *swig_type_initial[] = {
&_swigt__p_svn_opt_revision_t,
&_swigt__p_svn_opt_revision_value_t,
&_swigt__p_svn_opt_subcommand_desc2_t,
+ &_swigt__p_svn_opt_subcommand_desc3_t,
&_swigt__p_svn_opt_subcommand_desc_t,
&_swigt__p_svn_patch_file_t,
&_swigt__p_svn_patch_t,
@@ -18010,6 +18013,7 @@ static swig_cast_info _swigc__p_svn_opt_revision_range_t[] = { {&_swigt__p_svn_
static swig_cast_info _swigc__p_svn_opt_revision_t[] = { {&_swigt__p_svn_opt_revision_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_revision_value_t[] = { {&_swigt__p_svn_opt_revision_value_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc2_t[] = { {&_swigt__p_svn_opt_subcommand_desc2_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_svn_opt_subcommand_desc3_t[] = { {&_swigt__p_svn_opt_subcommand_desc3_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc_t[] = { {&_swigt__p_svn_opt_subcommand_desc_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_patch_file_t[] = { {&_swigt__p_svn_patch_file_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_patch_t[] = { {&_swigt__p_svn_patch_t, 0, 0, 0},{0, 0, 0, 0}};
@@ -18168,6 +18172,7 @@ static swig_cast_info *swig_cast_initial[] = {
_swigc__p_svn_opt_revision_t,
_swigc__p_svn_opt_revision_value_t,
_swigc__p_svn_opt_subcommand_desc2_t,
+ _swigc__p_svn_opt_subcommand_desc3_t,
_swigc__p_svn_opt_subcommand_desc_t,
_swigc__p_svn_patch_file_t,
_swigc__p_svn_patch_t,
diff --git a/subversion/bindings/swig/perl/native/svn_repos.c b/subversion/bindings/swig/perl/native/svn_repos.c
index 4d0d237..5aa7584 100644
--- a/subversion/bindings/swig/perl/native/svn_repos.c
+++ b/subversion/bindings/swig/perl/native/svn_repos.c
@@ -1631,41 +1631,42 @@ SWIG_Perl_SetModule(swig_module_info *module) {
#define SWIGTYPE_p_svn_opt_revision_t swig_types[119]
#define SWIGTYPE_p_svn_opt_revision_value_t swig_types[120]
#define SWIGTYPE_p_svn_opt_subcommand_desc2_t swig_types[121]
-#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[122]
-#define SWIGTYPE_p_svn_patch_file_t swig_types[123]
-#define SWIGTYPE_p_svn_patch_t swig_types[124]
-#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[125]
-#define SWIGTYPE_p_svn_prop_kind swig_types[126]
-#define SWIGTYPE_p_svn_prop_patch_t swig_types[127]
-#define SWIGTYPE_p_svn_repos_authz_access_t swig_types[128]
-#define SWIGTYPE_p_svn_repos_log_entry_t swig_types[129]
-#define SWIGTYPE_p_svn_repos_node_t swig_types[130]
-#define SWIGTYPE_p_svn_repos_notify_action_t swig_types[131]
-#define SWIGTYPE_p_svn_repos_notify_t swig_types[132]
-#define SWIGTYPE_p_svn_repos_notify_warning_t swig_types[133]
-#define SWIGTYPE_p_svn_repos_parse_fns2_t swig_types[134]
-#define SWIGTYPE_p_svn_repos_parse_fns3_t swig_types[135]
-#define SWIGTYPE_p_svn_repos_parse_fns_t swig_types[136]
-#define SWIGTYPE_p_svn_repos_revision_access_level_t swig_types[137]
-#define SWIGTYPE_p_svn_repos_t swig_types[138]
-#define SWIGTYPE_p_svn_stream_mark_t swig_types[139]
-#define SWIGTYPE_p_svn_stream_t swig_types[140]
-#define SWIGTYPE_p_svn_string_t swig_types[141]
-#define SWIGTYPE_p_svn_stringbuf_t swig_types[142]
-#define SWIGTYPE_p_svn_tristate_t swig_types[143]
-#define SWIGTYPE_p_svn_txdelta_op_t swig_types[144]
-#define SWIGTYPE_p_svn_txdelta_stream_t swig_types[145]
-#define SWIGTYPE_p_svn_txdelta_window_t swig_types[146]
-#define SWIGTYPE_p_svn_version_checklist_t swig_types[147]
-#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[148]
-#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[149]
-#define SWIGTYPE_p_svn_version_extended_t swig_types[150]
-#define SWIGTYPE_p_svn_version_t swig_types[151]
-#define SWIGTYPE_p_svn_wc_external_item2_t swig_types[152]
-#define SWIGTYPE_p_unsigned_long swig_types[153]
-#define SWIGTYPE_p_void swig_types[154]
-static swig_type_info *swig_types[156];
-static swig_module_info swig_module = {swig_types, 155, 0, 0, 0, 0};
+#define SWIGTYPE_p_svn_opt_subcommand_desc3_t swig_types[122]
+#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[123]
+#define SWIGTYPE_p_svn_patch_file_t swig_types[124]
+#define SWIGTYPE_p_svn_patch_t swig_types[125]
+#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[126]
+#define SWIGTYPE_p_svn_prop_kind swig_types[127]
+#define SWIGTYPE_p_svn_prop_patch_t swig_types[128]
+#define SWIGTYPE_p_svn_repos_authz_access_t swig_types[129]
+#define SWIGTYPE_p_svn_repos_log_entry_t swig_types[130]
+#define SWIGTYPE_p_svn_repos_node_t swig_types[131]
+#define SWIGTYPE_p_svn_repos_notify_action_t swig_types[132]
+#define SWIGTYPE_p_svn_repos_notify_t swig_types[133]
+#define SWIGTYPE_p_svn_repos_notify_warning_t swig_types[134]
+#define SWIGTYPE_p_svn_repos_parse_fns2_t swig_types[135]
+#define SWIGTYPE_p_svn_repos_parse_fns3_t swig_types[136]
+#define SWIGTYPE_p_svn_repos_parse_fns_t swig_types[137]
+#define SWIGTYPE_p_svn_repos_revision_access_level_t swig_types[138]
+#define SWIGTYPE_p_svn_repos_t swig_types[139]
+#define SWIGTYPE_p_svn_stream_mark_t swig_types[140]
+#define SWIGTYPE_p_svn_stream_t swig_types[141]
+#define SWIGTYPE_p_svn_string_t swig_types[142]
+#define SWIGTYPE_p_svn_stringbuf_t swig_types[143]
+#define SWIGTYPE_p_svn_tristate_t swig_types[144]
+#define SWIGTYPE_p_svn_txdelta_op_t swig_types[145]
+#define SWIGTYPE_p_svn_txdelta_stream_t swig_types[146]
+#define SWIGTYPE_p_svn_txdelta_window_t swig_types[147]
+#define SWIGTYPE_p_svn_version_checklist_t swig_types[148]
+#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[149]
+#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[150]
+#define SWIGTYPE_p_svn_version_extended_t swig_types[151]
+#define SWIGTYPE_p_svn_version_t swig_types[152]
+#define SWIGTYPE_p_svn_wc_external_item2_t swig_types[153]
+#define SWIGTYPE_p_unsigned_long swig_types[154]
+#define SWIGTYPE_p_void swig_types[155]
+static swig_type_info *swig_types[157];
+static swig_module_info swig_module = {swig_types, 156, 0, 0, 0, 0};
#define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
#define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
@@ -4884,7 +4885,7 @@ XS(_wrap_svn_repos_freeze) {
}
{
- result = (svn_error_t *)svn_repos_freeze(arg1,arg2,arg3,arg4);
+ result = (svn_error_t *)svn_repos_freeze((apr_array_header_t const *)arg1,arg2,arg3,arg4);
@@ -22523,6 +22524,7 @@ static swig_type_info _swigt__p_svn_opt_revision_range_t = {"_p_svn_opt_revision
static swig_type_info _swigt__p_svn_opt_revision_t = {"_p_svn_opt_revision_t", "struct svn_opt_revision_t *|svn_opt_revision_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_revision_value_t = {"_p_svn_opt_revision_value_t", "union svn_opt_revision_value_t *|svn_opt_revision_value_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc2_t = {"_p_svn_opt_subcommand_desc2_t", "struct svn_opt_subcommand_desc2_t *|svn_opt_subcommand_desc2_t *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_svn_opt_subcommand_desc3_t = {"_p_svn_opt_subcommand_desc3_t", "struct svn_opt_subcommand_desc3_t *|svn_opt_subcommand_desc3_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc_t = {"_p_svn_opt_subcommand_desc_t", "struct svn_opt_subcommand_desc_t *|svn_opt_subcommand_desc_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_patch_file_t = {"_p_svn_patch_file_t", "struct svn_patch_file_t *|svn_patch_file_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_patch_t = {"_p_svn_patch_t", "struct svn_patch_t *|svn_patch_t *", 0, 0, (void*)0, 0};
@@ -22680,6 +22682,7 @@ static swig_type_info *swig_type_initial[] = {
&_swigt__p_svn_opt_revision_t,
&_swigt__p_svn_opt_revision_value_t,
&_swigt__p_svn_opt_subcommand_desc2_t,
+ &_swigt__p_svn_opt_subcommand_desc3_t,
&_swigt__p_svn_opt_subcommand_desc_t,
&_swigt__p_svn_patch_file_t,
&_swigt__p_svn_patch_t,
@@ -22837,6 +22840,7 @@ static swig_cast_info _swigc__p_svn_opt_revision_range_t[] = { {&_swigt__p_svn_
static swig_cast_info _swigc__p_svn_opt_revision_t[] = { {&_swigt__p_svn_opt_revision_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_revision_value_t[] = { {&_swigt__p_svn_opt_revision_value_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc2_t[] = { {&_swigt__p_svn_opt_subcommand_desc2_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_svn_opt_subcommand_desc3_t[] = { {&_swigt__p_svn_opt_subcommand_desc3_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc_t[] = { {&_swigt__p_svn_opt_subcommand_desc_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_patch_file_t[] = { {&_swigt__p_svn_patch_file_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_patch_t[] = { {&_swigt__p_svn_patch_t, 0, 0, 0},{0, 0, 0, 0}};
@@ -22994,6 +22998,7 @@ static swig_cast_info *swig_cast_initial[] = {
_swigc__p_svn_opt_revision_t,
_swigc__p_svn_opt_revision_value_t,
_swigc__p_svn_opt_subcommand_desc2_t,
+ _swigc__p_svn_opt_subcommand_desc3_t,
_swigc__p_svn_opt_subcommand_desc_t,
_swigc__p_svn_patch_file_t,
_swigc__p_svn_patch_t,
diff --git a/subversion/bindings/swig/perl/native/svn_wc.c b/subversion/bindings/swig/perl/native/svn_wc.c
index c71f327..c3adb8b 100644
--- a/subversion/bindings/swig/perl/native/svn_wc.c
+++ b/subversion/bindings/swig/perl/native/svn_wc.c
@@ -1628,70 +1628,71 @@ SWIG_Perl_SetModule(swig_module_info *module) {
#define SWIGTYPE_p_svn_opt_revision_t swig_types[116]
#define SWIGTYPE_p_svn_opt_revision_value_t swig_types[117]
#define SWIGTYPE_p_svn_opt_subcommand_desc2_t swig_types[118]
-#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[119]
-#define SWIGTYPE_p_svn_patch_file_t swig_types[120]
-#define SWIGTYPE_p_svn_patch_t swig_types[121]
-#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[122]
-#define SWIGTYPE_p_svn_prop_kind swig_types[123]
-#define SWIGTYPE_p_svn_prop_patch_t swig_types[124]
-#define SWIGTYPE_p_svn_ra_callbacks2_t swig_types[125]
-#define SWIGTYPE_p_svn_ra_callbacks_t swig_types[126]
-#define SWIGTYPE_p_svn_ra_plugin_t swig_types[127]
-#define SWIGTYPE_p_svn_ra_reporter2_t swig_types[128]
-#define SWIGTYPE_p_svn_ra_reporter3_t swig_types[129]
-#define SWIGTYPE_p_svn_ra_reporter_t swig_types[130]
-#define SWIGTYPE_p_svn_ra_session_t swig_types[131]
-#define SWIGTYPE_p_svn_stream_mark_t swig_types[132]
-#define SWIGTYPE_p_svn_stream_t swig_types[133]
-#define SWIGTYPE_p_svn_string_t swig_types[134]
-#define SWIGTYPE_p_svn_stringbuf_t swig_types[135]
-#define SWIGTYPE_p_svn_tristate_t swig_types[136]
-#define SWIGTYPE_p_svn_txdelta_op_t swig_types[137]
-#define SWIGTYPE_p_svn_txdelta_stream_t swig_types[138]
-#define SWIGTYPE_p_svn_txdelta_window_t swig_types[139]
-#define SWIGTYPE_p_svn_version_checklist_t swig_types[140]
-#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[141]
-#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[142]
-#define SWIGTYPE_p_svn_version_extended_t swig_types[143]
-#define SWIGTYPE_p_svn_version_t swig_types[144]
-#define SWIGTYPE_p_svn_wc_adm_access_t swig_types[145]
-#define SWIGTYPE_p_svn_wc_committed_queue_t swig_types[146]
-#define SWIGTYPE_p_svn_wc_conflict_action_t swig_types[147]
-#define SWIGTYPE_p_svn_wc_conflict_choice_t swig_types[148]
-#define SWIGTYPE_p_svn_wc_conflict_description2_t swig_types[149]
-#define SWIGTYPE_p_svn_wc_conflict_description_t swig_types[150]
-#define SWIGTYPE_p_svn_wc_conflict_kind_t swig_types[151]
-#define SWIGTYPE_p_svn_wc_conflict_reason_t swig_types[152]
-#define SWIGTYPE_p_svn_wc_conflict_result_t swig_types[153]
-#define SWIGTYPE_p_svn_wc_conflict_version_t swig_types[154]
-#define SWIGTYPE_p_svn_wc_context_t swig_types[155]
-#define SWIGTYPE_p_svn_wc_diff_callbacks2_t swig_types[156]
-#define SWIGTYPE_p_svn_wc_diff_callbacks3_t swig_types[157]
-#define SWIGTYPE_p_svn_wc_diff_callbacks4_t swig_types[158]
-#define SWIGTYPE_p_svn_wc_diff_callbacks_t swig_types[159]
-#define SWIGTYPE_p_svn_wc_entry_callbacks2_t swig_types[160]
-#define SWIGTYPE_p_svn_wc_entry_callbacks_t swig_types[161]
-#define SWIGTYPE_p_svn_wc_entry_t swig_types[162]
-#define SWIGTYPE_p_svn_wc_external_item2_t swig_types[163]
-#define SWIGTYPE_p_svn_wc_external_item_t swig_types[164]
-#define SWIGTYPE_p_svn_wc_info_t swig_types[165]
-#define SWIGTYPE_p_svn_wc_merge_outcome_t swig_types[166]
-#define SWIGTYPE_p_svn_wc_notify_action_t swig_types[167]
-#define SWIGTYPE_p_svn_wc_notify_lock_state_t swig_types[168]
-#define SWIGTYPE_p_svn_wc_notify_state_t swig_types[169]
-#define SWIGTYPE_p_svn_wc_notify_t swig_types[170]
-#define SWIGTYPE_p_svn_wc_operation_t swig_types[171]
-#define SWIGTYPE_p_svn_wc_revision_status_t swig_types[172]
-#define SWIGTYPE_p_svn_wc_schedule_t swig_types[173]
-#define SWIGTYPE_p_svn_wc_status2_t swig_types[174]
-#define SWIGTYPE_p_svn_wc_status3_t swig_types[175]
-#define SWIGTYPE_p_svn_wc_status_t swig_types[176]
-#define SWIGTYPE_p_svn_wc_traversal_info_t swig_types[177]
-#define SWIGTYPE_p_unsigned_char swig_types[178]
-#define SWIGTYPE_p_unsigned_long swig_types[179]
-#define SWIGTYPE_p_void swig_types[180]
-static swig_type_info *swig_types[182];
-static swig_module_info swig_module = {swig_types, 181, 0, 0, 0, 0};
+#define SWIGTYPE_p_svn_opt_subcommand_desc3_t swig_types[119]
+#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[120]
+#define SWIGTYPE_p_svn_patch_file_t swig_types[121]
+#define SWIGTYPE_p_svn_patch_t swig_types[122]
+#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[123]
+#define SWIGTYPE_p_svn_prop_kind swig_types[124]
+#define SWIGTYPE_p_svn_prop_patch_t swig_types[125]
+#define SWIGTYPE_p_svn_ra_callbacks2_t swig_types[126]
+#define SWIGTYPE_p_svn_ra_callbacks_t swig_types[127]
+#define SWIGTYPE_p_svn_ra_plugin_t swig_types[128]
+#define SWIGTYPE_p_svn_ra_reporter2_t swig_types[129]
+#define SWIGTYPE_p_svn_ra_reporter3_t swig_types[130]
+#define SWIGTYPE_p_svn_ra_reporter_t swig_types[131]
+#define SWIGTYPE_p_svn_ra_session_t swig_types[132]
+#define SWIGTYPE_p_svn_stream_mark_t swig_types[133]
+#define SWIGTYPE_p_svn_stream_t swig_types[134]
+#define SWIGTYPE_p_svn_string_t swig_types[135]
+#define SWIGTYPE_p_svn_stringbuf_t swig_types[136]
+#define SWIGTYPE_p_svn_tristate_t swig_types[137]
+#define SWIGTYPE_p_svn_txdelta_op_t swig_types[138]
+#define SWIGTYPE_p_svn_txdelta_stream_t swig_types[139]
+#define SWIGTYPE_p_svn_txdelta_window_t swig_types[140]
+#define SWIGTYPE_p_svn_version_checklist_t swig_types[141]
+#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[142]
+#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[143]
+#define SWIGTYPE_p_svn_version_extended_t swig_types[144]
+#define SWIGTYPE_p_svn_version_t swig_types[145]
+#define SWIGTYPE_p_svn_wc_adm_access_t swig_types[146]
+#define SWIGTYPE_p_svn_wc_committed_queue_t swig_types[147]
+#define SWIGTYPE_p_svn_wc_conflict_action_t swig_types[148]
+#define SWIGTYPE_p_svn_wc_conflict_choice_t swig_types[149]
+#define SWIGTYPE_p_svn_wc_conflict_description2_t swig_types[150]
+#define SWIGTYPE_p_svn_wc_conflict_description_t swig_types[151]
+#define SWIGTYPE_p_svn_wc_conflict_kind_t swig_types[152]
+#define SWIGTYPE_p_svn_wc_conflict_reason_t swig_types[153]
+#define SWIGTYPE_p_svn_wc_conflict_result_t swig_types[154]
+#define SWIGTYPE_p_svn_wc_conflict_version_t swig_types[155]
+#define SWIGTYPE_p_svn_wc_context_t swig_types[156]
+#define SWIGTYPE_p_svn_wc_diff_callbacks2_t swig_types[157]
+#define SWIGTYPE_p_svn_wc_diff_callbacks3_t swig_types[158]
+#define SWIGTYPE_p_svn_wc_diff_callbacks4_t swig_types[159]
+#define SWIGTYPE_p_svn_wc_diff_callbacks_t swig_types[160]
+#define SWIGTYPE_p_svn_wc_entry_callbacks2_t swig_types[161]
+#define SWIGTYPE_p_svn_wc_entry_callbacks_t swig_types[162]
+#define SWIGTYPE_p_svn_wc_entry_t swig_types[163]
+#define SWIGTYPE_p_svn_wc_external_item2_t swig_types[164]
+#define SWIGTYPE_p_svn_wc_external_item_t swig_types[165]
+#define SWIGTYPE_p_svn_wc_info_t swig_types[166]
+#define SWIGTYPE_p_svn_wc_merge_outcome_t swig_types[167]
+#define SWIGTYPE_p_svn_wc_notify_action_t swig_types[168]
+#define SWIGTYPE_p_svn_wc_notify_lock_state_t swig_types[169]
+#define SWIGTYPE_p_svn_wc_notify_state_t swig_types[170]
+#define SWIGTYPE_p_svn_wc_notify_t swig_types[171]
+#define SWIGTYPE_p_svn_wc_operation_t swig_types[172]
+#define SWIGTYPE_p_svn_wc_revision_status_t swig_types[173]
+#define SWIGTYPE_p_svn_wc_schedule_t swig_types[174]
+#define SWIGTYPE_p_svn_wc_status2_t swig_types[175]
+#define SWIGTYPE_p_svn_wc_status3_t swig_types[176]
+#define SWIGTYPE_p_svn_wc_status_t swig_types[177]
+#define SWIGTYPE_p_svn_wc_traversal_info_t swig_types[178]
+#define SWIGTYPE_p_unsigned_char swig_types[179]
+#define SWIGTYPE_p_unsigned_long swig_types[180]
+#define SWIGTYPE_p_void swig_types[181]
+static swig_type_info *swig_types[183];
+static swig_module_info swig_module = {swig_types, 182, 0, 0, 0, 0};
#define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
#define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
@@ -36368,6 +36369,161 @@ XS(_wrap_svn_wc_relocate) {
}
+XS(_wrap_svn_wc_revert6) {
+ {
+ svn_wc_context_t *arg1 = (svn_wc_context_t *) 0 ;
+ char *arg2 = (char *) 0 ;
+ svn_depth_t arg3 ;
+ svn_boolean_t arg4 ;
+ apr_array_header_t *arg5 = (apr_array_header_t *) 0 ;
+ svn_boolean_t arg6 ;
+ svn_boolean_t arg7 ;
+ svn_boolean_t arg8 ;
+ svn_cancel_func_t arg9 = (svn_cancel_func_t) 0 ;
+ void *arg10 = (void *) 0 ;
+ svn_wc_notify_func2_t arg11 = (svn_wc_notify_func2_t) 0 ;
+ void *arg12 = (void *) 0 ;
+ apr_pool_t *arg13 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ int val4 ;
+ int ecode4 = 0 ;
+ void *argp5 = 0 ;
+ int res5 = 0 ;
+ int val6 ;
+ int ecode6 = 0 ;
+ int val7 ;
+ int ecode7 = 0 ;
+ int val8 ;
+ int ecode8 = 0 ;
+ int res12 ;
+ int argvi = 0;
+ svn_error_t *result = 0 ;
+ dXSARGS;
+
+ {
+ _global_pool = arg13 = svn_swig_pl_make_pool (ST(items-1));
+ SPAGAIN;
+ }
+ if ((items < 11) || (items > 12)) {
+ SWIG_croak("Usage: svn_wc_revert6(wc_ctx,local_abspath,depth,use_commit_times,changelist_filter,clear_changelists,metadata_only,added_keep_local,cancel_func,cancel_baton,notify_func,notify_baton,scratch_pool);");
+ }
+ res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_svn_wc_context_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "svn_wc_revert6" "', argument " "1"" of type '" "svn_wc_context_t *""'");
+ }
+ arg1 = (svn_wc_context_t *)(argp1);
+ res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "svn_wc_revert6" "', argument " "2"" of type '" "char const *""'");
+ }
+ arg2 = (char *)(buf2);
+ ecode3 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(2), &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "svn_wc_revert6" "', argument " "3"" of type '" "svn_depth_t""'");
+ }
+ arg3 = (svn_depth_t)(val3);
+ ecode4 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(3), &val4);
+ if (!SWIG_IsOK(ecode4)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "svn_wc_revert6" "', argument " "4"" of type '" "svn_boolean_t""'");
+ }
+ arg4 = (svn_boolean_t)(val4);
+ res5 = SWIG_ConvertPtr(ST(4), &argp5,SWIGTYPE_p_apr_array_header_t, 0 | 0 );
+ if (!SWIG_IsOK(res5)) {
+ SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "svn_wc_revert6" "', argument " "5"" of type '" "apr_array_header_t const *""'");
+ }
+ arg5 = (apr_array_header_t *)(argp5);
+ ecode6 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(5), &val6);
+ if (!SWIG_IsOK(ecode6)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode6), "in method '" "svn_wc_revert6" "', argument " "6"" of type '" "svn_boolean_t""'");
+ }
+ arg6 = (svn_boolean_t)(val6);
+ ecode7 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(6), &val7);
+ if (!SWIG_IsOK(ecode7)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "svn_wc_revert6" "', argument " "7"" of type '" "svn_boolean_t""'");
+ }
+ arg7 = (svn_boolean_t)(val7);
+ ecode8 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(7), &val8);
+ if (!SWIG_IsOK(ecode8)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode8), "in method '" "svn_wc_revert6" "', argument " "8"" of type '" "svn_boolean_t""'");
+ }
+ arg8 = (svn_boolean_t)(val8);
+ {
+ arg9 = (svn_cancel_func_t) svn_swig_pl_cancel_func;
+ arg10 = ST(8);
+ }
+ {
+ int res = SWIG_ConvertFunctionPtr(ST(9), (void**)(&arg11), SWIGTYPE_p_f_p_void_p_q_const__struct_svn_wc_notify_t_p_apr_pool_t__void);
+ if (!SWIG_IsOK(res)) {
+ SWIG_exception_fail(SWIG_ArgError(res), "in method '" "svn_wc_revert6" "', argument " "11"" of type '" "svn_wc_notify_func2_t""'");
+ }
+ }
+ res12 = SWIG_ConvertPtr(ST(10),SWIG_as_voidptrptr(&arg12), 0, 0);
+ if (!SWIG_IsOK(res12)) {
+ SWIG_exception_fail(SWIG_ArgError(res12), "in method '" "svn_wc_revert6" "', argument " "12"" of type '" "void *""'");
+ }
+ if (items > 11) {
+
+ }
+ {
+ result = (svn_error_t *)svn_wc_revert6(arg1,(char const *)arg2,arg3,arg4,(apr_array_header_t const *)arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13);
+
+
+
+ }
+ {
+ if (result) {
+ SV *exception_handler = perl_get_sv ("SVN::Error::handler", FALSE);
+
+ if (SvOK(exception_handler)) {
+ SV *callback_result;
+
+ PUTBACK;
+ svn_swig_pl_callback_thunk (CALL_SV, exception_handler,
+ &callback_result, "S", result,
+ SWIGTYPE_p_svn_error_t);
+ SPAGAIN;
+ } else {
+ ST(argvi) = SWIG_NewPointerObj(result, SWIGTYPE_p_svn_error_t, 0);
+ argvi++;
+ }
+ }
+ }
+
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+
+
+
+
+
+
+
+
+
+ XSRETURN(argvi);
+ fail:
+
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+
+
+
+
+
+
+
+
+
+ SWIG_croak_null();
+ }
+}
+
+
XS(_wrap_svn_wc_revert5) {
{
svn_wc_context_t *arg1 = (svn_wc_context_t *) 0 ;
@@ -46076,6 +46232,7 @@ static swig_type_info _swigt__p_svn_opt_revision_range_t = {"_p_svn_opt_revision
static swig_type_info _swigt__p_svn_opt_revision_t = {"_p_svn_opt_revision_t", "struct svn_opt_revision_t *|svn_opt_revision_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_revision_value_t = {"_p_svn_opt_revision_value_t", "union svn_opt_revision_value_t *|svn_opt_revision_value_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc2_t = {"_p_svn_opt_subcommand_desc2_t", "struct svn_opt_subcommand_desc2_t *|svn_opt_subcommand_desc2_t *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_svn_opt_subcommand_desc3_t = {"_p_svn_opt_subcommand_desc3_t", "struct svn_opt_subcommand_desc3_t *|svn_opt_subcommand_desc3_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc_t = {"_p_svn_opt_subcommand_desc_t", "struct svn_opt_subcommand_desc_t *|svn_opt_subcommand_desc_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_patch_file_t = {"_p_svn_patch_file_t", "struct svn_patch_file_t *|svn_patch_file_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_patch_t = {"_p_svn_patch_t", "struct svn_patch_t *|svn_patch_t *", 0, 0, (void*)0, 0};
@@ -46259,6 +46416,7 @@ static swig_type_info *swig_type_initial[] = {
&_swigt__p_svn_opt_revision_t,
&_swigt__p_svn_opt_revision_value_t,
&_swigt__p_svn_opt_subcommand_desc2_t,
+ &_swigt__p_svn_opt_subcommand_desc3_t,
&_swigt__p_svn_opt_subcommand_desc_t,
&_swigt__p_svn_patch_file_t,
&_swigt__p_svn_patch_t,
@@ -46442,6 +46600,7 @@ static swig_cast_info _swigc__p_svn_opt_revision_range_t[] = { {&_swigt__p_svn_
static swig_cast_info _swigc__p_svn_opt_revision_t[] = { {&_swigt__p_svn_opt_revision_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_revision_value_t[] = { {&_swigt__p_svn_opt_revision_value_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc2_t[] = { {&_swigt__p_svn_opt_subcommand_desc2_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_svn_opt_subcommand_desc3_t[] = { {&_swigt__p_svn_opt_subcommand_desc3_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc_t[] = { {&_swigt__p_svn_opt_subcommand_desc_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_patch_file_t[] = { {&_swigt__p_svn_patch_file_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_patch_t[] = { {&_swigt__p_svn_patch_t, 0, 0, 0},{0, 0, 0, 0}};
@@ -46625,6 +46784,7 @@ static swig_cast_info *swig_cast_initial[] = {
_swigc__p_svn_opt_revision_t,
_swigc__p_svn_opt_revision_value_t,
_swigc__p_svn_opt_subcommand_desc2_t,
+ _swigc__p_svn_opt_subcommand_desc3_t,
_swigc__p_svn_opt_subcommand_desc_t,
_swigc__p_svn_patch_file_t,
_swigc__p_svn_patch_t,
@@ -47308,6 +47468,7 @@ static swig_command_info swig_commands[] = {
{"SVN::_Wc::svn_wc_relocate3", _wrap_svn_wc_relocate3},
{"SVN::_Wc::svn_wc_relocate2", _wrap_svn_wc_relocate2},
{"SVN::_Wc::svn_wc_relocate", _wrap_svn_wc_relocate},
+{"SVN::_Wc::svn_wc_revert6", _wrap_svn_wc_revert6},
{"SVN::_Wc::svn_wc_revert5", _wrap_svn_wc_revert5},
{"SVN::_Wc::svn_wc_revert4", _wrap_svn_wc_revert4},
{"SVN::_Wc::svn_wc_revert3", _wrap_svn_wc_revert3},
diff --git a/subversion/bindings/swig/proxy/svn_client_h.swg b/subversion/bindings/swig/proxy/svn_client_h.swg
index cb4404d..411ab11 100644
--- a/subversion/bindings/swig/proxy/svn_client_h.swg
+++ b/subversion/bindings/swig/proxy/svn_client_h.swg
@@ -20,6 +20,7 @@
svn_client_blame_receiver2_t,
svn_client_blame_receiver_t,
svn_client_diff_summarize_func_t,
+ svn_client__layout_func_t,
svn_client_import_filter_func_t,
svn_client_status_func_t,
svn_client_conflict_walk_func_t,
@@ -39,6 +40,7 @@
svn_client_blame_receiver2_t *,
svn_client_blame_receiver_t *,
svn_client_diff_summarize_func_t *,
+ svn_client__layout_func_t *,
svn_client_import_filter_func_t *,
svn_client_status_func_t *,
svn_client_conflict_walk_func_t *,
@@ -65,6 +67,7 @@
void *conflict_baton,
void *conflict_baton2,
void *tunnel_baton,
+ void *layout_baton,
void *commit_baton,
void *filter_baton,
void *backwards_compatibility_baton,
@@ -72,6 +75,9 @@
void *receiver_baton,
void *summarize_baton,
void *conflict_walk_func_baton,
+ void *shelved_baton,
+ void *not_shelved_baton,
+ void *walk_baton,
void *callback_baton,
void *patch_baton
};
@@ -96,7 +102,9 @@
%opaque_proxy(svn_client_conflict_t);
%opaque_proxy(svn_client_conflict_option_t);
%proxy(svn_client_copy_source_t);
-%proxy(svn_client_shelved_patch_info_t);
+%proxy(svn_client__shelf_t);
+%proxy(svn_client__shelf_version_t);
+%proxy(svn_client__shelf_info_t);
%proxy(svn_info_t);
%proxy(svn_client_info2_t);
#endif
@@ -149,6 +157,11 @@ static svn_error_t * svn_client_invoke_diff_summarize_func(
return _obj(diff, baton, pool);
}
+static svn_error_t * svn_client_invoke__layout_func(
+ svn_client__layout_func_t _obj, void *layout_baton, const char *local_abspath, const char *repos_root_url, svn_boolean_t not_present, svn_boolean_t url_changed, const char *url, svn_boolean_t revision_changed, svn_revnum_t revision, svn_boolean_t depth_changed, svn_depth_t depth, apr_pool_t *scratch_pool) {
+ return _obj(layout_baton, local_abspath, repos_root_url, not_present, url_changed, url, revision_changed, revision, depth_changed, depth, scratch_pool);
+}
+
static svn_error_t * svn_client_invoke_import_filter_func(
svn_client_import_filter_func_t _obj, void *baton, svn_boolean_t *filtered, const char *local_abspath, const svn_io_dirent2_t *dirent, apr_pool_t *scratch_pool) {
return _obj(baton, filtered, local_abspath, dirent, scratch_pool);
@@ -201,6 +214,7 @@ static svn_error_t * svn_client_invoke_patch_func(
%funcptr_proxy(svn_client_blame_receiver2_t, svn_client_invoke_blame_receiver2);
%funcptr_proxy(svn_client_blame_receiver_t, svn_client_invoke_blame_receiver);
%funcptr_proxy(svn_client_diff_summarize_func_t, svn_client_invoke_diff_summarize_func);
+%funcptr_proxy(svn_client__layout_func_t, svn_client_invoke__layout_func);
%funcptr_proxy(svn_client_import_filter_func_t, svn_client_invoke_import_filter_func);
%funcptr_proxy(svn_client_status_func_t, svn_client_invoke_status_func);
%funcptr_proxy(svn_client_conflict_walk_func_t, svn_client_invoke_conflict_walk_func);
diff --git a/subversion/bindings/swig/proxy/svn_opt_h.swg b/subversion/bindings/swig/proxy/svn_opt_h.swg
index 65ccf3b..a9e09c2 100644
--- a/subversion/bindings/swig/proxy/svn_opt_h.swg
+++ b/subversion/bindings/swig/proxy/svn_opt_h.swg
@@ -23,6 +23,7 @@
/* Structure definitions */
#ifdef SWIGPYTHON
+%proxy(svn_opt_subcommand_desc3_t);
%proxy(svn_opt_subcommand_desc2_t);
%proxy(svn_opt_subcommand_desc_t);
%proxy(svn_opt_revision_value_t);
diff --git a/subversion/bindings/swig/python/client.py b/subversion/bindings/swig/python/client.py
index 519f10b..ce9b845 100644
--- a/subversion/bindings/swig/python/client.py
+++ b/subversion/bindings/swig/python/client.py
@@ -747,6 +747,10 @@ def svn_client_switch(*args):
"""svn_client_switch(char const * path, char const * url, svn_opt_revision_t revision, svn_boolean_t recurse, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"""
return _client.svn_client_switch(*args)
+def svn_client__layout_list(*args):
+ """svn_client__layout_list(char const * local_abspath, svn_client__layout_func_t layout, void * layout_baton, svn_client_ctx_t ctx, apr_pool_t scratch_pool) -> svn_error_t"""
+ return _client.svn_client__layout_list(*args)
+
def svn_client_add5(*args):
"""svn_client_add5(char const * path, svn_depth_t depth, svn_boolean_t force, svn_boolean_t no_ignore, svn_boolean_t no_autoprops, svn_boolean_t add_parents, svn_client_ctx_t ctx, apr_pool_t scratch_pool) -> svn_error_t"""
return _client.svn_client_add5(*args)
@@ -1040,6 +1044,10 @@ def svn_client_blame(*args):
"""svn_client_blame(char const * path_or_url, svn_opt_revision_t start, svn_opt_revision_t end, svn_client_blame_receiver_t receiver, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"""
return _client.svn_client_blame(*args)
+def svn_client_diff7(*args):
+ """svn_client_diff7(apr_array_header_t diff_options, char const * path_or_url1, svn_opt_revision_t revision1, char const * path_or_url2, svn_opt_revision_t revision2, char const * relative_to_dir, svn_depth_t depth, svn_boolean_t ignore_ancestry, svn_boolean_t no_diff_added, svn_boolean_t no_diff_deleted, svn_boolean_t show_copies_as_adds, svn_boolean_t ignore_content_type, svn_boolean_t ignore_properties, svn_boolean_t properties_only, svn_boolean_t use_git_diff_format, svn_boolean_t pretty_print_mergeinfo, char const * header_encoding, svn_stream_t * outstream, svn_stream_t * errstream, apr_array_header_t changelists, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"""
+ return _client.svn_client_diff7(*args)
+
def svn_client_diff6(*args):
"""svn_client_diff6(apr_array_header_t diff_options, char const * path_or_url1, svn_opt_revision_t revision1, char const * path_or_url2, svn_opt_revision_t revision2, char const * relative_to_dir, svn_depth_t depth, svn_boolean_t ignore_ancestry, svn_boolean_t no_diff_added, svn_boolean_t no_diff_deleted, svn_boolean_t show_copies_as_adds, svn_boolean_t ignore_content_type, svn_boolean_t ignore_properties, svn_boolean_t properties_only, svn_boolean_t use_git_diff_format, char const * header_encoding, svn_stream_t * outstream, svn_stream_t * errstream, apr_array_header_t changelists, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"""
return _client.svn_client_diff6(*args)
@@ -1064,6 +1072,10 @@ def svn_client_diff(*args):
"""svn_client_diff(apr_array_header_t diff_options, char const * path1, svn_opt_revision_t revision1, char const * path2, svn_opt_revision_t revision2, svn_boolean_t recurse, svn_boolean_t ignore_ancestry, svn_boolean_t no_diff_deleted, apr_file_t outfile, apr_file_t errfile, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"""
return _client.svn_client_diff(*args)
+def svn_client_diff_peg7(*args):
+ """svn_client_diff_peg7(apr_array_header_t diff_options, char const * path_or_url, svn_opt_revision_t peg_revision, svn_opt_revision_t start_revision, svn_opt_revision_t end_revision, char const * relative_to_dir, svn_depth_t depth, svn_boolean_t ignore_ancestry, svn_boolean_t no_diff_added, svn_boolean_t no_diff_deleted, svn_boolean_t show_copies_as_adds, svn_boolean_t ignore_content_type, svn_boolean_t ignore_properties, svn_boolean_t properties_only, svn_boolean_t use_git_diff_format, svn_boolean_t pretty_print_mergeinfo, char const * header_encoding, svn_stream_t * outstream, svn_stream_t * errstream, apr_array_header_t changelists, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"""
+ return _client.svn_client_diff_peg7(*args)
+
def svn_client_diff_peg6(*args):
"""svn_client_diff_peg6(apr_array_header_t diff_options, char const * path_or_url, svn_opt_revision_t peg_revision, svn_opt_revision_t start_revision, svn_opt_revision_t end_revision, char const * relative_to_dir, svn_depth_t depth, svn_boolean_t ignore_ancestry, svn_boolean_t no_diff_added, svn_boolean_t no_diff_deleted, svn_boolean_t show_copies_as_adds, svn_boolean_t ignore_content_type, svn_boolean_t ignore_properties, svn_boolean_t properties_only, svn_boolean_t use_git_diff_format, char const * header_encoding, svn_stream_t * outstream, svn_stream_t * errstream, apr_array_header_t changelists, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"""
return _client.svn_client_diff_peg6(*args)
@@ -1200,6 +1212,10 @@ def svn_client_relocate(*args):
"""svn_client_relocate(char const * dir, char const * from_prefix, char const * to_prefix, svn_boolean_t recurse, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"""
return _client.svn_client_relocate(*args)
+def svn_client_revert4(*args):
+ """svn_client_revert4(apr_array_header_t paths, svn_depth_t depth, apr_array_header_t changelists, svn_boolean_t clear_changelists, svn_boolean_t metadata_only, svn_boolean_t added_keep_local, svn_client_ctx_t ctx, apr_pool_t scratch_pool) -> svn_error_t"""
+ return _client.svn_client_revert4(*args)
+
def svn_client_revert3(*args):
"""svn_client_revert3(apr_array_header_t paths, svn_depth_t depth, apr_array_header_t changelists, svn_boolean_t clear_changelists, svn_boolean_t metadata_only, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"""
return _client.svn_client_revert3(*args)
@@ -1234,23 +1250,42 @@ svn_client_conflict_option_incoming_delete_accept = _client.svn_client_conflict_
svn_client_conflict_option_incoming_move_file_text_merge = _client.svn_client_conflict_option_incoming_move_file_text_merge
svn_client_conflict_option_incoming_move_dir_merge = _client.svn_client_conflict_option_incoming_move_dir_merge
svn_client_conflict_option_local_move_file_text_merge = _client.svn_client_conflict_option_local_move_file_text_merge
+svn_client_conflict_option_local_move_dir_merge = _client.svn_client_conflict_option_local_move_dir_merge
+svn_client_conflict_option_sibling_move_file_text_merge = _client.svn_client_conflict_option_sibling_move_file_text_merge
+svn_client_conflict_option_sibling_move_dir_merge = _client.svn_client_conflict_option_sibling_move_dir_merge
def svn_client_conflict_option_set_merged_propval(option, merged_propval):
"""svn_client_conflict_option_set_merged_propval(svn_client_conflict_option_t * option, svn_string_t const * merged_propval)"""
return _client.svn_client_conflict_option_set_merged_propval(option, merged_propval)
+def svn_client_conflict_option_get_moved_to_repos_relpath_candidates2(*args):
+ """svn_client_conflict_option_get_moved_to_repos_relpath_candidates2(svn_client_conflict_option_t * option, apr_pool_t result_pool, apr_pool_t scratch_pool) -> svn_error_t"""
+ return _client.svn_client_conflict_option_get_moved_to_repos_relpath_candidates2(*args)
+
def svn_client_conflict_option_get_moved_to_repos_relpath_candidates(*args):
"""svn_client_conflict_option_get_moved_to_repos_relpath_candidates(svn_client_conflict_option_t * option, apr_pool_t result_pool, apr_pool_t scratch_pool) -> svn_error_t"""
return _client.svn_client_conflict_option_get_moved_to_repos_relpath_candidates(*args)
+def svn_client_conflict_option_set_moved_to_repos_relpath2(*args):
+ """svn_client_conflict_option_set_moved_to_repos_relpath2(svn_client_conflict_option_t * option, int preferred_move_target_idx, svn_client_ctx_t ctx, apr_pool_t scratch_pool) -> svn_error_t"""
+ return _client.svn_client_conflict_option_set_moved_to_repos_relpath2(*args)
+
def svn_client_conflict_option_set_moved_to_repos_relpath(*args):
"""svn_client_conflict_option_set_moved_to_repos_relpath(svn_client_conflict_option_t * option, int preferred_move_target_idx, svn_client_ctx_t ctx, apr_pool_t scratch_pool) -> svn_error_t"""
return _client.svn_client_conflict_option_set_moved_to_repos_relpath(*args)
+def svn_client_conflict_option_get_moved_to_abspath_candidates2(*args):
+ """svn_client_conflict_option_get_moved_to_abspath_candidates2(svn_client_conflict_option_t * option, apr_pool_t result_pool, apr_pool_t scratch_pool) -> svn_error_t"""
+ return _client.svn_client_conflict_option_get_moved_to_abspath_candidates2(*args)
+
def svn_client_conflict_option_get_moved_to_abspath_candidates(*args):
"""svn_client_conflict_option_get_moved_to_abspath_candidates(svn_client_conflict_option_t * option, apr_pool_t result_pool, apr_pool_t scratch_pool) -> svn_error_t"""
return _client.svn_client_conflict_option_get_moved_to_abspath_candidates(*args)
+def svn_client_conflict_option_set_moved_to_abspath2(*args):
+ """svn_client_conflict_option_set_moved_to_abspath2(svn_client_conflict_option_t * option, int preferred_move_target_idx, svn_client_ctx_t ctx, apr_pool_t scratch_pool) -> svn_error_t"""
+ return _client.svn_client_conflict_option_set_moved_to_abspath2(*args)
+
def svn_client_conflict_option_set_moved_to_abspath(*args):
"""svn_client_conflict_option_set_moved_to_abspath(svn_client_conflict_option_t * option, int preferred_move_target_idx, svn_client_ctx_t ctx, apr_pool_t scratch_pool) -> svn_error_t"""
return _client.svn_client_conflict_option_set_moved_to_abspath(*args)
@@ -1659,34 +1694,99 @@ def svn_client_cat2(*args):
def svn_client_cat(*args):
"""svn_client_cat(svn_stream_t * out, char const * path_or_url, svn_opt_revision_t revision, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"""
return _client.svn_client_cat(*args)
+class svn_client__shelf_t:
+ """Proxy of C svn_client__shelf_t struct."""
+
+ __swig_setmethods__ = {}
+ __setattr__ = lambda self, name, value: _swig_setattr(self, svn_client__shelf_t, name, value)
+ __swig_getmethods__ = {}
+ __getattr__ = lambda self, name: _swig_getattr(self, svn_client__shelf_t, name)
+ __repr__ = _swig_repr
+ __swig_setmethods__["name"] = _client.svn_client__shelf_t_name_set
+ __swig_getmethods__["name"] = _client.svn_client__shelf_t_name_get
+ __swig_setmethods__["max_version"] = _client.svn_client__shelf_t_max_version_set
+ __swig_getmethods__["max_version"] = _client.svn_client__shelf_t_max_version_get
+ __swig_setmethods__["wc_root_abspath"] = _client.svn_client__shelf_t_wc_root_abspath_set
+ __swig_getmethods__["wc_root_abspath"] = _client.svn_client__shelf_t_wc_root_abspath_get
+ __swig_setmethods__["shelves_dir"] = _client.svn_client__shelf_t_shelves_dir_set
+ __swig_getmethods__["shelves_dir"] = _client.svn_client__shelf_t_shelves_dir_get
+ __swig_setmethods__["revprops"] = _client.svn_client__shelf_t_revprops_set
+ __swig_getmethods__["revprops"] = _client.svn_client__shelf_t_revprops_get
+ __swig_setmethods__["ctx"] = _client.svn_client__shelf_t_ctx_set
+ __swig_getmethods__["ctx"] = _client.svn_client__shelf_t_ctx_get
+ __swig_setmethods__["pool"] = _client.svn_client__shelf_t_pool_set
+ __swig_getmethods__["pool"] = _client.svn_client__shelf_t_pool_get
+ def set_parent_pool(self, parent_pool=None):
+ """Create a new proxy object for TYPE"""
+ import libsvn.core, weakref
+ self.__dict__["_parent_pool"] = \
+ parent_pool or libsvn.core.application_pool;
+ if self.__dict__["_parent_pool"]:
+ self.__dict__["_is_valid"] = weakref.ref(
+ self.__dict__["_parent_pool"]._is_valid)
+
+ def assert_valid(self):
+ """Assert that this object is using valid pool memory"""
+ if "_is_valid" in self.__dict__:
+ assert self.__dict__["_is_valid"](), "Variable has already been deleted"
+
+ def __getattr__(self, name):
+ """Get an attribute from this object"""
+ self.assert_valid()
+
+ value = _swig_getattr(self, self.__class__, name)
+
+ # If we got back a different object than we have, we need to copy all our
+ # metadata into it, so that it looks identical
+ members = self.__dict__.get("_members")
+ if members is not None:
+ _copy_metadata_deep(value, members.get(name))
+
+ # Verify that the new object is good
+ _assert_valid_deep(value)
+
+ return value
+
+ def __setattr__(self, name, value):
+ """Set an attribute on this object"""
+ self.assert_valid()
-def svn_client_shelve(*args):
- """svn_client_shelve(char const * name, apr_array_header_t paths, svn_depth_t depth, apr_array_header_t changelists, svn_boolean_t keep_local, svn_boolean_t dry_run, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"""
- return _client.svn_client_shelve(*args)
+ # Save a copy of the object, so that the garbage
+ # collector won't kill the object while it's in
+ # SWIG-land
+ self.__dict__.setdefault("_members",{})[name] = value
+
+ return _swig_setattr(self, self.__class__, name, value)
-def svn_client_unshelve(*args):
- """svn_client_unshelve(char const * name, char const * local_abspath, svn_boolean_t keep, svn_boolean_t dry_run, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"""
- return _client.svn_client_unshelve(*args)
-def svn_client_shelves_delete(*args):
- """svn_client_shelves_delete(char const * name, char const * local_abspath, svn_boolean_t dry_run, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"""
- return _client.svn_client_shelves_delete(*args)
-class svn_client_shelved_patch_info_t:
- """Proxy of C svn_client_shelved_patch_info_t struct."""
+ def __init__(self):
+ """__init__(svn_client__shelf_t self) -> svn_client__shelf_t"""
+ this = _client.new_svn_client__shelf_t()
+ try:
+ self.this.append(this)
+ except __builtin__.Exception:
+ self.this = this
+ __swig_destroy__ = _client.delete_svn_client__shelf_t
+ __del__ = lambda self: None
+svn_client__shelf_t_swigregister = _client.svn_client__shelf_t_swigregister
+svn_client__shelf_t_swigregister(svn_client__shelf_t)
+
+class svn_client__shelf_version_t:
+ """Proxy of C svn_client__shelf_version_t struct."""
__swig_setmethods__ = {}
- __setattr__ = lambda self, name, value: _swig_setattr(self, svn_client_shelved_patch_info_t, name, value)
+ __setattr__ = lambda self, name, value: _swig_setattr(self, svn_client__shelf_version_t, name, value)
__swig_getmethods__ = {}
- __getattr__ = lambda self, name: _swig_getattr(self, svn_client_shelved_patch_info_t, name)
+ __getattr__ = lambda self, name: _swig_getattr(self, svn_client__shelf_version_t, name)
__repr__ = _swig_repr
- __swig_setmethods__["message"] = _client.svn_client_shelved_patch_info_t_message_set
- __swig_getmethods__["message"] = _client.svn_client_shelved_patch_info_t_message_get
- __swig_setmethods__["patch_path"] = _client.svn_client_shelved_patch_info_t_patch_path_set
- __swig_getmethods__["patch_path"] = _client.svn_client_shelved_patch_info_t_patch_path_get
- __swig_setmethods__["dirent"] = _client.svn_client_shelved_patch_info_t_dirent_set
- __swig_getmethods__["dirent"] = _client.svn_client_shelved_patch_info_t_dirent_get
- __swig_setmethods__["mtime"] = _client.svn_client_shelved_patch_info_t_mtime_set
- __swig_getmethods__["mtime"] = _client.svn_client_shelved_patch_info_t_mtime_get
+ __swig_setmethods__["shelf"] = _client.svn_client__shelf_version_t_shelf_set
+ __swig_getmethods__["shelf"] = _client.svn_client__shelf_version_t_shelf_get
+ __swig_setmethods__["mtime"] = _client.svn_client__shelf_version_t_mtime_set
+ __swig_getmethods__["mtime"] = _client.svn_client__shelf_version_t_mtime_get
+ __swig_setmethods__["files_dir_abspath"] = _client.svn_client__shelf_version_t_files_dir_abspath_set
+ __swig_getmethods__["files_dir_abspath"] = _client.svn_client__shelf_version_t_files_dir_abspath_get
+ __swig_setmethods__["version_number"] = _client.svn_client__shelf_version_t_version_number_set
+ __swig_getmethods__["version_number"] = _client.svn_client__shelf_version_t_version_number_get
def set_parent_pool(self, parent_pool=None):
"""Create a new proxy object for TYPE"""
import libsvn.core, weakref
@@ -1731,33 +1831,166 @@ class svn_client_shelved_patch_info_t:
def __init__(self):
- """__init__(svn_client_shelved_patch_info_t self) -> svn_client_shelved_patch_info_t"""
- this = _client.new_svn_client_shelved_patch_info_t()
+ """__init__(svn_client__shelf_version_t self) -> svn_client__shelf_version_t"""
+ this = _client.new_svn_client__shelf_version_t()
try:
self.this.append(this)
except __builtin__.Exception:
self.this = this
- __swig_destroy__ = _client.delete_svn_client_shelved_patch_info_t
+ __swig_destroy__ = _client.delete_svn_client__shelf_version_t
__del__ = lambda self: None
-svn_client_shelved_patch_info_t_swigregister = _client.svn_client_shelved_patch_info_t_swigregister
-svn_client_shelved_patch_info_t_swigregister(svn_client_shelved_patch_info_t)
+svn_client__shelf_version_t_swigregister = _client.svn_client__shelf_version_t_swigregister
+svn_client__shelf_version_t_swigregister(svn_client__shelf_version_t)
+
+
+def svn_client__shelf_open_or_create(*args):
+ """svn_client__shelf_open_or_create(char const * name, char const * local_abspath, svn_client_ctx_t ctx, apr_pool_t result_pool) -> svn_error_t"""
+ return _client.svn_client__shelf_open_or_create(*args)
+
+def svn_client__shelf_open_existing(*args):
+ """svn_client__shelf_open_existing(char const * name, char const * local_abspath, svn_client_ctx_t ctx, apr_pool_t result_pool) -> svn_error_t"""
+ return _client.svn_client__shelf_open_existing(*args)
+
+def svn_client__shelf_close(*args):
+ """svn_client__shelf_close(svn_client__shelf_t shelf, apr_pool_t scratch_pool) -> svn_error_t"""
+ return _client.svn_client__shelf_close(*args)
+
+def svn_client__shelf_delete(*args):
+ """svn_client__shelf_delete(char const * name, char const * local_abspath, svn_boolean_t dry_run, svn_client_ctx_t ctx, apr_pool_t scratch_pool) -> svn_error_t"""
+ return _client.svn_client__shelf_delete(*args)
+
+def svn_client__shelf_save_new_version3(*args):
+ """svn_client__shelf_save_new_version3(svn_client__shelf_t shelf, apr_array_header_t paths, svn_depth_t depth, apr_array_header_t changelists, svn_client_status_func_t shelved_func, void * shelved_baton, svn_client_status_func_t not_shelved_func, void * not_shelved_baton, apr_pool_t scratch_pool) -> svn_error_t"""
+ return _client.svn_client__shelf_save_new_version3(*args)
+
+def svn_client__shelf_delete_newer_versions(*args):
+ """svn_client__shelf_delete_newer_versions(svn_client__shelf_t shelf, svn_client__shelf_version_t shelf_version, apr_pool_t scratch_pool) -> svn_error_t"""
+ return _client.svn_client__shelf_delete_newer_versions(*args)
+
+def svn_client__shelf_version_open(*args):
+ """svn_client__shelf_version_open(svn_client__shelf_t shelf, int version_number, apr_pool_t result_pool, apr_pool_t scratch_pool) -> svn_error_t"""
+ return _client.svn_client__shelf_version_open(*args)
+
+def svn_client__shelf_get_newest_version(*args):
+ """svn_client__shelf_get_newest_version(svn_client__shelf_t shelf, apr_pool_t result_pool, apr_pool_t scratch_pool) -> svn_error_t"""
+ return _client.svn_client__shelf_get_newest_version(*args)
+
+def svn_client__shelf_get_all_versions(*args):
+ """svn_client__shelf_get_all_versions(svn_client__shelf_t shelf, apr_pool_t result_pool, apr_pool_t scratch_pool) -> svn_error_t"""
+ return _client.svn_client__shelf_get_all_versions(*args)
+
+def svn_client__shelf_apply(*args):
+ """svn_client__shelf_apply(svn_client__shelf_version_t shelf_version, svn_boolean_t dry_run, apr_pool_t scratch_pool) -> svn_error_t"""
+ return _client.svn_client__shelf_apply(*args)
+
+def svn_client__shelf_test_apply_file(*args):
+ """svn_client__shelf_test_apply_file(svn_client__shelf_version_t shelf_version, char const * file_relpath, apr_pool_t scratch_pool) -> svn_error_t"""
+ return _client.svn_client__shelf_test_apply_file(*args)
+
+def svn_client__shelf_unapply(*args):
+ """svn_client__shelf_unapply(svn_client__shelf_version_t shelf_version, svn_boolean_t dry_run, apr_pool_t scratch_pool) -> svn_error_t"""
+ return _client.svn_client__shelf_unapply(*args)
+
+def svn_client__shelf_paths_changed(*args):
+ """svn_client__shelf_paths_changed(svn_client__shelf_version_t shelf_version, apr_pool_t result_pool, apr_pool_t scratch_pool) -> svn_error_t"""
+ return _client.svn_client__shelf_paths_changed(*args)
+
+def svn_client__shelf_revprop_set(*args):
+ """svn_client__shelf_revprop_set(svn_client__shelf_t shelf, char const * prop_name, svn_string_t const * prop_val, apr_pool_t scratch_pool) -> svn_error_t"""
+ return _client.svn_client__shelf_revprop_set(*args)
+
+def svn_client__shelf_revprop_set_all(*args):
+ """svn_client__shelf_revprop_set_all(svn_client__shelf_t shelf, apr_hash_t revprop_table, apr_pool_t scratch_pool) -> svn_error_t"""
+ return _client.svn_client__shelf_revprop_set_all(*args)
+
+def svn_client__shelf_revprop_get(*args):
+ """svn_client__shelf_revprop_get(svn_client__shelf_t shelf, char const * prop_name, apr_pool_t result_pool) -> svn_error_t"""
+ return _client.svn_client__shelf_revprop_get(*args)
+
+def svn_client__shelf_revprop_list(*args):
+ """svn_client__shelf_revprop_list(svn_client__shelf_t shelf, apr_pool_t result_pool) -> svn_error_t"""
+ return _client.svn_client__shelf_revprop_list(*args)
+
+def svn_client__shelf_set_log_message(*args):
+ """svn_client__shelf_set_log_message(svn_client__shelf_t shelf, char const * log_message, apr_pool_t scratch_pool) -> svn_error_t"""
+ return _client.svn_client__shelf_set_log_message(*args)
+
+def svn_client__shelf_get_log_message(*args):
+ """svn_client__shelf_get_log_message(svn_client__shelf_t shelf, apr_pool_t result_pool) -> svn_error_t"""
+ return _client.svn_client__shelf_get_log_message(*args)
+class svn_client__shelf_info_t:
+ """Proxy of C svn_client__shelf_info_t struct."""
+
+ __swig_setmethods__ = {}
+ __setattr__ = lambda self, name, value: _swig_setattr(self, svn_client__shelf_info_t, name, value)
+ __swig_getmethods__ = {}
+ __getattr__ = lambda self, name: _swig_getattr(self, svn_client__shelf_info_t, name)
+ __repr__ = _swig_repr
+ __swig_setmethods__["mtime"] = _client.svn_client__shelf_info_t_mtime_set
+ __swig_getmethods__["mtime"] = _client.svn_client__shelf_info_t_mtime_get
+ def set_parent_pool(self, parent_pool=None):
+ """Create a new proxy object for TYPE"""
+ import libsvn.core, weakref
+ self.__dict__["_parent_pool"] = \
+ parent_pool or libsvn.core.application_pool;
+ if self.__dict__["_parent_pool"]:
+ self.__dict__["_is_valid"] = weakref.ref(
+ self.__dict__["_parent_pool"]._is_valid)
+
+ def assert_valid(self):
+ """Assert that this object is using valid pool memory"""
+ if "_is_valid" in self.__dict__:
+ assert self.__dict__["_is_valid"](), "Variable has already been deleted"
+
+ def __getattr__(self, name):
+ """Get an attribute from this object"""
+ self.assert_valid()
+
+ value = _swig_getattr(self, self.__class__, name)
+
+ # If we got back a different object than we have, we need to copy all our
+ # metadata into it, so that it looks identical
+ members = self.__dict__.get("_members")
+ if members is not None:
+ _copy_metadata_deep(value, members.get(name))
+
+ # Verify that the new object is good
+ _assert_valid_deep(value)
+
+ return value
+
+ def __setattr__(self, name, value):
+ """Set an attribute on this object"""
+ self.assert_valid()
+ # Save a copy of the object, so that the garbage
+ # collector won't kill the object while it's in
+ # SWIG-land
+ self.__dict__.setdefault("_members",{})[name] = value
-def svn_client_shelves_list(*args):
- """svn_client_shelves_list(char const * local_abspath, svn_client_ctx_t ctx, apr_pool_t result_pool, apr_pool_t scratch_pool) -> svn_error_t"""
- return _client.svn_client_shelves_list(*args)
+ return _swig_setattr(self, self.__class__, name, value)
-def svn_client_shelves_any(*args):
- """svn_client_shelves_any(char const * local_abspath, svn_client_ctx_t ctx, apr_pool_t scratch_pool) -> svn_error_t"""
- return _client.svn_client_shelves_any(*args)
-def svn_client_shelf_get_paths(*args):
- """svn_client_shelf_get_paths(char const * name, char const * local_abspath, svn_client_ctx_t ctx, apr_pool_t result_pool, apr_pool_t scratch_pool) -> svn_error_t"""
- return _client.svn_client_shelf_get_paths(*args)
+ def __init__(self):
+ """__init__(svn_client__shelf_info_t self) -> svn_client__shelf_info_t"""
+ this = _client.new_svn_client__shelf_info_t()
+ try:
+ self.this.append(this)
+ except __builtin__.Exception:
+ self.this = this
+ __swig_destroy__ = _client.delete_svn_client__shelf_info_t
+ __del__ = lambda self: None
+svn_client__shelf_info_t_swigregister = _client.svn_client__shelf_info_t_swigregister
+svn_client__shelf_info_t_swigregister(svn_client__shelf_info_t)
+
+
+def svn_client__shelf_list(*args):
+ """svn_client__shelf_list(char const * local_abspath, svn_client_ctx_t ctx, apr_pool_t result_pool, apr_pool_t scratch_pool) -> svn_error_t"""
+ return _client.svn_client__shelf_list(*args)
-def svn_client_shelf_has_changes(*args):
- """svn_client_shelf_has_changes(char const * name, char const * local_abspath, svn_client_ctx_t ctx, apr_pool_t scratch_pool) -> svn_error_t"""
- return _client.svn_client_shelf_has_changes(*args)
+def svn_client__shelf_version_status_walk(*args):
+ """svn_client__shelf_version_status_walk(svn_client__shelf_version_t shelf_version, char const * wc_relpath, svn_wc_status_func4_t walk_func, void * walk_baton, apr_pool_t scratch_pool) -> svn_error_t"""
+ return _client.svn_client__shelf_version_status_walk(*args)
def svn_client_add_to_changelist(*args):
"""svn_client_add_to_changelist(apr_array_header_t paths, char const * changelist, svn_depth_t depth, apr_array_header_t changelists, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"""
@@ -2201,6 +2434,10 @@ def svn_client_invoke_diff_summarize_func(*args):
"""svn_client_invoke_diff_summarize_func(svn_client_diff_summarize_func_t _obj, svn_client_diff_summarize_t diff, void * baton, apr_pool_t pool) -> svn_error_t"""
return _client.svn_client_invoke_diff_summarize_func(*args)
+def svn_client_invoke__layout_func(*args):
+ """svn_client_invoke__layout_func(svn_client__layout_func_t _obj, void * layout_baton, char const * local_abspath, char const * repos_root_url, svn_boolean_t not_present, svn_boolean_t url_changed, char const * url, svn_boolean_t revision_changed, svn_revnum_t revision, svn_boolean_t depth_changed, svn_depth_t depth, apr_pool_t scratch_pool) -> svn_error_t"""
+ return _client.svn_client_invoke__layout_func(*args)
+
def svn_client_invoke_import_filter_func(*args):
"""svn_client_invoke_import_filter_func(svn_client_import_filter_func_t _obj, void * baton, char const * local_abspath, svn_io_dirent2_t dirent, apr_pool_t scratch_pool) -> svn_error_t"""
return _client.svn_client_invoke_import_filter_func(*args)
@@ -2772,6 +3009,66 @@ class svn_client_diff_summarize_func_t:
svn_client_diff_summarize_func_t_swigregister = _client.svn_client_diff_summarize_func_t_swigregister
svn_client_diff_summarize_func_t_swigregister(svn_client_diff_summarize_func_t)
+class svn_client__layout_func_t:
+ """Proxy of C svn_client__layout_func_t struct."""
+
+ __swig_setmethods__ = {}
+ __setattr__ = lambda self, name, value: _swig_setattr(self, svn_client__layout_func_t, name, value)
+ __swig_getmethods__ = {}
+ __getattr__ = lambda self, name: _swig_getattr(self, svn_client__layout_func_t, name)
+
+ def __init__(self, *args, **kwargs):
+ raise AttributeError("No constructor defined")
+ __repr__ = _swig_repr
+ def set_parent_pool(self, parent_pool=None):
+ """Create a new proxy object for TYPE"""
+ import libsvn.core, weakref
+ self.__dict__["_parent_pool"] = \
+ parent_pool or libsvn.core.application_pool;
+ if self.__dict__["_parent_pool"]:
+ self.__dict__["_is_valid"] = weakref.ref(
+ self.__dict__["_parent_pool"]._is_valid)
+
+ def assert_valid(self):
+ """Assert that this object is using valid pool memory"""
+ if "_is_valid" in self.__dict__:
+ assert self.__dict__["_is_valid"](), "Variable has already been deleted"
+
+ def __getattr__(self, name):
+ """Get an attribute from this object"""
+ self.assert_valid()
+
+ value = _swig_getattr(self, self.__class__, name)
+
+ # If we got back a different object than we have, we need to copy all our
+ # metadata into it, so that it looks identical
+ members = self.__dict__.get("_members")
+ if members is not None:
+ _copy_metadata_deep(value, members.get(name))
+
+ # Verify that the new object is good
+ _assert_valid_deep(value)
+
+ return value
+
+ def __setattr__(self, name, value):
+ """Set an attribute on this object"""
+ self.assert_valid()
+
+ # Save a copy of the object, so that the garbage
+ # collector won't kill the object while it's in
+ # SWIG-land
+ self.__dict__.setdefault("_members",{})[name] = value
+
+ return _swig_setattr(self, self.__class__, name, value)
+
+
+ def __call__(self, *args):
+ return svn_client_invoke__layout_func(self, *args)
+
+svn_client__layout_func_t_swigregister = _client.svn_client__layout_func_t_swigregister
+svn_client__layout_func_t_swigregister(svn_client__layout_func_t)
+
class svn_client_import_filter_func_t:
"""Proxy of C svn_client_import_filter_func_t struct."""
diff --git a/subversion/bindings/swig/python/core.c b/subversion/bindings/swig/python/core.c
index 48fbf25..4554c56 100644
--- a/subversion/bindings/swig/python/core.c
+++ b/subversion/bindings/swig/python/core.c
@@ -3123,26 +3123,28 @@ SWIG_Python_NonDynamicSetAttr(PyObject *obj, PyObject *name, PyObject *value) {
#define SWIGTYPE_p_svn_opt_revision_value_t swig_types[137]
#define SWIGTYPE_p_svn_opt_subcommand_desc2_t swig_types[138]
#define SWIGTYPE_p_svn_opt_subcommand_desc2_t_desc_overrides swig_types[139]
-#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[140]
-#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[141]
-#define SWIGTYPE_p_svn_prop_kind swig_types[142]
-#define SWIGTYPE_p_svn_prop_t swig_types[143]
-#define SWIGTYPE_p_svn_stream_mark_t swig_types[144]
-#define SWIGTYPE_p_svn_stream_t swig_types[145]
-#define SWIGTYPE_p_svn_string_t swig_types[146]
-#define SWIGTYPE_p_svn_stringbuf_t swig_types[147]
-#define SWIGTYPE_p_svn_tristate_t swig_types[148]
-#define SWIGTYPE_p_svn_version_checklist_t swig_types[149]
-#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[150]
-#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[151]
-#define SWIGTYPE_p_svn_version_extended_t swig_types[152]
-#define SWIGTYPE_p_svn_version_t swig_types[153]
-#define SWIGTYPE_p_svn_wc_external_item2_t swig_types[154]
-#define SWIGTYPE_p_unsigned_char swig_types[155]
-#define SWIGTYPE_p_unsigned_long swig_types[156]
-#define SWIGTYPE_p_void swig_types[157]
-static swig_type_info *swig_types[159];
-static swig_module_info swig_module = {swig_types, 158, 0, 0, 0, 0};
+#define SWIGTYPE_p_svn_opt_subcommand_desc3_t swig_types[140]
+#define SWIGTYPE_p_svn_opt_subcommand_desc3_t_desc_overrides swig_types[141]
+#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[142]
+#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[143]
+#define SWIGTYPE_p_svn_prop_kind swig_types[144]
+#define SWIGTYPE_p_svn_prop_t swig_types[145]
+#define SWIGTYPE_p_svn_stream_mark_t swig_types[146]
+#define SWIGTYPE_p_svn_stream_t swig_types[147]
+#define SWIGTYPE_p_svn_string_t swig_types[148]
+#define SWIGTYPE_p_svn_stringbuf_t swig_types[149]
+#define SWIGTYPE_p_svn_tristate_t swig_types[150]
+#define SWIGTYPE_p_svn_version_checklist_t swig_types[151]
+#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[152]
+#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[153]
+#define SWIGTYPE_p_svn_version_extended_t swig_types[154]
+#define SWIGTYPE_p_svn_version_t swig_types[155]
+#define SWIGTYPE_p_svn_wc_external_item2_t swig_types[156]
+#define SWIGTYPE_p_unsigned_char swig_types[157]
+#define SWIGTYPE_p_unsigned_long swig_types[158]
+#define SWIGTYPE_p_void swig_types[159]
+static swig_type_info *swig_types[161];
+static swig_module_info swig_module = {swig_types, 160, 0, 0, 0, 0};
#define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
#define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
@@ -3685,6 +3687,10 @@ static const svn_version_t * svn_version_invoke_func(
typedef struct {
int optch; const char *desc;
+} svn_opt_subcommand_desc3_t_desc_overrides;
+
+typedef struct {
+ int optch; const char *desc;
} svn_opt_subcommand_desc2_t_desc_overrides;
@@ -10667,6 +10673,505 @@ fail:
}
+SWIGINTERN PyObject *_wrap_svn_opt_subcommand_desc3_t_name_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ struct svn_opt_subcommand_desc3_t *arg1 = (struct svn_opt_subcommand_desc3_t *) 0 ;
+ char *arg2 = (char *) 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"Os:svn_opt_subcommand_desc3_t_name_set",&obj0,&arg2)) SWIG_fail;
+ {
+ arg1 = (struct svn_opt_subcommand_desc3_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_opt_subcommand_desc3_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ {
+ apr_size_t len = strlen(arg2) + 1;
+ char *copied;
+ if (arg1->name) free((char *)arg1->name);
+ copied = malloc(len);
+ memcpy(copied, arg2, len);
+ arg1->name = copied;
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_svn_opt_subcommand_desc3_t_name_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ struct svn_opt_subcommand_desc3_t *arg1 = (struct svn_opt_subcommand_desc3_t *) 0 ;
+ PyObject * obj0 = 0 ;
+ char *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:svn_opt_subcommand_desc3_t_name_get",&obj0)) SWIG_fail;
+ {
+ arg1 = (struct svn_opt_subcommand_desc3_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_opt_subcommand_desc3_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ result = (char *) ((arg1)->name);
+ resultobj = SWIG_FromCharPtr((const char *)result);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_svn_opt_subcommand_desc3_t_cmd_func_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ struct svn_opt_subcommand_desc3_t *arg1 = (struct svn_opt_subcommand_desc3_t *) 0 ;
+ svn_opt_subcommand_t *arg2 = (svn_opt_subcommand_t *) 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:svn_opt_subcommand_desc3_t_cmd_func_set",&obj0,&obj1)) SWIG_fail;
+ {
+ arg1 = (struct svn_opt_subcommand_desc3_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_opt_subcommand_desc3_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ {
+ int res = SWIG_ConvertFunctionPtr(obj1, (void**)(&arg2), SWIGTYPE_p_f_p_apr_getopt_t_p_void_p_apr_pool_t__p_svn_error_t);
+ if (!SWIG_IsOK(res)) {
+ SWIG_exception_fail(SWIG_ArgError(res), "in method '" "svn_opt_subcommand_desc3_t_cmd_func_set" "', argument " "2"" of type '" "svn_opt_subcommand_t *""'");
+ }
+ }
+ if (arg1) (arg1)->cmd_func = arg2;
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_svn_opt_subcommand_desc3_t_cmd_func_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ struct svn_opt_subcommand_desc3_t *arg1 = (struct svn_opt_subcommand_desc3_t *) 0 ;
+ PyObject * obj0 = 0 ;
+ svn_opt_subcommand_t *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:svn_opt_subcommand_desc3_t_cmd_func_get",&obj0)) SWIG_fail;
+ {
+ arg1 = (struct svn_opt_subcommand_desc3_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_opt_subcommand_desc3_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ result = (svn_opt_subcommand_t *) ((arg1)->cmd_func);
+ resultobj = SWIG_NewFunctionPtrObj((void *)(result), SWIGTYPE_p_f_p_apr_getopt_t_p_void_p_apr_pool_t__p_svn_error_t);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_svn_opt_subcommand_desc3_t_aliases_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ struct svn_opt_subcommand_desc3_t *arg1 = (struct svn_opt_subcommand_desc3_t *) 0 ;
+ char **arg2 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:svn_opt_subcommand_desc3_t_aliases_set",&obj0,&obj1)) SWIG_fail;
+ {
+ arg1 = (struct svn_opt_subcommand_desc3_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_opt_subcommand_desc3_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg2 = (char **)svn_swig_py_must_get_ptr(obj1, SWIGTYPE_p_p_char, svn_argnum_obj1);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ {
+ if (arg2) {
+ size_t ii = 0;
+ for (; ii < (size_t)3; ++ii) *(char const * *)&arg1->aliases[ii] = *((char const * *)arg2 + ii);
+ } else {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in variable '""aliases""' of type '""char const *[3]""'");
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_svn_opt_subcommand_desc3_t_aliases_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ struct svn_opt_subcommand_desc3_t *arg1 = (struct svn_opt_subcommand_desc3_t *) 0 ;
+ PyObject * obj0 = 0 ;
+ char **result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:svn_opt_subcommand_desc3_t_aliases_get",&obj0)) SWIG_fail;
+ {
+ arg1 = (struct svn_opt_subcommand_desc3_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_opt_subcommand_desc3_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ result = (char **)(char **) ((arg1)->aliases);
+ resultobj = svn_swig_py_new_pointer_obj((void*)(result), SWIGTYPE_p_p_char,
+ _global_py_pool, args);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_svn_opt_subcommand_desc3_t_help_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ struct svn_opt_subcommand_desc3_t *arg1 = (struct svn_opt_subcommand_desc3_t *) 0 ;
+ char **arg2 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:svn_opt_subcommand_desc3_t_help_set",&obj0,&obj1)) SWIG_fail;
+ {
+ arg1 = (struct svn_opt_subcommand_desc3_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_opt_subcommand_desc3_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg2 = (char **)svn_swig_py_must_get_ptr(obj1, SWIGTYPE_p_p_char, svn_argnum_obj1);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ {
+ if (arg2) {
+ size_t ii = 0;
+ for (; ii < (size_t)100; ++ii) *(char const * *)&arg1->help[ii] = *((char const * *)arg2 + ii);
+ } else {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in variable '""help""' of type '""char const *[100]""'");
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_svn_opt_subcommand_desc3_t_help_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ struct svn_opt_subcommand_desc3_t *arg1 = (struct svn_opt_subcommand_desc3_t *) 0 ;
+ PyObject * obj0 = 0 ;
+ char **result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:svn_opt_subcommand_desc3_t_help_get",&obj0)) SWIG_fail;
+ {
+ arg1 = (struct svn_opt_subcommand_desc3_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_opt_subcommand_desc3_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ result = (char **)(char **) ((arg1)->help);
+ resultobj = svn_swig_py_new_pointer_obj((void*)(result), SWIGTYPE_p_p_char,
+ _global_py_pool, args);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_svn_opt_subcommand_desc3_t_valid_options_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ struct svn_opt_subcommand_desc3_t *arg1 = (struct svn_opt_subcommand_desc3_t *) 0 ;
+ int *arg2 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:svn_opt_subcommand_desc3_t_valid_options_set",&obj0,&obj1)) SWIG_fail;
+ {
+ arg1 = (struct svn_opt_subcommand_desc3_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_opt_subcommand_desc3_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg2 = (int *)svn_swig_py_must_get_ptr(obj1, SWIGTYPE_p_int, svn_argnum_obj1);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ {
+ if (arg2) {
+ size_t ii = 0;
+ for (; ii < (size_t)50; ++ii) *(int *)&arg1->valid_options[ii] = *((int *)arg2 + ii);
+ } else {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in variable '""valid_options""' of type '""int [50]""'");
+ }
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_svn_opt_subcommand_desc3_t_valid_options_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ struct svn_opt_subcommand_desc3_t *arg1 = (struct svn_opt_subcommand_desc3_t *) 0 ;
+ PyObject * obj0 = 0 ;
+ int *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:svn_opt_subcommand_desc3_t_valid_options_get",&obj0)) SWIG_fail;
+ {
+ arg1 = (struct svn_opt_subcommand_desc3_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_opt_subcommand_desc3_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ result = (int *)(int *) ((arg1)->valid_options);
+ resultobj = svn_swig_py_new_pointer_obj((void*)(result), SWIGTYPE_p_int,
+ _global_py_pool, args);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_svn_opt_subcommand_desc3_t_desc_overrides_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ struct svn_opt_subcommand_desc3_t *arg1 = (struct svn_opt_subcommand_desc3_t *) 0 ;
+ PyObject * obj0 = 0 ;
+ svn_opt_subcommand_desc3_t_desc_overrides *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:svn_opt_subcommand_desc3_t_desc_overrides_get",&obj0)) SWIG_fail;
+ {
+ arg1 = (struct svn_opt_subcommand_desc3_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_opt_subcommand_desc3_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ result = (svn_opt_subcommand_desc3_t_desc_overrides *)(svn_opt_subcommand_desc3_t_desc_overrides *) ((arg1)->desc_overrides);
+ resultobj = svn_swig_py_new_pointer_obj((void*)(result), SWIGTYPE_p_svn_opt_subcommand_desc3_t_desc_overrides,
+ _global_py_pool, args);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_svn_opt_subcommand_desc3_t(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ struct svn_opt_subcommand_desc3_t *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_svn_opt_subcommand_desc3_t")) SWIG_fail;
+ {
+ svn_swig_py_release_py_lock();
+
+ result = (struct svn_opt_subcommand_desc3_t *)calloc(1, sizeof(struct svn_opt_subcommand_desc3_t));
+
+ svn_swig_py_acquire_py_lock();
+
+ }
+ resultobj = svn_swig_py_new_pointer_obj((void*)(result), SWIGTYPE_p_svn_opt_subcommand_desc3_t,
+ _global_py_pool, args);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_svn_opt_subcommand_desc3_t(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ struct svn_opt_subcommand_desc3_t *arg1 = (struct svn_opt_subcommand_desc3_t *) 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_svn_opt_subcommand_desc3_t",&obj0)) SWIG_fail;
+ {
+ arg1 = (struct svn_opt_subcommand_desc3_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_opt_subcommand_desc3_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ {
+ svn_swig_py_release_py_lock();
+
+ free((char *) arg1);
+
+ svn_swig_py_acquire_py_lock();
+
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *svn_opt_subcommand_desc3_t_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char *)"O:swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_svn_opt_subcommand_desc3_t, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_svn_opt_subcommand_desc3_t_desc_overrides_optch_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ svn_opt_subcommand_desc3_t_desc_overrides *arg1 = (svn_opt_subcommand_desc3_t_desc_overrides *) 0 ;
+ int arg2 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:svn_opt_subcommand_desc3_t_desc_overrides_optch_set",&obj0,&obj1)) SWIG_fail;
+ {
+ arg1 = (svn_opt_subcommand_desc3_t_desc_overrides *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_opt_subcommand_desc3_t_desc_overrides, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg2 = (int)SWIG_As_long (obj1);
+ if (SWIG_arg_fail(svn_argnum_obj1)) {
+ SWIG_fail;
+ }
+ }
+ if (arg1) (arg1)->optch = arg2;
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_svn_opt_subcommand_desc3_t_desc_overrides_optch_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ svn_opt_subcommand_desc3_t_desc_overrides *arg1 = (svn_opt_subcommand_desc3_t_desc_overrides *) 0 ;
+ PyObject * obj0 = 0 ;
+ int result;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:svn_opt_subcommand_desc3_t_desc_overrides_optch_get",&obj0)) SWIG_fail;
+ {
+ arg1 = (svn_opt_subcommand_desc3_t_desc_overrides *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_opt_subcommand_desc3_t_desc_overrides, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ result = (int) ((arg1)->optch);
+ resultobj = SWIG_From_long((long)(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_svn_opt_subcommand_desc3_t_desc_overrides_desc_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ svn_opt_subcommand_desc3_t_desc_overrides *arg1 = (svn_opt_subcommand_desc3_t_desc_overrides *) 0 ;
+ char *arg2 = (char *) 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"Os:svn_opt_subcommand_desc3_t_desc_overrides_desc_set",&obj0,&arg2)) SWIG_fail;
+ {
+ arg1 = (svn_opt_subcommand_desc3_t_desc_overrides *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_opt_subcommand_desc3_t_desc_overrides, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ {
+ apr_size_t len = strlen(arg2) + 1;
+ char *copied;
+ if (arg1->desc) free((char *)arg1->desc);
+ copied = malloc(len);
+ memcpy(copied, arg2, len);
+ arg1->desc = copied;
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_svn_opt_subcommand_desc3_t_desc_overrides_desc_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ svn_opt_subcommand_desc3_t_desc_overrides *arg1 = (svn_opt_subcommand_desc3_t_desc_overrides *) 0 ;
+ PyObject * obj0 = 0 ;
+ char *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:svn_opt_subcommand_desc3_t_desc_overrides_desc_get",&obj0)) SWIG_fail;
+ {
+ arg1 = (svn_opt_subcommand_desc3_t_desc_overrides *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_opt_subcommand_desc3_t_desc_overrides, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ result = (char *) ((arg1)->desc);
+ resultobj = SWIG_FromCharPtr((const char *)result);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_svn_opt_subcommand_desc3_t_desc_overrides(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ svn_opt_subcommand_desc3_t_desc_overrides *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_svn_opt_subcommand_desc3_t_desc_overrides")) SWIG_fail;
+ {
+ svn_swig_py_release_py_lock();
+
+ result = (svn_opt_subcommand_desc3_t_desc_overrides *)calloc(1, sizeof(svn_opt_subcommand_desc3_t_desc_overrides));
+
+ svn_swig_py_acquire_py_lock();
+
+ }
+ resultobj = svn_swig_py_new_pointer_obj((void*)(result), SWIGTYPE_p_svn_opt_subcommand_desc3_t_desc_overrides,
+ _global_py_pool, args);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_svn_opt_subcommand_desc3_t_desc_overrides(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ svn_opt_subcommand_desc3_t_desc_overrides *arg1 = (svn_opt_subcommand_desc3_t_desc_overrides *) 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_svn_opt_subcommand_desc3_t_desc_overrides",&obj0)) SWIG_fail;
+ {
+ arg1 = (svn_opt_subcommand_desc3_t_desc_overrides *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_opt_subcommand_desc3_t_desc_overrides, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ {
+ svn_swig_py_release_py_lock();
+
+ free((char *) arg1);
+
+ svn_swig_py_acquire_py_lock();
+
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *svn_opt_subcommand_desc3_t_desc_overrides_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char *)"O:swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_svn_opt_subcommand_desc3_t_desc_overrides, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
SWIGINTERN PyObject *_wrap_svn_opt_subcommand_desc2_t_name_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
struct svn_opt_subcommand_desc2_t *arg1 = (struct svn_opt_subcommand_desc2_t *) 0 ;
@@ -11474,6 +11979,36 @@ SWIGINTERN PyObject *svn_opt_subcommand_desc_t_swigregister(PyObject *SWIGUNUSED
return SWIG_Py_Void();
}
+SWIGINTERN PyObject *_wrap_svn_opt_get_canonical_subcommand3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ svn_opt_subcommand_desc3_t *arg1 = (svn_opt_subcommand_desc3_t *) 0 ;
+ char *arg2 = (char *) 0 ;
+ PyObject * obj0 = 0 ;
+ svn_opt_subcommand_desc3_t *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"Os:svn_opt_get_canonical_subcommand3",&obj0,&arg2)) SWIG_fail;
+ {
+ arg1 = (svn_opt_subcommand_desc3_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_opt_subcommand_desc3_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ {
+ svn_swig_py_release_py_lock();
+
+ result = (svn_opt_subcommand_desc3_t *)svn_opt_get_canonical_subcommand3((struct svn_opt_subcommand_desc3_t const *)arg1,(char const *)arg2);
+
+ svn_swig_py_acquire_py_lock();
+
+ }
+ resultobj = svn_swig_py_new_pointer_obj((void*)(result), SWIGTYPE_p_svn_opt_subcommand_desc3_t,
+ _global_py_pool, args);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
SWIGINTERN PyObject *_wrap_svn_opt_get_canonical_subcommand2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
svn_opt_subcommand_desc2_t *arg1 = (svn_opt_subcommand_desc2_t *) 0 ;
@@ -11534,6 +12069,73 @@ fail:
}
+SWIGINTERN PyObject *_wrap_svn_opt_get_option_from_code3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ int arg1 ;
+ apr_getopt_option_t *arg2 = (apr_getopt_option_t *) 0 ;
+ svn_opt_subcommand_desc3_t *arg3 = (svn_opt_subcommand_desc3_t *) 0 ;
+ apr_pool_t *arg4 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool = NULL ;
+ PyObject *_global_py_pool = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ apr_getopt_option_t *result = 0 ;
+
+ if (svn_swig_py_get_pool_arg(args, SWIGTYPE_p_apr_pool_t,
+ &_global_py_pool, &_global_pool))
+ SWIG_fail;
+ arg4 = _global_pool;
+ if (!PyArg_ParseTuple(args,(char *)"OOO|O:svn_opt_get_option_from_code3",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+ {
+ arg1 = (int)SWIG_As_long (obj0);
+ if (SWIG_arg_fail(svn_argnum_obj0)) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg2 = (apr_getopt_option_t *)svn_swig_py_must_get_ptr(obj1, SWIGTYPE_p_apr_getopt_option_t, svn_argnum_obj1);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg3 = (svn_opt_subcommand_desc3_t *)svn_swig_py_must_get_ptr(obj2, SWIGTYPE_p_svn_opt_subcommand_desc3_t, svn_argnum_obj2);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ if (obj3) {
+ /* Verify that the user supplied a valid pool */
+ if (obj3 != Py_None && obj3 != _global_py_pool) {
+ SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj3);
+ SWIG_arg_fail(svn_argnum_obj3);
+ SWIG_fail;
+ }
+ }
+ {
+ svn_swig_py_release_py_lock();
+
+ result = (apr_getopt_option_t *)svn_opt_get_option_from_code3(arg1,(apr_getopt_option_t const *)arg2,(struct svn_opt_subcommand_desc3_t const *)arg3,arg4);
+
+ svn_swig_py_acquire_py_lock();
+
+ }
+ resultobj = svn_swig_py_new_pointer_obj((void*)(result), SWIGTYPE_p_apr_getopt_option_t,
+ _global_py_pool, args);
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ return resultobj;
+fail:
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ return NULL;
+}
+
+
SWIGINTERN PyObject *_wrap_svn_opt_get_option_from_code2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
int arg1 ;
@@ -11638,6 +12240,52 @@ fail:
}
+SWIGINTERN PyObject *_wrap_svn_opt_subcommand_takes_option4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ svn_opt_subcommand_desc3_t *arg1 = (svn_opt_subcommand_desc3_t *) 0 ;
+ int arg2 ;
+ int *arg3 = (int *) 0 ;
+ int temp3 ;
+ int res3 = SWIG_TMPOBJ ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ svn_boolean_t result;
+
+ arg3 = &temp3;
+ if (!PyArg_ParseTuple(args,(char *)"OO:svn_opt_subcommand_takes_option4",&obj0,&obj1)) SWIG_fail;
+ {
+ arg1 = (svn_opt_subcommand_desc3_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_opt_subcommand_desc3_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg2 = (int)SWIG_As_long (obj1);
+ if (SWIG_arg_fail(svn_argnum_obj1)) {
+ SWIG_fail;
+ }
+ }
+ {
+ svn_swig_py_release_py_lock();
+
+ result = (svn_boolean_t)svn_opt_subcommand_takes_option4((struct svn_opt_subcommand_desc3_t const *)arg1,arg2,(int const *)arg3);
+
+ svn_swig_py_acquire_py_lock();
+
+ }
+ resultobj = SWIG_From_long((long)(result));
+ if (SWIG_IsTmpObj(res3)) {
+ resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg3)));
+ } else {
+ int new_flags = SWIG_IsNewObj(res3) ? (SWIG_POINTER_OWN | 0 ) : 0 ;
+ resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg3), SWIGTYPE_p_int, new_flags));
+ }
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
SWIGINTERN PyObject *_wrap_svn_opt_subcommand_takes_option3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
svn_opt_subcommand_desc2_t *arg1 = (svn_opt_subcommand_desc2_t *) 0 ;
@@ -11756,6 +12404,76 @@ fail:
}
+SWIGINTERN PyObject *_wrap_svn_opt_print_generic_help3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ char *arg1 = (char *) 0 ;
+ svn_opt_subcommand_desc3_t *arg2 = (svn_opt_subcommand_desc3_t *) 0 ;
+ apr_getopt_option_t *arg3 = (apr_getopt_option_t *) 0 ;
+ char *arg4 = (char *) 0 ;
+ apr_pool_t *arg5 = (apr_pool_t *) 0 ;
+ FILE *arg6 = (FILE *) 0 ;
+ apr_pool_t *_global_pool = NULL ;
+ PyObject *_global_py_pool = NULL ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+
+ if (svn_swig_py_get_pool_arg(args, SWIGTYPE_p_apr_pool_t,
+ &_global_py_pool, &_global_pool))
+ SWIG_fail;
+ arg5 = _global_pool;
+ if (!PyArg_ParseTuple(args,(char *)"sOOs|OO:svn_opt_print_generic_help3",&arg1,&obj1,&obj2,&arg4,&obj4,&obj5)) SWIG_fail;
+ {
+ arg2 = (svn_opt_subcommand_desc3_t *)svn_swig_py_must_get_ptr(obj1, SWIGTYPE_p_svn_opt_subcommand_desc3_t, svn_argnum_obj1);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg3 = (apr_getopt_option_t *)svn_swig_py_must_get_ptr(obj2, SWIGTYPE_p_apr_getopt_option_t, svn_argnum_obj2);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ if (obj4) {
+ /* Verify that the user supplied a valid pool */
+ if (obj4 != Py_None && obj4 != _global_py_pool) {
+ SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj4);
+ SWIG_arg_fail(svn_argnum_obj4);
+ SWIG_fail;
+ }
+ }
+ if (obj5) {
+ {
+ arg6 = PyFile_AsFile(obj5);
+ if (arg6 == NULL) {
+ PyErr_SetString(PyExc_ValueError, "Must pass in a valid file object");
+ SWIG_fail;
+ }
+ }
+ }
+ {
+ svn_swig_py_release_py_lock();
+
+ svn_opt_print_generic_help3((char const *)arg1,(struct svn_opt_subcommand_desc3_t const *)arg2,(apr_getopt_option_t const *)arg3,(char const *)arg4,arg5,arg6);
+
+ svn_swig_py_acquire_py_lock();
+
+ }
+ resultobj = SWIG_Py_Void();
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ return resultobj;
+fail:
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ return NULL;
+}
+
+
SWIGINTERN PyObject *_wrap_svn_opt_print_generic_help2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
char *arg1 = (char *) 0 ;
@@ -11899,6 +12617,74 @@ fail:
}
+SWIGINTERN PyObject *_wrap_svn_opt_subcommand_help4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ char *arg1 = (char *) 0 ;
+ svn_opt_subcommand_desc3_t *arg2 = (svn_opt_subcommand_desc3_t *) 0 ;
+ apr_getopt_option_t *arg3 = (apr_getopt_option_t *) 0 ;
+ int *arg4 = (int *) 0 ;
+ apr_pool_t *arg5 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool = NULL ;
+ PyObject *_global_py_pool = NULL ;
+ int temp4 ;
+ int res4 = SWIG_TMPOBJ ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+
+ if (svn_swig_py_get_pool_arg(args, SWIGTYPE_p_apr_pool_t,
+ &_global_py_pool, &_global_pool))
+ SWIG_fail;
+ arg5 = _global_pool;
+ arg4 = &temp4;
+ if (!PyArg_ParseTuple(args,(char *)"sOO|O:svn_opt_subcommand_help4",&arg1,&obj1,&obj2,&obj3)) SWIG_fail;
+ {
+ arg2 = (svn_opt_subcommand_desc3_t *)svn_swig_py_must_get_ptr(obj1, SWIGTYPE_p_svn_opt_subcommand_desc3_t, svn_argnum_obj1);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg3 = (apr_getopt_option_t *)svn_swig_py_must_get_ptr(obj2, SWIGTYPE_p_apr_getopt_option_t, svn_argnum_obj2);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ if (obj3) {
+ /* Verify that the user supplied a valid pool */
+ if (obj3 != Py_None && obj3 != _global_py_pool) {
+ SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj3);
+ SWIG_arg_fail(svn_argnum_obj3);
+ SWIG_fail;
+ }
+ }
+ {
+ svn_swig_py_release_py_lock();
+
+ svn_opt_subcommand_help4((char const *)arg1,(struct svn_opt_subcommand_desc3_t const *)arg2,(apr_getopt_option_t const *)arg3,(int const *)arg4,arg5);
+
+ svn_swig_py_acquire_py_lock();
+
+ }
+ resultobj = SWIG_Py_Void();
+ if (SWIG_IsTmpObj(res4)) {
+ resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg4)));
+ } else {
+ int new_flags = SWIG_IsNewObj(res4) ? (SWIG_POINTER_OWN | 0 ) : 0 ;
+ resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg4), SWIGTYPE_p_int, new_flags));
+ }
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ return resultobj;
+fail:
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ return NULL;
+}
+
+
SWIGINTERN PyObject *_wrap_svn_opt_subcommand_help3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
char *arg1 = (char *) 0 ;
@@ -13207,6 +13993,120 @@ fail:
}
+SWIGINTERN PyObject *_wrap_svn_opt_print_help5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ apr_getopt_t *arg1 = (apr_getopt_t *) 0 ;
+ char *arg2 = (char *) 0 ;
+ svn_boolean_t arg3 ;
+ svn_boolean_t arg4 ;
+ svn_boolean_t arg5 ;
+ char *arg6 = (char *) 0 ;
+ char *arg7 = (char *) 0 ;
+ svn_opt_subcommand_desc3_t *arg8 = (svn_opt_subcommand_desc3_t *) 0 ;
+ apr_getopt_option_t *arg9 = (apr_getopt_option_t *) 0 ;
+ int *arg10 = (int *) 0 ;
+ char *arg11 = (char *) 0 ;
+ apr_pool_t *arg12 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool = NULL ;
+ PyObject *_global_py_pool = NULL ;
+ int temp10 ;
+ int res10 = SWIG_TMPOBJ ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj7 = 0 ;
+ PyObject * obj8 = 0 ;
+ PyObject * obj10 = 0 ;
+ svn_error_t *result = 0 ;
+
+ if (svn_swig_py_get_pool_arg(args, SWIGTYPE_p_apr_pool_t,
+ &_global_py_pool, &_global_pool))
+ SWIG_fail;
+ arg12 = _global_pool;
+ arg10 = &temp10;
+ if (!PyArg_ParseTuple(args,(char *)"OsOOOssOOs|O:svn_opt_print_help5",&obj0,&arg2,&obj2,&obj3,&obj4,&arg6,&arg7,&obj7,&obj8,&arg11,&obj10)) SWIG_fail;
+ {
+ arg1 = (apr_getopt_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_apr_getopt_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg3 = (svn_boolean_t)SWIG_As_long (obj2);
+ if (SWIG_arg_fail(svn_argnum_obj2)) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg4 = (svn_boolean_t)SWIG_As_long (obj3);
+ if (SWIG_arg_fail(svn_argnum_obj3)) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg5 = (svn_boolean_t)SWIG_As_long (obj4);
+ if (SWIG_arg_fail(svn_argnum_obj4)) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg8 = (svn_opt_subcommand_desc3_t *)svn_swig_py_must_get_ptr(obj7, SWIGTYPE_p_svn_opt_subcommand_desc3_t, svn_argnum_obj7);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg9 = (apr_getopt_option_t *)svn_swig_py_must_get_ptr(obj8, SWIGTYPE_p_apr_getopt_option_t, svn_argnum_obj8);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ if (obj10) {
+ /* Verify that the user supplied a valid pool */
+ if (obj10 != Py_None && obj10 != _global_py_pool) {
+ SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj10);
+ SWIG_arg_fail(svn_argnum_obj10);
+ SWIG_fail;
+ }
+ }
+ {
+ svn_swig_py_release_py_lock();
+
+ result = (svn_error_t *)svn_opt_print_help5(arg1,(char const *)arg2,arg3,arg4,arg5,(char const *)arg6,(char const *)arg7,(struct svn_opt_subcommand_desc3_t const *)arg8,(apr_getopt_option_t const *)arg9,(int const *)arg10,(char const *)arg11,arg12);
+
+ svn_swig_py_acquire_py_lock();
+
+ }
+ {
+ if (result != NULL) {
+ if (result->apr_err != SVN_ERR_SWIG_PY_EXCEPTION_SET)
+ svn_swig_py_svn_exception(result);
+ else
+ svn_error_clear(result);
+ SWIG_fail;
+ }
+ Py_INCREF(Py_None);
+ resultobj = Py_None;
+ }
+ if (SWIG_IsTmpObj(res10)) {
+ resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg10)));
+ } else {
+ int new_flags = SWIG_IsNewObj(res10) ? (SWIG_POINTER_OWN | 0 ) : 0 ;
+ resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg10), SWIGTYPE_p_int, new_flags));
+ }
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ return resultobj;
+fail:
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ return NULL;
+}
+
+
SWIGINTERN PyObject *_wrap_svn_opt_print_help4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
apr_getopt_t *arg1 = (apr_getopt_t *) 0 ;
@@ -35362,6 +36262,27 @@ static PyMethodDef SwigMethods[] = {
{ (char *)"svn_categorize_props", _wrap_svn_categorize_props, METH_VARARGS, (char *)"svn_categorize_props(apr_array_header_t proplist, apr_pool_t pool) -> svn_error_t"},
{ (char *)"svn_prop_diffs", _wrap_svn_prop_diffs, METH_VARARGS, (char *)"svn_prop_diffs(apr_hash_t target_props, apr_hash_t source_props, apr_pool_t pool) -> svn_error_t"},
{ (char *)"svn_prop_name_is_valid", _wrap_svn_prop_name_is_valid, METH_VARARGS, (char *)"svn_prop_name_is_valid(char const * prop_name) -> svn_boolean_t"},
+ { (char *)"svn_opt_subcommand_desc3_t_name_set", _wrap_svn_opt_subcommand_desc3_t_name_set, METH_VARARGS, (char *)"svn_opt_subcommand_desc3_t_name_set(svn_opt_subcommand_desc3_t self, char const * name)"},
+ { (char *)"svn_opt_subcommand_desc3_t_name_get", _wrap_svn_opt_subcommand_desc3_t_name_get, METH_VARARGS, (char *)"svn_opt_subcommand_desc3_t_name_get(svn_opt_subcommand_desc3_t self) -> char const *"},
+ { (char *)"svn_opt_subcommand_desc3_t_cmd_func_set", _wrap_svn_opt_subcommand_desc3_t_cmd_func_set, METH_VARARGS, (char *)"svn_opt_subcommand_desc3_t_cmd_func_set(svn_opt_subcommand_desc3_t self, svn_opt_subcommand_t * cmd_func)"},
+ { (char *)"svn_opt_subcommand_desc3_t_cmd_func_get", _wrap_svn_opt_subcommand_desc3_t_cmd_func_get, METH_VARARGS, (char *)"svn_opt_subcommand_desc3_t_cmd_func_get(svn_opt_subcommand_desc3_t self) -> svn_opt_subcommand_t *"},
+ { (char *)"svn_opt_subcommand_desc3_t_aliases_set", _wrap_svn_opt_subcommand_desc3_t_aliases_set, METH_VARARGS, (char *)"svn_opt_subcommand_desc3_t_aliases_set(svn_opt_subcommand_desc3_t self, char const *[3] aliases)"},
+ { (char *)"svn_opt_subcommand_desc3_t_aliases_get", _wrap_svn_opt_subcommand_desc3_t_aliases_get, METH_VARARGS, (char *)"svn_opt_subcommand_desc3_t_aliases_get(svn_opt_subcommand_desc3_t self) -> char const *[3]"},
+ { (char *)"svn_opt_subcommand_desc3_t_help_set", _wrap_svn_opt_subcommand_desc3_t_help_set, METH_VARARGS, (char *)"svn_opt_subcommand_desc3_t_help_set(svn_opt_subcommand_desc3_t self, char const *[100] help)"},
+ { (char *)"svn_opt_subcommand_desc3_t_help_get", _wrap_svn_opt_subcommand_desc3_t_help_get, METH_VARARGS, (char *)"svn_opt_subcommand_desc3_t_help_get(svn_opt_subcommand_desc3_t self) -> char const *[100]"},
+ { (char *)"svn_opt_subcommand_desc3_t_valid_options_set", _wrap_svn_opt_subcommand_desc3_t_valid_options_set, METH_VARARGS, (char *)"svn_opt_subcommand_desc3_t_valid_options_set(svn_opt_subcommand_desc3_t self, int [50] valid_options)"},
+ { (char *)"svn_opt_subcommand_desc3_t_valid_options_get", _wrap_svn_opt_subcommand_desc3_t_valid_options_get, METH_VARARGS, (char *)"svn_opt_subcommand_desc3_t_valid_options_get(svn_opt_subcommand_desc3_t self) -> int [50]"},
+ { (char *)"svn_opt_subcommand_desc3_t_desc_overrides_get", _wrap_svn_opt_subcommand_desc3_t_desc_overrides_get, METH_VARARGS, (char *)"svn_opt_subcommand_desc3_t_desc_overrides_get(svn_opt_subcommand_desc3_t self) -> svn_opt_subcommand_desc3_t_desc_overrides"},
+ { (char *)"new_svn_opt_subcommand_desc3_t", _wrap_new_svn_opt_subcommand_desc3_t, METH_VARARGS, (char *)"new_svn_opt_subcommand_desc3_t() -> svn_opt_subcommand_desc3_t"},
+ { (char *)"delete_svn_opt_subcommand_desc3_t", _wrap_delete_svn_opt_subcommand_desc3_t, METH_VARARGS, (char *)"delete_svn_opt_subcommand_desc3_t(svn_opt_subcommand_desc3_t self)"},
+ { (char *)"svn_opt_subcommand_desc3_t_swigregister", svn_opt_subcommand_desc3_t_swigregister, METH_VARARGS, NULL},
+ { (char *)"svn_opt_subcommand_desc3_t_desc_overrides_optch_set", _wrap_svn_opt_subcommand_desc3_t_desc_overrides_optch_set, METH_VARARGS, (char *)"svn_opt_subcommand_desc3_t_desc_overrides_optch_set(svn_opt_subcommand_desc3_t_desc_overrides self, int optch)"},
+ { (char *)"svn_opt_subcommand_desc3_t_desc_overrides_optch_get", _wrap_svn_opt_subcommand_desc3_t_desc_overrides_optch_get, METH_VARARGS, (char *)"svn_opt_subcommand_desc3_t_desc_overrides_optch_get(svn_opt_subcommand_desc3_t_desc_overrides self) -> int"},
+ { (char *)"svn_opt_subcommand_desc3_t_desc_overrides_desc_set", _wrap_svn_opt_subcommand_desc3_t_desc_overrides_desc_set, METH_VARARGS, (char *)"svn_opt_subcommand_desc3_t_desc_overrides_desc_set(svn_opt_subcommand_desc3_t_desc_overrides self, char const * desc)"},
+ { (char *)"svn_opt_subcommand_desc3_t_desc_overrides_desc_get", _wrap_svn_opt_subcommand_desc3_t_desc_overrides_desc_get, METH_VARARGS, (char *)"svn_opt_subcommand_desc3_t_desc_overrides_desc_get(svn_opt_subcommand_desc3_t_desc_overrides self) -> char const *"},
+ { (char *)"new_svn_opt_subcommand_desc3_t_desc_overrides", _wrap_new_svn_opt_subcommand_desc3_t_desc_overrides, METH_VARARGS, (char *)"new_svn_opt_subcommand_desc3_t_desc_overrides() -> svn_opt_subcommand_desc3_t_desc_overrides"},
+ { (char *)"delete_svn_opt_subcommand_desc3_t_desc_overrides", _wrap_delete_svn_opt_subcommand_desc3_t_desc_overrides, METH_VARARGS, (char *)"delete_svn_opt_subcommand_desc3_t_desc_overrides(svn_opt_subcommand_desc3_t_desc_overrides self)"},
+ { (char *)"svn_opt_subcommand_desc3_t_desc_overrides_swigregister", svn_opt_subcommand_desc3_t_desc_overrides_swigregister, METH_VARARGS, NULL},
{ (char *)"svn_opt_subcommand_desc2_t_name_set", _wrap_svn_opt_subcommand_desc2_t_name_set, METH_VARARGS, (char *)"svn_opt_subcommand_desc2_t_name_set(svn_opt_subcommand_desc2_t self, char const * name)"},
{ (char *)"svn_opt_subcommand_desc2_t_name_get", _wrap_svn_opt_subcommand_desc2_t_name_get, METH_VARARGS, (char *)"svn_opt_subcommand_desc2_t_name_get(svn_opt_subcommand_desc2_t self) -> char const *"},
{ (char *)"svn_opt_subcommand_desc2_t_cmd_func_set", _wrap_svn_opt_subcommand_desc2_t_cmd_func_set, METH_VARARGS, (char *)"svn_opt_subcommand_desc2_t_cmd_func_set(svn_opt_subcommand_desc2_t self, svn_opt_subcommand_t * cmd_func)"},
@@ -35396,15 +36317,20 @@ static PyMethodDef SwigMethods[] = {
{ (char *)"new_svn_opt_subcommand_desc_t", _wrap_new_svn_opt_subcommand_desc_t, METH_VARARGS, (char *)"new_svn_opt_subcommand_desc_t() -> svn_opt_subcommand_desc_t"},
{ (char *)"delete_svn_opt_subcommand_desc_t", _wrap_delete_svn_opt_subcommand_desc_t, METH_VARARGS, (char *)"delete_svn_opt_subcommand_desc_t(svn_opt_subcommand_desc_t self)"},
{ (char *)"svn_opt_subcommand_desc_t_swigregister", svn_opt_subcommand_desc_t_swigregister, METH_VARARGS, NULL},
+ { (char *)"svn_opt_get_canonical_subcommand3", _wrap_svn_opt_get_canonical_subcommand3, METH_VARARGS, (char *)"svn_opt_get_canonical_subcommand3(svn_opt_subcommand_desc3_t table, char const * cmd_name) -> svn_opt_subcommand_desc3_t"},
{ (char *)"svn_opt_get_canonical_subcommand2", _wrap_svn_opt_get_canonical_subcommand2, METH_VARARGS, (char *)"svn_opt_get_canonical_subcommand2(svn_opt_subcommand_desc2_t table, char const * cmd_name) -> svn_opt_subcommand_desc2_t"},
{ (char *)"svn_opt_get_canonical_subcommand", _wrap_svn_opt_get_canonical_subcommand, METH_VARARGS, (char *)"svn_opt_get_canonical_subcommand(svn_opt_subcommand_desc_t table, char const * cmd_name) -> svn_opt_subcommand_desc_t"},
+ { (char *)"svn_opt_get_option_from_code3", _wrap_svn_opt_get_option_from_code3, METH_VARARGS, (char *)"svn_opt_get_option_from_code3(int code, apr_getopt_option_t const * option_table, svn_opt_subcommand_desc3_t command, apr_pool_t pool) -> apr_getopt_option_t const *"},
{ (char *)"svn_opt_get_option_from_code2", _wrap_svn_opt_get_option_from_code2, METH_VARARGS, (char *)"svn_opt_get_option_from_code2(int code, apr_getopt_option_t const * option_table, svn_opt_subcommand_desc2_t command, apr_pool_t pool) -> apr_getopt_option_t const *"},
{ (char *)"svn_opt_get_option_from_code", _wrap_svn_opt_get_option_from_code, METH_VARARGS, (char *)"svn_opt_get_option_from_code(int code, apr_getopt_option_t const * option_table) -> apr_getopt_option_t const *"},
+ { (char *)"svn_opt_subcommand_takes_option4", _wrap_svn_opt_subcommand_takes_option4, METH_VARARGS, (char *)"svn_opt_subcommand_takes_option4(svn_opt_subcommand_desc3_t command, int option_code) -> svn_boolean_t"},
{ (char *)"svn_opt_subcommand_takes_option3", _wrap_svn_opt_subcommand_takes_option3, METH_VARARGS, (char *)"svn_opt_subcommand_takes_option3(svn_opt_subcommand_desc2_t command, int option_code) -> svn_boolean_t"},
{ (char *)"svn_opt_subcommand_takes_option2", _wrap_svn_opt_subcommand_takes_option2, METH_VARARGS, (char *)"svn_opt_subcommand_takes_option2(svn_opt_subcommand_desc2_t command, int option_code) -> svn_boolean_t"},
{ (char *)"svn_opt_subcommand_takes_option", _wrap_svn_opt_subcommand_takes_option, METH_VARARGS, (char *)"svn_opt_subcommand_takes_option(svn_opt_subcommand_desc_t command, int option_code) -> svn_boolean_t"},
+ { (char *)"svn_opt_print_generic_help3", _wrap_svn_opt_print_generic_help3, METH_VARARGS, (char *)"svn_opt_print_generic_help3(char const * header, svn_opt_subcommand_desc3_t cmd_table, apr_getopt_option_t const * opt_table, char const * footer, apr_pool_t pool, FILE * stream)"},
{ (char *)"svn_opt_print_generic_help2", _wrap_svn_opt_print_generic_help2, METH_VARARGS, (char *)"svn_opt_print_generic_help2(char const * header, svn_opt_subcommand_desc2_t cmd_table, apr_getopt_option_t const * opt_table, char const * footer, apr_pool_t pool, FILE * stream)"},
{ (char *)"svn_opt_format_option", _wrap_svn_opt_format_option, METH_VARARGS, (char *)"svn_opt_format_option(apr_getopt_option_t const * opt, svn_boolean_t doc, apr_pool_t pool)"},
+ { (char *)"svn_opt_subcommand_help4", _wrap_svn_opt_subcommand_help4, METH_VARARGS, (char *)"svn_opt_subcommand_help4(char const * subcommand, svn_opt_subcommand_desc3_t table, apr_getopt_option_t const * options_table, apr_pool_t pool)"},
{ (char *)"svn_opt_subcommand_help3", _wrap_svn_opt_subcommand_help3, METH_VARARGS, (char *)"svn_opt_subcommand_help3(char const * subcommand, svn_opt_subcommand_desc2_t table, apr_getopt_option_t const * options_table, apr_pool_t pool)"},
{ (char *)"svn_opt_subcommand_help2", _wrap_svn_opt_subcommand_help2, METH_VARARGS, (char *)"svn_opt_subcommand_help2(char const * subcommand, svn_opt_subcommand_desc2_t table, apr_getopt_option_t const * options_table, apr_pool_t pool)"},
{ (char *)"svn_opt_subcommand_help", _wrap_svn_opt_subcommand_help, METH_VARARGS, (char *)"svn_opt_subcommand_help(char const * subcommand, svn_opt_subcommand_desc_t table, apr_getopt_option_t const * options_table, apr_pool_t pool)"},
@@ -35439,6 +36365,7 @@ static PyMethodDef SwigMethods[] = {
{ (char *)"svn_opt_parse_num_args", _wrap_svn_opt_parse_num_args, METH_VARARGS, (char *)"svn_opt_parse_num_args(apr_getopt_t * os, int num_args, apr_pool_t pool) -> svn_error_t"},
{ (char *)"svn_opt_parse_all_args", _wrap_svn_opt_parse_all_args, METH_VARARGS, (char *)"svn_opt_parse_all_args(apr_getopt_t * os, apr_pool_t pool) -> svn_error_t"},
{ (char *)"svn_opt_parse_path", _wrap_svn_opt_parse_path, METH_VARARGS, (char *)"svn_opt_parse_path(svn_opt_revision_t rev, char const * path, apr_pool_t pool) -> svn_error_t"},
+ { (char *)"svn_opt_print_help5", _wrap_svn_opt_print_help5, METH_VARARGS, (char *)"svn_opt_print_help5(apr_getopt_t * os, char const * pgm_name, svn_boolean_t print_version, svn_boolean_t quiet, svn_boolean_t verbose, char const * version_footer, char const * header, svn_opt_subcommand_desc3_t cmd_table, apr_getopt_option_t const * option_table, char const * footer, apr_pool_t pool) -> svn_error_t"},
{ (char *)"svn_opt_print_help4", _wrap_svn_opt_print_help4, METH_VARARGS, (char *)"svn_opt_print_help4(apr_getopt_t * os, char const * pgm_name, svn_boolean_t print_version, svn_boolean_t quiet, svn_boolean_t verbose, char const * version_footer, char const * header, svn_opt_subcommand_desc2_t cmd_table, apr_getopt_option_t const * option_table, char const * footer, apr_pool_t pool) -> svn_error_t"},
{ (char *)"svn_opt_print_help3", _wrap_svn_opt_print_help3, METH_VARARGS, (char *)"svn_opt_print_help3(apr_getopt_t * os, char const * pgm_name, svn_boolean_t print_version, svn_boolean_t quiet, char const * version_footer, char const * header, svn_opt_subcommand_desc2_t cmd_table, apr_getopt_option_t const * option_table, char const * footer, apr_pool_t pool) -> svn_error_t"},
{ (char *)"svn_opt_print_help2", _wrap_svn_opt_print_help2, METH_VARARGS, (char *)"svn_opt_print_help2(apr_getopt_t * os, char const * pgm_name, svn_boolean_t print_version, svn_boolean_t quiet, char const * version_footer, char const * header, svn_opt_subcommand_desc2_t cmd_table, apr_getopt_option_t const * option_table, char const * footer, apr_pool_t pool) -> svn_error_t"},
@@ -36028,6 +36955,8 @@ static swig_type_info _swigt__p_svn_opt_revision_t = {"_p_svn_opt_revision_t", "
static swig_type_info _swigt__p_svn_opt_revision_value_t = {"_p_svn_opt_revision_value_t", "union svn_opt_revision_value_t *|svn_opt_revision_value_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc2_t = {"_p_svn_opt_subcommand_desc2_t", "struct svn_opt_subcommand_desc2_t *|svn_opt_subcommand_desc2_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc2_t_desc_overrides = {"_p_svn_opt_subcommand_desc2_t_desc_overrides", "svn_opt_subcommand_desc2_t_desc_overrides *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_svn_opt_subcommand_desc3_t = {"_p_svn_opt_subcommand_desc3_t", "struct svn_opt_subcommand_desc3_t *|svn_opt_subcommand_desc3_t *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_svn_opt_subcommand_desc3_t_desc_overrides = {"_p_svn_opt_subcommand_desc3_t_desc_overrides", "svn_opt_subcommand_desc3_t_desc_overrides *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc_t = {"_p_svn_opt_subcommand_desc_t", "struct svn_opt_subcommand_desc_t *|svn_opt_subcommand_desc_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_prop_inherited_item_t = {"_p_svn_prop_inherited_item_t", "struct svn_prop_inherited_item_t *|svn_prop_inherited_item_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_prop_kind = {"_p_svn_prop_kind", "svn_prop_kind_t *|enum svn_prop_kind *", 0, 0, (void*)0, 0};
@@ -36188,6 +37117,8 @@ static swig_type_info *swig_type_initial[] = {
&_swigt__p_svn_opt_revision_value_t,
&_swigt__p_svn_opt_subcommand_desc2_t,
&_swigt__p_svn_opt_subcommand_desc2_t_desc_overrides,
+ &_swigt__p_svn_opt_subcommand_desc3_t,
+ &_swigt__p_svn_opt_subcommand_desc3_t_desc_overrides,
&_swigt__p_svn_opt_subcommand_desc_t,
&_swigt__p_svn_prop_inherited_item_t,
&_swigt__p_svn_prop_kind,
@@ -36348,6 +37279,8 @@ static swig_cast_info _swigc__p_svn_opt_revision_t[] = { {&_swigt__p_svn_opt_re
static swig_cast_info _swigc__p_svn_opt_revision_value_t[] = { {&_swigt__p_svn_opt_revision_value_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc2_t[] = { {&_swigt__p_svn_opt_subcommand_desc2_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc2_t_desc_overrides[] = { {&_swigt__p_svn_opt_subcommand_desc2_t_desc_overrides, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_svn_opt_subcommand_desc3_t[] = { {&_swigt__p_svn_opt_subcommand_desc3_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_svn_opt_subcommand_desc3_t_desc_overrides[] = { {&_swigt__p_svn_opt_subcommand_desc3_t_desc_overrides, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc_t[] = { {&_swigt__p_svn_opt_subcommand_desc_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_prop_inherited_item_t[] = { {&_swigt__p_svn_prop_inherited_item_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_prop_kind[] = { {&_swigt__p_svn_prop_kind, 0, 0, 0},{0, 0, 0, 0}};
@@ -36508,6 +37441,8 @@ static swig_cast_info *swig_cast_initial[] = {
_swigc__p_svn_opt_revision_value_t,
_swigc__p_svn_opt_subcommand_desc2_t,
_swigc__p_svn_opt_subcommand_desc2_t_desc_overrides,
+ _swigc__p_svn_opt_subcommand_desc3_t,
+ _swigc__p_svn_opt_subcommand_desc3_t_desc_overrides,
_swigc__p_svn_opt_subcommand_desc_t,
_swigc__p_svn_prop_inherited_item_t,
_swigc__p_svn_prop_kind,
@@ -37607,16 +38542,16 @@ SWIG_init(void) {
SWIG_Python_SetConstant(d, "SVN__STREAM_CHUNK_SIZE",SWIG_From_long((long)(16384)));
SWIG_Python_SetConstant(d, "SVN_ALLOCATOR_RECOMMENDED_MAX_FREE",SWIG_From_long((long)((4096*1024))));
SWIG_Python_SetConstant(d, "SVN_VER_MAJOR",SWIG_From_long((long)(1)));
- SWIG_Python_SetConstant(d, "SVN_VER_MINOR",SWIG_From_long((long)(10)));
- SWIG_Python_SetConstant(d, "SVN_VER_PATCH",SWIG_From_long((long)(2)));
- SWIG_Python_SetConstant(d, "SVN_VER_MICRO",SWIG_From_long((long)(2)));
+ SWIG_Python_SetConstant(d, "SVN_VER_MINOR",SWIG_From_long((long)(11)));
+ SWIG_Python_SetConstant(d, "SVN_VER_PATCH",SWIG_From_long((long)(0)));
+ SWIG_Python_SetConstant(d, "SVN_VER_MICRO",SWIG_From_long((long)(0)));
SWIG_Python_SetConstant(d, "SVN_VER_LIBRARY",SWIG_From_long((long)(1)));
- SWIG_Python_SetConstant(d, "SVN_VER_TAG",SWIG_FromCharPtr(" (r1835932)"));
- SWIG_Python_SetConstant(d, "SVN_VER_NUMTAG",SWIG_FromCharPtr(""));
- SWIG_Python_SetConstant(d, "SVN_VER_REVISION",SWIG_From_long((long)(1835932)));
- SWIG_Python_SetConstant(d, "SVN_VER_NUM",SWIG_FromCharPtr("1.10.2"));
- SWIG_Python_SetConstant(d, "SVN_VER_NUMBER",SWIG_FromCharPtr("1.10.2"));
- SWIG_Python_SetConstant(d, "SVN_VERSION",SWIG_FromCharPtr("1.10.2 (r1835932)"));
+ SWIG_Python_SetConstant(d, "SVN_VER_TAG",SWIG_FromCharPtr(" (Release Candidate 2)"));
+ SWIG_Python_SetConstant(d, "SVN_VER_NUMTAG",SWIG_FromCharPtr("-rc2"));
+ SWIG_Python_SetConstant(d, "SVN_VER_REVISION",SWIG_From_long((long)(1842234)));
+ SWIG_Python_SetConstant(d, "SVN_VER_NUM",SWIG_FromCharPtr("1.11.0"));
+ SWIG_Python_SetConstant(d, "SVN_VER_NUMBER",SWIG_FromCharPtr("1.11.0-rc2"));
+ SWIG_Python_SetConstant(d, "SVN_VERSION",SWIG_FromCharPtr("1.11.0-rc2 (Release Candidate 2)"));
SWIG_Python_SetConstant(d, "svn_prop_entry_kind",SWIG_From_long((long)(svn_prop_entry_kind)));
SWIG_Python_SetConstant(d, "svn_prop_wc_kind",SWIG_From_long((long)(svn_prop_wc_kind)));
SWIG_Python_SetConstant(d, "svn_prop_regular_kind",SWIG_From_long((long)(svn_prop_regular_kind)));
@@ -37665,6 +38600,7 @@ SWIG_init(void) {
SWIG_Python_SetConstant(d, "SVN_PROP_REVISION_PREFIX",SWIG_FromCharPtr("svn:revision-"));
SWIG_Python_SetConstant(d, "SVN_OPT_MAX_ALIASES",SWIG_From_long((long)(3)));
SWIG_Python_SetConstant(d, "SVN_OPT_MAX_OPTIONS",SWIG_From_long((long)(50)));
+ SWIG_Python_SetConstant(d, "SVN_OPT_MAX_PARAGRAPHS",SWIG_From_long((long)(100)));
SWIG_Python_SetConstant(d, "SVN_OPT_FIRST_LONGOPT_ID",SWIG_From_long((long)(256)));
SWIG_Python_SetConstant(d, "svn_opt_revision_unspecified",SWIG_From_long((long)(svn_opt_revision_unspecified)));
SWIG_Python_SetConstant(d, "svn_opt_revision_number",SWIG_From_long((long)(svn_opt_revision_number)));
diff --git a/subversion/bindings/swig/python/core.py b/subversion/bindings/swig/python/core.py
index f51e034..839abe1 100644
--- a/subversion/bindings/swig/python/core.py
+++ b/subversion/bindings/swig/python/core.py
@@ -2335,7 +2335,107 @@ SVN_PROP_TXN_USER_AGENT = _core.SVN_PROP_TXN_USER_AGENT
SVN_PROP_REVISION_PREFIX = _core.SVN_PROP_REVISION_PREFIX
SVN_OPT_MAX_ALIASES = _core.SVN_OPT_MAX_ALIASES
SVN_OPT_MAX_OPTIONS = _core.SVN_OPT_MAX_OPTIONS
+SVN_OPT_MAX_PARAGRAPHS = _core.SVN_OPT_MAX_PARAGRAPHS
SVN_OPT_FIRST_LONGOPT_ID = _core.SVN_OPT_FIRST_LONGOPT_ID
+class svn_opt_subcommand_desc3_t:
+ """Proxy of C svn_opt_subcommand_desc3_t struct."""
+
+ __swig_setmethods__ = {}
+ __setattr__ = lambda self, name, value: _swig_setattr(self, svn_opt_subcommand_desc3_t, name, value)
+ __swig_getmethods__ = {}
+ __getattr__ = lambda self, name: _swig_getattr(self, svn_opt_subcommand_desc3_t, name)
+ __repr__ = _swig_repr
+ __swig_setmethods__["name"] = _core.svn_opt_subcommand_desc3_t_name_set
+ __swig_getmethods__["name"] = _core.svn_opt_subcommand_desc3_t_name_get
+ __swig_setmethods__["cmd_func"] = _core.svn_opt_subcommand_desc3_t_cmd_func_set
+ __swig_getmethods__["cmd_func"] = _core.svn_opt_subcommand_desc3_t_cmd_func_get
+ __swig_setmethods__["aliases"] = _core.svn_opt_subcommand_desc3_t_aliases_set
+ __swig_getmethods__["aliases"] = _core.svn_opt_subcommand_desc3_t_aliases_get
+ __swig_setmethods__["help"] = _core.svn_opt_subcommand_desc3_t_help_set
+ __swig_getmethods__["help"] = _core.svn_opt_subcommand_desc3_t_help_get
+ __swig_setmethods__["valid_options"] = _core.svn_opt_subcommand_desc3_t_valid_options_set
+ __swig_getmethods__["valid_options"] = _core.svn_opt_subcommand_desc3_t_valid_options_get
+ __swig_getmethods__["desc_overrides"] = _core.svn_opt_subcommand_desc3_t_desc_overrides_get
+ def set_parent_pool(self, parent_pool=None):
+ """Create a new proxy object for TYPE"""
+ import libsvn.core, weakref
+ self.__dict__["_parent_pool"] = \
+ parent_pool or libsvn.core.application_pool;
+ if self.__dict__["_parent_pool"]:
+ self.__dict__["_is_valid"] = weakref.ref(
+ self.__dict__["_parent_pool"]._is_valid)
+
+ def assert_valid(self):
+ """Assert that this object is using valid pool memory"""
+ if "_is_valid" in self.__dict__:
+ assert self.__dict__["_is_valid"](), "Variable has already been deleted"
+
+ def __getattr__(self, name):
+ """Get an attribute from this object"""
+ self.assert_valid()
+
+ value = _swig_getattr(self, self.__class__, name)
+
+ # If we got back a different object than we have, we need to copy all our
+ # metadata into it, so that it looks identical
+ members = self.__dict__.get("_members")
+ if members is not None:
+ _copy_metadata_deep(value, members.get(name))
+
+ # Verify that the new object is good
+ _assert_valid_deep(value)
+
+ return value
+
+ def __setattr__(self, name, value):
+ """Set an attribute on this object"""
+ self.assert_valid()
+
+ # Save a copy of the object, so that the garbage
+ # collector won't kill the object while it's in
+ # SWIG-land
+ self.__dict__.setdefault("_members",{})[name] = value
+
+ return _swig_setattr(self, self.__class__, name, value)
+
+
+ def __init__(self):
+ """__init__(svn_opt_subcommand_desc3_t self) -> svn_opt_subcommand_desc3_t"""
+ this = _core.new_svn_opt_subcommand_desc3_t()
+ try:
+ self.this.append(this)
+ except __builtin__.Exception:
+ self.this = this
+ __swig_destroy__ = _core.delete_svn_opt_subcommand_desc3_t
+ __del__ = lambda self: None
+svn_opt_subcommand_desc3_t_swigregister = _core.svn_opt_subcommand_desc3_t_swigregister
+svn_opt_subcommand_desc3_t_swigregister(svn_opt_subcommand_desc3_t)
+
+class svn_opt_subcommand_desc3_t_desc_overrides:
+ """Proxy of C svn_opt_subcommand_desc3_t_desc_overrides struct."""
+
+ __swig_setmethods__ = {}
+ __setattr__ = lambda self, name, value: _swig_setattr(self, svn_opt_subcommand_desc3_t_desc_overrides, name, value)
+ __swig_getmethods__ = {}
+ __getattr__ = lambda self, name: _swig_getattr(self, svn_opt_subcommand_desc3_t_desc_overrides, name)
+ __repr__ = _swig_repr
+ __swig_setmethods__["optch"] = _core.svn_opt_subcommand_desc3_t_desc_overrides_optch_set
+ __swig_getmethods__["optch"] = _core.svn_opt_subcommand_desc3_t_desc_overrides_optch_get
+ __swig_setmethods__["desc"] = _core.svn_opt_subcommand_desc3_t_desc_overrides_desc_set
+ __swig_getmethods__["desc"] = _core.svn_opt_subcommand_desc3_t_desc_overrides_desc_get
+
+ def __init__(self):
+ """__init__(svn_opt_subcommand_desc3_t_desc_overrides self) -> svn_opt_subcommand_desc3_t_desc_overrides"""
+ this = _core.new_svn_opt_subcommand_desc3_t_desc_overrides()
+ try:
+ self.this.append(this)
+ except __builtin__.Exception:
+ self.this = this
+ __swig_destroy__ = _core.delete_svn_opt_subcommand_desc3_t_desc_overrides
+ __del__ = lambda self: None
+svn_opt_subcommand_desc3_t_desc_overrides_swigregister = _core.svn_opt_subcommand_desc3_t_desc_overrides_swigregister
+svn_opt_subcommand_desc3_t_desc_overrides_swigregister(svn_opt_subcommand_desc3_t_desc_overrides)
+
class svn_opt_subcommand_desc2_t:
"""Proxy of C svn_opt_subcommand_desc2_t struct."""
@@ -2509,6 +2609,10 @@ svn_opt_subcommand_desc_t_swigregister = _core.svn_opt_subcommand_desc_t_swigreg
svn_opt_subcommand_desc_t_swigregister(svn_opt_subcommand_desc_t)
+def svn_opt_get_canonical_subcommand3(table, cmd_name):
+ """svn_opt_get_canonical_subcommand3(svn_opt_subcommand_desc3_t table, char const * cmd_name) -> svn_opt_subcommand_desc3_t"""
+ return _core.svn_opt_get_canonical_subcommand3(table, cmd_name)
+
def svn_opt_get_canonical_subcommand2(table, cmd_name):
"""svn_opt_get_canonical_subcommand2(svn_opt_subcommand_desc2_t table, char const * cmd_name) -> svn_opt_subcommand_desc2_t"""
return _core.svn_opt_get_canonical_subcommand2(table, cmd_name)
@@ -2517,6 +2621,10 @@ def svn_opt_get_canonical_subcommand(table, cmd_name):
"""svn_opt_get_canonical_subcommand(svn_opt_subcommand_desc_t table, char const * cmd_name) -> svn_opt_subcommand_desc_t"""
return _core.svn_opt_get_canonical_subcommand(table, cmd_name)
+def svn_opt_get_option_from_code3(*args):
+ """svn_opt_get_option_from_code3(int code, apr_getopt_option_t const * option_table, svn_opt_subcommand_desc3_t command, apr_pool_t pool) -> apr_getopt_option_t const *"""
+ return _core.svn_opt_get_option_from_code3(*args)
+
def svn_opt_get_option_from_code2(*args):
"""svn_opt_get_option_from_code2(int code, apr_getopt_option_t const * option_table, svn_opt_subcommand_desc2_t command, apr_pool_t pool) -> apr_getopt_option_t const *"""
return _core.svn_opt_get_option_from_code2(*args)
@@ -2525,6 +2633,10 @@ def svn_opt_get_option_from_code(code, option_table):
"""svn_opt_get_option_from_code(int code, apr_getopt_option_t const * option_table) -> apr_getopt_option_t const *"""
return _core.svn_opt_get_option_from_code(code, option_table)
+def svn_opt_subcommand_takes_option4(command, option_code):
+ """svn_opt_subcommand_takes_option4(svn_opt_subcommand_desc3_t command, int option_code) -> svn_boolean_t"""
+ return _core.svn_opt_subcommand_takes_option4(command, option_code)
+
def svn_opt_subcommand_takes_option3(command, option_code):
"""svn_opt_subcommand_takes_option3(svn_opt_subcommand_desc2_t command, int option_code) -> svn_boolean_t"""
return _core.svn_opt_subcommand_takes_option3(command, option_code)
@@ -2537,6 +2649,10 @@ def svn_opt_subcommand_takes_option(command, option_code):
"""svn_opt_subcommand_takes_option(svn_opt_subcommand_desc_t command, int option_code) -> svn_boolean_t"""
return _core.svn_opt_subcommand_takes_option(command, option_code)
+def svn_opt_print_generic_help3(*args):
+ """svn_opt_print_generic_help3(char const * header, svn_opt_subcommand_desc3_t cmd_table, apr_getopt_option_t const * opt_table, char const * footer, apr_pool_t pool, FILE * stream)"""
+ return _core.svn_opt_print_generic_help3(*args)
+
def svn_opt_print_generic_help2(*args):
"""svn_opt_print_generic_help2(char const * header, svn_opt_subcommand_desc2_t cmd_table, apr_getopt_option_t const * opt_table, char const * footer, apr_pool_t pool, FILE * stream)"""
return _core.svn_opt_print_generic_help2(*args)
@@ -2545,6 +2661,10 @@ def svn_opt_format_option(*args):
"""svn_opt_format_option(apr_getopt_option_t const * opt, svn_boolean_t doc, apr_pool_t pool)"""
return _core.svn_opt_format_option(*args)
+def svn_opt_subcommand_help4(*args):
+ """svn_opt_subcommand_help4(char const * subcommand, svn_opt_subcommand_desc3_t table, apr_getopt_option_t const * options_table, apr_pool_t pool)"""
+ return _core.svn_opt_subcommand_help4(*args)
+
def svn_opt_subcommand_help3(*args):
"""svn_opt_subcommand_help3(char const * subcommand, svn_opt_subcommand_desc2_t table, apr_getopt_option_t const * options_table, apr_pool_t pool)"""
return _core.svn_opt_subcommand_help3(*args)
@@ -2806,6 +2926,10 @@ def svn_opt_parse_path(*args):
"""svn_opt_parse_path(svn_opt_revision_t rev, char const * path, apr_pool_t pool) -> svn_error_t"""
return _core.svn_opt_parse_path(*args)
+def svn_opt_print_help5(*args):
+ """svn_opt_print_help5(apr_getopt_t * os, char const * pgm_name, svn_boolean_t print_version, svn_boolean_t quiet, svn_boolean_t verbose, char const * version_footer, char const * header, svn_opt_subcommand_desc3_t cmd_table, apr_getopt_option_t const * option_table, char const * footer, apr_pool_t pool) -> svn_error_t"""
+ return _core.svn_opt_print_help5(*args)
+
def svn_opt_print_help4(*args):
"""svn_opt_print_help4(apr_getopt_t * os, char const * pgm_name, svn_boolean_t print_version, svn_boolean_t quiet, svn_boolean_t verbose, char const * version_footer, char const * header, svn_opt_subcommand_desc2_t cmd_table, apr_getopt_option_t const * option_table, char const * footer, apr_pool_t pool) -> svn_error_t"""
return _core.svn_opt_print_help4(*args)
diff --git a/subversion/bindings/swig/python/svn/fs.py b/subversion/bindings/swig/python/svn/fs.py
index 9893880..408e538 100644
--- a/subversion/bindings/swig/python/svn/fs.py
+++ b/subversion/bindings/swig/python/svn/fs.py
@@ -34,12 +34,15 @@ del _unprefix_names
# Names that are not to be exported
import sys as _sys, os as _os, tempfile as _tempfile, subprocess as _subprocess
try:
- # Python >=3.0
- import builtins
-except ImportError:
# Python <3.0
+ # Check for Python <3.0 first to prevent the presence of the python2-future
+ # package from incorrectly importing Python 3 behavior when it isn't intended.
import __builtin__ as builtins
+except ImportError:
+ # Python >=3.0
+ import builtins
import svn.core as _svncore
+import svn.diff as _svndiff
def entries(root, path, pool=None):
@@ -56,6 +59,7 @@ class FileDiff:
self.tempfile1 = None
self.tempfile2 = None
+ self.difftemp = None
self.root1 = root1
self.path1 = path1
@@ -76,7 +80,7 @@ class FileDiff:
return 0
def _dump_contents(self, file, root, path, pool=None):
- fp = builtins.open(file, 'w+') # avoid namespace clash with
+ fp = builtins.open(file, 'wb') # avoid namespace clash with
# trimmed-down svn_fs_open()
if path is not None:
stream = file_contents(root, path, pool)
@@ -108,27 +112,49 @@ class FileDiff:
def get_pipe(self):
self.get_files()
- # use an array for the command to avoid the shell and potential
- # security exposures
- cmd = ["diff"] \
- + self.diffoptions \
- + [self.tempfile1, self.tempfile2]
-
- # open the pipe, and return the file object for reading from the child.
- p = _subprocess.Popen(cmd, stdout=_subprocess.PIPE, bufsize=-1,
- close_fds=_sys.platform != "win32")
- return p.stdout
+ # If diffoptions were provided, then the diff command needs to be
+ # called in preference to using the internal Subversion diff.
+ if self.diffoptions is not None:
+ # use an array for the command to avoid the shell and potential
+ # security exposures
+ cmd = ["diff"] \
+ + self.diffoptions \
+ + [self.tempfile1, self.tempfile2]
+
+ # open the pipe, and return the file object for reading from the child.
+ p = _subprocess.Popen(cmd, stdout=_subprocess.PIPE, bufsize=-1,
+ close_fds=_sys.platform != "win32")
+ return p.stdout
+
+ else:
+ if self.difftemp is None:
+ self.difftemp = _tempfile.mktemp()
+
+ with builtins.open(self.difftemp, "wb") as fp:
+ diffopt = _svndiff.file_options_create()
+ diffobj = _svndiff.file_diff_2(self.tempfile1,
+ self.tempfile2,
+ diffopt)
+
+ _svndiff.file_output_unified4(fp,
+ diffobj,
+ self.tempfile1,
+ self.tempfile2,
+ None, None,
+ "utf8",
+ None,
+ diffopt.show_c_function,
+ diffopt.context_size,
+ None, None)
+
+ return builtins.open(self.difftemp, "rb")
def __del__(self):
# it seems that sometimes the files are deleted, so just ignore any
# failures trying to remove them
- if self.tempfile1 is not None:
- try:
- _os.remove(self.tempfile1)
- except OSError:
- pass
- if self.tempfile2 is not None:
- try:
- _os.remove(self.tempfile2)
- except OSError:
- pass
+ for tmpfile in [self.tempfile1, self.tempfile2, self.difftemp]:
+ if tmpfile is not None:
+ try:
+ _os.remove(tmpfile)
+ except OSError:
+ pass
diff --git a/subversion/bindings/swig/python/svn_client.c b/subversion/bindings/swig/python/svn_client.c
index 3d70798..714424b 100644
--- a/subversion/bindings/swig/python/svn_client.c
+++ b/subversion/bindings/swig/python/svn_client.c
@@ -3014,171 +3014,180 @@ SWIG_Python_NonDynamicSetAttr(PyObject *obj, PyObject *name, PyObject *value) {
#define SWIGTYPE_p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_array_header_t_p_apr_pool_t__p_svn_error_t swig_types[28]
#define SWIGTYPE_p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_pool_t__p_svn_error_t swig_types[29]
#define SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t swig_types[30]
-#define SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__svn_client_info2_t_p_apr_pool_t__p_svn_error_t swig_types[31]
-#define SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__svn_client_status_t_p_apr_pool_t__p_svn_error_t swig_types[32]
-#define SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_apr_pool_t__p_svn_error_t swig_types[33]
-#define SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t swig_types[34]
-#define SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__svn_info_t_p_apr_pool_t__p_svn_error_t swig_types[35]
-#define SWIGTYPE_p_f_p_void_p_q_const__char_p_struct_svn_wc_status2_t__void swig_types[36]
-#define SWIGTYPE_p_f_p_void_p_q_const__char_p_struct_svn_wc_status_t__void swig_types[37]
-#define SWIGTYPE_p_f_p_void_p_q_const__char_p_svn_wc_status2_t_p_apr_pool_t__p_svn_error_t swig_types[38]
-#define SWIGTYPE_p_f_p_void_p_q_const__struct_svn_wc_notify_t_p_apr_pool_t__void swig_types[39]
-#define SWIGTYPE_p_f_p_void_p_svn_boolean_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t swig_types[40]
-#define SWIGTYPE_p_f_p_void_p_svn_boolean_t_p_q_const__char_p_q_const__svn_io_dirent2_t_p_apr_pool_t__p_svn_error_t swig_types[41]
-#define SWIGTYPE_p_f_p_void_p_svn_client_conflict_t_p_apr_pool_t__p_svn_error_t swig_types[42]
-#define SWIGTYPE_p_f_p_void_p_svn_log_entry_t_p_apr_pool_t__p_svn_error_t swig_types[43]
-#define SWIGTYPE_p_f_p_void_svn_revnum_t_svn_revnum_t_apr_int64_t_svn_revnum_t_p_apr_hash_t_svn_revnum_t_p_apr_hash_t_p_q_const__char_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t swig_types[44]
-#define SWIGTYPE_p_int swig_types[45]
-#define SWIGTYPE_p_long swig_types[46]
-#define SWIGTYPE_p_p_apr_array_header_t swig_types[47]
-#define SWIGTYPE_p_p_apr_hash_t swig_types[48]
-#define SWIGTYPE_p_p_char swig_types[49]
-#define SWIGTYPE_p_p_f_apr_off_t_apr_off_t_p_void_p_apr_pool_t__void swig_types[50]
-#define SWIGTYPE_p_p_f_p_p_q_const__char_p_p_q_const__char_p_apr_array_header_t_p_void_p_apr_pool_t__p_svn_error_t swig_types[51]
-#define SWIGTYPE_p_p_f_p_p_q_const__char_p_p_q_const__char_p_q_const__apr_array_header_t_p_void_p_apr_pool_t__p_svn_error_t swig_types[52]
-#define SWIGTYPE_p_p_f_p_p_svn_stream_t_p_p_svn_stream_t_p_svn_ra_close_tunnel_func_t_p_p_void_p_void_p_q_const__char_p_q_const__char_p_q_const__char_int_svn_cancel_func_t_p_void_p_apr_pool_t__p_svn_error_t swig_types[53]
-#define SWIGTYPE_p_p_f_p_p_svn_wc_conflict_result_t_p_q_const__svn_wc_conflict_description2_t_p_void_p_apr_pool_t_p_apr_pool_t__p_svn_error_t swig_types[54]
-#define SWIGTYPE_p_p_f_p_p_svn_wc_conflict_result_t_p_q_const__svn_wc_conflict_description_t_p_void_p_apr_pool_t__p_svn_error_t swig_types[55]
-#define SWIGTYPE_p_p_f_p_q_const__svn_client_diff_summarize_t_p_void_p_apr_pool_t__p_svn_error_t swig_types[56]
-#define SWIGTYPE_p_p_f_p_void__p_svn_error_t swig_types[57]
-#define SWIGTYPE_p_p_f_p_void_apr_int64_t_svn_revnum_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t swig_types[58]
-#define SWIGTYPE_p_p_f_p_void_apr_int64_t_svn_revnum_t_p_q_const__char_p_q_const__char_svn_revnum_t_p_q_const__char_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t swig_types[59]
-#define SWIGTYPE_p_p_f_p_void_p_q_const__char__int swig_types[60]
-#define SWIGTYPE_p_p_f_p_void_p_q_const__char_enum_svn_wc_notify_action_t_enum_svn_node_kind_t_p_q_const__char_enum_svn_wc_notify_state_t_enum_svn_wc_notify_state_t_long__void swig_types[61]
-#define SWIGTYPE_p_p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_array_header_t_p_apr_pool_t__p_svn_error_t swig_types[62]
-#define SWIGTYPE_p_p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_pool_t__p_svn_error_t swig_types[63]
-#define SWIGTYPE_p_p_f_p_void_p_q_const__char_p_q_const__svn_client_info2_t_p_apr_pool_t__p_svn_error_t swig_types[64]
-#define SWIGTYPE_p_p_f_p_void_p_q_const__char_p_q_const__svn_client_status_t_p_apr_pool_t__p_svn_error_t swig_types[65]
-#define SWIGTYPE_p_p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_apr_pool_t__p_svn_error_t swig_types[66]
-#define SWIGTYPE_p_p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t swig_types[67]
-#define SWIGTYPE_p_p_f_p_void_p_q_const__char_p_q_const__svn_info_t_p_apr_pool_t__p_svn_error_t swig_types[68]
-#define SWIGTYPE_p_p_f_p_void_p_q_const__char_p_svn_wc_status2_t_p_apr_pool_t__p_svn_error_t swig_types[69]
-#define SWIGTYPE_p_p_f_p_void_p_q_const__struct_svn_wc_notify_t_p_apr_pool_t__void swig_types[70]
-#define SWIGTYPE_p_p_f_p_void_p_svn_boolean_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t swig_types[71]
-#define SWIGTYPE_p_p_f_p_void_p_svn_boolean_t_p_q_const__char_p_q_const__svn_io_dirent2_t_p_apr_pool_t__p_svn_error_t swig_types[72]
-#define SWIGTYPE_p_p_f_p_void_p_svn_client_conflict_t_p_apr_pool_t__p_svn_error_t swig_types[73]
-#define SWIGTYPE_p_p_f_p_void_svn_revnum_t_svn_revnum_t_apr_int64_t_svn_revnum_t_p_apr_hash_t_svn_revnum_t_p_apr_hash_t_p_q_const__char_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t swig_types[74]
-#define SWIGTYPE_p_p_svn_auth_provider_object_t swig_types[75]
-#define SWIGTYPE_p_p_svn_client_commit_info_t swig_types[76]
-#define SWIGTYPE_p_p_svn_client_commit_item3_t swig_types[77]
-#define SWIGTYPE_p_p_svn_client_conflict_t swig_types[78]
-#define SWIGTYPE_p_p_svn_client_ctx_t swig_types[79]
-#define SWIGTYPE_p_p_svn_commit_info_t swig_types[80]
-#define SWIGTYPE_p_p_svn_ra_session_t swig_types[81]
-#define SWIGTYPE_p_p_svn_string_t swig_types[82]
-#define SWIGTYPE_p_svn_auth_baton_t swig_types[83]
-#define SWIGTYPE_p_svn_auth_cred_simple_t swig_types[84]
-#define SWIGTYPE_p_svn_auth_cred_ssl_client_cert_pw_t swig_types[85]
-#define SWIGTYPE_p_svn_auth_cred_ssl_client_cert_t swig_types[86]
-#define SWIGTYPE_p_svn_auth_cred_ssl_server_trust_t swig_types[87]
-#define SWIGTYPE_p_svn_auth_cred_username_t swig_types[88]
-#define SWIGTYPE_p_svn_auth_iterstate_t swig_types[89]
-#define SWIGTYPE_p_svn_auth_provider_object_t swig_types[90]
-#define SWIGTYPE_p_svn_auth_provider_t swig_types[91]
-#define SWIGTYPE_p_svn_auth_ssl_server_cert_info_t swig_types[92]
-#define SWIGTYPE_p_svn_cache_config_t swig_types[93]
-#define SWIGTYPE_p_svn_checksum_ctx_t swig_types[94]
-#define SWIGTYPE_p_svn_checksum_kind_t swig_types[95]
-#define SWIGTYPE_p_svn_checksum_t swig_types[96]
-#define SWIGTYPE_p_svn_client_commit_info_t swig_types[97]
-#define SWIGTYPE_p_svn_client_commit_item2_t swig_types[98]
-#define SWIGTYPE_p_svn_client_commit_item3_t swig_types[99]
-#define SWIGTYPE_p_svn_client_commit_item_t swig_types[100]
-#define SWIGTYPE_p_svn_client_conflict_option_id_t swig_types[101]
-#define SWIGTYPE_p_svn_client_conflict_option_t swig_types[102]
-#define SWIGTYPE_p_svn_client_conflict_t swig_types[103]
-#define SWIGTYPE_p_svn_client_copy_source_t swig_types[104]
-#define SWIGTYPE_p_svn_client_ctx_t swig_types[105]
-#define SWIGTYPE_p_svn_client_diff_summarize_kind_t swig_types[106]
-#define SWIGTYPE_p_svn_client_diff_summarize_t swig_types[107]
-#define SWIGTYPE_p_svn_client_info2_t swig_types[108]
-#define SWIGTYPE_p_svn_client_proplist_item_t swig_types[109]
-#define SWIGTYPE_p_svn_client_shelved_patch_info_t swig_types[110]
-#define SWIGTYPE_p_svn_client_status_t swig_types[111]
-#define SWIGTYPE_p_svn_commit_info_t swig_types[112]
-#define SWIGTYPE_p_svn_config_t swig_types[113]
-#define SWIGTYPE_p_svn_delta_editor_t swig_types[114]
-#define SWIGTYPE_p_svn_depth_t swig_types[115]
-#define SWIGTYPE_p_svn_diff_file_options_t swig_types[116]
-#define SWIGTYPE_p_svn_diff_hunk_t swig_types[117]
-#define SWIGTYPE_p_svn_dirent_t swig_types[118]
-#define SWIGTYPE_p_svn_errno_t swig_types[119]
-#define SWIGTYPE_p_svn_error_t swig_types[120]
-#define SWIGTYPE_p_svn_fs_lock_target_t swig_types[121]
-#define SWIGTYPE_p_svn_info_t swig_types[122]
-#define SWIGTYPE_p_svn_io_dirent2_t swig_types[123]
-#define SWIGTYPE_p_svn_io_dirent_t swig_types[124]
-#define SWIGTYPE_p_svn_io_file_del_t swig_types[125]
-#define SWIGTYPE_p_svn_location_segment_t swig_types[126]
-#define SWIGTYPE_p_svn_lock_t swig_types[127]
-#define SWIGTYPE_p_svn_log_changed_path2_t swig_types[128]
-#define SWIGTYPE_p_svn_log_changed_path_t swig_types[129]
-#define SWIGTYPE_p_svn_log_entry_t swig_types[130]
-#define SWIGTYPE_p_svn_merge_range_t swig_types[131]
-#define SWIGTYPE_p_svn_mergeinfo_inheritance_t swig_types[132]
-#define SWIGTYPE_p_svn_node_kind_t swig_types[133]
-#define SWIGTYPE_p_svn_opt_revision_range_t swig_types[134]
-#define SWIGTYPE_p_svn_opt_revision_t swig_types[135]
-#define SWIGTYPE_p_svn_opt_revision_value_t swig_types[136]
-#define SWIGTYPE_p_svn_opt_subcommand_desc2_t swig_types[137]
-#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[138]
-#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[139]
-#define SWIGTYPE_p_svn_prop_kind swig_types[140]
-#define SWIGTYPE_p_svn_ra_callbacks2_t swig_types[141]
-#define SWIGTYPE_p_svn_ra_callbacks_t swig_types[142]
-#define SWIGTYPE_p_svn_ra_plugin_t swig_types[143]
-#define SWIGTYPE_p_svn_ra_reporter2_t swig_types[144]
-#define SWIGTYPE_p_svn_ra_reporter3_t swig_types[145]
-#define SWIGTYPE_p_svn_ra_reporter_t swig_types[146]
-#define SWIGTYPE_p_svn_ra_session_t swig_types[147]
-#define SWIGTYPE_p_svn_stream_mark_t swig_types[148]
-#define SWIGTYPE_p_svn_stream_t swig_types[149]
-#define SWIGTYPE_p_svn_string_t swig_types[150]
-#define SWIGTYPE_p_svn_stringbuf_t swig_types[151]
-#define SWIGTYPE_p_svn_tristate_t swig_types[152]
-#define SWIGTYPE_p_svn_txdelta_op_t swig_types[153]
-#define SWIGTYPE_p_svn_txdelta_stream_t swig_types[154]
-#define SWIGTYPE_p_svn_txdelta_window_t swig_types[155]
-#define SWIGTYPE_p_svn_version_checklist_t swig_types[156]
-#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[157]
-#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[158]
-#define SWIGTYPE_p_svn_version_extended_t swig_types[159]
-#define SWIGTYPE_p_svn_version_t swig_types[160]
-#define SWIGTYPE_p_svn_wc_adm_access_t swig_types[161]
-#define SWIGTYPE_p_svn_wc_committed_queue_t swig_types[162]
-#define SWIGTYPE_p_svn_wc_conflict_action_t swig_types[163]
-#define SWIGTYPE_p_svn_wc_conflict_choice_t swig_types[164]
-#define SWIGTYPE_p_svn_wc_conflict_description_t swig_types[165]
-#define SWIGTYPE_p_svn_wc_conflict_kind_t swig_types[166]
-#define SWIGTYPE_p_svn_wc_conflict_reason_t swig_types[167]
-#define SWIGTYPE_p_svn_wc_conflict_version_t swig_types[168]
-#define SWIGTYPE_p_svn_wc_context_t swig_types[169]
-#define SWIGTYPE_p_svn_wc_diff_callbacks2_t swig_types[170]
-#define SWIGTYPE_p_svn_wc_diff_callbacks3_t swig_types[171]
-#define SWIGTYPE_p_svn_wc_diff_callbacks4_t swig_types[172]
-#define SWIGTYPE_p_svn_wc_diff_callbacks_t swig_types[173]
-#define SWIGTYPE_p_svn_wc_entry_callbacks2_t swig_types[174]
-#define SWIGTYPE_p_svn_wc_entry_callbacks_t swig_types[175]
-#define SWIGTYPE_p_svn_wc_entry_t swig_types[176]
-#define SWIGTYPE_p_svn_wc_external_item2_t swig_types[177]
-#define SWIGTYPE_p_svn_wc_external_item_t swig_types[178]
-#define SWIGTYPE_p_svn_wc_info_t swig_types[179]
-#define SWIGTYPE_p_svn_wc_merge_outcome_t swig_types[180]
-#define SWIGTYPE_p_svn_wc_notify_action_t swig_types[181]
-#define SWIGTYPE_p_svn_wc_notify_lock_state_t swig_types[182]
-#define SWIGTYPE_p_svn_wc_notify_state_t swig_types[183]
-#define SWIGTYPE_p_svn_wc_notify_t swig_types[184]
-#define SWIGTYPE_p_svn_wc_operation_t swig_types[185]
-#define SWIGTYPE_p_svn_wc_revision_status_t swig_types[186]
-#define SWIGTYPE_p_svn_wc_schedule_t swig_types[187]
-#define SWIGTYPE_p_svn_wc_status2_t swig_types[188]
-#define SWIGTYPE_p_svn_wc_status3_t swig_types[189]
-#define SWIGTYPE_p_svn_wc_status_t swig_types[190]
-#define SWIGTYPE_p_svn_wc_traversal_info_t swig_types[191]
-#define SWIGTYPE_p_unsigned_long swig_types[192]
-#define SWIGTYPE_p_void swig_types[193]
-static swig_type_info *swig_types[195];
-static swig_module_info swig_module = {swig_types, 194, 0, 0, 0, 0};
+#define SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_svn_boolean_t_p_q_const__char_svn_boolean_t_svn_revnum_t_svn_boolean_t_svn_depth_t_p_apr_pool_t__p_svn_error_t swig_types[31]
+#define SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__svn_client_info2_t_p_apr_pool_t__p_svn_error_t swig_types[32]
+#define SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__svn_client_status_t_p_apr_pool_t__p_svn_error_t swig_types[33]
+#define SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_apr_pool_t__p_svn_error_t swig_types[34]
+#define SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t swig_types[35]
+#define SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__svn_info_t_p_apr_pool_t__p_svn_error_t swig_types[36]
+#define SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__svn_wc_status3_t_p_apr_pool_t__p_svn_error_t swig_types[37]
+#define SWIGTYPE_p_f_p_void_p_q_const__char_p_struct_svn_wc_status2_t__void swig_types[38]
+#define SWIGTYPE_p_f_p_void_p_q_const__char_p_struct_svn_wc_status_t__void swig_types[39]
+#define SWIGTYPE_p_f_p_void_p_q_const__char_p_svn_wc_status2_t_p_apr_pool_t__p_svn_error_t swig_types[40]
+#define SWIGTYPE_p_f_p_void_p_q_const__struct_svn_wc_notify_t_p_apr_pool_t__void swig_types[41]
+#define SWIGTYPE_p_f_p_void_p_svn_boolean_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t swig_types[42]
+#define SWIGTYPE_p_f_p_void_p_svn_boolean_t_p_q_const__char_p_q_const__svn_io_dirent2_t_p_apr_pool_t__p_svn_error_t swig_types[43]
+#define SWIGTYPE_p_f_p_void_p_svn_client_conflict_t_p_apr_pool_t__p_svn_error_t swig_types[44]
+#define SWIGTYPE_p_f_p_void_p_svn_log_entry_t_p_apr_pool_t__p_svn_error_t swig_types[45]
+#define SWIGTYPE_p_f_p_void_svn_revnum_t_svn_revnum_t_apr_int64_t_svn_revnum_t_p_apr_hash_t_svn_revnum_t_p_apr_hash_t_p_q_const__char_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t swig_types[46]
+#define SWIGTYPE_p_int swig_types[47]
+#define SWIGTYPE_p_long swig_types[48]
+#define SWIGTYPE_p_p_apr_array_header_t swig_types[49]
+#define SWIGTYPE_p_p_apr_hash_t swig_types[50]
+#define SWIGTYPE_p_p_char swig_types[51]
+#define SWIGTYPE_p_p_f_apr_off_t_apr_off_t_p_void_p_apr_pool_t__void swig_types[52]
+#define SWIGTYPE_p_p_f_p_p_q_const__char_p_p_q_const__char_p_apr_array_header_t_p_void_p_apr_pool_t__p_svn_error_t swig_types[53]
+#define SWIGTYPE_p_p_f_p_p_q_const__char_p_p_q_const__char_p_q_const__apr_array_header_t_p_void_p_apr_pool_t__p_svn_error_t swig_types[54]
+#define SWIGTYPE_p_p_f_p_p_svn_stream_t_p_p_svn_stream_t_p_svn_ra_close_tunnel_func_t_p_p_void_p_void_p_q_const__char_p_q_const__char_p_q_const__char_int_svn_cancel_func_t_p_void_p_apr_pool_t__p_svn_error_t swig_types[55]
+#define SWIGTYPE_p_p_f_p_p_svn_wc_conflict_result_t_p_q_const__svn_wc_conflict_description2_t_p_void_p_apr_pool_t_p_apr_pool_t__p_svn_error_t swig_types[56]
+#define SWIGTYPE_p_p_f_p_p_svn_wc_conflict_result_t_p_q_const__svn_wc_conflict_description_t_p_void_p_apr_pool_t__p_svn_error_t swig_types[57]
+#define SWIGTYPE_p_p_f_p_q_const__svn_client_diff_summarize_t_p_void_p_apr_pool_t__p_svn_error_t swig_types[58]
+#define SWIGTYPE_p_p_f_p_void__p_svn_error_t swig_types[59]
+#define SWIGTYPE_p_p_f_p_void_apr_int64_t_svn_revnum_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t swig_types[60]
+#define SWIGTYPE_p_p_f_p_void_apr_int64_t_svn_revnum_t_p_q_const__char_p_q_const__char_svn_revnum_t_p_q_const__char_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t swig_types[61]
+#define SWIGTYPE_p_p_f_p_void_p_q_const__char__int swig_types[62]
+#define SWIGTYPE_p_p_f_p_void_p_q_const__char_enum_svn_wc_notify_action_t_enum_svn_node_kind_t_p_q_const__char_enum_svn_wc_notify_state_t_enum_svn_wc_notify_state_t_long__void swig_types[63]
+#define SWIGTYPE_p_p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_array_header_t_p_apr_pool_t__p_svn_error_t swig_types[64]
+#define SWIGTYPE_p_p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_pool_t__p_svn_error_t swig_types[65]
+#define SWIGTYPE_p_p_f_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_svn_boolean_t_p_q_const__char_svn_boolean_t_svn_revnum_t_svn_boolean_t_svn_depth_t_p_apr_pool_t__p_svn_error_t swig_types[66]
+#define SWIGTYPE_p_p_f_p_void_p_q_const__char_p_q_const__svn_client_info2_t_p_apr_pool_t__p_svn_error_t swig_types[67]
+#define SWIGTYPE_p_p_f_p_void_p_q_const__char_p_q_const__svn_client_status_t_p_apr_pool_t__p_svn_error_t swig_types[68]
+#define SWIGTYPE_p_p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_apr_pool_t__p_svn_error_t swig_types[69]
+#define SWIGTYPE_p_p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t swig_types[70]
+#define SWIGTYPE_p_p_f_p_void_p_q_const__char_p_q_const__svn_info_t_p_apr_pool_t__p_svn_error_t swig_types[71]
+#define SWIGTYPE_p_p_f_p_void_p_q_const__char_p_q_const__svn_wc_status3_t_p_apr_pool_t__p_svn_error_t swig_types[72]
+#define SWIGTYPE_p_p_f_p_void_p_q_const__char_p_svn_wc_status2_t_p_apr_pool_t__p_svn_error_t swig_types[73]
+#define SWIGTYPE_p_p_f_p_void_p_q_const__struct_svn_wc_notify_t_p_apr_pool_t__void swig_types[74]
+#define SWIGTYPE_p_p_f_p_void_p_svn_boolean_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t swig_types[75]
+#define SWIGTYPE_p_p_f_p_void_p_svn_boolean_t_p_q_const__char_p_q_const__svn_io_dirent2_t_p_apr_pool_t__p_svn_error_t swig_types[76]
+#define SWIGTYPE_p_p_f_p_void_p_svn_client_conflict_t_p_apr_pool_t__p_svn_error_t swig_types[77]
+#define SWIGTYPE_p_p_f_p_void_svn_revnum_t_svn_revnum_t_apr_int64_t_svn_revnum_t_p_apr_hash_t_svn_revnum_t_p_apr_hash_t_p_q_const__char_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t swig_types[78]
+#define SWIGTYPE_p_p_svn_auth_provider_object_t swig_types[79]
+#define SWIGTYPE_p_p_svn_client__shelf_t swig_types[80]
+#define SWIGTYPE_p_p_svn_client__shelf_version_t swig_types[81]
+#define SWIGTYPE_p_p_svn_client_commit_info_t swig_types[82]
+#define SWIGTYPE_p_p_svn_client_commit_item3_t swig_types[83]
+#define SWIGTYPE_p_p_svn_client_conflict_t swig_types[84]
+#define SWIGTYPE_p_p_svn_client_ctx_t swig_types[85]
+#define SWIGTYPE_p_p_svn_commit_info_t swig_types[86]
+#define SWIGTYPE_p_p_svn_ra_session_t swig_types[87]
+#define SWIGTYPE_p_p_svn_string_t swig_types[88]
+#define SWIGTYPE_p_svn_auth_baton_t swig_types[89]
+#define SWIGTYPE_p_svn_auth_cred_simple_t swig_types[90]
+#define SWIGTYPE_p_svn_auth_cred_ssl_client_cert_pw_t swig_types[91]
+#define SWIGTYPE_p_svn_auth_cred_ssl_client_cert_t swig_types[92]
+#define SWIGTYPE_p_svn_auth_cred_ssl_server_trust_t swig_types[93]
+#define SWIGTYPE_p_svn_auth_cred_username_t swig_types[94]
+#define SWIGTYPE_p_svn_auth_iterstate_t swig_types[95]
+#define SWIGTYPE_p_svn_auth_provider_object_t swig_types[96]
+#define SWIGTYPE_p_svn_auth_provider_t swig_types[97]
+#define SWIGTYPE_p_svn_auth_ssl_server_cert_info_t swig_types[98]
+#define SWIGTYPE_p_svn_cache_config_t swig_types[99]
+#define SWIGTYPE_p_svn_checksum_ctx_t swig_types[100]
+#define SWIGTYPE_p_svn_checksum_kind_t swig_types[101]
+#define SWIGTYPE_p_svn_checksum_t swig_types[102]
+#define SWIGTYPE_p_svn_client__shelf_info_t swig_types[103]
+#define SWIGTYPE_p_svn_client__shelf_t swig_types[104]
+#define SWIGTYPE_p_svn_client__shelf_version_t swig_types[105]
+#define SWIGTYPE_p_svn_client_commit_info_t swig_types[106]
+#define SWIGTYPE_p_svn_client_commit_item2_t swig_types[107]
+#define SWIGTYPE_p_svn_client_commit_item3_t swig_types[108]
+#define SWIGTYPE_p_svn_client_commit_item_t swig_types[109]
+#define SWIGTYPE_p_svn_client_conflict_option_id_t swig_types[110]
+#define SWIGTYPE_p_svn_client_conflict_option_t swig_types[111]
+#define SWIGTYPE_p_svn_client_conflict_t swig_types[112]
+#define SWIGTYPE_p_svn_client_copy_source_t swig_types[113]
+#define SWIGTYPE_p_svn_client_ctx_t swig_types[114]
+#define SWIGTYPE_p_svn_client_diff_summarize_kind_t swig_types[115]
+#define SWIGTYPE_p_svn_client_diff_summarize_t swig_types[116]
+#define SWIGTYPE_p_svn_client_info2_t swig_types[117]
+#define SWIGTYPE_p_svn_client_proplist_item_t swig_types[118]
+#define SWIGTYPE_p_svn_client_status_t swig_types[119]
+#define SWIGTYPE_p_svn_commit_info_t swig_types[120]
+#define SWIGTYPE_p_svn_config_t swig_types[121]
+#define SWIGTYPE_p_svn_delta_editor_t swig_types[122]
+#define SWIGTYPE_p_svn_depth_t swig_types[123]
+#define SWIGTYPE_p_svn_diff_file_options_t swig_types[124]
+#define SWIGTYPE_p_svn_diff_hunk_t swig_types[125]
+#define SWIGTYPE_p_svn_dirent_t swig_types[126]
+#define SWIGTYPE_p_svn_errno_t swig_types[127]
+#define SWIGTYPE_p_svn_error_t swig_types[128]
+#define SWIGTYPE_p_svn_fs_lock_target_t swig_types[129]
+#define SWIGTYPE_p_svn_info_t swig_types[130]
+#define SWIGTYPE_p_svn_io_dirent2_t swig_types[131]
+#define SWIGTYPE_p_svn_io_dirent_t swig_types[132]
+#define SWIGTYPE_p_svn_io_file_del_t swig_types[133]
+#define SWIGTYPE_p_svn_location_segment_t swig_types[134]
+#define SWIGTYPE_p_svn_lock_t swig_types[135]
+#define SWIGTYPE_p_svn_log_changed_path2_t swig_types[136]
+#define SWIGTYPE_p_svn_log_changed_path_t swig_types[137]
+#define SWIGTYPE_p_svn_log_entry_t swig_types[138]
+#define SWIGTYPE_p_svn_merge_range_t swig_types[139]
+#define SWIGTYPE_p_svn_mergeinfo_inheritance_t swig_types[140]
+#define SWIGTYPE_p_svn_node_kind_t swig_types[141]
+#define SWIGTYPE_p_svn_opt_revision_range_t swig_types[142]
+#define SWIGTYPE_p_svn_opt_revision_t swig_types[143]
+#define SWIGTYPE_p_svn_opt_revision_value_t swig_types[144]
+#define SWIGTYPE_p_svn_opt_subcommand_desc2_t swig_types[145]
+#define SWIGTYPE_p_svn_opt_subcommand_desc3_t swig_types[146]
+#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[147]
+#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[148]
+#define SWIGTYPE_p_svn_prop_kind swig_types[149]
+#define SWIGTYPE_p_svn_ra_callbacks2_t swig_types[150]
+#define SWIGTYPE_p_svn_ra_callbacks_t swig_types[151]
+#define SWIGTYPE_p_svn_ra_plugin_t swig_types[152]
+#define SWIGTYPE_p_svn_ra_reporter2_t swig_types[153]
+#define SWIGTYPE_p_svn_ra_reporter3_t swig_types[154]
+#define SWIGTYPE_p_svn_ra_reporter_t swig_types[155]
+#define SWIGTYPE_p_svn_ra_session_t swig_types[156]
+#define SWIGTYPE_p_svn_stream_mark_t swig_types[157]
+#define SWIGTYPE_p_svn_stream_t swig_types[158]
+#define SWIGTYPE_p_svn_string_t swig_types[159]
+#define SWIGTYPE_p_svn_stringbuf_t swig_types[160]
+#define SWIGTYPE_p_svn_tristate_t swig_types[161]
+#define SWIGTYPE_p_svn_txdelta_op_t swig_types[162]
+#define SWIGTYPE_p_svn_txdelta_stream_t swig_types[163]
+#define SWIGTYPE_p_svn_txdelta_window_t swig_types[164]
+#define SWIGTYPE_p_svn_version_checklist_t swig_types[165]
+#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[166]
+#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[167]
+#define SWIGTYPE_p_svn_version_extended_t swig_types[168]
+#define SWIGTYPE_p_svn_version_t swig_types[169]
+#define SWIGTYPE_p_svn_wc_adm_access_t swig_types[170]
+#define SWIGTYPE_p_svn_wc_committed_queue_t swig_types[171]
+#define SWIGTYPE_p_svn_wc_conflict_action_t swig_types[172]
+#define SWIGTYPE_p_svn_wc_conflict_choice_t swig_types[173]
+#define SWIGTYPE_p_svn_wc_conflict_description_t swig_types[174]
+#define SWIGTYPE_p_svn_wc_conflict_kind_t swig_types[175]
+#define SWIGTYPE_p_svn_wc_conflict_reason_t swig_types[176]
+#define SWIGTYPE_p_svn_wc_conflict_version_t swig_types[177]
+#define SWIGTYPE_p_svn_wc_context_t swig_types[178]
+#define SWIGTYPE_p_svn_wc_diff_callbacks2_t swig_types[179]
+#define SWIGTYPE_p_svn_wc_diff_callbacks3_t swig_types[180]
+#define SWIGTYPE_p_svn_wc_diff_callbacks4_t swig_types[181]
+#define SWIGTYPE_p_svn_wc_diff_callbacks_t swig_types[182]
+#define SWIGTYPE_p_svn_wc_entry_callbacks2_t swig_types[183]
+#define SWIGTYPE_p_svn_wc_entry_callbacks_t swig_types[184]
+#define SWIGTYPE_p_svn_wc_entry_t swig_types[185]
+#define SWIGTYPE_p_svn_wc_external_item2_t swig_types[186]
+#define SWIGTYPE_p_svn_wc_external_item_t swig_types[187]
+#define SWIGTYPE_p_svn_wc_info_t swig_types[188]
+#define SWIGTYPE_p_svn_wc_merge_outcome_t swig_types[189]
+#define SWIGTYPE_p_svn_wc_notify_action_t swig_types[190]
+#define SWIGTYPE_p_svn_wc_notify_lock_state_t swig_types[191]
+#define SWIGTYPE_p_svn_wc_notify_state_t swig_types[192]
+#define SWIGTYPE_p_svn_wc_notify_t swig_types[193]
+#define SWIGTYPE_p_svn_wc_operation_t swig_types[194]
+#define SWIGTYPE_p_svn_wc_revision_status_t swig_types[195]
+#define SWIGTYPE_p_svn_wc_schedule_t swig_types[196]
+#define SWIGTYPE_p_svn_wc_status2_t swig_types[197]
+#define SWIGTYPE_p_svn_wc_status3_t swig_types[198]
+#define SWIGTYPE_p_svn_wc_status_t swig_types[199]
+#define SWIGTYPE_p_svn_wc_traversal_info_t swig_types[200]
+#define SWIGTYPE_p_unsigned_long swig_types[201]
+#define SWIGTYPE_p_void swig_types[202]
+static swig_type_info *swig_types[204];
+static swig_module_info swig_module = {swig_types, 203, 0, 0, 0, 0};
#define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
#define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
@@ -3698,6 +3707,11 @@ static svn_error_t * svn_client_invoke_diff_summarize_func(
return _obj(diff, baton, pool);
}
+static svn_error_t * svn_client_invoke__layout_func(
+ svn_client__layout_func_t _obj, void *layout_baton, const char *local_abspath, const char *repos_root_url, svn_boolean_t not_present, svn_boolean_t url_changed, const char *url, svn_boolean_t revision_changed, svn_revnum_t revision, svn_boolean_t depth_changed, svn_depth_t depth, apr_pool_t *scratch_pool) {
+ return _obj(layout_baton, local_abspath, repos_root_url, not_present, url_changed, url, revision_changed, revision, depth_changed, depth, scratch_pool);
+}
+
static svn_error_t * svn_client_invoke_import_filter_func(
svn_client_import_filter_func_t _obj, void *baton, svn_boolean_t *filtered, const char *local_abspath, const svn_io_dirent2_t *dirent, apr_pool_t *scratch_pool) {
return _obj(baton, filtered, local_abspath, dirent, scratch_pool);
@@ -9862,6 +9876,87 @@ fail:
}
+SWIGINTERN PyObject *_wrap_svn_client__layout_list(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ char *arg1 = (char *) 0 ;
+ svn_client__layout_func_t arg2 = (svn_client__layout_func_t) 0 ;
+ void *arg3 = (void *) 0 ;
+ svn_client_ctx_t *arg4 = (svn_client_ctx_t *) 0 ;
+ apr_pool_t *arg5 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool = NULL ;
+ PyObject *_global_py_pool = NULL ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ svn_error_t *result = 0 ;
+
+ if (svn_swig_py_get_pool_arg(args, SWIGTYPE_p_apr_pool_t,
+ &_global_py_pool, &_global_pool))
+ SWIG_fail;
+ arg5 = _global_pool;
+ if (!PyArg_ParseTuple(args,(char *)"sOOO|O:svn_client__layout_list",&arg1,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+ {
+ svn_client__layout_func_t * tmp =
+ svn_swig_py_must_get_ptr(obj1, SWIGTYPE_p_p_f_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_svn_boolean_t_p_q_const__char_svn_boolean_t_svn_revnum_t_svn_boolean_t_svn_depth_t_p_apr_pool_t__p_svn_error_t, svn_argnum_obj1);
+ if (tmp == NULL || PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ arg2 = *tmp;
+ }
+ {
+ if (obj2 == Py_None) {
+ arg3 = NULL;
+ } else if (SWIG_ConvertPtr(obj2, (void **) &arg3, 0, 0) == -1) {
+ arg3 = (void *) obj2;
+ PyErr_Clear();
+ }
+ }
+ {
+ arg4 = (svn_client_ctx_t *)svn_swig_py_must_get_ptr(obj3, SWIGTYPE_p_svn_client_ctx_t, svn_argnum_obj3);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ if (obj4) {
+ /* Verify that the user supplied a valid pool */
+ if (obj4 != Py_None && obj4 != _global_py_pool) {
+ SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj4);
+ SWIG_arg_fail(svn_argnum_obj4);
+ SWIG_fail;
+ }
+ }
+ {
+ svn_swig_py_release_py_lock();
+
+ result = (svn_error_t *)svn_client__layout_list((char const *)arg1,arg2,arg3,arg4,arg5);
+
+ svn_swig_py_acquire_py_lock();
+
+ }
+ {
+ if (result != NULL) {
+ if (result->apr_err != SVN_ERR_SWIG_PY_EXCEPTION_SET)
+ svn_swig_py_svn_exception(result);
+ else
+ svn_error_clear(result);
+ SWIG_fail;
+ }
+ Py_INCREF(Py_None);
+ resultobj = Py_None;
+ }
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ return resultobj;
+fail:
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ return NULL;
+}
+
+
SWIGINTERN PyObject *_wrap_svn_client_add5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
char *arg1 = (char *) 0 ;
@@ -16098,6 +16193,198 @@ fail:
}
+SWIGINTERN PyObject *_wrap_svn_client_diff7(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ apr_array_header_t *arg1 = (apr_array_header_t *) 0 ;
+ char *arg2 = (char *) 0 ;
+ svn_opt_revision_t *arg3 = (svn_opt_revision_t *) 0 ;
+ char *arg4 = (char *) 0 ;
+ svn_opt_revision_t *arg5 = (svn_opt_revision_t *) 0 ;
+ char *arg6 = (char *) 0 ;
+ svn_depth_t arg7 ;
+ svn_boolean_t arg8 ;
+ svn_boolean_t arg9 ;
+ svn_boolean_t arg10 ;
+ svn_boolean_t arg11 ;
+ svn_boolean_t arg12 ;
+ svn_boolean_t arg13 ;
+ svn_boolean_t arg14 ;
+ svn_boolean_t arg15 ;
+ svn_boolean_t arg16 ;
+ char *arg17 = (char *) 0 ;
+ svn_stream_t *arg18 = (svn_stream_t *) 0 ;
+ svn_stream_t *arg19 = (svn_stream_t *) 0 ;
+ apr_array_header_t *arg20 = (apr_array_header_t *) 0 ;
+ svn_client_ctx_t *arg21 = (svn_client_ctx_t *) 0 ;
+ apr_pool_t *arg22 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool = NULL ;
+ PyObject *_global_py_pool = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+ PyObject * obj8 = 0 ;
+ PyObject * obj9 = 0 ;
+ PyObject * obj10 = 0 ;
+ PyObject * obj11 = 0 ;
+ PyObject * obj12 = 0 ;
+ PyObject * obj13 = 0 ;
+ PyObject * obj14 = 0 ;
+ PyObject * obj15 = 0 ;
+ PyObject * obj17 = 0 ;
+ PyObject * obj18 = 0 ;
+ PyObject * obj19 = 0 ;
+ PyObject * obj20 = 0 ;
+ PyObject * obj21 = 0 ;
+ svn_error_t *result = 0 ;
+
+ if (svn_swig_py_get_pool_arg(args, SWIGTYPE_p_apr_pool_t,
+ &_global_py_pool, &_global_pool))
+ SWIG_fail;
+ arg22 = _global_pool;
+ if (!PyArg_ParseTuple(args,(char *)"OsOsOzOOOOOOOOOOsOOOO|O:svn_client_diff7",&obj0,&arg2,&obj2,&arg4,&obj4,&arg6,&obj6,&obj7,&obj8,&obj9,&obj10,&obj11,&obj12,&obj13,&obj14,&obj15,&arg17,&obj17,&obj18,&obj19,&obj20,&obj21)) SWIG_fail;
+ {
+ arg1 = (apr_array_header_t *) svn_swig_py_seq_to_array(obj0,
+ sizeof(const char *),
+ svn_swig_py_unwrap_string,
+ NULL,
+ _global_pool);
+ if (PyErr_Occurred())
+ SWIG_fail;
+ }
+ {
+ arg3 = (svn_opt_revision_t *)svn_swig_py_must_get_ptr(obj2, SWIGTYPE_p_svn_opt_revision_t, svn_argnum_obj2);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg5 = (svn_opt_revision_t *)svn_swig_py_must_get_ptr(obj4, SWIGTYPE_p_svn_opt_revision_t, svn_argnum_obj4);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg7 = (svn_depth_t)SWIG_As_long (obj6);
+ if (SWIG_arg_fail(svn_argnum_obj6)) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg8 = (svn_boolean_t)SWIG_As_long (obj7);
+ if (SWIG_arg_fail(svn_argnum_obj7)) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg9 = (svn_boolean_t)SWIG_As_long (obj8);
+ if (SWIG_arg_fail(svn_argnum_obj8)) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg10 = (svn_boolean_t)SWIG_As_long (obj9);
+ if (SWIG_arg_fail(svn_argnum_obj9)) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg11 = (svn_boolean_t)SWIG_As_long (obj10);
+ if (SWIG_arg_fail(svn_argnum_obj10)) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg12 = (svn_boolean_t)SWIG_As_long (obj11);
+ if (SWIG_arg_fail(svn_argnum_obj11)) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg13 = (svn_boolean_t)SWIG_As_long (obj12);
+ if (SWIG_arg_fail(svn_argnum_obj12)) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg14 = (svn_boolean_t)SWIG_As_long (obj13);
+ if (SWIG_arg_fail(svn_argnum_obj13)) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg15 = (svn_boolean_t)SWIG_As_long (obj14);
+ if (SWIG_arg_fail(svn_argnum_obj14)) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg16 = (svn_boolean_t)SWIG_As_long (obj15);
+ if (SWIG_arg_fail(svn_argnum_obj15)) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg18 = svn_swig_py_make_stream (obj17, _global_pool);
+ }
+ {
+ arg19 = svn_swig_py_make_stream (obj18, _global_pool);
+ }
+ {
+ arg20 = (apr_array_header_t *) svn_swig_py_seq_to_array(obj19,
+ sizeof(const char *),
+ svn_swig_py_unwrap_string,
+ NULL,
+ _global_pool);
+ if (PyErr_Occurred())
+ SWIG_fail;
+ }
+ {
+ arg21 = (svn_client_ctx_t *)svn_swig_py_must_get_ptr(obj20, SWIGTYPE_p_svn_client_ctx_t, svn_argnum_obj20);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ if (obj21) {
+ /* Verify that the user supplied a valid pool */
+ if (obj21 != Py_None && obj21 != _global_py_pool) {
+ SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj21);
+ SWIG_arg_fail(svn_argnum_obj21);
+ SWIG_fail;
+ }
+ }
+ {
+ svn_swig_py_release_py_lock();
+
+ result = (svn_error_t *)svn_client_diff7((apr_array_header_t const *)arg1,(char const *)arg2,(struct svn_opt_revision_t const *)arg3,(char const *)arg4,(struct svn_opt_revision_t const *)arg5,(char const *)arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13,arg14,arg15,arg16,(char const *)arg17,arg18,arg19,(apr_array_header_t const *)arg20,arg21,arg22);
+
+ svn_swig_py_acquire_py_lock();
+
+ }
+ {
+ if (result != NULL) {
+ if (result->apr_err != SVN_ERR_SWIG_PY_EXCEPTION_SET)
+ svn_swig_py_svn_exception(result);
+ else
+ svn_error_clear(result);
+ SWIG_fail;
+ }
+ Py_INCREF(Py_None);
+ resultobj = Py_None;
+ }
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ return resultobj;
+fail:
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ return NULL;
+}
+
+
SWIGINTERN PyObject *_wrap_svn_client_diff6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
apr_array_header_t *arg1 = (apr_array_header_t *) 0 ;
@@ -16982,6 +17269,210 @@ fail:
}
+SWIGINTERN PyObject *_wrap_svn_client_diff_peg7(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ apr_array_header_t *arg1 = (apr_array_header_t *) 0 ;
+ char *arg2 = (char *) 0 ;
+ svn_opt_revision_t *arg3 = (svn_opt_revision_t *) 0 ;
+ svn_opt_revision_t *arg4 = (svn_opt_revision_t *) 0 ;
+ svn_opt_revision_t *arg5 = (svn_opt_revision_t *) 0 ;
+ char *arg6 = (char *) 0 ;
+ svn_depth_t arg7 ;
+ svn_boolean_t arg8 ;
+ svn_boolean_t arg9 ;
+ svn_boolean_t arg10 ;
+ svn_boolean_t arg11 ;
+ svn_boolean_t arg12 ;
+ svn_boolean_t arg13 ;
+ svn_boolean_t arg14 ;
+ svn_boolean_t arg15 ;
+ svn_boolean_t arg16 ;
+ char *arg17 = (char *) 0 ;
+ svn_stream_t *arg18 = (svn_stream_t *) 0 ;
+ svn_stream_t *arg19 = (svn_stream_t *) 0 ;
+ apr_array_header_t *arg20 = (apr_array_header_t *) 0 ;
+ svn_client_ctx_t *arg21 = (svn_client_ctx_t *) 0 ;
+ apr_pool_t *arg22 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool = NULL ;
+ PyObject *_global_py_pool = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+ PyObject * obj8 = 0 ;
+ PyObject * obj9 = 0 ;
+ PyObject * obj10 = 0 ;
+ PyObject * obj11 = 0 ;
+ PyObject * obj12 = 0 ;
+ PyObject * obj13 = 0 ;
+ PyObject * obj14 = 0 ;
+ PyObject * obj15 = 0 ;
+ PyObject * obj17 = 0 ;
+ PyObject * obj18 = 0 ;
+ PyObject * obj19 = 0 ;
+ PyObject * obj20 = 0 ;
+ PyObject * obj21 = 0 ;
+ svn_error_t *result = 0 ;
+
+ if (svn_swig_py_get_pool_arg(args, SWIGTYPE_p_apr_pool_t,
+ &_global_py_pool, &_global_pool))
+ SWIG_fail;
+ arg22 = _global_pool;
+ if (!PyArg_ParseTuple(args,(char *)"OsOOOzOOOOOOOOOOsOOOO|O:svn_client_diff_peg7",&obj0,&arg2,&obj2,&obj3,&obj4,&arg6,&obj6,&obj7,&obj8,&obj9,&obj10,&obj11,&obj12,&obj13,&obj14,&obj15,&arg17,&obj17,&obj18,&obj19,&obj20,&obj21)) SWIG_fail;
+ {
+ arg1 = (apr_array_header_t *) svn_swig_py_seq_to_array(obj0,
+ sizeof(const char *),
+ svn_swig_py_unwrap_string,
+ NULL,
+ _global_pool);
+ if (PyErr_Occurred())
+ SWIG_fail;
+ }
+ {
+ arg3 = (svn_opt_revision_t *)svn_swig_py_must_get_ptr(obj2, SWIGTYPE_p_svn_opt_revision_t, svn_argnum_obj2);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg4 = (svn_opt_revision_t *)svn_swig_py_must_get_ptr(obj3, SWIGTYPE_p_svn_opt_revision_t, svn_argnum_obj3);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg5 = (svn_opt_revision_t *)svn_swig_py_must_get_ptr(obj4, SWIGTYPE_p_svn_opt_revision_t, svn_argnum_obj4);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg7 = (svn_depth_t)SWIG_As_long (obj6);
+ if (SWIG_arg_fail(svn_argnum_obj6)) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg8 = (svn_boolean_t)SWIG_As_long (obj7);
+ if (SWIG_arg_fail(svn_argnum_obj7)) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg9 = (svn_boolean_t)SWIG_As_long (obj8);
+ if (SWIG_arg_fail(svn_argnum_obj8)) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg10 = (svn_boolean_t)SWIG_As_long (obj9);
+ if (SWIG_arg_fail(svn_argnum_obj9)) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg11 = (svn_boolean_t)SWIG_As_long (obj10);
+ if (SWIG_arg_fail(svn_argnum_obj10)) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg12 = (svn_boolean_t)SWIG_As_long (obj11);
+ if (SWIG_arg_fail(svn_argnum_obj11)) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg13 = (svn_boolean_t)SWIG_As_long (obj12);
+ if (SWIG_arg_fail(svn_argnum_obj12)) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg14 = (svn_boolean_t)SWIG_As_long (obj13);
+ if (SWIG_arg_fail(svn_argnum_obj13)) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg15 = (svn_boolean_t)SWIG_As_long (obj14);
+ if (SWIG_arg_fail(svn_argnum_obj14)) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg16 = (svn_boolean_t)SWIG_As_long (obj15);
+ if (SWIG_arg_fail(svn_argnum_obj15)) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg18 = svn_swig_py_make_stream (obj17, _global_pool);
+ }
+ {
+ arg19 = svn_swig_py_make_stream (obj18, _global_pool);
+ }
+ {
+ arg20 = (apr_array_header_t *) svn_swig_py_seq_to_array(obj19,
+ sizeof(const char *),
+ svn_swig_py_unwrap_string,
+ NULL,
+ _global_pool);
+ if (PyErr_Occurred())
+ SWIG_fail;
+ }
+ {
+ arg21 = (svn_client_ctx_t *)svn_swig_py_must_get_ptr(obj20, SWIGTYPE_p_svn_client_ctx_t, svn_argnum_obj20);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ if (obj21) {
+ /* Verify that the user supplied a valid pool */
+ if (obj21 != Py_None && obj21 != _global_py_pool) {
+ SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj21);
+ SWIG_arg_fail(svn_argnum_obj21);
+ SWIG_fail;
+ }
+ }
+ {
+ if (!arg3) {
+ SWIG_exception(SWIG_ValueError,"Received a NULL pointer.");
+ }
+ }
+ {
+ svn_swig_py_release_py_lock();
+
+ result = (svn_error_t *)svn_client_diff_peg7((apr_array_header_t const *)arg1,(char const *)arg2,(struct svn_opt_revision_t const *)arg3,(struct svn_opt_revision_t const *)arg4,(struct svn_opt_revision_t const *)arg5,(char const *)arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13,arg14,arg15,arg16,(char const *)arg17,arg18,arg19,(apr_array_header_t const *)arg20,arg21,arg22);
+
+ svn_swig_py_acquire_py_lock();
+
+ }
+ {
+ if (result != NULL) {
+ if (result->apr_err != SVN_ERR_SWIG_PY_EXCEPTION_SET)
+ svn_swig_py_svn_exception(result);
+ else
+ svn_error_clear(result);
+ SWIG_fail;
+ }
+ Py_INCREF(Py_None);
+ resultobj = Py_None;
+ }
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ return resultobj;
+fail:
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ return NULL;
+}
+
+
SWIGINTERN PyObject *_wrap_svn_client_diff_peg6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
apr_array_header_t *arg1 = (apr_array_header_t *) 0 ;
@@ -21170,6 +21661,120 @@ fail:
}
+SWIGINTERN PyObject *_wrap_svn_client_revert4(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ apr_array_header_t *arg1 = (apr_array_header_t *) 0 ;
+ svn_depth_t arg2 ;
+ apr_array_header_t *arg3 = (apr_array_header_t *) 0 ;
+ svn_boolean_t arg4 ;
+ svn_boolean_t arg5 ;
+ svn_boolean_t arg6 ;
+ svn_client_ctx_t *arg7 = (svn_client_ctx_t *) 0 ;
+ apr_pool_t *arg8 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool = NULL ;
+ PyObject *_global_py_pool = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+ svn_error_t *result = 0 ;
+
+ if (svn_swig_py_get_pool_arg(args, SWIGTYPE_p_apr_pool_t,
+ &_global_py_pool, &_global_pool))
+ SWIG_fail;
+ arg8 = _global_pool;
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOO|O:svn_client_revert4",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+ {
+ arg1 = (apr_array_header_t *) svn_swig_py_seq_to_array(obj0,
+ sizeof(const char *),
+ svn_swig_py_unwrap_string,
+ NULL,
+ _global_pool);
+ if (PyErr_Occurred())
+ SWIG_fail;
+ }
+ {
+ arg2 = (svn_depth_t)SWIG_As_long (obj1);
+ if (SWIG_arg_fail(svn_argnum_obj1)) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg3 = (apr_array_header_t *) svn_swig_py_seq_to_array(obj2,
+ sizeof(const char *),
+ svn_swig_py_unwrap_string,
+ NULL,
+ _global_pool);
+ if (PyErr_Occurred())
+ SWIG_fail;
+ }
+ {
+ arg4 = (svn_boolean_t)SWIG_As_long (obj3);
+ if (SWIG_arg_fail(svn_argnum_obj3)) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg5 = (svn_boolean_t)SWIG_As_long (obj4);
+ if (SWIG_arg_fail(svn_argnum_obj4)) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg6 = (svn_boolean_t)SWIG_As_long (obj5);
+ if (SWIG_arg_fail(svn_argnum_obj5)) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg7 = (svn_client_ctx_t *)svn_swig_py_must_get_ptr(obj6, SWIGTYPE_p_svn_client_ctx_t, svn_argnum_obj6);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ if (obj7) {
+ /* Verify that the user supplied a valid pool */
+ if (obj7 != Py_None && obj7 != _global_py_pool) {
+ SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj7);
+ SWIG_arg_fail(svn_argnum_obj7);
+ SWIG_fail;
+ }
+ }
+ {
+ svn_swig_py_release_py_lock();
+
+ result = (svn_error_t *)svn_client_revert4((apr_array_header_t const *)arg1,arg2,(apr_array_header_t const *)arg3,arg4,arg5,arg6,arg7,arg8);
+
+ svn_swig_py_acquire_py_lock();
+
+ }
+ {
+ if (result != NULL) {
+ if (result->apr_err != SVN_ERR_SWIG_PY_EXCEPTION_SET)
+ svn_swig_py_svn_exception(result);
+ else
+ svn_error_clear(result);
+ SWIG_fail;
+ }
+ Py_INCREF(Py_None);
+ resultobj = Py_None;
+ }
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ return resultobj;
+fail:
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ return NULL;
+}
+
+
SWIGINTERN PyObject *_wrap_svn_client_revert3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
apr_array_header_t *arg1 = (apr_array_header_t *) 0 ;
@@ -21488,6 +22093,98 @@ fail:
}
+SWIGINTERN PyObject *_wrap_svn_client_conflict_option_get_moved_to_repos_relpath_candidates2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ apr_array_header_t **arg1 = (apr_array_header_t **) 0 ;
+ svn_client_conflict_option_t *arg2 = (svn_client_conflict_option_t *) 0 ;
+ apr_pool_t *arg3 = (apr_pool_t *) 0 ;
+ apr_pool_t *arg4 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool = NULL ;
+ PyObject *_global_py_pool = NULL ;
+ apr_array_header_t *temp1 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ svn_error_t *result = 0 ;
+
+ if (svn_swig_py_get_pool_arg(args, SWIGTYPE_p_apr_pool_t,
+ &_global_py_pool, &_global_pool))
+ SWIG_fail;
+ arg3 = _global_pool;
+ if (svn_swig_py_get_pool_arg(args, SWIGTYPE_p_apr_pool_t,
+ &_global_py_pool, &_global_pool))
+ SWIG_fail;
+ arg4 = _global_pool;
+ arg1 = &temp1;
+ if (!PyArg_ParseTuple(args,(char *)"O|OO:svn_client_conflict_option_get_moved_to_repos_relpath_candidates2",&obj0,&obj1,&obj2)) SWIG_fail;
+ {
+ arg2 = (svn_client_conflict_option_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client_conflict_option_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ if (obj1) {
+ /* Verify that the user supplied a valid pool */
+ if (obj1 != Py_None && obj1 != _global_py_pool) {
+ SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj1);
+ SWIG_arg_fail(svn_argnum_obj1);
+ SWIG_fail;
+ }
+ }
+ if (obj2) {
+ /* Verify that the user supplied a valid pool */
+ if (obj2 != Py_None && obj2 != _global_py_pool) {
+ SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj2);
+ SWIG_arg_fail(svn_argnum_obj2);
+ SWIG_fail;
+ }
+ }
+ {
+ svn_swig_py_release_py_lock();
+
+ result = (svn_error_t *)svn_client_conflict_option_get_moved_to_repos_relpath_candidates2(arg1,arg2,arg3,arg4);
+
+ svn_swig_py_acquire_py_lock();
+
+ }
+ {
+ if (result != NULL) {
+ if (result->apr_err != SVN_ERR_SWIG_PY_EXCEPTION_SET)
+ svn_swig_py_svn_exception(result);
+ else
+ svn_error_clear(result);
+ SWIG_fail;
+ }
+ Py_INCREF(Py_None);
+ resultobj = Py_None;
+ }
+ {
+ /* FIXME: Missing argout typemap: svn_client_conflict_option_get_moved_to_repos_relpath_candidates2 arg 1 (apr_array_header_t **) */
+
+
+
+
+ SWIG_exception(SWIG_ValueError, "svn_client_conflict_option_get_moved_to_repos_relpath_candidates2 is not implemented yet");
+
+ }
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ return resultobj;
+fail:
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ return NULL;
+}
+
+
SWIGINTERN PyObject *_wrap_svn_client_conflict_option_get_moved_to_repos_relpath_candidates(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
apr_array_header_t **arg1 = (apr_array_header_t **) 0 ;
@@ -21580,6 +22277,82 @@ fail:
}
+SWIGINTERN PyObject *_wrap_svn_client_conflict_option_set_moved_to_repos_relpath2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ svn_client_conflict_option_t *arg1 = (svn_client_conflict_option_t *) 0 ;
+ int arg2 ;
+ svn_client_ctx_t *arg3 = (svn_client_ctx_t *) 0 ;
+ apr_pool_t *arg4 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool = NULL ;
+ PyObject *_global_py_pool = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ svn_error_t *result = 0 ;
+
+ if (svn_swig_py_get_pool_arg(args, SWIGTYPE_p_apr_pool_t,
+ &_global_py_pool, &_global_pool))
+ SWIG_fail;
+ arg4 = _global_pool;
+ if (!PyArg_ParseTuple(args,(char *)"OOO|O:svn_client_conflict_option_set_moved_to_repos_relpath2",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+ {
+ arg1 = (svn_client_conflict_option_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client_conflict_option_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg2 = (int)SWIG_As_long (obj1);
+ if (SWIG_arg_fail(svn_argnum_obj1)) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg3 = (svn_client_ctx_t *)svn_swig_py_must_get_ptr(obj2, SWIGTYPE_p_svn_client_ctx_t, svn_argnum_obj2);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ if (obj3) {
+ /* Verify that the user supplied a valid pool */
+ if (obj3 != Py_None && obj3 != _global_py_pool) {
+ SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj3);
+ SWIG_arg_fail(svn_argnum_obj3);
+ SWIG_fail;
+ }
+ }
+ {
+ svn_swig_py_release_py_lock();
+
+ result = (svn_error_t *)svn_client_conflict_option_set_moved_to_repos_relpath2(arg1,arg2,arg3,arg4);
+
+ svn_swig_py_acquire_py_lock();
+
+ }
+ {
+ if (result != NULL) {
+ if (result->apr_err != SVN_ERR_SWIG_PY_EXCEPTION_SET)
+ svn_swig_py_svn_exception(result);
+ else
+ svn_error_clear(result);
+ SWIG_fail;
+ }
+ Py_INCREF(Py_None);
+ resultobj = Py_None;
+ }
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ return resultobj;
+fail:
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ return NULL;
+}
+
+
SWIGINTERN PyObject *_wrap_svn_client_conflict_option_set_moved_to_repos_relpath(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
svn_client_conflict_option_t *arg1 = (svn_client_conflict_option_t *) 0 ;
@@ -21656,6 +22429,98 @@ fail:
}
+SWIGINTERN PyObject *_wrap_svn_client_conflict_option_get_moved_to_abspath_candidates2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ apr_array_header_t **arg1 = (apr_array_header_t **) 0 ;
+ svn_client_conflict_option_t *arg2 = (svn_client_conflict_option_t *) 0 ;
+ apr_pool_t *arg3 = (apr_pool_t *) 0 ;
+ apr_pool_t *arg4 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool = NULL ;
+ PyObject *_global_py_pool = NULL ;
+ apr_array_header_t *temp1 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ svn_error_t *result = 0 ;
+
+ if (svn_swig_py_get_pool_arg(args, SWIGTYPE_p_apr_pool_t,
+ &_global_py_pool, &_global_pool))
+ SWIG_fail;
+ arg3 = _global_pool;
+ if (svn_swig_py_get_pool_arg(args, SWIGTYPE_p_apr_pool_t,
+ &_global_py_pool, &_global_pool))
+ SWIG_fail;
+ arg4 = _global_pool;
+ arg1 = &temp1;
+ if (!PyArg_ParseTuple(args,(char *)"O|OO:svn_client_conflict_option_get_moved_to_abspath_candidates2",&obj0,&obj1,&obj2)) SWIG_fail;
+ {
+ arg2 = (svn_client_conflict_option_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client_conflict_option_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ if (obj1) {
+ /* Verify that the user supplied a valid pool */
+ if (obj1 != Py_None && obj1 != _global_py_pool) {
+ SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj1);
+ SWIG_arg_fail(svn_argnum_obj1);
+ SWIG_fail;
+ }
+ }
+ if (obj2) {
+ /* Verify that the user supplied a valid pool */
+ if (obj2 != Py_None && obj2 != _global_py_pool) {
+ SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj2);
+ SWIG_arg_fail(svn_argnum_obj2);
+ SWIG_fail;
+ }
+ }
+ {
+ svn_swig_py_release_py_lock();
+
+ result = (svn_error_t *)svn_client_conflict_option_get_moved_to_abspath_candidates2(arg1,arg2,arg3,arg4);
+
+ svn_swig_py_acquire_py_lock();
+
+ }
+ {
+ if (result != NULL) {
+ if (result->apr_err != SVN_ERR_SWIG_PY_EXCEPTION_SET)
+ svn_swig_py_svn_exception(result);
+ else
+ svn_error_clear(result);
+ SWIG_fail;
+ }
+ Py_INCREF(Py_None);
+ resultobj = Py_None;
+ }
+ {
+ /* FIXME: Missing argout typemap: svn_client_conflict_option_get_moved_to_abspath_candidates2 arg 1 (apr_array_header_t **) */
+
+
+
+
+ SWIG_exception(SWIG_ValueError, "svn_client_conflict_option_get_moved_to_abspath_candidates2 is not implemented yet");
+
+ }
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ return resultobj;
+fail:
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ return NULL;
+}
+
+
SWIGINTERN PyObject *_wrap_svn_client_conflict_option_get_moved_to_abspath_candidates(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
apr_array_header_t **arg1 = (apr_array_header_t **) 0 ;
@@ -21748,6 +22613,82 @@ fail:
}
+SWIGINTERN PyObject *_wrap_svn_client_conflict_option_set_moved_to_abspath2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ svn_client_conflict_option_t *arg1 = (svn_client_conflict_option_t *) 0 ;
+ int arg2 ;
+ svn_client_ctx_t *arg3 = (svn_client_ctx_t *) 0 ;
+ apr_pool_t *arg4 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool = NULL ;
+ PyObject *_global_py_pool = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ svn_error_t *result = 0 ;
+
+ if (svn_swig_py_get_pool_arg(args, SWIGTYPE_p_apr_pool_t,
+ &_global_py_pool, &_global_pool))
+ SWIG_fail;
+ arg4 = _global_pool;
+ if (!PyArg_ParseTuple(args,(char *)"OOO|O:svn_client_conflict_option_set_moved_to_abspath2",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+ {
+ arg1 = (svn_client_conflict_option_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client_conflict_option_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg2 = (int)SWIG_As_long (obj1);
+ if (SWIG_arg_fail(svn_argnum_obj1)) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg3 = (svn_client_ctx_t *)svn_swig_py_must_get_ptr(obj2, SWIGTYPE_p_svn_client_ctx_t, svn_argnum_obj2);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ if (obj3) {
+ /* Verify that the user supplied a valid pool */
+ if (obj3 != Py_None && obj3 != _global_py_pool) {
+ SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj3);
+ SWIG_arg_fail(svn_argnum_obj3);
+ SWIG_fail;
+ }
+ }
+ {
+ svn_swig_py_release_py_lock();
+
+ result = (svn_error_t *)svn_client_conflict_option_set_moved_to_abspath2(arg1,arg2,arg3,arg4);
+
+ svn_swig_py_acquire_py_lock();
+
+ }
+ {
+ if (result != NULL) {
+ if (result->apr_err != SVN_ERR_SWIG_PY_EXCEPTION_SET)
+ svn_swig_py_svn_exception(result);
+ else
+ svn_error_clear(result);
+ SWIG_fail;
+ }
+ Py_INCREF(Py_None);
+ resultobj = Py_None;
+ }
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ return resultobj;
+fail:
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ return NULL;
+}
+
+
SWIGINTERN PyObject *_wrap_svn_client_conflict_option_set_moved_to_abspath(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
svn_client_conflict_option_t *arg1 = (svn_client_conflict_option_t *) 0 ;
@@ -29775,86 +30716,716 @@ fail:
}
-SWIGINTERN PyObject *_wrap_svn_client_shelve(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_svn_client__shelf_t_name_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
- char *arg1 = (char *) 0 ;
- apr_array_header_t *arg2 = (apr_array_header_t *) 0 ;
- svn_depth_t arg3 ;
- apr_array_header_t *arg4 = (apr_array_header_t *) 0 ;
- svn_boolean_t arg5 ;
- svn_boolean_t arg6 ;
- svn_client_ctx_t *arg7 = (svn_client_ctx_t *) 0 ;
- apr_pool_t *arg8 = (apr_pool_t *) 0 ;
+ struct svn_client__shelf_t *arg1 = (struct svn_client__shelf_t *) 0 ;
+ char *arg2 = (char *) 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"Os:svn_client__shelf_t_name_set",&obj0,&arg2)) SWIG_fail;
+ {
+ arg1 = (struct svn_client__shelf_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client__shelf_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ {
+ apr_size_t len = strlen(arg2) + 1;
+ char *copied;
+ if (arg1->name) free((char *)arg1->name);
+ copied = malloc(len);
+ memcpy(copied, arg2, len);
+ arg1->name = copied;
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_svn_client__shelf_t_name_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ struct svn_client__shelf_t *arg1 = (struct svn_client__shelf_t *) 0 ;
+ PyObject * obj0 = 0 ;
+ char *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:svn_client__shelf_t_name_get",&obj0)) SWIG_fail;
+ {
+ arg1 = (struct svn_client__shelf_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client__shelf_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ result = (char *) ((arg1)->name);
+ resultobj = SWIG_FromCharPtr((const char *)result);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_svn_client__shelf_t_max_version_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ struct svn_client__shelf_t *arg1 = (struct svn_client__shelf_t *) 0 ;
+ int arg2 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:svn_client__shelf_t_max_version_set",&obj0,&obj1)) SWIG_fail;
+ {
+ arg1 = (struct svn_client__shelf_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client__shelf_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg2 = (int)SWIG_As_long (obj1);
+ if (SWIG_arg_fail(svn_argnum_obj1)) {
+ SWIG_fail;
+ }
+ }
+ if (arg1) (arg1)->max_version = arg2;
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_svn_client__shelf_t_max_version_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ struct svn_client__shelf_t *arg1 = (struct svn_client__shelf_t *) 0 ;
+ PyObject * obj0 = 0 ;
+ int result;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:svn_client__shelf_t_max_version_get",&obj0)) SWIG_fail;
+ {
+ arg1 = (struct svn_client__shelf_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client__shelf_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ result = (int) ((arg1)->max_version);
+ resultobj = SWIG_From_long((long)(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_svn_client__shelf_t_wc_root_abspath_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ struct svn_client__shelf_t *arg1 = (struct svn_client__shelf_t *) 0 ;
+ char *arg2 = (char *) 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"Os:svn_client__shelf_t_wc_root_abspath_set",&obj0,&arg2)) SWIG_fail;
+ {
+ arg1 = (struct svn_client__shelf_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client__shelf_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ {
+ apr_size_t len = strlen(arg2) + 1;
+ char *copied;
+ if (arg1->wc_root_abspath) free((char *)arg1->wc_root_abspath);
+ copied = malloc(len);
+ memcpy(copied, arg2, len);
+ arg1->wc_root_abspath = copied;
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_svn_client__shelf_t_wc_root_abspath_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ struct svn_client__shelf_t *arg1 = (struct svn_client__shelf_t *) 0 ;
+ PyObject * obj0 = 0 ;
+ char *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:svn_client__shelf_t_wc_root_abspath_get",&obj0)) SWIG_fail;
+ {
+ arg1 = (struct svn_client__shelf_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client__shelf_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ result = (char *) ((arg1)->wc_root_abspath);
+ resultobj = SWIG_FromCharPtr((const char *)result);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_svn_client__shelf_t_shelves_dir_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ struct svn_client__shelf_t *arg1 = (struct svn_client__shelf_t *) 0 ;
+ char *arg2 = (char *) 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"Os:svn_client__shelf_t_shelves_dir_set",&obj0,&arg2)) SWIG_fail;
+ {
+ arg1 = (struct svn_client__shelf_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client__shelf_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ {
+ apr_size_t len = strlen(arg2) + 1;
+ char *copied;
+ if (arg1->shelves_dir) free((char *)arg1->shelves_dir);
+ copied = malloc(len);
+ memcpy(copied, arg2, len);
+ arg1->shelves_dir = copied;
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_svn_client__shelf_t_shelves_dir_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ struct svn_client__shelf_t *arg1 = (struct svn_client__shelf_t *) 0 ;
+ PyObject * obj0 = 0 ;
+ char *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:svn_client__shelf_t_shelves_dir_get",&obj0)) SWIG_fail;
+ {
+ arg1 = (struct svn_client__shelf_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client__shelf_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ result = (char *) ((arg1)->shelves_dir);
+ resultobj = SWIG_FromCharPtr((const char *)result);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_svn_client__shelf_t_revprops_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ struct svn_client__shelf_t *arg1 = (struct svn_client__shelf_t *) 0 ;
+ apr_hash_t *arg2 = (apr_hash_t *) 0 ;
apr_pool_t *_global_pool = NULL ;
PyObject *_global_py_pool = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:svn_client__shelf_t_revprops_set",&obj0,&obj1)) SWIG_fail;
+ {
+ arg1 = (struct svn_client__shelf_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client__shelf_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ {
+ if (_global_pool == NULL)
+ {
+ if (svn_swig_py_get_parent_pool(args, SWIGTYPE_p_apr_pool_t,
+ &_global_py_pool, &_global_pool))
+ SWIG_fail;
+ }
+
+ arg2 = svn_swig_py_prophash_from_dict(obj1, _global_pool);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ if (arg1) (arg1)->revprops = arg2;
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_svn_client__shelf_t_revprops_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ struct svn_client__shelf_t *arg1 = (struct svn_client__shelf_t *) 0 ;
+ PyObject * obj0 = 0 ;
+ apr_hash_t *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:svn_client__shelf_t_revprops_get",&obj0)) SWIG_fail;
+ {
+ arg1 = (struct svn_client__shelf_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client__shelf_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ result = (apr_hash_t *) ((arg1)->revprops);
+ {
+ resultobj = SWIG_Python_AppendOutput(resultobj, svn_swig_py_prophash_to_dict(result));
+ }
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_svn_client__shelf_t_ctx_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ struct svn_client__shelf_t *arg1 = (struct svn_client__shelf_t *) 0 ;
+ svn_client_ctx_t *arg2 = (svn_client_ctx_t *) 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:svn_client__shelf_t_ctx_set",&obj0,&obj1)) SWIG_fail;
+ {
+ arg1 = (struct svn_client__shelf_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client__shelf_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg2 = (svn_client_ctx_t *)svn_swig_py_must_get_ptr(obj1, SWIGTYPE_p_svn_client_ctx_t, svn_argnum_obj1);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ if (arg1) (arg1)->ctx = arg2;
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_svn_client__shelf_t_ctx_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ struct svn_client__shelf_t *arg1 = (struct svn_client__shelf_t *) 0 ;
+ PyObject * obj0 = 0 ;
+ svn_client_ctx_t *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:svn_client__shelf_t_ctx_get",&obj0)) SWIG_fail;
+ {
+ arg1 = (struct svn_client__shelf_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client__shelf_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ result = (svn_client_ctx_t *) ((arg1)->ctx);
+ resultobj = svn_swig_py_new_pointer_obj((void*)(result), SWIGTYPE_p_svn_client_ctx_t,
+ _global_py_pool, args);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_svn_client__shelf_t_pool_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ struct svn_client__shelf_t *arg1 = (struct svn_client__shelf_t *) 0 ;
+ apr_pool_t *arg2 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool = NULL ;
+ PyObject *_global_py_pool = NULL ;
+ PyObject * obj0 = 0 ;
PyObject * obj1 = 0 ;
- PyObject * obj2 = 0 ;
- PyObject * obj3 = 0 ;
- PyObject * obj4 = 0 ;
- PyObject * obj5 = 0 ;
- PyObject * obj6 = 0 ;
- PyObject * obj7 = 0 ;
- svn_error_t *result = 0 ;
if (svn_swig_py_get_pool_arg(args, SWIGTYPE_p_apr_pool_t,
&_global_py_pool, &_global_pool))
SWIG_fail;
- arg8 = _global_pool;
- if (!PyArg_ParseTuple(args,(char *)"sOOOOOO|O:svn_client_shelve",&arg1,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
+ arg2 = _global_pool;
+ if (!PyArg_ParseTuple(args,(char *)"O|O:svn_client__shelf_t_pool_set",&obj0,&obj1)) SWIG_fail;
{
- arg2 = (apr_array_header_t *) svn_swig_py_seq_to_array(obj1,
- sizeof(const char *),
- svn_swig_py_unwrap_string,
- NULL,
- _global_pool);
- if (PyErr_Occurred())
- SWIG_fail;
+ arg1 = (struct svn_client__shelf_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client__shelf_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ if (obj1) {
+ /* Verify that the user supplied a valid pool */
+ if (obj1 != Py_None && obj1 != _global_py_pool) {
+ SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj1);
+ SWIG_arg_fail(svn_argnum_obj1);
+ SWIG_fail;
+ }
}
+ if (arg1) (arg1)->pool = arg2;
+ resultobj = SWIG_Py_Void();
{
- arg3 = (svn_depth_t)SWIG_As_long (obj2);
- if (SWIG_arg_fail(svn_argnum_obj2)) {
+ Py_XDECREF(_global_py_pool);
+ }
+ return resultobj;
+fail:
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_svn_client__shelf_t_pool_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ struct svn_client__shelf_t *arg1 = (struct svn_client__shelf_t *) 0 ;
+ PyObject * obj0 = 0 ;
+ apr_pool_t *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:svn_client__shelf_t_pool_get",&obj0)) SWIG_fail;
+ {
+ arg1 = (struct svn_client__shelf_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client__shelf_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
SWIG_fail;
}
}
+ result = (apr_pool_t *) ((arg1)->pool);
+ resultobj = svn_swig_py_new_pointer_obj((void*)(result), SWIGTYPE_p_apr_pool_t,
+ _global_py_pool, args);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_svn_client__shelf_t(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ struct svn_client__shelf_t *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_svn_client__shelf_t")) SWIG_fail;
{
- arg4 = (apr_array_header_t *) svn_swig_py_seq_to_array(obj3,
- sizeof(const char *),
- svn_swig_py_unwrap_string,
- NULL,
- _global_pool);
- if (PyErr_Occurred())
- SWIG_fail;
+ svn_swig_py_release_py_lock();
+
+ result = (struct svn_client__shelf_t *)calloc(1, sizeof(struct svn_client__shelf_t));
+
+ svn_swig_py_acquire_py_lock();
+
}
+ resultobj = svn_swig_py_new_pointer_obj((void*)(result), SWIGTYPE_p_svn_client__shelf_t,
+ _global_py_pool, args);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_svn_client__shelf_t(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ struct svn_client__shelf_t *arg1 = (struct svn_client__shelf_t *) 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_svn_client__shelf_t",&obj0)) SWIG_fail;
{
- arg5 = (svn_boolean_t)SWIG_As_long (obj4);
- if (SWIG_arg_fail(svn_argnum_obj4)) {
+ arg1 = (struct svn_client__shelf_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client__shelf_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
SWIG_fail;
}
}
{
- arg6 = (svn_boolean_t)SWIG_As_long (obj5);
- if (SWIG_arg_fail(svn_argnum_obj5)) {
+ svn_swig_py_release_py_lock();
+
+ free((char *) arg1);
+
+ svn_swig_py_acquire_py_lock();
+
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *svn_client__shelf_t_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char *)"O:swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_svn_client__shelf_t, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_svn_client__shelf_version_t_shelf_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ struct svn_client__shelf_version_t *arg1 = (struct svn_client__shelf_version_t *) 0 ;
+ svn_client__shelf_t *arg2 = (svn_client__shelf_t *) 0 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:svn_client__shelf_version_t_shelf_set",&obj0,&obj1)) SWIG_fail;
+ {
+ arg1 = (struct svn_client__shelf_version_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client__shelf_version_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
SWIG_fail;
}
}
{
- arg7 = (svn_client_ctx_t *)svn_swig_py_must_get_ptr(obj6, SWIGTYPE_p_svn_client_ctx_t, svn_argnum_obj6);
+ arg2 = (svn_client__shelf_t *)svn_swig_py_must_get_ptr(obj1, SWIGTYPE_p_svn_client__shelf_t, svn_argnum_obj1);
if (PyErr_Occurred()) {
SWIG_fail;
}
}
- if (obj7) {
+ if (arg1) (arg1)->shelf = arg2;
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_svn_client__shelf_version_t_shelf_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ struct svn_client__shelf_version_t *arg1 = (struct svn_client__shelf_version_t *) 0 ;
+ PyObject * obj0 = 0 ;
+ svn_client__shelf_t *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:svn_client__shelf_version_t_shelf_get",&obj0)) SWIG_fail;
+ {
+ arg1 = (struct svn_client__shelf_version_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client__shelf_version_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ result = (svn_client__shelf_t *) ((arg1)->shelf);
+ resultobj = svn_swig_py_new_pointer_obj((void*)(result), SWIGTYPE_p_svn_client__shelf_t,
+ _global_py_pool, args);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_svn_client__shelf_version_t_mtime_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ struct svn_client__shelf_version_t *arg1 = (struct svn_client__shelf_version_t *) 0 ;
+ apr_time_t arg2 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:svn_client__shelf_version_t_mtime_set",&obj0,&obj1)) SWIG_fail;
+ {
+ arg1 = (struct svn_client__shelf_version_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client__shelf_version_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ arg2 = (apr_time_t) PyLong_AsLongLong(obj1);
+ if (arg1) (arg1)->mtime = arg2;
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_svn_client__shelf_version_t_mtime_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ struct svn_client__shelf_version_t *arg1 = (struct svn_client__shelf_version_t *) 0 ;
+ PyObject * obj0 = 0 ;
+ apr_time_t result;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:svn_client__shelf_version_t_mtime_get",&obj0)) SWIG_fail;
+ {
+ arg1 = (struct svn_client__shelf_version_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client__shelf_version_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ result = ((arg1)->mtime);
+ resultobj = PyLong_FromLongLong((apr_int64_t)(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_svn_client__shelf_version_t_files_dir_abspath_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ struct svn_client__shelf_version_t *arg1 = (struct svn_client__shelf_version_t *) 0 ;
+ char *arg2 = (char *) 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"Os:svn_client__shelf_version_t_files_dir_abspath_set",&obj0,&arg2)) SWIG_fail;
+ {
+ arg1 = (struct svn_client__shelf_version_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client__shelf_version_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ {
+ apr_size_t len = strlen(arg2) + 1;
+ char *copied;
+ if (arg1->files_dir_abspath) free((char *)arg1->files_dir_abspath);
+ copied = malloc(len);
+ memcpy(copied, arg2, len);
+ arg1->files_dir_abspath = copied;
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_svn_client__shelf_version_t_files_dir_abspath_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ struct svn_client__shelf_version_t *arg1 = (struct svn_client__shelf_version_t *) 0 ;
+ PyObject * obj0 = 0 ;
+ char *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:svn_client__shelf_version_t_files_dir_abspath_get",&obj0)) SWIG_fail;
+ {
+ arg1 = (struct svn_client__shelf_version_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client__shelf_version_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ result = (char *) ((arg1)->files_dir_abspath);
+ resultobj = SWIG_FromCharPtr((const char *)result);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_svn_client__shelf_version_t_version_number_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ struct svn_client__shelf_version_t *arg1 = (struct svn_client__shelf_version_t *) 0 ;
+ int arg2 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:svn_client__shelf_version_t_version_number_set",&obj0,&obj1)) SWIG_fail;
+ {
+ arg1 = (struct svn_client__shelf_version_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client__shelf_version_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg2 = (int)SWIG_As_long (obj1);
+ if (SWIG_arg_fail(svn_argnum_obj1)) {
+ SWIG_fail;
+ }
+ }
+ if (arg1) (arg1)->version_number = arg2;
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_svn_client__shelf_version_t_version_number_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ struct svn_client__shelf_version_t *arg1 = (struct svn_client__shelf_version_t *) 0 ;
+ PyObject * obj0 = 0 ;
+ int result;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:svn_client__shelf_version_t_version_number_get",&obj0)) SWIG_fail;
+ {
+ arg1 = (struct svn_client__shelf_version_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client__shelf_version_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ result = (int) ((arg1)->version_number);
+ resultobj = SWIG_From_long((long)(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_svn_client__shelf_version_t(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ struct svn_client__shelf_version_t *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_svn_client__shelf_version_t")) SWIG_fail;
+ {
+ svn_swig_py_release_py_lock();
+
+ result = (struct svn_client__shelf_version_t *)calloc(1, sizeof(struct svn_client__shelf_version_t));
+
+ svn_swig_py_acquire_py_lock();
+
+ }
+ resultobj = svn_swig_py_new_pointer_obj((void*)(result), SWIGTYPE_p_svn_client__shelf_version_t,
+ _global_py_pool, args);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_svn_client__shelf_version_t(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ struct svn_client__shelf_version_t *arg1 = (struct svn_client__shelf_version_t *) 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_svn_client__shelf_version_t",&obj0)) SWIG_fail;
+ {
+ arg1 = (struct svn_client__shelf_version_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client__shelf_version_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ {
+ svn_swig_py_release_py_lock();
+
+ free((char *) arg1);
+
+ svn_swig_py_acquire_py_lock();
+
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *svn_client__shelf_version_t_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char *)"O:swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_svn_client__shelf_version_t, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_svn_client__shelf_open_or_create(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ svn_client__shelf_t **arg1 = (svn_client__shelf_t **) 0 ;
+ char *arg2 = (char *) 0 ;
+ char *arg3 = (char *) 0 ;
+ svn_client_ctx_t *arg4 = (svn_client_ctx_t *) 0 ;
+ apr_pool_t *arg5 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool = NULL ;
+ PyObject *_global_py_pool = NULL ;
+ svn_client__shelf_t *temp1 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ svn_error_t *result = 0 ;
+
+ if (svn_swig_py_get_pool_arg(args, SWIGTYPE_p_apr_pool_t,
+ &_global_py_pool, &_global_pool))
+ SWIG_fail;
+ arg5 = _global_pool;
+ arg1 = &temp1;
+ if (!PyArg_ParseTuple(args,(char *)"ssO|O:svn_client__shelf_open_or_create",&arg2,&arg3,&obj2,&obj3)) SWIG_fail;
+ {
+ arg4 = (svn_client_ctx_t *)svn_swig_py_must_get_ptr(obj2, SWIGTYPE_p_svn_client_ctx_t, svn_argnum_obj2);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ if (obj3) {
/* Verify that the user supplied a valid pool */
- if (obj7 != Py_None && obj7 != _global_py_pool) {
- SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj7);
- SWIG_arg_fail(svn_argnum_obj7);
+ if (obj3 != Py_None && obj3 != _global_py_pool) {
+ SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj3);
+ SWIG_arg_fail(svn_argnum_obj3);
SWIG_fail;
}
}
{
svn_swig_py_release_py_lock();
- result = (svn_error_t *)svn_client_shelve((char const *)arg1,(apr_array_header_t const *)arg2,arg3,(apr_array_header_t const *)arg4,arg5,arg6,arg7,arg8);
+ result = (svn_error_t *)svn_client__shelf_open_or_create(arg1,(char const *)arg2,(char const *)arg3,arg4,arg5);
svn_swig_py_acquire_py_lock();
@@ -29871,6 +31442,15 @@ SWIGINTERN PyObject *_wrap_svn_client_shelve(PyObject *SWIGUNUSEDPARM(self), PyO
resultobj = Py_None;
}
{
+ /* FIXME: Missing argout typemap: svn_client__shelf_open_or_create arg 1 (svn_client__shelf_t **) */
+
+
+
+
+ SWIG_exception(SWIG_ValueError, "svn_client__shelf_open_or_create is not implemented yet");
+
+ }
+ {
Py_XDECREF(_global_py_pool);
}
return resultobj;
@@ -29882,57 +31462,113 @@ fail:
}
-SWIGINTERN PyObject *_wrap_svn_client_unshelve(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_svn_client__shelf_open_existing(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
- char *arg1 = (char *) 0 ;
+ svn_client__shelf_t **arg1 = (svn_client__shelf_t **) 0 ;
char *arg2 = (char *) 0 ;
- svn_boolean_t arg3 ;
- svn_boolean_t arg4 ;
- svn_client_ctx_t *arg5 = (svn_client_ctx_t *) 0 ;
- apr_pool_t *arg6 = (apr_pool_t *) 0 ;
+ char *arg3 = (char *) 0 ;
+ svn_client_ctx_t *arg4 = (svn_client_ctx_t *) 0 ;
+ apr_pool_t *arg5 = (apr_pool_t *) 0 ;
apr_pool_t *_global_pool = NULL ;
PyObject *_global_py_pool = NULL ;
+ svn_client__shelf_t *temp1 ;
PyObject * obj2 = 0 ;
PyObject * obj3 = 0 ;
- PyObject * obj4 = 0 ;
- PyObject * obj5 = 0 ;
svn_error_t *result = 0 ;
if (svn_swig_py_get_pool_arg(args, SWIGTYPE_p_apr_pool_t,
&_global_py_pool, &_global_pool))
SWIG_fail;
- arg6 = _global_pool;
- if (!PyArg_ParseTuple(args,(char *)"ssOOO|O:svn_client_unshelve",&arg1,&arg2,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
+ arg5 = _global_pool;
+ arg1 = &temp1;
+ if (!PyArg_ParseTuple(args,(char *)"ssO|O:svn_client__shelf_open_existing",&arg2,&arg3,&obj2,&obj3)) SWIG_fail;
{
- arg3 = (svn_boolean_t)SWIG_As_long (obj2);
- if (SWIG_arg_fail(svn_argnum_obj2)) {
+ arg4 = (svn_client_ctx_t *)svn_swig_py_must_get_ptr(obj2, SWIGTYPE_p_svn_client_ctx_t, svn_argnum_obj2);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ if (obj3) {
+ /* Verify that the user supplied a valid pool */
+ if (obj3 != Py_None && obj3 != _global_py_pool) {
+ SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj3);
+ SWIG_arg_fail(svn_argnum_obj3);
SWIG_fail;
}
}
{
- arg4 = (svn_boolean_t)SWIG_As_long (obj3);
- if (SWIG_arg_fail(svn_argnum_obj3)) {
+ svn_swig_py_release_py_lock();
+
+ result = (svn_error_t *)svn_client__shelf_open_existing(arg1,(char const *)arg2,(char const *)arg3,arg4,arg5);
+
+ svn_swig_py_acquire_py_lock();
+
+ }
+ {
+ if (result != NULL) {
+ if (result->apr_err != SVN_ERR_SWIG_PY_EXCEPTION_SET)
+ svn_swig_py_svn_exception(result);
+ else
+ svn_error_clear(result);
SWIG_fail;
}
+ Py_INCREF(Py_None);
+ resultobj = Py_None;
}
{
- arg5 = (svn_client_ctx_t *)svn_swig_py_must_get_ptr(obj4, SWIGTYPE_p_svn_client_ctx_t, svn_argnum_obj4);
+ /* FIXME: Missing argout typemap: svn_client__shelf_open_existing arg 1 (svn_client__shelf_t **) */
+
+
+
+
+ SWIG_exception(SWIG_ValueError, "svn_client__shelf_open_existing is not implemented yet");
+
+ }
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ return resultobj;
+fail:
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_svn_client__shelf_close(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ svn_client__shelf_t *arg1 = (svn_client__shelf_t *) 0 ;
+ apr_pool_t *arg2 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool = NULL ;
+ PyObject *_global_py_pool = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ svn_error_t *result = 0 ;
+
+ if (svn_swig_py_get_pool_arg(args, SWIGTYPE_p_apr_pool_t,
+ &_global_py_pool, &_global_pool))
+ SWIG_fail;
+ arg2 = _global_pool;
+ if (!PyArg_ParseTuple(args,(char *)"O|O:svn_client__shelf_close",&obj0,&obj1)) SWIG_fail;
+ {
+ arg1 = (svn_client__shelf_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client__shelf_t, svn_argnum_obj0);
if (PyErr_Occurred()) {
SWIG_fail;
}
}
- if (obj5) {
+ if (obj1) {
/* Verify that the user supplied a valid pool */
- if (obj5 != Py_None && obj5 != _global_py_pool) {
- SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj5);
- SWIG_arg_fail(svn_argnum_obj5);
+ if (obj1 != Py_None && obj1 != _global_py_pool) {
+ SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj1);
+ SWIG_arg_fail(svn_argnum_obj1);
SWIG_fail;
}
}
{
svn_swig_py_release_py_lock();
- result = (svn_error_t *)svn_client_unshelve((char const *)arg1,(char const *)arg2,arg3,arg4,arg5,arg6);
+ result = (svn_error_t *)svn_client__shelf_close(arg1,arg2);
svn_swig_py_acquire_py_lock();
@@ -29960,7 +31596,7 @@ fail:
}
-SWIGINTERN PyObject *_wrap_svn_client_shelves_delete(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_svn_client__shelf_delete(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
char *arg1 = (char *) 0 ;
char *arg2 = (char *) 0 ;
@@ -29978,7 +31614,7 @@ SWIGINTERN PyObject *_wrap_svn_client_shelves_delete(PyObject *SWIGUNUSEDPARM(se
&_global_py_pool, &_global_pool))
SWIG_fail;
arg5 = _global_pool;
- if (!PyArg_ParseTuple(args,(char *)"ssOO|O:svn_client_shelves_delete",&arg1,&arg2,&obj2,&obj3,&obj4)) SWIG_fail;
+ if (!PyArg_ParseTuple(args,(char *)"ssOO|O:svn_client__shelf_delete",&arg1,&arg2,&obj2,&obj3,&obj4)) SWIG_fail;
{
arg3 = (svn_boolean_t)SWIG_As_long (obj2);
if (SWIG_arg_fail(svn_argnum_obj2)) {
@@ -30002,7 +31638,7 @@ SWIGINTERN PyObject *_wrap_svn_client_shelves_delete(PyObject *SWIGUNUSEDPARM(se
{
svn_swig_py_release_py_lock();
- result = (svn_error_t *)svn_client_shelves_delete((char const *)arg1,(char const *)arg2,arg3,arg4,arg5);
+ result = (svn_error_t *)svn_client__shelf_delete((char const *)arg1,(char const *)arg2,arg3,arg4,arg5);
svn_swig_py_acquire_py_lock();
@@ -30030,284 +31666,745 @@ fail:
}
-SWIGINTERN PyObject *_wrap_svn_client_shelved_patch_info_t_message_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_svn_client__shelf_save_new_version3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
- struct svn_client_shelved_patch_info_t *arg1 = (struct svn_client_shelved_patch_info_t *) 0 ;
- char *arg2 = (char *) 0 ;
+ svn_client__shelf_version_t **arg1 = (svn_client__shelf_version_t **) 0 ;
+ svn_client__shelf_t *arg2 = (svn_client__shelf_t *) 0 ;
+ apr_array_header_t *arg3 = (apr_array_header_t *) 0 ;
+ svn_depth_t arg4 ;
+ apr_array_header_t *arg5 = (apr_array_header_t *) 0 ;
+ svn_client_status_func_t arg6 = (svn_client_status_func_t) 0 ;
+ void *arg7 = (void *) 0 ;
+ svn_client_status_func_t arg8 = (svn_client_status_func_t) 0 ;
+ void *arg9 = (void *) 0 ;
+ apr_pool_t *arg10 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool = NULL ;
+ PyObject *_global_py_pool = NULL ;
+ svn_client__shelf_version_t *temp1 ;
PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+ PyObject * obj8 = 0 ;
+ svn_error_t *result = 0 ;
- if (!PyArg_ParseTuple(args,(char *)"Os:svn_client_shelved_patch_info_t_message_set",&obj0,&arg2)) SWIG_fail;
+ if (svn_swig_py_get_pool_arg(args, SWIGTYPE_p_apr_pool_t,
+ &_global_py_pool, &_global_pool))
+ SWIG_fail;
+ arg10 = _global_pool;
+ arg1 = &temp1;
+ if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO|O:svn_client__shelf_save_new_version3",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8)) SWIG_fail;
{
- arg1 = (struct svn_client_shelved_patch_info_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client_shelved_patch_info_t, svn_argnum_obj0);
+ arg2 = (svn_client__shelf_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client__shelf_t, svn_argnum_obj0);
if (PyErr_Occurred()) {
SWIG_fail;
}
}
{
- apr_size_t len = strlen(arg2) + 1;
- char *copied;
- if (arg1->message) free((char *)arg1->message);
- copied = malloc(len);
- memcpy(copied, arg2, len);
- arg1->message = copied;
+ arg3 = (apr_array_header_t *) svn_swig_py_seq_to_array(obj1,
+ sizeof(const char *),
+ svn_swig_py_unwrap_string,
+ NULL,
+ _global_pool);
+ if (PyErr_Occurred())
+ SWIG_fail;
+ }
+ {
+ arg4 = (svn_depth_t)SWIG_As_long (obj2);
+ if (SWIG_arg_fail(svn_argnum_obj2)) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg5 = (apr_array_header_t *) svn_swig_py_seq_to_array(obj3,
+ sizeof(const char *),
+ svn_swig_py_unwrap_string,
+ NULL,
+ _global_pool);
+ if (PyErr_Occurred())
+ SWIG_fail;
+ }
+ {
+ svn_client_status_func_t * tmp =
+ svn_swig_py_must_get_ptr(obj4, SWIGTYPE_p_p_f_p_void_p_q_const__char_p_q_const__svn_client_status_t_p_apr_pool_t__p_svn_error_t, svn_argnum_obj4);
+ if (tmp == NULL || PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ arg6 = *tmp;
+ }
+ {
+ if (obj5 == Py_None) {
+ arg7 = NULL;
+ } else if (SWIG_ConvertPtr(obj5, (void **) &arg7, 0, 0) == -1) {
+ arg7 = (void *) obj5;
+ PyErr_Clear();
+ }
+ }
+ {
+ svn_client_status_func_t * tmp =
+ svn_swig_py_must_get_ptr(obj6, SWIGTYPE_p_p_f_p_void_p_q_const__char_p_q_const__svn_client_status_t_p_apr_pool_t__p_svn_error_t, svn_argnum_obj6);
+ if (tmp == NULL || PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ arg8 = *tmp;
+ }
+ {
+ if (obj7 == Py_None) {
+ arg9 = NULL;
+ } else if (SWIG_ConvertPtr(obj7, (void **) &arg9, 0, 0) == -1) {
+ arg9 = (void *) obj7;
+ PyErr_Clear();
+ }
+ }
+ if (obj8) {
+ /* Verify that the user supplied a valid pool */
+ if (obj8 != Py_None && obj8 != _global_py_pool) {
+ SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj8);
+ SWIG_arg_fail(svn_argnum_obj8);
+ SWIG_fail;
+ }
+ }
+ {
+ svn_swig_py_release_py_lock();
+
+ result = (svn_error_t *)svn_client__shelf_save_new_version3(arg1,arg2,(apr_array_header_t const *)arg3,arg4,(apr_array_header_t const *)arg5,arg6,arg7,arg8,arg9,arg10);
+
+ svn_swig_py_acquire_py_lock();
+
+ }
+ {
+ if (result != NULL) {
+ if (result->apr_err != SVN_ERR_SWIG_PY_EXCEPTION_SET)
+ svn_swig_py_svn_exception(result);
+ else
+ svn_error_clear(result);
+ SWIG_fail;
+ }
+ Py_INCREF(Py_None);
+ resultobj = Py_None;
+ }
+ {
+ /* FIXME: Missing argout typemap: svn_client__shelf_save_new_version3 arg 1 (svn_client__shelf_version_t **) */
+
+
+
+
+ SWIG_exception(SWIG_ValueError, "svn_client__shelf_save_new_version3 is not implemented yet");
+
+ }
+ {
+ Py_XDECREF(_global_py_pool);
}
- resultobj = SWIG_Py_Void();
return resultobj;
fail:
+ {
+ Py_XDECREF(_global_py_pool);
+ }
return NULL;
}
-SWIGINTERN PyObject *_wrap_svn_client_shelved_patch_info_t_message_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_svn_client__shelf_delete_newer_versions(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
- struct svn_client_shelved_patch_info_t *arg1 = (struct svn_client_shelved_patch_info_t *) 0 ;
+ svn_client__shelf_t *arg1 = (svn_client__shelf_t *) 0 ;
+ svn_client__shelf_version_t *arg2 = (svn_client__shelf_version_t *) 0 ;
+ apr_pool_t *arg3 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool = NULL ;
+ PyObject *_global_py_pool = NULL ;
PyObject * obj0 = 0 ;
- char *result = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ svn_error_t *result = 0 ;
- if (!PyArg_ParseTuple(args,(char *)"O:svn_client_shelved_patch_info_t_message_get",&obj0)) SWIG_fail;
+ if (svn_swig_py_get_pool_arg(args, SWIGTYPE_p_apr_pool_t,
+ &_global_py_pool, &_global_pool))
+ SWIG_fail;
+ arg3 = _global_pool;
+ if (!PyArg_ParseTuple(args,(char *)"OO|O:svn_client__shelf_delete_newer_versions",&obj0,&obj1,&obj2)) SWIG_fail;
{
- arg1 = (struct svn_client_shelved_patch_info_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client_shelved_patch_info_t, svn_argnum_obj0);
+ arg1 = (svn_client__shelf_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client__shelf_t, svn_argnum_obj0);
if (PyErr_Occurred()) {
SWIG_fail;
}
}
- result = (char *) ((arg1)->message);
- resultobj = SWIG_FromCharPtr((const char *)result);
- return resultobj;
-fail:
- return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_svn_client_shelved_patch_info_t_patch_path_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
- PyObject *resultobj = 0;
- struct svn_client_shelved_patch_info_t *arg1 = (struct svn_client_shelved_patch_info_t *) 0 ;
- char *arg2 = (char *) 0 ;
- PyObject * obj0 = 0 ;
-
- if (!PyArg_ParseTuple(args,(char *)"Os:svn_client_shelved_patch_info_t_patch_path_set",&obj0,&arg2)) SWIG_fail;
{
- arg1 = (struct svn_client_shelved_patch_info_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client_shelved_patch_info_t, svn_argnum_obj0);
+ arg2 = (svn_client__shelf_version_t *)svn_swig_py_must_get_ptr(obj1, SWIGTYPE_p_svn_client__shelf_version_t, svn_argnum_obj1);
if (PyErr_Occurred()) {
SWIG_fail;
}
}
+ if (obj2) {
+ /* Verify that the user supplied a valid pool */
+ if (obj2 != Py_None && obj2 != _global_py_pool) {
+ SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj2);
+ SWIG_arg_fail(svn_argnum_obj2);
+ SWIG_fail;
+ }
+ }
{
- apr_size_t len = strlen(arg2) + 1;
- char *copied;
- if (arg1->patch_path) free((char *)arg1->patch_path);
- copied = malloc(len);
- memcpy(copied, arg2, len);
- arg1->patch_path = copied;
+ svn_swig_py_release_py_lock();
+
+ result = (svn_error_t *)svn_client__shelf_delete_newer_versions(arg1,arg2,arg3);
+
+ svn_swig_py_acquire_py_lock();
+
+ }
+ {
+ if (result != NULL) {
+ if (result->apr_err != SVN_ERR_SWIG_PY_EXCEPTION_SET)
+ svn_swig_py_svn_exception(result);
+ else
+ svn_error_clear(result);
+ SWIG_fail;
+ }
+ Py_INCREF(Py_None);
+ resultobj = Py_None;
+ }
+ {
+ Py_XDECREF(_global_py_pool);
}
- resultobj = SWIG_Py_Void();
return resultobj;
fail:
+ {
+ Py_XDECREF(_global_py_pool);
+ }
return NULL;
}
-SWIGINTERN PyObject *_wrap_svn_client_shelved_patch_info_t_patch_path_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_svn_client__shelf_version_open(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
- struct svn_client_shelved_patch_info_t *arg1 = (struct svn_client_shelved_patch_info_t *) 0 ;
+ svn_client__shelf_version_t **arg1 = (svn_client__shelf_version_t **) 0 ;
+ svn_client__shelf_t *arg2 = (svn_client__shelf_t *) 0 ;
+ int arg3 ;
+ apr_pool_t *arg4 = (apr_pool_t *) 0 ;
+ apr_pool_t *arg5 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool = NULL ;
+ PyObject *_global_py_pool = NULL ;
+ svn_client__shelf_version_t *temp1 ;
PyObject * obj0 = 0 ;
- char *result = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ svn_error_t *result = 0 ;
- if (!PyArg_ParseTuple(args,(char *)"O:svn_client_shelved_patch_info_t_patch_path_get",&obj0)) SWIG_fail;
+ if (svn_swig_py_get_pool_arg(args, SWIGTYPE_p_apr_pool_t,
+ &_global_py_pool, &_global_pool))
+ SWIG_fail;
+ arg4 = _global_pool;
+ if (svn_swig_py_get_pool_arg(args, SWIGTYPE_p_apr_pool_t,
+ &_global_py_pool, &_global_pool))
+ SWIG_fail;
+ arg5 = _global_pool;
+ arg1 = &temp1;
+ if (!PyArg_ParseTuple(args,(char *)"OO|OO:svn_client__shelf_version_open",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
{
- arg1 = (struct svn_client_shelved_patch_info_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client_shelved_patch_info_t, svn_argnum_obj0);
+ arg2 = (svn_client__shelf_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client__shelf_t, svn_argnum_obj0);
if (PyErr_Occurred()) {
SWIG_fail;
}
}
- result = (char *) ((arg1)->patch_path);
- resultobj = SWIG_FromCharPtr((const char *)result);
+ {
+ arg3 = (int)SWIG_As_long (obj1);
+ if (SWIG_arg_fail(svn_argnum_obj1)) {
+ SWIG_fail;
+ }
+ }
+ if (obj2) {
+ /* Verify that the user supplied a valid pool */
+ if (obj2 != Py_None && obj2 != _global_py_pool) {
+ SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj2);
+ SWIG_arg_fail(svn_argnum_obj2);
+ SWIG_fail;
+ }
+ }
+ if (obj3) {
+ /* Verify that the user supplied a valid pool */
+ if (obj3 != Py_None && obj3 != _global_py_pool) {
+ SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj3);
+ SWIG_arg_fail(svn_argnum_obj3);
+ SWIG_fail;
+ }
+ }
+ {
+ svn_swig_py_release_py_lock();
+
+ result = (svn_error_t *)svn_client__shelf_version_open(arg1,arg2,arg3,arg4,arg5);
+
+ svn_swig_py_acquire_py_lock();
+
+ }
+ {
+ if (result != NULL) {
+ if (result->apr_err != SVN_ERR_SWIG_PY_EXCEPTION_SET)
+ svn_swig_py_svn_exception(result);
+ else
+ svn_error_clear(result);
+ SWIG_fail;
+ }
+ Py_INCREF(Py_None);
+ resultobj = Py_None;
+ }
+ {
+ /* FIXME: Missing argout typemap: svn_client__shelf_version_open arg 1 (svn_client__shelf_version_t **) */
+
+
+
+
+ SWIG_exception(SWIG_ValueError, "svn_client__shelf_version_open is not implemented yet");
+
+ }
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ {
+ Py_XDECREF(_global_py_pool);
+ }
return resultobj;
fail:
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ {
+ Py_XDECREF(_global_py_pool);
+ }
return NULL;
}
-SWIGINTERN PyObject *_wrap_svn_client_shelved_patch_info_t_dirent_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_svn_client__shelf_get_newest_version(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
- struct svn_client_shelved_patch_info_t *arg1 = (struct svn_client_shelved_patch_info_t *) 0 ;
- svn_io_dirent2_t *arg2 = (svn_io_dirent2_t *) 0 ;
+ svn_client__shelf_version_t **arg1 = (svn_client__shelf_version_t **) 0 ;
+ svn_client__shelf_t *arg2 = (svn_client__shelf_t *) 0 ;
+ apr_pool_t *arg3 = (apr_pool_t *) 0 ;
+ apr_pool_t *arg4 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool = NULL ;
+ PyObject *_global_py_pool = NULL ;
+ svn_client__shelf_version_t *temp1 ;
PyObject * obj0 = 0 ;
PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ svn_error_t *result = 0 ;
- if (!PyArg_ParseTuple(args,(char *)"OO:svn_client_shelved_patch_info_t_dirent_set",&obj0,&obj1)) SWIG_fail;
+ if (svn_swig_py_get_pool_arg(args, SWIGTYPE_p_apr_pool_t,
+ &_global_py_pool, &_global_pool))
+ SWIG_fail;
+ arg3 = _global_pool;
+ if (svn_swig_py_get_pool_arg(args, SWIGTYPE_p_apr_pool_t,
+ &_global_py_pool, &_global_pool))
+ SWIG_fail;
+ arg4 = _global_pool;
+ arg1 = &temp1;
+ if (!PyArg_ParseTuple(args,(char *)"O|OO:svn_client__shelf_get_newest_version",&obj0,&obj1,&obj2)) SWIG_fail;
{
- arg1 = (struct svn_client_shelved_patch_info_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client_shelved_patch_info_t, svn_argnum_obj0);
+ arg2 = (svn_client__shelf_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client__shelf_t, svn_argnum_obj0);
if (PyErr_Occurred()) {
SWIG_fail;
}
}
+ if (obj1) {
+ /* Verify that the user supplied a valid pool */
+ if (obj1 != Py_None && obj1 != _global_py_pool) {
+ SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj1);
+ SWIG_arg_fail(svn_argnum_obj1);
+ SWIG_fail;
+ }
+ }
+ if (obj2) {
+ /* Verify that the user supplied a valid pool */
+ if (obj2 != Py_None && obj2 != _global_py_pool) {
+ SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj2);
+ SWIG_arg_fail(svn_argnum_obj2);
+ SWIG_fail;
+ }
+ }
{
- arg2 = (svn_io_dirent2_t *)svn_swig_py_must_get_ptr(obj1, SWIGTYPE_p_svn_io_dirent2_t, svn_argnum_obj1);
- if (PyErr_Occurred()) {
+ svn_swig_py_release_py_lock();
+
+ result = (svn_error_t *)svn_client__shelf_get_newest_version(arg1,arg2,arg3,arg4);
+
+ svn_swig_py_acquire_py_lock();
+
+ }
+ {
+ if (result != NULL) {
+ if (result->apr_err != SVN_ERR_SWIG_PY_EXCEPTION_SET)
+ svn_swig_py_svn_exception(result);
+ else
+ svn_error_clear(result);
SWIG_fail;
}
+ Py_INCREF(Py_None);
+ resultobj = Py_None;
+ }
+ {
+ /* FIXME: Missing argout typemap: svn_client__shelf_get_newest_version arg 1 (svn_client__shelf_version_t **) */
+
+
+
+
+ SWIG_exception(SWIG_ValueError, "svn_client__shelf_get_newest_version is not implemented yet");
+
+ }
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ {
+ Py_XDECREF(_global_py_pool);
}
- if (arg1) (arg1)->dirent = arg2;
- resultobj = SWIG_Py_Void();
return resultobj;
fail:
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ {
+ Py_XDECREF(_global_py_pool);
+ }
return NULL;
}
-SWIGINTERN PyObject *_wrap_svn_client_shelved_patch_info_t_dirent_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_svn_client__shelf_get_all_versions(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
- struct svn_client_shelved_patch_info_t *arg1 = (struct svn_client_shelved_patch_info_t *) 0 ;
+ apr_array_header_t **arg1 = (apr_array_header_t **) 0 ;
+ svn_client__shelf_t *arg2 = (svn_client__shelf_t *) 0 ;
+ apr_pool_t *arg3 = (apr_pool_t *) 0 ;
+ apr_pool_t *arg4 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool = NULL ;
+ PyObject *_global_py_pool = NULL ;
+ apr_array_header_t *temp1 ;
PyObject * obj0 = 0 ;
- svn_io_dirent2_t *result = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ svn_error_t *result = 0 ;
- if (!PyArg_ParseTuple(args,(char *)"O:svn_client_shelved_patch_info_t_dirent_get",&obj0)) SWIG_fail;
+ if (svn_swig_py_get_pool_arg(args, SWIGTYPE_p_apr_pool_t,
+ &_global_py_pool, &_global_pool))
+ SWIG_fail;
+ arg3 = _global_pool;
+ if (svn_swig_py_get_pool_arg(args, SWIGTYPE_p_apr_pool_t,
+ &_global_py_pool, &_global_pool))
+ SWIG_fail;
+ arg4 = _global_pool;
+ arg1 = &temp1;
+ if (!PyArg_ParseTuple(args,(char *)"O|OO:svn_client__shelf_get_all_versions",&obj0,&obj1,&obj2)) SWIG_fail;
{
- arg1 = (struct svn_client_shelved_patch_info_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client_shelved_patch_info_t, svn_argnum_obj0);
+ arg2 = (svn_client__shelf_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client__shelf_t, svn_argnum_obj0);
if (PyErr_Occurred()) {
SWIG_fail;
}
}
- result = (svn_io_dirent2_t *) ((arg1)->dirent);
- resultobj = svn_swig_py_new_pointer_obj((void*)(result), SWIGTYPE_p_svn_io_dirent2_t,
- _global_py_pool, args);
+ if (obj1) {
+ /* Verify that the user supplied a valid pool */
+ if (obj1 != Py_None && obj1 != _global_py_pool) {
+ SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj1);
+ SWIG_arg_fail(svn_argnum_obj1);
+ SWIG_fail;
+ }
+ }
+ if (obj2) {
+ /* Verify that the user supplied a valid pool */
+ if (obj2 != Py_None && obj2 != _global_py_pool) {
+ SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj2);
+ SWIG_arg_fail(svn_argnum_obj2);
+ SWIG_fail;
+ }
+ }
+ {
+ svn_swig_py_release_py_lock();
+
+ result = (svn_error_t *)svn_client__shelf_get_all_versions(arg1,arg2,arg3,arg4);
+
+ svn_swig_py_acquire_py_lock();
+
+ }
+ {
+ if (result != NULL) {
+ if (result->apr_err != SVN_ERR_SWIG_PY_EXCEPTION_SET)
+ svn_swig_py_svn_exception(result);
+ else
+ svn_error_clear(result);
+ SWIG_fail;
+ }
+ Py_INCREF(Py_None);
+ resultobj = Py_None;
+ }
+ {
+ /* FIXME: Missing argout typemap: svn_client__shelf_get_all_versions arg 1 (apr_array_header_t **) */
+
+
+
+
+ SWIG_exception(SWIG_ValueError, "svn_client__shelf_get_all_versions is not implemented yet");
+
+ }
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ {
+ Py_XDECREF(_global_py_pool);
+ }
return resultobj;
fail:
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ {
+ Py_XDECREF(_global_py_pool);
+ }
return NULL;
}
-SWIGINTERN PyObject *_wrap_svn_client_shelved_patch_info_t_mtime_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_svn_client__shelf_apply(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
- struct svn_client_shelved_patch_info_t *arg1 = (struct svn_client_shelved_patch_info_t *) 0 ;
- apr_time_t arg2 ;
+ svn_client__shelf_version_t *arg1 = (svn_client__shelf_version_t *) 0 ;
+ svn_boolean_t arg2 ;
+ apr_pool_t *arg3 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool = NULL ;
+ PyObject *_global_py_pool = NULL ;
PyObject * obj0 = 0 ;
PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ svn_error_t *result = 0 ;
- if (!PyArg_ParseTuple(args,(char *)"OO:svn_client_shelved_patch_info_t_mtime_set",&obj0,&obj1)) SWIG_fail;
+ if (svn_swig_py_get_pool_arg(args, SWIGTYPE_p_apr_pool_t,
+ &_global_py_pool, &_global_pool))
+ SWIG_fail;
+ arg3 = _global_pool;
+ if (!PyArg_ParseTuple(args,(char *)"OO|O:svn_client__shelf_apply",&obj0,&obj1,&obj2)) SWIG_fail;
{
- arg1 = (struct svn_client_shelved_patch_info_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client_shelved_patch_info_t, svn_argnum_obj0);
+ arg1 = (svn_client__shelf_version_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client__shelf_version_t, svn_argnum_obj0);
if (PyErr_Occurred()) {
SWIG_fail;
}
}
- arg2 = (apr_time_t) PyLong_AsLongLong(obj1);
- if (arg1) (arg1)->mtime = arg2;
- resultobj = SWIG_Py_Void();
+ {
+ arg2 = (svn_boolean_t)SWIG_As_long (obj1);
+ if (SWIG_arg_fail(svn_argnum_obj1)) {
+ SWIG_fail;
+ }
+ }
+ if (obj2) {
+ /* Verify that the user supplied a valid pool */
+ if (obj2 != Py_None && obj2 != _global_py_pool) {
+ SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj2);
+ SWIG_arg_fail(svn_argnum_obj2);
+ SWIG_fail;
+ }
+ }
+ {
+ svn_swig_py_release_py_lock();
+
+ result = (svn_error_t *)svn_client__shelf_apply(arg1,arg2,arg3);
+
+ svn_swig_py_acquire_py_lock();
+
+ }
+ {
+ if (result != NULL) {
+ if (result->apr_err != SVN_ERR_SWIG_PY_EXCEPTION_SET)
+ svn_swig_py_svn_exception(result);
+ else
+ svn_error_clear(result);
+ SWIG_fail;
+ }
+ Py_INCREF(Py_None);
+ resultobj = Py_None;
+ }
+ {
+ Py_XDECREF(_global_py_pool);
+ }
return resultobj;
fail:
+ {
+ Py_XDECREF(_global_py_pool);
+ }
return NULL;
}
-SWIGINTERN PyObject *_wrap_svn_client_shelved_patch_info_t_mtime_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_svn_client__shelf_test_apply_file(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
- struct svn_client_shelved_patch_info_t *arg1 = (struct svn_client_shelved_patch_info_t *) 0 ;
+ svn_boolean_t *arg1 = (svn_boolean_t *) 0 ;
+ svn_client__shelf_version_t *arg2 = (svn_client__shelf_version_t *) 0 ;
+ char *arg3 = (char *) 0 ;
+ apr_pool_t *arg4 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool = NULL ;
+ PyObject *_global_py_pool = NULL ;
+ svn_boolean_t temp1 ;
+ int res1 = SWIG_TMPOBJ ;
PyObject * obj0 = 0 ;
- apr_time_t result;
+ PyObject * obj2 = 0 ;
+ svn_error_t *result = 0 ;
- if (!PyArg_ParseTuple(args,(char *)"O:svn_client_shelved_patch_info_t_mtime_get",&obj0)) SWIG_fail;
+ if (svn_swig_py_get_pool_arg(args, SWIGTYPE_p_apr_pool_t,
+ &_global_py_pool, &_global_pool))
+ SWIG_fail;
+ arg4 = _global_pool;
+ arg1 = &temp1;
+ if (!PyArg_ParseTuple(args,(char *)"Os|O:svn_client__shelf_test_apply_file",&obj0,&arg3,&obj2)) SWIG_fail;
{
- arg1 = (struct svn_client_shelved_patch_info_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client_shelved_patch_info_t, svn_argnum_obj0);
+ arg2 = (svn_client__shelf_version_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client__shelf_version_t, svn_argnum_obj0);
if (PyErr_Occurred()) {
SWIG_fail;
}
}
- result = ((arg1)->mtime);
- resultobj = PyLong_FromLongLong((apr_int64_t)(result));
- return resultobj;
-fail:
- return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_new_svn_client_shelved_patch_info_t(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
- PyObject *resultobj = 0;
- struct svn_client_shelved_patch_info_t *result = 0 ;
-
- if (!PyArg_ParseTuple(args,(char *)":new_svn_client_shelved_patch_info_t")) SWIG_fail;
+ if (obj2) {
+ /* Verify that the user supplied a valid pool */
+ if (obj2 != Py_None && obj2 != _global_py_pool) {
+ SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj2);
+ SWIG_arg_fail(svn_argnum_obj2);
+ SWIG_fail;
+ }
+ }
{
svn_swig_py_release_py_lock();
- result = (struct svn_client_shelved_patch_info_t *)calloc(1, sizeof(struct svn_client_shelved_patch_info_t));
+ result = (svn_error_t *)svn_client__shelf_test_apply_file(arg1,arg2,(char const *)arg3,arg4);
svn_swig_py_acquire_py_lock();
}
- resultobj = svn_swig_py_new_pointer_obj((void*)(result), SWIGTYPE_p_svn_client_shelved_patch_info_t,
- _global_py_pool, args);
+ {
+ if (result != NULL) {
+ if (result->apr_err != SVN_ERR_SWIG_PY_EXCEPTION_SET)
+ svn_swig_py_svn_exception(result);
+ else
+ svn_error_clear(result);
+ SWIG_fail;
+ }
+ Py_INCREF(Py_None);
+ resultobj = Py_None;
+ }
+ if (SWIG_IsTmpObj(res1)) {
+ resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg1)));
+ } else {
+ int new_flags = SWIG_IsNewObj(res1) ? (SWIG_POINTER_OWN | 0 ) : 0 ;
+ resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg1), SWIGTYPE_p_int, new_flags));
+ }
+ {
+ Py_XDECREF(_global_py_pool);
+ }
return resultobj;
fail:
+ {
+ Py_XDECREF(_global_py_pool);
+ }
return NULL;
}
-SWIGINTERN PyObject *_wrap_delete_svn_client_shelved_patch_info_t(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_svn_client__shelf_unapply(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
- struct svn_client_shelved_patch_info_t *arg1 = (struct svn_client_shelved_patch_info_t *) 0 ;
+ svn_client__shelf_version_t *arg1 = (svn_client__shelf_version_t *) 0 ;
+ svn_boolean_t arg2 ;
+ apr_pool_t *arg3 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool = NULL ;
+ PyObject *_global_py_pool = NULL ;
PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ svn_error_t *result = 0 ;
- if (!PyArg_ParseTuple(args,(char *)"O:delete_svn_client_shelved_patch_info_t",&obj0)) SWIG_fail;
+ if (svn_swig_py_get_pool_arg(args, SWIGTYPE_p_apr_pool_t,
+ &_global_py_pool, &_global_pool))
+ SWIG_fail;
+ arg3 = _global_pool;
+ if (!PyArg_ParseTuple(args,(char *)"OO|O:svn_client__shelf_unapply",&obj0,&obj1,&obj2)) SWIG_fail;
{
- arg1 = (struct svn_client_shelved_patch_info_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client_shelved_patch_info_t, svn_argnum_obj0);
+ arg1 = (svn_client__shelf_version_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client__shelf_version_t, svn_argnum_obj0);
if (PyErr_Occurred()) {
SWIG_fail;
}
}
{
+ arg2 = (svn_boolean_t)SWIG_As_long (obj1);
+ if (SWIG_arg_fail(svn_argnum_obj1)) {
+ SWIG_fail;
+ }
+ }
+ if (obj2) {
+ /* Verify that the user supplied a valid pool */
+ if (obj2 != Py_None && obj2 != _global_py_pool) {
+ SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj2);
+ SWIG_arg_fail(svn_argnum_obj2);
+ SWIG_fail;
+ }
+ }
+ {
svn_swig_py_release_py_lock();
- free((char *) arg1);
+ result = (svn_error_t *)svn_client__shelf_unapply(arg1,arg2,arg3);
svn_swig_py_acquire_py_lock();
}
- resultobj = SWIG_Py_Void();
+ {
+ if (result != NULL) {
+ if (result->apr_err != SVN_ERR_SWIG_PY_EXCEPTION_SET)
+ svn_swig_py_svn_exception(result);
+ else
+ svn_error_clear(result);
+ SWIG_fail;
+ }
+ Py_INCREF(Py_None);
+ resultobj = Py_None;
+ }
+ {
+ Py_XDECREF(_global_py_pool);
+ }
return resultobj;
fail:
+ {
+ Py_XDECREF(_global_py_pool);
+ }
return NULL;
}
-SWIGINTERN PyObject *svn_client_shelved_patch_info_t_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
- PyObject *obj;
- if (!PyArg_ParseTuple(args,(char *)"O:swigregister", &obj)) return NULL;
- SWIG_TypeNewClientData(SWIGTYPE_p_svn_client_shelved_patch_info_t, SWIG_NewClientData(obj));
- return SWIG_Py_Void();
-}
-
-SWIGINTERN PyObject *_wrap_svn_client_shelves_list(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_svn_client__shelf_paths_changed(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
apr_hash_t **arg1 = (apr_hash_t **) 0 ;
- char *arg2 = (char *) 0 ;
- svn_client_ctx_t *arg3 = (svn_client_ctx_t *) 0 ;
+ svn_client__shelf_version_t *arg2 = (svn_client__shelf_version_t *) 0 ;
+ apr_pool_t *arg3 = (apr_pool_t *) 0 ;
apr_pool_t *arg4 = (apr_pool_t *) 0 ;
- apr_pool_t *arg5 = (apr_pool_t *) 0 ;
apr_pool_t *_global_pool = NULL ;
PyObject *_global_py_pool = NULL ;
apr_hash_t *temp1 ;
+ PyObject * obj0 = 0 ;
PyObject * obj1 = 0 ;
PyObject * obj2 = 0 ;
- PyObject * obj3 = 0 ;
svn_error_t *result = 0 ;
if (svn_swig_py_get_pool_arg(args, SWIGTYPE_p_apr_pool_t,
&_global_py_pool, &_global_pool))
SWIG_fail;
- arg4 = _global_pool;
+ arg3 = _global_pool;
if (svn_swig_py_get_pool_arg(args, SWIGTYPE_p_apr_pool_t,
&_global_py_pool, &_global_pool))
SWIG_fail;
- arg5 = _global_pool;
+ arg4 = _global_pool;
arg1 = &temp1;
- if (!PyArg_ParseTuple(args,(char *)"sO|OO:svn_client_shelves_list",&arg2,&obj1,&obj2,&obj3)) SWIG_fail;
+ if (!PyArg_ParseTuple(args,(char *)"O|OO:svn_client__shelf_paths_changed",&obj0,&obj1,&obj2)) SWIG_fail;
{
- arg3 = (svn_client_ctx_t *)svn_swig_py_must_get_ptr(obj1, SWIGTYPE_p_svn_client_ctx_t, svn_argnum_obj1);
+ arg2 = (svn_client__shelf_version_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client__shelf_version_t, svn_argnum_obj0);
if (PyErr_Occurred()) {
SWIG_fail;
}
}
+ if (obj1) {
+ /* Verify that the user supplied a valid pool */
+ if (obj1 != Py_None && obj1 != _global_py_pool) {
+ SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj1);
+ SWIG_arg_fail(svn_argnum_obj1);
+ SWIG_fail;
+ }
+ }
if (obj2) {
/* Verify that the user supplied a valid pool */
if (obj2 != Py_None && obj2 != _global_py_pool) {
@@ -30316,6 +32413,90 @@ SWIGINTERN PyObject *_wrap_svn_client_shelves_list(PyObject *SWIGUNUSEDPARM(self
SWIG_fail;
}
}
+ {
+ svn_swig_py_release_py_lock();
+
+ result = (svn_error_t *)svn_client__shelf_paths_changed(arg1,arg2,arg3,arg4);
+
+ svn_swig_py_acquire_py_lock();
+
+ }
+ {
+ if (result != NULL) {
+ if (result->apr_err != SVN_ERR_SWIG_PY_EXCEPTION_SET)
+ svn_swig_py_svn_exception(result);
+ else
+ svn_error_clear(result);
+ SWIG_fail;
+ }
+ Py_INCREF(Py_None);
+ resultobj = Py_None;
+ }
+ {
+ /* FIXME: Missing argout typemap: svn_client__shelf_paths_changed arg 1 (apr_hash_t **) */
+
+
+
+
+ SWIG_exception(SWIG_ValueError, "svn_client__shelf_paths_changed is not implemented yet");
+
+ }
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ return resultobj;
+fail:
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_svn_client__shelf_revprop_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ svn_client__shelf_t *arg1 = (svn_client__shelf_t *) 0 ;
+ char *arg2 = (char *) 0 ;
+ svn_string_t *arg3 = (svn_string_t *) 0 ;
+ apr_pool_t *arg4 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool = NULL ;
+ PyObject *_global_py_pool = NULL ;
+ svn_string_t value3 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ svn_error_t *result = 0 ;
+
+ if (svn_swig_py_get_pool_arg(args, SWIGTYPE_p_apr_pool_t,
+ &_global_py_pool, &_global_pool))
+ SWIG_fail;
+ arg4 = _global_pool;
+ if (!PyArg_ParseTuple(args,(char *)"OsO|O:svn_client__shelf_revprop_set",&obj0,&arg2,&obj2,&obj3)) SWIG_fail;
+ {
+ arg1 = (svn_client__shelf_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client__shelf_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ {
+ if (obj2 == Py_None)
+ arg3 = NULL;
+ else {
+ if (!PyString_Check(obj2)) {
+ PyErr_SetString(PyExc_TypeError, "not a string");
+ SWIG_fail;
+ }
+ value3.data = PyString_AS_STRING(obj2);
+ value3.len = PyString_GET_SIZE(obj2);
+ arg3 = &value3;
+ }
+ }
if (obj3) {
/* Verify that the user supplied a valid pool */
if (obj3 != Py_None && obj3 != _global_py_pool) {
@@ -30327,7 +32508,7 @@ SWIGINTERN PyObject *_wrap_svn_client_shelves_list(PyObject *SWIGUNUSEDPARM(self
{
svn_swig_py_release_py_lock();
- result = (svn_error_t *)svn_client_shelves_list(arg1,(char const *)arg2,arg3,arg4,arg5);
+ result = (svn_error_t *)svn_client__shelf_revprop_set(arg1,(char const *)arg2,(struct svn_string_t const *)arg3,arg4);
svn_swig_py_acquire_py_lock();
@@ -30344,17 +32525,157 @@ SWIGINTERN PyObject *_wrap_svn_client_shelves_list(PyObject *SWIGUNUSEDPARM(self
resultobj = Py_None;
}
{
- /* FIXME: Missing argout typemap: svn_client_shelves_list arg 1 (apr_hash_t **) */
-
+ Py_XDECREF(_global_py_pool);
+ }
+ return resultobj;
+fail:
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_svn_client__shelf_revprop_set_all(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ svn_client__shelf_t *arg1 = (svn_client__shelf_t *) 0 ;
+ apr_hash_t *arg2 = (apr_hash_t *) 0 ;
+ apr_pool_t *arg3 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool = NULL ;
+ PyObject *_global_py_pool = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj2 = 0 ;
+ svn_error_t *result = 0 ;
+
+ if (svn_swig_py_get_pool_arg(args, SWIGTYPE_p_apr_pool_t,
+ &_global_py_pool, &_global_pool))
+ SWIG_fail;
+ arg3 = _global_pool;
+ if (!PyArg_ParseTuple(args,(char *)"OO|O:svn_client__shelf_revprop_set_all",&obj0,&obj1,&obj2)) SWIG_fail;
+ {
+ arg1 = (svn_client__shelf_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client__shelf_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ {
+ if (_global_pool == NULL)
+ {
+ if (svn_swig_py_get_parent_pool(args, SWIGTYPE_p_apr_pool_t,
+ &_global_py_pool, &_global_pool))
+ SWIG_fail;
+ }
+ arg2 = svn_swig_py_prophash_from_dict(obj1, _global_pool);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ if (obj2) {
+ /* Verify that the user supplied a valid pool */
+ if (obj2 != Py_None && obj2 != _global_py_pool) {
+ SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj2);
+ SWIG_arg_fail(svn_argnum_obj2);
+ SWIG_fail;
+ }
+ }
+ {
+ svn_swig_py_release_py_lock();
+ result = (svn_error_t *)svn_client__shelf_revprop_set_all(arg1,arg2,arg3);
- SWIG_exception(SWIG_ValueError, "svn_client_shelves_list is not implemented yet");
+ svn_swig_py_acquire_py_lock();
}
{
+ if (result != NULL) {
+ if (result->apr_err != SVN_ERR_SWIG_PY_EXCEPTION_SET)
+ svn_swig_py_svn_exception(result);
+ else
+ svn_error_clear(result);
+ SWIG_fail;
+ }
+ Py_INCREF(Py_None);
+ resultobj = Py_None;
+ }
+ {
Py_XDECREF(_global_py_pool);
}
+ return resultobj;
+fail:
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_svn_client__shelf_revprop_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ svn_string_t **arg1 = (svn_string_t **) 0 ;
+ svn_client__shelf_t *arg2 = (svn_client__shelf_t *) 0 ;
+ char *arg3 = (char *) 0 ;
+ apr_pool_t *arg4 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool = NULL ;
+ PyObject *_global_py_pool = NULL ;
+ svn_string_t *temp1 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj2 = 0 ;
+ svn_error_t *result = 0 ;
+
+ if (svn_swig_py_get_pool_arg(args, SWIGTYPE_p_apr_pool_t,
+ &_global_py_pool, &_global_pool))
+ SWIG_fail;
+ arg4 = _global_pool;
+ arg1 = &temp1;
+ if (!PyArg_ParseTuple(args,(char *)"Os|O:svn_client__shelf_revprop_get",&obj0,&arg3,&obj2)) SWIG_fail;
+ {
+ arg2 = (svn_client__shelf_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client__shelf_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ if (obj2) {
+ /* Verify that the user supplied a valid pool */
+ if (obj2 != Py_None && obj2 != _global_py_pool) {
+ SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj2);
+ SWIG_arg_fail(svn_argnum_obj2);
+ SWIG_fail;
+ }
+ }
+ {
+ svn_swig_py_release_py_lock();
+
+ result = (svn_error_t *)svn_client__shelf_revprop_get(arg1,arg2,(char const *)arg3,arg4);
+
+ svn_swig_py_acquire_py_lock();
+
+ }
+ {
+ if (result != NULL) {
+ if (result->apr_err != SVN_ERR_SWIG_PY_EXCEPTION_SET)
+ svn_swig_py_svn_exception(result);
+ else
+ svn_error_clear(result);
+ SWIG_fail;
+ }
+ Py_INCREF(Py_None);
+ resultobj = Py_None;
+ }
+ {
+ PyObject *s;
+ if (*arg1 == NULL) {
+ Py_INCREF(Py_None);
+ s = Py_None;
+ }
+ else {
+ s = PyString_FromStringAndSize((*arg1)->data, (*arg1)->len);
+ if (s == NULL)
+ SWIG_fail;
+ }
+ resultobj = SWIG_Python_AppendOutput(resultobj, s);
+ }
{
Py_XDECREF(_global_py_pool);
}
@@ -30363,6 +32684,69 @@ fail:
{
Py_XDECREF(_global_py_pool);
}
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_svn_client__shelf_revprop_list(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ apr_hash_t **arg1 = (apr_hash_t **) 0 ;
+ svn_client__shelf_t *arg2 = (svn_client__shelf_t *) 0 ;
+ apr_pool_t *arg3 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool = NULL ;
+ PyObject *_global_py_pool = NULL ;
+ apr_hash_t *temp1 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ svn_error_t *result = 0 ;
+
+ if (svn_swig_py_get_pool_arg(args, SWIGTYPE_p_apr_pool_t,
+ &_global_py_pool, &_global_pool))
+ SWIG_fail;
+ arg3 = _global_pool;
+ arg1 = &temp1;
+ if (!PyArg_ParseTuple(args,(char *)"O|O:svn_client__shelf_revprop_list",&obj0,&obj1)) SWIG_fail;
+ {
+ arg2 = (svn_client__shelf_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client__shelf_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ if (obj1) {
+ /* Verify that the user supplied a valid pool */
+ if (obj1 != Py_None && obj1 != _global_py_pool) {
+ SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj1);
+ SWIG_arg_fail(svn_argnum_obj1);
+ SWIG_fail;
+ }
+ }
+ {
+ svn_swig_py_release_py_lock();
+
+ result = (svn_error_t *)svn_client__shelf_revprop_list(arg1,arg2,arg3);
+
+ svn_swig_py_acquire_py_lock();
+
+ }
+ {
+ if (result != NULL) {
+ if (result->apr_err != SVN_ERR_SWIG_PY_EXCEPTION_SET)
+ svn_swig_py_svn_exception(result);
+ else
+ svn_error_clear(result);
+ SWIG_fail;
+ }
+ Py_INCREF(Py_None);
+ resultobj = Py_None;
+ }
+ {
+ resultobj = SWIG_Python_AppendOutput(resultobj, svn_swig_py_prophash_to_dict(*arg1));
+ }
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ return resultobj;
+fail:
{
Py_XDECREF(_global_py_pool);
}
@@ -30370,28 +32754,24 @@ fail:
}
-SWIGINTERN PyObject *_wrap_svn_client_shelves_any(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_svn_client__shelf_set_log_message(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
- svn_boolean_t *arg1 = (svn_boolean_t *) 0 ;
+ svn_client__shelf_t *arg1 = (svn_client__shelf_t *) 0 ;
char *arg2 = (char *) 0 ;
- svn_client_ctx_t *arg3 = (svn_client_ctx_t *) 0 ;
- apr_pool_t *arg4 = (apr_pool_t *) 0 ;
+ apr_pool_t *arg3 = (apr_pool_t *) 0 ;
apr_pool_t *_global_pool = NULL ;
PyObject *_global_py_pool = NULL ;
- svn_boolean_t temp1 ;
- int res1 = SWIG_TMPOBJ ;
- PyObject * obj1 = 0 ;
+ PyObject * obj0 = 0 ;
PyObject * obj2 = 0 ;
svn_error_t *result = 0 ;
if (svn_swig_py_get_pool_arg(args, SWIGTYPE_p_apr_pool_t,
&_global_py_pool, &_global_pool))
SWIG_fail;
- arg4 = _global_pool;
- arg1 = &temp1;
- if (!PyArg_ParseTuple(args,(char *)"sO|O:svn_client_shelves_any",&arg2,&obj1,&obj2)) SWIG_fail;
+ arg3 = _global_pool;
+ if (!PyArg_ParseTuple(args,(char *)"Os|O:svn_client__shelf_set_log_message",&obj0,&arg2,&obj2)) SWIG_fail;
{
- arg3 = (svn_client_ctx_t *)svn_swig_py_must_get_ptr(obj1, SWIGTYPE_p_svn_client_ctx_t, svn_argnum_obj1);
+ arg1 = (svn_client__shelf_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client__shelf_t, svn_argnum_obj0);
if (PyErr_Occurred()) {
SWIG_fail;
}
@@ -30407,7 +32787,7 @@ SWIGINTERN PyObject *_wrap_svn_client_shelves_any(PyObject *SWIGUNUSEDPARM(self)
{
svn_swig_py_release_py_lock();
- result = (svn_error_t *)svn_client_shelves_any(arg1,(char const *)arg2,arg3,arg4);
+ result = (svn_error_t *)svn_client__shelf_set_log_message(arg1,(char const *)arg2,arg3);
svn_swig_py_acquire_py_lock();
@@ -30423,11 +32803,77 @@ SWIGINTERN PyObject *_wrap_svn_client_shelves_any(PyObject *SWIGUNUSEDPARM(self)
Py_INCREF(Py_None);
resultobj = Py_None;
}
- if (SWIG_IsTmpObj(res1)) {
- resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg1)));
- } else {
- int new_flags = SWIG_IsNewObj(res1) ? (SWIG_POINTER_OWN | 0 ) : 0 ;
- resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg1), SWIGTYPE_p_int, new_flags));
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ return resultobj;
+fail:
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_svn_client__shelf_get_log_message(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ char **arg1 = (char **) 0 ;
+ svn_client__shelf_t *arg2 = (svn_client__shelf_t *) 0 ;
+ apr_pool_t *arg3 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool = NULL ;
+ PyObject *_global_py_pool = NULL ;
+ char *temp1 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ svn_error_t *result = 0 ;
+
+ if (svn_swig_py_get_pool_arg(args, SWIGTYPE_p_apr_pool_t,
+ &_global_py_pool, &_global_pool))
+ SWIG_fail;
+ arg3 = _global_pool;
+ arg1 = &temp1;
+ if (!PyArg_ParseTuple(args,(char *)"O|O:svn_client__shelf_get_log_message",&obj0,&obj1)) SWIG_fail;
+ {
+ arg2 = (svn_client__shelf_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client__shelf_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ if (obj1) {
+ /* Verify that the user supplied a valid pool */
+ if (obj1 != Py_None && obj1 != _global_py_pool) {
+ SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj1);
+ SWIG_arg_fail(svn_argnum_obj1);
+ SWIG_fail;
+ }
+ }
+ {
+ svn_swig_py_release_py_lock();
+
+ result = (svn_error_t *)svn_client__shelf_get_log_message(arg1,arg2,arg3);
+
+ svn_swig_py_acquire_py_lock();
+
+ }
+ {
+ if (result != NULL) {
+ if (result->apr_err != SVN_ERR_SWIG_PY_EXCEPTION_SET)
+ svn_swig_py_svn_exception(result);
+ else
+ svn_error_clear(result);
+ SWIG_fail;
+ }
+ Py_INCREF(Py_None);
+ resultobj = Py_None;
+ }
+ {
+ /* FIXME: Missing argout typemap: svn_client__shelf_get_log_message arg 1 (char **) */
+
+
+
+
+ SWIG_exception(SWIG_ValueError, "svn_client__shelf_get_log_message is not implemented yet");
+
}
{
Py_XDECREF(_global_py_pool);
@@ -30441,58 +32887,156 @@ fail:
}
-SWIGINTERN PyObject *_wrap_svn_client_shelf_get_paths(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_svn_client__shelf_info_t_mtime_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ struct svn_client__shelf_info_t *arg1 = (struct svn_client__shelf_info_t *) 0 ;
+ apr_time_t arg2 ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"OO:svn_client__shelf_info_t_mtime_set",&obj0,&obj1)) SWIG_fail;
+ {
+ arg1 = (struct svn_client__shelf_info_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client__shelf_info_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ arg2 = (apr_time_t) PyLong_AsLongLong(obj1);
+ if (arg1) (arg1)->mtime = arg2;
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_svn_client__shelf_info_t_mtime_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ struct svn_client__shelf_info_t *arg1 = (struct svn_client__shelf_info_t *) 0 ;
+ PyObject * obj0 = 0 ;
+ apr_time_t result;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:svn_client__shelf_info_t_mtime_get",&obj0)) SWIG_fail;
+ {
+ arg1 = (struct svn_client__shelf_info_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client__shelf_info_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ result = ((arg1)->mtime);
+ resultobj = PyLong_FromLongLong((apr_int64_t)(result));
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_svn_client__shelf_info_t(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ struct svn_client__shelf_info_t *result = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)":new_svn_client__shelf_info_t")) SWIG_fail;
+ {
+ svn_swig_py_release_py_lock();
+
+ result = (struct svn_client__shelf_info_t *)calloc(1, sizeof(struct svn_client__shelf_info_t));
+
+ svn_swig_py_acquire_py_lock();
+
+ }
+ resultobj = svn_swig_py_new_pointer_obj((void*)(result), SWIGTYPE_p_svn_client__shelf_info_t,
+ _global_py_pool, args);
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_svn_client__shelf_info_t(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ struct svn_client__shelf_info_t *arg1 = (struct svn_client__shelf_info_t *) 0 ;
+ PyObject * obj0 = 0 ;
+
+ if (!PyArg_ParseTuple(args,(char *)"O:delete_svn_client__shelf_info_t",&obj0)) SWIG_fail;
+ {
+ arg1 = (struct svn_client__shelf_info_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client__shelf_info_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ {
+ svn_swig_py_release_py_lock();
+
+ free((char *) arg1);
+
+ svn_swig_py_acquire_py_lock();
+
+ }
+ resultobj = SWIG_Py_Void();
+ return resultobj;
+fail:
+ return NULL;
+}
+
+
+SWIGINTERN PyObject *svn_client__shelf_info_t_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char *)"O:swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_svn_client__shelf_info_t, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_svn_client__shelf_list(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
apr_hash_t **arg1 = (apr_hash_t **) 0 ;
char *arg2 = (char *) 0 ;
- char *arg3 = (char *) 0 ;
- svn_client_ctx_t *arg4 = (svn_client_ctx_t *) 0 ;
+ svn_client_ctx_t *arg3 = (svn_client_ctx_t *) 0 ;
+ apr_pool_t *arg4 = (apr_pool_t *) 0 ;
apr_pool_t *arg5 = (apr_pool_t *) 0 ;
- apr_pool_t *arg6 = (apr_pool_t *) 0 ;
apr_pool_t *_global_pool = NULL ;
PyObject *_global_py_pool = NULL ;
apr_hash_t *temp1 ;
+ PyObject * obj1 = 0 ;
PyObject * obj2 = 0 ;
PyObject * obj3 = 0 ;
- PyObject * obj4 = 0 ;
svn_error_t *result = 0 ;
if (svn_swig_py_get_pool_arg(args, SWIGTYPE_p_apr_pool_t,
&_global_py_pool, &_global_pool))
SWIG_fail;
- arg5 = _global_pool;
+ arg4 = _global_pool;
if (svn_swig_py_get_pool_arg(args, SWIGTYPE_p_apr_pool_t,
&_global_py_pool, &_global_pool))
SWIG_fail;
- arg6 = _global_pool;
+ arg5 = _global_pool;
arg1 = &temp1;
- if (!PyArg_ParseTuple(args,(char *)"ssO|OO:svn_client_shelf_get_paths",&arg2,&arg3,&obj2,&obj3,&obj4)) SWIG_fail;
+ if (!PyArg_ParseTuple(args,(char *)"sO|OO:svn_client__shelf_list",&arg2,&obj1,&obj2,&obj3)) SWIG_fail;
{
- arg4 = (svn_client_ctx_t *)svn_swig_py_must_get_ptr(obj2, SWIGTYPE_p_svn_client_ctx_t, svn_argnum_obj2);
+ arg3 = (svn_client_ctx_t *)svn_swig_py_must_get_ptr(obj1, SWIGTYPE_p_svn_client_ctx_t, svn_argnum_obj1);
if (PyErr_Occurred()) {
SWIG_fail;
}
}
- if (obj3) {
+ if (obj2) {
/* Verify that the user supplied a valid pool */
- if (obj3 != Py_None && obj3 != _global_py_pool) {
- SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj3);
- SWIG_arg_fail(svn_argnum_obj3);
+ if (obj2 != Py_None && obj2 != _global_py_pool) {
+ SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj2);
+ SWIG_arg_fail(svn_argnum_obj2);
SWIG_fail;
}
}
- if (obj4) {
+ if (obj3) {
/* Verify that the user supplied a valid pool */
- if (obj4 != Py_None && obj4 != _global_py_pool) {
- SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj4);
- SWIG_arg_fail(svn_argnum_obj4);
+ if (obj3 != Py_None && obj3 != _global_py_pool) {
+ SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj3);
+ SWIG_arg_fail(svn_argnum_obj3);
SWIG_fail;
}
}
{
svn_swig_py_release_py_lock();
- result = (svn_error_t *)svn_client_shelf_get_paths(arg1,(char const *)arg2,(char const *)arg3,arg4,arg5,arg6);
+ result = (svn_error_t *)svn_client__shelf_list(arg1,(char const *)arg2,arg3,arg4,arg5);
svn_swig_py_acquire_py_lock();
@@ -30509,12 +33053,12 @@ SWIGINTERN PyObject *_wrap_svn_client_shelf_get_paths(PyObject *SWIGUNUSEDPARM(s
resultobj = Py_None;
}
{
- /* FIXME: Missing argout typemap: svn_client_shelf_get_paths arg 1 (apr_hash_t **) */
+ /* FIXME: Missing argout typemap: svn_client__shelf_list arg 1 (apr_hash_t **) */
- SWIG_exception(SWIG_ValueError, "svn_client_shelf_get_paths is not implemented yet");
+ SWIG_exception(SWIG_ValueError, "svn_client__shelf_list is not implemented yet");
}
{
@@ -30535,45 +33079,60 @@ fail:
}
-SWIGINTERN PyObject *_wrap_svn_client_shelf_has_changes(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_svn_client__shelf_version_status_walk(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
- svn_boolean_t *arg1 = (svn_boolean_t *) 0 ;
+ svn_client__shelf_version_t *arg1 = (svn_client__shelf_version_t *) 0 ;
char *arg2 = (char *) 0 ;
- char *arg3 = (char *) 0 ;
- svn_client_ctx_t *arg4 = (svn_client_ctx_t *) 0 ;
+ svn_wc_status_func4_t arg3 = (svn_wc_status_func4_t) 0 ;
+ void *arg4 = (void *) 0 ;
apr_pool_t *arg5 = (apr_pool_t *) 0 ;
apr_pool_t *_global_pool = NULL ;
PyObject *_global_py_pool = NULL ;
- svn_boolean_t temp1 ;
- int res1 = SWIG_TMPOBJ ;
+ PyObject * obj0 = 0 ;
PyObject * obj2 = 0 ;
PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
svn_error_t *result = 0 ;
if (svn_swig_py_get_pool_arg(args, SWIGTYPE_p_apr_pool_t,
&_global_py_pool, &_global_pool))
SWIG_fail;
arg5 = _global_pool;
- arg1 = &temp1;
- if (!PyArg_ParseTuple(args,(char *)"ssO|O:svn_client_shelf_has_changes",&arg2,&arg3,&obj2,&obj3)) SWIG_fail;
+ if (!PyArg_ParseTuple(args,(char *)"OsOO|O:svn_client__shelf_version_status_walk",&obj0,&arg2,&obj2,&obj3,&obj4)) SWIG_fail;
{
- arg4 = (svn_client_ctx_t *)svn_swig_py_must_get_ptr(obj2, SWIGTYPE_p_svn_client_ctx_t, svn_argnum_obj2);
+ arg1 = (svn_client__shelf_version_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_client__shelf_version_t, svn_argnum_obj0);
if (PyErr_Occurred()) {
SWIG_fail;
}
}
- if (obj3) {
+ {
+ svn_wc_status_func4_t * tmp =
+ svn_swig_py_must_get_ptr(obj2, SWIGTYPE_p_p_f_p_void_p_q_const__char_p_q_const__svn_wc_status3_t_p_apr_pool_t__p_svn_error_t, svn_argnum_obj2);
+ if (tmp == NULL || PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ arg3 = *tmp;
+ }
+ {
+ if (obj3 == Py_None) {
+ arg4 = NULL;
+ } else if (SWIG_ConvertPtr(obj3, (void **) &arg4, 0, 0) == -1) {
+ arg4 = (void *) obj3;
+ PyErr_Clear();
+ }
+ }
+ if (obj4) {
/* Verify that the user supplied a valid pool */
- if (obj3 != Py_None && obj3 != _global_py_pool) {
- SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj3);
- SWIG_arg_fail(svn_argnum_obj3);
+ if (obj4 != Py_None && obj4 != _global_py_pool) {
+ SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj4);
+ SWIG_arg_fail(svn_argnum_obj4);
SWIG_fail;
}
}
{
svn_swig_py_release_py_lock();
- result = (svn_error_t *)svn_client_shelf_has_changes(arg1,(char const *)arg2,(char const *)arg3,arg4,arg5);
+ result = (svn_error_t *)svn_client__shelf_version_status_walk(arg1,(char const *)arg2,arg3,arg4,arg5);
svn_swig_py_acquire_py_lock();
@@ -30589,12 +33148,6 @@ SWIGINTERN PyObject *_wrap_svn_client_shelf_has_changes(PyObject *SWIGUNUSEDPARM
Py_INCREF(Py_None);
resultobj = Py_None;
}
- if (SWIG_IsTmpObj(res1)) {
- resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_From_int((*arg1)));
- } else {
- int new_flags = SWIG_IsNewObj(res1) ? (SWIG_POINTER_OWN | 0 ) : 0 ;
- resultobj = SWIG_Python_AppendOutput(resultobj, SWIG_NewPointerObj((void*)(arg1), SWIGTYPE_p_int, new_flags));
- }
{
Py_XDECREF(_global_py_pool);
}
@@ -35584,6 +38137,129 @@ fail:
}
+SWIGINTERN PyObject *_wrap_svn_client_invoke__layout_func(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ svn_client__layout_func_t arg1 = (svn_client__layout_func_t) 0 ;
+ void *arg2 = (void *) 0 ;
+ char *arg3 = (char *) 0 ;
+ char *arg4 = (char *) 0 ;
+ svn_boolean_t arg5 ;
+ svn_boolean_t arg6 ;
+ char *arg7 = (char *) 0 ;
+ svn_boolean_t arg8 ;
+ svn_revnum_t arg9 ;
+ svn_boolean_t arg10 ;
+ svn_depth_t arg11 ;
+ apr_pool_t *arg12 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool = NULL ;
+ PyObject *_global_py_pool = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj1 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj7 = 0 ;
+ PyObject * obj8 = 0 ;
+ PyObject * obj9 = 0 ;
+ PyObject * obj10 = 0 ;
+ PyObject * obj11 = 0 ;
+ svn_error_t *result = 0 ;
+
+ if (svn_swig_py_get_pool_arg(args, SWIGTYPE_p_apr_pool_t,
+ &_global_py_pool, &_global_pool))
+ SWIG_fail;
+ arg12 = _global_pool;
+ if (!PyArg_ParseTuple(args,(char *)"OOssOOsOOOO|O:svn_client_invoke__layout_func",&obj0,&obj1,&arg3,&arg4,&obj4,&obj5,&arg7,&obj7,&obj8,&obj9,&obj10,&obj11)) SWIG_fail;
+ {
+ svn_client__layout_func_t * tmp =
+ svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_p_f_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_svn_boolean_t_p_q_const__char_svn_boolean_t_svn_revnum_t_svn_boolean_t_svn_depth_t_p_apr_pool_t__p_svn_error_t, svn_argnum_obj0);
+ if (tmp == NULL || PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ arg1 = *tmp;
+ }
+ {
+ if (obj1 == Py_None) {
+ arg2 = NULL;
+ } else if (SWIG_ConvertPtr(obj1, (void **) &arg2, 0, 0) == -1) {
+ arg2 = (void *) obj1;
+ PyErr_Clear();
+ }
+ }
+ {
+ arg5 = (svn_boolean_t)SWIG_As_long (obj4);
+ if (SWIG_arg_fail(svn_argnum_obj4)) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg6 = (svn_boolean_t)SWIG_As_long (obj5);
+ if (SWIG_arg_fail(svn_argnum_obj5)) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg8 = (svn_boolean_t)SWIG_As_long (obj7);
+ if (SWIG_arg_fail(svn_argnum_obj7)) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg9 = (svn_revnum_t)SWIG_As_long (obj8);
+ if (SWIG_arg_fail(svn_argnum_obj8)) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg10 = (svn_boolean_t)SWIG_As_long (obj9);
+ if (SWIG_arg_fail(svn_argnum_obj9)) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg11 = (svn_depth_t)SWIG_As_long (obj10);
+ if (SWIG_arg_fail(svn_argnum_obj10)) {
+ SWIG_fail;
+ }
+ }
+ if (obj11) {
+ /* Verify that the user supplied a valid pool */
+ if (obj11 != Py_None && obj11 != _global_py_pool) {
+ SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj11);
+ SWIG_arg_fail(svn_argnum_obj11);
+ SWIG_fail;
+ }
+ }
+ {
+ svn_swig_py_release_py_lock();
+
+ result = (svn_error_t *)svn_client_invoke__layout_func(arg1,arg2,(char const *)arg3,(char const *)arg4,arg5,arg6,(char const *)arg7,arg8,arg9,arg10,arg11,arg12);
+
+ svn_swig_py_acquire_py_lock();
+
+ }
+ {
+ if (result != NULL) {
+ if (result->apr_err != SVN_ERR_SWIG_PY_EXCEPTION_SET)
+ svn_swig_py_svn_exception(result);
+ else
+ svn_error_clear(result);
+ SWIG_fail;
+ }
+ Py_INCREF(Py_None);
+ resultobj = Py_None;
+ }
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ return resultobj;
+fail:
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ return NULL;
+}
+
+
SWIGINTERN PyObject *_wrap_svn_client_invoke_import_filter_func(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
svn_client_import_filter_func_t arg1 = (svn_client_import_filter_func_t) 0 ;
@@ -36328,6 +39004,13 @@ SWIGINTERN PyObject *svn_client_diff_summarize_func_t_swigregister(PyObject *SWI
return SWIG_Py_Void();
}
+SWIGINTERN PyObject *svn_client__layout_func_t_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *obj;
+ if (!PyArg_ParseTuple(args,(char *)"O:swigregister", &obj)) return NULL;
+ SWIG_TypeNewClientData(SWIGTYPE_p_p_f_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_svn_boolean_t_p_q_const__char_svn_boolean_t_svn_revnum_t_svn_boolean_t_svn_depth_t_p_apr_pool_t__p_svn_error_t, SWIG_NewClientData(obj));
+ return SWIG_Py_Void();
+}
+
SWIGINTERN PyObject *svn_client_import_filter_func_t_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *obj;
if (!PyArg_ParseTuple(args,(char *)"O:swigregister", &obj)) return NULL;
@@ -36553,6 +39236,7 @@ static PyMethodDef SwigMethods[] = {
{ (char *)"svn_client_switch3", _wrap_svn_client_switch3, METH_VARARGS, (char *)"svn_client_switch3(char const * path, char const * url, svn_opt_revision_t peg_revision, svn_opt_revision_t revision, svn_depth_t depth, svn_boolean_t depth_is_sticky, svn_boolean_t ignore_externals, svn_boolean_t allow_unver_obstructions, svn_boolean_t ignore_ancestry, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"},
{ (char *)"svn_client_switch2", _wrap_svn_client_switch2, METH_VARARGS, (char *)"svn_client_switch2(char const * path, char const * url, svn_opt_revision_t peg_revision, svn_opt_revision_t revision, svn_depth_t depth, svn_boolean_t depth_is_sticky, svn_boolean_t ignore_externals, svn_boolean_t allow_unver_obstructions, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"},
{ (char *)"svn_client_switch", _wrap_svn_client_switch, METH_VARARGS, (char *)"svn_client_switch(char const * path, char const * url, svn_opt_revision_t revision, svn_boolean_t recurse, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"},
+ { (char *)"svn_client__layout_list", _wrap_svn_client__layout_list, METH_VARARGS, (char *)"svn_client__layout_list(char const * local_abspath, svn_client__layout_func_t layout, void * layout_baton, svn_client_ctx_t ctx, apr_pool_t scratch_pool) -> svn_error_t"},
{ (char *)"svn_client_add5", _wrap_svn_client_add5, METH_VARARGS, (char *)"svn_client_add5(char const * path, svn_depth_t depth, svn_boolean_t force, svn_boolean_t no_ignore, svn_boolean_t no_autoprops, svn_boolean_t add_parents, svn_client_ctx_t ctx, apr_pool_t scratch_pool) -> svn_error_t"},
{ (char *)"svn_client_add4", _wrap_svn_client_add4, METH_VARARGS, (char *)"svn_client_add4(char const * path, svn_depth_t depth, svn_boolean_t force, svn_boolean_t no_ignore, svn_boolean_t add_parents, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"},
{ (char *)"svn_client_add3", _wrap_svn_client_add3, METH_VARARGS, (char *)"svn_client_add3(char const * path, svn_boolean_t recursive, svn_boolean_t force, svn_boolean_t no_ignore, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"},
@@ -36663,12 +39347,14 @@ static PyMethodDef SwigMethods[] = {
{ (char *)"svn_client_blame3", _wrap_svn_client_blame3, METH_VARARGS, (char *)"svn_client_blame3(char const * path_or_url, svn_opt_revision_t peg_revision, svn_opt_revision_t start, svn_opt_revision_t end, svn_diff_file_options_t const * diff_options, svn_boolean_t ignore_mime_type, svn_client_blame_receiver_t receiver, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"},
{ (char *)"svn_client_blame2", _wrap_svn_client_blame2, METH_VARARGS, (char *)"svn_client_blame2(char const * path_or_url, svn_opt_revision_t peg_revision, svn_opt_revision_t start, svn_opt_revision_t end, svn_client_blame_receiver_t receiver, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"},
{ (char *)"svn_client_blame", _wrap_svn_client_blame, METH_VARARGS, (char *)"svn_client_blame(char const * path_or_url, svn_opt_revision_t start, svn_opt_revision_t end, svn_client_blame_receiver_t receiver, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"},
+ { (char *)"svn_client_diff7", _wrap_svn_client_diff7, METH_VARARGS, (char *)"svn_client_diff7(apr_array_header_t diff_options, char const * path_or_url1, svn_opt_revision_t revision1, char const * path_or_url2, svn_opt_revision_t revision2, char const * relative_to_dir, svn_depth_t depth, svn_boolean_t ignore_ancestry, svn_boolean_t no_diff_added, svn_boolean_t no_diff_deleted, svn_boolean_t show_copies_as_adds, svn_boolean_t ignore_content_type, svn_boolean_t ignore_properties, svn_boolean_t properties_only, svn_boolean_t use_git_diff_format, svn_boolean_t pretty_print_mergeinfo, char const * header_encoding, svn_stream_t * outstream, svn_stream_t * errstream, apr_array_header_t changelists, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"},
{ (char *)"svn_client_diff6", _wrap_svn_client_diff6, METH_VARARGS, (char *)"svn_client_diff6(apr_array_header_t diff_options, char const * path_or_url1, svn_opt_revision_t revision1, char const * path_or_url2, svn_opt_revision_t revision2, char const * relative_to_dir, svn_depth_t depth, svn_boolean_t ignore_ancestry, svn_boolean_t no_diff_added, svn_boolean_t no_diff_deleted, svn_boolean_t show_copies_as_adds, svn_boolean_t ignore_content_type, svn_boolean_t ignore_properties, svn_boolean_t properties_only, svn_boolean_t use_git_diff_format, char const * header_encoding, svn_stream_t * outstream, svn_stream_t * errstream, apr_array_header_t changelists, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"},
{ (char *)"svn_client_diff5", _wrap_svn_client_diff5, METH_VARARGS, (char *)"svn_client_diff5(apr_array_header_t diff_options, char const * path1, svn_opt_revision_t revision1, char const * path2, svn_opt_revision_t revision2, char const * relative_to_dir, svn_depth_t depth, svn_boolean_t ignore_ancestry, svn_boolean_t no_diff_deleted, svn_boolean_t show_copies_as_adds, svn_boolean_t ignore_content_type, svn_boolean_t use_git_diff_format, char const * header_encoding, apr_file_t outfile, apr_file_t errfile, apr_array_header_t changelists, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"},
{ (char *)"svn_client_diff4", _wrap_svn_client_diff4, METH_VARARGS, (char *)"svn_client_diff4(apr_array_header_t diff_options, char const * path1, svn_opt_revision_t revision1, char const * path2, svn_opt_revision_t revision2, char const * relative_to_dir, svn_depth_t depth, svn_boolean_t ignore_ancestry, svn_boolean_t no_diff_deleted, svn_boolean_t ignore_content_type, char const * header_encoding, apr_file_t outfile, apr_file_t errfile, apr_array_header_t changelists, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"},
{ (char *)"svn_client_diff3", _wrap_svn_client_diff3, METH_VARARGS, (char *)"svn_client_diff3(apr_array_header_t diff_options, char const * path1, svn_opt_revision_t revision1, char const * path2, svn_opt_revision_t revision2, svn_boolean_t recurse, svn_boolean_t ignore_ancestry, svn_boolean_t no_diff_deleted, svn_boolean_t ignore_content_type, char const * header_encoding, apr_file_t outfile, apr_file_t errfile, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"},
{ (char *)"svn_client_diff2", _wrap_svn_client_diff2, METH_VARARGS, (char *)"svn_client_diff2(apr_array_header_t diff_options, char const * path1, svn_opt_revision_t revision1, char const * path2, svn_opt_revision_t revision2, svn_boolean_t recurse, svn_boolean_t ignore_ancestry, svn_boolean_t no_diff_deleted, svn_boolean_t ignore_content_type, apr_file_t outfile, apr_file_t errfile, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"},
{ (char *)"svn_client_diff", _wrap_svn_client_diff, METH_VARARGS, (char *)"svn_client_diff(apr_array_header_t diff_options, char const * path1, svn_opt_revision_t revision1, char const * path2, svn_opt_revision_t revision2, svn_boolean_t recurse, svn_boolean_t ignore_ancestry, svn_boolean_t no_diff_deleted, apr_file_t outfile, apr_file_t errfile, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"},
+ { (char *)"svn_client_diff_peg7", _wrap_svn_client_diff_peg7, METH_VARARGS, (char *)"svn_client_diff_peg7(apr_array_header_t diff_options, char const * path_or_url, svn_opt_revision_t peg_revision, svn_opt_revision_t start_revision, svn_opt_revision_t end_revision, char const * relative_to_dir, svn_depth_t depth, svn_boolean_t ignore_ancestry, svn_boolean_t no_diff_added, svn_boolean_t no_diff_deleted, svn_boolean_t show_copies_as_adds, svn_boolean_t ignore_content_type, svn_boolean_t ignore_properties, svn_boolean_t properties_only, svn_boolean_t use_git_diff_format, svn_boolean_t pretty_print_mergeinfo, char const * header_encoding, svn_stream_t * outstream, svn_stream_t * errstream, apr_array_header_t changelists, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"},
{ (char *)"svn_client_diff_peg6", _wrap_svn_client_diff_peg6, METH_VARARGS, (char *)"svn_client_diff_peg6(apr_array_header_t diff_options, char const * path_or_url, svn_opt_revision_t peg_revision, svn_opt_revision_t start_revision, svn_opt_revision_t end_revision, char const * relative_to_dir, svn_depth_t depth, svn_boolean_t ignore_ancestry, svn_boolean_t no_diff_added, svn_boolean_t no_diff_deleted, svn_boolean_t show_copies_as_adds, svn_boolean_t ignore_content_type, svn_boolean_t ignore_properties, svn_boolean_t properties_only, svn_boolean_t use_git_diff_format, char const * header_encoding, svn_stream_t * outstream, svn_stream_t * errstream, apr_array_header_t changelists, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"},
{ (char *)"svn_client_diff_peg5", _wrap_svn_client_diff_peg5, METH_VARARGS, (char *)"svn_client_diff_peg5(apr_array_header_t diff_options, char const * path, svn_opt_revision_t peg_revision, svn_opt_revision_t start_revision, svn_opt_revision_t end_revision, char const * relative_to_dir, svn_depth_t depth, svn_boolean_t ignore_ancestry, svn_boolean_t no_diff_deleted, svn_boolean_t show_copies_as_adds, svn_boolean_t ignore_content_type, svn_boolean_t use_git_diff_format, char const * header_encoding, apr_file_t outfile, apr_file_t errfile, apr_array_header_t changelists, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"},
{ (char *)"svn_client_diff_peg4", _wrap_svn_client_diff_peg4, METH_VARARGS, (char *)"svn_client_diff_peg4(apr_array_header_t diff_options, char const * path, svn_opt_revision_t peg_revision, svn_opt_revision_t start_revision, svn_opt_revision_t end_revision, char const * relative_to_dir, svn_depth_t depth, svn_boolean_t ignore_ancestry, svn_boolean_t no_diff_deleted, svn_boolean_t ignore_content_type, char const * header_encoding, apr_file_t outfile, apr_file_t errfile, apr_array_header_t changelists, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"},
@@ -36703,13 +39389,18 @@ static PyMethodDef SwigMethods[] = {
{ (char *)"svn_client_upgrade", _wrap_svn_client_upgrade, METH_VARARGS, (char *)"svn_client_upgrade(char const * wcroot_dir, svn_client_ctx_t ctx, apr_pool_t scratch_pool) -> svn_error_t"},
{ (char *)"svn_client_relocate2", _wrap_svn_client_relocate2, METH_VARARGS, (char *)"svn_client_relocate2(char const * wcroot_dir, char const * from_prefix, char const * to_prefix, svn_boolean_t ignore_externals, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"},
{ (char *)"svn_client_relocate", _wrap_svn_client_relocate, METH_VARARGS, (char *)"svn_client_relocate(char const * dir, char const * from_prefix, char const * to_prefix, svn_boolean_t recurse, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"},
+ { (char *)"svn_client_revert4", _wrap_svn_client_revert4, METH_VARARGS, (char *)"svn_client_revert4(apr_array_header_t paths, svn_depth_t depth, apr_array_header_t changelists, svn_boolean_t clear_changelists, svn_boolean_t metadata_only, svn_boolean_t added_keep_local, svn_client_ctx_t ctx, apr_pool_t scratch_pool) -> svn_error_t"},
{ (char *)"svn_client_revert3", _wrap_svn_client_revert3, METH_VARARGS, (char *)"svn_client_revert3(apr_array_header_t paths, svn_depth_t depth, apr_array_header_t changelists, svn_boolean_t clear_changelists, svn_boolean_t metadata_only, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"},
{ (char *)"svn_client_revert2", _wrap_svn_client_revert2, METH_VARARGS, (char *)"svn_client_revert2(apr_array_header_t paths, svn_depth_t depth, apr_array_header_t changelists, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"},
{ (char *)"svn_client_revert", _wrap_svn_client_revert, METH_VARARGS, (char *)"svn_client_revert(apr_array_header_t paths, svn_boolean_t recursive, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"},
{ (char *)"svn_client_conflict_option_set_merged_propval", _wrap_svn_client_conflict_option_set_merged_propval, METH_VARARGS, (char *)"svn_client_conflict_option_set_merged_propval(svn_client_conflict_option_t * option, svn_string_t const * merged_propval)"},
+ { (char *)"svn_client_conflict_option_get_moved_to_repos_relpath_candidates2", _wrap_svn_client_conflict_option_get_moved_to_repos_relpath_candidates2, METH_VARARGS, (char *)"svn_client_conflict_option_get_moved_to_repos_relpath_candidates2(svn_client_conflict_option_t * option, apr_pool_t result_pool, apr_pool_t scratch_pool) -> svn_error_t"},
{ (char *)"svn_client_conflict_option_get_moved_to_repos_relpath_candidates", _wrap_svn_client_conflict_option_get_moved_to_repos_relpath_candidates, METH_VARARGS, (char *)"svn_client_conflict_option_get_moved_to_repos_relpath_candidates(svn_client_conflict_option_t * option, apr_pool_t result_pool, apr_pool_t scratch_pool) -> svn_error_t"},
+ { (char *)"svn_client_conflict_option_set_moved_to_repos_relpath2", _wrap_svn_client_conflict_option_set_moved_to_repos_relpath2, METH_VARARGS, (char *)"svn_client_conflict_option_set_moved_to_repos_relpath2(svn_client_conflict_option_t * option, int preferred_move_target_idx, svn_client_ctx_t ctx, apr_pool_t scratch_pool) -> svn_error_t"},
{ (char *)"svn_client_conflict_option_set_moved_to_repos_relpath", _wrap_svn_client_conflict_option_set_moved_to_repos_relpath, METH_VARARGS, (char *)"svn_client_conflict_option_set_moved_to_repos_relpath(svn_client_conflict_option_t * option, int preferred_move_target_idx, svn_client_ctx_t ctx, apr_pool_t scratch_pool) -> svn_error_t"},
+ { (char *)"svn_client_conflict_option_get_moved_to_abspath_candidates2", _wrap_svn_client_conflict_option_get_moved_to_abspath_candidates2, METH_VARARGS, (char *)"svn_client_conflict_option_get_moved_to_abspath_candidates2(svn_client_conflict_option_t * option, apr_pool_t result_pool, apr_pool_t scratch_pool) -> svn_error_t"},
{ (char *)"svn_client_conflict_option_get_moved_to_abspath_candidates", _wrap_svn_client_conflict_option_get_moved_to_abspath_candidates, METH_VARARGS, (char *)"svn_client_conflict_option_get_moved_to_abspath_candidates(svn_client_conflict_option_t * option, apr_pool_t result_pool, apr_pool_t scratch_pool) -> svn_error_t"},
+ { (char *)"svn_client_conflict_option_set_moved_to_abspath2", _wrap_svn_client_conflict_option_set_moved_to_abspath2, METH_VARARGS, (char *)"svn_client_conflict_option_set_moved_to_abspath2(svn_client_conflict_option_t * option, int preferred_move_target_idx, svn_client_ctx_t ctx, apr_pool_t scratch_pool) -> svn_error_t"},
{ (char *)"svn_client_conflict_option_set_moved_to_abspath", _wrap_svn_client_conflict_option_set_moved_to_abspath, METH_VARARGS, (char *)"svn_client_conflict_option_set_moved_to_abspath(svn_client_conflict_option_t * option, int preferred_move_target_idx, svn_client_ctx_t ctx, apr_pool_t scratch_pool) -> svn_error_t"},
{ (char *)"svn_client_conflict_option_find_by_id", _wrap_svn_client_conflict_option_find_by_id, METH_VARARGS, (char *)"svn_client_conflict_option_find_by_id(apr_array_header_t options, svn_client_conflict_option_id_t option_id) -> svn_client_conflict_option_t *"},
{ (char *)"svn_client_conflict_get", _wrap_svn_client_conflict_get, METH_VARARGS, (char *)"svn_client_conflict_get(char const * local_abspath, svn_client_ctx_t ctx, apr_pool_t result_pool, apr_pool_t scratch_pool) -> svn_error_t"},
@@ -36804,24 +39495,60 @@ static PyMethodDef SwigMethods[] = {
{ (char *)"svn_client_cat3", _wrap_svn_client_cat3, METH_VARARGS, (char *)"svn_client_cat3(svn_stream_t * out, char const * path_or_url, svn_opt_revision_t peg_revision, svn_opt_revision_t revision, svn_boolean_t expand_keywords, svn_client_ctx_t ctx, apr_pool_t result_pool, apr_pool_t scratch_pool) -> svn_error_t"},
{ (char *)"svn_client_cat2", _wrap_svn_client_cat2, METH_VARARGS, (char *)"svn_client_cat2(svn_stream_t * out, char const * path_or_url, svn_opt_revision_t peg_revision, svn_opt_revision_t revision, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"},
{ (char *)"svn_client_cat", _wrap_svn_client_cat, METH_VARARGS, (char *)"svn_client_cat(svn_stream_t * out, char const * path_or_url, svn_opt_revision_t revision, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"},
- { (char *)"svn_client_shelve", _wrap_svn_client_shelve, METH_VARARGS, (char *)"svn_client_shelve(char const * name, apr_array_header_t paths, svn_depth_t depth, apr_array_header_t changelists, svn_boolean_t keep_local, svn_boolean_t dry_run, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"},
- { (char *)"svn_client_unshelve", _wrap_svn_client_unshelve, METH_VARARGS, (char *)"svn_client_unshelve(char const * name, char const * local_abspath, svn_boolean_t keep, svn_boolean_t dry_run, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"},
- { (char *)"svn_client_shelves_delete", _wrap_svn_client_shelves_delete, METH_VARARGS, (char *)"svn_client_shelves_delete(char const * name, char const * local_abspath, svn_boolean_t dry_run, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"},
- { (char *)"svn_client_shelved_patch_info_t_message_set", _wrap_svn_client_shelved_patch_info_t_message_set, METH_VARARGS, (char *)"svn_client_shelved_patch_info_t_message_set(svn_client_shelved_patch_info_t self, char const * message)"},
- { (char *)"svn_client_shelved_patch_info_t_message_get", _wrap_svn_client_shelved_patch_info_t_message_get, METH_VARARGS, (char *)"svn_client_shelved_patch_info_t_message_get(svn_client_shelved_patch_info_t self) -> char const *"},
- { (char *)"svn_client_shelved_patch_info_t_patch_path_set", _wrap_svn_client_shelved_patch_info_t_patch_path_set, METH_VARARGS, (char *)"svn_client_shelved_patch_info_t_patch_path_set(svn_client_shelved_patch_info_t self, char const * patch_path)"},
- { (char *)"svn_client_shelved_patch_info_t_patch_path_get", _wrap_svn_client_shelved_patch_info_t_patch_path_get, METH_VARARGS, (char *)"svn_client_shelved_patch_info_t_patch_path_get(svn_client_shelved_patch_info_t self) -> char const *"},
- { (char *)"svn_client_shelved_patch_info_t_dirent_set", _wrap_svn_client_shelved_patch_info_t_dirent_set, METH_VARARGS, (char *)"svn_client_shelved_patch_info_t_dirent_set(svn_client_shelved_patch_info_t self, svn_io_dirent2_t dirent)"},
- { (char *)"svn_client_shelved_patch_info_t_dirent_get", _wrap_svn_client_shelved_patch_info_t_dirent_get, METH_VARARGS, (char *)"svn_client_shelved_patch_info_t_dirent_get(svn_client_shelved_patch_info_t self) -> svn_io_dirent2_t"},
- { (char *)"svn_client_shelved_patch_info_t_mtime_set", _wrap_svn_client_shelved_patch_info_t_mtime_set, METH_VARARGS, (char *)"svn_client_shelved_patch_info_t_mtime_set(svn_client_shelved_patch_info_t self, apr_time_t mtime)"},
- { (char *)"svn_client_shelved_patch_info_t_mtime_get", _wrap_svn_client_shelved_patch_info_t_mtime_get, METH_VARARGS, (char *)"svn_client_shelved_patch_info_t_mtime_get(svn_client_shelved_patch_info_t self) -> apr_time_t"},
- { (char *)"new_svn_client_shelved_patch_info_t", _wrap_new_svn_client_shelved_patch_info_t, METH_VARARGS, (char *)"new_svn_client_shelved_patch_info_t() -> svn_client_shelved_patch_info_t"},
- { (char *)"delete_svn_client_shelved_patch_info_t", _wrap_delete_svn_client_shelved_patch_info_t, METH_VARARGS, (char *)"delete_svn_client_shelved_patch_info_t(svn_client_shelved_patch_info_t self)"},
- { (char *)"svn_client_shelved_patch_info_t_swigregister", svn_client_shelved_patch_info_t_swigregister, METH_VARARGS, NULL},
- { (char *)"svn_client_shelves_list", _wrap_svn_client_shelves_list, METH_VARARGS, (char *)"svn_client_shelves_list(char const * local_abspath, svn_client_ctx_t ctx, apr_pool_t result_pool, apr_pool_t scratch_pool) -> svn_error_t"},
- { (char *)"svn_client_shelves_any", _wrap_svn_client_shelves_any, METH_VARARGS, (char *)"svn_client_shelves_any(char const * local_abspath, svn_client_ctx_t ctx, apr_pool_t scratch_pool) -> svn_error_t"},
- { (char *)"svn_client_shelf_get_paths", _wrap_svn_client_shelf_get_paths, METH_VARARGS, (char *)"svn_client_shelf_get_paths(char const * name, char const * local_abspath, svn_client_ctx_t ctx, apr_pool_t result_pool, apr_pool_t scratch_pool) -> svn_error_t"},
- { (char *)"svn_client_shelf_has_changes", _wrap_svn_client_shelf_has_changes, METH_VARARGS, (char *)"svn_client_shelf_has_changes(char const * name, char const * local_abspath, svn_client_ctx_t ctx, apr_pool_t scratch_pool) -> svn_error_t"},
+ { (char *)"svn_client__shelf_t_name_set", _wrap_svn_client__shelf_t_name_set, METH_VARARGS, (char *)"svn_client__shelf_t_name_set(svn_client__shelf_t self, char const * name)"},
+ { (char *)"svn_client__shelf_t_name_get", _wrap_svn_client__shelf_t_name_get, METH_VARARGS, (char *)"svn_client__shelf_t_name_get(svn_client__shelf_t self) -> char const *"},
+ { (char *)"svn_client__shelf_t_max_version_set", _wrap_svn_client__shelf_t_max_version_set, METH_VARARGS, (char *)"svn_client__shelf_t_max_version_set(svn_client__shelf_t self, int max_version)"},
+ { (char *)"svn_client__shelf_t_max_version_get", _wrap_svn_client__shelf_t_max_version_get, METH_VARARGS, (char *)"svn_client__shelf_t_max_version_get(svn_client__shelf_t self) -> int"},
+ { (char *)"svn_client__shelf_t_wc_root_abspath_set", _wrap_svn_client__shelf_t_wc_root_abspath_set, METH_VARARGS, (char *)"svn_client__shelf_t_wc_root_abspath_set(svn_client__shelf_t self, char const * wc_root_abspath)"},
+ { (char *)"svn_client__shelf_t_wc_root_abspath_get", _wrap_svn_client__shelf_t_wc_root_abspath_get, METH_VARARGS, (char *)"svn_client__shelf_t_wc_root_abspath_get(svn_client__shelf_t self) -> char const *"},
+ { (char *)"svn_client__shelf_t_shelves_dir_set", _wrap_svn_client__shelf_t_shelves_dir_set, METH_VARARGS, (char *)"svn_client__shelf_t_shelves_dir_set(svn_client__shelf_t self, char const * shelves_dir)"},
+ { (char *)"svn_client__shelf_t_shelves_dir_get", _wrap_svn_client__shelf_t_shelves_dir_get, METH_VARARGS, (char *)"svn_client__shelf_t_shelves_dir_get(svn_client__shelf_t self) -> char const *"},
+ { (char *)"svn_client__shelf_t_revprops_set", _wrap_svn_client__shelf_t_revprops_set, METH_VARARGS, (char *)"svn_client__shelf_t_revprops_set(svn_client__shelf_t self, apr_hash_t revprops)"},
+ { (char *)"svn_client__shelf_t_revprops_get", _wrap_svn_client__shelf_t_revprops_get, METH_VARARGS, (char *)"svn_client__shelf_t_revprops_get(svn_client__shelf_t self) -> apr_hash_t"},
+ { (char *)"svn_client__shelf_t_ctx_set", _wrap_svn_client__shelf_t_ctx_set, METH_VARARGS, (char *)"svn_client__shelf_t_ctx_set(svn_client__shelf_t self, svn_client_ctx_t ctx)"},
+ { (char *)"svn_client__shelf_t_ctx_get", _wrap_svn_client__shelf_t_ctx_get, METH_VARARGS, (char *)"svn_client__shelf_t_ctx_get(svn_client__shelf_t self) -> svn_client_ctx_t"},
+ { (char *)"svn_client__shelf_t_pool_set", _wrap_svn_client__shelf_t_pool_set, METH_VARARGS, (char *)"svn_client__shelf_t_pool_set(svn_client__shelf_t self, apr_pool_t pool)"},
+ { (char *)"svn_client__shelf_t_pool_get", _wrap_svn_client__shelf_t_pool_get, METH_VARARGS, (char *)"svn_client__shelf_t_pool_get(svn_client__shelf_t self) -> apr_pool_t"},
+ { (char *)"new_svn_client__shelf_t", _wrap_new_svn_client__shelf_t, METH_VARARGS, (char *)"new_svn_client__shelf_t() -> svn_client__shelf_t"},
+ { (char *)"delete_svn_client__shelf_t", _wrap_delete_svn_client__shelf_t, METH_VARARGS, (char *)"delete_svn_client__shelf_t(svn_client__shelf_t self)"},
+ { (char *)"svn_client__shelf_t_swigregister", svn_client__shelf_t_swigregister, METH_VARARGS, NULL},
+ { (char *)"svn_client__shelf_version_t_shelf_set", _wrap_svn_client__shelf_version_t_shelf_set, METH_VARARGS, (char *)"svn_client__shelf_version_t_shelf_set(svn_client__shelf_version_t self, svn_client__shelf_t shelf)"},
+ { (char *)"svn_client__shelf_version_t_shelf_get", _wrap_svn_client__shelf_version_t_shelf_get, METH_VARARGS, (char *)"svn_client__shelf_version_t_shelf_get(svn_client__shelf_version_t self) -> svn_client__shelf_t"},
+ { (char *)"svn_client__shelf_version_t_mtime_set", _wrap_svn_client__shelf_version_t_mtime_set, METH_VARARGS, (char *)"svn_client__shelf_version_t_mtime_set(svn_client__shelf_version_t self, apr_time_t mtime)"},
+ { (char *)"svn_client__shelf_version_t_mtime_get", _wrap_svn_client__shelf_version_t_mtime_get, METH_VARARGS, (char *)"svn_client__shelf_version_t_mtime_get(svn_client__shelf_version_t self) -> apr_time_t"},
+ { (char *)"svn_client__shelf_version_t_files_dir_abspath_set", _wrap_svn_client__shelf_version_t_files_dir_abspath_set, METH_VARARGS, (char *)"svn_client__shelf_version_t_files_dir_abspath_set(svn_client__shelf_version_t self, char const * files_dir_abspath)"},
+ { (char *)"svn_client__shelf_version_t_files_dir_abspath_get", _wrap_svn_client__shelf_version_t_files_dir_abspath_get, METH_VARARGS, (char *)"svn_client__shelf_version_t_files_dir_abspath_get(svn_client__shelf_version_t self) -> char const *"},
+ { (char *)"svn_client__shelf_version_t_version_number_set", _wrap_svn_client__shelf_version_t_version_number_set, METH_VARARGS, (char *)"svn_client__shelf_version_t_version_number_set(svn_client__shelf_version_t self, int version_number)"},
+ { (char *)"svn_client__shelf_version_t_version_number_get", _wrap_svn_client__shelf_version_t_version_number_get, METH_VARARGS, (char *)"svn_client__shelf_version_t_version_number_get(svn_client__shelf_version_t self) -> int"},
+ { (char *)"new_svn_client__shelf_version_t", _wrap_new_svn_client__shelf_version_t, METH_VARARGS, (char *)"new_svn_client__shelf_version_t() -> svn_client__shelf_version_t"},
+ { (char *)"delete_svn_client__shelf_version_t", _wrap_delete_svn_client__shelf_version_t, METH_VARARGS, (char *)"delete_svn_client__shelf_version_t(svn_client__shelf_version_t self)"},
+ { (char *)"svn_client__shelf_version_t_swigregister", svn_client__shelf_version_t_swigregister, METH_VARARGS, NULL},
+ { (char *)"svn_client__shelf_open_or_create", _wrap_svn_client__shelf_open_or_create, METH_VARARGS, (char *)"svn_client__shelf_open_or_create(char const * name, char const * local_abspath, svn_client_ctx_t ctx, apr_pool_t result_pool) -> svn_error_t"},
+ { (char *)"svn_client__shelf_open_existing", _wrap_svn_client__shelf_open_existing, METH_VARARGS, (char *)"svn_client__shelf_open_existing(char const * name, char const * local_abspath, svn_client_ctx_t ctx, apr_pool_t result_pool) -> svn_error_t"},
+ { (char *)"svn_client__shelf_close", _wrap_svn_client__shelf_close, METH_VARARGS, (char *)"svn_client__shelf_close(svn_client__shelf_t shelf, apr_pool_t scratch_pool) -> svn_error_t"},
+ { (char *)"svn_client__shelf_delete", _wrap_svn_client__shelf_delete, METH_VARARGS, (char *)"svn_client__shelf_delete(char const * name, char const * local_abspath, svn_boolean_t dry_run, svn_client_ctx_t ctx, apr_pool_t scratch_pool) -> svn_error_t"},
+ { (char *)"svn_client__shelf_save_new_version3", _wrap_svn_client__shelf_save_new_version3, METH_VARARGS, (char *)"svn_client__shelf_save_new_version3(svn_client__shelf_t shelf, apr_array_header_t paths, svn_depth_t depth, apr_array_header_t changelists, svn_client_status_func_t shelved_func, void * shelved_baton, svn_client_status_func_t not_shelved_func, void * not_shelved_baton, apr_pool_t scratch_pool) -> svn_error_t"},
+ { (char *)"svn_client__shelf_delete_newer_versions", _wrap_svn_client__shelf_delete_newer_versions, METH_VARARGS, (char *)"svn_client__shelf_delete_newer_versions(svn_client__shelf_t shelf, svn_client__shelf_version_t shelf_version, apr_pool_t scratch_pool) -> svn_error_t"},
+ { (char *)"svn_client__shelf_version_open", _wrap_svn_client__shelf_version_open, METH_VARARGS, (char *)"svn_client__shelf_version_open(svn_client__shelf_t shelf, int version_number, apr_pool_t result_pool, apr_pool_t scratch_pool) -> svn_error_t"},
+ { (char *)"svn_client__shelf_get_newest_version", _wrap_svn_client__shelf_get_newest_version, METH_VARARGS, (char *)"svn_client__shelf_get_newest_version(svn_client__shelf_t shelf, apr_pool_t result_pool, apr_pool_t scratch_pool) -> svn_error_t"},
+ { (char *)"svn_client__shelf_get_all_versions", _wrap_svn_client__shelf_get_all_versions, METH_VARARGS, (char *)"svn_client__shelf_get_all_versions(svn_client__shelf_t shelf, apr_pool_t result_pool, apr_pool_t scratch_pool) -> svn_error_t"},
+ { (char *)"svn_client__shelf_apply", _wrap_svn_client__shelf_apply, METH_VARARGS, (char *)"svn_client__shelf_apply(svn_client__shelf_version_t shelf_version, svn_boolean_t dry_run, apr_pool_t scratch_pool) -> svn_error_t"},
+ { (char *)"svn_client__shelf_test_apply_file", _wrap_svn_client__shelf_test_apply_file, METH_VARARGS, (char *)"svn_client__shelf_test_apply_file(svn_client__shelf_version_t shelf_version, char const * file_relpath, apr_pool_t scratch_pool) -> svn_error_t"},
+ { (char *)"svn_client__shelf_unapply", _wrap_svn_client__shelf_unapply, METH_VARARGS, (char *)"svn_client__shelf_unapply(svn_client__shelf_version_t shelf_version, svn_boolean_t dry_run, apr_pool_t scratch_pool) -> svn_error_t"},
+ { (char *)"svn_client__shelf_paths_changed", _wrap_svn_client__shelf_paths_changed, METH_VARARGS, (char *)"svn_client__shelf_paths_changed(svn_client__shelf_version_t shelf_version, apr_pool_t result_pool, apr_pool_t scratch_pool) -> svn_error_t"},
+ { (char *)"svn_client__shelf_revprop_set", _wrap_svn_client__shelf_revprop_set, METH_VARARGS, (char *)"svn_client__shelf_revprop_set(svn_client__shelf_t shelf, char const * prop_name, svn_string_t const * prop_val, apr_pool_t scratch_pool) -> svn_error_t"},
+ { (char *)"svn_client__shelf_revprop_set_all", _wrap_svn_client__shelf_revprop_set_all, METH_VARARGS, (char *)"svn_client__shelf_revprop_set_all(svn_client__shelf_t shelf, apr_hash_t revprop_table, apr_pool_t scratch_pool) -> svn_error_t"},
+ { (char *)"svn_client__shelf_revprop_get", _wrap_svn_client__shelf_revprop_get, METH_VARARGS, (char *)"svn_client__shelf_revprop_get(svn_client__shelf_t shelf, char const * prop_name, apr_pool_t result_pool) -> svn_error_t"},
+ { (char *)"svn_client__shelf_revprop_list", _wrap_svn_client__shelf_revprop_list, METH_VARARGS, (char *)"svn_client__shelf_revprop_list(svn_client__shelf_t shelf, apr_pool_t result_pool) -> svn_error_t"},
+ { (char *)"svn_client__shelf_set_log_message", _wrap_svn_client__shelf_set_log_message, METH_VARARGS, (char *)"svn_client__shelf_set_log_message(svn_client__shelf_t shelf, char const * log_message, apr_pool_t scratch_pool) -> svn_error_t"},
+ { (char *)"svn_client__shelf_get_log_message", _wrap_svn_client__shelf_get_log_message, METH_VARARGS, (char *)"svn_client__shelf_get_log_message(svn_client__shelf_t shelf, apr_pool_t result_pool) -> svn_error_t"},
+ { (char *)"svn_client__shelf_info_t_mtime_set", _wrap_svn_client__shelf_info_t_mtime_set, METH_VARARGS, (char *)"svn_client__shelf_info_t_mtime_set(svn_client__shelf_info_t self, apr_time_t mtime)"},
+ { (char *)"svn_client__shelf_info_t_mtime_get", _wrap_svn_client__shelf_info_t_mtime_get, METH_VARARGS, (char *)"svn_client__shelf_info_t_mtime_get(svn_client__shelf_info_t self) -> apr_time_t"},
+ { (char *)"new_svn_client__shelf_info_t", _wrap_new_svn_client__shelf_info_t, METH_VARARGS, (char *)"new_svn_client__shelf_info_t() -> svn_client__shelf_info_t"},
+ { (char *)"delete_svn_client__shelf_info_t", _wrap_delete_svn_client__shelf_info_t, METH_VARARGS, (char *)"delete_svn_client__shelf_info_t(svn_client__shelf_info_t self)"},
+ { (char *)"svn_client__shelf_info_t_swigregister", svn_client__shelf_info_t_swigregister, METH_VARARGS, NULL},
+ { (char *)"svn_client__shelf_list", _wrap_svn_client__shelf_list, METH_VARARGS, (char *)"svn_client__shelf_list(char const * local_abspath, svn_client_ctx_t ctx, apr_pool_t result_pool, apr_pool_t scratch_pool) -> svn_error_t"},
+ { (char *)"svn_client__shelf_version_status_walk", _wrap_svn_client__shelf_version_status_walk, METH_VARARGS, (char *)"svn_client__shelf_version_status_walk(svn_client__shelf_version_t shelf_version, char const * wc_relpath, svn_wc_status_func4_t walk_func, void * walk_baton, apr_pool_t scratch_pool) -> svn_error_t"},
{ (char *)"svn_client_add_to_changelist", _wrap_svn_client_add_to_changelist, METH_VARARGS, (char *)"svn_client_add_to_changelist(apr_array_header_t paths, char const * changelist, svn_depth_t depth, apr_array_header_t changelists, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"},
{ (char *)"svn_client_remove_from_changelists", _wrap_svn_client_remove_from_changelists, METH_VARARGS, (char *)"svn_client_remove_from_changelists(apr_array_header_t paths, svn_depth_t depth, apr_array_header_t changelists, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"},
{ (char *)"svn_client_get_changelists", _wrap_svn_client_get_changelists, METH_VARARGS, (char *)"svn_client_get_changelists(char const * path, apr_array_header_t changelists, svn_depth_t depth, svn_changelist_receiver_t callback_func, svn_client_ctx_t ctx, apr_pool_t pool) -> svn_error_t"},
@@ -36938,6 +39665,7 @@ static PyMethodDef SwigMethods[] = {
{ (char *)"svn_client_invoke_blame_receiver2", _wrap_svn_client_invoke_blame_receiver2, METH_VARARGS, (char *)"svn_client_invoke_blame_receiver2(svn_client_blame_receiver2_t _obj, void * baton, apr_int64_t line_no, svn_revnum_t revision, char const * author, char const * date, svn_revnum_t merged_revision, char const * merged_author, char const * merged_date, char const * merged_path, char const * line, apr_pool_t pool) -> svn_error_t"},
{ (char *)"svn_client_invoke_blame_receiver", _wrap_svn_client_invoke_blame_receiver, METH_VARARGS, (char *)"svn_client_invoke_blame_receiver(svn_client_blame_receiver_t _obj, void * baton, apr_int64_t line_no, svn_revnum_t revision, char const * author, char const * date, char const * line, apr_pool_t pool) -> svn_error_t"},
{ (char *)"svn_client_invoke_diff_summarize_func", _wrap_svn_client_invoke_diff_summarize_func, METH_VARARGS, (char *)"svn_client_invoke_diff_summarize_func(svn_client_diff_summarize_func_t _obj, svn_client_diff_summarize_t diff, void * baton, apr_pool_t pool) -> svn_error_t"},
+ { (char *)"svn_client_invoke__layout_func", _wrap_svn_client_invoke__layout_func, METH_VARARGS, (char *)"svn_client_invoke__layout_func(svn_client__layout_func_t _obj, void * layout_baton, char const * local_abspath, char const * repos_root_url, svn_boolean_t not_present, svn_boolean_t url_changed, char const * url, svn_boolean_t revision_changed, svn_revnum_t revision, svn_boolean_t depth_changed, svn_depth_t depth, apr_pool_t scratch_pool) -> svn_error_t"},
{ (char *)"svn_client_invoke_import_filter_func", _wrap_svn_client_invoke_import_filter_func, METH_VARARGS, (char *)"svn_client_invoke_import_filter_func(svn_client_import_filter_func_t _obj, void * baton, char const * local_abspath, svn_io_dirent2_t dirent, apr_pool_t scratch_pool) -> svn_error_t"},
{ (char *)"svn_client_invoke_status_func", _wrap_svn_client_invoke_status_func, METH_VARARGS, (char *)"svn_client_invoke_status_func(svn_client_status_func_t _obj, void * baton, char const * path, svn_client_status_t status, apr_pool_t scratch_pool) -> svn_error_t"},
{ (char *)"svn_client_invoke_conflict_walk_func", _wrap_svn_client_invoke_conflict_walk_func, METH_VARARGS, (char *)"svn_client_invoke_conflict_walk_func(svn_client_conflict_walk_func_t _obj, void * baton, svn_client_conflict_t * conflict, apr_pool_t scratch_pool) -> svn_error_t"},
@@ -36955,6 +39683,7 @@ static PyMethodDef SwigMethods[] = {
{ (char *)"svn_client_blame_receiver2_t_swigregister", svn_client_blame_receiver2_t_swigregister, METH_VARARGS, NULL},
{ (char *)"svn_client_blame_receiver_t_swigregister", svn_client_blame_receiver_t_swigregister, METH_VARARGS, NULL},
{ (char *)"svn_client_diff_summarize_func_t_swigregister", svn_client_diff_summarize_func_t_swigregister, METH_VARARGS, NULL},
+ { (char *)"svn_client__layout_func_t_swigregister", svn_client__layout_func_t_swigregister, METH_VARARGS, NULL},
{ (char *)"svn_client_import_filter_func_t_swigregister", svn_client_import_filter_func_t_swigregister, METH_VARARGS, NULL},
{ (char *)"svn_client_status_func_t_swigregister", svn_client_status_func_t_swigregister, METH_VARARGS, NULL},
{ (char *)"svn_client_conflict_walk_func_t_swigregister", svn_client_conflict_walk_func_t_swigregister, METH_VARARGS, NULL},
@@ -37000,11 +39729,13 @@ static swig_type_info _swigt__p_f_p_void_p_q_const__char_enum_svn_wc_notify_acti
static swig_type_info _swigt__p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_array_header_t_p_apr_pool_t__p_svn_error_t = {"_p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_array_header_t_p_apr_pool_t__p_svn_error_t", "struct svn_error_t *(*)(void *,char const *,apr_hash_t *,apr_array_header_t *,apr_pool_t *)|svn_proplist_receiver2_t", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_pool_t__p_svn_error_t = {"_p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_pool_t__p_svn_error_t", "struct svn_error_t *(*)(void *,char const *,apr_hash_t *,apr_pool_t *)|svn_proplist_receiver_t", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_f_p_void_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t = {"_p_f_p_void_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t", "struct svn_error_t *(*)(void *,char const *,char const *,apr_pool_t *)|svn_changelist_receiver_t", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_f_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_svn_boolean_t_p_q_const__char_svn_boolean_t_svn_revnum_t_svn_boolean_t_svn_depth_t_p_apr_pool_t__p_svn_error_t = {"_p_f_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_svn_boolean_t_p_q_const__char_svn_boolean_t_svn_revnum_t_svn_boolean_t_svn_depth_t_p_apr_pool_t__p_svn_error_t", "struct svn_error_t *(*)(void *,char const *,char const *,svn_boolean_t,svn_boolean_t,char const *,svn_boolean_t,svn_revnum_t,svn_boolean_t,svn_depth_t,apr_pool_t *)|svn_client__layout_func_t", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_f_p_void_p_q_const__char_p_q_const__svn_client_info2_t_p_apr_pool_t__p_svn_error_t = {"_p_f_p_void_p_q_const__char_p_q_const__svn_client_info2_t_p_apr_pool_t__p_svn_error_t", "svn_client_info_receiver2_t|struct svn_error_t *(*)(void *,char const *,svn_client_info2_t const *,apr_pool_t *)", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_f_p_void_p_q_const__char_p_q_const__svn_client_status_t_p_apr_pool_t__p_svn_error_t = {"_p_f_p_void_p_q_const__char_p_q_const__svn_client_status_t_p_apr_pool_t__p_svn_error_t", "svn_client_status_func_t|struct svn_error_t *(*)(void *,char const *,svn_client_status_t const *,apr_pool_t *)", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_apr_pool_t__p_svn_error_t = {"_p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_apr_pool_t__p_svn_error_t", "struct svn_error_t *(*)(void *,char const *,svn_dirent_t const *,svn_lock_t const *,char const *,apr_pool_t *)|svn_client_list_func_t", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t = {"_p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t", "struct svn_error_t *(*)(void *,char const *,svn_dirent_t const *,svn_lock_t const *,char const *,char const *,char const *,apr_pool_t *)|svn_client_list_func2_t", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_f_p_void_p_q_const__char_p_q_const__svn_info_t_p_apr_pool_t__p_svn_error_t = {"_p_f_p_void_p_q_const__char_p_q_const__svn_info_t_p_apr_pool_t__p_svn_error_t", "struct svn_error_t *(*)(void *,char const *,svn_info_t const *,apr_pool_t *)|svn_info_receiver_t", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_f_p_void_p_q_const__char_p_q_const__svn_wc_status3_t_p_apr_pool_t__p_svn_error_t = {"_p_f_p_void_p_q_const__char_p_q_const__svn_wc_status3_t_p_apr_pool_t__p_svn_error_t", "struct svn_error_t *(*)(void *,char const *,svn_wc_status3_t const *,apr_pool_t *)|svn_wc_status_func4_t", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_f_p_void_p_q_const__char_p_struct_svn_wc_status2_t__void = {"_p_f_p_void_p_q_const__char_p_struct_svn_wc_status2_t__void", "void (*)(void *,char const *,struct svn_wc_status2_t *)|svn_wc_status_func2_t", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_f_p_void_p_q_const__char_p_struct_svn_wc_status_t__void = {"_p_f_p_void_p_q_const__char_p_struct_svn_wc_status_t__void", "void (*)(void *,char const *,struct svn_wc_status_t *)|svn_wc_status_func_t", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_f_p_void_p_q_const__char_p_svn_wc_status2_t_p_apr_pool_t__p_svn_error_t = {"_p_f_p_void_p_q_const__char_p_svn_wc_status2_t_p_apr_pool_t__p_svn_error_t", "struct svn_error_t *(*)(void *,char const *,svn_wc_status2_t *,apr_pool_t *)|svn_wc_status_func3_t", 0, 0, (void*)0, 0};
@@ -37033,11 +39764,13 @@ static swig_type_info _swigt__p_p_f_p_void_p_q_const__char__int = {"_p_p_f_p_voi
static swig_type_info _swigt__p_p_f_p_void_p_q_const__char_enum_svn_wc_notify_action_t_enum_svn_node_kind_t_p_q_const__char_enum_svn_wc_notify_state_t_enum_svn_wc_notify_state_t_long__void = {"_p_p_f_p_void_p_q_const__char_enum_svn_wc_notify_action_t_enum_svn_node_kind_t_p_q_const__char_enum_svn_wc_notify_state_t_enum_svn_wc_notify_state_t_long__void", "void (**)(void *,char const *,enum svn_wc_notify_action_t,enum svn_node_kind_t,char const *,enum svn_wc_notify_state_t,enum svn_wc_notify_state_t,long)|svn_wc_notify_func_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_array_header_t_p_apr_pool_t__p_svn_error_t = {"_p_p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_array_header_t_p_apr_pool_t__p_svn_error_t", "struct svn_error_t *(**)(void *,char const *,apr_hash_t *,apr_array_header_t *,apr_pool_t *)|svn_proplist_receiver2_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_pool_t__p_svn_error_t = {"_p_p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_pool_t__p_svn_error_t", "struct svn_error_t *(**)(void *,char const *,apr_hash_t *,apr_pool_t *)|svn_proplist_receiver_t *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_p_f_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_svn_boolean_t_p_q_const__char_svn_boolean_t_svn_revnum_t_svn_boolean_t_svn_depth_t_p_apr_pool_t__p_svn_error_t = {"_p_p_f_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_svn_boolean_t_p_q_const__char_svn_boolean_t_svn_revnum_t_svn_boolean_t_svn_depth_t_p_apr_pool_t__p_svn_error_t", "struct svn_error_t *(**)(void *,char const *,char const *,svn_boolean_t,svn_boolean_t,char const *,svn_boolean_t,svn_revnum_t,svn_boolean_t,svn_depth_t,apr_pool_t *)|svn_client__layout_func_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_p_f_p_void_p_q_const__char_p_q_const__svn_client_info2_t_p_apr_pool_t__p_svn_error_t = {"_p_p_f_p_void_p_q_const__char_p_q_const__svn_client_info2_t_p_apr_pool_t__p_svn_error_t", "struct svn_error_t *(**)(void *,char const *,svn_client_info2_t const *,apr_pool_t *)|svn_client_info_receiver2_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_p_f_p_void_p_q_const__char_p_q_const__svn_client_status_t_p_apr_pool_t__p_svn_error_t = {"_p_p_f_p_void_p_q_const__char_p_q_const__svn_client_status_t_p_apr_pool_t__p_svn_error_t", "struct svn_error_t *(**)(void *,char const *,svn_client_status_t const *,apr_pool_t *)|svn_client_status_func_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_apr_pool_t__p_svn_error_t = {"_p_p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_apr_pool_t__p_svn_error_t", "struct svn_error_t *(**)(void *,char const *,svn_dirent_t const *,svn_lock_t const *,char const *,apr_pool_t *)|svn_client_list_func_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t = {"_p_p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t", "struct svn_error_t *(**)(void *,char const *,svn_dirent_t const *,svn_lock_t const *,char const *,char const *,char const *,apr_pool_t *)|svn_client_list_func2_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_p_f_p_void_p_q_const__char_p_q_const__svn_info_t_p_apr_pool_t__p_svn_error_t = {"_p_p_f_p_void_p_q_const__char_p_q_const__svn_info_t_p_apr_pool_t__p_svn_error_t", "svn_info_receiver_t *|struct svn_error_t *(**)(void *,char const *,svn_info_t const *,apr_pool_t *)", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_p_f_p_void_p_q_const__char_p_q_const__svn_wc_status3_t_p_apr_pool_t__p_svn_error_t = {"_p_p_f_p_void_p_q_const__char_p_q_const__svn_wc_status3_t_p_apr_pool_t__p_svn_error_t", "svn_wc_status_func4_t *|struct svn_error_t *(**)(void *,char const *,svn_wc_status3_t const *,apr_pool_t *)", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_p_f_p_void_p_q_const__char_p_svn_wc_status2_t_p_apr_pool_t__p_svn_error_t = {"_p_p_f_p_void_p_q_const__char_p_svn_wc_status2_t_p_apr_pool_t__p_svn_error_t", "svn_wc_status_func3_t *|struct svn_error_t *(**)(void *,char const *,svn_wc_status2_t *,apr_pool_t *)", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_p_f_p_void_p_q_const__struct_svn_wc_notify_t_p_apr_pool_t__void = {"_p_p_f_p_void_p_q_const__struct_svn_wc_notify_t_p_apr_pool_t__void", "void (**)(void *,struct svn_wc_notify_t const *,apr_pool_t *)|svn_wc_notify_func2_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_p_f_p_void_p_svn_boolean_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t = {"_p_p_f_p_void_p_svn_boolean_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t", "struct svn_error_t *(**)(void *,svn_boolean_t *,char const *,char const *,char const *,apr_pool_t *)|svn_client_patch_func_t *", 0, 0, (void*)0, 0};
@@ -37045,6 +39778,8 @@ static swig_type_info _swigt__p_p_f_p_void_p_svn_boolean_t_p_q_const__char_p_q_c
static swig_type_info _swigt__p_p_f_p_void_p_svn_client_conflict_t_p_apr_pool_t__p_svn_error_t = {"_p_p_f_p_void_p_svn_client_conflict_t_p_apr_pool_t__p_svn_error_t", "svn_client_conflict_walk_func_t *|struct svn_error_t *(**)(void *,svn_client_conflict_t *,apr_pool_t *)", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_p_f_p_void_svn_revnum_t_svn_revnum_t_apr_int64_t_svn_revnum_t_p_apr_hash_t_svn_revnum_t_p_apr_hash_t_p_q_const__char_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t = {"_p_p_f_p_void_svn_revnum_t_svn_revnum_t_apr_int64_t_svn_revnum_t_p_apr_hash_t_svn_revnum_t_p_apr_hash_t_p_q_const__char_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t", "struct svn_error_t *(**)(void *,svn_revnum_t,svn_revnum_t,apr_int64_t,svn_revnum_t,apr_hash_t *,svn_revnum_t,apr_hash_t *,char const *,char const *,svn_boolean_t,apr_pool_t *)|svn_client_blame_receiver3_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_p_svn_auth_provider_object_t = {"_p_p_svn_auth_provider_object_t", "struct svn_auth_provider_object_t **|svn_auth_provider_object_t **", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_p_svn_client__shelf_t = {"_p_p_svn_client__shelf_t", "struct svn_client__shelf_t **|svn_client__shelf_t **", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_p_svn_client__shelf_version_t = {"_p_p_svn_client__shelf_version_t", "struct svn_client__shelf_version_t **|svn_client__shelf_version_t **", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_p_svn_client_commit_info_t = {"_p_p_svn_client_commit_info_t", "struct svn_client_commit_info_t **|svn_client_commit_info_t **", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_p_svn_client_commit_item3_t = {"_p_p_svn_client_commit_item3_t", "struct svn_client_commit_item3_t **|svn_client_commit_item3_t **", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_p_svn_client_conflict_t = {"_p_p_svn_client_conflict_t", "struct svn_client_conflict_t **|svn_client_conflict_t **", 0, 0, (void*)0, 0};
@@ -37066,6 +39801,9 @@ static swig_type_info _swigt__p_svn_cache_config_t = {"_p_svn_cache_config_t", "
static swig_type_info _swigt__p_svn_checksum_ctx_t = {"_p_svn_checksum_ctx_t", "struct svn_checksum_ctx_t *|svn_checksum_ctx_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_checksum_kind_t = {"_p_svn_checksum_kind_t", "enum svn_checksum_kind_t *|svn_checksum_kind_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_checksum_t = {"_p_svn_checksum_t", "struct svn_checksum_t *|svn_checksum_t *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_svn_client__shelf_info_t = {"_p_svn_client__shelf_info_t", "struct svn_client__shelf_info_t *|svn_client__shelf_info_t *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_svn_client__shelf_t = {"_p_svn_client__shelf_t", "struct svn_client__shelf_t *|svn_client__shelf_t *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_svn_client__shelf_version_t = {"_p_svn_client__shelf_version_t", "struct svn_client__shelf_version_t *|svn_client__shelf_version_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_client_commit_info_t = {"_p_svn_client_commit_info_t", "struct svn_client_commit_info_t *|svn_client_commit_info_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_client_commit_item2_t = {"_p_svn_client_commit_item2_t", "struct svn_client_commit_item2_t *|svn_client_commit_item2_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_client_commit_item3_t = {"_p_svn_client_commit_item3_t", "struct svn_client_commit_item3_t *|svn_client_commit_item3_t *", 0, 0, (void*)0, 0};
@@ -37079,7 +39817,6 @@ static swig_type_info _swigt__p_svn_client_diff_summarize_kind_t = {"_p_svn_clie
static swig_type_info _swigt__p_svn_client_diff_summarize_t = {"_p_svn_client_diff_summarize_t", "struct svn_client_diff_summarize_t *|svn_client_diff_summarize_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_client_info2_t = {"_p_svn_client_info2_t", "struct svn_client_info2_t *|svn_client_info2_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_client_proplist_item_t = {"_p_svn_client_proplist_item_t", "struct svn_client_proplist_item_t *|svn_client_proplist_item_t *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_svn_client_shelved_patch_info_t = {"_p_svn_client_shelved_patch_info_t", "struct svn_client_shelved_patch_info_t *|svn_client_shelved_patch_info_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_client_status_t = {"_p_svn_client_status_t", "struct svn_client_status_t *|svn_client_status_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_commit_info_t = {"_p_svn_commit_info_t", "struct svn_commit_info_t *|svn_commit_info_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_config_t = {"_p_svn_config_t", "struct svn_config_t *|svn_config_t *", 0, 0, (void*)0, 0};
@@ -37107,6 +39844,7 @@ static swig_type_info _swigt__p_svn_opt_revision_range_t = {"_p_svn_opt_revision
static swig_type_info _swigt__p_svn_opt_revision_t = {"_p_svn_opt_revision_t", "struct svn_opt_revision_t *|svn_opt_revision_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_revision_value_t = {"_p_svn_opt_revision_value_t", "union svn_opt_revision_value_t *|svn_opt_revision_value_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc2_t = {"_p_svn_opt_subcommand_desc2_t", "struct svn_opt_subcommand_desc2_t *|svn_opt_subcommand_desc2_t *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_svn_opt_subcommand_desc3_t = {"_p_svn_opt_subcommand_desc3_t", "struct svn_opt_subcommand_desc3_t *|svn_opt_subcommand_desc3_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc_t = {"_p_svn_opt_subcommand_desc_t", "struct svn_opt_subcommand_desc_t *|svn_opt_subcommand_desc_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_prop_inherited_item_t = {"_p_svn_prop_inherited_item_t", "struct svn_prop_inherited_item_t *|svn_prop_inherited_item_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_prop_kind = {"_p_svn_prop_kind", "svn_prop_kind_t *|enum svn_prop_kind *", 0, 0, (void*)0, 0};
@@ -37196,11 +39934,13 @@ static swig_type_info *swig_type_initial[] = {
&_swigt__p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_array_header_t_p_apr_pool_t__p_svn_error_t,
&_swigt__p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_pool_t__p_svn_error_t,
&_swigt__p_f_p_void_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t,
+ &_swigt__p_f_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_svn_boolean_t_p_q_const__char_svn_boolean_t_svn_revnum_t_svn_boolean_t_svn_depth_t_p_apr_pool_t__p_svn_error_t,
&_swigt__p_f_p_void_p_q_const__char_p_q_const__svn_client_info2_t_p_apr_pool_t__p_svn_error_t,
&_swigt__p_f_p_void_p_q_const__char_p_q_const__svn_client_status_t_p_apr_pool_t__p_svn_error_t,
&_swigt__p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_apr_pool_t__p_svn_error_t,
&_swigt__p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t,
&_swigt__p_f_p_void_p_q_const__char_p_q_const__svn_info_t_p_apr_pool_t__p_svn_error_t,
+ &_swigt__p_f_p_void_p_q_const__char_p_q_const__svn_wc_status3_t_p_apr_pool_t__p_svn_error_t,
&_swigt__p_f_p_void_p_q_const__char_p_struct_svn_wc_status2_t__void,
&_swigt__p_f_p_void_p_q_const__char_p_struct_svn_wc_status_t__void,
&_swigt__p_f_p_void_p_q_const__char_p_svn_wc_status2_t_p_apr_pool_t__p_svn_error_t,
@@ -37229,11 +39969,13 @@ static swig_type_info *swig_type_initial[] = {
&_swigt__p_p_f_p_void_p_q_const__char_enum_svn_wc_notify_action_t_enum_svn_node_kind_t_p_q_const__char_enum_svn_wc_notify_state_t_enum_svn_wc_notify_state_t_long__void,
&_swigt__p_p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_array_header_t_p_apr_pool_t__p_svn_error_t,
&_swigt__p_p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_pool_t__p_svn_error_t,
+ &_swigt__p_p_f_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_svn_boolean_t_p_q_const__char_svn_boolean_t_svn_revnum_t_svn_boolean_t_svn_depth_t_p_apr_pool_t__p_svn_error_t,
&_swigt__p_p_f_p_void_p_q_const__char_p_q_const__svn_client_info2_t_p_apr_pool_t__p_svn_error_t,
&_swigt__p_p_f_p_void_p_q_const__char_p_q_const__svn_client_status_t_p_apr_pool_t__p_svn_error_t,
&_swigt__p_p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_apr_pool_t__p_svn_error_t,
&_swigt__p_p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t,
&_swigt__p_p_f_p_void_p_q_const__char_p_q_const__svn_info_t_p_apr_pool_t__p_svn_error_t,
+ &_swigt__p_p_f_p_void_p_q_const__char_p_q_const__svn_wc_status3_t_p_apr_pool_t__p_svn_error_t,
&_swigt__p_p_f_p_void_p_q_const__char_p_svn_wc_status2_t_p_apr_pool_t__p_svn_error_t,
&_swigt__p_p_f_p_void_p_q_const__struct_svn_wc_notify_t_p_apr_pool_t__void,
&_swigt__p_p_f_p_void_p_svn_boolean_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t,
@@ -37241,6 +39983,8 @@ static swig_type_info *swig_type_initial[] = {
&_swigt__p_p_f_p_void_p_svn_client_conflict_t_p_apr_pool_t__p_svn_error_t,
&_swigt__p_p_f_p_void_svn_revnum_t_svn_revnum_t_apr_int64_t_svn_revnum_t_p_apr_hash_t_svn_revnum_t_p_apr_hash_t_p_q_const__char_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t,
&_swigt__p_p_svn_auth_provider_object_t,
+ &_swigt__p_p_svn_client__shelf_t,
+ &_swigt__p_p_svn_client__shelf_version_t,
&_swigt__p_p_svn_client_commit_info_t,
&_swigt__p_p_svn_client_commit_item3_t,
&_swigt__p_p_svn_client_conflict_t,
@@ -37262,6 +40006,9 @@ static swig_type_info *swig_type_initial[] = {
&_swigt__p_svn_checksum_ctx_t,
&_swigt__p_svn_checksum_kind_t,
&_swigt__p_svn_checksum_t,
+ &_swigt__p_svn_client__shelf_info_t,
+ &_swigt__p_svn_client__shelf_t,
+ &_swigt__p_svn_client__shelf_version_t,
&_swigt__p_svn_client_commit_info_t,
&_swigt__p_svn_client_commit_item2_t,
&_swigt__p_svn_client_commit_item3_t,
@@ -37275,7 +40022,6 @@ static swig_type_info *swig_type_initial[] = {
&_swigt__p_svn_client_diff_summarize_t,
&_swigt__p_svn_client_info2_t,
&_swigt__p_svn_client_proplist_item_t,
- &_swigt__p_svn_client_shelved_patch_info_t,
&_swigt__p_svn_client_status_t,
&_swigt__p_svn_commit_info_t,
&_swigt__p_svn_config_t,
@@ -37303,6 +40049,7 @@ static swig_type_info *swig_type_initial[] = {
&_swigt__p_svn_opt_revision_t,
&_swigt__p_svn_opt_revision_value_t,
&_swigt__p_svn_opt_subcommand_desc2_t,
+ &_swigt__p_svn_opt_subcommand_desc3_t,
&_swigt__p_svn_opt_subcommand_desc_t,
&_swigt__p_svn_prop_inherited_item_t,
&_swigt__p_svn_prop_kind,
@@ -37392,11 +40139,13 @@ static swig_cast_info _swigc__p_f_p_void_p_q_const__char_enum_svn_wc_notify_acti
static swig_cast_info _swigc__p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_array_header_t_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_array_header_t_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_f_p_void_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_f_p_void_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_f_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_svn_boolean_t_p_q_const__char_svn_boolean_t_svn_revnum_t_svn_boolean_t_svn_depth_t_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_f_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_svn_boolean_t_p_q_const__char_svn_boolean_t_svn_revnum_t_svn_boolean_t_svn_depth_t_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_f_p_void_p_q_const__char_p_q_const__svn_client_info2_t_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_f_p_void_p_q_const__char_p_q_const__svn_client_info2_t_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_f_p_void_p_q_const__char_p_q_const__svn_client_status_t_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_f_p_void_p_q_const__char_p_q_const__svn_client_status_t_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_f_p_void_p_q_const__char_p_q_const__svn_info_t_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_f_p_void_p_q_const__char_p_q_const__svn_info_t_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_f_p_void_p_q_const__char_p_q_const__svn_wc_status3_t_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_f_p_void_p_q_const__char_p_q_const__svn_wc_status3_t_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_f_p_void_p_q_const__char_p_struct_svn_wc_status2_t__void[] = { {&_swigt__p_f_p_void_p_q_const__char_p_struct_svn_wc_status2_t__void, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_f_p_void_p_q_const__char_p_struct_svn_wc_status_t__void[] = { {&_swigt__p_f_p_void_p_q_const__char_p_struct_svn_wc_status_t__void, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_f_p_void_p_q_const__char_p_svn_wc_status2_t_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_f_p_void_p_q_const__char_p_svn_wc_status2_t_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
@@ -37425,11 +40174,13 @@ static swig_cast_info _swigc__p_p_f_p_void_p_q_const__char__int[] = { {&_swigt_
static swig_cast_info _swigc__p_p_f_p_void_p_q_const__char_enum_svn_wc_notify_action_t_enum_svn_node_kind_t_p_q_const__char_enum_svn_wc_notify_state_t_enum_svn_wc_notify_state_t_long__void[] = { {&_swigt__p_p_f_p_void_p_q_const__char_enum_svn_wc_notify_action_t_enum_svn_node_kind_t_p_q_const__char_enum_svn_wc_notify_state_t_enum_svn_wc_notify_state_t_long__void, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_array_header_t_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_array_header_t_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_p_f_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_svn_boolean_t_p_q_const__char_svn_boolean_t_svn_revnum_t_svn_boolean_t_svn_depth_t_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_p_f_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_svn_boolean_t_p_q_const__char_svn_boolean_t_svn_revnum_t_svn_boolean_t_svn_depth_t_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_p_f_p_void_p_q_const__char_p_q_const__svn_client_info2_t_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_p_f_p_void_p_q_const__char_p_q_const__svn_client_info2_t_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_p_f_p_void_p_q_const__char_p_q_const__svn_client_status_t_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_p_f_p_void_p_q_const__char_p_q_const__svn_client_status_t_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_p_f_p_void_p_q_const__char_p_q_const__svn_info_t_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_p_f_p_void_p_q_const__char_p_q_const__svn_info_t_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_p_f_p_void_p_q_const__char_p_q_const__svn_wc_status3_t_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_p_f_p_void_p_q_const__char_p_q_const__svn_wc_status3_t_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_p_f_p_void_p_q_const__char_p_svn_wc_status2_t_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_p_f_p_void_p_q_const__char_p_svn_wc_status2_t_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_p_f_p_void_p_q_const__struct_svn_wc_notify_t_p_apr_pool_t__void[] = { {&_swigt__p_p_f_p_void_p_q_const__struct_svn_wc_notify_t_p_apr_pool_t__void, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_p_f_p_void_p_svn_boolean_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_p_f_p_void_p_svn_boolean_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
@@ -37437,6 +40188,8 @@ static swig_cast_info _swigc__p_p_f_p_void_p_svn_boolean_t_p_q_const__char_p_q_c
static swig_cast_info _swigc__p_p_f_p_void_p_svn_client_conflict_t_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_p_f_p_void_p_svn_client_conflict_t_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_p_f_p_void_svn_revnum_t_svn_revnum_t_apr_int64_t_svn_revnum_t_p_apr_hash_t_svn_revnum_t_p_apr_hash_t_p_q_const__char_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_p_f_p_void_svn_revnum_t_svn_revnum_t_apr_int64_t_svn_revnum_t_p_apr_hash_t_svn_revnum_t_p_apr_hash_t_p_q_const__char_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_p_svn_auth_provider_object_t[] = { {&_swigt__p_p_svn_auth_provider_object_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_p_svn_client__shelf_t[] = { {&_swigt__p_p_svn_client__shelf_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_p_svn_client__shelf_version_t[] = { {&_swigt__p_p_svn_client__shelf_version_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_p_svn_client_commit_info_t[] = { {&_swigt__p_p_svn_client_commit_info_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_p_svn_client_commit_item3_t[] = { {&_swigt__p_p_svn_client_commit_item3_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_p_svn_client_conflict_t[] = { {&_swigt__p_p_svn_client_conflict_t, 0, 0, 0},{0, 0, 0, 0}};
@@ -37458,6 +40211,9 @@ static swig_cast_info _swigc__p_svn_cache_config_t[] = { {&_swigt__p_svn_cache_
static swig_cast_info _swigc__p_svn_checksum_ctx_t[] = { {&_swigt__p_svn_checksum_ctx_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_checksum_kind_t[] = { {&_swigt__p_svn_checksum_kind_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_checksum_t[] = { {&_swigt__p_svn_checksum_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_svn_client__shelf_info_t[] = { {&_swigt__p_svn_client__shelf_info_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_svn_client__shelf_t[] = { {&_swigt__p_svn_client__shelf_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_svn_client__shelf_version_t[] = { {&_swigt__p_svn_client__shelf_version_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_client_commit_info_t[] = { {&_swigt__p_svn_client_commit_info_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_client_commit_item2_t[] = { {&_swigt__p_svn_client_commit_item2_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_client_commit_item3_t[] = { {&_swigt__p_svn_client_commit_item3_t, 0, 0, 0},{0, 0, 0, 0}};
@@ -37471,7 +40227,6 @@ static swig_cast_info _swigc__p_svn_client_diff_summarize_kind_t[] = { {&_swigt
static swig_cast_info _swigc__p_svn_client_diff_summarize_t[] = { {&_swigt__p_svn_client_diff_summarize_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_client_info2_t[] = { {&_swigt__p_svn_client_info2_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_client_proplist_item_t[] = { {&_swigt__p_svn_client_proplist_item_t, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_svn_client_shelved_patch_info_t[] = { {&_swigt__p_svn_client_shelved_patch_info_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_client_status_t[] = { {&_swigt__p_svn_client_status_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_commit_info_t[] = { {&_swigt__p_svn_commit_info_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_config_t[] = { {&_swigt__p_svn_config_t, 0, 0, 0},{0, 0, 0, 0}};
@@ -37499,6 +40254,7 @@ static swig_cast_info _swigc__p_svn_opt_revision_range_t[] = { {&_swigt__p_svn_
static swig_cast_info _swigc__p_svn_opt_revision_t[] = { {&_swigt__p_svn_opt_revision_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_revision_value_t[] = { {&_swigt__p_svn_opt_revision_value_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc2_t[] = { {&_swigt__p_svn_opt_subcommand_desc2_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_svn_opt_subcommand_desc3_t[] = { {&_swigt__p_svn_opt_subcommand_desc3_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc_t[] = { {&_swigt__p_svn_opt_subcommand_desc_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_prop_inherited_item_t[] = { {&_swigt__p_svn_prop_inherited_item_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_prop_kind[] = { {&_swigt__p_svn_prop_kind, 0, 0, 0},{0, 0, 0, 0}};
@@ -37588,11 +40344,13 @@ static swig_cast_info *swig_cast_initial[] = {
_swigc__p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_array_header_t_p_apr_pool_t__p_svn_error_t,
_swigc__p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_pool_t__p_svn_error_t,
_swigc__p_f_p_void_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t,
+ _swigc__p_f_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_svn_boolean_t_p_q_const__char_svn_boolean_t_svn_revnum_t_svn_boolean_t_svn_depth_t_p_apr_pool_t__p_svn_error_t,
_swigc__p_f_p_void_p_q_const__char_p_q_const__svn_client_info2_t_p_apr_pool_t__p_svn_error_t,
_swigc__p_f_p_void_p_q_const__char_p_q_const__svn_client_status_t_p_apr_pool_t__p_svn_error_t,
_swigc__p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_apr_pool_t__p_svn_error_t,
_swigc__p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t,
_swigc__p_f_p_void_p_q_const__char_p_q_const__svn_info_t_p_apr_pool_t__p_svn_error_t,
+ _swigc__p_f_p_void_p_q_const__char_p_q_const__svn_wc_status3_t_p_apr_pool_t__p_svn_error_t,
_swigc__p_f_p_void_p_q_const__char_p_struct_svn_wc_status2_t__void,
_swigc__p_f_p_void_p_q_const__char_p_struct_svn_wc_status_t__void,
_swigc__p_f_p_void_p_q_const__char_p_svn_wc_status2_t_p_apr_pool_t__p_svn_error_t,
@@ -37621,11 +40379,13 @@ static swig_cast_info *swig_cast_initial[] = {
_swigc__p_p_f_p_void_p_q_const__char_enum_svn_wc_notify_action_t_enum_svn_node_kind_t_p_q_const__char_enum_svn_wc_notify_state_t_enum_svn_wc_notify_state_t_long__void,
_swigc__p_p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_array_header_t_p_apr_pool_t__p_svn_error_t,
_swigc__p_p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_pool_t__p_svn_error_t,
+ _swigc__p_p_f_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_svn_boolean_t_p_q_const__char_svn_boolean_t_svn_revnum_t_svn_boolean_t_svn_depth_t_p_apr_pool_t__p_svn_error_t,
_swigc__p_p_f_p_void_p_q_const__char_p_q_const__svn_client_info2_t_p_apr_pool_t__p_svn_error_t,
_swigc__p_p_f_p_void_p_q_const__char_p_q_const__svn_client_status_t_p_apr_pool_t__p_svn_error_t,
_swigc__p_p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_apr_pool_t__p_svn_error_t,
_swigc__p_p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t,
_swigc__p_p_f_p_void_p_q_const__char_p_q_const__svn_info_t_p_apr_pool_t__p_svn_error_t,
+ _swigc__p_p_f_p_void_p_q_const__char_p_q_const__svn_wc_status3_t_p_apr_pool_t__p_svn_error_t,
_swigc__p_p_f_p_void_p_q_const__char_p_svn_wc_status2_t_p_apr_pool_t__p_svn_error_t,
_swigc__p_p_f_p_void_p_q_const__struct_svn_wc_notify_t_p_apr_pool_t__void,
_swigc__p_p_f_p_void_p_svn_boolean_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t,
@@ -37633,6 +40393,8 @@ static swig_cast_info *swig_cast_initial[] = {
_swigc__p_p_f_p_void_p_svn_client_conflict_t_p_apr_pool_t__p_svn_error_t,
_swigc__p_p_f_p_void_svn_revnum_t_svn_revnum_t_apr_int64_t_svn_revnum_t_p_apr_hash_t_svn_revnum_t_p_apr_hash_t_p_q_const__char_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t,
_swigc__p_p_svn_auth_provider_object_t,
+ _swigc__p_p_svn_client__shelf_t,
+ _swigc__p_p_svn_client__shelf_version_t,
_swigc__p_p_svn_client_commit_info_t,
_swigc__p_p_svn_client_commit_item3_t,
_swigc__p_p_svn_client_conflict_t,
@@ -37654,6 +40416,9 @@ static swig_cast_info *swig_cast_initial[] = {
_swigc__p_svn_checksum_ctx_t,
_swigc__p_svn_checksum_kind_t,
_swigc__p_svn_checksum_t,
+ _swigc__p_svn_client__shelf_info_t,
+ _swigc__p_svn_client__shelf_t,
+ _swigc__p_svn_client__shelf_version_t,
_swigc__p_svn_client_commit_info_t,
_swigc__p_svn_client_commit_item2_t,
_swigc__p_svn_client_commit_item3_t,
@@ -37667,7 +40432,6 @@ static swig_cast_info *swig_cast_initial[] = {
_swigc__p_svn_client_diff_summarize_t,
_swigc__p_svn_client_info2_t,
_swigc__p_svn_client_proplist_item_t,
- _swigc__p_svn_client_shelved_patch_info_t,
_swigc__p_svn_client_status_t,
_swigc__p_svn_commit_info_t,
_swigc__p_svn_config_t,
@@ -37695,6 +40459,7 @@ static swig_cast_info *swig_cast_initial[] = {
_swigc__p_svn_opt_revision_t,
_swigc__p_svn_opt_revision_value_t,
_swigc__p_svn_opt_subcommand_desc2_t,
+ _swigc__p_svn_opt_subcommand_desc3_t,
_swigc__p_svn_opt_subcommand_desc_t,
_swigc__p_svn_prop_inherited_item_t,
_swigc__p_svn_prop_kind,
@@ -38481,6 +41246,9 @@ SWIG_init(void) {
SWIG_Python_SetConstant(d, "svn_client_conflict_option_incoming_move_file_text_merge",SWIG_From_long((long)(svn_client_conflict_option_incoming_move_file_text_merge)));
SWIG_Python_SetConstant(d, "svn_client_conflict_option_incoming_move_dir_merge",SWIG_From_long((long)(svn_client_conflict_option_incoming_move_dir_merge)));
SWIG_Python_SetConstant(d, "svn_client_conflict_option_local_move_file_text_merge",SWIG_From_long((long)(svn_client_conflict_option_local_move_file_text_merge)));
+ SWIG_Python_SetConstant(d, "svn_client_conflict_option_local_move_dir_merge",SWIG_From_long((long)(svn_client_conflict_option_local_move_dir_merge)));
+ SWIG_Python_SetConstant(d, "svn_client_conflict_option_sibling_move_file_text_merge",SWIG_From_long((long)(svn_client_conflict_option_sibling_move_file_text_merge)));
+ SWIG_Python_SetConstant(d, "svn_client_conflict_option_sibling_move_dir_merge",SWIG_From_long((long)(svn_client_conflict_option_sibling_move_dir_merge)));
SWIG_Python_SetConstant(d, "SWIG_SVN_INFO_SIZE_UNKNOWN",SWIG_From_unsigned_SS_long((unsigned long)(-1)));
{
svn_cancel_func_t * tmp = malloc(sizeof(svn_cancel_func_t));
diff --git a/subversion/bindings/swig/python/svn_delta.c b/subversion/bindings/swig/python/svn_delta.c
index e3a3ded..4145794 100644
--- a/subversion/bindings/swig/python/svn_delta.c
+++ b/subversion/bindings/swig/python/svn_delta.c
@@ -3064,28 +3064,29 @@ SWIG_Python_NonDynamicSetAttr(PyObject *obj, PyObject *name, PyObject *value) {
#define SWIGTYPE_p_svn_opt_revision_t swig_types[78]
#define SWIGTYPE_p_svn_opt_revision_value_t swig_types[79]
#define SWIGTYPE_p_svn_opt_subcommand_desc2_t swig_types[80]
-#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[81]
-#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[82]
-#define SWIGTYPE_p_svn_prop_kind swig_types[83]
-#define SWIGTYPE_p_svn_stream_mark_t swig_types[84]
-#define SWIGTYPE_p_svn_stream_t swig_types[85]
-#define SWIGTYPE_p_svn_string_t swig_types[86]
-#define SWIGTYPE_p_svn_stringbuf_t swig_types[87]
-#define SWIGTYPE_p_svn_tristate_t swig_types[88]
-#define SWIGTYPE_p_svn_txdelta_op_t swig_types[89]
-#define SWIGTYPE_p_svn_txdelta_stream_t swig_types[90]
-#define SWIGTYPE_p_svn_txdelta_window_t swig_types[91]
-#define SWIGTYPE_p_svn_version_checklist_t swig_types[92]
-#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[93]
-#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[94]
-#define SWIGTYPE_p_svn_version_extended_t swig_types[95]
-#define SWIGTYPE_p_svn_version_t swig_types[96]
-#define SWIGTYPE_p_svn_wc_external_item2_t swig_types[97]
-#define SWIGTYPE_p_unsigned_char swig_types[98]
-#define SWIGTYPE_p_unsigned_long swig_types[99]
-#define SWIGTYPE_p_void swig_types[100]
-static swig_type_info *swig_types[102];
-static swig_module_info swig_module = {swig_types, 101, 0, 0, 0, 0};
+#define SWIGTYPE_p_svn_opt_subcommand_desc3_t swig_types[81]
+#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[82]
+#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[83]
+#define SWIGTYPE_p_svn_prop_kind swig_types[84]
+#define SWIGTYPE_p_svn_stream_mark_t swig_types[85]
+#define SWIGTYPE_p_svn_stream_t swig_types[86]
+#define SWIGTYPE_p_svn_string_t swig_types[87]
+#define SWIGTYPE_p_svn_stringbuf_t swig_types[88]
+#define SWIGTYPE_p_svn_tristate_t swig_types[89]
+#define SWIGTYPE_p_svn_txdelta_op_t swig_types[90]
+#define SWIGTYPE_p_svn_txdelta_stream_t swig_types[91]
+#define SWIGTYPE_p_svn_txdelta_window_t swig_types[92]
+#define SWIGTYPE_p_svn_version_checklist_t swig_types[93]
+#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[94]
+#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[95]
+#define SWIGTYPE_p_svn_version_extended_t swig_types[96]
+#define SWIGTYPE_p_svn_version_t swig_types[97]
+#define SWIGTYPE_p_svn_wc_external_item2_t swig_types[98]
+#define SWIGTYPE_p_unsigned_char swig_types[99]
+#define SWIGTYPE_p_unsigned_long swig_types[100]
+#define SWIGTYPE_p_void swig_types[101]
+static swig_type_info *swig_types[103];
+static swig_module_info swig_module = {swig_types, 102, 0, 0, 0, 0};
#define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
#define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
@@ -9632,6 +9633,7 @@ static swig_type_info _swigt__p_svn_opt_revision_range_t = {"_p_svn_opt_revision
static swig_type_info _swigt__p_svn_opt_revision_t = {"_p_svn_opt_revision_t", "struct svn_opt_revision_t *|svn_opt_revision_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_revision_value_t = {"_p_svn_opt_revision_value_t", "union svn_opt_revision_value_t *|svn_opt_revision_value_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc2_t = {"_p_svn_opt_subcommand_desc2_t", "struct svn_opt_subcommand_desc2_t *|svn_opt_subcommand_desc2_t *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_svn_opt_subcommand_desc3_t = {"_p_svn_opt_subcommand_desc3_t", "struct svn_opt_subcommand_desc3_t *|svn_opt_subcommand_desc3_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc_t = {"_p_svn_opt_subcommand_desc_t", "struct svn_opt_subcommand_desc_t *|svn_opt_subcommand_desc_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_prop_inherited_item_t = {"_p_svn_prop_inherited_item_t", "struct svn_prop_inherited_item_t *|svn_prop_inherited_item_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_prop_kind = {"_p_svn_prop_kind", "svn_prop_kind_t *|enum svn_prop_kind *", 0, 0, (void*)0, 0};
@@ -9735,6 +9737,7 @@ static swig_type_info *swig_type_initial[] = {
&_swigt__p_svn_opt_revision_t,
&_swigt__p_svn_opt_revision_value_t,
&_swigt__p_svn_opt_subcommand_desc2_t,
+ &_swigt__p_svn_opt_subcommand_desc3_t,
&_swigt__p_svn_opt_subcommand_desc_t,
&_swigt__p_svn_prop_inherited_item_t,
&_swigt__p_svn_prop_kind,
@@ -9838,6 +9841,7 @@ static swig_cast_info _swigc__p_svn_opt_revision_range_t[] = { {&_swigt__p_svn_
static swig_cast_info _swigc__p_svn_opt_revision_t[] = { {&_swigt__p_svn_opt_revision_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_revision_value_t[] = { {&_swigt__p_svn_opt_revision_value_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc2_t[] = { {&_swigt__p_svn_opt_subcommand_desc2_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_svn_opt_subcommand_desc3_t[] = { {&_swigt__p_svn_opt_subcommand_desc3_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc_t[] = { {&_swigt__p_svn_opt_subcommand_desc_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_prop_inherited_item_t[] = { {&_swigt__p_svn_prop_inherited_item_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_prop_kind[] = { {&_swigt__p_svn_prop_kind, 0, 0, 0},{0, 0, 0, 0}};
@@ -9941,6 +9945,7 @@ static swig_cast_info *swig_cast_initial[] = {
_swigc__p_svn_opt_revision_t,
_swigc__p_svn_opt_revision_value_t,
_swigc__p_svn_opt_subcommand_desc2_t,
+ _swigc__p_svn_opt_subcommand_desc3_t,
_swigc__p_svn_opt_subcommand_desc_t,
_swigc__p_svn_prop_inherited_item_t,
_swigc__p_svn_prop_kind,
diff --git a/subversion/bindings/swig/python/svn_diff.c b/subversion/bindings/swig/python/svn_diff.c
index dff45ea..81215fc 100644
--- a/subversion/bindings/swig/python/svn_diff.c
+++ b/subversion/bindings/swig/python/svn_diff.c
@@ -3056,27 +3056,28 @@ SWIG_Python_NonDynamicSetAttr(PyObject *obj, PyObject *name, PyObject *value) {
#define SWIGTYPE_p_svn_opt_revision_t swig_types[70]
#define SWIGTYPE_p_svn_opt_revision_value_t swig_types[71]
#define SWIGTYPE_p_svn_opt_subcommand_desc2_t swig_types[72]
-#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[73]
-#define SWIGTYPE_p_svn_patch_file_t swig_types[74]
-#define SWIGTYPE_p_svn_patch_t swig_types[75]
-#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[76]
-#define SWIGTYPE_p_svn_prop_kind swig_types[77]
-#define SWIGTYPE_p_svn_prop_patch_t swig_types[78]
-#define SWIGTYPE_p_svn_stream_mark_t swig_types[79]
-#define SWIGTYPE_p_svn_stream_t swig_types[80]
-#define SWIGTYPE_p_svn_string_t swig_types[81]
-#define SWIGTYPE_p_svn_stringbuf_t swig_types[82]
-#define SWIGTYPE_p_svn_tristate_t swig_types[83]
-#define SWIGTYPE_p_svn_version_checklist_t swig_types[84]
-#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[85]
-#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[86]
-#define SWIGTYPE_p_svn_version_extended_t swig_types[87]
-#define SWIGTYPE_p_svn_version_t swig_types[88]
-#define SWIGTYPE_p_svn_wc_external_item2_t swig_types[89]
-#define SWIGTYPE_p_unsigned_long swig_types[90]
-#define SWIGTYPE_p_void swig_types[91]
-static swig_type_info *swig_types[93];
-static swig_module_info swig_module = {swig_types, 92, 0, 0, 0, 0};
+#define SWIGTYPE_p_svn_opt_subcommand_desc3_t swig_types[73]
+#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[74]
+#define SWIGTYPE_p_svn_patch_file_t swig_types[75]
+#define SWIGTYPE_p_svn_patch_t swig_types[76]
+#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[77]
+#define SWIGTYPE_p_svn_prop_kind swig_types[78]
+#define SWIGTYPE_p_svn_prop_patch_t swig_types[79]
+#define SWIGTYPE_p_svn_stream_mark_t swig_types[80]
+#define SWIGTYPE_p_svn_stream_t swig_types[81]
+#define SWIGTYPE_p_svn_string_t swig_types[82]
+#define SWIGTYPE_p_svn_stringbuf_t swig_types[83]
+#define SWIGTYPE_p_svn_tristate_t swig_types[84]
+#define SWIGTYPE_p_svn_version_checklist_t swig_types[85]
+#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[86]
+#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[87]
+#define SWIGTYPE_p_svn_version_extended_t swig_types[88]
+#define SWIGTYPE_p_svn_version_t swig_types[89]
+#define SWIGTYPE_p_svn_wc_external_item2_t swig_types[90]
+#define SWIGTYPE_p_unsigned_long swig_types[91]
+#define SWIGTYPE_p_void swig_types[92]
+static swig_type_info *swig_types[94];
+static swig_module_info swig_module = {swig_types, 93, 0, 0, 0, 0};
#define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
#define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
@@ -10986,6 +10987,7 @@ static swig_type_info _swigt__p_svn_opt_revision_range_t = {"_p_svn_opt_revision
static swig_type_info _swigt__p_svn_opt_revision_t = {"_p_svn_opt_revision_t", "struct svn_opt_revision_t *|svn_opt_revision_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_revision_value_t = {"_p_svn_opt_revision_value_t", "union svn_opt_revision_value_t *|svn_opt_revision_value_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc2_t = {"_p_svn_opt_subcommand_desc2_t", "struct svn_opt_subcommand_desc2_t *|svn_opt_subcommand_desc2_t *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_svn_opt_subcommand_desc3_t = {"_p_svn_opt_subcommand_desc3_t", "struct svn_opt_subcommand_desc3_t *|svn_opt_subcommand_desc3_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc_t = {"_p_svn_opt_subcommand_desc_t", "struct svn_opt_subcommand_desc_t *|svn_opt_subcommand_desc_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_patch_file_t = {"_p_svn_patch_file_t", "struct svn_patch_file_t *|svn_patch_file_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_patch_t = {"_p_svn_patch_t", "struct svn_patch_t *|svn_patch_t *", 0, 0, (void*)0, 0};
@@ -11080,6 +11082,7 @@ static swig_type_info *swig_type_initial[] = {
&_swigt__p_svn_opt_revision_t,
&_swigt__p_svn_opt_revision_value_t,
&_swigt__p_svn_opt_subcommand_desc2_t,
+ &_swigt__p_svn_opt_subcommand_desc3_t,
&_swigt__p_svn_opt_subcommand_desc_t,
&_swigt__p_svn_patch_file_t,
&_swigt__p_svn_patch_t,
@@ -11174,6 +11177,7 @@ static swig_cast_info _swigc__p_svn_opt_revision_range_t[] = { {&_swigt__p_svn_
static swig_cast_info _swigc__p_svn_opt_revision_t[] = { {&_swigt__p_svn_opt_revision_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_revision_value_t[] = { {&_swigt__p_svn_opt_revision_value_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc2_t[] = { {&_swigt__p_svn_opt_subcommand_desc2_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_svn_opt_subcommand_desc3_t[] = { {&_swigt__p_svn_opt_subcommand_desc3_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc_t[] = { {&_swigt__p_svn_opt_subcommand_desc_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_patch_file_t[] = { {&_swigt__p_svn_patch_file_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_patch_t[] = { {&_swigt__p_svn_patch_t, 0, 0, 0},{0, 0, 0, 0}};
@@ -11268,6 +11272,7 @@ static swig_cast_info *swig_cast_initial[] = {
_swigc__p_svn_opt_revision_t,
_swigc__p_svn_opt_revision_value_t,
_swigc__p_svn_opt_subcommand_desc2_t,
+ _swigc__p_svn_opt_subcommand_desc3_t,
_swigc__p_svn_opt_subcommand_desc_t,
_swigc__p_svn_patch_file_t,
_swigc__p_svn_patch_t,
diff --git a/subversion/bindings/swig/python/svn_fs.c b/subversion/bindings/swig/python/svn_fs.c
index 0dc546b..f405ebd 100644
--- a/subversion/bindings/swig/python/svn_fs.c
+++ b/subversion/bindings/swig/python/svn_fs.c
@@ -3090,28 +3090,29 @@ SWIG_Python_NonDynamicSetAttr(PyObject *obj, PyObject *name, PyObject *value) {
#define SWIGTYPE_p_svn_opt_revision_t swig_types[104]
#define SWIGTYPE_p_svn_opt_revision_value_t swig_types[105]
#define SWIGTYPE_p_svn_opt_subcommand_desc2_t swig_types[106]
-#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[107]
-#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[108]
-#define SWIGTYPE_p_svn_prop_kind swig_types[109]
-#define SWIGTYPE_p_svn_stream_mark_t swig_types[110]
-#define SWIGTYPE_p_svn_stream_t swig_types[111]
-#define SWIGTYPE_p_svn_string_t swig_types[112]
-#define SWIGTYPE_p_svn_stringbuf_t swig_types[113]
-#define SWIGTYPE_p_svn_tristate_t swig_types[114]
-#define SWIGTYPE_p_svn_txdelta_op_t swig_types[115]
-#define SWIGTYPE_p_svn_txdelta_stream_t swig_types[116]
-#define SWIGTYPE_p_svn_txdelta_window_t swig_types[117]
-#define SWIGTYPE_p_svn_version_checklist_t swig_types[118]
-#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[119]
-#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[120]
-#define SWIGTYPE_p_svn_version_extended_t swig_types[121]
-#define SWIGTYPE_p_svn_version_t swig_types[122]
-#define SWIGTYPE_p_svn_wc_external_item2_t swig_types[123]
-#define SWIGTYPE_p_unsigned_char swig_types[124]
-#define SWIGTYPE_p_unsigned_long swig_types[125]
-#define SWIGTYPE_p_void swig_types[126]
-static swig_type_info *swig_types[128];
-static swig_module_info swig_module = {swig_types, 127, 0, 0, 0, 0};
+#define SWIGTYPE_p_svn_opt_subcommand_desc3_t swig_types[107]
+#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[108]
+#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[109]
+#define SWIGTYPE_p_svn_prop_kind swig_types[110]
+#define SWIGTYPE_p_svn_stream_mark_t swig_types[111]
+#define SWIGTYPE_p_svn_stream_t swig_types[112]
+#define SWIGTYPE_p_svn_string_t swig_types[113]
+#define SWIGTYPE_p_svn_stringbuf_t swig_types[114]
+#define SWIGTYPE_p_svn_tristate_t swig_types[115]
+#define SWIGTYPE_p_svn_txdelta_op_t swig_types[116]
+#define SWIGTYPE_p_svn_txdelta_stream_t swig_types[117]
+#define SWIGTYPE_p_svn_txdelta_window_t swig_types[118]
+#define SWIGTYPE_p_svn_version_checklist_t swig_types[119]
+#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[120]
+#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[121]
+#define SWIGTYPE_p_svn_version_extended_t swig_types[122]
+#define SWIGTYPE_p_svn_version_t swig_types[123]
+#define SWIGTYPE_p_svn_wc_external_item2_t swig_types[124]
+#define SWIGTYPE_p_unsigned_char swig_types[125]
+#define SWIGTYPE_p_unsigned_long swig_types[126]
+#define SWIGTYPE_p_void swig_types[127]
+static swig_type_info *swig_types[129];
+static swig_module_info swig_module = {swig_types, 128, 0, 0, 0, 0};
#define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
#define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
@@ -15911,6 +15912,7 @@ static swig_type_info _swigt__p_svn_opt_revision_range_t = {"_p_svn_opt_revision
static swig_type_info _swigt__p_svn_opt_revision_t = {"_p_svn_opt_revision_t", "struct svn_opt_revision_t *|svn_opt_revision_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_revision_value_t = {"_p_svn_opt_revision_value_t", "union svn_opt_revision_value_t *|svn_opt_revision_value_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc2_t = {"_p_svn_opt_subcommand_desc2_t", "struct svn_opt_subcommand_desc2_t *|svn_opt_subcommand_desc2_t *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_svn_opt_subcommand_desc3_t = {"_p_svn_opt_subcommand_desc3_t", "struct svn_opt_subcommand_desc3_t *|svn_opt_subcommand_desc3_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc_t = {"_p_svn_opt_subcommand_desc_t", "struct svn_opt_subcommand_desc_t *|svn_opt_subcommand_desc_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_prop_inherited_item_t = {"_p_svn_prop_inherited_item_t", "struct svn_prop_inherited_item_t *|svn_prop_inherited_item_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_prop_kind = {"_p_svn_prop_kind", "svn_prop_kind_t *|enum svn_prop_kind *", 0, 0, (void*)0, 0};
@@ -16040,6 +16042,7 @@ static swig_type_info *swig_type_initial[] = {
&_swigt__p_svn_opt_revision_t,
&_swigt__p_svn_opt_revision_value_t,
&_swigt__p_svn_opt_subcommand_desc2_t,
+ &_swigt__p_svn_opt_subcommand_desc3_t,
&_swigt__p_svn_opt_subcommand_desc_t,
&_swigt__p_svn_prop_inherited_item_t,
&_swigt__p_svn_prop_kind,
@@ -16169,6 +16172,7 @@ static swig_cast_info _swigc__p_svn_opt_revision_range_t[] = { {&_swigt__p_svn_
static swig_cast_info _swigc__p_svn_opt_revision_t[] = { {&_swigt__p_svn_opt_revision_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_revision_value_t[] = { {&_swigt__p_svn_opt_revision_value_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc2_t[] = { {&_swigt__p_svn_opt_subcommand_desc2_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_svn_opt_subcommand_desc3_t[] = { {&_swigt__p_svn_opt_subcommand_desc3_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc_t[] = { {&_swigt__p_svn_opt_subcommand_desc_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_prop_inherited_item_t[] = { {&_swigt__p_svn_prop_inherited_item_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_prop_kind[] = { {&_swigt__p_svn_prop_kind, 0, 0, 0},{0, 0, 0, 0}};
@@ -16298,6 +16302,7 @@ static swig_cast_info *swig_cast_initial[] = {
_swigc__p_svn_opt_revision_t,
_swigc__p_svn_opt_revision_value_t,
_swigc__p_svn_opt_subcommand_desc2_t,
+ _swigc__p_svn_opt_subcommand_desc3_t,
_swigc__p_svn_opt_subcommand_desc_t,
_swigc__p_svn_prop_inherited_item_t,
_swigc__p_svn_prop_kind,
diff --git a/subversion/bindings/swig/python/svn_ra.c b/subversion/bindings/swig/python/svn_ra.c
index f44e086..4bb6443 100644
--- a/subversion/bindings/swig/python/svn_ra.c
+++ b/subversion/bindings/swig/python/svn_ra.c
@@ -3117,34 +3117,35 @@ SWIG_Python_NonDynamicSetAttr(PyObject *obj, PyObject *name, PyObject *value) {
#define SWIGTYPE_p_svn_opt_revision_t swig_types[131]
#define SWIGTYPE_p_svn_opt_revision_value_t swig_types[132]
#define SWIGTYPE_p_svn_opt_subcommand_desc2_t swig_types[133]
-#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[134]
-#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[135]
-#define SWIGTYPE_p_svn_prop_kind swig_types[136]
-#define SWIGTYPE_p_svn_ra_callbacks2_t swig_types[137]
-#define SWIGTYPE_p_svn_ra_callbacks_t swig_types[138]
-#define SWIGTYPE_p_svn_ra_plugin_t swig_types[139]
-#define SWIGTYPE_p_svn_ra_reporter2_t swig_types[140]
-#define SWIGTYPE_p_svn_ra_reporter3_t swig_types[141]
-#define SWIGTYPE_p_svn_ra_reporter_t swig_types[142]
-#define SWIGTYPE_p_svn_ra_session_t swig_types[143]
-#define SWIGTYPE_p_svn_stream_mark_t swig_types[144]
-#define SWIGTYPE_p_svn_stream_t swig_types[145]
-#define SWIGTYPE_p_svn_string_t swig_types[146]
-#define SWIGTYPE_p_svn_stringbuf_t swig_types[147]
-#define SWIGTYPE_p_svn_tristate_t swig_types[148]
-#define SWIGTYPE_p_svn_txdelta_op_t swig_types[149]
-#define SWIGTYPE_p_svn_txdelta_stream_t swig_types[150]
-#define SWIGTYPE_p_svn_txdelta_window_t swig_types[151]
-#define SWIGTYPE_p_svn_version_checklist_t swig_types[152]
-#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[153]
-#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[154]
-#define SWIGTYPE_p_svn_version_extended_t swig_types[155]
-#define SWIGTYPE_p_svn_version_t swig_types[156]
-#define SWIGTYPE_p_svn_wc_external_item2_t swig_types[157]
-#define SWIGTYPE_p_unsigned_long swig_types[158]
-#define SWIGTYPE_p_void swig_types[159]
-static swig_type_info *swig_types[161];
-static swig_module_info swig_module = {swig_types, 160, 0, 0, 0, 0};
+#define SWIGTYPE_p_svn_opt_subcommand_desc3_t swig_types[134]
+#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[135]
+#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[136]
+#define SWIGTYPE_p_svn_prop_kind swig_types[137]
+#define SWIGTYPE_p_svn_ra_callbacks2_t swig_types[138]
+#define SWIGTYPE_p_svn_ra_callbacks_t swig_types[139]
+#define SWIGTYPE_p_svn_ra_plugin_t swig_types[140]
+#define SWIGTYPE_p_svn_ra_reporter2_t swig_types[141]
+#define SWIGTYPE_p_svn_ra_reporter3_t swig_types[142]
+#define SWIGTYPE_p_svn_ra_reporter_t swig_types[143]
+#define SWIGTYPE_p_svn_ra_session_t swig_types[144]
+#define SWIGTYPE_p_svn_stream_mark_t swig_types[145]
+#define SWIGTYPE_p_svn_stream_t swig_types[146]
+#define SWIGTYPE_p_svn_string_t swig_types[147]
+#define SWIGTYPE_p_svn_stringbuf_t swig_types[148]
+#define SWIGTYPE_p_svn_tristate_t swig_types[149]
+#define SWIGTYPE_p_svn_txdelta_op_t swig_types[150]
+#define SWIGTYPE_p_svn_txdelta_stream_t swig_types[151]
+#define SWIGTYPE_p_svn_txdelta_window_t swig_types[152]
+#define SWIGTYPE_p_svn_version_checklist_t swig_types[153]
+#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[154]
+#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[155]
+#define SWIGTYPE_p_svn_version_extended_t swig_types[156]
+#define SWIGTYPE_p_svn_version_t swig_types[157]
+#define SWIGTYPE_p_svn_wc_external_item2_t swig_types[158]
+#define SWIGTYPE_p_unsigned_long swig_types[159]
+#define SWIGTYPE_p_void swig_types[160]
+static swig_type_info *swig_types[162];
+static swig_module_info swig_module = {swig_types, 161, 0, 0, 0, 0};
#define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
#define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
@@ -18260,6 +18261,7 @@ static swig_type_info _swigt__p_svn_opt_revision_range_t = {"_p_svn_opt_revision
static swig_type_info _swigt__p_svn_opt_revision_t = {"_p_svn_opt_revision_t", "struct svn_opt_revision_t *|svn_opt_revision_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_revision_value_t = {"_p_svn_opt_revision_value_t", "union svn_opt_revision_value_t *|svn_opt_revision_value_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc2_t = {"_p_svn_opt_subcommand_desc2_t", "struct svn_opt_subcommand_desc2_t *|svn_opt_subcommand_desc2_t *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_svn_opt_subcommand_desc3_t = {"_p_svn_opt_subcommand_desc3_t", "struct svn_opt_subcommand_desc3_t *|svn_opt_subcommand_desc3_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc_t = {"_p_svn_opt_subcommand_desc_t", "struct svn_opt_subcommand_desc_t *|svn_opt_subcommand_desc_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_prop_inherited_item_t = {"_p_svn_prop_inherited_item_t", "struct svn_prop_inherited_item_t *|svn_prop_inherited_item_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_prop_kind = {"_p_svn_prop_kind", "svn_prop_kind_t *|enum svn_prop_kind *", 0, 0, (void*)0, 0};
@@ -18422,6 +18424,7 @@ static swig_type_info *swig_type_initial[] = {
&_swigt__p_svn_opt_revision_t,
&_swigt__p_svn_opt_revision_value_t,
&_swigt__p_svn_opt_subcommand_desc2_t,
+ &_swigt__p_svn_opt_subcommand_desc3_t,
&_swigt__p_svn_opt_subcommand_desc_t,
&_swigt__p_svn_prop_inherited_item_t,
&_swigt__p_svn_prop_kind,
@@ -18584,6 +18587,7 @@ static swig_cast_info _swigc__p_svn_opt_revision_range_t[] = { {&_swigt__p_svn_
static swig_cast_info _swigc__p_svn_opt_revision_t[] = { {&_swigt__p_svn_opt_revision_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_revision_value_t[] = { {&_swigt__p_svn_opt_revision_value_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc2_t[] = { {&_swigt__p_svn_opt_subcommand_desc2_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_svn_opt_subcommand_desc3_t[] = { {&_swigt__p_svn_opt_subcommand_desc3_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc_t[] = { {&_swigt__p_svn_opt_subcommand_desc_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_prop_inherited_item_t[] = { {&_swigt__p_svn_prop_inherited_item_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_prop_kind[] = { {&_swigt__p_svn_prop_kind, 0, 0, 0},{0, 0, 0, 0}};
@@ -18746,6 +18750,7 @@ static swig_cast_info *swig_cast_initial[] = {
_swigc__p_svn_opt_revision_t,
_swigc__p_svn_opt_revision_value_t,
_swigc__p_svn_opt_subcommand_desc2_t,
+ _swigc__p_svn_opt_subcommand_desc3_t,
_swigc__p_svn_opt_subcommand_desc_t,
_swigc__p_svn_prop_inherited_item_t,
_swigc__p_svn_prop_kind,
diff --git a/subversion/bindings/swig/python/svn_repos.c b/subversion/bindings/swig/python/svn_repos.c
index dc15b89..b5f31fb 100644
--- a/subversion/bindings/swig/python/svn_repos.c
+++ b/subversion/bindings/swig/python/svn_repos.c
@@ -3106,38 +3106,39 @@ SWIG_Python_NonDynamicSetAttr(PyObject *obj, PyObject *name, PyObject *value) {
#define SWIGTYPE_p_svn_opt_revision_t swig_types[120]
#define SWIGTYPE_p_svn_opt_revision_value_t swig_types[121]
#define SWIGTYPE_p_svn_opt_subcommand_desc2_t swig_types[122]
-#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[123]
-#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[124]
-#define SWIGTYPE_p_svn_prop_kind swig_types[125]
-#define SWIGTYPE_p_svn_repos_authz_access_t swig_types[126]
-#define SWIGTYPE_p_svn_repos_log_entry_t swig_types[127]
-#define SWIGTYPE_p_svn_repos_node_t swig_types[128]
-#define SWIGTYPE_p_svn_repos_notify_action_t swig_types[129]
-#define SWIGTYPE_p_svn_repos_notify_t swig_types[130]
-#define SWIGTYPE_p_svn_repos_notify_warning_t swig_types[131]
-#define SWIGTYPE_p_svn_repos_parse_fns2_t swig_types[132]
-#define SWIGTYPE_p_svn_repos_parse_fns3_t swig_types[133]
-#define SWIGTYPE_p_svn_repos_parse_fns_t swig_types[134]
-#define SWIGTYPE_p_svn_repos_revision_access_level_t swig_types[135]
-#define SWIGTYPE_p_svn_repos_t swig_types[136]
-#define SWIGTYPE_p_svn_stream_mark_t swig_types[137]
-#define SWIGTYPE_p_svn_stream_t swig_types[138]
-#define SWIGTYPE_p_svn_string_t swig_types[139]
-#define SWIGTYPE_p_svn_stringbuf_t swig_types[140]
-#define SWIGTYPE_p_svn_tristate_t swig_types[141]
-#define SWIGTYPE_p_svn_txdelta_op_t swig_types[142]
-#define SWIGTYPE_p_svn_txdelta_stream_t swig_types[143]
-#define SWIGTYPE_p_svn_txdelta_window_t swig_types[144]
-#define SWIGTYPE_p_svn_version_checklist_t swig_types[145]
-#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[146]
-#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[147]
-#define SWIGTYPE_p_svn_version_extended_t swig_types[148]
-#define SWIGTYPE_p_svn_version_t swig_types[149]
-#define SWIGTYPE_p_svn_wc_external_item2_t swig_types[150]
-#define SWIGTYPE_p_unsigned_long swig_types[151]
-#define SWIGTYPE_p_void swig_types[152]
-static swig_type_info *swig_types[154];
-static swig_module_info swig_module = {swig_types, 153, 0, 0, 0, 0};
+#define SWIGTYPE_p_svn_opt_subcommand_desc3_t swig_types[123]
+#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[124]
+#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[125]
+#define SWIGTYPE_p_svn_prop_kind swig_types[126]
+#define SWIGTYPE_p_svn_repos_authz_access_t swig_types[127]
+#define SWIGTYPE_p_svn_repos_log_entry_t swig_types[128]
+#define SWIGTYPE_p_svn_repos_node_t swig_types[129]
+#define SWIGTYPE_p_svn_repos_notify_action_t swig_types[130]
+#define SWIGTYPE_p_svn_repos_notify_t swig_types[131]
+#define SWIGTYPE_p_svn_repos_notify_warning_t swig_types[132]
+#define SWIGTYPE_p_svn_repos_parse_fns2_t swig_types[133]
+#define SWIGTYPE_p_svn_repos_parse_fns3_t swig_types[134]
+#define SWIGTYPE_p_svn_repos_parse_fns_t swig_types[135]
+#define SWIGTYPE_p_svn_repos_revision_access_level_t swig_types[136]
+#define SWIGTYPE_p_svn_repos_t swig_types[137]
+#define SWIGTYPE_p_svn_stream_mark_t swig_types[138]
+#define SWIGTYPE_p_svn_stream_t swig_types[139]
+#define SWIGTYPE_p_svn_string_t swig_types[140]
+#define SWIGTYPE_p_svn_stringbuf_t swig_types[141]
+#define SWIGTYPE_p_svn_tristate_t swig_types[142]
+#define SWIGTYPE_p_svn_txdelta_op_t swig_types[143]
+#define SWIGTYPE_p_svn_txdelta_stream_t swig_types[144]
+#define SWIGTYPE_p_svn_txdelta_window_t swig_types[145]
+#define SWIGTYPE_p_svn_version_checklist_t swig_types[146]
+#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[147]
+#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[148]
+#define SWIGTYPE_p_svn_version_extended_t swig_types[149]
+#define SWIGTYPE_p_svn_version_t swig_types[150]
+#define SWIGTYPE_p_svn_wc_external_item2_t swig_types[151]
+#define SWIGTYPE_p_unsigned_long swig_types[152]
+#define SWIGTYPE_p_void swig_types[153]
+static swig_type_info *swig_types[155];
+static swig_module_info swig_module = {swig_types, 154, 0, 0, 0, 0};
#define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
#define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
@@ -6114,7 +6115,7 @@ SWIGINTERN PyObject *_wrap_svn_repos_freeze(PyObject *SWIGUNUSEDPARM(self), PyOb
{
svn_swig_py_release_py_lock();
- result = (svn_error_t *)svn_repos_freeze(arg1,arg2,arg3,arg4);
+ result = (svn_error_t *)svn_repos_freeze((apr_array_header_t const *)arg1,arg2,arg3,arg4);
svn_swig_py_acquire_py_lock();
@@ -21973,6 +21974,7 @@ static swig_type_info _swigt__p_svn_opt_revision_range_t = {"_p_svn_opt_revision
static swig_type_info _swigt__p_svn_opt_revision_t = {"_p_svn_opt_revision_t", "struct svn_opt_revision_t *|svn_opt_revision_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_revision_value_t = {"_p_svn_opt_revision_value_t", "union svn_opt_revision_value_t *|svn_opt_revision_value_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc2_t = {"_p_svn_opt_subcommand_desc2_t", "struct svn_opt_subcommand_desc2_t *|svn_opt_subcommand_desc2_t *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_svn_opt_subcommand_desc3_t = {"_p_svn_opt_subcommand_desc3_t", "struct svn_opt_subcommand_desc3_t *|svn_opt_subcommand_desc3_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc_t = {"_p_svn_opt_subcommand_desc_t", "struct svn_opt_subcommand_desc_t *|svn_opt_subcommand_desc_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_prop_inherited_item_t = {"_p_svn_prop_inherited_item_t", "struct svn_prop_inherited_item_t *|svn_prop_inherited_item_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_prop_kind = {"_p_svn_prop_kind", "svn_prop_kind_t *|enum svn_prop_kind *", 0, 0, (void*)0, 0};
@@ -22128,6 +22130,7 @@ static swig_type_info *swig_type_initial[] = {
&_swigt__p_svn_opt_revision_t,
&_swigt__p_svn_opt_revision_value_t,
&_swigt__p_svn_opt_subcommand_desc2_t,
+ &_swigt__p_svn_opt_subcommand_desc3_t,
&_swigt__p_svn_opt_subcommand_desc_t,
&_swigt__p_svn_prop_inherited_item_t,
&_swigt__p_svn_prop_kind,
@@ -22283,6 +22286,7 @@ static swig_cast_info _swigc__p_svn_opt_revision_range_t[] = { {&_swigt__p_svn_
static swig_cast_info _swigc__p_svn_opt_revision_t[] = { {&_swigt__p_svn_opt_revision_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_revision_value_t[] = { {&_swigt__p_svn_opt_revision_value_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc2_t[] = { {&_swigt__p_svn_opt_subcommand_desc2_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_svn_opt_subcommand_desc3_t[] = { {&_swigt__p_svn_opt_subcommand_desc3_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc_t[] = { {&_swigt__p_svn_opt_subcommand_desc_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_prop_inherited_item_t[] = { {&_swigt__p_svn_prop_inherited_item_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_prop_kind[] = { {&_swigt__p_svn_prop_kind, 0, 0, 0},{0, 0, 0, 0}};
@@ -22438,6 +22442,7 @@ static swig_cast_info *swig_cast_initial[] = {
_swigc__p_svn_opt_revision_t,
_swigc__p_svn_opt_revision_value_t,
_swigc__p_svn_opt_subcommand_desc2_t,
+ _swigc__p_svn_opt_subcommand_desc3_t,
_swigc__p_svn_opt_subcommand_desc_t,
_swigc__p_svn_prop_inherited_item_t,
_swigc__p_svn_prop_kind,
diff --git a/subversion/bindings/swig/python/svn_wc.c b/subversion/bindings/swig/python/svn_wc.c
index 3eadf73..a3551e8 100644
--- a/subversion/bindings/swig/python/svn_wc.c
+++ b/subversion/bindings/swig/python/svn_wc.c
@@ -3111,67 +3111,68 @@ SWIG_Python_NonDynamicSetAttr(PyObject *obj, PyObject *name, PyObject *value) {
#define SWIGTYPE_p_svn_opt_revision_t swig_types[125]
#define SWIGTYPE_p_svn_opt_revision_value_t swig_types[126]
#define SWIGTYPE_p_svn_opt_subcommand_desc2_t swig_types[127]
-#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[128]
-#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[129]
-#define SWIGTYPE_p_svn_prop_kind swig_types[130]
-#define SWIGTYPE_p_svn_ra_callbacks2_t swig_types[131]
-#define SWIGTYPE_p_svn_ra_callbacks_t swig_types[132]
-#define SWIGTYPE_p_svn_ra_plugin_t swig_types[133]
-#define SWIGTYPE_p_svn_ra_reporter2_t swig_types[134]
-#define SWIGTYPE_p_svn_ra_reporter3_t swig_types[135]
-#define SWIGTYPE_p_svn_ra_reporter_t swig_types[136]
-#define SWIGTYPE_p_svn_ra_session_t swig_types[137]
-#define SWIGTYPE_p_svn_stream_mark_t swig_types[138]
-#define SWIGTYPE_p_svn_stream_t swig_types[139]
-#define SWIGTYPE_p_svn_string_t swig_types[140]
-#define SWIGTYPE_p_svn_stringbuf_t swig_types[141]
-#define SWIGTYPE_p_svn_tristate_t swig_types[142]
-#define SWIGTYPE_p_svn_txdelta_op_t swig_types[143]
-#define SWIGTYPE_p_svn_txdelta_stream_t swig_types[144]
-#define SWIGTYPE_p_svn_txdelta_window_t swig_types[145]
-#define SWIGTYPE_p_svn_version_checklist_t swig_types[146]
-#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[147]
-#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[148]
-#define SWIGTYPE_p_svn_version_extended_t swig_types[149]
-#define SWIGTYPE_p_svn_version_t swig_types[150]
-#define SWIGTYPE_p_svn_wc_adm_access_t swig_types[151]
-#define SWIGTYPE_p_svn_wc_committed_queue_t swig_types[152]
-#define SWIGTYPE_p_svn_wc_conflict_action_t swig_types[153]
-#define SWIGTYPE_p_svn_wc_conflict_choice_t swig_types[154]
-#define SWIGTYPE_p_svn_wc_conflict_description2_t swig_types[155]
-#define SWIGTYPE_p_svn_wc_conflict_description_t swig_types[156]
-#define SWIGTYPE_p_svn_wc_conflict_kind_t swig_types[157]
-#define SWIGTYPE_p_svn_wc_conflict_reason_t swig_types[158]
-#define SWIGTYPE_p_svn_wc_conflict_result_t swig_types[159]
-#define SWIGTYPE_p_svn_wc_conflict_version_t swig_types[160]
-#define SWIGTYPE_p_svn_wc_context_t swig_types[161]
-#define SWIGTYPE_p_svn_wc_diff_callbacks2_t swig_types[162]
-#define SWIGTYPE_p_svn_wc_diff_callbacks3_t swig_types[163]
-#define SWIGTYPE_p_svn_wc_diff_callbacks4_t swig_types[164]
-#define SWIGTYPE_p_svn_wc_diff_callbacks_t swig_types[165]
-#define SWIGTYPE_p_svn_wc_entry_callbacks2_t swig_types[166]
-#define SWIGTYPE_p_svn_wc_entry_callbacks_t swig_types[167]
-#define SWIGTYPE_p_svn_wc_entry_t swig_types[168]
-#define SWIGTYPE_p_svn_wc_external_item2_t swig_types[169]
-#define SWIGTYPE_p_svn_wc_external_item_t swig_types[170]
-#define SWIGTYPE_p_svn_wc_info_t swig_types[171]
-#define SWIGTYPE_p_svn_wc_merge_outcome_t swig_types[172]
-#define SWIGTYPE_p_svn_wc_notify_action_t swig_types[173]
-#define SWIGTYPE_p_svn_wc_notify_lock_state_t swig_types[174]
-#define SWIGTYPE_p_svn_wc_notify_state_t swig_types[175]
-#define SWIGTYPE_p_svn_wc_notify_t swig_types[176]
-#define SWIGTYPE_p_svn_wc_operation_t swig_types[177]
-#define SWIGTYPE_p_svn_wc_revision_status_t swig_types[178]
-#define SWIGTYPE_p_svn_wc_schedule_t swig_types[179]
-#define SWIGTYPE_p_svn_wc_status2_t swig_types[180]
-#define SWIGTYPE_p_svn_wc_status3_t swig_types[181]
-#define SWIGTYPE_p_svn_wc_status_t swig_types[182]
-#define SWIGTYPE_p_svn_wc_traversal_info_t swig_types[183]
-#define SWIGTYPE_p_unsigned_char swig_types[184]
-#define SWIGTYPE_p_unsigned_long swig_types[185]
-#define SWIGTYPE_p_void swig_types[186]
-static swig_type_info *swig_types[188];
-static swig_module_info swig_module = {swig_types, 187, 0, 0, 0, 0};
+#define SWIGTYPE_p_svn_opt_subcommand_desc3_t swig_types[128]
+#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[129]
+#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[130]
+#define SWIGTYPE_p_svn_prop_kind swig_types[131]
+#define SWIGTYPE_p_svn_ra_callbacks2_t swig_types[132]
+#define SWIGTYPE_p_svn_ra_callbacks_t swig_types[133]
+#define SWIGTYPE_p_svn_ra_plugin_t swig_types[134]
+#define SWIGTYPE_p_svn_ra_reporter2_t swig_types[135]
+#define SWIGTYPE_p_svn_ra_reporter3_t swig_types[136]
+#define SWIGTYPE_p_svn_ra_reporter_t swig_types[137]
+#define SWIGTYPE_p_svn_ra_session_t swig_types[138]
+#define SWIGTYPE_p_svn_stream_mark_t swig_types[139]
+#define SWIGTYPE_p_svn_stream_t swig_types[140]
+#define SWIGTYPE_p_svn_string_t swig_types[141]
+#define SWIGTYPE_p_svn_stringbuf_t swig_types[142]
+#define SWIGTYPE_p_svn_tristate_t swig_types[143]
+#define SWIGTYPE_p_svn_txdelta_op_t swig_types[144]
+#define SWIGTYPE_p_svn_txdelta_stream_t swig_types[145]
+#define SWIGTYPE_p_svn_txdelta_window_t swig_types[146]
+#define SWIGTYPE_p_svn_version_checklist_t swig_types[147]
+#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[148]
+#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[149]
+#define SWIGTYPE_p_svn_version_extended_t swig_types[150]
+#define SWIGTYPE_p_svn_version_t swig_types[151]
+#define SWIGTYPE_p_svn_wc_adm_access_t swig_types[152]
+#define SWIGTYPE_p_svn_wc_committed_queue_t swig_types[153]
+#define SWIGTYPE_p_svn_wc_conflict_action_t swig_types[154]
+#define SWIGTYPE_p_svn_wc_conflict_choice_t swig_types[155]
+#define SWIGTYPE_p_svn_wc_conflict_description2_t swig_types[156]
+#define SWIGTYPE_p_svn_wc_conflict_description_t swig_types[157]
+#define SWIGTYPE_p_svn_wc_conflict_kind_t swig_types[158]
+#define SWIGTYPE_p_svn_wc_conflict_reason_t swig_types[159]
+#define SWIGTYPE_p_svn_wc_conflict_result_t swig_types[160]
+#define SWIGTYPE_p_svn_wc_conflict_version_t swig_types[161]
+#define SWIGTYPE_p_svn_wc_context_t swig_types[162]
+#define SWIGTYPE_p_svn_wc_diff_callbacks2_t swig_types[163]
+#define SWIGTYPE_p_svn_wc_diff_callbacks3_t swig_types[164]
+#define SWIGTYPE_p_svn_wc_diff_callbacks4_t swig_types[165]
+#define SWIGTYPE_p_svn_wc_diff_callbacks_t swig_types[166]
+#define SWIGTYPE_p_svn_wc_entry_callbacks2_t swig_types[167]
+#define SWIGTYPE_p_svn_wc_entry_callbacks_t swig_types[168]
+#define SWIGTYPE_p_svn_wc_entry_t swig_types[169]
+#define SWIGTYPE_p_svn_wc_external_item2_t swig_types[170]
+#define SWIGTYPE_p_svn_wc_external_item_t swig_types[171]
+#define SWIGTYPE_p_svn_wc_info_t swig_types[172]
+#define SWIGTYPE_p_svn_wc_merge_outcome_t swig_types[173]
+#define SWIGTYPE_p_svn_wc_notify_action_t swig_types[174]
+#define SWIGTYPE_p_svn_wc_notify_lock_state_t swig_types[175]
+#define SWIGTYPE_p_svn_wc_notify_state_t swig_types[176]
+#define SWIGTYPE_p_svn_wc_notify_t swig_types[177]
+#define SWIGTYPE_p_svn_wc_operation_t swig_types[178]
+#define SWIGTYPE_p_svn_wc_revision_status_t swig_types[179]
+#define SWIGTYPE_p_svn_wc_schedule_t swig_types[180]
+#define SWIGTYPE_p_svn_wc_status2_t swig_types[181]
+#define SWIGTYPE_p_svn_wc_status3_t swig_types[182]
+#define SWIGTYPE_p_svn_wc_status_t swig_types[183]
+#define SWIGTYPE_p_svn_wc_traversal_info_t swig_types[184]
+#define SWIGTYPE_p_unsigned_char swig_types[185]
+#define SWIGTYPE_p_unsigned_long swig_types[186]
+#define SWIGTYPE_p_void swig_types[187]
+static swig_type_info *swig_types[189];
+static swig_module_info swig_module = {swig_types, 188, 0, 0, 0, 0};
#define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
#define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
@@ -30988,6 +30989,129 @@ fail:
}
+SWIGINTERN PyObject *_wrap_svn_wc_revert6(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+ PyObject *resultobj = 0;
+ svn_wc_context_t *arg1 = (svn_wc_context_t *) 0 ;
+ char *arg2 = (char *) 0 ;
+ svn_depth_t arg3 ;
+ svn_boolean_t arg4 ;
+ apr_array_header_t *arg5 = (apr_array_header_t *) 0 ;
+ svn_boolean_t arg6 ;
+ svn_boolean_t arg7 ;
+ svn_boolean_t arg8 ;
+ svn_cancel_func_t arg9 = (svn_cancel_func_t) 0 ;
+ void *arg10 = (void *) 0 ;
+ svn_wc_notify_func2_t arg11 = (svn_wc_notify_func2_t) 0 ;
+ void *arg12 = (void *) 0 ;
+ apr_pool_t *arg13 = (apr_pool_t *) 0 ;
+ apr_pool_t *_global_pool = NULL ;
+ PyObject *_global_py_pool = NULL ;
+ PyObject * obj0 = 0 ;
+ PyObject * obj2 = 0 ;
+ PyObject * obj3 = 0 ;
+ PyObject * obj4 = 0 ;
+ PyObject * obj5 = 0 ;
+ PyObject * obj6 = 0 ;
+ PyObject * obj7 = 0 ;
+ PyObject * obj8 = 0 ;
+ PyObject * obj9 = 0 ;
+ PyObject * obj10 = 0 ;
+ svn_error_t *result = 0 ;
+
+ if (svn_swig_py_get_pool_arg(args, SWIGTYPE_p_apr_pool_t,
+ &_global_py_pool, &_global_pool))
+ SWIG_fail;
+ arg13 = _global_pool;
+ if (!PyArg_ParseTuple(args,(char *)"OsOOOOOOOO|O:svn_wc_revert6",&obj0,&arg2,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7,&obj8,&obj9,&obj10)) SWIG_fail;
+ {
+ arg1 = (svn_wc_context_t *)svn_swig_py_must_get_ptr(obj0, SWIGTYPE_p_svn_wc_context_t, svn_argnum_obj0);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg3 = (svn_depth_t)SWIG_As_long (obj2);
+ if (SWIG_arg_fail(svn_argnum_obj2)) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg4 = (svn_boolean_t)SWIG_As_long (obj3);
+ if (SWIG_arg_fail(svn_argnum_obj3)) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg5 = (apr_array_header_t *)svn_swig_py_must_get_ptr(obj4, SWIGTYPE_p_apr_array_header_t, svn_argnum_obj4);
+ if (PyErr_Occurred()) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg6 = (svn_boolean_t)SWIG_As_long (obj5);
+ if (SWIG_arg_fail(svn_argnum_obj5)) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg7 = (svn_boolean_t)SWIG_As_long (obj6);
+ if (SWIG_arg_fail(svn_argnum_obj6)) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg8 = (svn_boolean_t)SWIG_As_long (obj7);
+ if (SWIG_arg_fail(svn_argnum_obj7)) {
+ SWIG_fail;
+ }
+ }
+ {
+ arg9 = (svn_cancel_func_t) svn_swig_py_cancel_func;
+ arg10 = obj8;
+ }
+ {
+ arg11 = (svn_wc_notify_func2_t) svn_swig_py_notify_func2;
+ arg12 = obj9;
+ }
+ if (obj10) {
+ /* Verify that the user supplied a valid pool */
+ if (obj10 != Py_None && obj10 != _global_py_pool) {
+ SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj10);
+ SWIG_arg_fail(svn_argnum_obj10);
+ SWIG_fail;
+ }
+ }
+ {
+ svn_swig_py_release_py_lock();
+
+ result = (svn_error_t *)svn_wc_revert6(arg1,(char const *)arg2,arg3,arg4,(apr_array_header_t const *)arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13);
+
+ svn_swig_py_acquire_py_lock();
+
+ }
+ {
+ if (result != NULL) {
+ if (result->apr_err != SVN_ERR_SWIG_PY_EXCEPTION_SET)
+ svn_swig_py_svn_exception(result);
+ else
+ svn_error_clear(result);
+ SWIG_fail;
+ }
+ Py_INCREF(Py_None);
+ resultobj = Py_None;
+ }
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ return resultobj;
+fail:
+ {
+ Py_XDECREF(_global_py_pool);
+ }
+ return NULL;
+}
+
+
SWIGINTERN PyObject *_wrap_svn_wc_revert5(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
svn_wc_context_t *arg1 = (svn_wc_context_t *) 0 ;
@@ -39431,6 +39555,7 @@ static PyMethodDef SwigMethods[] = {
{ (char *)"svn_wc_relocate3", _wrap_svn_wc_relocate3, METH_VARARGS, (char *)"svn_wc_relocate3(char const * path, svn_wc_adm_access_t * adm_access, char const * arg3, char const * to, svn_boolean_t recurse, svn_wc_relocation_validator3_t validator, void * validator_baton, apr_pool_t pool) -> svn_error_t"},
{ (char *)"svn_wc_relocate2", _wrap_svn_wc_relocate2, METH_VARARGS, (char *)"svn_wc_relocate2(char const * path, svn_wc_adm_access_t * adm_access, char const * arg3, char const * to, svn_boolean_t recurse, svn_wc_relocation_validator2_t validator, void * validator_baton, apr_pool_t pool) -> svn_error_t"},
{ (char *)"svn_wc_relocate", _wrap_svn_wc_relocate, METH_VARARGS, (char *)"svn_wc_relocate(char const * path, svn_wc_adm_access_t * adm_access, char const * arg3, char const * to, svn_boolean_t recurse, svn_wc_relocation_validator_t validator, void * validator_baton, apr_pool_t pool) -> svn_error_t"},
+ { (char *)"svn_wc_revert6", _wrap_svn_wc_revert6, METH_VARARGS, (char *)"svn_wc_revert6(svn_wc_context_t * wc_ctx, char const * local_abspath, svn_depth_t depth, svn_boolean_t use_commit_times, apr_array_header_t changelist_filter, svn_boolean_t clear_changelists, svn_boolean_t metadata_only, svn_boolean_t added_keep_local, svn_cancel_func_t cancel_func, svn_wc_notify_func2_t notify_func, apr_pool_t scratch_pool) -> svn_error_t"},
{ (char *)"svn_wc_revert5", _wrap_svn_wc_revert5, METH_VARARGS, (char *)"svn_wc_revert5(svn_wc_context_t * wc_ctx, char const * local_abspath, svn_depth_t depth, svn_boolean_t use_commit_times, apr_array_header_t changelist_filter, svn_boolean_t clear_changelists, svn_boolean_t metadata_only, svn_cancel_func_t cancel_func, svn_wc_notify_func2_t notify_func, apr_pool_t scratch_pool) -> svn_error_t"},
{ (char *)"svn_wc_revert4", _wrap_svn_wc_revert4, METH_VARARGS, (char *)"svn_wc_revert4(svn_wc_context_t * wc_ctx, char const * local_abspath, svn_depth_t depth, svn_boolean_t use_commit_times, apr_array_header_t changelist_filter, svn_cancel_func_t cancel_func, svn_wc_notify_func2_t notify_func, apr_pool_t scratch_pool) -> svn_error_t"},
{ (char *)"svn_wc_revert3", _wrap_svn_wc_revert3, METH_VARARGS, (char *)"svn_wc_revert3(char const * path, svn_wc_adm_access_t * parent_access, svn_depth_t depth, svn_boolean_t use_commit_times, apr_array_header_t changelist_filter, svn_cancel_func_t cancel_func, svn_wc_notify_func2_t notify_func, apr_pool_t pool) -> svn_error_t"},
@@ -39683,6 +39808,7 @@ static swig_type_info _swigt__p_svn_opt_revision_range_t = {"_p_svn_opt_revision
static swig_type_info _swigt__p_svn_opt_revision_t = {"_p_svn_opt_revision_t", "struct svn_opt_revision_t *|svn_opt_revision_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_revision_value_t = {"_p_svn_opt_revision_value_t", "union svn_opt_revision_value_t *|svn_opt_revision_value_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc2_t = {"_p_svn_opt_subcommand_desc2_t", "struct svn_opt_subcommand_desc2_t *|svn_opt_subcommand_desc2_t *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_svn_opt_subcommand_desc3_t = {"_p_svn_opt_subcommand_desc3_t", "struct svn_opt_subcommand_desc3_t *|svn_opt_subcommand_desc3_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc_t = {"_p_svn_opt_subcommand_desc_t", "struct svn_opt_subcommand_desc_t *|svn_opt_subcommand_desc_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_prop_inherited_item_t = {"_p_svn_prop_inherited_item_t", "struct svn_prop_inherited_item_t *|svn_prop_inherited_item_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_prop_kind = {"_p_svn_prop_kind", "svn_prop_kind_t *|enum svn_prop_kind *", 0, 0, (void*)0, 0};
@@ -39872,6 +39998,7 @@ static swig_type_info *swig_type_initial[] = {
&_swigt__p_svn_opt_revision_t,
&_swigt__p_svn_opt_revision_value_t,
&_swigt__p_svn_opt_subcommand_desc2_t,
+ &_swigt__p_svn_opt_subcommand_desc3_t,
&_swigt__p_svn_opt_subcommand_desc_t,
&_swigt__p_svn_prop_inherited_item_t,
&_swigt__p_svn_prop_kind,
@@ -40061,6 +40188,7 @@ static swig_cast_info _swigc__p_svn_opt_revision_range_t[] = { {&_swigt__p_svn_
static swig_cast_info _swigc__p_svn_opt_revision_t[] = { {&_swigt__p_svn_opt_revision_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_revision_value_t[] = { {&_swigt__p_svn_opt_revision_value_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc2_t[] = { {&_swigt__p_svn_opt_subcommand_desc2_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_svn_opt_subcommand_desc3_t[] = { {&_swigt__p_svn_opt_subcommand_desc3_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc_t[] = { {&_swigt__p_svn_opt_subcommand_desc_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_prop_inherited_item_t[] = { {&_swigt__p_svn_prop_inherited_item_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_prop_kind[] = { {&_swigt__p_svn_prop_kind, 0, 0, 0},{0, 0, 0, 0}};
@@ -40250,6 +40378,7 @@ static swig_cast_info *swig_cast_initial[] = {
_swigc__p_svn_opt_revision_t,
_swigc__p_svn_opt_revision_value_t,
_swigc__p_svn_opt_subcommand_desc2_t,
+ _swigc__p_svn_opt_subcommand_desc3_t,
_swigc__p_svn_opt_subcommand_desc_t,
_swigc__p_svn_prop_inherited_item_t,
_swigc__p_svn_prop_kind,
diff --git a/subversion/bindings/swig/python/tests/fs.py b/subversion/bindings/swig/python/tests/fs.py
new file mode 100644
index 0000000..b1e2538
--- /dev/null
+++ b/subversion/bindings/swig/python/tests/fs.py
@@ -0,0 +1,124 @@
+#
+# -*- coding: utf-8 -*-
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+#
+import os, unittest, sys, errno
+from tempfile import mkstemp
+from subprocess import Popen, PIPE
+try:
+ # Python >=3.0
+ from urllib.parse import urljoin
+except ImportError:
+ # Python <3.0
+ from urlparse import urljoin
+
+from svn import core, repos, fs, client
+import utils
+
+class SubversionFSTestCase(unittest.TestCase):
+ """Test cases for the Subversion FS layer"""
+
+ def log_message_func(self, items, pool):
+ """ Simple log message provider for unit tests. """
+ return "Test unicode log message"
+
+ def setUp(self):
+ """Load a Subversion repository"""
+ self.temper = utils.Temper()
+ (self.repos, self.repos_path, self.repos_uri) = self.temper.alloc_known_repo(
+ 'trac/versioncontrol/tests/svnrepos.dump', suffix='-repository')
+ self.fs = repos.fs(self.repos)
+ self.rev = fs.youngest_rev(self.fs)
+ self.tmpfile = None
+ self.unistr = u'⊙_ʘ'
+ tmpfd, self.tmpfile = mkstemp()
+
+ tmpfp = os.fdopen(tmpfd, "wb")
+
+ # Use a unicode file to ensure proper non-ascii handling.
+ tmpfp.write(self.unistr.encode('utf8'))
+
+ tmpfp.close()
+
+ clientctx = client.svn_client_create_context()
+ clientctx.log_msg_func3 = client.svn_swig_py_get_commit_log_func
+ clientctx.log_msg_baton3 = self.log_message_func
+
+ providers = [
+ client.svn_client_get_simple_provider(),
+ client.svn_client_get_username_provider(),
+ ]
+
+ clientctx.auth_baton = core.svn_auth_open(providers)
+
+ commitinfo = client.import2(self.tmpfile,
+ urljoin(self.repos_uri +"/", "trunk/UniTest.txt"),
+ True, True,
+ clientctx)
+
+ self.commitedrev = commitinfo.revision
+
+ def tearDown(self):
+ self.fs = None
+ self.repos = None
+ self.temper.cleanup()
+
+ if self.tmpfile is not None:
+ os.remove(self.tmpfile)
+
+ def test_diff_repos_paths_internal(self):
+ """Test diffing of a repository path using the internal diff."""
+
+ # Test standard internal diff
+ fdiff = fs.FileDiff(fs.revision_root(self.fs, self.commitedrev), "/trunk/UniTest.txt",
+ None, None, diffoptions=None)
+
+ diffp = fdiff.get_pipe()
+ diffoutput = diffp.read().decode('utf8')
+
+ self.assertTrue(diffoutput.find(u'-' + self.unistr) > 0)
+
+ def test_diff_repos_paths_external(self):
+ """Test diffing of a repository path using an external diff (if available)."""
+
+ # Test if this environment has the diff command, if not then skip the test
+ try:
+ diffout, differr = Popen(["diff"], stdin=PIPE, stderr=PIPE).communicate()
+
+ except OSError as err:
+ if err.errno == errno.ENOENT:
+ self.skipTest("'diff' command not present")
+ else:
+ raise err
+
+ fdiff = fs.FileDiff(fs.revision_root(self.fs, self.commitedrev), "/trunk/UniTest.txt",
+ None, None, diffoptions=[])
+ diffp = fdiff.get_pipe()
+ diffoutput = diffp.read().decode('utf8')
+
+ self.assertTrue(diffoutput.find(u'< ' + self.unistr) > 0)
+
+def suite():
+ return unittest.defaultTestLoader.loadTestsFromTestCase(
+ SubversionFSTestCase)
+
+if __name__ == '__main__':
+ runner = unittest.TextTestRunner()
+ runner.run(suite())
diff --git a/subversion/bindings/swig/python/tests/run_all.py b/subversion/bindings/swig/python/tests/run_all.py
index 32d9a00..acb0926 100644
--- a/subversion/bindings/swig/python/tests/run_all.py
+++ b/subversion/bindings/swig/python/tests/run_all.py
@@ -19,7 +19,7 @@
#
#
import unittest, setup_path
-import mergeinfo, core, client, delta, checksum, pool, ra, wc, repository, \
+import mergeinfo, core, client, delta, checksum, pool, fs, ra, wc, repository, \
auth, trac.versioncontrol.tests
from svn.core import svn_cache_config_get, svn_cache_config_set
@@ -37,6 +37,7 @@ def suite():
s.addTest(client.suite())
s.addTest(delta.suite())
s.addTest(pool.suite())
+ s.addTest(fs.suite())
s.addTest(ra.suite())
s.addTest(wc.suite())
s.addTest(repository.suite())
diff --git a/subversion/bindings/swig/python/wc.py b/subversion/bindings/swig/python/wc.py
index bd5f09c..e489805 100644
--- a/subversion/bindings/swig/python/wc.py
+++ b/subversion/bindings/swig/python/wc.py
@@ -2553,6 +2553,10 @@ def svn_wc_relocate(*args):
"""svn_wc_relocate(char const * path, svn_wc_adm_access_t * adm_access, char const * arg3, char const * to, svn_boolean_t recurse, svn_wc_relocation_validator_t validator, void * validator_baton, apr_pool_t pool) -> svn_error_t"""
return _wc.svn_wc_relocate(*args)
+def svn_wc_revert6(*args):
+ """svn_wc_revert6(svn_wc_context_t * wc_ctx, char const * local_abspath, svn_depth_t depth, svn_boolean_t use_commit_times, apr_array_header_t changelist_filter, svn_boolean_t clear_changelists, svn_boolean_t metadata_only, svn_boolean_t added_keep_local, svn_cancel_func_t cancel_func, svn_wc_notify_func2_t notify_func, apr_pool_t scratch_pool) -> svn_error_t"""
+ return _wc.svn_wc_revert6(*args)
+
def svn_wc_revert5(*args):
"""svn_wc_revert5(svn_wc_context_t * wc_ctx, char const * local_abspath, svn_depth_t depth, svn_boolean_t use_commit_times, apr_array_header_t changelist_filter, svn_boolean_t clear_changelists, svn_boolean_t metadata_only, svn_cancel_func_t cancel_func, svn_wc_notify_func2_t notify_func, apr_pool_t scratch_pool) -> svn_error_t"""
return _wc.svn_wc_revert5(*args)
diff --git a/subversion/bindings/swig/ruby/core.c b/subversion/bindings/swig/ruby/core.c
index 8afa65b..5a4d2a7 100644
--- a/subversion/bindings/swig/ruby/core.c
+++ b/subversion/bindings/swig/ruby/core.c
@@ -1936,28 +1936,30 @@ int SWIG_Ruby_arity( VALUE proc, int minimal )
#define SWIGTYPE_p_svn_opt_revision_value_t swig_types[130]
#define SWIGTYPE_p_svn_opt_subcommand_desc2_t swig_types[131]
#define SWIGTYPE_p_svn_opt_subcommand_desc2_t_desc_overrides swig_types[132]
-#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[133]
-#define SWIGTYPE_p_svn_patch_file_t swig_types[134]
-#define SWIGTYPE_p_svn_patch_t swig_types[135]
-#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[136]
-#define SWIGTYPE_p_svn_prop_kind swig_types[137]
-#define SWIGTYPE_p_svn_prop_patch_t swig_types[138]
-#define SWIGTYPE_p_svn_prop_t swig_types[139]
-#define SWIGTYPE_p_svn_stream_mark_t swig_types[140]
-#define SWIGTYPE_p_svn_stream_t swig_types[141]
-#define SWIGTYPE_p_svn_string_t swig_types[142]
-#define SWIGTYPE_p_svn_stringbuf_t swig_types[143]
-#define SWIGTYPE_p_svn_tristate_t swig_types[144]
-#define SWIGTYPE_p_svn_version_checklist_t swig_types[145]
-#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[146]
-#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[147]
-#define SWIGTYPE_p_svn_version_extended_t swig_types[148]
-#define SWIGTYPE_p_svn_version_t swig_types[149]
-#define SWIGTYPE_p_unsigned_char swig_types[150]
-#define SWIGTYPE_p_unsigned_long swig_types[151]
-#define SWIGTYPE_p_void swig_types[152]
-static swig_type_info *swig_types[154];
-static swig_module_info swig_module = {swig_types, 153, 0, 0, 0, 0};
+#define SWIGTYPE_p_svn_opt_subcommand_desc3_t swig_types[133]
+#define SWIGTYPE_p_svn_opt_subcommand_desc3_t_desc_overrides swig_types[134]
+#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[135]
+#define SWIGTYPE_p_svn_patch_file_t swig_types[136]
+#define SWIGTYPE_p_svn_patch_t swig_types[137]
+#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[138]
+#define SWIGTYPE_p_svn_prop_kind swig_types[139]
+#define SWIGTYPE_p_svn_prop_patch_t swig_types[140]
+#define SWIGTYPE_p_svn_prop_t swig_types[141]
+#define SWIGTYPE_p_svn_stream_mark_t swig_types[142]
+#define SWIGTYPE_p_svn_stream_t swig_types[143]
+#define SWIGTYPE_p_svn_string_t swig_types[144]
+#define SWIGTYPE_p_svn_stringbuf_t swig_types[145]
+#define SWIGTYPE_p_svn_tristate_t swig_types[146]
+#define SWIGTYPE_p_svn_version_checklist_t swig_types[147]
+#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[148]
+#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[149]
+#define SWIGTYPE_p_svn_version_extended_t swig_types[150]
+#define SWIGTYPE_p_svn_version_t swig_types[151]
+#define SWIGTYPE_p_unsigned_char swig_types[152]
+#define SWIGTYPE_p_unsigned_long swig_types[153]
+#define SWIGTYPE_p_void swig_types[154]
+static swig_type_info *swig_types[156];
+static swig_module_info swig_module = {swig_types, 155, 0, 0, 0, 0};
#define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
#define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
@@ -2321,6 +2323,10 @@ static const svn_version_t * svn_version_invoke_func(
typedef struct {
int optch; const char *desc;
+} svn_opt_subcommand_desc3_t_desc_overrides;
+
+typedef struct {
+ int optch; const char *desc;
} svn_opt_subcommand_desc2_t_desc_overrides;
@@ -10474,6 +10480,539 @@ fail:
}
+static swig_class SwigClassSvn_opt_subcommand_desc3_t;
+
+SWIGINTERN VALUE
+_wrap_svn_opt_subcommand_desc3_t_name_set(int argc, VALUE *argv, VALUE self) {
+ struct svn_opt_subcommand_desc3_t *arg1 = (struct svn_opt_subcommand_desc3_t *) 0 ;
+ char *arg2 = (char *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+
+ if ((argc < 1) || (argc > 1)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_opt_subcommand_desc3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct svn_opt_subcommand_desc3_t *","name", 1, self ));
+ }
+ arg1 = (struct svn_opt_subcommand_desc3_t *)(argp1);
+ res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","name", 2, argv[0] ));
+ }
+ arg2 = (char *)(buf2);
+ {
+ apr_size_t len = strlen(arg2) + 1;
+ char *copied;
+ if (arg1->name) free((char *)arg1->name);
+ copied = malloc(len);
+ memcpy(copied, arg2, len);
+ arg1->name = copied;
+ }
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ return Qnil;
+fail:
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_svn_opt_subcommand_desc3_t_name_get(int argc, VALUE *argv, VALUE self) {
+ struct svn_opt_subcommand_desc3_t *arg1 = (struct svn_opt_subcommand_desc3_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ char *result = 0 ;
+ VALUE vresult = Qnil;
+
+ if ((argc < 0) || (argc > 0)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_opt_subcommand_desc3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct svn_opt_subcommand_desc3_t *","name", 1, self ));
+ }
+ arg1 = (struct svn_opt_subcommand_desc3_t *)(argp1);
+ result = (char *) ((arg1)->name);
+ {
+ if (result) {
+ vresult = rb_str_new2(result);
+ } else {
+ vresult = Qnil;
+ }
+ }
+ return vresult;
+fail:
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_svn_opt_subcommand_desc3_t_cmd_func_set(int argc, VALUE *argv, VALUE self) {
+ struct svn_opt_subcommand_desc3_t *arg1 = (struct svn_opt_subcommand_desc3_t *) 0 ;
+ svn_opt_subcommand_t *arg2 = (svn_opt_subcommand_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+
+ if ((argc < 1) || (argc > 1)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_opt_subcommand_desc3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct svn_opt_subcommand_desc3_t *","cmd_func", 1, self ));
+ }
+ arg1 = (struct svn_opt_subcommand_desc3_t *)(argp1);
+ {
+ int res = SWIG_ConvertFunctionPtr(argv[0], (void**)(&arg2), SWIGTYPE_p_f_p_apr_getopt_t_p_void_p_apr_pool_t__p_svn_error_t);
+ if (!SWIG_IsOK(res)) {
+ SWIG_exception_fail(SWIG_ArgError(res), Ruby_Format_TypeError( "", "svn_opt_subcommand_t *","cmd_func", 2, argv[0] ));
+ }
+ }
+ if (arg1) (arg1)->cmd_func = arg2;
+ return Qnil;
+fail:
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_svn_opt_subcommand_desc3_t_cmd_func_get(int argc, VALUE *argv, VALUE self) {
+ struct svn_opt_subcommand_desc3_t *arg1 = (struct svn_opt_subcommand_desc3_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ svn_opt_subcommand_t *result = 0 ;
+ VALUE vresult = Qnil;
+
+ if ((argc < 0) || (argc > 0)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_opt_subcommand_desc3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct svn_opt_subcommand_desc3_t *","cmd_func", 1, self ));
+ }
+ arg1 = (struct svn_opt_subcommand_desc3_t *)(argp1);
+ result = (svn_opt_subcommand_t *) ((arg1)->cmd_func);
+ vresult = SWIG_NewFunctionPtrObj((void *)(result), SWIGTYPE_p_f_p_apr_getopt_t_p_void_p_apr_pool_t__p_svn_error_t);
+ return vresult;
+fail:
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_svn_opt_subcommand_desc3_t_aliases_set(int argc, VALUE *argv, VALUE self) {
+ struct svn_opt_subcommand_desc3_t *arg1 = (struct svn_opt_subcommand_desc3_t *) 0 ;
+ char **arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+
+ if ((argc < 1) || (argc > 1)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_opt_subcommand_desc3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct svn_opt_subcommand_desc3_t *","aliases", 1, self ));
+ }
+ arg1 = (struct svn_opt_subcommand_desc3_t *)(argp1);
+ res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_p_char, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *[3]","aliases", 2, argv[0] ));
+ }
+ arg2 = (char **)(argp2);
+ {
+ if (arg2) {
+ size_t ii = 0;
+ for (; ii < (size_t)3; ++ii) *(char const * *)&arg1->aliases[ii] = *((char const * *)arg2 + ii);
+ } else {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in variable '""aliases""' of type '""char const *[3]""'");
+ }
+ }
+ return Qnil;
+fail:
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_svn_opt_subcommand_desc3_t_aliases_get(int argc, VALUE *argv, VALUE self) {
+ struct svn_opt_subcommand_desc3_t *arg1 = (struct svn_opt_subcommand_desc3_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ char **result = 0 ;
+ VALUE vresult = Qnil;
+
+ if ((argc < 0) || (argc > 0)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_opt_subcommand_desc3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct svn_opt_subcommand_desc3_t *","aliases", 1, self ));
+ }
+ arg1 = (struct svn_opt_subcommand_desc3_t *)(argp1);
+ result = (char **)(char **) ((arg1)->aliases);
+ vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_p_char, 0 | 0 );
+ return vresult;
+fail:
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_svn_opt_subcommand_desc3_t_help_set(int argc, VALUE *argv, VALUE self) {
+ struct svn_opt_subcommand_desc3_t *arg1 = (struct svn_opt_subcommand_desc3_t *) 0 ;
+ char **arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+
+ if ((argc < 1) || (argc > 1)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_opt_subcommand_desc3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct svn_opt_subcommand_desc3_t *","help", 1, self ));
+ }
+ arg1 = (struct svn_opt_subcommand_desc3_t *)(argp1);
+ res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_p_char, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *[100]","help", 2, argv[0] ));
+ }
+ arg2 = (char **)(argp2);
+ {
+ if (arg2) {
+ size_t ii = 0;
+ for (; ii < (size_t)100; ++ii) *(char const * *)&arg1->help[ii] = *((char const * *)arg2 + ii);
+ } else {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in variable '""help""' of type '""char const *[100]""'");
+ }
+ }
+ return Qnil;
+fail:
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_svn_opt_subcommand_desc3_t_help_get(int argc, VALUE *argv, VALUE self) {
+ struct svn_opt_subcommand_desc3_t *arg1 = (struct svn_opt_subcommand_desc3_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ char **result = 0 ;
+ VALUE vresult = Qnil;
+
+ if ((argc < 0) || (argc > 0)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_opt_subcommand_desc3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct svn_opt_subcommand_desc3_t *","help", 1, self ));
+ }
+ arg1 = (struct svn_opt_subcommand_desc3_t *)(argp1);
+ result = (char **)(char **) ((arg1)->help);
+ vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_p_char, 0 | 0 );
+ return vresult;
+fail:
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_svn_opt_subcommand_desc3_t_valid_options_set(int argc, VALUE *argv, VALUE self) {
+ struct svn_opt_subcommand_desc3_t *arg1 = (struct svn_opt_subcommand_desc3_t *) 0 ;
+ int *arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+
+ if ((argc < 1) || (argc > 1)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_opt_subcommand_desc3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct svn_opt_subcommand_desc3_t *","valid_options", 1, self ));
+ }
+ arg1 = (struct svn_opt_subcommand_desc3_t *)(argp1);
+ res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_int, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "int [50]","valid_options", 2, argv[0] ));
+ }
+ arg2 = (int *)(argp2);
+ {
+ if (arg2) {
+ size_t ii = 0;
+ for (; ii < (size_t)50; ++ii) *(int *)&arg1->valid_options[ii] = *((int *)arg2 + ii);
+ } else {
+ SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in variable '""valid_options""' of type '""int [50]""'");
+ }
+ }
+ return Qnil;
+fail:
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_svn_opt_subcommand_desc3_t_valid_options_get(int argc, VALUE *argv, VALUE self) {
+ struct svn_opt_subcommand_desc3_t *arg1 = (struct svn_opt_subcommand_desc3_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int *result = 0 ;
+ VALUE vresult = Qnil;
+
+ if ((argc < 0) || (argc > 0)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_opt_subcommand_desc3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct svn_opt_subcommand_desc3_t *","valid_options", 1, self ));
+ }
+ arg1 = (struct svn_opt_subcommand_desc3_t *)(argp1);
+ result = (int *)(int *) ((arg1)->valid_options);
+ vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_int, 0 | 0 );
+ return vresult;
+fail:
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_svn_opt_subcommand_desc3_t_desc_overrides_get(int argc, VALUE *argv, VALUE self) {
+ struct svn_opt_subcommand_desc3_t *arg1 = (struct svn_opt_subcommand_desc3_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ svn_opt_subcommand_desc3_t_desc_overrides *result = 0 ;
+ VALUE vresult = Qnil;
+
+ if ((argc < 0) || (argc > 0)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_opt_subcommand_desc3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct svn_opt_subcommand_desc3_t *","desc_overrides", 1, self ));
+ }
+ arg1 = (struct svn_opt_subcommand_desc3_t *)(argp1);
+ result = (svn_opt_subcommand_desc3_t_desc_overrides *)(svn_opt_subcommand_desc3_t_desc_overrides *) ((arg1)->desc_overrides);
+ vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_svn_opt_subcommand_desc3_t_desc_overrides, 0 | 0 );
+ return vresult;
+fail:
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
+#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
+_wrap_svn_opt_subcommand_desc3_t_allocate(VALUE self)
+#else
+_wrap_svn_opt_subcommand_desc3_t_allocate(int argc, VALUE *argv, VALUE self)
+#endif
+{
+ VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_svn_opt_subcommand_desc3_t);
+#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
+ rb_obj_call_init(vresult, argc, argv);
+#endif
+ return vresult;
+}
+
+
+SWIGINTERN VALUE
+_wrap_new_svn_opt_subcommand_desc3_t(int argc, VALUE *argv, VALUE self) {
+ struct svn_opt_subcommand_desc3_t *result = 0 ;
+
+ if ((argc < 0) || (argc > 0)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+ }
+ {
+ result = (struct svn_opt_subcommand_desc3_t *)calloc(1, sizeof(struct svn_opt_subcommand_desc3_t));
+ DATA_PTR(self) = result;
+
+
+
+ }
+ return self;
+fail:
+ return Qnil;
+}
+
+
+SWIGINTERN void
+free_svn_opt_subcommand_desc3_t(void *self) {
+ struct svn_opt_subcommand_desc3_t *arg1 = (struct svn_opt_subcommand_desc3_t *)self;
+ free((char *) arg1);
+}
+
+static swig_class SwigClassSvn_opt_subcommand_desc3_t_desc_overrides;
+
+SWIGINTERN VALUE
+_wrap_svn_opt_subcommand_desc3_t_desc_overrides_optch_set(int argc, VALUE *argv, VALUE self) {
+ svn_opt_subcommand_desc3_t_desc_overrides *arg1 = (svn_opt_subcommand_desc3_t_desc_overrides *) 0 ;
+ int arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+
+ if ((argc < 1) || (argc > 1)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_opt_subcommand_desc3_t_desc_overrides, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "svn_opt_subcommand_desc3_t_desc_overrides *","optch", 1, self ));
+ }
+ arg1 = (svn_opt_subcommand_desc3_t_desc_overrides *)(argp1);
+ ecode2 = SWIG_AsVal_int(argv[0], &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","optch", 2, argv[0] ));
+ }
+ arg2 = (int)(val2);
+ if (arg1) (arg1)->optch = arg2;
+ return Qnil;
+fail:
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_svn_opt_subcommand_desc3_t_desc_overrides_optch_get(int argc, VALUE *argv, VALUE self) {
+ svn_opt_subcommand_desc3_t_desc_overrides *arg1 = (svn_opt_subcommand_desc3_t_desc_overrides *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int result;
+ VALUE vresult = Qnil;
+
+ if ((argc < 0) || (argc > 0)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_opt_subcommand_desc3_t_desc_overrides, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "svn_opt_subcommand_desc3_t_desc_overrides *","optch", 1, self ));
+ }
+ arg1 = (svn_opt_subcommand_desc3_t_desc_overrides *)(argp1);
+ result = (int) ((arg1)->optch);
+ vresult = SWIG_From_int((int)(result));
+ return vresult;
+fail:
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_svn_opt_subcommand_desc3_t_desc_overrides_desc_set(int argc, VALUE *argv, VALUE self) {
+ svn_opt_subcommand_desc3_t_desc_overrides *arg1 = (svn_opt_subcommand_desc3_t_desc_overrides *) 0 ;
+ char *arg2 = (char *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+
+ if ((argc < 1) || (argc > 1)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_opt_subcommand_desc3_t_desc_overrides, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "svn_opt_subcommand_desc3_t_desc_overrides *","desc", 1, self ));
+ }
+ arg1 = (svn_opt_subcommand_desc3_t_desc_overrides *)(argp1);
+ res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","desc", 2, argv[0] ));
+ }
+ arg2 = (char *)(buf2);
+ {
+ apr_size_t len = strlen(arg2) + 1;
+ char *copied;
+ if (arg1->desc) free((char *)arg1->desc);
+ copied = malloc(len);
+ memcpy(copied, arg2, len);
+ arg1->desc = copied;
+ }
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ return Qnil;
+fail:
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_svn_opt_subcommand_desc3_t_desc_overrides_desc_get(int argc, VALUE *argv, VALUE self) {
+ svn_opt_subcommand_desc3_t_desc_overrides *arg1 = (svn_opt_subcommand_desc3_t_desc_overrides *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ char *result = 0 ;
+ VALUE vresult = Qnil;
+
+ if ((argc < 0) || (argc > 0)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_opt_subcommand_desc3_t_desc_overrides, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "svn_opt_subcommand_desc3_t_desc_overrides *","desc", 1, self ));
+ }
+ arg1 = (svn_opt_subcommand_desc3_t_desc_overrides *)(argp1);
+ result = (char *) ((arg1)->desc);
+ {
+ if (result) {
+ vresult = rb_str_new2(result);
+ } else {
+ vresult = Qnil;
+ }
+ }
+ return vresult;
+fail:
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
+#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
+_wrap_svn_opt_subcommand_desc3_t_desc_overrides_allocate(VALUE self)
+#else
+_wrap_svn_opt_subcommand_desc3_t_desc_overrides_allocate(int argc, VALUE *argv, VALUE self)
+#endif
+{
+ VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_svn_opt_subcommand_desc3_t_desc_overrides);
+#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
+ rb_obj_call_init(vresult, argc, argv);
+#endif
+ return vresult;
+}
+
+
+SWIGINTERN VALUE
+_wrap_new_svn_opt_subcommand_desc3_t_desc_overrides(int argc, VALUE *argv, VALUE self) {
+ svn_opt_subcommand_desc3_t_desc_overrides *result = 0 ;
+
+ if ((argc < 0) || (argc > 0)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+ }
+ {
+ result = (svn_opt_subcommand_desc3_t_desc_overrides *)calloc(1, sizeof(svn_opt_subcommand_desc3_t_desc_overrides));
+ DATA_PTR(self) = result;
+
+
+
+ }
+ return self;
+fail:
+ return Qnil;
+}
+
+
+SWIGINTERN void
+free_svn_opt_subcommand_desc3_t_desc_overrides(void *self) {
+ svn_opt_subcommand_desc3_t_desc_overrides *arg1 = (svn_opt_subcommand_desc3_t_desc_overrides *)self;
+ free((char *) arg1);
+}
+
static swig_class SwigClassSvn_opt_subcommand_desc2_t;
SWIGINTERN VALUE
@@ -11370,6 +11909,46 @@ free_svn_opt_subcommand_desc_t(void *self) {
}
SWIGINTERN VALUE
+_wrap_svn_opt_get_canonical_subcommand3(int argc, VALUE *argv, VALUE self) {
+ svn_opt_subcommand_desc3_t *arg1 = (svn_opt_subcommand_desc3_t *) 0 ;
+ char *arg2 = (char *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ svn_opt_subcommand_desc3_t *result = 0 ;
+ VALUE vresult = Qnil;
+
+ if ((argc < 2) || (argc > 2)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_svn_opt_subcommand_desc3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "svn_opt_subcommand_desc3_t const *","svn_opt_get_canonical_subcommand3", 1, argv[0] ));
+ }
+ arg1 = (svn_opt_subcommand_desc3_t *)(argp1);
+ res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","svn_opt_get_canonical_subcommand3", 2, argv[1] ));
+ }
+ arg2 = (char *)(buf2);
+ {
+ result = (svn_opt_subcommand_desc3_t *)svn_opt_get_canonical_subcommand3((struct svn_opt_subcommand_desc3_t const *)arg1,(char const *)arg2);
+
+
+
+ }
+ vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_svn_opt_subcommand_desc3_t, 0 | 0 );
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ return vresult;
+fail:
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
_wrap_svn_opt_get_canonical_subcommand2(int argc, VALUE *argv, VALUE self) {
svn_opt_subcommand_desc2_t *arg1 = (svn_opt_subcommand_desc2_t *) 0 ;
char *arg2 = (char *) 0 ;
@@ -11450,6 +12029,76 @@ fail:
SWIGINTERN VALUE
+_wrap_svn_opt_get_option_from_code3(int argc, VALUE *argv, VALUE self) {
+ int arg1 ;
+ apr_getopt_option_t *arg2 = (apr_getopt_option_t *) 0 ;
+ svn_opt_subcommand_desc3_t *arg3 = (svn_opt_subcommand_desc3_t *) 0 ;
+ apr_pool_t *arg4 = (apr_pool_t *) 0 ;
+ VALUE _global_svn_swig_rb_pool ;
+ apr_pool_t *_global_pool ;
+ int val1 ;
+ int ecode1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ apr_getopt_option_t *result = 0 ;
+ VALUE vresult = Qnil;
+
+ {
+ svn_swig_rb_get_pool(argc, argv, self, &_global_svn_swig_rb_pool, &arg4);
+ _global_pool = arg4;
+ svn_swig_rb_push_pool(_global_svn_swig_rb_pool);
+ }
+ if ((argc < 3) || (argc > 4)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
+ }
+ ecode1 = SWIG_AsVal_int(argv[0], &val1);
+ if (!SWIG_IsOK(ecode1)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode1), Ruby_Format_TypeError( "", "int","svn_opt_get_option_from_code3", 1, argv[0] ));
+ }
+ arg1 = (int)(val1);
+ res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_apr_getopt_option_t, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "apr_getopt_option_t const *","svn_opt_get_option_from_code3", 2, argv[1] ));
+ }
+ arg2 = (apr_getopt_option_t *)(argp2);
+ res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_svn_opt_subcommand_desc3_t, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "svn_opt_subcommand_desc3_t const *","svn_opt_get_option_from_code3", 3, argv[2] ));
+ }
+ arg3 = (svn_opt_subcommand_desc3_t *)(argp3);
+ if (argc > 3) {
+
+ }
+ {
+ result = (apr_getopt_option_t *)svn_opt_get_option_from_code3(arg1,(apr_getopt_option_t const *)arg2,(struct svn_opt_subcommand_desc3_t const *)arg3,arg4);
+
+
+
+ }
+ vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_apr_getopt_option_t, 0 | 0 );
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ return vresult;
+fail:
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
_wrap_svn_opt_get_option_from_code2(int argc, VALUE *argv, VALUE self) {
int arg1 ;
apr_getopt_option_t *arg2 = (apr_getopt_option_t *) 0 ;
@@ -11557,6 +12206,53 @@ fail:
SWIGINTERN VALUE
+_wrap_svn_opt_subcommand_takes_option4(int argc, VALUE *argv, VALUE self) {
+ svn_opt_subcommand_desc3_t *arg1 = (svn_opt_subcommand_desc3_t *) 0 ;
+ int arg2 ;
+ int *arg3 = (int *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ int temp3 ;
+ int res3 = SWIG_TMPOBJ ;
+ svn_boolean_t result;
+ VALUE vresult = Qnil;
+
+ arg3 = &temp3;
+ if ((argc < 2) || (argc > 2)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_svn_opt_subcommand_desc3_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "svn_opt_subcommand_desc3_t const *","svn_opt_subcommand_takes_option4", 1, argv[0] ));
+ }
+ arg1 = (svn_opt_subcommand_desc3_t *)(argp1);
+ ecode2 = SWIG_AsVal_int(argv[1], &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","svn_opt_subcommand_takes_option4", 2, argv[1] ));
+ }
+ arg2 = (int)(val2);
+ {
+ result = (svn_boolean_t)svn_opt_subcommand_takes_option4((struct svn_opt_subcommand_desc3_t const *)arg1,arg2,(int const *)arg3);
+
+
+
+ }
+ vresult = result ? Qtrue : Qfalse;
+ if (SWIG_IsTmpObj(res3)) {
+ vresult = SWIG_Ruby_AppendOutput(vresult, SWIG_From_int((*arg3)));
+ } else {
+ int new_flags = SWIG_IsNewObj(res3) ? (SWIG_POINTER_OWN | 0 ) : 0 ;
+ vresult = SWIG_Ruby_AppendOutput(vresult, SWIG_NewPointerObj((void*)(arg3), SWIGTYPE_p_int, new_flags));
+ }
+ return vresult;
+fail:
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
_wrap_svn_opt_subcommand_takes_option3(int argc, VALUE *argv, VALUE self) {
svn_opt_subcommand_desc2_t *arg1 = (svn_opt_subcommand_desc2_t *) 0 ;
int arg2 ;
@@ -11678,6 +12374,97 @@ fail:
SWIGINTERN VALUE
+_wrap_svn_opt_print_generic_help3(int argc, VALUE *argv, VALUE self) {
+ char *arg1 = (char *) 0 ;
+ svn_opt_subcommand_desc3_t *arg2 = (svn_opt_subcommand_desc3_t *) 0 ;
+ apr_getopt_option_t *arg3 = (apr_getopt_option_t *) 0 ;
+ char *arg4 = (char *) 0 ;
+ apr_pool_t *arg5 = (apr_pool_t *) 0 ;
+ FILE *arg6 = (FILE *) 0 ;
+ VALUE _global_svn_swig_rb_pool ;
+ apr_pool_t *_global_pool ;
+ int res1 ;
+ char *buf1 = 0 ;
+ int alloc1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ int res4 ;
+ char *buf4 = 0 ;
+ int alloc4 = 0 ;
+ void *argp6 = 0 ;
+ int res6 = 0 ;
+
+ {
+ svn_swig_rb_get_pool(argc, argv, self, &_global_svn_swig_rb_pool, &arg5);
+ _global_pool = arg5;
+ svn_swig_rb_push_pool(_global_svn_swig_rb_pool);
+ }
+ if ((argc < 4) || (argc > 6)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+ }
+ res1 = SWIG_AsCharPtrAndSize(argv[0], &buf1, NULL, &alloc1);
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "char const *","svn_opt_print_generic_help3", 1, argv[0] ));
+ }
+ arg1 = (char *)(buf1);
+ res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_svn_opt_subcommand_desc3_t, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "svn_opt_subcommand_desc3_t const *","svn_opt_print_generic_help3", 2, argv[1] ));
+ }
+ arg2 = (svn_opt_subcommand_desc3_t *)(argp2);
+ res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_apr_getopt_option_t, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "apr_getopt_option_t const *","svn_opt_print_generic_help3", 3, argv[2] ));
+ }
+ arg3 = (apr_getopt_option_t *)(argp3);
+ res4 = SWIG_AsCharPtrAndSize(argv[3], &buf4, NULL, &alloc4);
+ if (!SWIG_IsOK(res4)) {
+ SWIG_exception_fail(SWIG_ArgError(res4), Ruby_Format_TypeError( "", "char const *","svn_opt_print_generic_help3", 4, argv[3] ));
+ }
+ arg4 = (char *)(buf4);
+ if (argc > 4) {
+
+ }
+ if (argc > 5) {
+ res6 = SWIG_ConvertPtr(argv[5], &argp6,SWIGTYPE_p_FILE, 0 | 0 );
+ if (!SWIG_IsOK(res6)) {
+ SWIG_exception_fail(SWIG_ArgError(res6), Ruby_Format_TypeError( "", "FILE *","svn_opt_print_generic_help3", 6, argv[5] ));
+ }
+ arg6 = (FILE *)(argp6);
+ }
+ {
+ svn_opt_print_generic_help3((char const *)arg1,(struct svn_opt_subcommand_desc3_t const *)arg2,(apr_getopt_option_t const *)arg3,(char const *)arg4,arg5,arg6);
+
+
+
+ }
+ if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
+ if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ return Qnil;
+fail:
+ if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
+ if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
_wrap_svn_opt_print_generic_help2(int argc, VALUE *argv, VALUE self) {
char *arg1 = (char *) 0 ;
svn_opt_subcommand_desc2_t *arg2 = (svn_opt_subcommand_desc2_t *) 0 ;
@@ -11833,6 +12620,87 @@ fail:
SWIGINTERN VALUE
+_wrap_svn_opt_subcommand_help4(int argc, VALUE *argv, VALUE self) {
+ char *arg1 = (char *) 0 ;
+ svn_opt_subcommand_desc3_t *arg2 = (svn_opt_subcommand_desc3_t *) 0 ;
+ apr_getopt_option_t *arg3 = (apr_getopt_option_t *) 0 ;
+ int *arg4 = (int *) 0 ;
+ apr_pool_t *arg5 = (apr_pool_t *) 0 ;
+ VALUE _global_svn_swig_rb_pool ;
+ apr_pool_t *_global_pool ;
+ int res1 ;
+ char *buf1 = 0 ;
+ int alloc1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ int temp4 ;
+ int res4 = SWIG_TMPOBJ ;
+ VALUE vresult = Qnil;
+
+ {
+ svn_swig_rb_get_pool(argc, argv, self, &_global_svn_swig_rb_pool, &arg5);
+ _global_pool = arg5;
+ svn_swig_rb_push_pool(_global_svn_swig_rb_pool);
+ }
+ arg4 = &temp4;
+ if ((argc < 3) || (argc > 4)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
+ }
+ res1 = SWIG_AsCharPtrAndSize(argv[0], &buf1, NULL, &alloc1);
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "char const *","svn_opt_subcommand_help4", 1, argv[0] ));
+ }
+ arg1 = (char *)(buf1);
+ res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_svn_opt_subcommand_desc3_t, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "svn_opt_subcommand_desc3_t const *","svn_opt_subcommand_help4", 2, argv[1] ));
+ }
+ arg2 = (svn_opt_subcommand_desc3_t *)(argp2);
+ res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_apr_getopt_option_t, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "apr_getopt_option_t const *","svn_opt_subcommand_help4", 3, argv[2] ));
+ }
+ arg3 = (apr_getopt_option_t *)(argp3);
+ if (argc > 3) {
+
+ }
+ {
+ svn_opt_subcommand_help4((char const *)arg1,(struct svn_opt_subcommand_desc3_t const *)arg2,(apr_getopt_option_t const *)arg3,(int const *)arg4,arg5);
+
+
+
+ }
+ if (SWIG_IsTmpObj(res4)) {
+ vresult = SWIG_Ruby_AppendOutput(vresult, SWIG_From_int((*arg4)));
+ } else {
+ int new_flags = SWIG_IsNewObj(res4) ? (SWIG_POINTER_OWN | 0 ) : 0 ;
+ vresult = SWIG_Ruby_AppendOutput(vresult, SWIG_NewPointerObj((void*)(arg4), SWIGTYPE_p_int, new_flags));
+ }
+ if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ return vresult;
+fail:
+ if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
_wrap_svn_opt_subcommand_help3(int argc, VALUE *argv, VALUE self) {
char *arg1 = (char *) 0 ;
svn_opt_subcommand_desc2_t *arg2 = (svn_opt_subcommand_desc2_t *) 0 ;
@@ -12899,6 +13767,143 @@ fail:
SWIGINTERN VALUE
+_wrap_svn_opt_print_help5(int argc, VALUE *argv, VALUE self) {
+ apr_getopt_t *arg1 = (apr_getopt_t *) 0 ;
+ char *arg2 = (char *) 0 ;
+ svn_boolean_t arg3 ;
+ svn_boolean_t arg4 ;
+ svn_boolean_t arg5 ;
+ char *arg6 = (char *) 0 ;
+ char *arg7 = (char *) 0 ;
+ svn_opt_subcommand_desc3_t *arg8 = (svn_opt_subcommand_desc3_t *) 0 ;
+ apr_getopt_option_t *arg9 = (apr_getopt_option_t *) 0 ;
+ int *arg10 = (int *) 0 ;
+ char *arg11 = (char *) 0 ;
+ apr_pool_t *arg12 = (apr_pool_t *) 0 ;
+ VALUE _global_svn_swig_rb_pool ;
+ apr_pool_t *_global_pool ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ int res6 ;
+ char *buf6 = 0 ;
+ int alloc6 = 0 ;
+ int res7 ;
+ char *buf7 = 0 ;
+ int alloc7 = 0 ;
+ void *argp8 = 0 ;
+ int res8 = 0 ;
+ void *argp9 = 0 ;
+ int res9 = 0 ;
+ int temp10 ;
+ int res10 = SWIG_TMPOBJ ;
+ int res11 ;
+ char *buf11 = 0 ;
+ int alloc11 = 0 ;
+ svn_error_t *result = 0 ;
+ VALUE vresult = Qnil;
+
+ {
+ svn_swig_rb_get_pool(argc, argv, self, &_global_svn_swig_rb_pool, &arg12);
+ _global_pool = arg12;
+ svn_swig_rb_push_pool(_global_svn_swig_rb_pool);
+ }
+ arg10 = &temp10;
+ if ((argc < 10) || (argc > 11)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 10)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_apr_getopt_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "apr_getopt_t *","svn_opt_print_help5", 1, argv[0] ));
+ }
+ arg1 = (apr_getopt_t *)(argp1);
+ res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","svn_opt_print_help5", 2, argv[1] ));
+ }
+ arg2 = (char *)(buf2);
+ arg3 = RTEST(argv[2]);
+ arg4 = RTEST(argv[3]);
+ arg5 = RTEST(argv[4]);
+ res6 = SWIG_AsCharPtrAndSize(argv[5], &buf6, NULL, &alloc6);
+ if (!SWIG_IsOK(res6)) {
+ SWIG_exception_fail(SWIG_ArgError(res6), Ruby_Format_TypeError( "", "char const *","svn_opt_print_help5", 6, argv[5] ));
+ }
+ arg6 = (char *)(buf6);
+ res7 = SWIG_AsCharPtrAndSize(argv[6], &buf7, NULL, &alloc7);
+ if (!SWIG_IsOK(res7)) {
+ SWIG_exception_fail(SWIG_ArgError(res7), Ruby_Format_TypeError( "", "char const *","svn_opt_print_help5", 7, argv[6] ));
+ }
+ arg7 = (char *)(buf7);
+ res8 = SWIG_ConvertPtr(argv[7], &argp8,SWIGTYPE_p_svn_opt_subcommand_desc3_t, 0 | 0 );
+ if (!SWIG_IsOK(res8)) {
+ SWIG_exception_fail(SWIG_ArgError(res8), Ruby_Format_TypeError( "", "svn_opt_subcommand_desc3_t const *","svn_opt_print_help5", 8, argv[7] ));
+ }
+ arg8 = (svn_opt_subcommand_desc3_t *)(argp8);
+ res9 = SWIG_ConvertPtr(argv[8], &argp9,SWIGTYPE_p_apr_getopt_option_t, 0 | 0 );
+ if (!SWIG_IsOK(res9)) {
+ SWIG_exception_fail(SWIG_ArgError(res9), Ruby_Format_TypeError( "", "apr_getopt_option_t const *","svn_opt_print_help5", 9, argv[8] ));
+ }
+ arg9 = (apr_getopt_option_t *)(argp9);
+ res11 = SWIG_AsCharPtrAndSize(argv[9], &buf11, NULL, &alloc11);
+ if (!SWIG_IsOK(res11)) {
+ SWIG_exception_fail(SWIG_ArgError(res11), Ruby_Format_TypeError( "", "char const *","svn_opt_print_help5", 11, argv[9] ));
+ }
+ arg11 = (char *)(buf11);
+ if (argc > 10) {
+
+ }
+ {
+ result = (svn_error_t *)svn_opt_print_help5(arg1,(char const *)arg2,arg3,arg4,arg5,(char const *)arg6,(char const *)arg7,(struct svn_opt_subcommand_desc3_t const *)arg8,(apr_getopt_option_t const *)arg9,(int const *)arg10,(char const *)arg11,arg12);
+
+
+
+ }
+ {
+ if (result) {
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_handle_svn_error(result);
+ }
+ vresult = Qnil;
+ }
+ if (SWIG_IsTmpObj(res10)) {
+ vresult = SWIG_Ruby_AppendOutput(vresult, SWIG_From_int((*arg10)));
+ } else {
+ int new_flags = SWIG_IsNewObj(res10) ? (SWIG_POINTER_OWN | 0 ) : 0 ;
+ vresult = SWIG_Ruby_AppendOutput(vresult, SWIG_NewPointerObj((void*)(arg10), SWIGTYPE_p_int, new_flags));
+ }
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ if (alloc6 == SWIG_NEWOBJ) free((char*)buf6);
+ if (alloc7 == SWIG_NEWOBJ) free((char*)buf7);
+ if (alloc11 == SWIG_NEWOBJ) free((char*)buf11);
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ return vresult;
+fail:
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ if (alloc6 == SWIG_NEWOBJ) free((char*)buf6);
+ if (alloc7 == SWIG_NEWOBJ) free((char*)buf7);
+ if (alloc11 == SWIG_NEWOBJ) free((char*)buf11);
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
_wrap_svn_opt_print_help4(int argc, VALUE *argv, VALUE self) {
apr_getopt_t *arg1 = (apr_getopt_t *) 0 ;
char *arg2 = (char *) 0 ;
@@ -44090,6 +45095,8 @@ static swig_type_info _swigt__p_svn_opt_revision_t = {"_p_svn_opt_revision_t", "
static swig_type_info _swigt__p_svn_opt_revision_value_t = {"_p_svn_opt_revision_value_t", "union svn_opt_revision_value_t *|svn_opt_revision_value_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc2_t = {"_p_svn_opt_subcommand_desc2_t", "struct svn_opt_subcommand_desc2_t *|svn_opt_subcommand_desc2_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc2_t_desc_overrides = {"_p_svn_opt_subcommand_desc2_t_desc_overrides", "svn_opt_subcommand_desc2_t_desc_overrides *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_svn_opt_subcommand_desc3_t = {"_p_svn_opt_subcommand_desc3_t", "struct svn_opt_subcommand_desc3_t *|svn_opt_subcommand_desc3_t *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_svn_opt_subcommand_desc3_t_desc_overrides = {"_p_svn_opt_subcommand_desc3_t_desc_overrides", "svn_opt_subcommand_desc3_t_desc_overrides *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc_t = {"_p_svn_opt_subcommand_desc_t", "struct svn_opt_subcommand_desc_t *|svn_opt_subcommand_desc_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_patch_file_t = {"_p_svn_patch_file_t", "struct svn_patch_file_t *|svn_patch_file_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_patch_t = {"_p_svn_patch_t", "struct svn_patch_t *|svn_patch_t *", 0, 0, (void*)0, 0};
@@ -44245,6 +45252,8 @@ static swig_type_info *swig_type_initial[] = {
&_swigt__p_svn_opt_revision_value_t,
&_swigt__p_svn_opt_subcommand_desc2_t,
&_swigt__p_svn_opt_subcommand_desc2_t_desc_overrides,
+ &_swigt__p_svn_opt_subcommand_desc3_t,
+ &_swigt__p_svn_opt_subcommand_desc3_t_desc_overrides,
&_swigt__p_svn_opt_subcommand_desc_t,
&_swigt__p_svn_patch_file_t,
&_swigt__p_svn_patch_t,
@@ -44400,6 +45409,8 @@ static swig_cast_info _swigc__p_svn_opt_revision_t[] = { {&_swigt__p_svn_opt_re
static swig_cast_info _swigc__p_svn_opt_revision_value_t[] = { {&_swigt__p_svn_opt_revision_value_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc2_t[] = { {&_swigt__p_svn_opt_subcommand_desc2_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc2_t_desc_overrides[] = { {&_swigt__p_svn_opt_subcommand_desc2_t_desc_overrides, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_svn_opt_subcommand_desc3_t[] = { {&_swigt__p_svn_opt_subcommand_desc3_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_svn_opt_subcommand_desc3_t_desc_overrides[] = { {&_swigt__p_svn_opt_subcommand_desc3_t_desc_overrides, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc_t[] = { {&_swigt__p_svn_opt_subcommand_desc_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_patch_file_t[] = { {&_swigt__p_svn_patch_file_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_patch_t[] = { {&_swigt__p_svn_patch_t, 0, 0, 0},{0, 0, 0, 0}};
@@ -44555,6 +45566,8 @@ static swig_cast_info *swig_cast_initial[] = {
_swigc__p_svn_opt_revision_value_t,
_swigc__p_svn_opt_subcommand_desc2_t,
_swigc__p_svn_opt_subcommand_desc2_t_desc_overrides,
+ _swigc__p_svn_opt_subcommand_desc3_t,
+ _swigc__p_svn_opt_subcommand_desc3_t_desc_overrides,
_swigc__p_svn_opt_subcommand_desc_t,
_swigc__p_svn_patch_file_t,
_swigc__p_svn_patch_t,
@@ -45426,16 +46439,16 @@ SWIGEXPORT void Init_core(void) {
rb_define_module_function(mCore, "svn_pool_create", _wrap_svn_pool_create, -1);
rb_define_module_function(mCore, "svn_pool_create_allocator", _wrap_svn_pool_create_allocator, -1);
rb_define_const(mCore, "SVN_VER_MAJOR", SWIG_From_int((int)(1)));
- rb_define_const(mCore, "SVN_VER_MINOR", SWIG_From_int((int)(10)));
- rb_define_const(mCore, "SVN_VER_PATCH", SWIG_From_int((int)(2)));
- rb_define_const(mCore, "SVN_VER_MICRO", SWIG_From_int((int)(2)));
+ rb_define_const(mCore, "SVN_VER_MINOR", SWIG_From_int((int)(11)));
+ rb_define_const(mCore, "SVN_VER_PATCH", SWIG_From_int((int)(0)));
+ rb_define_const(mCore, "SVN_VER_MICRO", SWIG_From_int((int)(0)));
rb_define_const(mCore, "SVN_VER_LIBRARY", SWIG_From_int((int)(1)));
- rb_define_const(mCore, "SVN_VER_TAG", SWIG_FromCharPtr(" (r1835932)"));
- rb_define_const(mCore, "SVN_VER_NUMTAG", SWIG_FromCharPtr(""));
- rb_define_const(mCore, "SVN_VER_REVISION", SWIG_From_int((int)(1835932)));
- rb_define_const(mCore, "SVN_VER_NUM", SWIG_FromCharPtr("1.10.2"));
- rb_define_const(mCore, "SVN_VER_NUMBER", SWIG_FromCharPtr("1.10.2"));
- rb_define_const(mCore, "SVN_VERSION", SWIG_FromCharPtr("1.10.2 (r1835932)"));
+ rb_define_const(mCore, "SVN_VER_TAG", SWIG_FromCharPtr(" (Release Candidate 2)"));
+ rb_define_const(mCore, "SVN_VER_NUMTAG", SWIG_FromCharPtr("-rc2"));
+ rb_define_const(mCore, "SVN_VER_REVISION", SWIG_From_int((int)(1842234)));
+ rb_define_const(mCore, "SVN_VER_NUM", SWIG_FromCharPtr("1.11.0"));
+ rb_define_const(mCore, "SVN_VER_NUMBER", SWIG_FromCharPtr("1.11.0-rc2"));
+ rb_define_const(mCore, "SVN_VERSION", SWIG_FromCharPtr("1.11.0-rc2 (Release Candidate 2)"));
SwigClassSvn_version_t.klass = rb_define_class_under(mCore, "Svn_version_t", rb_cObject);
SWIG_TypeClientData(SWIGTYPE_p_svn_version_t, (void *) &SwigClassSvn_version_t);
@@ -45585,8 +46598,40 @@ SWIGEXPORT void Init_core(void) {
rb_define_const(mCore, "SVN_PROP_REVISION_PREFIX", SWIG_FromCharPtr("svn:revision-"));
rb_define_const(mCore, "SVN_OPT_MAX_ALIASES", SWIG_From_int((int)(3)));
rb_define_const(mCore, "SVN_OPT_MAX_OPTIONS", SWIG_From_int((int)(50)));
+ rb_define_const(mCore, "SVN_OPT_MAX_PARAGRAPHS", SWIG_From_int((int)(100)));
rb_define_const(mCore, "SVN_OPT_FIRST_LONGOPT_ID", SWIG_From_int((int)(256)));
+ SwigClassSvn_opt_subcommand_desc3_t.klass = rb_define_class_under(mCore, "Svn_opt_subcommand_desc3_t", rb_cObject);
+ SWIG_TypeClientData(SWIGTYPE_p_svn_opt_subcommand_desc3_t, (void *) &SwigClassSvn_opt_subcommand_desc3_t);
+ rb_define_alloc_func(SwigClassSvn_opt_subcommand_desc3_t.klass, _wrap_svn_opt_subcommand_desc3_t_allocate);
+ rb_define_method(SwigClassSvn_opt_subcommand_desc3_t.klass, "initialize", _wrap_new_svn_opt_subcommand_desc3_t, -1);
+ rb_define_method(SwigClassSvn_opt_subcommand_desc3_t.klass, "name=", _wrap_svn_opt_subcommand_desc3_t_name_set, -1);
+ rb_define_method(SwigClassSvn_opt_subcommand_desc3_t.klass, "name", _wrap_svn_opt_subcommand_desc3_t_name_get, -1);
+ rb_define_method(SwigClassSvn_opt_subcommand_desc3_t.klass, "cmd_func=", _wrap_svn_opt_subcommand_desc3_t_cmd_func_set, -1);
+ rb_define_method(SwigClassSvn_opt_subcommand_desc3_t.klass, "cmd_func", _wrap_svn_opt_subcommand_desc3_t_cmd_func_get, -1);
+ rb_define_method(SwigClassSvn_opt_subcommand_desc3_t.klass, "aliases=", _wrap_svn_opt_subcommand_desc3_t_aliases_set, -1);
+ rb_define_method(SwigClassSvn_opt_subcommand_desc3_t.klass, "aliases", _wrap_svn_opt_subcommand_desc3_t_aliases_get, -1);
+ rb_define_method(SwigClassSvn_opt_subcommand_desc3_t.klass, "help=", _wrap_svn_opt_subcommand_desc3_t_help_set, -1);
+ rb_define_method(SwigClassSvn_opt_subcommand_desc3_t.klass, "help", _wrap_svn_opt_subcommand_desc3_t_help_get, -1);
+ rb_define_method(SwigClassSvn_opt_subcommand_desc3_t.klass, "valid_options=", _wrap_svn_opt_subcommand_desc3_t_valid_options_set, -1);
+ rb_define_method(SwigClassSvn_opt_subcommand_desc3_t.klass, "valid_options", _wrap_svn_opt_subcommand_desc3_t_valid_options_get, -1);
+ rb_define_method(SwigClassSvn_opt_subcommand_desc3_t.klass, "desc_overrides", _wrap_svn_opt_subcommand_desc3_t_desc_overrides_get, -1);
+ SwigClassSvn_opt_subcommand_desc3_t.mark = 0;
+ SwigClassSvn_opt_subcommand_desc3_t.destroy = (void (*)(void *)) free_svn_opt_subcommand_desc3_t;
+ SwigClassSvn_opt_subcommand_desc3_t.trackObjects = 0;
+
+ SwigClassSvn_opt_subcommand_desc3_t_desc_overrides.klass = rb_define_class_under(mCore, "Svn_opt_subcommand_desc3_t_desc_overrides", rb_cObject);
+ SWIG_TypeClientData(SWIGTYPE_p_svn_opt_subcommand_desc3_t_desc_overrides, (void *) &SwigClassSvn_opt_subcommand_desc3_t_desc_overrides);
+ rb_define_alloc_func(SwigClassSvn_opt_subcommand_desc3_t_desc_overrides.klass, _wrap_svn_opt_subcommand_desc3_t_desc_overrides_allocate);
+ rb_define_method(SwigClassSvn_opt_subcommand_desc3_t_desc_overrides.klass, "initialize", _wrap_new_svn_opt_subcommand_desc3_t_desc_overrides, -1);
+ rb_define_method(SwigClassSvn_opt_subcommand_desc3_t_desc_overrides.klass, "optch=", _wrap_svn_opt_subcommand_desc3_t_desc_overrides_optch_set, -1);
+ rb_define_method(SwigClassSvn_opt_subcommand_desc3_t_desc_overrides.klass, "optch", _wrap_svn_opt_subcommand_desc3_t_desc_overrides_optch_get, -1);
+ rb_define_method(SwigClassSvn_opt_subcommand_desc3_t_desc_overrides.klass, "desc=", _wrap_svn_opt_subcommand_desc3_t_desc_overrides_desc_set, -1);
+ rb_define_method(SwigClassSvn_opt_subcommand_desc3_t_desc_overrides.klass, "desc", _wrap_svn_opt_subcommand_desc3_t_desc_overrides_desc_get, -1);
+ SwigClassSvn_opt_subcommand_desc3_t_desc_overrides.mark = 0;
+ SwigClassSvn_opt_subcommand_desc3_t_desc_overrides.destroy = (void (*)(void *)) free_svn_opt_subcommand_desc3_t_desc_overrides;
+ SwigClassSvn_opt_subcommand_desc3_t_desc_overrides.trackObjects = 0;
+
SwigClassSvn_opt_subcommand_desc2_t.klass = rb_define_class_under(mCore, "Svn_opt_subcommand_desc2_t", rb_cObject);
SWIG_TypeClientData(SWIGTYPE_p_svn_opt_subcommand_desc2_t, (void *) &SwigClassSvn_opt_subcommand_desc2_t);
rb_define_alloc_func(SwigClassSvn_opt_subcommand_desc2_t.klass, _wrap_svn_opt_subcommand_desc2_t_allocate);
@@ -45635,15 +46680,20 @@ SWIGEXPORT void Init_core(void) {
SwigClassSvn_opt_subcommand_desc_t.mark = 0;
SwigClassSvn_opt_subcommand_desc_t.destroy = (void (*)(void *)) free_svn_opt_subcommand_desc_t;
SwigClassSvn_opt_subcommand_desc_t.trackObjects = 0;
+ rb_define_module_function(mCore, "svn_opt_get_canonical_subcommand3", _wrap_svn_opt_get_canonical_subcommand3, -1);
rb_define_module_function(mCore, "svn_opt_get_canonical_subcommand2", _wrap_svn_opt_get_canonical_subcommand2, -1);
rb_define_module_function(mCore, "svn_opt_get_canonical_subcommand", _wrap_svn_opt_get_canonical_subcommand, -1);
+ rb_define_module_function(mCore, "svn_opt_get_option_from_code3", _wrap_svn_opt_get_option_from_code3, -1);
rb_define_module_function(mCore, "svn_opt_get_option_from_code2", _wrap_svn_opt_get_option_from_code2, -1);
rb_define_module_function(mCore, "svn_opt_get_option_from_code", _wrap_svn_opt_get_option_from_code, -1);
+ rb_define_module_function(mCore, "svn_opt_subcommand_takes_option4", _wrap_svn_opt_subcommand_takes_option4, -1);
rb_define_module_function(mCore, "svn_opt_subcommand_takes_option3", _wrap_svn_opt_subcommand_takes_option3, -1);
rb_define_module_function(mCore, "svn_opt_subcommand_takes_option2", _wrap_svn_opt_subcommand_takes_option2, -1);
rb_define_module_function(mCore, "svn_opt_subcommand_takes_option", _wrap_svn_opt_subcommand_takes_option, -1);
+ rb_define_module_function(mCore, "svn_opt_print_generic_help3", _wrap_svn_opt_print_generic_help3, -1);
rb_define_module_function(mCore, "svn_opt_print_generic_help2", _wrap_svn_opt_print_generic_help2, -1);
rb_define_module_function(mCore, "svn_opt_format_option", _wrap_svn_opt_format_option, -1);
+ rb_define_module_function(mCore, "svn_opt_subcommand_help4", _wrap_svn_opt_subcommand_help4, -1);
rb_define_module_function(mCore, "svn_opt_subcommand_help3", _wrap_svn_opt_subcommand_help3, -1);
rb_define_module_function(mCore, "svn_opt_subcommand_help2", _wrap_svn_opt_subcommand_help2, -1);
rb_define_module_function(mCore, "svn_opt_subcommand_help", _wrap_svn_opt_subcommand_help, -1);
@@ -45697,6 +46747,7 @@ SWIGEXPORT void Init_core(void) {
rb_define_module_function(mCore, "svn_opt_parse_revprop", _wrap_svn_opt_parse_revprop, -1);
rb_define_module_function(mCore, "svn_opt_push_implicit_dot_target", _wrap_svn_opt_push_implicit_dot_target, -1);
rb_define_module_function(mCore, "svn_opt_parse_path", _wrap_svn_opt_parse_path, -1);
+ rb_define_module_function(mCore, "svn_opt_print_help5", _wrap_svn_opt_print_help5, -1);
rb_define_module_function(mCore, "svn_opt_print_help4", _wrap_svn_opt_print_help4, -1);
rb_define_module_function(mCore, "svn_opt_print_help3", _wrap_svn_opt_print_help3, -1);
rb_define_module_function(mCore, "svn_opt_print_help2", _wrap_svn_opt_print_help2, -1);
diff --git a/subversion/bindings/swig/ruby/svn/util.rb b/subversion/bindings/swig/ruby/svn/util.rb
index 8e05367..68d3e58 100644
--- a/subversion/bindings/swig/ruby/svn/util.rb
+++ b/subversion/bindings/swig/ruby/svn/util.rb
@@ -70,6 +70,8 @@ module Svn
target_name = $POSTMATCH
when /^SWIG_SVN_/
target_name = $POSTMATCH
+ when /^Svn_(?:#{target_mod.name.split("::").last.downcase}_)?_(.+)_t$/
+ # ignore private types
when /^Svn_(?:#{target_mod.name.split("::").last.downcase}_)?(.+)_t$/
target_name = to_ruby_class_name($1)
when /^Svn_(?:#{target_mod.name.split("::").last.downcase}_)?/
diff --git a/subversion/bindings/swig/ruby/svn_client.c b/subversion/bindings/swig/ruby/svn_client.c
index 4174617..1f245a2 100644
--- a/subversion/bindings/swig/ruby/svn_client.c
+++ b/subversion/bindings/swig/ruby/svn_client.c
@@ -1834,156 +1834,163 @@ int SWIG_Ruby_arity( VALUE proc, int minimal )
#define SWIGTYPE_p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_array_header_t_p_apr_pool_t__p_svn_error_t swig_types[28]
#define SWIGTYPE_p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_pool_t__p_svn_error_t swig_types[29]
#define SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t swig_types[30]
-#define SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__svn_client_info2_t_p_apr_pool_t__p_svn_error_t swig_types[31]
-#define SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__svn_client_status_t_p_apr_pool_t__p_svn_error_t swig_types[32]
-#define SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_apr_pool_t__p_svn_error_t swig_types[33]
-#define SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t swig_types[34]
-#define SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__svn_info_t_p_apr_pool_t__p_svn_error_t swig_types[35]
-#define SWIGTYPE_p_f_p_void_p_q_const__char_p_struct_svn_wc_status2_t__void swig_types[36]
-#define SWIGTYPE_p_f_p_void_p_q_const__char_p_struct_svn_wc_status_t__void swig_types[37]
-#define SWIGTYPE_p_f_p_void_p_q_const__char_p_svn_wc_status2_t_p_apr_pool_t__p_svn_error_t swig_types[38]
-#define SWIGTYPE_p_f_p_void_p_q_const__struct_svn_wc_notify_t_p_apr_pool_t__void swig_types[39]
-#define SWIGTYPE_p_f_p_void_p_svn_boolean_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t swig_types[40]
-#define SWIGTYPE_p_f_p_void_p_svn_boolean_t_p_q_const__char_p_q_const__svn_io_dirent2_t_p_apr_pool_t__p_svn_error_t swig_types[41]
-#define SWIGTYPE_p_f_p_void_p_svn_client_conflict_t_p_apr_pool_t__p_svn_error_t swig_types[42]
-#define SWIGTYPE_p_f_p_void_p_svn_log_entry_t_p_apr_pool_t__p_svn_error_t swig_types[43]
-#define SWIGTYPE_p_f_p_void_svn_revnum_t_svn_revnum_t_apr_int64_t_svn_revnum_t_p_apr_hash_t_svn_revnum_t_p_apr_hash_t_p_q_const__char_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t swig_types[44]
-#define SWIGTYPE_p_int swig_types[45]
-#define SWIGTYPE_p_long swig_types[46]
-#define SWIGTYPE_p_p_apr_array_header_t swig_types[47]
-#define SWIGTYPE_p_p_apr_hash_t swig_types[48]
-#define SWIGTYPE_p_p_char swig_types[49]
-#define SWIGTYPE_p_p_svn_auth_provider_object_t swig_types[50]
-#define SWIGTYPE_p_p_svn_client_commit_info_t swig_types[51]
-#define SWIGTYPE_p_p_svn_client_conflict_t swig_types[52]
-#define SWIGTYPE_p_p_svn_client_ctx_t swig_types[53]
-#define SWIGTYPE_p_p_svn_commit_info_t swig_types[54]
-#define SWIGTYPE_p_p_svn_ra_session_t swig_types[55]
-#define SWIGTYPE_p_p_svn_string_t swig_types[56]
-#define SWIGTYPE_p_svn_auth_baton_t swig_types[57]
-#define SWIGTYPE_p_svn_auth_cred_simple_t swig_types[58]
-#define SWIGTYPE_p_svn_auth_cred_ssl_client_cert_pw_t swig_types[59]
-#define SWIGTYPE_p_svn_auth_cred_ssl_client_cert_t swig_types[60]
-#define SWIGTYPE_p_svn_auth_cred_ssl_server_trust_t swig_types[61]
-#define SWIGTYPE_p_svn_auth_cred_username_t swig_types[62]
-#define SWIGTYPE_p_svn_auth_iterstate_t swig_types[63]
-#define SWIGTYPE_p_svn_auth_provider_object_t swig_types[64]
-#define SWIGTYPE_p_svn_auth_provider_t swig_types[65]
-#define SWIGTYPE_p_svn_auth_ssl_server_cert_info_t swig_types[66]
-#define SWIGTYPE_p_svn_cache_config_t swig_types[67]
-#define SWIGTYPE_p_svn_checksum_ctx_t swig_types[68]
-#define SWIGTYPE_p_svn_checksum_kind_t swig_types[69]
-#define SWIGTYPE_p_svn_checksum_t swig_types[70]
-#define SWIGTYPE_p_svn_client_commit_info_t swig_types[71]
-#define SWIGTYPE_p_svn_client_commit_item2_t swig_types[72]
-#define SWIGTYPE_p_svn_client_commit_item3_t swig_types[73]
-#define SWIGTYPE_p_svn_client_commit_item_t swig_types[74]
-#define SWIGTYPE_p_svn_client_conflict_option_id_t swig_types[75]
-#define SWIGTYPE_p_svn_client_conflict_option_t swig_types[76]
-#define SWIGTYPE_p_svn_client_conflict_t swig_types[77]
-#define SWIGTYPE_p_svn_client_copy_source_t swig_types[78]
-#define SWIGTYPE_p_svn_client_ctx_t swig_types[79]
-#define SWIGTYPE_p_svn_client_diff_summarize_kind_t swig_types[80]
-#define SWIGTYPE_p_svn_client_diff_summarize_t swig_types[81]
-#define SWIGTYPE_p_svn_client_info2_t swig_types[82]
-#define SWIGTYPE_p_svn_client_proplist_item_t swig_types[83]
-#define SWIGTYPE_p_svn_client_shelved_patch_info_t swig_types[84]
-#define SWIGTYPE_p_svn_client_status_t swig_types[85]
-#define SWIGTYPE_p_svn_commit_info_t swig_types[86]
-#define SWIGTYPE_p_svn_config_t swig_types[87]
-#define SWIGTYPE_p_svn_delta_editor_t swig_types[88]
-#define SWIGTYPE_p_svn_depth_t swig_types[89]
-#define SWIGTYPE_p_svn_diff_binary_patch_t swig_types[90]
-#define SWIGTYPE_p_svn_diff_conflict_display_style_t swig_types[91]
-#define SWIGTYPE_p_svn_diff_datasource_e swig_types[92]
-#define SWIGTYPE_p_svn_diff_file_ignore_space_t swig_types[93]
-#define SWIGTYPE_p_svn_diff_file_options_t swig_types[94]
-#define SWIGTYPE_p_svn_diff_fns2_t swig_types[95]
-#define SWIGTYPE_p_svn_diff_fns_t swig_types[96]
-#define SWIGTYPE_p_svn_diff_hunk_t swig_types[97]
-#define SWIGTYPE_p_svn_diff_operation_kind_e swig_types[98]
-#define SWIGTYPE_p_svn_diff_output_fns_t swig_types[99]
-#define SWIGTYPE_p_svn_diff_t swig_types[100]
-#define SWIGTYPE_p_svn_dirent_t swig_types[101]
-#define SWIGTYPE_p_svn_errno_t swig_types[102]
-#define SWIGTYPE_p_svn_error_t swig_types[103]
-#define SWIGTYPE_p_svn_info_t swig_types[104]
-#define SWIGTYPE_p_svn_io_dirent2_t swig_types[105]
-#define SWIGTYPE_p_svn_io_dirent_t swig_types[106]
-#define SWIGTYPE_p_svn_io_file_del_t swig_types[107]
-#define SWIGTYPE_p_svn_location_segment_t swig_types[108]
-#define SWIGTYPE_p_svn_lock_t swig_types[109]
-#define SWIGTYPE_p_svn_log_changed_path2_t swig_types[110]
-#define SWIGTYPE_p_svn_log_changed_path_t swig_types[111]
-#define SWIGTYPE_p_svn_log_entry_t swig_types[112]
-#define SWIGTYPE_p_svn_merge_range_t swig_types[113]
-#define SWIGTYPE_p_svn_mergeinfo_inheritance_t swig_types[114]
-#define SWIGTYPE_p_svn_node_kind_t swig_types[115]
-#define SWIGTYPE_p_svn_opt_revision_range_t swig_types[116]
-#define SWIGTYPE_p_svn_opt_revision_t swig_types[117]
-#define SWIGTYPE_p_svn_opt_revision_value_t swig_types[118]
-#define SWIGTYPE_p_svn_opt_subcommand_desc2_t swig_types[119]
-#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[120]
-#define SWIGTYPE_p_svn_patch_file_t swig_types[121]
-#define SWIGTYPE_p_svn_patch_t swig_types[122]
-#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[123]
-#define SWIGTYPE_p_svn_prop_kind swig_types[124]
-#define SWIGTYPE_p_svn_prop_patch_t swig_types[125]
-#define SWIGTYPE_p_svn_ra_callbacks2_t swig_types[126]
-#define SWIGTYPE_p_svn_ra_callbacks_t swig_types[127]
-#define SWIGTYPE_p_svn_ra_plugin_t swig_types[128]
-#define SWIGTYPE_p_svn_ra_reporter2_t swig_types[129]
-#define SWIGTYPE_p_svn_ra_reporter3_t swig_types[130]
-#define SWIGTYPE_p_svn_ra_reporter_t swig_types[131]
-#define SWIGTYPE_p_svn_ra_session_t swig_types[132]
-#define SWIGTYPE_p_svn_stream_mark_t swig_types[133]
-#define SWIGTYPE_p_svn_stream_t swig_types[134]
-#define SWIGTYPE_p_svn_string_t swig_types[135]
-#define SWIGTYPE_p_svn_stringbuf_t swig_types[136]
-#define SWIGTYPE_p_svn_tristate_t swig_types[137]
-#define SWIGTYPE_p_svn_txdelta_op_t swig_types[138]
-#define SWIGTYPE_p_svn_txdelta_stream_t swig_types[139]
-#define SWIGTYPE_p_svn_txdelta_window_t swig_types[140]
-#define SWIGTYPE_p_svn_version_checklist_t swig_types[141]
-#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[142]
-#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[143]
-#define SWIGTYPE_p_svn_version_extended_t swig_types[144]
-#define SWIGTYPE_p_svn_version_t swig_types[145]
-#define SWIGTYPE_p_svn_wc_adm_access_t swig_types[146]
-#define SWIGTYPE_p_svn_wc_committed_queue_t swig_types[147]
-#define SWIGTYPE_p_svn_wc_conflict_action_t swig_types[148]
-#define SWIGTYPE_p_svn_wc_conflict_choice_t swig_types[149]
-#define SWIGTYPE_p_svn_wc_conflict_description_t swig_types[150]
-#define SWIGTYPE_p_svn_wc_conflict_kind_t swig_types[151]
-#define SWIGTYPE_p_svn_wc_conflict_reason_t swig_types[152]
-#define SWIGTYPE_p_svn_wc_conflict_version_t swig_types[153]
-#define SWIGTYPE_p_svn_wc_context_t swig_types[154]
-#define SWIGTYPE_p_svn_wc_diff_callbacks2_t swig_types[155]
-#define SWIGTYPE_p_svn_wc_diff_callbacks3_t swig_types[156]
-#define SWIGTYPE_p_svn_wc_diff_callbacks4_t swig_types[157]
-#define SWIGTYPE_p_svn_wc_diff_callbacks_t swig_types[158]
-#define SWIGTYPE_p_svn_wc_entry_callbacks2_t swig_types[159]
-#define SWIGTYPE_p_svn_wc_entry_callbacks_t swig_types[160]
-#define SWIGTYPE_p_svn_wc_entry_t swig_types[161]
-#define SWIGTYPE_p_svn_wc_external_item2_t swig_types[162]
-#define SWIGTYPE_p_svn_wc_external_item_t swig_types[163]
-#define SWIGTYPE_p_svn_wc_info_t swig_types[164]
-#define SWIGTYPE_p_svn_wc_merge_outcome_t swig_types[165]
-#define SWIGTYPE_p_svn_wc_notify_action_t swig_types[166]
-#define SWIGTYPE_p_svn_wc_notify_lock_state_t swig_types[167]
-#define SWIGTYPE_p_svn_wc_notify_state_t swig_types[168]
-#define SWIGTYPE_p_svn_wc_notify_t swig_types[169]
-#define SWIGTYPE_p_svn_wc_operation_t swig_types[170]
-#define SWIGTYPE_p_svn_wc_revision_status_t swig_types[171]
-#define SWIGTYPE_p_svn_wc_schedule_t swig_types[172]
-#define SWIGTYPE_p_svn_wc_status2_t swig_types[173]
-#define SWIGTYPE_p_svn_wc_status3_t swig_types[174]
-#define SWIGTYPE_p_svn_wc_status_t swig_types[175]
-#define SWIGTYPE_p_svn_wc_traversal_info_t swig_types[176]
-#define SWIGTYPE_p_unsigned_long swig_types[177]
-#define SWIGTYPE_p_void swig_types[178]
-static swig_type_info *swig_types[180];
-static swig_module_info swig_module = {swig_types, 179, 0, 0, 0, 0};
+#define SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_svn_boolean_t_p_q_const__char_svn_boolean_t_svn_revnum_t_svn_boolean_t_svn_depth_t_p_apr_pool_t__p_svn_error_t swig_types[31]
+#define SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__svn_client_info2_t_p_apr_pool_t__p_svn_error_t swig_types[32]
+#define SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__svn_client_status_t_p_apr_pool_t__p_svn_error_t swig_types[33]
+#define SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_apr_pool_t__p_svn_error_t swig_types[34]
+#define SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t swig_types[35]
+#define SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__svn_info_t_p_apr_pool_t__p_svn_error_t swig_types[36]
+#define SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__svn_wc_status3_t_p_apr_pool_t__p_svn_error_t swig_types[37]
+#define SWIGTYPE_p_f_p_void_p_q_const__char_p_struct_svn_wc_status2_t__void swig_types[38]
+#define SWIGTYPE_p_f_p_void_p_q_const__char_p_struct_svn_wc_status_t__void swig_types[39]
+#define SWIGTYPE_p_f_p_void_p_q_const__char_p_svn_wc_status2_t_p_apr_pool_t__p_svn_error_t swig_types[40]
+#define SWIGTYPE_p_f_p_void_p_q_const__struct_svn_wc_notify_t_p_apr_pool_t__void swig_types[41]
+#define SWIGTYPE_p_f_p_void_p_svn_boolean_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t swig_types[42]
+#define SWIGTYPE_p_f_p_void_p_svn_boolean_t_p_q_const__char_p_q_const__svn_io_dirent2_t_p_apr_pool_t__p_svn_error_t swig_types[43]
+#define SWIGTYPE_p_f_p_void_p_svn_client_conflict_t_p_apr_pool_t__p_svn_error_t swig_types[44]
+#define SWIGTYPE_p_f_p_void_p_svn_log_entry_t_p_apr_pool_t__p_svn_error_t swig_types[45]
+#define SWIGTYPE_p_f_p_void_svn_revnum_t_svn_revnum_t_apr_int64_t_svn_revnum_t_p_apr_hash_t_svn_revnum_t_p_apr_hash_t_p_q_const__char_p_q_const__char_svn_boolean_t_p_apr_pool_t__p_svn_error_t swig_types[46]
+#define SWIGTYPE_p_int swig_types[47]
+#define SWIGTYPE_p_long swig_types[48]
+#define SWIGTYPE_p_p_apr_array_header_t swig_types[49]
+#define SWIGTYPE_p_p_apr_hash_t swig_types[50]
+#define SWIGTYPE_p_p_char swig_types[51]
+#define SWIGTYPE_p_p_svn_auth_provider_object_t swig_types[52]
+#define SWIGTYPE_p_p_svn_client__shelf_t swig_types[53]
+#define SWIGTYPE_p_p_svn_client__shelf_version_t swig_types[54]
+#define SWIGTYPE_p_p_svn_client_commit_info_t swig_types[55]
+#define SWIGTYPE_p_p_svn_client_conflict_t swig_types[56]
+#define SWIGTYPE_p_p_svn_client_ctx_t swig_types[57]
+#define SWIGTYPE_p_p_svn_commit_info_t swig_types[58]
+#define SWIGTYPE_p_p_svn_ra_session_t swig_types[59]
+#define SWIGTYPE_p_p_svn_string_t swig_types[60]
+#define SWIGTYPE_p_svn_auth_baton_t swig_types[61]
+#define SWIGTYPE_p_svn_auth_cred_simple_t swig_types[62]
+#define SWIGTYPE_p_svn_auth_cred_ssl_client_cert_pw_t swig_types[63]
+#define SWIGTYPE_p_svn_auth_cred_ssl_client_cert_t swig_types[64]
+#define SWIGTYPE_p_svn_auth_cred_ssl_server_trust_t swig_types[65]
+#define SWIGTYPE_p_svn_auth_cred_username_t swig_types[66]
+#define SWIGTYPE_p_svn_auth_iterstate_t swig_types[67]
+#define SWIGTYPE_p_svn_auth_provider_object_t swig_types[68]
+#define SWIGTYPE_p_svn_auth_provider_t swig_types[69]
+#define SWIGTYPE_p_svn_auth_ssl_server_cert_info_t swig_types[70]
+#define SWIGTYPE_p_svn_cache_config_t swig_types[71]
+#define SWIGTYPE_p_svn_checksum_ctx_t swig_types[72]
+#define SWIGTYPE_p_svn_checksum_kind_t swig_types[73]
+#define SWIGTYPE_p_svn_checksum_t swig_types[74]
+#define SWIGTYPE_p_svn_client__shelf_info_t swig_types[75]
+#define SWIGTYPE_p_svn_client__shelf_t swig_types[76]
+#define SWIGTYPE_p_svn_client__shelf_version_t swig_types[77]
+#define SWIGTYPE_p_svn_client_commit_info_t swig_types[78]
+#define SWIGTYPE_p_svn_client_commit_item2_t swig_types[79]
+#define SWIGTYPE_p_svn_client_commit_item3_t swig_types[80]
+#define SWIGTYPE_p_svn_client_commit_item_t swig_types[81]
+#define SWIGTYPE_p_svn_client_conflict_option_id_t swig_types[82]
+#define SWIGTYPE_p_svn_client_conflict_option_t swig_types[83]
+#define SWIGTYPE_p_svn_client_conflict_t swig_types[84]
+#define SWIGTYPE_p_svn_client_copy_source_t swig_types[85]
+#define SWIGTYPE_p_svn_client_ctx_t swig_types[86]
+#define SWIGTYPE_p_svn_client_diff_summarize_kind_t swig_types[87]
+#define SWIGTYPE_p_svn_client_diff_summarize_t swig_types[88]
+#define SWIGTYPE_p_svn_client_info2_t swig_types[89]
+#define SWIGTYPE_p_svn_client_proplist_item_t swig_types[90]
+#define SWIGTYPE_p_svn_client_status_t swig_types[91]
+#define SWIGTYPE_p_svn_commit_info_t swig_types[92]
+#define SWIGTYPE_p_svn_config_t swig_types[93]
+#define SWIGTYPE_p_svn_delta_editor_t swig_types[94]
+#define SWIGTYPE_p_svn_depth_t swig_types[95]
+#define SWIGTYPE_p_svn_diff_binary_patch_t swig_types[96]
+#define SWIGTYPE_p_svn_diff_conflict_display_style_t swig_types[97]
+#define SWIGTYPE_p_svn_diff_datasource_e swig_types[98]
+#define SWIGTYPE_p_svn_diff_file_ignore_space_t swig_types[99]
+#define SWIGTYPE_p_svn_diff_file_options_t swig_types[100]
+#define SWIGTYPE_p_svn_diff_fns2_t swig_types[101]
+#define SWIGTYPE_p_svn_diff_fns_t swig_types[102]
+#define SWIGTYPE_p_svn_diff_hunk_t swig_types[103]
+#define SWIGTYPE_p_svn_diff_operation_kind_e swig_types[104]
+#define SWIGTYPE_p_svn_diff_output_fns_t swig_types[105]
+#define SWIGTYPE_p_svn_diff_t swig_types[106]
+#define SWIGTYPE_p_svn_dirent_t swig_types[107]
+#define SWIGTYPE_p_svn_errno_t swig_types[108]
+#define SWIGTYPE_p_svn_error_t swig_types[109]
+#define SWIGTYPE_p_svn_info_t swig_types[110]
+#define SWIGTYPE_p_svn_io_dirent2_t swig_types[111]
+#define SWIGTYPE_p_svn_io_dirent_t swig_types[112]
+#define SWIGTYPE_p_svn_io_file_del_t swig_types[113]
+#define SWIGTYPE_p_svn_location_segment_t swig_types[114]
+#define SWIGTYPE_p_svn_lock_t swig_types[115]
+#define SWIGTYPE_p_svn_log_changed_path2_t swig_types[116]
+#define SWIGTYPE_p_svn_log_changed_path_t swig_types[117]
+#define SWIGTYPE_p_svn_log_entry_t swig_types[118]
+#define SWIGTYPE_p_svn_merge_range_t swig_types[119]
+#define SWIGTYPE_p_svn_mergeinfo_inheritance_t swig_types[120]
+#define SWIGTYPE_p_svn_node_kind_t swig_types[121]
+#define SWIGTYPE_p_svn_opt_revision_range_t swig_types[122]
+#define SWIGTYPE_p_svn_opt_revision_t swig_types[123]
+#define SWIGTYPE_p_svn_opt_revision_value_t swig_types[124]
+#define SWIGTYPE_p_svn_opt_subcommand_desc2_t swig_types[125]
+#define SWIGTYPE_p_svn_opt_subcommand_desc3_t swig_types[126]
+#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[127]
+#define SWIGTYPE_p_svn_patch_file_t swig_types[128]
+#define SWIGTYPE_p_svn_patch_t swig_types[129]
+#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[130]
+#define SWIGTYPE_p_svn_prop_kind swig_types[131]
+#define SWIGTYPE_p_svn_prop_patch_t swig_types[132]
+#define SWIGTYPE_p_svn_ra_callbacks2_t swig_types[133]
+#define SWIGTYPE_p_svn_ra_callbacks_t swig_types[134]
+#define SWIGTYPE_p_svn_ra_plugin_t swig_types[135]
+#define SWIGTYPE_p_svn_ra_reporter2_t swig_types[136]
+#define SWIGTYPE_p_svn_ra_reporter3_t swig_types[137]
+#define SWIGTYPE_p_svn_ra_reporter_t swig_types[138]
+#define SWIGTYPE_p_svn_ra_session_t swig_types[139]
+#define SWIGTYPE_p_svn_stream_mark_t swig_types[140]
+#define SWIGTYPE_p_svn_stream_t swig_types[141]
+#define SWIGTYPE_p_svn_string_t swig_types[142]
+#define SWIGTYPE_p_svn_stringbuf_t swig_types[143]
+#define SWIGTYPE_p_svn_tristate_t swig_types[144]
+#define SWIGTYPE_p_svn_txdelta_op_t swig_types[145]
+#define SWIGTYPE_p_svn_txdelta_stream_t swig_types[146]
+#define SWIGTYPE_p_svn_txdelta_window_t swig_types[147]
+#define SWIGTYPE_p_svn_version_checklist_t swig_types[148]
+#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[149]
+#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[150]
+#define SWIGTYPE_p_svn_version_extended_t swig_types[151]
+#define SWIGTYPE_p_svn_version_t swig_types[152]
+#define SWIGTYPE_p_svn_wc_adm_access_t swig_types[153]
+#define SWIGTYPE_p_svn_wc_committed_queue_t swig_types[154]
+#define SWIGTYPE_p_svn_wc_conflict_action_t swig_types[155]
+#define SWIGTYPE_p_svn_wc_conflict_choice_t swig_types[156]
+#define SWIGTYPE_p_svn_wc_conflict_description_t swig_types[157]
+#define SWIGTYPE_p_svn_wc_conflict_kind_t swig_types[158]
+#define SWIGTYPE_p_svn_wc_conflict_reason_t swig_types[159]
+#define SWIGTYPE_p_svn_wc_conflict_version_t swig_types[160]
+#define SWIGTYPE_p_svn_wc_context_t swig_types[161]
+#define SWIGTYPE_p_svn_wc_diff_callbacks2_t swig_types[162]
+#define SWIGTYPE_p_svn_wc_diff_callbacks3_t swig_types[163]
+#define SWIGTYPE_p_svn_wc_diff_callbacks4_t swig_types[164]
+#define SWIGTYPE_p_svn_wc_diff_callbacks_t swig_types[165]
+#define SWIGTYPE_p_svn_wc_entry_callbacks2_t swig_types[166]
+#define SWIGTYPE_p_svn_wc_entry_callbacks_t swig_types[167]
+#define SWIGTYPE_p_svn_wc_entry_t swig_types[168]
+#define SWIGTYPE_p_svn_wc_external_item2_t swig_types[169]
+#define SWIGTYPE_p_svn_wc_external_item_t swig_types[170]
+#define SWIGTYPE_p_svn_wc_info_t swig_types[171]
+#define SWIGTYPE_p_svn_wc_merge_outcome_t swig_types[172]
+#define SWIGTYPE_p_svn_wc_notify_action_t swig_types[173]
+#define SWIGTYPE_p_svn_wc_notify_lock_state_t swig_types[174]
+#define SWIGTYPE_p_svn_wc_notify_state_t swig_types[175]
+#define SWIGTYPE_p_svn_wc_notify_t swig_types[176]
+#define SWIGTYPE_p_svn_wc_operation_t swig_types[177]
+#define SWIGTYPE_p_svn_wc_revision_status_t swig_types[178]
+#define SWIGTYPE_p_svn_wc_schedule_t swig_types[179]
+#define SWIGTYPE_p_svn_wc_status2_t swig_types[180]
+#define SWIGTYPE_p_svn_wc_status3_t swig_types[181]
+#define SWIGTYPE_p_svn_wc_status_t swig_types[182]
+#define SWIGTYPE_p_svn_wc_traversal_info_t swig_types[183]
+#define SWIGTYPE_p_unsigned_long swig_types[184]
+#define SWIGTYPE_p_void swig_types[185]
+static swig_type_info *swig_types[187];
+static swig_module_info swig_module = {swig_types, 186, 0, 0, 0, 0};
#define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
#define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
@@ -2337,6 +2344,11 @@ static svn_error_t * svn_client_invoke_diff_summarize_func(
return _obj(diff, baton, pool);
}
+static svn_error_t * svn_client_invoke__layout_func(
+ svn_client__layout_func_t _obj, void *layout_baton, const char *local_abspath, const char *repos_root_url, svn_boolean_t not_present, svn_boolean_t url_changed, const char *url, svn_boolean_t revision_changed, svn_revnum_t revision, svn_boolean_t depth_changed, svn_depth_t depth, apr_pool_t *scratch_pool) {
+ return _obj(layout_baton, local_abspath, repos_root_url, not_present, url_changed, url, revision_changed, revision, depth_changed, depth, scratch_pool);
+}
+
static svn_error_t * svn_client_invoke_import_filter_func(
svn_client_import_filter_func_t _obj, void *baton, svn_boolean_t *filtered, const char *local_abspath, const svn_io_dirent2_t *dirent, apr_pool_t *scratch_pool) {
return _obj(baton, filtered, local_abspath, dirent, scratch_pool);
@@ -8401,6 +8413,91 @@ fail:
SWIGINTERN VALUE
+_wrap_svn_client__layout_list(int argc, VALUE *argv, VALUE self) {
+ char *arg1 = (char *) 0 ;
+ svn_client__layout_func_t arg2 = (svn_client__layout_func_t) 0 ;
+ void *arg3 = (void *) 0 ;
+ svn_client_ctx_t *arg4 = (svn_client_ctx_t *) 0 ;
+ apr_pool_t *arg5 = (apr_pool_t *) 0 ;
+ VALUE _global_svn_swig_rb_pool ;
+ apr_pool_t *_global_pool ;
+ int res1 ;
+ char *buf1 = 0 ;
+ int alloc1 = 0 ;
+ int res3 ;
+ void *argp4 = 0 ;
+ int res4 = 0 ;
+ svn_error_t *result = 0 ;
+ VALUE vresult = Qnil;
+
+ {
+ svn_swig_rb_get_pool(argc, argv, self, &_global_svn_swig_rb_pool, &arg5);
+ _global_pool = arg5;
+ svn_swig_rb_push_pool(_global_svn_swig_rb_pool);
+ }
+ if ((argc < 4) || (argc > 5)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+ }
+ res1 = SWIG_AsCharPtrAndSize(argv[0], &buf1, NULL, &alloc1);
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "char const *","svn_client__layout_list", 1, argv[0] ));
+ }
+ arg1 = (char *)(buf1);
+ {
+ int res = SWIG_ConvertFunctionPtr(argv[1], (void**)(&arg2), SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_svn_boolean_t_p_q_const__char_svn_boolean_t_svn_revnum_t_svn_boolean_t_svn_depth_t_p_apr_pool_t__p_svn_error_t);
+ if (!SWIG_IsOK(res)) {
+ SWIG_exception_fail(SWIG_ArgError(res), Ruby_Format_TypeError( "", "svn_client__layout_func_t","svn_client__layout_list", 2, argv[1] ));
+ }
+ }
+ res3 = SWIG_ConvertPtr(argv[2],SWIG_as_voidptrptr(&arg3), 0, 0);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "void *","svn_client__layout_list", 3, argv[2] ));
+ }
+ res4 = SWIG_ConvertPtr(argv[3], &argp4,SWIGTYPE_p_svn_client_ctx_t, 0 | 0 );
+ if (!SWIG_IsOK(res4)) {
+ SWIG_exception_fail(SWIG_ArgError(res4), Ruby_Format_TypeError( "", "svn_client_ctx_t *","svn_client__layout_list", 4, argv[3] ));
+ }
+ arg4 = (svn_client_ctx_t *)(argp4);
+ if (argc > 4) {
+
+ }
+ {
+ result = (svn_error_t *)svn_client__layout_list((char const *)arg1,arg2,arg3,arg4,arg5);
+
+
+
+ }
+ {
+ if (result) {
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_handle_svn_error(result);
+ }
+ vresult = Qnil;
+ }
+ if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ return vresult;
+fail:
+ if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
_wrap_svn_client_add5(int argc, VALUE *argv, VALUE self) {
char *arg1 = (char *) 0 ;
svn_depth_t arg2 ;
@@ -14537,6 +14634,175 @@ fail:
SWIGINTERN VALUE
+_wrap_svn_client_diff7(int argc, VALUE *argv, VALUE self) {
+ apr_array_header_t *arg1 = (apr_array_header_t *) 0 ;
+ char *arg2 = (char *) 0 ;
+ svn_opt_revision_t *arg3 = (svn_opt_revision_t *) 0 ;
+ char *arg4 = (char *) 0 ;
+ svn_opt_revision_t *arg5 = (svn_opt_revision_t *) 0 ;
+ char *arg6 = (char *) 0 ;
+ svn_depth_t arg7 ;
+ svn_boolean_t arg8 ;
+ svn_boolean_t arg9 ;
+ svn_boolean_t arg10 ;
+ svn_boolean_t arg11 ;
+ svn_boolean_t arg12 ;
+ svn_boolean_t arg13 ;
+ svn_boolean_t arg14 ;
+ svn_boolean_t arg15 ;
+ svn_boolean_t arg16 ;
+ char *arg17 = (char *) 0 ;
+ svn_stream_t *arg18 = (svn_stream_t *) 0 ;
+ svn_stream_t *arg19 = (svn_stream_t *) 0 ;
+ apr_array_header_t *arg20 = (apr_array_header_t *) 0 ;
+ svn_client_ctx_t *arg21 = (svn_client_ctx_t *) 0 ;
+ apr_pool_t *arg22 = (apr_pool_t *) 0 ;
+ VALUE _global_svn_swig_rb_pool ;
+ apr_pool_t *_global_pool ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ svn_opt_revision_t rev3 ;
+ int res4 ;
+ char *buf4 = 0 ;
+ int alloc4 = 0 ;
+ svn_opt_revision_t rev5 ;
+ void *argp21 = 0 ;
+ int res21 = 0 ;
+ svn_error_t *result = 0 ;
+ VALUE vresult = Qnil;
+
+ {
+ int adjusted_argc = argc;
+ VALUE *adjusted_argv = argv;
+
+ svn_swig_rb_adjust_arg_for_client_ctx_and_pool(&adjusted_argc,
+ &adjusted_argv);
+ svn_swig_rb_get_pool(adjusted_argc, adjusted_argv, self,
+ &_global_svn_swig_rb_pool, &arg22);
+ _global_pool = arg22;
+ svn_swig_rb_push_pool(_global_svn_swig_rb_pool);
+ }
+ if ((argc < 20) || (argc > 22)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 20)",argc); SWIG_fail;
+ }
+ {
+ arg1 = svn_swig_rb_strings_to_apr_array(argv[0], _global_pool);
+ }
+ res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","svn_client_diff7", 2, argv[1] ));
+ }
+ arg2 = (char *)(buf2);
+ {
+ arg3 = &rev3;
+ svn_swig_rb_set_revision(&rev3, argv[2]);
+ }
+ res4 = SWIG_AsCharPtrAndSize(argv[3], &buf4, NULL, &alloc4);
+ if (!SWIG_IsOK(res4)) {
+ SWIG_exception_fail(SWIG_ArgError(res4), Ruby_Format_TypeError( "", "char const *","svn_client_diff7", 4, argv[3] ));
+ }
+ arg4 = (char *)(buf4);
+ {
+ arg5 = &rev5;
+ svn_swig_rb_set_revision(&rev5, argv[4]);
+ }
+ {
+ if (NIL_P(argv[5])) {
+ arg6 = NULL;
+ } else {
+ arg6 = StringValuePtr(argv[5]);
+ }
+ }
+ {
+ arg7 = svn_swig_rb_to_depth(argv[6]);
+ }
+ arg8 = RTEST(argv[7]);
+ arg9 = RTEST(argv[8]);
+ arg10 = RTEST(argv[9]);
+ arg11 = RTEST(argv[10]);
+ arg12 = RTEST(argv[11]);
+ arg13 = RTEST(argv[12]);
+ arg14 = RTEST(argv[13]);
+ arg15 = RTEST(argv[14]);
+ arg16 = RTEST(argv[15]);
+ {
+ arg17 = NULL;
+
+ if (NIL_P(argv[16])) {
+
+ } else if (TYPE(argv[16]) == T_FIXNUM) {
+ arg17 = (char *)NUM2INT(argv[16]);
+ if (!(arg17 == APR_LOCALE_CHARSET || arg17 == APR_DEFAULT_CHARSET)) {
+ arg17 = NULL;
+ }
+ } else {
+ arg17 = StringValuePtr(argv[16]);
+ }
+
+ if (!arg17) {
+ arg17 = (char *)APR_LOCALE_CHARSET;
+ }
+ }
+ {
+ arg18 = svn_swig_rb_make_stream(argv[17]);
+ }
+ {
+ arg19 = svn_swig_rb_make_stream(argv[18]);
+ }
+ {
+ arg20 = (NIL_P(argv[19])) ? NULL :
+ svn_swig_rb_strings_to_apr_array(argv[19], _global_pool);
+ }
+ if (argc > 20) {
+ res21 = SWIG_ConvertPtr(argv[20], &argp21,SWIGTYPE_p_svn_client_ctx_t, 0 | 0 );
+ if (!SWIG_IsOK(res21)) {
+ SWIG_exception_fail(SWIG_ArgError(res21), Ruby_Format_TypeError( "", "svn_client_ctx_t *","svn_client_diff7", 21, argv[20] ));
+ }
+ arg21 = (svn_client_ctx_t *)(argp21);
+ }
+ if (argc > 21) {
+
+ }
+ {
+ result = (svn_error_t *)svn_client_diff7((apr_array_header_t const *)arg1,(char const *)arg2,(struct svn_opt_revision_t const *)arg3,(char const *)arg4,(struct svn_opt_revision_t const *)arg5,(char const *)arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13,arg14,arg15,arg16,(char const *)arg17,arg18,arg19,(apr_array_header_t const *)arg20,arg21,arg22);
+
+
+
+ }
+ {
+ if (result) {
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_handle_svn_error(result);
+ }
+ vresult = Qnil;
+ }
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ return vresult;
+fail:
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
_wrap_svn_client_diff6(int argc, VALUE *argv, VALUE self) {
apr_array_header_t *arg1 = (apr_array_header_t *) 0 ;
char *arg2 = (char *) 0 ;
@@ -15408,6 +15674,175 @@ fail:
SWIGINTERN VALUE
+_wrap_svn_client_diff_peg7(int argc, VALUE *argv, VALUE self) {
+ apr_array_header_t *arg1 = (apr_array_header_t *) 0 ;
+ char *arg2 = (char *) 0 ;
+ svn_opt_revision_t *arg3 = (svn_opt_revision_t *) 0 ;
+ svn_opt_revision_t *arg4 = (svn_opt_revision_t *) 0 ;
+ svn_opt_revision_t *arg5 = (svn_opt_revision_t *) 0 ;
+ char *arg6 = (char *) 0 ;
+ svn_depth_t arg7 ;
+ svn_boolean_t arg8 ;
+ svn_boolean_t arg9 ;
+ svn_boolean_t arg10 ;
+ svn_boolean_t arg11 ;
+ svn_boolean_t arg12 ;
+ svn_boolean_t arg13 ;
+ svn_boolean_t arg14 ;
+ svn_boolean_t arg15 ;
+ svn_boolean_t arg16 ;
+ char *arg17 = (char *) 0 ;
+ svn_stream_t *arg18 = (svn_stream_t *) 0 ;
+ svn_stream_t *arg19 = (svn_stream_t *) 0 ;
+ apr_array_header_t *arg20 = (apr_array_header_t *) 0 ;
+ svn_client_ctx_t *arg21 = (svn_client_ctx_t *) 0 ;
+ apr_pool_t *arg22 = (apr_pool_t *) 0 ;
+ VALUE _global_svn_swig_rb_pool ;
+ apr_pool_t *_global_pool ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ svn_opt_revision_t rev3 ;
+ svn_opt_revision_t rev4 ;
+ svn_opt_revision_t rev5 ;
+ void *argp21 = 0 ;
+ int res21 = 0 ;
+ svn_error_t *result = 0 ;
+ VALUE vresult = Qnil;
+
+ {
+ int adjusted_argc = argc;
+ VALUE *adjusted_argv = argv;
+
+ svn_swig_rb_adjust_arg_for_client_ctx_and_pool(&adjusted_argc,
+ &adjusted_argv);
+ svn_swig_rb_get_pool(adjusted_argc, adjusted_argv, self,
+ &_global_svn_swig_rb_pool, &arg22);
+ _global_pool = arg22;
+ svn_swig_rb_push_pool(_global_svn_swig_rb_pool);
+ }
+ if ((argc < 20) || (argc > 22)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 20)",argc); SWIG_fail;
+ }
+ {
+ arg1 = svn_swig_rb_strings_to_apr_array(argv[0], _global_pool);
+ }
+ res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","svn_client_diff_peg7", 2, argv[1] ));
+ }
+ arg2 = (char *)(buf2);
+ {
+ arg3 = &rev3;
+ svn_swig_rb_set_revision(&rev3, argv[2]);
+ }
+ {
+ arg4 = &rev4;
+ svn_swig_rb_set_revision(&rev4, argv[3]);
+ }
+ {
+ arg5 = &rev5;
+ svn_swig_rb_set_revision(&rev5, argv[4]);
+ }
+ {
+ if (NIL_P(argv[5])) {
+ arg6 = NULL;
+ } else {
+ arg6 = StringValuePtr(argv[5]);
+ }
+ }
+ {
+ arg7 = svn_swig_rb_to_depth(argv[6]);
+ }
+ arg8 = RTEST(argv[7]);
+ arg9 = RTEST(argv[8]);
+ arg10 = RTEST(argv[9]);
+ arg11 = RTEST(argv[10]);
+ arg12 = RTEST(argv[11]);
+ arg13 = RTEST(argv[12]);
+ arg14 = RTEST(argv[13]);
+ arg15 = RTEST(argv[14]);
+ arg16 = RTEST(argv[15]);
+ {
+ arg17 = NULL;
+
+ if (NIL_P(argv[16])) {
+
+ } else if (TYPE(argv[16]) == T_FIXNUM) {
+ arg17 = (char *)NUM2INT(argv[16]);
+ if (!(arg17 == APR_LOCALE_CHARSET || arg17 == APR_DEFAULT_CHARSET)) {
+ arg17 = NULL;
+ }
+ } else {
+ arg17 = StringValuePtr(argv[16]);
+ }
+
+ if (!arg17) {
+ arg17 = (char *)APR_LOCALE_CHARSET;
+ }
+ }
+ {
+ arg18 = svn_swig_rb_make_stream(argv[17]);
+ }
+ {
+ arg19 = svn_swig_rb_make_stream(argv[18]);
+ }
+ {
+ arg20 = (NIL_P(argv[19])) ? NULL :
+ svn_swig_rb_strings_to_apr_array(argv[19], _global_pool);
+ }
+ if (argc > 20) {
+ res21 = SWIG_ConvertPtr(argv[20], &argp21,SWIGTYPE_p_svn_client_ctx_t, 0 | 0 );
+ if (!SWIG_IsOK(res21)) {
+ SWIG_exception_fail(SWIG_ArgError(res21), Ruby_Format_TypeError( "", "svn_client_ctx_t *","svn_client_diff_peg7", 21, argv[20] ));
+ }
+ arg21 = (svn_client_ctx_t *)(argp21);
+ }
+ if (argc > 21) {
+
+ }
+ {
+ if (!arg3) {
+ SWIG_exception(SWIG_ValueError,"Received a NULL pointer.");
+ }
+ }
+ {
+ result = (svn_error_t *)svn_client_diff_peg7((apr_array_header_t const *)arg1,(char const *)arg2,(struct svn_opt_revision_t const *)arg3,(struct svn_opt_revision_t const *)arg4,(struct svn_opt_revision_t const *)arg5,(char const *)arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13,arg14,arg15,arg16,(char const *)arg17,arg18,arg19,(apr_array_header_t const *)arg20,arg21,arg22);
+
+
+
+ }
+ {
+ if (result) {
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_handle_svn_error(result);
+ }
+ vresult = Qnil;
+ }
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ return vresult;
+fail:
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
_wrap_svn_client_diff_peg6(int argc, VALUE *argv, VALUE self) {
apr_array_header_t *arg1 = (apr_array_header_t *) 0 ;
char *arg2 = (char *) 0 ;
@@ -19580,6 +20015,86 @@ fail:
SWIGINTERN VALUE
+_wrap_svn_client_revert4(int argc, VALUE *argv, VALUE self) {
+ apr_array_header_t *arg1 = (apr_array_header_t *) 0 ;
+ svn_depth_t arg2 ;
+ apr_array_header_t *arg3 = (apr_array_header_t *) 0 ;
+ svn_boolean_t arg4 ;
+ svn_boolean_t arg5 ;
+ svn_boolean_t arg6 ;
+ svn_client_ctx_t *arg7 = (svn_client_ctx_t *) 0 ;
+ apr_pool_t *arg8 = (apr_pool_t *) 0 ;
+ VALUE _global_svn_swig_rb_pool ;
+ apr_pool_t *_global_pool ;
+ void *argp7 = 0 ;
+ int res7 = 0 ;
+ svn_error_t *result = 0 ;
+ VALUE vresult = Qnil;
+
+ {
+ svn_swig_rb_get_pool(argc, argv, self, &_global_svn_swig_rb_pool, &arg8);
+ _global_pool = arg8;
+ svn_swig_rb_push_pool(_global_svn_swig_rb_pool);
+ }
+ if ((argc < 7) || (argc > 8)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 7)",argc); SWIG_fail;
+ }
+ {
+ arg1 = svn_swig_rb_strings_to_apr_array(argv[0], _global_pool);
+ }
+ {
+ arg2 = svn_swig_rb_to_depth(argv[1]);
+ }
+ {
+ arg3 = (NIL_P(argv[2])) ? NULL :
+ svn_swig_rb_strings_to_apr_array(argv[2], _global_pool);
+ }
+ arg4 = RTEST(argv[3]);
+ arg5 = RTEST(argv[4]);
+ arg6 = RTEST(argv[5]);
+ res7 = SWIG_ConvertPtr(argv[6], &argp7,SWIGTYPE_p_svn_client_ctx_t, 0 | 0 );
+ if (!SWIG_IsOK(res7)) {
+ SWIG_exception_fail(SWIG_ArgError(res7), Ruby_Format_TypeError( "", "svn_client_ctx_t *","svn_client_revert4", 7, argv[6] ));
+ }
+ arg7 = (svn_client_ctx_t *)(argp7);
+ if (argc > 7) {
+
+ }
+ {
+ result = (svn_error_t *)svn_client_revert4((apr_array_header_t const *)arg1,arg2,(apr_array_header_t const *)arg3,arg4,arg5,arg6,arg7,arg8);
+
+
+
+ }
+ {
+ if (result) {
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_handle_svn_error(result);
+ }
+ vresult = Qnil;
+ }
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ return vresult;
+fail:
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
_wrap_svn_client_revert3(int argc, VALUE *argv, VALUE self) {
apr_array_header_t *arg1 = (apr_array_header_t *) 0 ;
svn_depth_t arg2 ;
@@ -19860,6 +20375,102 @@ fail:
SWIGINTERN VALUE
+_wrap_svn_client_conflict_option_get_moved_to_repos_relpath_candidates2(int argc, VALUE *argv, VALUE self) {
+ apr_array_header_t **arg1 = (apr_array_header_t **) 0 ;
+ svn_client_conflict_option_t *arg2 = (svn_client_conflict_option_t *) 0 ;
+ apr_pool_t *arg3 = (apr_pool_t *) 0 ;
+ apr_pool_t *arg4 = (apr_pool_t *) 0 ;
+ VALUE _global_svn_swig_rb_pool ;
+ apr_pool_t *_global_pool ;
+ apr_array_header_t *temp1 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ svn_error_t *result = 0 ;
+ VALUE vresult = Qnil;
+
+ {
+ svn_swig_rb_get_pool(argc, argv, self, &_global_svn_swig_rb_pool, &arg3);
+ _global_pool = arg3;
+ svn_swig_rb_push_pool(_global_svn_swig_rb_pool);
+ }
+ {
+ svn_swig_rb_get_pool(argc, argv, self, &_global_svn_swig_rb_pool, &arg4);
+ _global_pool = arg4;
+ svn_swig_rb_push_pool(_global_svn_swig_rb_pool);
+ }
+ arg1 = &temp1;
+ if ((argc < 1) || (argc > 3)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+ }
+ res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_svn_client_conflict_option_t, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "svn_client_conflict_option_t *","svn_client_conflict_option_get_moved_to_repos_relpath_candidates2", 2, argv[0] ));
+ }
+ arg2 = (svn_client_conflict_option_t *)(argp2);
+ if (argc > 1) {
+
+ }
+ if (argc > 2) {
+
+ }
+ {
+ result = (svn_error_t *)svn_client_conflict_option_get_moved_to_repos_relpath_candidates2(arg1,arg2,arg3,arg4);
+
+
+
+ }
+ {
+ if (result) {
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_handle_svn_error(result);
+ }
+ vresult = Qnil;
+ }
+ {
+ /* FIXME: Missing argout typemap: svn_client_conflict_option_get_moved_to_repos_relpath_candidates2 arg 1 (apr_array_header_t **) */
+
+
+
+
+ SWIG_exception(SWIG_ValueError, "svn_client_conflict_option_get_moved_to_repos_relpath_candidates2 is not implemented yet");
+
+ }
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ return vresult;
+fail:
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
_wrap_svn_client_conflict_option_get_moved_to_repos_relpath_candidates(int argc, VALUE *argv, VALUE self) {
apr_array_header_t **arg1 = (apr_array_header_t **) 0 ;
svn_client_conflict_option_t *arg2 = (svn_client_conflict_option_t *) 0 ;
@@ -19956,6 +20567,83 @@ fail:
SWIGINTERN VALUE
+_wrap_svn_client_conflict_option_set_moved_to_repos_relpath2(int argc, VALUE *argv, VALUE self) {
+ svn_client_conflict_option_t *arg1 = (svn_client_conflict_option_t *) 0 ;
+ int arg2 ;
+ svn_client_ctx_t *arg3 = (svn_client_ctx_t *) 0 ;
+ apr_pool_t *arg4 = (apr_pool_t *) 0 ;
+ VALUE _global_svn_swig_rb_pool ;
+ apr_pool_t *_global_pool ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ svn_error_t *result = 0 ;
+ VALUE vresult = Qnil;
+
+ {
+ svn_swig_rb_get_pool(argc, argv, self, &_global_svn_swig_rb_pool, &arg4);
+ _global_pool = arg4;
+ svn_swig_rb_push_pool(_global_svn_swig_rb_pool);
+ }
+ if ((argc < 3) || (argc > 4)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_svn_client_conflict_option_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "svn_client_conflict_option_t *","svn_client_conflict_option_set_moved_to_repos_relpath2", 1, argv[0] ));
+ }
+ arg1 = (svn_client_conflict_option_t *)(argp1);
+ ecode2 = SWIG_AsVal_int(argv[1], &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","svn_client_conflict_option_set_moved_to_repos_relpath2", 2, argv[1] ));
+ }
+ arg2 = (int)(val2);
+ res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_svn_client_ctx_t, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "svn_client_ctx_t *","svn_client_conflict_option_set_moved_to_repos_relpath2", 3, argv[2] ));
+ }
+ arg3 = (svn_client_ctx_t *)(argp3);
+ if (argc > 3) {
+
+ }
+ {
+ result = (svn_error_t *)svn_client_conflict_option_set_moved_to_repos_relpath2(arg1,arg2,arg3,arg4);
+
+
+
+ }
+ {
+ if (result) {
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_handle_svn_error(result);
+ }
+ vresult = Qnil;
+ }
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ return vresult;
+fail:
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
_wrap_svn_client_conflict_option_set_moved_to_repos_relpath(int argc, VALUE *argv, VALUE self) {
svn_client_conflict_option_t *arg1 = (svn_client_conflict_option_t *) 0 ;
int arg2 ;
@@ -20033,6 +20721,102 @@ fail:
SWIGINTERN VALUE
+_wrap_svn_client_conflict_option_get_moved_to_abspath_candidates2(int argc, VALUE *argv, VALUE self) {
+ apr_array_header_t **arg1 = (apr_array_header_t **) 0 ;
+ svn_client_conflict_option_t *arg2 = (svn_client_conflict_option_t *) 0 ;
+ apr_pool_t *arg3 = (apr_pool_t *) 0 ;
+ apr_pool_t *arg4 = (apr_pool_t *) 0 ;
+ VALUE _global_svn_swig_rb_pool ;
+ apr_pool_t *_global_pool ;
+ apr_array_header_t *temp1 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ svn_error_t *result = 0 ;
+ VALUE vresult = Qnil;
+
+ {
+ svn_swig_rb_get_pool(argc, argv, self, &_global_svn_swig_rb_pool, &arg3);
+ _global_pool = arg3;
+ svn_swig_rb_push_pool(_global_svn_swig_rb_pool);
+ }
+ {
+ svn_swig_rb_get_pool(argc, argv, self, &_global_svn_swig_rb_pool, &arg4);
+ _global_pool = arg4;
+ svn_swig_rb_push_pool(_global_svn_swig_rb_pool);
+ }
+ arg1 = &temp1;
+ if ((argc < 1) || (argc > 3)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+ }
+ res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_svn_client_conflict_option_t, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "svn_client_conflict_option_t *","svn_client_conflict_option_get_moved_to_abspath_candidates2", 2, argv[0] ));
+ }
+ arg2 = (svn_client_conflict_option_t *)(argp2);
+ if (argc > 1) {
+
+ }
+ if (argc > 2) {
+
+ }
+ {
+ result = (svn_error_t *)svn_client_conflict_option_get_moved_to_abspath_candidates2(arg1,arg2,arg3,arg4);
+
+
+
+ }
+ {
+ if (result) {
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_handle_svn_error(result);
+ }
+ vresult = Qnil;
+ }
+ {
+ /* FIXME: Missing argout typemap: svn_client_conflict_option_get_moved_to_abspath_candidates2 arg 1 (apr_array_header_t **) */
+
+
+
+
+ SWIG_exception(SWIG_ValueError, "svn_client_conflict_option_get_moved_to_abspath_candidates2 is not implemented yet");
+
+ }
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ return vresult;
+fail:
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
_wrap_svn_client_conflict_option_get_moved_to_abspath_candidates(int argc, VALUE *argv, VALUE self) {
apr_array_header_t **arg1 = (apr_array_header_t **) 0 ;
svn_client_conflict_option_t *arg2 = (svn_client_conflict_option_t *) 0 ;
@@ -20129,6 +20913,83 @@ fail:
SWIGINTERN VALUE
+_wrap_svn_client_conflict_option_set_moved_to_abspath2(int argc, VALUE *argv, VALUE self) {
+ svn_client_conflict_option_t *arg1 = (svn_client_conflict_option_t *) 0 ;
+ int arg2 ;
+ svn_client_ctx_t *arg3 = (svn_client_ctx_t *) 0 ;
+ apr_pool_t *arg4 = (apr_pool_t *) 0 ;
+ VALUE _global_svn_swig_rb_pool ;
+ apr_pool_t *_global_pool ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
+ svn_error_t *result = 0 ;
+ VALUE vresult = Qnil;
+
+ {
+ svn_swig_rb_get_pool(argc, argv, self, &_global_svn_swig_rb_pool, &arg4);
+ _global_pool = arg4;
+ svn_swig_rb_push_pool(_global_svn_swig_rb_pool);
+ }
+ if ((argc < 3) || (argc > 4)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_svn_client_conflict_option_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "svn_client_conflict_option_t *","svn_client_conflict_option_set_moved_to_abspath2", 1, argv[0] ));
+ }
+ arg1 = (svn_client_conflict_option_t *)(argp1);
+ ecode2 = SWIG_AsVal_int(argv[1], &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","svn_client_conflict_option_set_moved_to_abspath2", 2, argv[1] ));
+ }
+ arg2 = (int)(val2);
+ res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_svn_client_ctx_t, 0 | 0 );
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "svn_client_ctx_t *","svn_client_conflict_option_set_moved_to_abspath2", 3, argv[2] ));
+ }
+ arg3 = (svn_client_ctx_t *)(argp3);
+ if (argc > 3) {
+
+ }
+ {
+ result = (svn_error_t *)svn_client_conflict_option_set_moved_to_abspath2(arg1,arg2,arg3,arg4);
+
+
+
+ }
+ {
+ if (result) {
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_handle_svn_error(result);
+ }
+ vresult = Qnil;
+ }
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ return vresult;
+fail:
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
_wrap_svn_client_conflict_option_set_moved_to_abspath(int argc, VALUE *argv, VALUE self) {
svn_client_conflict_option_t *arg1 = (svn_client_conflict_option_t *) 0 ;
int arg2 ;
@@ -28571,69 +29432,816 @@ fail:
}
+static swig_class SwigClassSvn_client__shelf_t;
+
SWIGINTERN VALUE
-_wrap_svn_client_shelve(int argc, VALUE *argv, VALUE self) {
- char *arg1 = (char *) 0 ;
- apr_array_header_t *arg2 = (apr_array_header_t *) 0 ;
- svn_depth_t arg3 ;
- apr_array_header_t *arg4 = (apr_array_header_t *) 0 ;
- svn_boolean_t arg5 ;
- svn_boolean_t arg6 ;
- svn_client_ctx_t *arg7 = (svn_client_ctx_t *) 0 ;
- apr_pool_t *arg8 = (apr_pool_t *) 0 ;
+_wrap_svn_client__shelf_t_name_set(int argc, VALUE *argv, VALUE self) {
+ struct svn_client__shelf_t *arg1 = (struct svn_client__shelf_t *) 0 ;
+ char *arg2 = (char *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+
+ if ((argc < 1) || (argc > 1)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct svn_client__shelf_t *","name", 1, self ));
+ }
+ arg1 = (struct svn_client__shelf_t *)(argp1);
+ res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","name", 2, argv[0] ));
+ }
+ arg2 = (char *)(buf2);
+ {
+ apr_size_t len = strlen(arg2) + 1;
+ char *copied;
+ if (arg1->name) free((char *)arg1->name);
+ copied = malloc(len);
+ memcpy(copied, arg2, len);
+ arg1->name = copied;
+ }
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ return Qnil;
+fail:
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_svn_client__shelf_t_name_get(int argc, VALUE *argv, VALUE self) {
+ struct svn_client__shelf_t *arg1 = (struct svn_client__shelf_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ char *result = 0 ;
+ VALUE vresult = Qnil;
+
+ if ((argc < 0) || (argc > 0)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct svn_client__shelf_t *","name", 1, self ));
+ }
+ arg1 = (struct svn_client__shelf_t *)(argp1);
+ result = (char *) ((arg1)->name);
+ {
+ if (result) {
+ vresult = rb_str_new2(result);
+ } else {
+ vresult = Qnil;
+ }
+ }
+ return vresult;
+fail:
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_svn_client__shelf_t_max_version_set(int argc, VALUE *argv, VALUE self) {
+ struct svn_client__shelf_t *arg1 = (struct svn_client__shelf_t *) 0 ;
+ int arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+
+ if ((argc < 1) || (argc > 1)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct svn_client__shelf_t *","max_version", 1, self ));
+ }
+ arg1 = (struct svn_client__shelf_t *)(argp1);
+ ecode2 = SWIG_AsVal_int(argv[0], &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","max_version", 2, argv[0] ));
+ }
+ arg2 = (int)(val2);
+ if (arg1) (arg1)->max_version = arg2;
+ return Qnil;
+fail:
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_svn_client__shelf_t_max_version_get(int argc, VALUE *argv, VALUE self) {
+ struct svn_client__shelf_t *arg1 = (struct svn_client__shelf_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int result;
+ VALUE vresult = Qnil;
+
+ if ((argc < 0) || (argc > 0)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct svn_client__shelf_t *","max_version", 1, self ));
+ }
+ arg1 = (struct svn_client__shelf_t *)(argp1);
+ result = (int) ((arg1)->max_version);
+ vresult = SWIG_From_int((int)(result));
+ return vresult;
+fail:
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_svn_client__shelf_t_wc_root_abspath_set(int argc, VALUE *argv, VALUE self) {
+ struct svn_client__shelf_t *arg1 = (struct svn_client__shelf_t *) 0 ;
+ char *arg2 = (char *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+
+ if ((argc < 1) || (argc > 1)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct svn_client__shelf_t *","wc_root_abspath", 1, self ));
+ }
+ arg1 = (struct svn_client__shelf_t *)(argp1);
+ res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","wc_root_abspath", 2, argv[0] ));
+ }
+ arg2 = (char *)(buf2);
+ {
+ apr_size_t len = strlen(arg2) + 1;
+ char *copied;
+ if (arg1->wc_root_abspath) free((char *)arg1->wc_root_abspath);
+ copied = malloc(len);
+ memcpy(copied, arg2, len);
+ arg1->wc_root_abspath = copied;
+ }
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ return Qnil;
+fail:
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_svn_client__shelf_t_wc_root_abspath_get(int argc, VALUE *argv, VALUE self) {
+ struct svn_client__shelf_t *arg1 = (struct svn_client__shelf_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ char *result = 0 ;
+ VALUE vresult = Qnil;
+
+ if ((argc < 0) || (argc > 0)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct svn_client__shelf_t *","wc_root_abspath", 1, self ));
+ }
+ arg1 = (struct svn_client__shelf_t *)(argp1);
+ result = (char *) ((arg1)->wc_root_abspath);
+ {
+ if (result) {
+ vresult = rb_str_new2(result);
+ } else {
+ vresult = Qnil;
+ }
+ }
+ return vresult;
+fail:
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_svn_client__shelf_t_shelves_dir_set(int argc, VALUE *argv, VALUE self) {
+ struct svn_client__shelf_t *arg1 = (struct svn_client__shelf_t *) 0 ;
+ char *arg2 = (char *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+
+ if ((argc < 1) || (argc > 1)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct svn_client__shelf_t *","shelves_dir", 1, self ));
+ }
+ arg1 = (struct svn_client__shelf_t *)(argp1);
+ res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","shelves_dir", 2, argv[0] ));
+ }
+ arg2 = (char *)(buf2);
+ {
+ apr_size_t len = strlen(arg2) + 1;
+ char *copied;
+ if (arg1->shelves_dir) free((char *)arg1->shelves_dir);
+ copied = malloc(len);
+ memcpy(copied, arg2, len);
+ arg1->shelves_dir = copied;
+ }
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ return Qnil;
+fail:
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_svn_client__shelf_t_shelves_dir_get(int argc, VALUE *argv, VALUE self) {
+ struct svn_client__shelf_t *arg1 = (struct svn_client__shelf_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ char *result = 0 ;
+ VALUE vresult = Qnil;
+
+ if ((argc < 0) || (argc > 0)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct svn_client__shelf_t *","shelves_dir", 1, self ));
+ }
+ arg1 = (struct svn_client__shelf_t *)(argp1);
+ result = (char *) ((arg1)->shelves_dir);
+ {
+ if (result) {
+ vresult = rb_str_new2(result);
+ } else {
+ vresult = Qnil;
+ }
+ }
+ return vresult;
+fail:
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_svn_client__shelf_t_revprops_set(int argc, VALUE *argv, VALUE self) {
+ struct svn_client__shelf_t *arg1 = (struct svn_client__shelf_t *) 0 ;
+ apr_hash_t *arg2 = (apr_hash_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+
+ if ((argc < 1) || (argc > 1)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct svn_client__shelf_t *","revprops", 1, self ));
+ }
+ arg1 = (struct svn_client__shelf_t *)(argp1);
+ {
+ VALUE rb_pool = Qnil;
+ if (!_global_pool) {
+ svn_swig_rb_get_pool(argc, argv, self, &rb_pool, &_global_pool);
+ svn_swig_rb_push_pool(rb_pool);
+ }
+ arg2 = svn_swig_rb_hash_to_apr_hash_svn_string(argv[0], _global_pool);
+ _global_pool = NULL;
+ if (!NIL_P(rb_pool)) {
+ if (NIL_P(arg2)) {
+ svn_swig_rb_destroy_pool(rb_pool);
+ } else {
+ svn_swig_rb_set_pool_for_no_swig_type(argv[0], rb_pool);
+ }
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ }
+ if (arg1) (arg1)->revprops = arg2;
+ return Qnil;
+fail:
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_svn_client__shelf_t_revprops_get(int argc, VALUE *argv, VALUE self) {
+ struct svn_client__shelf_t *arg1 = (struct svn_client__shelf_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ apr_hash_t *result = 0 ;
+ VALUE vresult = Qnil;
+
+ if ((argc < 0) || (argc > 0)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct svn_client__shelf_t *","revprops", 1, self ));
+ }
+ arg1 = (struct svn_client__shelf_t *)(argp1);
+ result = (apr_hash_t *) ((arg1)->revprops);
+ {
+ vresult = SWIG_Ruby_AppendOutput(vresult, svn_swig_rb_apr_hash_to_hash_svn_string(result));
+ }
+ return vresult;
+fail:
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_svn_client__shelf_t_ctx_set(int argc, VALUE *argv, VALUE self) {
+ struct svn_client__shelf_t *arg1 = (struct svn_client__shelf_t *) 0 ;
+ svn_client_ctx_t *arg2 = (svn_client_ctx_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+
+ if ((argc < 1) || (argc > 1)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct svn_client__shelf_t *","ctx", 1, self ));
+ }
+ arg1 = (struct svn_client__shelf_t *)(argp1);
+ res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_svn_client_ctx_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "svn_client_ctx_t *","ctx", 2, argv[0] ));
+ }
+ arg2 = (svn_client_ctx_t *)(argp2);
+ if (arg1) (arg1)->ctx = arg2;
+ return Qnil;
+fail:
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_svn_client__shelf_t_ctx_get(int argc, VALUE *argv, VALUE self) {
+ struct svn_client__shelf_t *arg1 = (struct svn_client__shelf_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ svn_client_ctx_t *result = 0 ;
+ VALUE vresult = Qnil;
+
+ if ((argc < 0) || (argc > 0)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct svn_client__shelf_t *","ctx", 1, self ));
+ }
+ arg1 = (struct svn_client__shelf_t *)(argp1);
+ result = (svn_client_ctx_t *) ((arg1)->ctx);
+ vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_svn_client_ctx_t, 0 | 0 );
+ return vresult;
+fail:
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_svn_client__shelf_t_pool_set(int argc, VALUE *argv, VALUE self) {
+ struct svn_client__shelf_t *arg1 = (struct svn_client__shelf_t *) 0 ;
+ apr_pool_t *arg2 = (apr_pool_t *) 0 ;
VALUE _global_svn_swig_rb_pool ;
apr_pool_t *_global_pool ;
- int res1 ;
- char *buf1 = 0 ;
- int alloc1 = 0 ;
- void *argp7 = 0 ;
- int res7 = 0 ;
- svn_error_t *result = 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+
+ {
+ svn_swig_rb_get_pool(argc, argv, self, &_global_svn_swig_rb_pool, &arg2);
+ _global_pool = arg2;
+ svn_swig_rb_push_pool(_global_svn_swig_rb_pool);
+ }
+ if ((argc < 0) || (argc > 1)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct svn_client__shelf_t *","pool", 1, self ));
+ }
+ arg1 = (struct svn_client__shelf_t *)(argp1);
+ if (argc > 0) {
+
+ }
+ if (arg1) (arg1)->pool = arg2;
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ return Qnil;
+fail:
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_svn_client__shelf_t_pool_get(int argc, VALUE *argv, VALUE self) {
+ struct svn_client__shelf_t *arg1 = (struct svn_client__shelf_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ apr_pool_t *result = 0 ;
VALUE vresult = Qnil;
+ if ((argc < 0) || (argc > 0)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct svn_client__shelf_t *","pool", 1, self ));
+ }
+ arg1 = (struct svn_client__shelf_t *)(argp1);
+ result = (apr_pool_t *) ((arg1)->pool);
+ vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_apr_pool_t, 0 | 0 );
+ return vresult;
+fail:
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
+#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
+_wrap_svn_client__shelf_t_allocate(VALUE self)
+#else
+_wrap_svn_client__shelf_t_allocate(int argc, VALUE *argv, VALUE self)
+#endif
+{
+ VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_svn_client__shelf_t);
+#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
+ rb_obj_call_init(vresult, argc, argv);
+#endif
+ return vresult;
+}
+
+
+SWIGINTERN VALUE
+_wrap_new_svn_client__shelf_t(int argc, VALUE *argv, VALUE self) {
+ struct svn_client__shelf_t *result = 0 ;
+
+ if ((argc < 0) || (argc > 0)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+ }
{
- int adjusted_argc = argc;
- VALUE *adjusted_argv = argv;
+ result = (struct svn_client__shelf_t *)calloc(1, sizeof(struct svn_client__shelf_t));
+ DATA_PTR(self) = result;
+
+
- svn_swig_rb_adjust_arg_for_client_ctx_and_pool(&adjusted_argc,
- &adjusted_argv);
- svn_swig_rb_get_pool(adjusted_argc, adjusted_argv, self,
- &_global_svn_swig_rb_pool, &arg8);
- _global_pool = arg8;
- svn_swig_rb_push_pool(_global_svn_swig_rb_pool);
}
- if ((argc < 6) || (argc > 8)) {
- rb_raise(rb_eArgError, "wrong # of arguments(%d for 6)",argc); SWIG_fail;
+ return self;
+fail:
+ return Qnil;
+}
+
+
+SWIGINTERN void
+free_svn_client__shelf_t(void *self) {
+ struct svn_client__shelf_t *arg1 = (struct svn_client__shelf_t *)self;
+ free((char *) arg1);
+}
+
+static swig_class SwigClassSvn_client__shelf_version_t;
+
+SWIGINTERN VALUE
+_wrap_svn_client__shelf_version_t_shelf_set(int argc, VALUE *argv, VALUE self) {
+ struct svn_client__shelf_version_t *arg1 = (struct svn_client__shelf_version_t *) 0 ;
+ svn_client__shelf_t *arg2 = (svn_client__shelf_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+
+ if ((argc < 1) || (argc > 1)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
}
- res1 = SWIG_AsCharPtrAndSize(argv[0], &buf1, NULL, &alloc1);
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_client__shelf_version_t, 0 | 0 );
if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "char const *","svn_client_shelve", 1, argv[0] ));
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct svn_client__shelf_version_t *","shelf", 1, self ));
}
- arg1 = (char *)(buf1);
+ arg1 = (struct svn_client__shelf_version_t *)(argp1);
+ res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_svn_client__shelf_t, SWIG_POINTER_DISOWN | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "svn_client__shelf_t *","shelf", 2, argv[0] ));
+ }
+ arg2 = (svn_client__shelf_t *)(argp2);
+ if (arg1) (arg1)->shelf = arg2;
+ return Qnil;
+fail:
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_svn_client__shelf_version_t_shelf_get(int argc, VALUE *argv, VALUE self) {
+ struct svn_client__shelf_version_t *arg1 = (struct svn_client__shelf_version_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ svn_client__shelf_t *result = 0 ;
+ VALUE vresult = Qnil;
+
+ if ((argc < 0) || (argc > 0)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_client__shelf_version_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct svn_client__shelf_version_t *","shelf", 1, self ));
+ }
+ arg1 = (struct svn_client__shelf_version_t *)(argp1);
+ result = (svn_client__shelf_t *) ((arg1)->shelf);
+ vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
+ return vresult;
+fail:
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_svn_client__shelf_version_t_mtime_set(int argc, VALUE *argv, VALUE self) {
+ struct svn_client__shelf_version_t *arg1 = (struct svn_client__shelf_version_t *) 0 ;
+ apr_time_t arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+
+ if ((argc < 1) || (argc > 1)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_client__shelf_version_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct svn_client__shelf_version_t *","mtime", 1, self ));
+ }
+ arg1 = (struct svn_client__shelf_version_t *)(argp1);
{
- arg2 = svn_swig_rb_strings_to_apr_array(argv[1], _global_pool);
+ arg2 = (apr_time_t)NUM2LL(argv[0]);
+ }
+ if (arg1) (arg1)->mtime = arg2;
+ return Qnil;
+fail:
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_svn_client__shelf_version_t_mtime_get(int argc, VALUE *argv, VALUE self) {
+ struct svn_client__shelf_version_t *arg1 = (struct svn_client__shelf_version_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ apr_time_t result;
+ VALUE vresult = Qnil;
+
+ if ((argc < 0) || (argc > 0)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_client__shelf_version_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct svn_client__shelf_version_t *","mtime", 1, self ));
}
+ arg1 = (struct svn_client__shelf_version_t *)(argp1);
+ result = ((arg1)->mtime);
{
- arg3 = svn_swig_rb_to_depth(argv[2]);
+ vresult = LL2NUM((apr_time_t)(result));
+ }
+ return vresult;
+fail:
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_svn_client__shelf_version_t_files_dir_abspath_set(int argc, VALUE *argv, VALUE self) {
+ struct svn_client__shelf_version_t *arg1 = (struct svn_client__shelf_version_t *) 0 ;
+ char *arg2 = (char *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+
+ if ((argc < 1) || (argc > 1)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_client__shelf_version_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct svn_client__shelf_version_t *","files_dir_abspath", 1, self ));
+ }
+ arg1 = (struct svn_client__shelf_version_t *)(argp1);
+ res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","files_dir_abspath", 2, argv[0] ));
}
+ arg2 = (char *)(buf2);
{
- arg4 = (NIL_P(argv[3])) ? NULL :
- svn_swig_rb_strings_to_apr_array(argv[3], _global_pool);
+ apr_size_t len = strlen(arg2) + 1;
+ char *copied;
+ if (arg1->files_dir_abspath) free((char *)arg1->files_dir_abspath);
+ copied = malloc(len);
+ memcpy(copied, arg2, len);
+ arg1->files_dir_abspath = copied;
}
- arg5 = RTEST(argv[4]);
- arg6 = RTEST(argv[5]);
- if (argc > 6) {
- res7 = SWIG_ConvertPtr(argv[6], &argp7,SWIGTYPE_p_svn_client_ctx_t, 0 | 0 );
- if (!SWIG_IsOK(res7)) {
- SWIG_exception_fail(SWIG_ArgError(res7), Ruby_Format_TypeError( "", "svn_client_ctx_t *","svn_client_shelve", 7, argv[6] ));
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ return Qnil;
+fail:
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_svn_client__shelf_version_t_files_dir_abspath_get(int argc, VALUE *argv, VALUE self) {
+ struct svn_client__shelf_version_t *arg1 = (struct svn_client__shelf_version_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ char *result = 0 ;
+ VALUE vresult = Qnil;
+
+ if ((argc < 0) || (argc > 0)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_client__shelf_version_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct svn_client__shelf_version_t *","files_dir_abspath", 1, self ));
+ }
+ arg1 = (struct svn_client__shelf_version_t *)(argp1);
+ result = (char *) ((arg1)->files_dir_abspath);
+ {
+ if (result) {
+ vresult = rb_str_new2(result);
+ } else {
+ vresult = Qnil;
}
- arg7 = (svn_client_ctx_t *)(argp7);
}
- if (argc > 7) {
+ return vresult;
+fail:
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_svn_client__shelf_version_t_version_number_set(int argc, VALUE *argv, VALUE self) {
+ struct svn_client__shelf_version_t *arg1 = (struct svn_client__shelf_version_t *) 0 ;
+ int arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int val2 ;
+ int ecode2 = 0 ;
+
+ if ((argc < 1) || (argc > 1)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_client__shelf_version_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct svn_client__shelf_version_t *","version_number", 1, self ));
+ }
+ arg1 = (struct svn_client__shelf_version_t *)(argp1);
+ ecode2 = SWIG_AsVal_int(argv[0], &val2);
+ if (!SWIG_IsOK(ecode2)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","version_number", 2, argv[0] ));
+ }
+ arg2 = (int)(val2);
+ if (arg1) (arg1)->version_number = arg2;
+ return Qnil;
+fail:
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_svn_client__shelf_version_t_version_number_get(int argc, VALUE *argv, VALUE self) {
+ struct svn_client__shelf_version_t *arg1 = (struct svn_client__shelf_version_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int result;
+ VALUE vresult = Qnil;
+
+ if ((argc < 0) || (argc > 0)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_client__shelf_version_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct svn_client__shelf_version_t *","version_number", 1, self ));
+ }
+ arg1 = (struct svn_client__shelf_version_t *)(argp1);
+ result = (int) ((arg1)->version_number);
+ vresult = SWIG_From_int((int)(result));
+ return vresult;
+fail:
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
+#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
+_wrap_svn_client__shelf_version_t_allocate(VALUE self)
+#else
+_wrap_svn_client__shelf_version_t_allocate(int argc, VALUE *argv, VALUE self)
+#endif
+{
+ VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_svn_client__shelf_version_t);
+#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
+ rb_obj_call_init(vresult, argc, argv);
+#endif
+ return vresult;
+}
+
+
+SWIGINTERN VALUE
+_wrap_new_svn_client__shelf_version_t(int argc, VALUE *argv, VALUE self) {
+ struct svn_client__shelf_version_t *result = 0 ;
+
+ if ((argc < 0) || (argc > 0)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+ }
+ {
+ result = (struct svn_client__shelf_version_t *)calloc(1, sizeof(struct svn_client__shelf_version_t));
+ DATA_PTR(self) = result;
+
+
}
+ return self;
+fail:
+ return Qnil;
+}
+
+
+SWIGINTERN void
+free_svn_client__shelf_version_t(void *self) {
+ struct svn_client__shelf_version_t *arg1 = (struct svn_client__shelf_version_t *)self;
+ free((char *) arg1);
+}
+
+SWIGINTERN VALUE
+_wrap_svn_client__shelf_open_or_create(int argc, VALUE *argv, VALUE self) {
+ svn_client__shelf_t **arg1 = (svn_client__shelf_t **) 0 ;
+ char *arg2 = (char *) 0 ;
+ char *arg3 = (char *) 0 ;
+ svn_client_ctx_t *arg4 = (svn_client_ctx_t *) 0 ;
+ apr_pool_t *arg5 = (apr_pool_t *) 0 ;
+ VALUE _global_svn_swig_rb_pool ;
+ apr_pool_t *_global_pool ;
+ svn_client__shelf_t *temp1 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ int res3 ;
+ char *buf3 = 0 ;
+ int alloc3 = 0 ;
+ void *argp4 = 0 ;
+ int res4 = 0 ;
+ svn_error_t *result = 0 ;
+ VALUE vresult = Qnil;
+
{
- result = (svn_error_t *)svn_client_shelve((char const *)arg1,(apr_array_header_t const *)arg2,arg3,(apr_array_header_t const *)arg4,arg5,arg6,arg7,arg8);
+ svn_swig_rb_get_pool(argc, argv, self, &_global_svn_swig_rb_pool, &arg5);
+ _global_pool = arg5;
+ svn_swig_rb_push_pool(_global_svn_swig_rb_pool);
+ }
+ arg1 = &temp1;
+ if ((argc < 3) || (argc > 4)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
+ }
+ res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","svn_client__shelf_open_or_create", 2, argv[0] ));
+ }
+ arg2 = (char *)(buf2);
+ res3 = SWIG_AsCharPtrAndSize(argv[1], &buf3, NULL, &alloc3);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char const *","svn_client__shelf_open_or_create", 3, argv[1] ));
+ }
+ arg3 = (char *)(buf3);
+ res4 = SWIG_ConvertPtr(argv[2], &argp4,SWIGTYPE_p_svn_client_ctx_t, 0 | 0 );
+ if (!SWIG_IsOK(res4)) {
+ SWIG_exception_fail(SWIG_ArgError(res4), Ruby_Format_TypeError( "", "svn_client_ctx_t *","svn_client__shelf_open_or_create", 4, argv[2] ));
+ }
+ arg4 = (svn_client_ctx_t *)(argp4);
+ if (argc > 3) {
+
+ }
+ {
+ result = (svn_error_t *)svn_client__shelf_open_or_create(arg1,(char const *)arg2,(char const *)arg3,arg4,arg5);
@@ -28646,7 +30254,17 @@ _wrap_svn_client_shelve(int argc, VALUE *argv, VALUE self) {
}
vresult = Qnil;
}
- if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
+ {
+ /* FIXME: Missing argout typemap: svn_client__shelf_open_or_create arg 1 (svn_client__shelf_t **) */
+
+
+
+
+ SWIG_exception(SWIG_ValueError, "svn_client__shelf_open_or_create is not implemented yet");
+
+ }
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
{
VALUE target;
target = _global_vresult_address == &vresult ? self : vresult;
@@ -28656,7 +30274,8 @@ _wrap_svn_client_shelve(int argc, VALUE *argv, VALUE self) {
}
return vresult;
fail:
- if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
{
VALUE target;
target = _global_vresult_address == &vresult ? self : vresult;
@@ -28669,64 +30288,55 @@ fail:
SWIGINTERN VALUE
-_wrap_svn_client_unshelve(int argc, VALUE *argv, VALUE self) {
- char *arg1 = (char *) 0 ;
+_wrap_svn_client__shelf_open_existing(int argc, VALUE *argv, VALUE self) {
+ svn_client__shelf_t **arg1 = (svn_client__shelf_t **) 0 ;
char *arg2 = (char *) 0 ;
- svn_boolean_t arg3 ;
- svn_boolean_t arg4 ;
- svn_client_ctx_t *arg5 = (svn_client_ctx_t *) 0 ;
- apr_pool_t *arg6 = (apr_pool_t *) 0 ;
+ char *arg3 = (char *) 0 ;
+ svn_client_ctx_t *arg4 = (svn_client_ctx_t *) 0 ;
+ apr_pool_t *arg5 = (apr_pool_t *) 0 ;
VALUE _global_svn_swig_rb_pool ;
apr_pool_t *_global_pool ;
- int res1 ;
- char *buf1 = 0 ;
- int alloc1 = 0 ;
+ svn_client__shelf_t *temp1 ;
int res2 ;
char *buf2 = 0 ;
int alloc2 = 0 ;
- void *argp5 = 0 ;
- int res5 = 0 ;
+ int res3 ;
+ char *buf3 = 0 ;
+ int alloc3 = 0 ;
+ void *argp4 = 0 ;
+ int res4 = 0 ;
svn_error_t *result = 0 ;
VALUE vresult = Qnil;
{
- int adjusted_argc = argc;
- VALUE *adjusted_argv = argv;
-
- svn_swig_rb_adjust_arg_for_client_ctx_and_pool(&adjusted_argc,
- &adjusted_argv);
- svn_swig_rb_get_pool(adjusted_argc, adjusted_argv, self,
- &_global_svn_swig_rb_pool, &arg6);
- _global_pool = arg6;
+ svn_swig_rb_get_pool(argc, argv, self, &_global_svn_swig_rb_pool, &arg5);
+ _global_pool = arg5;
svn_swig_rb_push_pool(_global_svn_swig_rb_pool);
}
- if ((argc < 4) || (argc > 6)) {
- rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
- }
- res1 = SWIG_AsCharPtrAndSize(argv[0], &buf1, NULL, &alloc1);
- if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "char const *","svn_client_unshelve", 1, argv[0] ));
+ arg1 = &temp1;
+ if ((argc < 3) || (argc > 4)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
}
- arg1 = (char *)(buf1);
- res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
+ res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2);
if (!SWIG_IsOK(res2)) {
- SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","svn_client_unshelve", 2, argv[1] ));
+ SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","svn_client__shelf_open_existing", 2, argv[0] ));
}
arg2 = (char *)(buf2);
- arg3 = RTEST(argv[2]);
- arg4 = RTEST(argv[3]);
- if (argc > 4) {
- res5 = SWIG_ConvertPtr(argv[4], &argp5,SWIGTYPE_p_svn_client_ctx_t, 0 | 0 );
- if (!SWIG_IsOK(res5)) {
- SWIG_exception_fail(SWIG_ArgError(res5), Ruby_Format_TypeError( "", "svn_client_ctx_t *","svn_client_unshelve", 5, argv[4] ));
- }
- arg5 = (svn_client_ctx_t *)(argp5);
+ res3 = SWIG_AsCharPtrAndSize(argv[1], &buf3, NULL, &alloc3);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char const *","svn_client__shelf_open_existing", 3, argv[1] ));
}
- if (argc > 5) {
+ arg3 = (char *)(buf3);
+ res4 = SWIG_ConvertPtr(argv[2], &argp4,SWIGTYPE_p_svn_client_ctx_t, 0 | 0 );
+ if (!SWIG_IsOK(res4)) {
+ SWIG_exception_fail(SWIG_ArgError(res4), Ruby_Format_TypeError( "", "svn_client_ctx_t *","svn_client__shelf_open_existing", 4, argv[2] ));
+ }
+ arg4 = (svn_client_ctx_t *)(argp4);
+ if (argc > 3) {
}
{
- result = (svn_error_t *)svn_client_unshelve((char const *)arg1,(char const *)arg2,arg3,arg4,arg5,arg6);
+ result = (svn_error_t *)svn_client__shelf_open_existing(arg1,(char const *)arg2,(char const *)arg3,arg4,arg5);
@@ -28739,8 +30349,17 @@ _wrap_svn_client_unshelve(int argc, VALUE *argv, VALUE self) {
}
vresult = Qnil;
}
- if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
+ {
+ /* FIXME: Missing argout typemap: svn_client__shelf_open_existing arg 1 (svn_client__shelf_t **) */
+
+
+
+
+ SWIG_exception(SWIG_ValueError, "svn_client__shelf_open_existing is not implemented yet");
+
+ }
if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
{
VALUE target;
target = _global_vresult_address == &vresult ? self : vresult;
@@ -28750,8 +30369,8 @@ _wrap_svn_client_unshelve(int argc, VALUE *argv, VALUE self) {
}
return vresult;
fail:
- if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
{
VALUE target;
target = _global_vresult_address == &vresult ? self : vresult;
@@ -28764,7 +30383,68 @@ fail:
SWIGINTERN VALUE
-_wrap_svn_client_shelves_delete(int argc, VALUE *argv, VALUE self) {
+_wrap_svn_client__shelf_close(int argc, VALUE *argv, VALUE self) {
+ svn_client__shelf_t *arg1 = (svn_client__shelf_t *) 0 ;
+ apr_pool_t *arg2 = (apr_pool_t *) 0 ;
+ VALUE _global_svn_swig_rb_pool ;
+ apr_pool_t *_global_pool ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ svn_error_t *result = 0 ;
+ VALUE vresult = Qnil;
+
+ {
+ svn_swig_rb_get_pool(argc, argv, self, &_global_svn_swig_rb_pool, &arg2);
+ _global_pool = arg2;
+ svn_swig_rb_push_pool(_global_svn_swig_rb_pool);
+ }
+ if ((argc < 1) || (argc > 2)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "svn_client__shelf_t *","svn_client__shelf_close", 1, argv[0] ));
+ }
+ arg1 = (svn_client__shelf_t *)(argp1);
+ if (argc > 1) {
+
+ }
+ {
+ result = (svn_error_t *)svn_client__shelf_close(arg1,arg2);
+
+
+
+ }
+ {
+ if (result) {
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_handle_svn_error(result);
+ }
+ vresult = Qnil;
+ }
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ return vresult;
+fail:
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_svn_client__shelf_delete(int argc, VALUE *argv, VALUE self) {
char *arg1 = (char *) 0 ;
char *arg2 = (char *) 0 ;
svn_boolean_t arg3 ;
@@ -28784,42 +30464,34 @@ _wrap_svn_client_shelves_delete(int argc, VALUE *argv, VALUE self) {
VALUE vresult = Qnil;
{
- int adjusted_argc = argc;
- VALUE *adjusted_argv = argv;
-
- svn_swig_rb_adjust_arg_for_client_ctx_and_pool(&adjusted_argc,
- &adjusted_argv);
- svn_swig_rb_get_pool(adjusted_argc, adjusted_argv, self,
- &_global_svn_swig_rb_pool, &arg5);
+ svn_swig_rb_get_pool(argc, argv, self, &_global_svn_swig_rb_pool, &arg5);
_global_pool = arg5;
svn_swig_rb_push_pool(_global_svn_swig_rb_pool);
}
- if ((argc < 3) || (argc > 5)) {
- rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
+ if ((argc < 4) || (argc > 5)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
}
res1 = SWIG_AsCharPtrAndSize(argv[0], &buf1, NULL, &alloc1);
if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "char const *","svn_client_shelves_delete", 1, argv[0] ));
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "char const *","svn_client__shelf_delete", 1, argv[0] ));
}
arg1 = (char *)(buf1);
res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
if (!SWIG_IsOK(res2)) {
- SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","svn_client_shelves_delete", 2, argv[1] ));
+ SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","svn_client__shelf_delete", 2, argv[1] ));
}
arg2 = (char *)(buf2);
arg3 = RTEST(argv[2]);
- if (argc > 3) {
- res4 = SWIG_ConvertPtr(argv[3], &argp4,SWIGTYPE_p_svn_client_ctx_t, 0 | 0 );
- if (!SWIG_IsOK(res4)) {
- SWIG_exception_fail(SWIG_ArgError(res4), Ruby_Format_TypeError( "", "svn_client_ctx_t *","svn_client_shelves_delete", 4, argv[3] ));
- }
- arg4 = (svn_client_ctx_t *)(argp4);
+ res4 = SWIG_ConvertPtr(argv[3], &argp4,SWIGTYPE_p_svn_client_ctx_t, 0 | 0 );
+ if (!SWIG_IsOK(res4)) {
+ SWIG_exception_fail(SWIG_ArgError(res4), Ruby_Format_TypeError( "", "svn_client_ctx_t *","svn_client__shelf_delete", 4, argv[3] ));
}
+ arg4 = (svn_client_ctx_t *)(argp4);
if (argc > 4) {
}
{
- result = (svn_error_t *)svn_client_shelves_delete((char const *)arg1,(char const *)arg2,arg3,arg4,arg5);
+ result = (svn_error_t *)svn_client__shelf_delete((char const *)arg1,(char const *)arg2,arg3,arg4,arg5);
@@ -28856,306 +30528,797 @@ fail:
}
-static swig_class SwigClassSvn_client_shelved_patch_info_t;
-
SWIGINTERN VALUE
-_wrap_svn_client_shelved_patch_info_t_message_set(int argc, VALUE *argv, VALUE self) {
- struct svn_client_shelved_patch_info_t *arg1 = (struct svn_client_shelved_patch_info_t *) 0 ;
- char *arg2 = (char *) 0 ;
- void *argp1 = 0 ;
- int res1 = 0 ;
- int res2 ;
- char *buf2 = 0 ;
- int alloc2 = 0 ;
+_wrap_svn_client__shelf_save_new_version3(int argc, VALUE *argv, VALUE self) {
+ svn_client__shelf_version_t **arg1 = (svn_client__shelf_version_t **) 0 ;
+ svn_client__shelf_t *arg2 = (svn_client__shelf_t *) 0 ;
+ apr_array_header_t *arg3 = (apr_array_header_t *) 0 ;
+ svn_depth_t arg4 ;
+ apr_array_header_t *arg5 = (apr_array_header_t *) 0 ;
+ svn_client_status_func_t arg6 = (svn_client_status_func_t) 0 ;
+ void *arg7 = (void *) 0 ;
+ svn_client_status_func_t arg8 = (svn_client_status_func_t) 0 ;
+ void *arg9 = (void *) 0 ;
+ apr_pool_t *arg10 = (apr_pool_t *) 0 ;
+ VALUE _global_svn_swig_rb_pool ;
+ apr_pool_t *_global_pool ;
+ svn_client__shelf_version_t *temp1 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ int res7 ;
+ int res9 ;
+ svn_error_t *result = 0 ;
+ VALUE vresult = Qnil;
- if ((argc < 1) || (argc > 1)) {
- rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+ {
+ svn_swig_rb_get_pool(argc, argv, self, &_global_svn_swig_rb_pool, &arg10);
+ _global_pool = arg10;
+ svn_swig_rb_push_pool(_global_svn_swig_rb_pool);
}
- res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_client_shelved_patch_info_t, 0 | 0 );
- if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct svn_client_shelved_patch_info_t *","message", 1, self ));
+ arg1 = &temp1;
+ if ((argc < 8) || (argc > 9)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 8)",argc); SWIG_fail;
}
- arg1 = (struct svn_client_shelved_patch_info_t *)(argp1);
- res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2);
+ res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
if (!SWIG_IsOK(res2)) {
- SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","message", 2, argv[0] ));
+ SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "svn_client__shelf_t *","svn_client__shelf_save_new_version3", 2, argv[0] ));
}
- arg2 = (char *)(buf2);
+ arg2 = (svn_client__shelf_t *)(argp2);
{
- apr_size_t len = strlen(arg2) + 1;
- char *copied;
- if (arg1->message) free((char *)arg1->message);
- copied = malloc(len);
- memcpy(copied, arg2, len);
- arg1->message = copied;
+ arg3 = svn_swig_rb_strings_to_apr_array(argv[1], _global_pool);
}
- if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
- return Qnil;
+ {
+ arg4 = svn_swig_rb_to_depth(argv[2]);
+ }
+ {
+ arg5 = (NIL_P(argv[3])) ? NULL :
+ svn_swig_rb_strings_to_apr_array(argv[3], _global_pool);
+ }
+ {
+ int res = SWIG_ConvertFunctionPtr(argv[4], (void**)(&arg6), SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__svn_client_status_t_p_apr_pool_t__p_svn_error_t);
+ if (!SWIG_IsOK(res)) {
+ SWIG_exception_fail(SWIG_ArgError(res), Ruby_Format_TypeError( "", "svn_client_status_func_t","svn_client__shelf_save_new_version3", 6, argv[4] ));
+ }
+ }
+ res7 = SWIG_ConvertPtr(argv[5],SWIG_as_voidptrptr(&arg7), 0, 0);
+ if (!SWIG_IsOK(res7)) {
+ SWIG_exception_fail(SWIG_ArgError(res7), Ruby_Format_TypeError( "", "void *","svn_client__shelf_save_new_version3", 7, argv[5] ));
+ }
+ {
+ int res = SWIG_ConvertFunctionPtr(argv[6], (void**)(&arg8), SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__svn_client_status_t_p_apr_pool_t__p_svn_error_t);
+ if (!SWIG_IsOK(res)) {
+ SWIG_exception_fail(SWIG_ArgError(res), Ruby_Format_TypeError( "", "svn_client_status_func_t","svn_client__shelf_save_new_version3", 8, argv[6] ));
+ }
+ }
+ res9 = SWIG_ConvertPtr(argv[7],SWIG_as_voidptrptr(&arg9), 0, 0);
+ if (!SWIG_IsOK(res9)) {
+ SWIG_exception_fail(SWIG_ArgError(res9), Ruby_Format_TypeError( "", "void *","svn_client__shelf_save_new_version3", 9, argv[7] ));
+ }
+ if (argc > 8) {
+
+ }
+ {
+ result = (svn_error_t *)svn_client__shelf_save_new_version3(arg1,arg2,(apr_array_header_t const *)arg3,arg4,(apr_array_header_t const *)arg5,arg6,arg7,arg8,arg9,arg10);
+
+
+
+ }
+ {
+ if (result) {
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_handle_svn_error(result);
+ }
+ vresult = Qnil;
+ }
+ {
+ /* FIXME: Missing argout typemap: svn_client__shelf_save_new_version3 arg 1 (svn_client__shelf_version_t **) */
+
+
+
+
+ SWIG_exception(SWIG_ValueError, "svn_client__shelf_save_new_version3 is not implemented yet");
+
+ }
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ return vresult;
fail:
- if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
return Qnil;
}
SWIGINTERN VALUE
-_wrap_svn_client_shelved_patch_info_t_message_get(int argc, VALUE *argv, VALUE self) {
- struct svn_client_shelved_patch_info_t *arg1 = (struct svn_client_shelved_patch_info_t *) 0 ;
+_wrap_svn_client__shelf_delete_newer_versions(int argc, VALUE *argv, VALUE self) {
+ svn_client__shelf_t *arg1 = (svn_client__shelf_t *) 0 ;
+ svn_client__shelf_version_t *arg2 = (svn_client__shelf_version_t *) 0 ;
+ apr_pool_t *arg3 = (apr_pool_t *) 0 ;
+ VALUE _global_svn_swig_rb_pool ;
+ apr_pool_t *_global_pool ;
void *argp1 = 0 ;
int res1 = 0 ;
- char *result = 0 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ svn_error_t *result = 0 ;
VALUE vresult = Qnil;
- if ((argc < 0) || (argc > 0)) {
- rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+ {
+ svn_swig_rb_get_pool(argc, argv, self, &_global_svn_swig_rb_pool, &arg3);
+ _global_pool = arg3;
+ svn_swig_rb_push_pool(_global_svn_swig_rb_pool);
+ }
+ if ((argc < 2) || (argc > 3)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
}
- res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_client_shelved_patch_info_t, 0 | 0 );
+ res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct svn_client_shelved_patch_info_t *","message", 1, self ));
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "svn_client__shelf_t *","svn_client__shelf_delete_newer_versions", 1, argv[0] ));
+ }
+ arg1 = (svn_client__shelf_t *)(argp1);
+ res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_svn_client__shelf_version_t, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "svn_client__shelf_version_t *","svn_client__shelf_delete_newer_versions", 2, argv[1] ));
+ }
+ arg2 = (svn_client__shelf_version_t *)(argp2);
+ if (argc > 2) {
+
+ }
+ {
+ result = (svn_error_t *)svn_client__shelf_delete_newer_versions(arg1,arg2,arg3);
+
+
+
}
- arg1 = (struct svn_client_shelved_patch_info_t *)(argp1);
- result = (char *) ((arg1)->message);
{
if (result) {
- vresult = rb_str_new2(result);
- } else {
- vresult = Qnil;
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_handle_svn_error(result);
}
+ vresult = Qnil;
+ }
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
}
return vresult;
fail:
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
return Qnil;
}
SWIGINTERN VALUE
-_wrap_svn_client_shelved_patch_info_t_patch_path_set(int argc, VALUE *argv, VALUE self) {
- struct svn_client_shelved_patch_info_t *arg1 = (struct svn_client_shelved_patch_info_t *) 0 ;
- char *arg2 = (char *) 0 ;
- void *argp1 = 0 ;
- int res1 = 0 ;
- int res2 ;
- char *buf2 = 0 ;
- int alloc2 = 0 ;
+_wrap_svn_client__shelf_version_open(int argc, VALUE *argv, VALUE self) {
+ svn_client__shelf_version_t **arg1 = (svn_client__shelf_version_t **) 0 ;
+ svn_client__shelf_t *arg2 = (svn_client__shelf_t *) 0 ;
+ int arg3 ;
+ apr_pool_t *arg4 = (apr_pool_t *) 0 ;
+ apr_pool_t *arg5 = (apr_pool_t *) 0 ;
+ VALUE _global_svn_swig_rb_pool ;
+ apr_pool_t *_global_pool ;
+ svn_client__shelf_version_t *temp1 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ int val3 ;
+ int ecode3 = 0 ;
+ svn_error_t *result = 0 ;
+ VALUE vresult = Qnil;
- if ((argc < 1) || (argc > 1)) {
- rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+ {
+ svn_swig_rb_get_pool(argc, argv, self, &_global_svn_swig_rb_pool, &arg4);
+ _global_pool = arg4;
+ svn_swig_rb_push_pool(_global_svn_swig_rb_pool);
}
- res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_client_shelved_patch_info_t, 0 | 0 );
- if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct svn_client_shelved_patch_info_t *","patch_path", 1, self ));
+ {
+ svn_swig_rb_get_pool(argc, argv, self, &_global_svn_swig_rb_pool, &arg5);
+ _global_pool = arg5;
+ svn_swig_rb_push_pool(_global_svn_swig_rb_pool);
}
- arg1 = (struct svn_client_shelved_patch_info_t *)(argp1);
- res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2);
+ arg1 = &temp1;
+ if ((argc < 2) || (argc > 4)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
+ }
+ res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
if (!SWIG_IsOK(res2)) {
- SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","patch_path", 2, argv[0] ));
+ SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "svn_client__shelf_t *","svn_client__shelf_version_open", 2, argv[0] ));
+ }
+ arg2 = (svn_client__shelf_t *)(argp2);
+ ecode3 = SWIG_AsVal_int(argv[1], &val3);
+ if (!SWIG_IsOK(ecode3)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "int","svn_client__shelf_version_open", 3, argv[1] ));
+ }
+ arg3 = (int)(val3);
+ if (argc > 2) {
+
+ }
+ if (argc > 3) {
+
}
- arg2 = (char *)(buf2);
{
- apr_size_t len = strlen(arg2) + 1;
- char *copied;
- if (arg1->patch_path) free((char *)arg1->patch_path);
- copied = malloc(len);
- memcpy(copied, arg2, len);
- arg1->patch_path = copied;
+ result = (svn_error_t *)svn_client__shelf_version_open(arg1,arg2,arg3,arg4,arg5);
+
+
+
}
- if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
- return Qnil;
+ {
+ if (result) {
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_handle_svn_error(result);
+ }
+ vresult = Qnil;
+ }
+ {
+ /* FIXME: Missing argout typemap: svn_client__shelf_version_open arg 1 (svn_client__shelf_version_t **) */
+
+
+
+
+ SWIG_exception(SWIG_ValueError, "svn_client__shelf_version_open is not implemented yet");
+
+ }
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ return vresult;
fail:
- if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
return Qnil;
}
SWIGINTERN VALUE
-_wrap_svn_client_shelved_patch_info_t_patch_path_get(int argc, VALUE *argv, VALUE self) {
- struct svn_client_shelved_patch_info_t *arg1 = (struct svn_client_shelved_patch_info_t *) 0 ;
- void *argp1 = 0 ;
- int res1 = 0 ;
- char *result = 0 ;
+_wrap_svn_client__shelf_get_newest_version(int argc, VALUE *argv, VALUE self) {
+ svn_client__shelf_version_t **arg1 = (svn_client__shelf_version_t **) 0 ;
+ svn_client__shelf_t *arg2 = (svn_client__shelf_t *) 0 ;
+ apr_pool_t *arg3 = (apr_pool_t *) 0 ;
+ apr_pool_t *arg4 = (apr_pool_t *) 0 ;
+ VALUE _global_svn_swig_rb_pool ;
+ apr_pool_t *_global_pool ;
+ svn_client__shelf_version_t *temp1 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ svn_error_t *result = 0 ;
VALUE vresult = Qnil;
- if ((argc < 0) || (argc > 0)) {
- rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+ {
+ svn_swig_rb_get_pool(argc, argv, self, &_global_svn_swig_rb_pool, &arg3);
+ _global_pool = arg3;
+ svn_swig_rb_push_pool(_global_svn_swig_rb_pool);
}
- res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_client_shelved_patch_info_t, 0 | 0 );
- if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct svn_client_shelved_patch_info_t *","patch_path", 1, self ));
+ {
+ svn_swig_rb_get_pool(argc, argv, self, &_global_svn_swig_rb_pool, &arg4);
+ _global_pool = arg4;
+ svn_swig_rb_push_pool(_global_svn_swig_rb_pool);
+ }
+ arg1 = &temp1;
+ if ((argc < 1) || (argc > 3)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+ }
+ res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "svn_client__shelf_t *","svn_client__shelf_get_newest_version", 2, argv[0] ));
+ }
+ arg2 = (svn_client__shelf_t *)(argp2);
+ if (argc > 1) {
+
+ }
+ if (argc > 2) {
+
+ }
+ {
+ result = (svn_error_t *)svn_client__shelf_get_newest_version(arg1,arg2,arg3,arg4);
+
+
+
}
- arg1 = (struct svn_client_shelved_patch_info_t *)(argp1);
- result = (char *) ((arg1)->patch_path);
{
if (result) {
- vresult = rb_str_new2(result);
- } else {
- vresult = Qnil;
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_handle_svn_error(result);
}
+ vresult = Qnil;
+ }
+ {
+ /* FIXME: Missing argout typemap: svn_client__shelf_get_newest_version arg 1 (svn_client__shelf_version_t **) */
+
+
+
+
+ SWIG_exception(SWIG_ValueError, "svn_client__shelf_get_newest_version is not implemented yet");
+
+ }
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
}
return vresult;
fail:
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
return Qnil;
}
SWIGINTERN VALUE
-_wrap_svn_client_shelved_patch_info_t_dirent_set(int argc, VALUE *argv, VALUE self) {
- struct svn_client_shelved_patch_info_t *arg1 = (struct svn_client_shelved_patch_info_t *) 0 ;
- svn_io_dirent2_t *arg2 = (svn_io_dirent2_t *) 0 ;
- void *argp1 = 0 ;
- int res1 = 0 ;
+_wrap_svn_client__shelf_get_all_versions(int argc, VALUE *argv, VALUE self) {
+ apr_array_header_t **arg1 = (apr_array_header_t **) 0 ;
+ svn_client__shelf_t *arg2 = (svn_client__shelf_t *) 0 ;
+ apr_pool_t *arg3 = (apr_pool_t *) 0 ;
+ apr_pool_t *arg4 = (apr_pool_t *) 0 ;
+ VALUE _global_svn_swig_rb_pool ;
+ apr_pool_t *_global_pool ;
+ apr_array_header_t *temp1 ;
void *argp2 = 0 ;
int res2 = 0 ;
+ svn_error_t *result = 0 ;
+ VALUE vresult = Qnil;
- if ((argc < 1) || (argc > 1)) {
- rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+ {
+ svn_swig_rb_get_pool(argc, argv, self, &_global_svn_swig_rb_pool, &arg3);
+ _global_pool = arg3;
+ svn_swig_rb_push_pool(_global_svn_swig_rb_pool);
}
- res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_client_shelved_patch_info_t, 0 | 0 );
- if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct svn_client_shelved_patch_info_t *","dirent", 1, self ));
+ {
+ svn_swig_rb_get_pool(argc, argv, self, &_global_svn_swig_rb_pool, &arg4);
+ _global_pool = arg4;
+ svn_swig_rb_push_pool(_global_svn_swig_rb_pool);
+ }
+ arg1 = &temp1;
+ if ((argc < 1) || (argc > 3)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
}
- arg1 = (struct svn_client_shelved_patch_info_t *)(argp1);
- res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_svn_io_dirent2_t, SWIG_POINTER_DISOWN | 0 );
+ res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
if (!SWIG_IsOK(res2)) {
- SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "svn_io_dirent2_t *","dirent", 2, argv[0] ));
+ SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "svn_client__shelf_t *","svn_client__shelf_get_all_versions", 2, argv[0] ));
}
- arg2 = (svn_io_dirent2_t *)(argp2);
- if (arg1) (arg1)->dirent = arg2;
- return Qnil;
+ arg2 = (svn_client__shelf_t *)(argp2);
+ if (argc > 1) {
+
+ }
+ if (argc > 2) {
+
+ }
+ {
+ result = (svn_error_t *)svn_client__shelf_get_all_versions(arg1,arg2,arg3,arg4);
+
+
+
+ }
+ {
+ if (result) {
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_handle_svn_error(result);
+ }
+ vresult = Qnil;
+ }
+ {
+ /* FIXME: Missing argout typemap: svn_client__shelf_get_all_versions arg 1 (apr_array_header_t **) */
+
+
+
+
+ SWIG_exception(SWIG_ValueError, "svn_client__shelf_get_all_versions is not implemented yet");
+
+ }
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ return vresult;
fail:
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
return Qnil;
}
SWIGINTERN VALUE
-_wrap_svn_client_shelved_patch_info_t_dirent_get(int argc, VALUE *argv, VALUE self) {
- struct svn_client_shelved_patch_info_t *arg1 = (struct svn_client_shelved_patch_info_t *) 0 ;
+_wrap_svn_client__shelf_apply(int argc, VALUE *argv, VALUE self) {
+ svn_client__shelf_version_t *arg1 = (svn_client__shelf_version_t *) 0 ;
+ svn_boolean_t arg2 ;
+ apr_pool_t *arg3 = (apr_pool_t *) 0 ;
+ VALUE _global_svn_swig_rb_pool ;
+ apr_pool_t *_global_pool ;
void *argp1 = 0 ;
int res1 = 0 ;
- svn_io_dirent2_t *result = 0 ;
+ svn_error_t *result = 0 ;
VALUE vresult = Qnil;
- if ((argc < 0) || (argc > 0)) {
- rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+ {
+ svn_swig_rb_get_pool(argc, argv, self, &_global_svn_swig_rb_pool, &arg3);
+ _global_pool = arg3;
+ svn_swig_rb_push_pool(_global_svn_swig_rb_pool);
+ }
+ if ((argc < 2) || (argc > 3)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
}
- res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_client_shelved_patch_info_t, 0 | 0 );
+ res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_svn_client__shelf_version_t, 0 | 0 );
if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct svn_client_shelved_patch_info_t *","dirent", 1, self ));
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "svn_client__shelf_version_t *","svn_client__shelf_apply", 1, argv[0] ));
+ }
+ arg1 = (svn_client__shelf_version_t *)(argp1);
+ arg2 = RTEST(argv[1]);
+ if (argc > 2) {
+
+ }
+ {
+ result = (svn_error_t *)svn_client__shelf_apply(arg1,arg2,arg3);
+
+
+
+ }
+ {
+ if (result) {
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_handle_svn_error(result);
+ }
+ vresult = Qnil;
+ }
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
}
- arg1 = (struct svn_client_shelved_patch_info_t *)(argp1);
- result = (svn_io_dirent2_t *) ((arg1)->dirent);
- vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_svn_io_dirent2_t, 0 | 0 );
return vresult;
fail:
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
return Qnil;
}
SWIGINTERN VALUE
-_wrap_svn_client_shelved_patch_info_t_mtime_set(int argc, VALUE *argv, VALUE self) {
- struct svn_client_shelved_patch_info_t *arg1 = (struct svn_client_shelved_patch_info_t *) 0 ;
- apr_time_t arg2 ;
- void *argp1 = 0 ;
- int res1 = 0 ;
+_wrap_svn_client__shelf_test_apply_file(int argc, VALUE *argv, VALUE self) {
+ svn_boolean_t *arg1 = (svn_boolean_t *) 0 ;
+ svn_client__shelf_version_t *arg2 = (svn_client__shelf_version_t *) 0 ;
+ char *arg3 = (char *) 0 ;
+ apr_pool_t *arg4 = (apr_pool_t *) 0 ;
+ VALUE _global_svn_swig_rb_pool ;
+ apr_pool_t *_global_pool ;
+ svn_boolean_t temp1 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ int res3 ;
+ char *buf3 = 0 ;
+ int alloc3 = 0 ;
+ svn_error_t *result = 0 ;
+ VALUE vresult = Qnil;
- if ((argc < 1) || (argc > 1)) {
- rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+ {
+ svn_swig_rb_get_pool(argc, argv, self, &_global_svn_swig_rb_pool, &arg4);
+ _global_pool = arg4;
+ svn_swig_rb_push_pool(_global_svn_swig_rb_pool);
}
- res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_client_shelved_patch_info_t, 0 | 0 );
- if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct svn_client_shelved_patch_info_t *","mtime", 1, self ));
+ arg1 = &temp1;
+ if ((argc < 2) || (argc > 3)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
+ }
+ res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_svn_client__shelf_version_t, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "svn_client__shelf_version_t *","svn_client__shelf_test_apply_file", 2, argv[0] ));
+ }
+ arg2 = (svn_client__shelf_version_t *)(argp2);
+ res3 = SWIG_AsCharPtrAndSize(argv[1], &buf3, NULL, &alloc3);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char const *","svn_client__shelf_test_apply_file", 3, argv[1] ));
+ }
+ arg3 = (char *)(buf3);
+ if (argc > 2) {
+
}
- arg1 = (struct svn_client_shelved_patch_info_t *)(argp1);
{
- arg2 = (apr_time_t)NUM2LL(argv[0]);
+ result = (svn_error_t *)svn_client__shelf_test_apply_file(arg1,arg2,(char const *)arg3,arg4);
+
+
+
}
- if (arg1) (arg1)->mtime = arg2;
- return Qnil;
+ {
+ if (result) {
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_handle_svn_error(result);
+ }
+ vresult = Qnil;
+ }
+ {
+ vresult = SWIG_Ruby_AppendOutput(vresult, *arg1 ? Qtrue : Qfalse);
+ }
+ if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ return vresult;
fail:
+ if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
return Qnil;
}
SWIGINTERN VALUE
-_wrap_svn_client_shelved_patch_info_t_mtime_get(int argc, VALUE *argv, VALUE self) {
- struct svn_client_shelved_patch_info_t *arg1 = (struct svn_client_shelved_patch_info_t *) 0 ;
+_wrap_svn_client__shelf_unapply(int argc, VALUE *argv, VALUE self) {
+ svn_client__shelf_version_t *arg1 = (svn_client__shelf_version_t *) 0 ;
+ svn_boolean_t arg2 ;
+ apr_pool_t *arg3 = (apr_pool_t *) 0 ;
+ VALUE _global_svn_swig_rb_pool ;
+ apr_pool_t *_global_pool ;
void *argp1 = 0 ;
int res1 = 0 ;
- apr_time_t result;
+ svn_error_t *result = 0 ;
VALUE vresult = Qnil;
- if ((argc < 0) || (argc > 0)) {
- rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+ {
+ svn_swig_rb_get_pool(argc, argv, self, &_global_svn_swig_rb_pool, &arg3);
+ _global_pool = arg3;
+ svn_swig_rb_push_pool(_global_svn_swig_rb_pool);
+ }
+ if ((argc < 2) || (argc > 3)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
}
- res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_client_shelved_patch_info_t, 0 | 0 );
+ res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_svn_client__shelf_version_t, 0 | 0 );
if (!SWIG_IsOK(res1)) {
- SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct svn_client_shelved_patch_info_t *","mtime", 1, self ));
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "svn_client__shelf_version_t *","svn_client__shelf_unapply", 1, argv[0] ));
+ }
+ arg1 = (svn_client__shelf_version_t *)(argp1);
+ arg2 = RTEST(argv[1]);
+ if (argc > 2) {
+
}
- arg1 = (struct svn_client_shelved_patch_info_t *)(argp1);
- result = ((arg1)->mtime);
{
- vresult = LL2NUM((apr_time_t)(result));
+ result = (svn_error_t *)svn_client__shelf_unapply(arg1,arg2,arg3);
+
+
+
+ }
+ {
+ if (result) {
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_handle_svn_error(result);
+ }
+ vresult = Qnil;
+ }
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
}
return vresult;
fail:
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
return Qnil;
}
SWIGINTERN VALUE
-#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
-_wrap_svn_client_shelved_patch_info_t_allocate(VALUE self)
-#else
-_wrap_svn_client_shelved_patch_info_t_allocate(int argc, VALUE *argv, VALUE self)
-#endif
-{
- VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_svn_client_shelved_patch_info_t);
-#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
- rb_obj_call_init(vresult, argc, argv);
-#endif
- return vresult;
-}
-
-
-SWIGINTERN VALUE
-_wrap_new_svn_client_shelved_patch_info_t(int argc, VALUE *argv, VALUE self) {
- struct svn_client_shelved_patch_info_t *result = 0 ;
+_wrap_svn_client__shelf_paths_changed(int argc, VALUE *argv, VALUE self) {
+ apr_hash_t **arg1 = (apr_hash_t **) 0 ;
+ svn_client__shelf_version_t *arg2 = (svn_client__shelf_version_t *) 0 ;
+ apr_pool_t *arg3 = (apr_pool_t *) 0 ;
+ apr_pool_t *arg4 = (apr_pool_t *) 0 ;
+ VALUE _global_svn_swig_rb_pool ;
+ apr_pool_t *_global_pool ;
+ apr_hash_t *temp1 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ svn_error_t *result = 0 ;
+ VALUE vresult = Qnil;
- if ((argc < 0) || (argc > 0)) {
- rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+ {
+ svn_swig_rb_get_pool(argc, argv, self, &_global_svn_swig_rb_pool, &arg3);
+ _global_pool = arg3;
+ svn_swig_rb_push_pool(_global_svn_swig_rb_pool);
}
{
- result = (struct svn_client_shelved_patch_info_t *)calloc(1, sizeof(struct svn_client_shelved_patch_info_t));
- DATA_PTR(self) = result;
+ svn_swig_rb_get_pool(argc, argv, self, &_global_svn_swig_rb_pool, &arg4);
+ _global_pool = arg4;
+ svn_swig_rb_push_pool(_global_svn_swig_rb_pool);
+ }
+ arg1 = &temp1;
+ if ((argc < 1) || (argc > 3)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+ }
+ res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_svn_client__shelf_version_t, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "svn_client__shelf_version_t *","svn_client__shelf_paths_changed", 2, argv[0] ));
+ }
+ arg2 = (svn_client__shelf_version_t *)(argp2);
+ if (argc > 1) {
+
+ }
+ if (argc > 2) {
+
+ }
+ {
+ result = (svn_error_t *)svn_client__shelf_paths_changed(arg1,arg2,arg3,arg4);
}
- return self;
+ {
+ if (result) {
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_handle_svn_error(result);
+ }
+ vresult = Qnil;
+ }
+ {
+ /* FIXME: Missing argout typemap: svn_client__shelf_paths_changed arg 1 (apr_hash_t **) */
+
+
+
+
+ SWIG_exception(SWIG_ValueError, "svn_client__shelf_paths_changed is not implemented yet");
+
+ }
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ return vresult;
fail:
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
return Qnil;
}
-SWIGINTERN void
-free_svn_client_shelved_patch_info_t(void *self) {
- struct svn_client_shelved_patch_info_t *arg1 = (struct svn_client_shelved_patch_info_t *)self;
- free((char *) arg1);
-}
-
SWIGINTERN VALUE
-_wrap_svn_client_shelves_list(int argc, VALUE *argv, VALUE self) {
- apr_hash_t **arg1 = (apr_hash_t **) 0 ;
+_wrap_svn_client__shelf_revprop_set(int argc, VALUE *argv, VALUE self) {
+ svn_client__shelf_t *arg1 = (svn_client__shelf_t *) 0 ;
char *arg2 = (char *) 0 ;
- svn_client_ctx_t *arg3 = (svn_client_ctx_t *) 0 ;
+ svn_string_t *arg3 = (svn_string_t *) 0 ;
apr_pool_t *arg4 = (apr_pool_t *) 0 ;
- apr_pool_t *arg5 = (apr_pool_t *) 0 ;
VALUE _global_svn_swig_rb_pool ;
apr_pool_t *_global_pool ;
- apr_hash_t *temp1 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
int res2 ;
char *buf2 = 0 ;
int alloc2 = 0 ;
- void *argp3 = 0 ;
- int res3 = 0 ;
+ svn_string_t value3 ;
svn_error_t *result = 0 ;
VALUE vresult = Qnil;
@@ -29164,33 +31327,33 @@ _wrap_svn_client_shelves_list(int argc, VALUE *argv, VALUE self) {
_global_pool = arg4;
svn_swig_rb_push_pool(_global_svn_swig_rb_pool);
}
- {
- svn_swig_rb_get_pool(argc, argv, self, &_global_svn_swig_rb_pool, &arg5);
- _global_pool = arg5;
- svn_swig_rb_push_pool(_global_svn_swig_rb_pool);
+ if ((argc < 3) || (argc > 4)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
}
- arg1 = &temp1;
- if ((argc < 2) || (argc > 4)) {
- rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
+ res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "svn_client__shelf_t *","svn_client__shelf_revprop_set", 1, argv[0] ));
}
- res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2);
+ arg1 = (svn_client__shelf_t *)(argp1);
+ res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
if (!SWIG_IsOK(res2)) {
- SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","svn_client_shelves_list", 2, argv[0] ));
+ SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","svn_client__shelf_revprop_set", 2, argv[1] ));
}
arg2 = (char *)(buf2);
- res3 = SWIG_ConvertPtr(argv[1], &argp3,SWIGTYPE_p_svn_client_ctx_t, 0 | 0 );
- if (!SWIG_IsOK(res3)) {
- SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "svn_client_ctx_t *","svn_client_shelves_list", 3, argv[1] ));
- }
- arg3 = (svn_client_ctx_t *)(argp3);
- if (argc > 2) {
-
+ {
+ if (NIL_P(argv[2])) {
+ arg3 = NULL;
+ } else {
+ value3.data = StringValuePtr(argv[2]);
+ value3.len = RSTRING_LEN(argv[2]);
+ arg3 = &value3;
+ }
}
if (argc > 3) {
}
{
- result = (svn_error_t *)svn_client_shelves_list(arg1,(char const *)arg2,arg3,arg4,arg5);
+ result = (svn_error_t *)svn_client__shelf_revprop_set(arg1,(char const *)arg2,(struct svn_string_t const *)arg3,arg4);
@@ -29203,16 +31366,87 @@ _wrap_svn_client_shelves_list(int argc, VALUE *argv, VALUE self) {
}
vresult = Qnil;
}
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
{
- /* FIXME: Missing argout typemap: svn_client_shelves_list arg 1 (apr_hash_t **) */
-
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ return vresult;
+fail:
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_svn_client__shelf_revprop_set_all(int argc, VALUE *argv, VALUE self) {
+ svn_client__shelf_t *arg1 = (svn_client__shelf_t *) 0 ;
+ apr_hash_t *arg2 = (apr_hash_t *) 0 ;
+ apr_pool_t *arg3 = (apr_pool_t *) 0 ;
+ VALUE _global_svn_swig_rb_pool ;
+ apr_pool_t *_global_pool ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ svn_error_t *result = 0 ;
+ VALUE vresult = Qnil;
+
+ {
+ svn_swig_rb_get_pool(argc, argv, self, &_global_svn_swig_rb_pool, &arg3);
+ _global_pool = arg3;
+ svn_swig_rb_push_pool(_global_svn_swig_rb_pool);
+ }
+ if ((argc < 2) || (argc > 3)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "svn_client__shelf_t *","svn_client__shelf_revprop_set_all", 1, argv[0] ));
+ }
+ arg1 = (svn_client__shelf_t *)(argp1);
+ {
+ VALUE rb_pool = Qnil;
+ if (!_global_pool) {
+ svn_swig_rb_get_pool(argc, argv, self, &rb_pool, &_global_pool);
+ svn_swig_rb_push_pool(rb_pool);
+ }
+ arg2 = svn_swig_rb_hash_to_apr_hash_svn_string(argv[1], _global_pool);
+ _global_pool = NULL;
+ if (!NIL_P(rb_pool)) {
+ if (NIL_P(arg2)) {
+ svn_swig_rb_destroy_pool(rb_pool);
+ } else {
+ svn_swig_rb_set_pool_for_no_swig_type(argv[1], rb_pool);
+ }
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ }
+ if (argc > 2) {
+ }
+ {
+ result = (svn_error_t *)svn_client__shelf_revprop_set_all(arg1,arg2,arg3);
- SWIG_exception(SWIG_ValueError, "svn_client_shelves_list is not implemented yet");
}
- if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ {
+ if (result) {
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_handle_svn_error(result);
+ }
+ vresult = Qnil;
+ }
{
VALUE target;
target = _global_vresult_address == &vresult ? self : vresult;
@@ -29220,6 +31454,80 @@ _wrap_svn_client_shelves_list(int argc, VALUE *argv, VALUE self) {
svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
}
+ return vresult;
+fail:
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_svn_client__shelf_revprop_get(int argc, VALUE *argv, VALUE self) {
+ svn_string_t **arg1 = (svn_string_t **) 0 ;
+ svn_client__shelf_t *arg2 = (svn_client__shelf_t *) 0 ;
+ char *arg3 = (char *) 0 ;
+ apr_pool_t *arg4 = (apr_pool_t *) 0 ;
+ VALUE _global_svn_swig_rb_pool ;
+ apr_pool_t *_global_pool ;
+ svn_string_t *temp1 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ int res3 ;
+ char *buf3 = 0 ;
+ int alloc3 = 0 ;
+ svn_error_t *result = 0 ;
+ VALUE vresult = Qnil;
+
+ {
+ svn_swig_rb_get_pool(argc, argv, self, &_global_svn_swig_rb_pool, &arg4);
+ _global_pool = arg4;
+ svn_swig_rb_push_pool(_global_svn_swig_rb_pool);
+ }
+ arg1 = &temp1;
+ if ((argc < 2) || (argc > 3)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
+ }
+ res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "svn_client__shelf_t *","svn_client__shelf_revprop_get", 2, argv[0] ));
+ }
+ arg2 = (svn_client__shelf_t *)(argp2);
+ res3 = SWIG_AsCharPtrAndSize(argv[1], &buf3, NULL, &alloc3);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char const *","svn_client__shelf_revprop_get", 3, argv[1] ));
+ }
+ arg3 = (char *)(buf3);
+ if (argc > 2) {
+
+ }
+ {
+ result = (svn_error_t *)svn_client__shelf_revprop_get(arg1,arg2,(char const *)arg3,arg4);
+
+
+
+ }
+ {
+ if (result) {
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_handle_svn_error(result);
+ }
+ vresult = Qnil;
+ }
+ {
+ if (*arg1) {
+ vresult = SWIG_Ruby_AppendOutput(vresult, rb_str_new((*arg1)->data, (*arg1)->len));
+ } else {
+ vresult = SWIG_Ruby_AppendOutput(vresult, Qnil);
+ }
+ }
+ if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
{
VALUE target;
target = _global_vresult_address == &vresult ? self : vresult;
@@ -29229,7 +31537,7 @@ _wrap_svn_client_shelves_list(int argc, VALUE *argv, VALUE self) {
}
return vresult;
fail:
- if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
{
VALUE target;
target = _global_vresult_address == &vresult ? self : vresult;
@@ -29237,6 +31545,66 @@ fail:
svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
}
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_svn_client__shelf_revprop_list(int argc, VALUE *argv, VALUE self) {
+ apr_hash_t **arg1 = (apr_hash_t **) 0 ;
+ svn_client__shelf_t *arg2 = (svn_client__shelf_t *) 0 ;
+ apr_pool_t *arg3 = (apr_pool_t *) 0 ;
+ VALUE _global_svn_swig_rb_pool ;
+ apr_pool_t *_global_pool ;
+ apr_hash_t *temp1 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ svn_error_t *result = 0 ;
+ VALUE vresult = Qnil;
+
+ {
+ svn_swig_rb_get_pool(argc, argv, self, &_global_svn_swig_rb_pool, &arg3);
+ _global_pool = arg3;
+ svn_swig_rb_push_pool(_global_svn_swig_rb_pool);
+ }
+ arg1 = &temp1;
+ if ((argc < 1) || (argc > 2)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+ }
+ res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "svn_client__shelf_t *","svn_client__shelf_revprop_list", 2, argv[0] ));
+ }
+ arg2 = (svn_client__shelf_t *)(argp2);
+ if (argc > 1) {
+
+ }
+ {
+ result = (svn_error_t *)svn_client__shelf_revprop_list(arg1,arg2,arg3);
+
+
+
+ }
+ {
+ if (result) {
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_handle_svn_error(result);
+ }
+ vresult = Qnil;
+ }
+ {
+ vresult = SWIG_Ruby_AppendOutput(vresult, svn_swig_rb_apr_hash_to_hash_svn_string(*arg1));
+ }
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ return vresult;
+fail:
{
VALUE target;
target = _global_vresult_address == &vresult ? self : vresult;
@@ -29249,46 +31617,43 @@ fail:
SWIGINTERN VALUE
-_wrap_svn_client_shelves_any(int argc, VALUE *argv, VALUE self) {
- svn_boolean_t *arg1 = (svn_boolean_t *) 0 ;
+_wrap_svn_client__shelf_set_log_message(int argc, VALUE *argv, VALUE self) {
+ svn_client__shelf_t *arg1 = (svn_client__shelf_t *) 0 ;
char *arg2 = (char *) 0 ;
- svn_client_ctx_t *arg3 = (svn_client_ctx_t *) 0 ;
- apr_pool_t *arg4 = (apr_pool_t *) 0 ;
+ apr_pool_t *arg3 = (apr_pool_t *) 0 ;
VALUE _global_svn_swig_rb_pool ;
apr_pool_t *_global_pool ;
- svn_boolean_t temp1 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
int res2 ;
char *buf2 = 0 ;
int alloc2 = 0 ;
- void *argp3 = 0 ;
- int res3 = 0 ;
svn_error_t *result = 0 ;
VALUE vresult = Qnil;
{
- svn_swig_rb_get_pool(argc, argv, self, &_global_svn_swig_rb_pool, &arg4);
- _global_pool = arg4;
+ svn_swig_rb_get_pool(argc, argv, self, &_global_svn_swig_rb_pool, &arg3);
+ _global_pool = arg3;
svn_swig_rb_push_pool(_global_svn_swig_rb_pool);
}
- arg1 = &temp1;
if ((argc < 2) || (argc > 3)) {
rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
}
- res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2);
+ res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "svn_client__shelf_t *","svn_client__shelf_set_log_message", 1, argv[0] ));
+ }
+ arg1 = (svn_client__shelf_t *)(argp1);
+ res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
if (!SWIG_IsOK(res2)) {
- SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","svn_client_shelves_any", 2, argv[0] ));
+ SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","svn_client__shelf_set_log_message", 2, argv[1] ));
}
arg2 = (char *)(buf2);
- res3 = SWIG_ConvertPtr(argv[1], &argp3,SWIGTYPE_p_svn_client_ctx_t, 0 | 0 );
- if (!SWIG_IsOK(res3)) {
- SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "svn_client_ctx_t *","svn_client_shelves_any", 3, argv[1] ));
- }
- arg3 = (svn_client_ctx_t *)(argp3);
if (argc > 2) {
}
{
- result = (svn_error_t *)svn_client_shelves_any(arg1,(char const *)arg2,arg3,arg4);
+ result = (svn_error_t *)svn_client__shelf_set_log_message(arg1,(char const *)arg2,arg3);
@@ -29301,9 +31666,16 @@ _wrap_svn_client_shelves_any(int argc, VALUE *argv, VALUE self) {
}
vresult = Qnil;
}
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
{
- vresult = SWIG_Ruby_AppendOutput(vresult, *arg1 ? Qtrue : Qfalse);
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
}
+ return vresult;
+fail:
if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
{
VALUE target;
@@ -29312,9 +31684,72 @@ _wrap_svn_client_shelves_any(int argc, VALUE *argv, VALUE self) {
svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
}
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_svn_client__shelf_get_log_message(int argc, VALUE *argv, VALUE self) {
+ char **arg1 = (char **) 0 ;
+ svn_client__shelf_t *arg2 = (svn_client__shelf_t *) 0 ;
+ apr_pool_t *arg3 = (apr_pool_t *) 0 ;
+ VALUE _global_svn_swig_rb_pool ;
+ apr_pool_t *_global_pool ;
+ char *temp1 ;
+ void *argp2 = 0 ;
+ int res2 = 0 ;
+ svn_error_t *result = 0 ;
+ VALUE vresult = Qnil;
+
+ {
+ svn_swig_rb_get_pool(argc, argv, self, &_global_svn_swig_rb_pool, &arg3);
+ _global_pool = arg3;
+ svn_swig_rb_push_pool(_global_svn_swig_rb_pool);
+ }
+ arg1 = &temp1;
+ if ((argc < 1) || (argc > 2)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+ }
+ res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_svn_client__shelf_t, 0 | 0 );
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "svn_client__shelf_t *","svn_client__shelf_get_log_message", 2, argv[0] ));
+ }
+ arg2 = (svn_client__shelf_t *)(argp2);
+ if (argc > 1) {
+
+ }
+ {
+ result = (svn_error_t *)svn_client__shelf_get_log_message(arg1,arg2,arg3);
+
+
+
+ }
+ {
+ if (result) {
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_handle_svn_error(result);
+ }
+ vresult = Qnil;
+ }
+ {
+ /* FIXME: Missing argout typemap: svn_client__shelf_get_log_message arg 1 (char **) */
+
+
+
+
+ SWIG_exception(SWIG_ValueError, "svn_client__shelf_get_log_message is not implemented yet");
+
+ }
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
return vresult;
fail:
- if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
{
VALUE target;
target = _global_vresult_address == &vresult ? self : vresult;
@@ -29326,65 +31761,150 @@ fail:
}
+static swig_class SwigClassSvn_client__shelf_info_t;
+
+SWIGINTERN VALUE
+_wrap_svn_client__shelf_info_t_mtime_set(int argc, VALUE *argv, VALUE self) {
+ struct svn_client__shelf_info_t *arg1 = (struct svn_client__shelf_info_t *) 0 ;
+ apr_time_t arg2 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+
+ if ((argc < 1) || (argc > 1)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_client__shelf_info_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct svn_client__shelf_info_t *","mtime", 1, self ));
+ }
+ arg1 = (struct svn_client__shelf_info_t *)(argp1);
+ {
+ arg2 = (apr_time_t)NUM2LL(argv[0]);
+ }
+ if (arg1) (arg1)->mtime = arg2;
+ return Qnil;
+fail:
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_svn_client__shelf_info_t_mtime_get(int argc, VALUE *argv, VALUE self) {
+ struct svn_client__shelf_info_t *arg1 = (struct svn_client__shelf_info_t *) 0 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ apr_time_t result;
+ VALUE vresult = Qnil;
+
+ if ((argc < 0) || (argc > 0)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_svn_client__shelf_info_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct svn_client__shelf_info_t *","mtime", 1, self ));
+ }
+ arg1 = (struct svn_client__shelf_info_t *)(argp1);
+ result = ((arg1)->mtime);
+ {
+ vresult = LL2NUM((apr_time_t)(result));
+ }
+ return vresult;
+fail:
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
+#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
+_wrap_svn_client__shelf_info_t_allocate(VALUE self)
+#else
+_wrap_svn_client__shelf_info_t_allocate(int argc, VALUE *argv, VALUE self)
+#endif
+{
+ VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_svn_client__shelf_info_t);
+#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
+ rb_obj_call_init(vresult, argc, argv);
+#endif
+ return vresult;
+}
+
+
SWIGINTERN VALUE
-_wrap_svn_client_shelf_get_paths(int argc, VALUE *argv, VALUE self) {
+_wrap_new_svn_client__shelf_info_t(int argc, VALUE *argv, VALUE self) {
+ struct svn_client__shelf_info_t *result = 0 ;
+
+ if ((argc < 0) || (argc > 0)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+ }
+ {
+ result = (struct svn_client__shelf_info_t *)calloc(1, sizeof(struct svn_client__shelf_info_t));
+ DATA_PTR(self) = result;
+
+
+
+ }
+ return self;
+fail:
+ return Qnil;
+}
+
+
+SWIGINTERN void
+free_svn_client__shelf_info_t(void *self) {
+ struct svn_client__shelf_info_t *arg1 = (struct svn_client__shelf_info_t *)self;
+ free((char *) arg1);
+}
+
+SWIGINTERN VALUE
+_wrap_svn_client__shelf_list(int argc, VALUE *argv, VALUE self) {
apr_hash_t **arg1 = (apr_hash_t **) 0 ;
char *arg2 = (char *) 0 ;
- char *arg3 = (char *) 0 ;
- svn_client_ctx_t *arg4 = (svn_client_ctx_t *) 0 ;
+ svn_client_ctx_t *arg3 = (svn_client_ctx_t *) 0 ;
+ apr_pool_t *arg4 = (apr_pool_t *) 0 ;
apr_pool_t *arg5 = (apr_pool_t *) 0 ;
- apr_pool_t *arg6 = (apr_pool_t *) 0 ;
VALUE _global_svn_swig_rb_pool ;
apr_pool_t *_global_pool ;
apr_hash_t *temp1 ;
int res2 ;
char *buf2 = 0 ;
int alloc2 = 0 ;
- int res3 ;
- char *buf3 = 0 ;
- int alloc3 = 0 ;
- void *argp4 = 0 ;
- int res4 = 0 ;
+ void *argp3 = 0 ;
+ int res3 = 0 ;
svn_error_t *result = 0 ;
VALUE vresult = Qnil;
{
- svn_swig_rb_get_pool(argc, argv, self, &_global_svn_swig_rb_pool, &arg5);
- _global_pool = arg5;
+ svn_swig_rb_get_pool(argc, argv, self, &_global_svn_swig_rb_pool, &arg4);
+ _global_pool = arg4;
svn_swig_rb_push_pool(_global_svn_swig_rb_pool);
}
{
- svn_swig_rb_get_pool(argc, argv, self, &_global_svn_swig_rb_pool, &arg6);
- _global_pool = arg6;
+ svn_swig_rb_get_pool(argc, argv, self, &_global_svn_swig_rb_pool, &arg5);
+ _global_pool = arg5;
svn_swig_rb_push_pool(_global_svn_swig_rb_pool);
}
arg1 = &temp1;
- if ((argc < 3) || (argc > 5)) {
- rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
+ if ((argc < 2) || (argc > 4)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
}
res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2);
if (!SWIG_IsOK(res2)) {
- SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","svn_client_shelf_get_paths", 2, argv[0] ));
+ SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","svn_client__shelf_list", 2, argv[0] ));
}
arg2 = (char *)(buf2);
- res3 = SWIG_AsCharPtrAndSize(argv[1], &buf3, NULL, &alloc3);
+ res3 = SWIG_ConvertPtr(argv[1], &argp3,SWIGTYPE_p_svn_client_ctx_t, 0 | 0 );
if (!SWIG_IsOK(res3)) {
- SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char const *","svn_client_shelf_get_paths", 3, argv[1] ));
- }
- arg3 = (char *)(buf3);
- res4 = SWIG_ConvertPtr(argv[2], &argp4,SWIGTYPE_p_svn_client_ctx_t, 0 | 0 );
- if (!SWIG_IsOK(res4)) {
- SWIG_exception_fail(SWIG_ArgError(res4), Ruby_Format_TypeError( "", "svn_client_ctx_t *","svn_client_shelf_get_paths", 4, argv[2] ));
+ SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "svn_client_ctx_t *","svn_client__shelf_list", 3, argv[1] ));
}
- arg4 = (svn_client_ctx_t *)(argp4);
- if (argc > 3) {
+ arg3 = (svn_client_ctx_t *)(argp3);
+ if (argc > 2) {
}
- if (argc > 4) {
+ if (argc > 3) {
}
{
- result = (svn_error_t *)svn_client_shelf_get_paths(arg1,(char const *)arg2,(char const *)arg3,arg4,arg5,arg6);
+ result = (svn_error_t *)svn_client__shelf_list(arg1,(char const *)arg2,arg3,arg4,arg5);
@@ -29398,16 +31918,15 @@ _wrap_svn_client_shelf_get_paths(int argc, VALUE *argv, VALUE self) {
vresult = Qnil;
}
{
- /* FIXME: Missing argout typemap: svn_client_shelf_get_paths arg 1 (apr_hash_t **) */
+ /* FIXME: Missing argout typemap: svn_client__shelf_list arg 1 (apr_hash_t **) */
- SWIG_exception(SWIG_ValueError, "svn_client_shelf_get_paths is not implemented yet");
+ SWIG_exception(SWIG_ValueError, "svn_client__shelf_list is not implemented yet");
}
if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
- if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
{
VALUE target;
target = _global_vresult_address == &vresult ? self : vresult;
@@ -29425,7 +31944,6 @@ _wrap_svn_client_shelf_get_paths(int argc, VALUE *argv, VALUE self) {
return vresult;
fail:
if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
- if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
{
VALUE target;
target = _global_vresult_address == &vresult ? self : vresult;
@@ -29445,23 +31963,20 @@ fail:
SWIGINTERN VALUE
-_wrap_svn_client_shelf_has_changes(int argc, VALUE *argv, VALUE self) {
- svn_boolean_t *arg1 = (svn_boolean_t *) 0 ;
+_wrap_svn_client__shelf_version_status_walk(int argc, VALUE *argv, VALUE self) {
+ svn_client__shelf_version_t *arg1 = (svn_client__shelf_version_t *) 0 ;
char *arg2 = (char *) 0 ;
- char *arg3 = (char *) 0 ;
- svn_client_ctx_t *arg4 = (svn_client_ctx_t *) 0 ;
+ svn_wc_status_func4_t arg3 = (svn_wc_status_func4_t) 0 ;
+ void *arg4 = (void *) 0 ;
apr_pool_t *arg5 = (apr_pool_t *) 0 ;
VALUE _global_svn_swig_rb_pool ;
apr_pool_t *_global_pool ;
- svn_boolean_t temp1 ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
int res2 ;
char *buf2 = 0 ;
int alloc2 = 0 ;
- int res3 ;
- char *buf3 = 0 ;
- int alloc3 = 0 ;
- void *argp4 = 0 ;
- int res4 = 0 ;
+ int res4 ;
svn_error_t *result = 0 ;
VALUE vresult = Qnil;
@@ -29470,30 +31985,34 @@ _wrap_svn_client_shelf_has_changes(int argc, VALUE *argv, VALUE self) {
_global_pool = arg5;
svn_swig_rb_push_pool(_global_svn_swig_rb_pool);
}
- arg1 = &temp1;
- if ((argc < 3) || (argc > 4)) {
- rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
+ if ((argc < 4) || (argc > 5)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
}
- res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2);
+ res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_svn_client__shelf_version_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "svn_client__shelf_version_t *","svn_client__shelf_version_status_walk", 1, argv[0] ));
+ }
+ arg1 = (svn_client__shelf_version_t *)(argp1);
+ res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
if (!SWIG_IsOK(res2)) {
- SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","svn_client_shelf_has_changes", 2, argv[0] ));
+ SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","svn_client__shelf_version_status_walk", 2, argv[1] ));
}
arg2 = (char *)(buf2);
- res3 = SWIG_AsCharPtrAndSize(argv[1], &buf3, NULL, &alloc3);
- if (!SWIG_IsOK(res3)) {
- SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char const *","svn_client_shelf_has_changes", 3, argv[1] ));
+ {
+ int res = SWIG_ConvertFunctionPtr(argv[2], (void**)(&arg3), SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__svn_wc_status3_t_p_apr_pool_t__p_svn_error_t);
+ if (!SWIG_IsOK(res)) {
+ SWIG_exception_fail(SWIG_ArgError(res), Ruby_Format_TypeError( "", "svn_wc_status_func4_t","svn_client__shelf_version_status_walk", 3, argv[2] ));
+ }
}
- arg3 = (char *)(buf3);
- res4 = SWIG_ConvertPtr(argv[2], &argp4,SWIGTYPE_p_svn_client_ctx_t, 0 | 0 );
+ res4 = SWIG_ConvertPtr(argv[3],SWIG_as_voidptrptr(&arg4), 0, 0);
if (!SWIG_IsOK(res4)) {
- SWIG_exception_fail(SWIG_ArgError(res4), Ruby_Format_TypeError( "", "svn_client_ctx_t *","svn_client_shelf_has_changes", 4, argv[2] ));
+ SWIG_exception_fail(SWIG_ArgError(res4), Ruby_Format_TypeError( "", "void *","svn_client__shelf_version_status_walk", 4, argv[3] ));
}
- arg4 = (svn_client_ctx_t *)(argp4);
- if (argc > 3) {
+ if (argc > 4) {
}
{
- result = (svn_error_t *)svn_client_shelf_has_changes(arg1,(char const *)arg2,(char const *)arg3,arg4,arg5);
+ result = (svn_error_t *)svn_client__shelf_version_status_walk(arg1,(char const *)arg2,arg3,arg4,arg5);
@@ -29506,11 +32025,7 @@ _wrap_svn_client_shelf_has_changes(int argc, VALUE *argv, VALUE self) {
}
vresult = Qnil;
}
- {
- vresult = SWIG_Ruby_AppendOutput(vresult, *arg1 ? Qtrue : Qfalse);
- }
if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
- if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
{
VALUE target;
target = _global_vresult_address == &vresult ? self : vresult;
@@ -29521,7 +32036,6 @@ _wrap_svn_client_shelf_has_changes(int argc, VALUE *argv, VALUE self) {
return vresult;
fail:
if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
- if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
{
VALUE target;
target = _global_vresult_address == &vresult ? self : vresult;
@@ -34999,6 +37513,125 @@ fail:
SWIGINTERN VALUE
+_wrap_svn_client_invoke__layout_func(int argc, VALUE *argv, VALUE self) {
+ svn_client__layout_func_t arg1 = (svn_client__layout_func_t) 0 ;
+ void *arg2 = (void *) 0 ;
+ char *arg3 = (char *) 0 ;
+ char *arg4 = (char *) 0 ;
+ svn_boolean_t arg5 ;
+ svn_boolean_t arg6 ;
+ char *arg7 = (char *) 0 ;
+ svn_boolean_t arg8 ;
+ svn_revnum_t arg9 ;
+ svn_boolean_t arg10 ;
+ svn_depth_t arg11 ;
+ apr_pool_t *arg12 = (apr_pool_t *) 0 ;
+ VALUE _global_svn_swig_rb_pool ;
+ apr_pool_t *_global_pool ;
+ int res2 ;
+ int res3 ;
+ char *buf3 = 0 ;
+ int alloc3 = 0 ;
+ int res4 ;
+ char *buf4 = 0 ;
+ int alloc4 = 0 ;
+ int res7 ;
+ char *buf7 = 0 ;
+ int alloc7 = 0 ;
+ long val9 ;
+ int ecode9 = 0 ;
+ svn_error_t *result = 0 ;
+ VALUE vresult = Qnil;
+
+ {
+ svn_swig_rb_get_pool(argc, argv, self, &_global_svn_swig_rb_pool, &arg12);
+ _global_pool = arg12;
+ svn_swig_rb_push_pool(_global_svn_swig_rb_pool);
+ }
+ if ((argc < 11) || (argc > 12)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 11)",argc); SWIG_fail;
+ }
+ {
+ int res = SWIG_ConvertFunctionPtr(argv[0], (void**)(&arg1), SWIGTYPE_p_f_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_svn_boolean_t_p_q_const__char_svn_boolean_t_svn_revnum_t_svn_boolean_t_svn_depth_t_p_apr_pool_t__p_svn_error_t);
+ if (!SWIG_IsOK(res)) {
+ SWIG_exception_fail(SWIG_ArgError(res), Ruby_Format_TypeError( "", "svn_client__layout_func_t","svn_client_invoke__layout_func", 1, argv[0] ));
+ }
+ }
+ res2 = SWIG_ConvertPtr(argv[1],SWIG_as_voidptrptr(&arg2), 0, 0);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "void *","svn_client_invoke__layout_func", 2, argv[1] ));
+ }
+ res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
+ if (!SWIG_IsOK(res3)) {
+ SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char const *","svn_client_invoke__layout_func", 3, argv[2] ));
+ }
+ arg3 = (char *)(buf3);
+ res4 = SWIG_AsCharPtrAndSize(argv[3], &buf4, NULL, &alloc4);
+ if (!SWIG_IsOK(res4)) {
+ SWIG_exception_fail(SWIG_ArgError(res4), Ruby_Format_TypeError( "", "char const *","svn_client_invoke__layout_func", 4, argv[3] ));
+ }
+ arg4 = (char *)(buf4);
+ arg5 = RTEST(argv[4]);
+ arg6 = RTEST(argv[5]);
+ res7 = SWIG_AsCharPtrAndSize(argv[6], &buf7, NULL, &alloc7);
+ if (!SWIG_IsOK(res7)) {
+ SWIG_exception_fail(SWIG_ArgError(res7), Ruby_Format_TypeError( "", "char const *","svn_client_invoke__layout_func", 7, argv[6] ));
+ }
+ arg7 = (char *)(buf7);
+ arg8 = RTEST(argv[7]);
+ ecode9 = SWIG_AsVal_long(argv[8], &val9);
+ if (!SWIG_IsOK(ecode9)) {
+ SWIG_exception_fail(SWIG_ArgError(ecode9), Ruby_Format_TypeError( "", "svn_revnum_t","svn_client_invoke__layout_func", 9, argv[8] ));
+ }
+ arg9 = (svn_revnum_t)(val9);
+ arg10 = RTEST(argv[9]);
+ {
+ arg11 = svn_swig_rb_to_depth(argv[10]);
+ }
+ if (argc > 11) {
+
+ }
+ {
+ result = (svn_error_t *)svn_client_invoke__layout_func(arg1,arg2,(char const *)arg3,(char const *)arg4,arg5,arg6,(char const *)arg7,arg8,arg9,arg10,arg11,arg12);
+
+
+
+ }
+ {
+ if (result) {
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_handle_svn_error(result);
+ }
+ vresult = Qnil;
+ }
+ if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+ if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
+ if (alloc7 == SWIG_NEWOBJ) free((char*)buf7);
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ return vresult;
+fail:
+ if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+ if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
+ if (alloc7 == SWIG_NEWOBJ) free((char*)buf7);
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
_wrap_svn_client_invoke_import_filter_func(int argc, VALUE *argv, VALUE self) {
svn_client_import_filter_func_t arg1 = (svn_client_import_filter_func_t) 0 ;
void *arg2 = (void *) 0 ;
@@ -36102,11 +38735,13 @@ static swig_type_info _swigt__p_f_p_void_p_q_const__char_enum_svn_wc_notify_acti
static swig_type_info _swigt__p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_array_header_t_p_apr_pool_t__p_svn_error_t = {"_p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_array_header_t_p_apr_pool_t__p_svn_error_t", "struct svn_error_t *(*)(void *,char const *,apr_hash_t *,apr_array_header_t *,apr_pool_t *)|svn_proplist_receiver2_t", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_pool_t__p_svn_error_t = {"_p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_pool_t__p_svn_error_t", "struct svn_error_t *(*)(void *,char const *,apr_hash_t *,apr_pool_t *)|svn_proplist_receiver_t", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_f_p_void_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t = {"_p_f_p_void_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t", "struct svn_error_t *(*)(void *,char const *,char const *,apr_pool_t *)|svn_changelist_receiver_t", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_f_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_svn_boolean_t_p_q_const__char_svn_boolean_t_svn_revnum_t_svn_boolean_t_svn_depth_t_p_apr_pool_t__p_svn_error_t = {"_p_f_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_svn_boolean_t_p_q_const__char_svn_boolean_t_svn_revnum_t_svn_boolean_t_svn_depth_t_p_apr_pool_t__p_svn_error_t", "struct svn_error_t *(*)(void *,char const *,char const *,svn_boolean_t,svn_boolean_t,char const *,svn_boolean_t,svn_revnum_t,svn_boolean_t,svn_depth_t,apr_pool_t *)|svn_client__layout_func_t", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_f_p_void_p_q_const__char_p_q_const__svn_client_info2_t_p_apr_pool_t__p_svn_error_t = {"_p_f_p_void_p_q_const__char_p_q_const__svn_client_info2_t_p_apr_pool_t__p_svn_error_t", "svn_client_info_receiver2_t|struct svn_error_t *(*)(void *,char const *,svn_client_info2_t const *,apr_pool_t *)", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_f_p_void_p_q_const__char_p_q_const__svn_client_status_t_p_apr_pool_t__p_svn_error_t = {"_p_f_p_void_p_q_const__char_p_q_const__svn_client_status_t_p_apr_pool_t__p_svn_error_t", "svn_client_status_func_t|struct svn_error_t *(*)(void *,char const *,svn_client_status_t const *,apr_pool_t *)", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_apr_pool_t__p_svn_error_t = {"_p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_apr_pool_t__p_svn_error_t", "struct svn_error_t *(*)(void *,char const *,svn_dirent_t const *,svn_lock_t const *,char const *,apr_pool_t *)|svn_client_list_func_t", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t = {"_p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t", "struct svn_error_t *(*)(void *,char const *,svn_dirent_t const *,svn_lock_t const *,char const *,char const *,char const *,apr_pool_t *)|svn_client_list_func2_t", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_f_p_void_p_q_const__char_p_q_const__svn_info_t_p_apr_pool_t__p_svn_error_t = {"_p_f_p_void_p_q_const__char_p_q_const__svn_info_t_p_apr_pool_t__p_svn_error_t", "struct svn_error_t *(*)(void *,char const *,svn_info_t const *,apr_pool_t *)|svn_info_receiver_t", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_f_p_void_p_q_const__char_p_q_const__svn_wc_status3_t_p_apr_pool_t__p_svn_error_t = {"_p_f_p_void_p_q_const__char_p_q_const__svn_wc_status3_t_p_apr_pool_t__p_svn_error_t", "struct svn_error_t *(*)(void *,char const *,svn_wc_status3_t const *,apr_pool_t *)|svn_wc_status_func4_t", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_f_p_void_p_q_const__char_p_struct_svn_wc_status2_t__void = {"_p_f_p_void_p_q_const__char_p_struct_svn_wc_status2_t__void", "void (*)(void *,char const *,struct svn_wc_status2_t *)|svn_wc_status_func2_t", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_f_p_void_p_q_const__char_p_struct_svn_wc_status_t__void = {"_p_f_p_void_p_q_const__char_p_struct_svn_wc_status_t__void", "void (*)(void *,char const *,struct svn_wc_status_t *)|svn_wc_status_func_t", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_f_p_void_p_q_const__char_p_svn_wc_status2_t_p_apr_pool_t__p_svn_error_t = {"_p_f_p_void_p_q_const__char_p_svn_wc_status2_t_p_apr_pool_t__p_svn_error_t", "struct svn_error_t *(*)(void *,char const *,svn_wc_status2_t *,apr_pool_t *)|svn_wc_status_func3_t", 0, 0, (void*)0, 0};
@@ -36122,6 +38757,8 @@ static swig_type_info _swigt__p_p_apr_array_header_t = {"_p_p_apr_array_header_t
static swig_type_info _swigt__p_p_apr_hash_t = {"_p_p_apr_hash_t", "apr_hash_t **", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_p_char = {"_p_p_char", "char **", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_p_svn_auth_provider_object_t = {"_p_p_svn_auth_provider_object_t", "struct svn_auth_provider_object_t **|svn_auth_provider_object_t **", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_p_svn_client__shelf_t = {"_p_p_svn_client__shelf_t", "struct svn_client__shelf_t **|svn_client__shelf_t **", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_p_svn_client__shelf_version_t = {"_p_p_svn_client__shelf_version_t", "struct svn_client__shelf_version_t **|svn_client__shelf_version_t **", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_p_svn_client_commit_info_t = {"_p_p_svn_client_commit_info_t", "struct svn_client_commit_info_t **|svn_client_commit_info_t **", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_p_svn_client_conflict_t = {"_p_p_svn_client_conflict_t", "struct svn_client_conflict_t **|svn_client_conflict_t **", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_p_svn_client_ctx_t = {"_p_p_svn_client_ctx_t", "struct svn_client_ctx_t **|svn_client_ctx_t **", 0, 0, (void*)0, 0};
@@ -36142,6 +38779,9 @@ static swig_type_info _swigt__p_svn_cache_config_t = {"_p_svn_cache_config_t", "
static swig_type_info _swigt__p_svn_checksum_ctx_t = {"_p_svn_checksum_ctx_t", "struct svn_checksum_ctx_t *|svn_checksum_ctx_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_checksum_kind_t = {"_p_svn_checksum_kind_t", "enum svn_checksum_kind_t *|svn_checksum_kind_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_checksum_t = {"_p_svn_checksum_t", "struct svn_checksum_t *|svn_checksum_t *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_svn_client__shelf_info_t = {"_p_svn_client__shelf_info_t", "struct svn_client__shelf_info_t *|svn_client__shelf_info_t *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_svn_client__shelf_t = {"_p_svn_client__shelf_t", "struct svn_client__shelf_t *|svn_client__shelf_t *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_svn_client__shelf_version_t = {"_p_svn_client__shelf_version_t", "struct svn_client__shelf_version_t *|svn_client__shelf_version_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_client_commit_info_t = {"_p_svn_client_commit_info_t", "struct svn_client_commit_info_t *|svn_client_commit_info_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_client_commit_item2_t = {"_p_svn_client_commit_item2_t", "struct svn_client_commit_item2_t *|svn_client_commit_item2_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_client_commit_item3_t = {"_p_svn_client_commit_item3_t", "struct svn_client_commit_item3_t *|svn_client_commit_item3_t *", 0, 0, (void*)0, 0};
@@ -36155,7 +38795,6 @@ static swig_type_info _swigt__p_svn_client_diff_summarize_kind_t = {"_p_svn_clie
static swig_type_info _swigt__p_svn_client_diff_summarize_t = {"_p_svn_client_diff_summarize_t", "struct svn_client_diff_summarize_t *|svn_client_diff_summarize_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_client_info2_t = {"_p_svn_client_info2_t", "struct svn_client_info2_t *|svn_client_info2_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_client_proplist_item_t = {"_p_svn_client_proplist_item_t", "struct svn_client_proplist_item_t *|svn_client_proplist_item_t *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_svn_client_shelved_patch_info_t = {"_p_svn_client_shelved_patch_info_t", "struct svn_client_shelved_patch_info_t *|svn_client_shelved_patch_info_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_client_status_t = {"_p_svn_client_status_t", "struct svn_client_status_t *|svn_client_status_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_commit_info_t = {"_p_svn_commit_info_t", "struct svn_commit_info_t *|svn_commit_info_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_config_t = {"_p_svn_config_t", "struct svn_config_t *|svn_config_t *", 0, 0, (void*)0, 0};
@@ -36191,6 +38830,7 @@ static swig_type_info _swigt__p_svn_opt_revision_range_t = {"_p_svn_opt_revision
static swig_type_info _swigt__p_svn_opt_revision_t = {"_p_svn_opt_revision_t", "struct svn_opt_revision_t *|svn_opt_revision_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_revision_value_t = {"_p_svn_opt_revision_value_t", "union svn_opt_revision_value_t *|svn_opt_revision_value_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc2_t = {"_p_svn_opt_subcommand_desc2_t", "struct svn_opt_subcommand_desc2_t *|svn_opt_subcommand_desc2_t *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_svn_opt_subcommand_desc3_t = {"_p_svn_opt_subcommand_desc3_t", "struct svn_opt_subcommand_desc3_t *|svn_opt_subcommand_desc3_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc_t = {"_p_svn_opt_subcommand_desc_t", "struct svn_opt_subcommand_desc_t *|svn_opt_subcommand_desc_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_patch_file_t = {"_p_svn_patch_file_t", "struct svn_patch_file_t *|svn_patch_file_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_patch_t = {"_p_svn_patch_t", "struct svn_patch_t *|svn_patch_t *", 0, 0, (void*)0, 0};
@@ -36283,11 +38923,13 @@ static swig_type_info *swig_type_initial[] = {
&_swigt__p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_array_header_t_p_apr_pool_t__p_svn_error_t,
&_swigt__p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_pool_t__p_svn_error_t,
&_swigt__p_f_p_void_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t,
+ &_swigt__p_f_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_svn_boolean_t_p_q_const__char_svn_boolean_t_svn_revnum_t_svn_boolean_t_svn_depth_t_p_apr_pool_t__p_svn_error_t,
&_swigt__p_f_p_void_p_q_const__char_p_q_const__svn_client_info2_t_p_apr_pool_t__p_svn_error_t,
&_swigt__p_f_p_void_p_q_const__char_p_q_const__svn_client_status_t_p_apr_pool_t__p_svn_error_t,
&_swigt__p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_apr_pool_t__p_svn_error_t,
&_swigt__p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t,
&_swigt__p_f_p_void_p_q_const__char_p_q_const__svn_info_t_p_apr_pool_t__p_svn_error_t,
+ &_swigt__p_f_p_void_p_q_const__char_p_q_const__svn_wc_status3_t_p_apr_pool_t__p_svn_error_t,
&_swigt__p_f_p_void_p_q_const__char_p_struct_svn_wc_status2_t__void,
&_swigt__p_f_p_void_p_q_const__char_p_struct_svn_wc_status_t__void,
&_swigt__p_f_p_void_p_q_const__char_p_svn_wc_status2_t_p_apr_pool_t__p_svn_error_t,
@@ -36303,6 +38945,8 @@ static swig_type_info *swig_type_initial[] = {
&_swigt__p_p_apr_hash_t,
&_swigt__p_p_char,
&_swigt__p_p_svn_auth_provider_object_t,
+ &_swigt__p_p_svn_client__shelf_t,
+ &_swigt__p_p_svn_client__shelf_version_t,
&_swigt__p_p_svn_client_commit_info_t,
&_swigt__p_p_svn_client_conflict_t,
&_swigt__p_p_svn_client_ctx_t,
@@ -36323,6 +38967,9 @@ static swig_type_info *swig_type_initial[] = {
&_swigt__p_svn_checksum_ctx_t,
&_swigt__p_svn_checksum_kind_t,
&_swigt__p_svn_checksum_t,
+ &_swigt__p_svn_client__shelf_info_t,
+ &_swigt__p_svn_client__shelf_t,
+ &_swigt__p_svn_client__shelf_version_t,
&_swigt__p_svn_client_commit_info_t,
&_swigt__p_svn_client_commit_item2_t,
&_swigt__p_svn_client_commit_item3_t,
@@ -36336,7 +38983,6 @@ static swig_type_info *swig_type_initial[] = {
&_swigt__p_svn_client_diff_summarize_t,
&_swigt__p_svn_client_info2_t,
&_swigt__p_svn_client_proplist_item_t,
- &_swigt__p_svn_client_shelved_patch_info_t,
&_swigt__p_svn_client_status_t,
&_swigt__p_svn_commit_info_t,
&_swigt__p_svn_config_t,
@@ -36372,6 +39018,7 @@ static swig_type_info *swig_type_initial[] = {
&_swigt__p_svn_opt_revision_t,
&_swigt__p_svn_opt_revision_value_t,
&_swigt__p_svn_opt_subcommand_desc2_t,
+ &_swigt__p_svn_opt_subcommand_desc3_t,
&_swigt__p_svn_opt_subcommand_desc_t,
&_swigt__p_svn_patch_file_t,
&_swigt__p_svn_patch_t,
@@ -36464,11 +39111,13 @@ static swig_cast_info _swigc__p_f_p_void_p_q_const__char_enum_svn_wc_notify_acti
static swig_cast_info _swigc__p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_array_header_t_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_array_header_t_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_f_p_void_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_f_p_void_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_f_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_svn_boolean_t_p_q_const__char_svn_boolean_t_svn_revnum_t_svn_boolean_t_svn_depth_t_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_f_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_svn_boolean_t_p_q_const__char_svn_boolean_t_svn_revnum_t_svn_boolean_t_svn_depth_t_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_f_p_void_p_q_const__char_p_q_const__svn_client_info2_t_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_f_p_void_p_q_const__char_p_q_const__svn_client_info2_t_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_f_p_void_p_q_const__char_p_q_const__svn_client_status_t_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_f_p_void_p_q_const__char_p_q_const__svn_client_status_t_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_f_p_void_p_q_const__char_p_q_const__svn_info_t_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_f_p_void_p_q_const__char_p_q_const__svn_info_t_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_f_p_void_p_q_const__char_p_q_const__svn_wc_status3_t_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_f_p_void_p_q_const__char_p_q_const__svn_wc_status3_t_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_f_p_void_p_q_const__char_p_struct_svn_wc_status2_t__void[] = { {&_swigt__p_f_p_void_p_q_const__char_p_struct_svn_wc_status2_t__void, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_f_p_void_p_q_const__char_p_struct_svn_wc_status_t__void[] = { {&_swigt__p_f_p_void_p_q_const__char_p_struct_svn_wc_status_t__void, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_f_p_void_p_q_const__char_p_svn_wc_status2_t_p_apr_pool_t__p_svn_error_t[] = { {&_swigt__p_f_p_void_p_q_const__char_p_svn_wc_status2_t_p_apr_pool_t__p_svn_error_t, 0, 0, 0},{0, 0, 0, 0}};
@@ -36484,6 +39133,8 @@ static swig_cast_info _swigc__p_p_apr_array_header_t[] = { {&_swigt__p_p_apr_ar
static swig_cast_info _swigc__p_p_apr_hash_t[] = { {&_swigt__p_p_apr_hash_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_p_char[] = { {&_swigt__p_p_char, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_p_svn_auth_provider_object_t[] = { {&_swigt__p_p_svn_auth_provider_object_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_p_svn_client__shelf_t[] = { {&_swigt__p_p_svn_client__shelf_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_p_svn_client__shelf_version_t[] = { {&_swigt__p_p_svn_client__shelf_version_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_p_svn_client_commit_info_t[] = { {&_swigt__p_p_svn_client_commit_info_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_p_svn_client_conflict_t[] = { {&_swigt__p_p_svn_client_conflict_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_p_svn_client_ctx_t[] = { {&_swigt__p_p_svn_client_ctx_t, 0, 0, 0},{0, 0, 0, 0}};
@@ -36504,6 +39155,9 @@ static swig_cast_info _swigc__p_svn_cache_config_t[] = { {&_swigt__p_svn_cache_
static swig_cast_info _swigc__p_svn_checksum_ctx_t[] = { {&_swigt__p_svn_checksum_ctx_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_checksum_kind_t[] = { {&_swigt__p_svn_checksum_kind_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_checksum_t[] = { {&_swigt__p_svn_checksum_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_svn_client__shelf_info_t[] = { {&_swigt__p_svn_client__shelf_info_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_svn_client__shelf_t[] = { {&_swigt__p_svn_client__shelf_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_svn_client__shelf_version_t[] = { {&_swigt__p_svn_client__shelf_version_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_client_commit_info_t[] = { {&_swigt__p_svn_client_commit_info_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_client_commit_item2_t[] = { {&_swigt__p_svn_client_commit_item2_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_client_commit_item3_t[] = { {&_swigt__p_svn_client_commit_item3_t, 0, 0, 0},{0, 0, 0, 0}};
@@ -36517,7 +39171,6 @@ static swig_cast_info _swigc__p_svn_client_diff_summarize_kind_t[] = { {&_swigt
static swig_cast_info _swigc__p_svn_client_diff_summarize_t[] = { {&_swigt__p_svn_client_diff_summarize_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_client_info2_t[] = { {&_swigt__p_svn_client_info2_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_client_proplist_item_t[] = { {&_swigt__p_svn_client_proplist_item_t, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_svn_client_shelved_patch_info_t[] = { {&_swigt__p_svn_client_shelved_patch_info_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_client_status_t[] = { {&_swigt__p_svn_client_status_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_commit_info_t[] = { {&_swigt__p_svn_commit_info_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_config_t[] = { {&_swigt__p_svn_config_t, 0, 0, 0},{0, 0, 0, 0}};
@@ -36553,6 +39206,7 @@ static swig_cast_info _swigc__p_svn_opt_revision_range_t[] = { {&_swigt__p_svn_
static swig_cast_info _swigc__p_svn_opt_revision_t[] = { {&_swigt__p_svn_opt_revision_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_revision_value_t[] = { {&_swigt__p_svn_opt_revision_value_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc2_t[] = { {&_swigt__p_svn_opt_subcommand_desc2_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_svn_opt_subcommand_desc3_t[] = { {&_swigt__p_svn_opt_subcommand_desc3_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc_t[] = { {&_swigt__p_svn_opt_subcommand_desc_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_patch_file_t[] = { {&_swigt__p_svn_patch_file_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_patch_t[] = { {&_swigt__p_svn_patch_t, 0, 0, 0},{0, 0, 0, 0}};
@@ -36645,11 +39299,13 @@ static swig_cast_info *swig_cast_initial[] = {
_swigc__p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_array_header_t_p_apr_pool_t__p_svn_error_t,
_swigc__p_f_p_void_p_q_const__char_p_apr_hash_t_p_apr_pool_t__p_svn_error_t,
_swigc__p_f_p_void_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t,
+ _swigc__p_f_p_void_p_q_const__char_p_q_const__char_svn_boolean_t_svn_boolean_t_p_q_const__char_svn_boolean_t_svn_revnum_t_svn_boolean_t_svn_depth_t_p_apr_pool_t__p_svn_error_t,
_swigc__p_f_p_void_p_q_const__char_p_q_const__svn_client_info2_t_p_apr_pool_t__p_svn_error_t,
_swigc__p_f_p_void_p_q_const__char_p_q_const__svn_client_status_t_p_apr_pool_t__p_svn_error_t,
_swigc__p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_apr_pool_t__p_svn_error_t,
_swigc__p_f_p_void_p_q_const__char_p_q_const__svn_dirent_t_p_q_const__svn_lock_t_p_q_const__char_p_q_const__char_p_q_const__char_p_apr_pool_t__p_svn_error_t,
_swigc__p_f_p_void_p_q_const__char_p_q_const__svn_info_t_p_apr_pool_t__p_svn_error_t,
+ _swigc__p_f_p_void_p_q_const__char_p_q_const__svn_wc_status3_t_p_apr_pool_t__p_svn_error_t,
_swigc__p_f_p_void_p_q_const__char_p_struct_svn_wc_status2_t__void,
_swigc__p_f_p_void_p_q_const__char_p_struct_svn_wc_status_t__void,
_swigc__p_f_p_void_p_q_const__char_p_svn_wc_status2_t_p_apr_pool_t__p_svn_error_t,
@@ -36665,6 +39321,8 @@ static swig_cast_info *swig_cast_initial[] = {
_swigc__p_p_apr_hash_t,
_swigc__p_p_char,
_swigc__p_p_svn_auth_provider_object_t,
+ _swigc__p_p_svn_client__shelf_t,
+ _swigc__p_p_svn_client__shelf_version_t,
_swigc__p_p_svn_client_commit_info_t,
_swigc__p_p_svn_client_conflict_t,
_swigc__p_p_svn_client_ctx_t,
@@ -36685,6 +39343,9 @@ static swig_cast_info *swig_cast_initial[] = {
_swigc__p_svn_checksum_ctx_t,
_swigc__p_svn_checksum_kind_t,
_swigc__p_svn_checksum_t,
+ _swigc__p_svn_client__shelf_info_t,
+ _swigc__p_svn_client__shelf_t,
+ _swigc__p_svn_client__shelf_version_t,
_swigc__p_svn_client_commit_info_t,
_swigc__p_svn_client_commit_item2_t,
_swigc__p_svn_client_commit_item3_t,
@@ -36698,7 +39359,6 @@ static swig_cast_info *swig_cast_initial[] = {
_swigc__p_svn_client_diff_summarize_t,
_swigc__p_svn_client_info2_t,
_swigc__p_svn_client_proplist_item_t,
- _swigc__p_svn_client_shelved_patch_info_t,
_swigc__p_svn_client_status_t,
_swigc__p_svn_commit_info_t,
_swigc__p_svn_config_t,
@@ -36734,6 +39394,7 @@ static swig_cast_info *swig_cast_initial[] = {
_swigc__p_svn_opt_revision_t,
_swigc__p_svn_opt_revision_value_t,
_swigc__p_svn_opt_subcommand_desc2_t,
+ _swigc__p_svn_opt_subcommand_desc3_t,
_swigc__p_svn_opt_subcommand_desc_t,
_swigc__p_svn_patch_file_t,
_swigc__p_svn_patch_t,
@@ -37270,6 +39931,7 @@ SWIGEXPORT void Init_client(void) {
rb_define_module_function(mClient, "svn_client_switch3", _wrap_svn_client_switch3, -1);
rb_define_module_function(mClient, "svn_client_switch2", _wrap_svn_client_switch2, -1);
rb_define_module_function(mClient, "svn_client_switch", _wrap_svn_client_switch, -1);
+ rb_define_module_function(mClient, "svn_client__layout_list", _wrap_svn_client__layout_list, -1);
rb_define_module_function(mClient, "svn_client_add5", _wrap_svn_client_add5, -1);
rb_define_module_function(mClient, "svn_client_add4", _wrap_svn_client_add4, -1);
rb_define_module_function(mClient, "svn_client_add3", _wrap_svn_client_add3, -1);
@@ -37385,12 +40047,14 @@ SWIGEXPORT void Init_client(void) {
rb_define_module_function(mClient, "svn_client_blame3", _wrap_svn_client_blame3, -1);
rb_define_module_function(mClient, "svn_client_blame2", _wrap_svn_client_blame2, -1);
rb_define_module_function(mClient, "svn_client_blame", _wrap_svn_client_blame, -1);
+ rb_define_module_function(mClient, "svn_client_diff7", _wrap_svn_client_diff7, -1);
rb_define_module_function(mClient, "svn_client_diff6", _wrap_svn_client_diff6, -1);
rb_define_module_function(mClient, "svn_client_diff5", _wrap_svn_client_diff5, -1);
rb_define_module_function(mClient, "svn_client_diff4", _wrap_svn_client_diff4, -1);
rb_define_module_function(mClient, "svn_client_diff3", _wrap_svn_client_diff3, -1);
rb_define_module_function(mClient, "svn_client_diff2", _wrap_svn_client_diff2, -1);
rb_define_module_function(mClient, "svn_client_diff", _wrap_svn_client_diff, -1);
+ rb_define_module_function(mClient, "svn_client_diff_peg7", _wrap_svn_client_diff_peg7, -1);
rb_define_module_function(mClient, "svn_client_diff_peg6", _wrap_svn_client_diff_peg6, -1);
rb_define_module_function(mClient, "svn_client_diff_peg5", _wrap_svn_client_diff_peg5, -1);
rb_define_module_function(mClient, "svn_client_diff_peg4", _wrap_svn_client_diff_peg4, -1);
@@ -37425,6 +40089,7 @@ SWIGEXPORT void Init_client(void) {
rb_define_module_function(mClient, "svn_client_upgrade", _wrap_svn_client_upgrade, -1);
rb_define_module_function(mClient, "svn_client_relocate2", _wrap_svn_client_relocate2, -1);
rb_define_module_function(mClient, "svn_client_relocate", _wrap_svn_client_relocate, -1);
+ rb_define_module_function(mClient, "svn_client_revert4", _wrap_svn_client_revert4, -1);
rb_define_module_function(mClient, "svn_client_revert3", _wrap_svn_client_revert3, -1);
rb_define_module_function(mClient, "svn_client_revert2", _wrap_svn_client_revert2, -1);
rb_define_module_function(mClient, "svn_client_revert", _wrap_svn_client_revert, -1);
@@ -37451,10 +40116,17 @@ SWIGEXPORT void Init_client(void) {
rb_define_const(mClient, "Svn_client_conflict_option_incoming_move_file_text_merge", SWIG_From_int((int)(svn_client_conflict_option_incoming_move_file_text_merge)));
rb_define_const(mClient, "Svn_client_conflict_option_incoming_move_dir_merge", SWIG_From_int((int)(svn_client_conflict_option_incoming_move_dir_merge)));
rb_define_const(mClient, "Svn_client_conflict_option_local_move_file_text_merge", SWIG_From_int((int)(svn_client_conflict_option_local_move_file_text_merge)));
+ rb_define_const(mClient, "Svn_client_conflict_option_local_move_dir_merge", SWIG_From_int((int)(svn_client_conflict_option_local_move_dir_merge)));
+ rb_define_const(mClient, "Svn_client_conflict_option_sibling_move_file_text_merge", SWIG_From_int((int)(svn_client_conflict_option_sibling_move_file_text_merge)));
+ rb_define_const(mClient, "Svn_client_conflict_option_sibling_move_dir_merge", SWIG_From_int((int)(svn_client_conflict_option_sibling_move_dir_merge)));
rb_define_module_function(mClient, "svn_client_conflict_option_set_merged_propval", _wrap_svn_client_conflict_option_set_merged_propval, -1);
+ rb_define_module_function(mClient, "svn_client_conflict_option_get_moved_to_repos_relpath_candidates2", _wrap_svn_client_conflict_option_get_moved_to_repos_relpath_candidates2, -1);
rb_define_module_function(mClient, "svn_client_conflict_option_get_moved_to_repos_relpath_candidates", _wrap_svn_client_conflict_option_get_moved_to_repos_relpath_candidates, -1);
+ rb_define_module_function(mClient, "svn_client_conflict_option_set_moved_to_repos_relpath2", _wrap_svn_client_conflict_option_set_moved_to_repos_relpath2, -1);
rb_define_module_function(mClient, "svn_client_conflict_option_set_moved_to_repos_relpath", _wrap_svn_client_conflict_option_set_moved_to_repos_relpath, -1);
+ rb_define_module_function(mClient, "svn_client_conflict_option_get_moved_to_abspath_candidates2", _wrap_svn_client_conflict_option_get_moved_to_abspath_candidates2, -1);
rb_define_module_function(mClient, "svn_client_conflict_option_get_moved_to_abspath_candidates", _wrap_svn_client_conflict_option_get_moved_to_abspath_candidates, -1);
+ rb_define_module_function(mClient, "svn_client_conflict_option_set_moved_to_abspath2", _wrap_svn_client_conflict_option_set_moved_to_abspath2, -1);
rb_define_module_function(mClient, "svn_client_conflict_option_set_moved_to_abspath", _wrap_svn_client_conflict_option_set_moved_to_abspath, -1);
rb_define_module_function(mClient, "svn_client_conflict_option_find_by_id", _wrap_svn_client_conflict_option_find_by_id, -1);
rb_define_module_function(mClient, "svn_client_conflict_get", _wrap_svn_client_conflict_get, -1);
@@ -37551,29 +40223,75 @@ SWIGEXPORT void Init_client(void) {
rb_define_module_function(mClient, "svn_client_cat3", _wrap_svn_client_cat3, -1);
rb_define_module_function(mClient, "svn_client_cat2", _wrap_svn_client_cat2, -1);
rb_define_module_function(mClient, "svn_client_cat", _wrap_svn_client_cat, -1);
- rb_define_module_function(mClient, "svn_client_shelve", _wrap_svn_client_shelve, -1);
- rb_define_module_function(mClient, "svn_client_unshelve", _wrap_svn_client_unshelve, -1);
- rb_define_module_function(mClient, "svn_client_shelves_delete", _wrap_svn_client_shelves_delete, -1);
-
- SwigClassSvn_client_shelved_patch_info_t.klass = rb_define_class_under(mClient, "Svn_client_shelved_patch_info_t", rb_cObject);
- SWIG_TypeClientData(SWIGTYPE_p_svn_client_shelved_patch_info_t, (void *) &SwigClassSvn_client_shelved_patch_info_t);
- rb_define_alloc_func(SwigClassSvn_client_shelved_patch_info_t.klass, _wrap_svn_client_shelved_patch_info_t_allocate);
- rb_define_method(SwigClassSvn_client_shelved_patch_info_t.klass, "initialize", _wrap_new_svn_client_shelved_patch_info_t, -1);
- rb_define_method(SwigClassSvn_client_shelved_patch_info_t.klass, "message=", _wrap_svn_client_shelved_patch_info_t_message_set, -1);
- rb_define_method(SwigClassSvn_client_shelved_patch_info_t.klass, "message", _wrap_svn_client_shelved_patch_info_t_message_get, -1);
- rb_define_method(SwigClassSvn_client_shelved_patch_info_t.klass, "patch_path=", _wrap_svn_client_shelved_patch_info_t_patch_path_set, -1);
- rb_define_method(SwigClassSvn_client_shelved_patch_info_t.klass, "patch_path", _wrap_svn_client_shelved_patch_info_t_patch_path_get, -1);
- rb_define_method(SwigClassSvn_client_shelved_patch_info_t.klass, "dirent=", _wrap_svn_client_shelved_patch_info_t_dirent_set, -1);
- rb_define_method(SwigClassSvn_client_shelved_patch_info_t.klass, "dirent", _wrap_svn_client_shelved_patch_info_t_dirent_get, -1);
- rb_define_method(SwigClassSvn_client_shelved_patch_info_t.klass, "mtime=", _wrap_svn_client_shelved_patch_info_t_mtime_set, -1);
- rb_define_method(SwigClassSvn_client_shelved_patch_info_t.klass, "mtime", _wrap_svn_client_shelved_patch_info_t_mtime_get, -1);
- SwigClassSvn_client_shelved_patch_info_t.mark = 0;
- SwigClassSvn_client_shelved_patch_info_t.destroy = (void (*)(void *)) free_svn_client_shelved_patch_info_t;
- SwigClassSvn_client_shelved_patch_info_t.trackObjects = 0;
- rb_define_module_function(mClient, "svn_client_shelves_list", _wrap_svn_client_shelves_list, -1);
- rb_define_module_function(mClient, "svn_client_shelves_any", _wrap_svn_client_shelves_any, -1);
- rb_define_module_function(mClient, "svn_client_shelf_get_paths", _wrap_svn_client_shelf_get_paths, -1);
- rb_define_module_function(mClient, "svn_client_shelf_has_changes", _wrap_svn_client_shelf_has_changes, -1);
+
+ SwigClassSvn_client__shelf_t.klass = rb_define_class_under(mClient, "Svn_client__shelf_t", rb_cObject);
+ SWIG_TypeClientData(SWIGTYPE_p_svn_client__shelf_t, (void *) &SwigClassSvn_client__shelf_t);
+ rb_define_alloc_func(SwigClassSvn_client__shelf_t.klass, _wrap_svn_client__shelf_t_allocate);
+ rb_define_method(SwigClassSvn_client__shelf_t.klass, "initialize", _wrap_new_svn_client__shelf_t, -1);
+ rb_define_method(SwigClassSvn_client__shelf_t.klass, "name=", _wrap_svn_client__shelf_t_name_set, -1);
+ rb_define_method(SwigClassSvn_client__shelf_t.klass, "name", _wrap_svn_client__shelf_t_name_get, -1);
+ rb_define_method(SwigClassSvn_client__shelf_t.klass, "max_version=", _wrap_svn_client__shelf_t_max_version_set, -1);
+ rb_define_method(SwigClassSvn_client__shelf_t.klass, "max_version", _wrap_svn_client__shelf_t_max_version_get, -1);
+ rb_define_method(SwigClassSvn_client__shelf_t.klass, "wc_root_abspath=", _wrap_svn_client__shelf_t_wc_root_abspath_set, -1);
+ rb_define_method(SwigClassSvn_client__shelf_t.klass, "wc_root_abspath", _wrap_svn_client__shelf_t_wc_root_abspath_get, -1);
+ rb_define_method(SwigClassSvn_client__shelf_t.klass, "shelves_dir=", _wrap_svn_client__shelf_t_shelves_dir_set, -1);
+ rb_define_method(SwigClassSvn_client__shelf_t.klass, "shelves_dir", _wrap_svn_client__shelf_t_shelves_dir_get, -1);
+ rb_define_method(SwigClassSvn_client__shelf_t.klass, "revprops=", _wrap_svn_client__shelf_t_revprops_set, -1);
+ rb_define_method(SwigClassSvn_client__shelf_t.klass, "revprops", _wrap_svn_client__shelf_t_revprops_get, -1);
+ rb_define_method(SwigClassSvn_client__shelf_t.klass, "ctx=", _wrap_svn_client__shelf_t_ctx_set, -1);
+ rb_define_method(SwigClassSvn_client__shelf_t.klass, "ctx", _wrap_svn_client__shelf_t_ctx_get, -1);
+ rb_define_method(SwigClassSvn_client__shelf_t.klass, "pool=", _wrap_svn_client__shelf_t_pool_set, -1);
+ rb_define_method(SwigClassSvn_client__shelf_t.klass, "pool", _wrap_svn_client__shelf_t_pool_get, -1);
+ SwigClassSvn_client__shelf_t.mark = 0;
+ SwigClassSvn_client__shelf_t.destroy = (void (*)(void *)) free_svn_client__shelf_t;
+ SwigClassSvn_client__shelf_t.trackObjects = 0;
+
+ SwigClassSvn_client__shelf_version_t.klass = rb_define_class_under(mClient, "Svn_client__shelf_version_t", rb_cObject);
+ SWIG_TypeClientData(SWIGTYPE_p_svn_client__shelf_version_t, (void *) &SwigClassSvn_client__shelf_version_t);
+ rb_define_alloc_func(SwigClassSvn_client__shelf_version_t.klass, _wrap_svn_client__shelf_version_t_allocate);
+ rb_define_method(SwigClassSvn_client__shelf_version_t.klass, "initialize", _wrap_new_svn_client__shelf_version_t, -1);
+ rb_define_method(SwigClassSvn_client__shelf_version_t.klass, "shelf=", _wrap_svn_client__shelf_version_t_shelf_set, -1);
+ rb_define_method(SwigClassSvn_client__shelf_version_t.klass, "shelf", _wrap_svn_client__shelf_version_t_shelf_get, -1);
+ rb_define_method(SwigClassSvn_client__shelf_version_t.klass, "mtime=", _wrap_svn_client__shelf_version_t_mtime_set, -1);
+ rb_define_method(SwigClassSvn_client__shelf_version_t.klass, "mtime", _wrap_svn_client__shelf_version_t_mtime_get, -1);
+ rb_define_method(SwigClassSvn_client__shelf_version_t.klass, "files_dir_abspath=", _wrap_svn_client__shelf_version_t_files_dir_abspath_set, -1);
+ rb_define_method(SwigClassSvn_client__shelf_version_t.klass, "files_dir_abspath", _wrap_svn_client__shelf_version_t_files_dir_abspath_get, -1);
+ rb_define_method(SwigClassSvn_client__shelf_version_t.klass, "version_number=", _wrap_svn_client__shelf_version_t_version_number_set, -1);
+ rb_define_method(SwigClassSvn_client__shelf_version_t.klass, "version_number", _wrap_svn_client__shelf_version_t_version_number_get, -1);
+ SwigClassSvn_client__shelf_version_t.mark = 0;
+ SwigClassSvn_client__shelf_version_t.destroy = (void (*)(void *)) free_svn_client__shelf_version_t;
+ SwigClassSvn_client__shelf_version_t.trackObjects = 0;
+ rb_define_module_function(mClient, "svn_client__shelf_open_or_create", _wrap_svn_client__shelf_open_or_create, -1);
+ rb_define_module_function(mClient, "svn_client__shelf_open_existing", _wrap_svn_client__shelf_open_existing, -1);
+ rb_define_module_function(mClient, "svn_client__shelf_close", _wrap_svn_client__shelf_close, -1);
+ rb_define_module_function(mClient, "svn_client__shelf_delete", _wrap_svn_client__shelf_delete, -1);
+ rb_define_module_function(mClient, "svn_client__shelf_save_new_version3", _wrap_svn_client__shelf_save_new_version3, -1);
+ rb_define_module_function(mClient, "svn_client__shelf_delete_newer_versions", _wrap_svn_client__shelf_delete_newer_versions, -1);
+ rb_define_module_function(mClient, "svn_client__shelf_version_open", _wrap_svn_client__shelf_version_open, -1);
+ rb_define_module_function(mClient, "svn_client__shelf_get_newest_version", _wrap_svn_client__shelf_get_newest_version, -1);
+ rb_define_module_function(mClient, "svn_client__shelf_get_all_versions", _wrap_svn_client__shelf_get_all_versions, -1);
+ rb_define_module_function(mClient, "svn_client__shelf_apply", _wrap_svn_client__shelf_apply, -1);
+ rb_define_module_function(mClient, "svn_client__shelf_test_apply_file", _wrap_svn_client__shelf_test_apply_file, -1);
+ rb_define_module_function(mClient, "svn_client__shelf_unapply", _wrap_svn_client__shelf_unapply, -1);
+ rb_define_module_function(mClient, "svn_client__shelf_paths_changed", _wrap_svn_client__shelf_paths_changed, -1);
+ rb_define_module_function(mClient, "svn_client__shelf_revprop_set", _wrap_svn_client__shelf_revprop_set, -1);
+ rb_define_module_function(mClient, "svn_client__shelf_revprop_set_all", _wrap_svn_client__shelf_revprop_set_all, -1);
+ rb_define_module_function(mClient, "svn_client__shelf_revprop_get", _wrap_svn_client__shelf_revprop_get, -1);
+ rb_define_module_function(mClient, "svn_client__shelf_revprop_list", _wrap_svn_client__shelf_revprop_list, -1);
+ rb_define_module_function(mClient, "svn_client__shelf_set_log_message", _wrap_svn_client__shelf_set_log_message, -1);
+ rb_define_module_function(mClient, "svn_client__shelf_get_log_message", _wrap_svn_client__shelf_get_log_message, -1);
+
+ SwigClassSvn_client__shelf_info_t.klass = rb_define_class_under(mClient, "Svn_client__shelf_info_t", rb_cObject);
+ SWIG_TypeClientData(SWIGTYPE_p_svn_client__shelf_info_t, (void *) &SwigClassSvn_client__shelf_info_t);
+ rb_define_alloc_func(SwigClassSvn_client__shelf_info_t.klass, _wrap_svn_client__shelf_info_t_allocate);
+ rb_define_method(SwigClassSvn_client__shelf_info_t.klass, "initialize", _wrap_new_svn_client__shelf_info_t, -1);
+ rb_define_method(SwigClassSvn_client__shelf_info_t.klass, "mtime=", _wrap_svn_client__shelf_info_t_mtime_set, -1);
+ rb_define_method(SwigClassSvn_client__shelf_info_t.klass, "mtime", _wrap_svn_client__shelf_info_t_mtime_get, -1);
+ SwigClassSvn_client__shelf_info_t.mark = 0;
+ SwigClassSvn_client__shelf_info_t.destroy = (void (*)(void *)) free_svn_client__shelf_info_t;
+ SwigClassSvn_client__shelf_info_t.trackObjects = 0;
+ rb_define_module_function(mClient, "svn_client__shelf_list", _wrap_svn_client__shelf_list, -1);
+ rb_define_module_function(mClient, "svn_client__shelf_version_status_walk", _wrap_svn_client__shelf_version_status_walk, -1);
rb_define_module_function(mClient, "svn_client_add_to_changelist", _wrap_svn_client_add_to_changelist, -1);
rb_define_module_function(mClient, "svn_client_remove_from_changelists", _wrap_svn_client_remove_from_changelists, -1);
rb_define_module_function(mClient, "svn_client_get_changelists", _wrap_svn_client_get_changelists, -1);
@@ -37698,6 +40416,7 @@ SWIGEXPORT void Init_client(void) {
rb_define_module_function(mClient, "svn_client_invoke_blame_receiver2", _wrap_svn_client_invoke_blame_receiver2, -1);
rb_define_module_function(mClient, "svn_client_invoke_blame_receiver", _wrap_svn_client_invoke_blame_receiver, -1);
rb_define_module_function(mClient, "svn_client_invoke_diff_summarize_func", _wrap_svn_client_invoke_diff_summarize_func, -1);
+ rb_define_module_function(mClient, "svn_client_invoke__layout_func", _wrap_svn_client_invoke__layout_func, -1);
rb_define_module_function(mClient, "svn_client_invoke_import_filter_func", _wrap_svn_client_invoke_import_filter_func, -1);
rb_define_module_function(mClient, "svn_client_invoke_status_func", _wrap_svn_client_invoke_status_func, -1);
rb_define_module_function(mClient, "svn_client_invoke_conflict_walk_func", _wrap_svn_client_invoke_conflict_walk_func, -1);
diff --git a/subversion/bindings/swig/ruby/svn_delta.c b/subversion/bindings/swig/ruby/svn_delta.c
index 48e3809..33ff675 100644
--- a/subversion/bindings/swig/ruby/svn_delta.c
+++ b/subversion/bindings/swig/ruby/svn_delta.c
@@ -1886,30 +1886,31 @@ int SWIG_Ruby_arity( VALUE proc, int minimal )
#define SWIGTYPE_p_svn_opt_revision_t swig_types[80]
#define SWIGTYPE_p_svn_opt_revision_value_t swig_types[81]
#define SWIGTYPE_p_svn_opt_subcommand_desc2_t swig_types[82]
-#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[83]
-#define SWIGTYPE_p_svn_patch_file_t swig_types[84]
-#define SWIGTYPE_p_svn_patch_t swig_types[85]
-#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[86]
-#define SWIGTYPE_p_svn_prop_kind swig_types[87]
-#define SWIGTYPE_p_svn_prop_patch_t swig_types[88]
-#define SWIGTYPE_p_svn_stream_mark_t swig_types[89]
-#define SWIGTYPE_p_svn_stream_t swig_types[90]
-#define SWIGTYPE_p_svn_string_t swig_types[91]
-#define SWIGTYPE_p_svn_stringbuf_t swig_types[92]
-#define SWIGTYPE_p_svn_tristate_t swig_types[93]
-#define SWIGTYPE_p_svn_txdelta_op_t swig_types[94]
-#define SWIGTYPE_p_svn_txdelta_stream_t swig_types[95]
-#define SWIGTYPE_p_svn_txdelta_window_t swig_types[96]
-#define SWIGTYPE_p_svn_version_checklist_t swig_types[97]
-#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[98]
-#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[99]
-#define SWIGTYPE_p_svn_version_extended_t swig_types[100]
-#define SWIGTYPE_p_svn_version_t swig_types[101]
-#define SWIGTYPE_p_unsigned_char swig_types[102]
-#define SWIGTYPE_p_unsigned_long swig_types[103]
-#define SWIGTYPE_p_void swig_types[104]
-static swig_type_info *swig_types[106];
-static swig_module_info swig_module = {swig_types, 105, 0, 0, 0, 0};
+#define SWIGTYPE_p_svn_opt_subcommand_desc3_t swig_types[83]
+#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[84]
+#define SWIGTYPE_p_svn_patch_file_t swig_types[85]
+#define SWIGTYPE_p_svn_patch_t swig_types[86]
+#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[87]
+#define SWIGTYPE_p_svn_prop_kind swig_types[88]
+#define SWIGTYPE_p_svn_prop_patch_t swig_types[89]
+#define SWIGTYPE_p_svn_stream_mark_t swig_types[90]
+#define SWIGTYPE_p_svn_stream_t swig_types[91]
+#define SWIGTYPE_p_svn_string_t swig_types[92]
+#define SWIGTYPE_p_svn_stringbuf_t swig_types[93]
+#define SWIGTYPE_p_svn_tristate_t swig_types[94]
+#define SWIGTYPE_p_svn_txdelta_op_t swig_types[95]
+#define SWIGTYPE_p_svn_txdelta_stream_t swig_types[96]
+#define SWIGTYPE_p_svn_txdelta_window_t swig_types[97]
+#define SWIGTYPE_p_svn_version_checklist_t swig_types[98]
+#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[99]
+#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[100]
+#define SWIGTYPE_p_svn_version_extended_t swig_types[101]
+#define SWIGTYPE_p_svn_version_t swig_types[102]
+#define SWIGTYPE_p_unsigned_char swig_types[103]
+#define SWIGTYPE_p_unsigned_long swig_types[104]
+#define SWIGTYPE_p_void swig_types[105]
+static swig_type_info *swig_types[107];
+static swig_module_info swig_module = {swig_types, 106, 0, 0, 0, 0};
#define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
#define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
@@ -8836,6 +8837,7 @@ static swig_type_info _swigt__p_svn_opt_revision_range_t = {"_p_svn_opt_revision
static swig_type_info _swigt__p_svn_opt_revision_t = {"_p_svn_opt_revision_t", "struct svn_opt_revision_t *|svn_opt_revision_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_revision_value_t = {"_p_svn_opt_revision_value_t", "union svn_opt_revision_value_t *|svn_opt_revision_value_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc2_t = {"_p_svn_opt_subcommand_desc2_t", "struct svn_opt_subcommand_desc2_t *|svn_opt_subcommand_desc2_t *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_svn_opt_subcommand_desc3_t = {"_p_svn_opt_subcommand_desc3_t", "struct svn_opt_subcommand_desc3_t *|svn_opt_subcommand_desc3_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc_t = {"_p_svn_opt_subcommand_desc_t", "struct svn_opt_subcommand_desc_t *|svn_opt_subcommand_desc_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_patch_file_t = {"_p_svn_patch_file_t", "struct svn_patch_file_t *|svn_patch_file_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_patch_t = {"_p_svn_patch_t", "struct svn_patch_t *|svn_patch_t *", 0, 0, (void*)0, 0};
@@ -8943,6 +8945,7 @@ static swig_type_info *swig_type_initial[] = {
&_swigt__p_svn_opt_revision_t,
&_swigt__p_svn_opt_revision_value_t,
&_swigt__p_svn_opt_subcommand_desc2_t,
+ &_swigt__p_svn_opt_subcommand_desc3_t,
&_swigt__p_svn_opt_subcommand_desc_t,
&_swigt__p_svn_patch_file_t,
&_swigt__p_svn_patch_t,
@@ -9050,6 +9053,7 @@ static swig_cast_info _swigc__p_svn_opt_revision_range_t[] = { {&_swigt__p_svn_
static swig_cast_info _swigc__p_svn_opt_revision_t[] = { {&_swigt__p_svn_opt_revision_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_revision_value_t[] = { {&_swigt__p_svn_opt_revision_value_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc2_t[] = { {&_swigt__p_svn_opt_subcommand_desc2_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_svn_opt_subcommand_desc3_t[] = { {&_swigt__p_svn_opt_subcommand_desc3_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc_t[] = { {&_swigt__p_svn_opt_subcommand_desc_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_patch_file_t[] = { {&_swigt__p_svn_patch_file_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_patch_t[] = { {&_swigt__p_svn_patch_t, 0, 0, 0},{0, 0, 0, 0}};
@@ -9157,6 +9161,7 @@ static swig_cast_info *swig_cast_initial[] = {
_swigc__p_svn_opt_revision_t,
_swigc__p_svn_opt_revision_value_t,
_swigc__p_svn_opt_subcommand_desc2_t,
+ _swigc__p_svn_opt_subcommand_desc3_t,
_swigc__p_svn_opt_subcommand_desc_t,
_swigc__p_svn_patch_file_t,
_swigc__p_svn_patch_t,
diff --git a/subversion/bindings/swig/ruby/svn_diff.c b/subversion/bindings/swig/ruby/svn_diff.c
index de86a5b..bfe6d3e 100644
--- a/subversion/bindings/swig/ruby/svn_diff.c
+++ b/subversion/bindings/swig/ruby/svn_diff.c
@@ -1856,25 +1856,26 @@ int SWIG_Ruby_arity( VALUE proc, int minimal )
#define SWIGTYPE_p_svn_opt_revision_t swig_types[50]
#define SWIGTYPE_p_svn_opt_revision_value_t swig_types[51]
#define SWIGTYPE_p_svn_opt_subcommand_desc2_t swig_types[52]
-#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[53]
-#define SWIGTYPE_p_svn_patch_file_t swig_types[54]
-#define SWIGTYPE_p_svn_patch_t swig_types[55]
-#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[56]
-#define SWIGTYPE_p_svn_prop_kind swig_types[57]
-#define SWIGTYPE_p_svn_prop_patch_t swig_types[58]
-#define SWIGTYPE_p_svn_stream_mark_t swig_types[59]
-#define SWIGTYPE_p_svn_stream_t swig_types[60]
-#define SWIGTYPE_p_svn_string_t swig_types[61]
-#define SWIGTYPE_p_svn_stringbuf_t swig_types[62]
-#define SWIGTYPE_p_svn_tristate_t swig_types[63]
-#define SWIGTYPE_p_svn_version_checklist_t swig_types[64]
-#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[65]
-#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[66]
-#define SWIGTYPE_p_svn_version_extended_t swig_types[67]
-#define SWIGTYPE_p_svn_version_t swig_types[68]
-#define SWIGTYPE_p_unsigned_long swig_types[69]
-static swig_type_info *swig_types[71];
-static swig_module_info swig_module = {swig_types, 70, 0, 0, 0, 0};
+#define SWIGTYPE_p_svn_opt_subcommand_desc3_t swig_types[53]
+#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[54]
+#define SWIGTYPE_p_svn_patch_file_t swig_types[55]
+#define SWIGTYPE_p_svn_patch_t swig_types[56]
+#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[57]
+#define SWIGTYPE_p_svn_prop_kind swig_types[58]
+#define SWIGTYPE_p_svn_prop_patch_t swig_types[59]
+#define SWIGTYPE_p_svn_stream_mark_t swig_types[60]
+#define SWIGTYPE_p_svn_stream_t swig_types[61]
+#define SWIGTYPE_p_svn_string_t swig_types[62]
+#define SWIGTYPE_p_svn_stringbuf_t swig_types[63]
+#define SWIGTYPE_p_svn_tristate_t swig_types[64]
+#define SWIGTYPE_p_svn_version_checklist_t swig_types[65]
+#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[66]
+#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[67]
+#define SWIGTYPE_p_svn_version_extended_t swig_types[68]
+#define SWIGTYPE_p_svn_version_t swig_types[69]
+#define SWIGTYPE_p_unsigned_long swig_types[70]
+static swig_type_info *swig_types[72];
+static swig_module_info swig_module = {swig_types, 71, 0, 0, 0, 0};
#define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
#define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
@@ -1993,6 +1994,7 @@ static swig_type_info _swigt__p_svn_opt_revision_range_t = {"_p_svn_opt_revision
static swig_type_info _swigt__p_svn_opt_revision_t = {"_p_svn_opt_revision_t", "struct svn_opt_revision_t *|svn_opt_revision_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_revision_value_t = {"_p_svn_opt_revision_value_t", "union svn_opt_revision_value_t *|svn_opt_revision_value_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc2_t = {"_p_svn_opt_subcommand_desc2_t", "struct svn_opt_subcommand_desc2_t *|svn_opt_subcommand_desc2_t *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_svn_opt_subcommand_desc3_t = {"_p_svn_opt_subcommand_desc3_t", "struct svn_opt_subcommand_desc3_t *|svn_opt_subcommand_desc3_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc_t = {"_p_svn_opt_subcommand_desc_t", "struct svn_opt_subcommand_desc_t *|svn_opt_subcommand_desc_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_patch_file_t = {"_p_svn_patch_file_t", "struct svn_patch_file_t *|svn_patch_file_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_patch_t = {"_p_svn_patch_t", "struct svn_patch_t *|svn_patch_t *", 0, 0, (void*)0, 0};
@@ -2065,6 +2067,7 @@ static swig_type_info *swig_type_initial[] = {
&_swigt__p_svn_opt_revision_t,
&_swigt__p_svn_opt_revision_value_t,
&_swigt__p_svn_opt_subcommand_desc2_t,
+ &_swigt__p_svn_opt_subcommand_desc3_t,
&_swigt__p_svn_opt_subcommand_desc_t,
&_swigt__p_svn_patch_file_t,
&_swigt__p_svn_patch_t,
@@ -2137,6 +2140,7 @@ static swig_cast_info _swigc__p_svn_opt_revision_range_t[] = { {&_swigt__p_svn_
static swig_cast_info _swigc__p_svn_opt_revision_t[] = { {&_swigt__p_svn_opt_revision_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_revision_value_t[] = { {&_swigt__p_svn_opt_revision_value_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc2_t[] = { {&_swigt__p_svn_opt_subcommand_desc2_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_svn_opt_subcommand_desc3_t[] = { {&_swigt__p_svn_opt_subcommand_desc3_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc_t[] = { {&_swigt__p_svn_opt_subcommand_desc_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_patch_file_t[] = { {&_swigt__p_svn_patch_file_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_patch_t[] = { {&_swigt__p_svn_patch_t, 0, 0, 0},{0, 0, 0, 0}};
@@ -2209,6 +2213,7 @@ static swig_cast_info *swig_cast_initial[] = {
_swigc__p_svn_opt_revision_t,
_swigc__p_svn_opt_revision_value_t,
_swigc__p_svn_opt_subcommand_desc2_t,
+ _swigc__p_svn_opt_subcommand_desc3_t,
_swigc__p_svn_opt_subcommand_desc_t,
_swigc__p_svn_patch_file_t,
_swigc__p_svn_patch_t,
diff --git a/subversion/bindings/swig/ruby/svn_fs.c b/subversion/bindings/swig/ruby/svn_fs.c
index 2d3c6b3..1c6215c 100644
--- a/subversion/bindings/swig/ruby/svn_fs.c
+++ b/subversion/bindings/swig/ruby/svn_fs.c
@@ -1911,30 +1911,31 @@ int SWIG_Ruby_arity( VALUE proc, int minimal )
#define SWIGTYPE_p_svn_opt_revision_t swig_types[105]
#define SWIGTYPE_p_svn_opt_revision_value_t swig_types[106]
#define SWIGTYPE_p_svn_opt_subcommand_desc2_t swig_types[107]
-#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[108]
-#define SWIGTYPE_p_svn_patch_file_t swig_types[109]
-#define SWIGTYPE_p_svn_patch_t swig_types[110]
-#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[111]
-#define SWIGTYPE_p_svn_prop_kind swig_types[112]
-#define SWIGTYPE_p_svn_prop_patch_t swig_types[113]
-#define SWIGTYPE_p_svn_stream_mark_t swig_types[114]
-#define SWIGTYPE_p_svn_stream_t swig_types[115]
-#define SWIGTYPE_p_svn_string_t swig_types[116]
-#define SWIGTYPE_p_svn_stringbuf_t swig_types[117]
-#define SWIGTYPE_p_svn_tristate_t swig_types[118]
-#define SWIGTYPE_p_svn_txdelta_op_t swig_types[119]
-#define SWIGTYPE_p_svn_txdelta_stream_t swig_types[120]
-#define SWIGTYPE_p_svn_txdelta_window_t swig_types[121]
-#define SWIGTYPE_p_svn_version_checklist_t swig_types[122]
-#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[123]
-#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[124]
-#define SWIGTYPE_p_svn_version_extended_t swig_types[125]
-#define SWIGTYPE_p_svn_version_t swig_types[126]
-#define SWIGTYPE_p_unsigned_char swig_types[127]
-#define SWIGTYPE_p_unsigned_long swig_types[128]
-#define SWIGTYPE_p_void swig_types[129]
-static swig_type_info *swig_types[131];
-static swig_module_info swig_module = {swig_types, 130, 0, 0, 0, 0};
+#define SWIGTYPE_p_svn_opt_subcommand_desc3_t swig_types[108]
+#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[109]
+#define SWIGTYPE_p_svn_patch_file_t swig_types[110]
+#define SWIGTYPE_p_svn_patch_t swig_types[111]
+#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[112]
+#define SWIGTYPE_p_svn_prop_kind swig_types[113]
+#define SWIGTYPE_p_svn_prop_patch_t swig_types[114]
+#define SWIGTYPE_p_svn_stream_mark_t swig_types[115]
+#define SWIGTYPE_p_svn_stream_t swig_types[116]
+#define SWIGTYPE_p_svn_string_t swig_types[117]
+#define SWIGTYPE_p_svn_stringbuf_t swig_types[118]
+#define SWIGTYPE_p_svn_tristate_t swig_types[119]
+#define SWIGTYPE_p_svn_txdelta_op_t swig_types[120]
+#define SWIGTYPE_p_svn_txdelta_stream_t swig_types[121]
+#define SWIGTYPE_p_svn_txdelta_window_t swig_types[122]
+#define SWIGTYPE_p_svn_version_checklist_t swig_types[123]
+#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[124]
+#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[125]
+#define SWIGTYPE_p_svn_version_extended_t swig_types[126]
+#define SWIGTYPE_p_svn_version_t swig_types[127]
+#define SWIGTYPE_p_unsigned_char swig_types[128]
+#define SWIGTYPE_p_unsigned_long swig_types[129]
+#define SWIGTYPE_p_void swig_types[130]
+static swig_type_info *swig_types[132];
+static swig_module_info swig_module = {swig_types, 131, 0, 0, 0, 0};
#define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
#define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
@@ -15331,6 +15332,7 @@ static swig_type_info _swigt__p_svn_opt_revision_range_t = {"_p_svn_opt_revision
static swig_type_info _swigt__p_svn_opt_revision_t = {"_p_svn_opt_revision_t", "struct svn_opt_revision_t *|svn_opt_revision_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_revision_value_t = {"_p_svn_opt_revision_value_t", "union svn_opt_revision_value_t *|svn_opt_revision_value_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc2_t = {"_p_svn_opt_subcommand_desc2_t", "struct svn_opt_subcommand_desc2_t *|svn_opt_subcommand_desc2_t *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_svn_opt_subcommand_desc3_t = {"_p_svn_opt_subcommand_desc3_t", "struct svn_opt_subcommand_desc3_t *|svn_opt_subcommand_desc3_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc_t = {"_p_svn_opt_subcommand_desc_t", "struct svn_opt_subcommand_desc_t *|svn_opt_subcommand_desc_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_patch_file_t = {"_p_svn_patch_file_t", "struct svn_patch_file_t *|svn_patch_file_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_patch_t = {"_p_svn_patch_t", "struct svn_patch_t *|svn_patch_t *", 0, 0, (void*)0, 0};
@@ -15463,6 +15465,7 @@ static swig_type_info *swig_type_initial[] = {
&_swigt__p_svn_opt_revision_t,
&_swigt__p_svn_opt_revision_value_t,
&_swigt__p_svn_opt_subcommand_desc2_t,
+ &_swigt__p_svn_opt_subcommand_desc3_t,
&_swigt__p_svn_opt_subcommand_desc_t,
&_swigt__p_svn_patch_file_t,
&_swigt__p_svn_patch_t,
@@ -15595,6 +15598,7 @@ static swig_cast_info _swigc__p_svn_opt_revision_range_t[] = { {&_swigt__p_svn_
static swig_cast_info _swigc__p_svn_opt_revision_t[] = { {&_swigt__p_svn_opt_revision_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_revision_value_t[] = { {&_swigt__p_svn_opt_revision_value_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc2_t[] = { {&_swigt__p_svn_opt_subcommand_desc2_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_svn_opt_subcommand_desc3_t[] = { {&_swigt__p_svn_opt_subcommand_desc3_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc_t[] = { {&_swigt__p_svn_opt_subcommand_desc_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_patch_file_t[] = { {&_swigt__p_svn_patch_file_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_patch_t[] = { {&_swigt__p_svn_patch_t, 0, 0, 0},{0, 0, 0, 0}};
@@ -15727,6 +15731,7 @@ static swig_cast_info *swig_cast_initial[] = {
_swigc__p_svn_opt_revision_t,
_swigc__p_svn_opt_revision_value_t,
_swigc__p_svn_opt_subcommand_desc2_t,
+ _swigc__p_svn_opt_subcommand_desc3_t,
_swigc__p_svn_opt_subcommand_desc_t,
_swigc__p_svn_patch_file_t,
_swigc__p_svn_patch_t,
diff --git a/subversion/bindings/swig/ruby/svn_ra.c b/subversion/bindings/swig/ruby/svn_ra.c
index d2cd947..ec1ec4d 100644
--- a/subversion/bindings/swig/ruby/svn_ra.c
+++ b/subversion/bindings/swig/ruby/svn_ra.c
@@ -1931,36 +1931,37 @@ int SWIG_Ruby_arity( VALUE proc, int minimal )
#define SWIGTYPE_p_svn_opt_revision_t swig_types[125]
#define SWIGTYPE_p_svn_opt_revision_value_t swig_types[126]
#define SWIGTYPE_p_svn_opt_subcommand_desc2_t swig_types[127]
-#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[128]
-#define SWIGTYPE_p_svn_patch_file_t swig_types[129]
-#define SWIGTYPE_p_svn_patch_t swig_types[130]
-#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[131]
-#define SWIGTYPE_p_svn_prop_kind swig_types[132]
-#define SWIGTYPE_p_svn_prop_patch_t swig_types[133]
-#define SWIGTYPE_p_svn_ra_callbacks2_t swig_types[134]
-#define SWIGTYPE_p_svn_ra_callbacks_t swig_types[135]
-#define SWIGTYPE_p_svn_ra_plugin_t swig_types[136]
-#define SWIGTYPE_p_svn_ra_reporter2_t swig_types[137]
-#define SWIGTYPE_p_svn_ra_reporter3_t swig_types[138]
-#define SWIGTYPE_p_svn_ra_reporter_t swig_types[139]
-#define SWIGTYPE_p_svn_ra_session_t swig_types[140]
-#define SWIGTYPE_p_svn_stream_mark_t swig_types[141]
-#define SWIGTYPE_p_svn_stream_t swig_types[142]
-#define SWIGTYPE_p_svn_string_t swig_types[143]
-#define SWIGTYPE_p_svn_stringbuf_t swig_types[144]
-#define SWIGTYPE_p_svn_tristate_t swig_types[145]
-#define SWIGTYPE_p_svn_txdelta_op_t swig_types[146]
-#define SWIGTYPE_p_svn_txdelta_stream_t swig_types[147]
-#define SWIGTYPE_p_svn_txdelta_window_t swig_types[148]
-#define SWIGTYPE_p_svn_version_checklist_t swig_types[149]
-#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[150]
-#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[151]
-#define SWIGTYPE_p_svn_version_extended_t swig_types[152]
-#define SWIGTYPE_p_svn_version_t swig_types[153]
-#define SWIGTYPE_p_unsigned_long swig_types[154]
-#define SWIGTYPE_p_void swig_types[155]
-static swig_type_info *swig_types[157];
-static swig_module_info swig_module = {swig_types, 156, 0, 0, 0, 0};
+#define SWIGTYPE_p_svn_opt_subcommand_desc3_t swig_types[128]
+#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[129]
+#define SWIGTYPE_p_svn_patch_file_t swig_types[130]
+#define SWIGTYPE_p_svn_patch_t swig_types[131]
+#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[132]
+#define SWIGTYPE_p_svn_prop_kind swig_types[133]
+#define SWIGTYPE_p_svn_prop_patch_t swig_types[134]
+#define SWIGTYPE_p_svn_ra_callbacks2_t swig_types[135]
+#define SWIGTYPE_p_svn_ra_callbacks_t swig_types[136]
+#define SWIGTYPE_p_svn_ra_plugin_t swig_types[137]
+#define SWIGTYPE_p_svn_ra_reporter2_t swig_types[138]
+#define SWIGTYPE_p_svn_ra_reporter3_t swig_types[139]
+#define SWIGTYPE_p_svn_ra_reporter_t swig_types[140]
+#define SWIGTYPE_p_svn_ra_session_t swig_types[141]
+#define SWIGTYPE_p_svn_stream_mark_t swig_types[142]
+#define SWIGTYPE_p_svn_stream_t swig_types[143]
+#define SWIGTYPE_p_svn_string_t swig_types[144]
+#define SWIGTYPE_p_svn_stringbuf_t swig_types[145]
+#define SWIGTYPE_p_svn_tristate_t swig_types[146]
+#define SWIGTYPE_p_svn_txdelta_op_t swig_types[147]
+#define SWIGTYPE_p_svn_txdelta_stream_t swig_types[148]
+#define SWIGTYPE_p_svn_txdelta_window_t swig_types[149]
+#define SWIGTYPE_p_svn_version_checklist_t swig_types[150]
+#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[151]
+#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[152]
+#define SWIGTYPE_p_svn_version_extended_t swig_types[153]
+#define SWIGTYPE_p_svn_version_t swig_types[154]
+#define SWIGTYPE_p_unsigned_long swig_types[155]
+#define SWIGTYPE_p_void swig_types[156]
+static swig_type_info *swig_types[158];
+static swig_module_info swig_module = {swig_types, 157, 0, 0, 0, 0};
#define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
#define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
@@ -16263,6 +16264,7 @@ static swig_type_info _swigt__p_svn_opt_revision_range_t = {"_p_svn_opt_revision
static swig_type_info _swigt__p_svn_opt_revision_t = {"_p_svn_opt_revision_t", "struct svn_opt_revision_t *|svn_opt_revision_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_revision_value_t = {"_p_svn_opt_revision_value_t", "union svn_opt_revision_value_t *|svn_opt_revision_value_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc2_t = {"_p_svn_opt_subcommand_desc2_t", "struct svn_opt_subcommand_desc2_t *|svn_opt_subcommand_desc2_t *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_svn_opt_subcommand_desc3_t = {"_p_svn_opt_subcommand_desc3_t", "struct svn_opt_subcommand_desc3_t *|svn_opt_subcommand_desc3_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc_t = {"_p_svn_opt_subcommand_desc_t", "struct svn_opt_subcommand_desc_t *|svn_opt_subcommand_desc_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_patch_file_t = {"_p_svn_patch_file_t", "struct svn_patch_file_t *|svn_patch_file_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_patch_t = {"_p_svn_patch_t", "struct svn_patch_t *|svn_patch_t *", 0, 0, (void*)0, 0};
@@ -16421,6 +16423,7 @@ static swig_type_info *swig_type_initial[] = {
&_swigt__p_svn_opt_revision_t,
&_swigt__p_svn_opt_revision_value_t,
&_swigt__p_svn_opt_subcommand_desc2_t,
+ &_swigt__p_svn_opt_subcommand_desc3_t,
&_swigt__p_svn_opt_subcommand_desc_t,
&_swigt__p_svn_patch_file_t,
&_swigt__p_svn_patch_t,
@@ -16579,6 +16582,7 @@ static swig_cast_info _swigc__p_svn_opt_revision_range_t[] = { {&_swigt__p_svn_
static swig_cast_info _swigc__p_svn_opt_revision_t[] = { {&_swigt__p_svn_opt_revision_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_revision_value_t[] = { {&_swigt__p_svn_opt_revision_value_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc2_t[] = { {&_swigt__p_svn_opt_subcommand_desc2_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_svn_opt_subcommand_desc3_t[] = { {&_swigt__p_svn_opt_subcommand_desc3_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc_t[] = { {&_swigt__p_svn_opt_subcommand_desc_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_patch_file_t[] = { {&_swigt__p_svn_patch_file_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_patch_t[] = { {&_swigt__p_svn_patch_t, 0, 0, 0},{0, 0, 0, 0}};
@@ -16737,6 +16741,7 @@ static swig_cast_info *swig_cast_initial[] = {
_swigc__p_svn_opt_revision_t,
_swigc__p_svn_opt_revision_value_t,
_swigc__p_svn_opt_subcommand_desc2_t,
+ _swigc__p_svn_opt_subcommand_desc3_t,
_swigc__p_svn_opt_subcommand_desc_t,
_swigc__p_svn_patch_file_t,
_swigc__p_svn_patch_t,
diff --git a/subversion/bindings/swig/ruby/svn_repos.c b/subversion/bindings/swig/ruby/svn_repos.c
index 83bfb7a..9ed567c 100644
--- a/subversion/bindings/swig/ruby/svn_repos.c
+++ b/subversion/bindings/swig/ruby/svn_repos.c
@@ -1925,40 +1925,41 @@ int SWIG_Ruby_arity( VALUE proc, int minimal )
#define SWIGTYPE_p_svn_opt_revision_t swig_types[119]
#define SWIGTYPE_p_svn_opt_revision_value_t swig_types[120]
#define SWIGTYPE_p_svn_opt_subcommand_desc2_t swig_types[121]
-#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[122]
-#define SWIGTYPE_p_svn_patch_file_t swig_types[123]
-#define SWIGTYPE_p_svn_patch_t swig_types[124]
-#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[125]
-#define SWIGTYPE_p_svn_prop_kind swig_types[126]
-#define SWIGTYPE_p_svn_prop_patch_t swig_types[127]
-#define SWIGTYPE_p_svn_repos_authz_access_t swig_types[128]
-#define SWIGTYPE_p_svn_repos_log_entry_t swig_types[129]
-#define SWIGTYPE_p_svn_repos_node_t swig_types[130]
-#define SWIGTYPE_p_svn_repos_notify_action_t swig_types[131]
-#define SWIGTYPE_p_svn_repos_notify_t swig_types[132]
-#define SWIGTYPE_p_svn_repos_notify_warning_t swig_types[133]
-#define SWIGTYPE_p_svn_repos_parse_fns2_t swig_types[134]
-#define SWIGTYPE_p_svn_repos_parse_fns3_t swig_types[135]
-#define SWIGTYPE_p_svn_repos_parse_fns_t swig_types[136]
-#define SWIGTYPE_p_svn_repos_revision_access_level_t swig_types[137]
-#define SWIGTYPE_p_svn_repos_t swig_types[138]
-#define SWIGTYPE_p_svn_stream_mark_t swig_types[139]
-#define SWIGTYPE_p_svn_stream_t swig_types[140]
-#define SWIGTYPE_p_svn_string_t swig_types[141]
-#define SWIGTYPE_p_svn_stringbuf_t swig_types[142]
-#define SWIGTYPE_p_svn_tristate_t swig_types[143]
-#define SWIGTYPE_p_svn_txdelta_op_t swig_types[144]
-#define SWIGTYPE_p_svn_txdelta_stream_t swig_types[145]
-#define SWIGTYPE_p_svn_txdelta_window_t swig_types[146]
-#define SWIGTYPE_p_svn_version_checklist_t swig_types[147]
-#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[148]
-#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[149]
-#define SWIGTYPE_p_svn_version_extended_t swig_types[150]
-#define SWIGTYPE_p_svn_version_t swig_types[151]
-#define SWIGTYPE_p_unsigned_long swig_types[152]
-#define SWIGTYPE_p_void swig_types[153]
-static swig_type_info *swig_types[155];
-static swig_module_info swig_module = {swig_types, 154, 0, 0, 0, 0};
+#define SWIGTYPE_p_svn_opt_subcommand_desc3_t swig_types[122]
+#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[123]
+#define SWIGTYPE_p_svn_patch_file_t swig_types[124]
+#define SWIGTYPE_p_svn_patch_t swig_types[125]
+#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[126]
+#define SWIGTYPE_p_svn_prop_kind swig_types[127]
+#define SWIGTYPE_p_svn_prop_patch_t swig_types[128]
+#define SWIGTYPE_p_svn_repos_authz_access_t swig_types[129]
+#define SWIGTYPE_p_svn_repos_log_entry_t swig_types[130]
+#define SWIGTYPE_p_svn_repos_node_t swig_types[131]
+#define SWIGTYPE_p_svn_repos_notify_action_t swig_types[132]
+#define SWIGTYPE_p_svn_repos_notify_t swig_types[133]
+#define SWIGTYPE_p_svn_repos_notify_warning_t swig_types[134]
+#define SWIGTYPE_p_svn_repos_parse_fns2_t swig_types[135]
+#define SWIGTYPE_p_svn_repos_parse_fns3_t swig_types[136]
+#define SWIGTYPE_p_svn_repos_parse_fns_t swig_types[137]
+#define SWIGTYPE_p_svn_repos_revision_access_level_t swig_types[138]
+#define SWIGTYPE_p_svn_repos_t swig_types[139]
+#define SWIGTYPE_p_svn_stream_mark_t swig_types[140]
+#define SWIGTYPE_p_svn_stream_t swig_types[141]
+#define SWIGTYPE_p_svn_string_t swig_types[142]
+#define SWIGTYPE_p_svn_stringbuf_t swig_types[143]
+#define SWIGTYPE_p_svn_tristate_t swig_types[144]
+#define SWIGTYPE_p_svn_txdelta_op_t swig_types[145]
+#define SWIGTYPE_p_svn_txdelta_stream_t swig_types[146]
+#define SWIGTYPE_p_svn_txdelta_window_t swig_types[147]
+#define SWIGTYPE_p_svn_version_checklist_t swig_types[148]
+#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[149]
+#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[150]
+#define SWIGTYPE_p_svn_version_extended_t swig_types[151]
+#define SWIGTYPE_p_svn_version_t swig_types[152]
+#define SWIGTYPE_p_unsigned_long swig_types[153]
+#define SWIGTYPE_p_void swig_types[154]
+static swig_type_info *swig_types[156];
+static swig_module_info swig_module = {swig_types, 155, 0, 0, 0, 0};
#define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
#define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
@@ -4989,7 +4990,7 @@ _wrap_svn_repos_freeze(int argc, VALUE *argv, VALUE self) {
}
{
- result = (svn_error_t *)svn_repos_freeze(arg1,arg2,arg3,arg4);
+ result = (svn_error_t *)svn_repos_freeze((apr_array_header_t const *)arg1,arg2,arg3,arg4);
@@ -20574,6 +20575,7 @@ static swig_type_info _swigt__p_svn_opt_revision_range_t = {"_p_svn_opt_revision
static swig_type_info _swigt__p_svn_opt_revision_t = {"_p_svn_opt_revision_t", "struct svn_opt_revision_t *|svn_opt_revision_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_revision_value_t = {"_p_svn_opt_revision_value_t", "union svn_opt_revision_value_t *|svn_opt_revision_value_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc2_t = {"_p_svn_opt_subcommand_desc2_t", "struct svn_opt_subcommand_desc2_t *|svn_opt_subcommand_desc2_t *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_svn_opt_subcommand_desc3_t = {"_p_svn_opt_subcommand_desc3_t", "struct svn_opt_subcommand_desc3_t *|svn_opt_subcommand_desc3_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc_t = {"_p_svn_opt_subcommand_desc_t", "struct svn_opt_subcommand_desc_t *|svn_opt_subcommand_desc_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_patch_file_t = {"_p_svn_patch_file_t", "struct svn_patch_file_t *|svn_patch_file_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_patch_t = {"_p_svn_patch_t", "struct svn_patch_t *|svn_patch_t *", 0, 0, (void*)0, 0};
@@ -20730,6 +20732,7 @@ static swig_type_info *swig_type_initial[] = {
&_swigt__p_svn_opt_revision_t,
&_swigt__p_svn_opt_revision_value_t,
&_swigt__p_svn_opt_subcommand_desc2_t,
+ &_swigt__p_svn_opt_subcommand_desc3_t,
&_swigt__p_svn_opt_subcommand_desc_t,
&_swigt__p_svn_patch_file_t,
&_swigt__p_svn_patch_t,
@@ -20886,6 +20889,7 @@ static swig_cast_info _swigc__p_svn_opt_revision_range_t[] = { {&_swigt__p_svn_
static swig_cast_info _swigc__p_svn_opt_revision_t[] = { {&_swigt__p_svn_opt_revision_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_revision_value_t[] = { {&_swigt__p_svn_opt_revision_value_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc2_t[] = { {&_swigt__p_svn_opt_subcommand_desc2_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_svn_opt_subcommand_desc3_t[] = { {&_swigt__p_svn_opt_subcommand_desc3_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc_t[] = { {&_swigt__p_svn_opt_subcommand_desc_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_patch_file_t[] = { {&_swigt__p_svn_patch_file_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_patch_t[] = { {&_swigt__p_svn_patch_t, 0, 0, 0},{0, 0, 0, 0}};
@@ -21042,6 +21046,7 @@ static swig_cast_info *swig_cast_initial[] = {
_swigc__p_svn_opt_revision_t,
_swigc__p_svn_opt_revision_value_t,
_swigc__p_svn_opt_subcommand_desc2_t,
+ _swigc__p_svn_opt_subcommand_desc3_t,
_swigc__p_svn_opt_subcommand_desc_t,
_swigc__p_svn_patch_file_t,
_swigc__p_svn_patch_t,
diff --git a/subversion/bindings/swig/ruby/svn_wc.c b/subversion/bindings/swig/ruby/svn_wc.c
index 795b0f7..6ef4fb9 100644
--- a/subversion/bindings/swig/ruby/svn_wc.c
+++ b/subversion/bindings/swig/ruby/svn_wc.c
@@ -1921,70 +1921,71 @@ int SWIG_Ruby_arity( VALUE proc, int minimal )
#define SWIGTYPE_p_svn_opt_revision_t swig_types[115]
#define SWIGTYPE_p_svn_opt_revision_value_t swig_types[116]
#define SWIGTYPE_p_svn_opt_subcommand_desc2_t swig_types[117]
-#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[118]
-#define SWIGTYPE_p_svn_patch_file_t swig_types[119]
-#define SWIGTYPE_p_svn_patch_t swig_types[120]
-#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[121]
-#define SWIGTYPE_p_svn_prop_kind swig_types[122]
-#define SWIGTYPE_p_svn_prop_patch_t swig_types[123]
-#define SWIGTYPE_p_svn_ra_callbacks2_t swig_types[124]
-#define SWIGTYPE_p_svn_ra_callbacks_t swig_types[125]
-#define SWIGTYPE_p_svn_ra_plugin_t swig_types[126]
-#define SWIGTYPE_p_svn_ra_reporter2_t swig_types[127]
-#define SWIGTYPE_p_svn_ra_reporter3_t swig_types[128]
-#define SWIGTYPE_p_svn_ra_reporter_t swig_types[129]
-#define SWIGTYPE_p_svn_ra_session_t swig_types[130]
-#define SWIGTYPE_p_svn_stream_mark_t swig_types[131]
-#define SWIGTYPE_p_svn_stream_t swig_types[132]
-#define SWIGTYPE_p_svn_string_t swig_types[133]
-#define SWIGTYPE_p_svn_stringbuf_t swig_types[134]
-#define SWIGTYPE_p_svn_tristate_t swig_types[135]
-#define SWIGTYPE_p_svn_txdelta_op_t swig_types[136]
-#define SWIGTYPE_p_svn_txdelta_stream_t swig_types[137]
-#define SWIGTYPE_p_svn_txdelta_window_t swig_types[138]
-#define SWIGTYPE_p_svn_version_checklist_t swig_types[139]
-#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[140]
-#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[141]
-#define SWIGTYPE_p_svn_version_extended_t swig_types[142]
-#define SWIGTYPE_p_svn_version_t swig_types[143]
-#define SWIGTYPE_p_svn_wc_adm_access_t swig_types[144]
-#define SWIGTYPE_p_svn_wc_committed_queue_t swig_types[145]
-#define SWIGTYPE_p_svn_wc_conflict_action_t swig_types[146]
-#define SWIGTYPE_p_svn_wc_conflict_choice_t swig_types[147]
-#define SWIGTYPE_p_svn_wc_conflict_description2_t swig_types[148]
-#define SWIGTYPE_p_svn_wc_conflict_description_t swig_types[149]
-#define SWIGTYPE_p_svn_wc_conflict_kind_t swig_types[150]
-#define SWIGTYPE_p_svn_wc_conflict_reason_t swig_types[151]
-#define SWIGTYPE_p_svn_wc_conflict_result_t swig_types[152]
-#define SWIGTYPE_p_svn_wc_conflict_version_t swig_types[153]
-#define SWIGTYPE_p_svn_wc_context_t swig_types[154]
-#define SWIGTYPE_p_svn_wc_diff_callbacks2_t swig_types[155]
-#define SWIGTYPE_p_svn_wc_diff_callbacks3_t swig_types[156]
-#define SWIGTYPE_p_svn_wc_diff_callbacks4_t swig_types[157]
-#define SWIGTYPE_p_svn_wc_diff_callbacks_t swig_types[158]
-#define SWIGTYPE_p_svn_wc_entry_callbacks2_t swig_types[159]
-#define SWIGTYPE_p_svn_wc_entry_callbacks_t swig_types[160]
-#define SWIGTYPE_p_svn_wc_entry_t swig_types[161]
-#define SWIGTYPE_p_svn_wc_external_item2_t swig_types[162]
-#define SWIGTYPE_p_svn_wc_external_item_t swig_types[163]
-#define SWIGTYPE_p_svn_wc_info_t swig_types[164]
-#define SWIGTYPE_p_svn_wc_merge_outcome_t swig_types[165]
-#define SWIGTYPE_p_svn_wc_notify_action_t swig_types[166]
-#define SWIGTYPE_p_svn_wc_notify_lock_state_t swig_types[167]
-#define SWIGTYPE_p_svn_wc_notify_state_t swig_types[168]
-#define SWIGTYPE_p_svn_wc_notify_t swig_types[169]
-#define SWIGTYPE_p_svn_wc_operation_t swig_types[170]
-#define SWIGTYPE_p_svn_wc_revision_status_t swig_types[171]
-#define SWIGTYPE_p_svn_wc_schedule_t swig_types[172]
-#define SWIGTYPE_p_svn_wc_status2_t swig_types[173]
-#define SWIGTYPE_p_svn_wc_status3_t swig_types[174]
-#define SWIGTYPE_p_svn_wc_status_t swig_types[175]
-#define SWIGTYPE_p_svn_wc_traversal_info_t swig_types[176]
-#define SWIGTYPE_p_unsigned_char swig_types[177]
-#define SWIGTYPE_p_unsigned_long swig_types[178]
-#define SWIGTYPE_p_void swig_types[179]
-static swig_type_info *swig_types[181];
-static swig_module_info swig_module = {swig_types, 180, 0, 0, 0, 0};
+#define SWIGTYPE_p_svn_opt_subcommand_desc3_t swig_types[118]
+#define SWIGTYPE_p_svn_opt_subcommand_desc_t swig_types[119]
+#define SWIGTYPE_p_svn_patch_file_t swig_types[120]
+#define SWIGTYPE_p_svn_patch_t swig_types[121]
+#define SWIGTYPE_p_svn_prop_inherited_item_t swig_types[122]
+#define SWIGTYPE_p_svn_prop_kind swig_types[123]
+#define SWIGTYPE_p_svn_prop_patch_t swig_types[124]
+#define SWIGTYPE_p_svn_ra_callbacks2_t swig_types[125]
+#define SWIGTYPE_p_svn_ra_callbacks_t swig_types[126]
+#define SWIGTYPE_p_svn_ra_plugin_t swig_types[127]
+#define SWIGTYPE_p_svn_ra_reporter2_t swig_types[128]
+#define SWIGTYPE_p_svn_ra_reporter3_t swig_types[129]
+#define SWIGTYPE_p_svn_ra_reporter_t swig_types[130]
+#define SWIGTYPE_p_svn_ra_session_t swig_types[131]
+#define SWIGTYPE_p_svn_stream_mark_t swig_types[132]
+#define SWIGTYPE_p_svn_stream_t swig_types[133]
+#define SWIGTYPE_p_svn_string_t swig_types[134]
+#define SWIGTYPE_p_svn_stringbuf_t swig_types[135]
+#define SWIGTYPE_p_svn_tristate_t swig_types[136]
+#define SWIGTYPE_p_svn_txdelta_op_t swig_types[137]
+#define SWIGTYPE_p_svn_txdelta_stream_t swig_types[138]
+#define SWIGTYPE_p_svn_txdelta_window_t swig_types[139]
+#define SWIGTYPE_p_svn_version_checklist_t swig_types[140]
+#define SWIGTYPE_p_svn_version_ext_linked_lib_t swig_types[141]
+#define SWIGTYPE_p_svn_version_ext_loaded_lib_t swig_types[142]
+#define SWIGTYPE_p_svn_version_extended_t swig_types[143]
+#define SWIGTYPE_p_svn_version_t swig_types[144]
+#define SWIGTYPE_p_svn_wc_adm_access_t swig_types[145]
+#define SWIGTYPE_p_svn_wc_committed_queue_t swig_types[146]
+#define SWIGTYPE_p_svn_wc_conflict_action_t swig_types[147]
+#define SWIGTYPE_p_svn_wc_conflict_choice_t swig_types[148]
+#define SWIGTYPE_p_svn_wc_conflict_description2_t swig_types[149]
+#define SWIGTYPE_p_svn_wc_conflict_description_t swig_types[150]
+#define SWIGTYPE_p_svn_wc_conflict_kind_t swig_types[151]
+#define SWIGTYPE_p_svn_wc_conflict_reason_t swig_types[152]
+#define SWIGTYPE_p_svn_wc_conflict_result_t swig_types[153]
+#define SWIGTYPE_p_svn_wc_conflict_version_t swig_types[154]
+#define SWIGTYPE_p_svn_wc_context_t swig_types[155]
+#define SWIGTYPE_p_svn_wc_diff_callbacks2_t swig_types[156]
+#define SWIGTYPE_p_svn_wc_diff_callbacks3_t swig_types[157]
+#define SWIGTYPE_p_svn_wc_diff_callbacks4_t swig_types[158]
+#define SWIGTYPE_p_svn_wc_diff_callbacks_t swig_types[159]
+#define SWIGTYPE_p_svn_wc_entry_callbacks2_t swig_types[160]
+#define SWIGTYPE_p_svn_wc_entry_callbacks_t swig_types[161]
+#define SWIGTYPE_p_svn_wc_entry_t swig_types[162]
+#define SWIGTYPE_p_svn_wc_external_item2_t swig_types[163]
+#define SWIGTYPE_p_svn_wc_external_item_t swig_types[164]
+#define SWIGTYPE_p_svn_wc_info_t swig_types[165]
+#define SWIGTYPE_p_svn_wc_merge_outcome_t swig_types[166]
+#define SWIGTYPE_p_svn_wc_notify_action_t swig_types[167]
+#define SWIGTYPE_p_svn_wc_notify_lock_state_t swig_types[168]
+#define SWIGTYPE_p_svn_wc_notify_state_t swig_types[169]
+#define SWIGTYPE_p_svn_wc_notify_t swig_types[170]
+#define SWIGTYPE_p_svn_wc_operation_t swig_types[171]
+#define SWIGTYPE_p_svn_wc_revision_status_t swig_types[172]
+#define SWIGTYPE_p_svn_wc_schedule_t swig_types[173]
+#define SWIGTYPE_p_svn_wc_status2_t swig_types[174]
+#define SWIGTYPE_p_svn_wc_status3_t swig_types[175]
+#define SWIGTYPE_p_svn_wc_status_t swig_types[176]
+#define SWIGTYPE_p_svn_wc_traversal_info_t swig_types[177]
+#define SWIGTYPE_p_unsigned_char swig_types[178]
+#define SWIGTYPE_p_unsigned_long swig_types[179]
+#define SWIGTYPE_p_void swig_types[180]
+static swig_type_info *swig_types[182];
+static swig_module_info swig_module = {swig_types, 181, 0, 0, 0, 0};
#define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
#define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
@@ -31742,6 +31743,113 @@ fail:
SWIGINTERN VALUE
+_wrap_svn_wc_revert6(int argc, VALUE *argv, VALUE self) {
+ svn_wc_context_t *arg1 = (svn_wc_context_t *) 0 ;
+ char *arg2 = (char *) 0 ;
+ svn_depth_t arg3 ;
+ svn_boolean_t arg4 ;
+ apr_array_header_t *arg5 = (apr_array_header_t *) 0 ;
+ svn_boolean_t arg6 ;
+ svn_boolean_t arg7 ;
+ svn_boolean_t arg8 ;
+ svn_cancel_func_t arg9 = (svn_cancel_func_t) 0 ;
+ void *arg10 = (void *) 0 ;
+ svn_wc_notify_func2_t arg11 = (svn_wc_notify_func2_t) 0 ;
+ void *arg12 = (void *) 0 ;
+ apr_pool_t *arg13 = (apr_pool_t *) 0 ;
+ VALUE _global_svn_swig_rb_pool ;
+ apr_pool_t *_global_pool ;
+ void *argp1 = 0 ;
+ int res1 = 0 ;
+ int res2 ;
+ char *buf2 = 0 ;
+ int alloc2 = 0 ;
+ void *argp5 = 0 ;
+ int res5 = 0 ;
+ svn_error_t *result = 0 ;
+ VALUE vresult = Qnil;
+
+ {
+ svn_swig_rb_get_pool(argc, argv, self, &_global_svn_swig_rb_pool, &arg13);
+ _global_pool = arg13;
+ svn_swig_rb_push_pool(_global_svn_swig_rb_pool);
+ }
+ if ((argc < 10) || (argc > 11)) {
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 10)",argc); SWIG_fail;
+ }
+ res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_svn_wc_context_t, 0 | 0 );
+ if (!SWIG_IsOK(res1)) {
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "svn_wc_context_t *","svn_wc_revert6", 1, argv[0] ));
+ }
+ arg1 = (svn_wc_context_t *)(argp1);
+ res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
+ if (!SWIG_IsOK(res2)) {
+ SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char const *","svn_wc_revert6", 2, argv[1] ));
+ }
+ arg2 = (char *)(buf2);
+ {
+ arg3 = svn_swig_rb_to_depth(argv[2]);
+ }
+ arg4 = RTEST(argv[3]);
+ res5 = SWIG_ConvertPtr(argv[4], &argp5,SWIGTYPE_p_apr_array_header_t, 0 | 0 );
+ if (!SWIG_IsOK(res5)) {
+ SWIG_exception_fail(SWIG_ArgError(res5), Ruby_Format_TypeError( "", "apr_array_header_t const *","svn_wc_revert6", 5, argv[4] ));
+ }
+ arg5 = (apr_array_header_t *)(argp5);
+ arg6 = RTEST(argv[5]);
+ arg7 = RTEST(argv[6]);
+ arg8 = RTEST(argv[7]);
+ {
+ arg9 = (svn_cancel_func_t) svn_swig_rb_cancel_func;
+ arg10 = (void *)svn_swig_rb_make_baton(argv[8], _global_svn_swig_rb_pool);
+ }
+ {
+ arg11 = (svn_wc_notify_func2_t) svn_swig_rb_notify_func2;
+ arg12 = (void *)svn_swig_rb_make_baton(argv[9], _global_svn_swig_rb_pool);
+ }
+ if (argc > 10) {
+
+ }
+ {
+ result = (svn_error_t *)svn_wc_revert6(arg1,(char const *)arg2,arg3,arg4,(apr_array_header_t const *)arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13);
+
+
+
+ }
+ {
+ if (result) {
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_handle_svn_error(result);
+ }
+ vresult = Qnil;
+ }
+ {
+ svn_swig_rb_set_baton(vresult, (VALUE)arg10);
+ }
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ return vresult;
+fail:
+ if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+ {
+ VALUE target;
+ target = _global_vresult_address == &vresult ? self : vresult;
+ if (!svn_swig_rb_set_pool(target, _global_svn_swig_rb_pool))
+ svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
+ svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
+ }
+ return Qnil;
+}
+
+
+SWIGINTERN VALUE
_wrap_svn_wc_revert5(int argc, VALUE *argv, VALUE self) {
svn_wc_context_t *arg1 = (svn_wc_context_t *) 0 ;
char *arg2 = (char *) 0 ;
@@ -40413,6 +40521,7 @@ static swig_type_info _swigt__p_svn_opt_revision_range_t = {"_p_svn_opt_revision
static swig_type_info _swigt__p_svn_opt_revision_t = {"_p_svn_opt_revision_t", "struct svn_opt_revision_t *|svn_opt_revision_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_revision_value_t = {"_p_svn_opt_revision_value_t", "union svn_opt_revision_value_t *|svn_opt_revision_value_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc2_t = {"_p_svn_opt_subcommand_desc2_t", "struct svn_opt_subcommand_desc2_t *|svn_opt_subcommand_desc2_t *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_svn_opt_subcommand_desc3_t = {"_p_svn_opt_subcommand_desc3_t", "struct svn_opt_subcommand_desc3_t *|svn_opt_subcommand_desc3_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_opt_subcommand_desc_t = {"_p_svn_opt_subcommand_desc_t", "struct svn_opt_subcommand_desc_t *|svn_opt_subcommand_desc_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_patch_file_t = {"_p_svn_patch_file_t", "struct svn_patch_file_t *|svn_patch_file_t *", 0, 0, (void*)0, 0};
static swig_type_info _swigt__p_svn_patch_t = {"_p_svn_patch_t", "struct svn_patch_t *|svn_patch_t *", 0, 0, (void*)0, 0};
@@ -40595,6 +40704,7 @@ static swig_type_info *swig_type_initial[] = {
&_swigt__p_svn_opt_revision_t,
&_swigt__p_svn_opt_revision_value_t,
&_swigt__p_svn_opt_subcommand_desc2_t,
+ &_swigt__p_svn_opt_subcommand_desc3_t,
&_swigt__p_svn_opt_subcommand_desc_t,
&_swigt__p_svn_patch_file_t,
&_swigt__p_svn_patch_t,
@@ -40777,6 +40887,7 @@ static swig_cast_info _swigc__p_svn_opt_revision_range_t[] = { {&_swigt__p_svn_
static swig_cast_info _swigc__p_svn_opt_revision_t[] = { {&_swigt__p_svn_opt_revision_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_revision_value_t[] = { {&_swigt__p_svn_opt_revision_value_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc2_t[] = { {&_swigt__p_svn_opt_subcommand_desc2_t, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_svn_opt_subcommand_desc3_t[] = { {&_swigt__p_svn_opt_subcommand_desc3_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_opt_subcommand_desc_t[] = { {&_swigt__p_svn_opt_subcommand_desc_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_patch_file_t[] = { {&_swigt__p_svn_patch_file_t, 0, 0, 0},{0, 0, 0, 0}};
static swig_cast_info _swigc__p_svn_patch_t[] = { {&_swigt__p_svn_patch_t, 0, 0, 0},{0, 0, 0, 0}};
@@ -40959,6 +41070,7 @@ static swig_cast_info *swig_cast_initial[] = {
_swigc__p_svn_opt_revision_t,
_swigc__p_svn_opt_revision_value_t,
_swigc__p_svn_opt_subcommand_desc2_t,
+ _swigc__p_svn_opt_subcommand_desc3_t,
_swigc__p_svn_opt_subcommand_desc_t,
_swigc__p_svn_patch_file_t,
_swigc__p_svn_patch_t,
@@ -42136,6 +42248,7 @@ SWIGEXPORT void Init_wc(void) {
rb_define_module_function(mWc, "svn_wc_relocate3", _wrap_svn_wc_relocate3, -1);
rb_define_module_function(mWc, "svn_wc_relocate2", _wrap_svn_wc_relocate2, -1);
rb_define_module_function(mWc, "svn_wc_relocate", _wrap_svn_wc_relocate, -1);
+ rb_define_module_function(mWc, "svn_wc_revert6", _wrap_svn_wc_revert6, -1);
rb_define_module_function(mWc, "svn_wc_revert5", _wrap_svn_wc_revert5, -1);
rb_define_module_function(mWc, "svn_wc_revert4", _wrap_svn_wc_revert4, -1);
rb_define_module_function(mWc, "svn_wc_revert3", _wrap_svn_wc_revert3, -1);
diff --git a/subversion/bindings/swig/ruby/test/test_client.rb b/subversion/bindings/swig/ruby/test/test_client.rb
index 7f3343b..85919f1 100644
--- a/subversion/bindings/swig/ruby/test/test_client.rb
+++ b/subversion/bindings/swig/ruby/test/test_client.rb
@@ -1087,7 +1087,7 @@ class SvnClientTest < Test::Unit::TestCase
We haven't yet figured out what to expect in the case of an obstruction,
but it is no longer an error. Commenting out this test until that
decision is made (see issue #3680:
- http://subversion.tigris.org/issues/show_bug.cgi?id=3680)
+ https://issues.apache.org/jira/browse/SVN-3680)
def test_cleanup
log = "sample log"
diff --git a/subversion/include/private/svn_client_private.h b/subversion/include/private/svn_client_private.h
index 892fc4b..23d0166 100644
--- a/subversion/include/private/svn_client_private.h
+++ b/subversion/include/private/svn_client_private.h
@@ -341,6 +341,77 @@ svn_client__mergeinfo_log(svn_boolean_t finding_merged,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool);
+/** Return a diff processor that will print a Subversion-style
+ * (not git-style) diff.
+ *
+ * @a anchor is optional (may be null), and is the 'anchor' path to prefix
+ * to the diff-processor paths before displaying.
+ *
+ * @a orig_path_1 and @a orig_path_2 are the two main root paths to be
+ * diffed; each may be a URL, a local WC path or a local unversioned path.
+ *
+ * Other arguments are as for svn_client_diff7() etc.
+ */
+svn_error_t *
+svn_client__get_diff_writer_svn(
+ svn_diff_tree_processor_t **diff_processor,
+ const char *anchor,
+ const char *orig_path_1,
+ const char *orig_path_2,
+ const apr_array_header_t *options,
+ const char *relative_to_dir,
+ svn_boolean_t no_diff_added,
+ svn_boolean_t no_diff_deleted,
+ svn_boolean_t show_copies_as_adds,
+ svn_boolean_t ignore_content_type,
+ svn_boolean_t ignore_properties,
+ svn_boolean_t properties_only,
+ svn_boolean_t pretty_print_mergeinfo,
+ const char *header_encoding,
+ svn_stream_t *outstream,
+ svn_stream_t *errstream,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *pool);
+
+/** Output the subtree of @a shelf_version rooted at @a shelf_relpath
+ * as a diff to @a diff_processor.
+ *
+ * ### depth and ignore_ancestry are currently ignored.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf_diff(svn_client__shelf_version_t *shelf_version,
+ const char *shelf_relpath,
+ svn_depth_t depth,
+ svn_boolean_t ignore_ancestry,
+ const svn_diff_tree_processor_t *diff_processor,
+ apr_pool_t *scratch_pool);
+
+/*** Editor for diff summary ***/
+
+/* Set *DIFF_PROCESSOR to a diff processor that will report a diff summary
+ to SUMMARIZE_FUNC.
+
+ P_ROOT_RELPATH will return a pointer to a string that must be set,
+ before the processor is called, to a prefix that will be found on
+ every DIFF_PROCESSOR relpath, that will be removed before passing
+ the path to SUMMARIZE_FUNC.
+
+ ORIGINAL_TARGET is not used.
+
+ SUMMARIZE_FUNC is called with SUMMARIZE_BATON as parameter by the
+ created callbacks for each changed item.
+*/
+svn_error_t *
+svn_client__get_diff_summarize_callbacks(
+ svn_diff_tree_processor_t **diff_processor,
+ svn_client_diff_summarize_func_t summarize_func,
+ void *summarize_baton,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
#ifdef __cplusplus
}
#endif /* __cplusplus */
diff --git a/subversion/include/private/svn_diff_tree.h b/subversion/include/private/svn_diff_tree.h
index 713644d..9c675d9 100644
--- a/subversion/include/private/svn_diff_tree.h
+++ b/subversion/include/private/svn_diff_tree.h
@@ -321,7 +321,6 @@ svn_diff__tree_processor_create(void *baton,
*/ /* Used by libsvn clients repository diff */
const svn_diff_tree_processor_t *
svn_diff__tree_processor_reverse_create(const svn_diff_tree_processor_t * processor,
- const char *prefix_relpath,
apr_pool_t *result_pool);
/**
diff --git a/subversion/include/private/svn_element.h b/subversion/include/private/svn_element.h
index c467175..9c7129a 100644
--- a/subversion/include/private/svn_element.h
+++ b/subversion/include/private/svn_element.h
@@ -348,7 +348,7 @@ svn_element__content_t *
svn_element__tree_get(const svn_element__tree_t *tree,
int eid);
-svn_error_t *
+void
svn_element__tree_set(svn_element__tree_t *tree,
int eid,
const svn_element__content_t *element);
diff --git a/subversion/include/private/svn_repos_private.h b/subversion/include/private/svn_repos_private.h
index c65b73f..8cad8e1 100644
--- a/subversion/include/private/svn_repos_private.h
+++ b/subversion/include/private/svn_repos_private.h
@@ -31,6 +31,7 @@
#include "svn_types.h"
#include "svn_repos.h"
+#include "svn_delta.h"
#include "svn_editor.h"
#include "svn_config.h"
@@ -349,6 +350,27 @@ svn_repos__dump_node_record(svn_stream_t *dump_stream,
svn_boolean_t content_length_always,
apr_pool_t *scratch_pool);
+/**
+ * Get a dump editor @a editor along with a @a edit_baton allocated in
+ * @a pool. The editor will write output to @a stream.
+ *
+ * @a update_anchor_relpath is the repository relative path of the
+ * anchor of the update-style drive which will happen on @a *editor;
+ * if a replay-style drive will instead be used, it should be passed
+ * as @c NULL.
+ *
+ * In contrast to the dump editor used inside svn_repos_dump_fs4(), this
+ * one supports only deltas mode.
+ *
+ * ### TODO: Unify with the dump editor inside svn_repos_dump_fs4().
+ */
+svn_error_t *
+svn_repos__get_dump_editor(const svn_delta_editor_t **editor,
+ void **edit_baton,
+ svn_stream_t *stream,
+ const char *update_anchor_relpath,
+ apr_pool_t *pool);
+
#ifdef __cplusplus
}
#endif /* __cplusplus */
diff --git a/subversion/include/private/svn_sorts_private.h b/subversion/include/private/svn_sorts_private.h
index 2d5f188..cee84cd 100644
--- a/subversion/include/private/svn_sorts_private.h
+++ b/subversion/include/private/svn_sorts_private.h
@@ -190,7 +190,7 @@ svn_priority_queue__size(svn_priority_queue__t *queue);
/**
* Returns a reference to the first element in the @a queue. The queue
- * contents remains unchanged. If the @a queue is empty, #NULL will be
+ * contents remains unchanged. If the @a queue is empty, NULL will be
* returned.
*/
void *
@@ -212,7 +212,7 @@ svn_priority_queue__pop(svn_priority_queue__t *queue);
/**
* Append the new @a element to the @a queue. @a element must neither be
- * #NULL nor the first element as returned by #svn_priority_queue__peek.
+ * NULL nor the first element as returned by #svn_priority_queue__peek.
*/
void
svn_priority_queue__push(svn_priority_queue__t *queue, const void *element);
diff --git a/subversion/include/private/svn_subr_private.h b/subversion/include/private/svn_subr_private.h
index d18c564..468b7cc 100644
--- a/subversion/include/private/svn_subr_private.h
+++ b/subversion/include/private/svn_subr_private.h
@@ -389,27 +389,27 @@ svn_hash__make(apr_pool_t *pool);
/** Struct that represents a key value pair read from a serialized hash
* representation. There are special cases that can also be represented:
- * a #NULL @a key signifies the end of the hash, a #NULL @a val for non-
+ * a NULL @a key signifies the end of the hash, a NULL @a val for non-
* NULL keys is only possible in incremental mode describes a deletion.
*
* @since New in 1.9.
*/
typedef struct svn_hash__entry_t
{
- /** 0-terminated Key. #NULL if this contains no data at all because we
+ /** 0-terminated Key. NULL if this contains no data at all because we
* encountered the end of the hash. */
char *key;
- /** Length of @a key. Must be 0 if @a key is #NULL. */
+ /** Length of @a key. Must be 0 if @a key is NULL. */
apr_size_t keylen;
- /** 0-terminated value stored with the key. If this is #NULL for a
+ /** 0-terminated value stored with the key. If this is NULL for a
* non-NULL @a key, then this means that the key shall be removed from
- * the hash (only used in incremental mode). Must be #NULL if @a key is
- * #NULL. */
+ * the hash (only used in incremental mode). Must be NULL if @a key is
+ * NULL. */
char *val;
- /** Length of @a val. Must be 0 if @a val is #NULL. */
+ /** Length of @a val. Must be 0 if @a val is NULL. */
apr_size_t vallen;
} svn_hash__entry_t;
diff --git a/subversion/include/private/svn_wc_private.h b/subversion/include/private/svn_wc_private.h
index 521d092..0da5812 100644
--- a/subversion/include/private/svn_wc_private.h
+++ b/subversion/include/private/svn_wc_private.h
@@ -353,6 +353,8 @@ svn_wc__get_wcroot(const char **wcroot_abspath,
* the directory exists.
*
* @a local_abspath is any path in the WC, and is used to find the WC root.
+ *
+ * @warning EXPERIMENTAL.
*/
SVN_EXPERIMENTAL
svn_error_t *
@@ -537,7 +539,7 @@ svn_wc__node_get_origin(svn_boolean_t *is_copy,
* If @a base_only is TRUE then only the base node will be examined,
* otherwise the current base or working node will be examined.
*
- * If a value is not interesting you can pass #NULL.
+ * If a value is not interesting you can pass NULL.
*
* If @a local_abspath is not in the working copy, return
* @c SVN_ERR_WC_PATH_NOT_FOUND. Use @a scratch_pool for all temporary
@@ -615,6 +617,24 @@ svn_wc__node_get_base(svn_node_kind_t *kind,
apr_pool_t *scratch_pool);
+/* Return an array of const char * elements, which represent local absolute
+ * paths for nodes, within the working copy indicated by WRI_ABSPATH, which
+ * have a basename matching BASENAME and have node kind KIND.
+ * If no such nodes exist, return an empty array.
+ *
+ * This function returns only paths to nodes which are present in the highest
+ * layer of the WC. In other words, paths to deleted and/or excluded nodes are
+ * never returned.
+ */
+svn_error_t *
+svn_wc__find_working_nodes_with_basename(apr_array_header_t **abspaths,
+ const char *wri_abspath,
+ const char *basename,
+ svn_node_kind_t kind,
+ svn_wc_context_t *wc_ctx,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
/* Get the working revision of @a local_abspath using @a wc_ctx. If @a
* local_abspath is not in the working copy, return @c
* SVN_ERR_WC_PATH_NOT_FOUND.
@@ -2044,15 +2064,19 @@ svn_wc__acquire_write_lock_for_resolve(const char **lock_root_abspath,
/* The implemementation of svn_wc_diff6(), but reporting to a diff processor
*
- * If ROOT_RELPATH is not NULL, set *ROOT_RELPATH to the target of the diff
- * within the diff namespace. ("" or a single path component).
+ * New mode, when ANCHOR_AT_GIVEN_PATHS is true:
+ *
+ * Anchor the DIFF_PROCESSOR at LOCAL_ABSPATH.
+ *
+ * Backward compatibility mode for svn_wc_diff6(),
+ * when ANCHOR_AT_GIVEN_PATHS is false:
*
- * If ROOT_IS_FILE is NOT NULL set it
- * the first processor call. (The anchor is LOCAL_ABSPATH or an ancestor of it)
+ * Send diff processor relpaths relative to LOCAL_ABSPATH if it is a
+ * directory; otherwise, relative to the parent of LOCAL_ABSPATH.
+ * This matches the "anchor and target" semantics of svn_wc_diff6().
*/
svn_error_t *
-svn_wc__diff7(const char **root_relpath,
- svn_boolean_t *root_is_dir,
+svn_wc__diff7(svn_boolean_t anchor_at_given_paths,
svn_wc_context_t *wc_ctx,
const char *local_abspath,
svn_depth_t depth,
diff --git a/subversion/include/svn_client.h b/subversion/include/svn_client.h
index 06dbbc3..a6297a0 100644
--- a/subversion/include/svn_client.h
+++ b/subversion/include/svn_client.h
@@ -500,7 +500,7 @@ typedef struct svn_client_commit_item3_t
* contents in @c incoming_prop_changes->pool, so that it has the
* same lifetime as this data structure.
*
- * See http://subversion.tigris.org/issues/show_bug.cgi?id=806 for a
+ * See https://issues.apache.org/jira/browse/SVN-806 for a
* description of what would happen if the post-commit process
* didn't group these changes together with all other changes to the
* item.
@@ -520,7 +520,7 @@ typedef struct svn_client_commit_item3_t
/**
* When processing the commit this contains the relative path for
- * the commit session. #NULL until the commit item is preprocessed.
+ * the commit session. NULL until the commit item is preprocessed.
* @since New in 1.7.
*/
const char *session_relpath;
@@ -1547,6 +1547,38 @@ svn_client_switch(svn_revnum_t *result_rev,
/** @} */
+/** Callback for svn_client__layout_list()
+ *
+ * @warning EXPERIMENTAL.
+ */
+typedef svn_error_t * (*svn_client__layout_func_t)(
+ void *layout_baton,
+ const char *local_abspath,
+ const char *repos_root_url,
+ svn_boolean_t not_present,
+ svn_boolean_t url_changed,
+ const char *url,
+ svn_boolean_t revision_changed,
+ svn_revnum_t revision,
+ svn_boolean_t depth_changed,
+ svn_depth_t depth,
+ apr_pool_t *scratch_pool);
+
+/**
+ * Describe the layout of the working copy below @a local_abspath to
+ * the callback @a layout.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__layout_list(const char *local_abspath,
+ svn_client__layout_func_t layout,
+ void *layout_baton,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool);
+
+
/**
* @defgroup Add Begin versioning files/directories in a working copy.
*
@@ -3060,11 +3092,17 @@ svn_client_blame(const char *path_or_url,
* The above two options are mutually exclusive. It is an error to set
* both to TRUE.
*
+ * If @a pretty_print_mergeinfo is true, then describe 'svn:mergeinfo'
+ * property changes in a human-readable form that says what changes were
+ * merged or reverse merged; otherwise (or if the mergeinfo property values
+ * don't parse correctly) display them just like any other property.
+ *
* Generated headers are encoded using @a header_encoding.
*
- * Diff output will not be generated for binary files, unless @a
- * ignore_content_type is TRUE, in which case diffs will be shown
- * regardless of the content types.
+ * If either side has an svn:mime-type property that indicates 'binary'
+ * content, then if @a ignore_content_type is set, attempt to produce the
+ * diff in the usual way, otherwise produce a 'GIT binary diff' in git mode
+ * or print a warning message in non-git mode.
*
* @a diff_options (an array of <tt>const char *</tt>) is used to pass
* additional command line options to the diff processes invoked to compare
@@ -3090,8 +3128,39 @@ svn_client_blame(const char *path_or_url,
* @note @a relative_to_dir doesn't affect the path index generated by
* external diff programs.
*
+ * @since New in 1.11.
+ */
+svn_error_t *
+svn_client_diff7(const apr_array_header_t *diff_options,
+ const char *path_or_url1,
+ const svn_opt_revision_t *revision1,
+ const char *path_or_url2,
+ const svn_opt_revision_t *revision2,
+ const char *relative_to_dir,
+ svn_depth_t depth,
+ svn_boolean_t ignore_ancestry,
+ svn_boolean_t no_diff_added,
+ svn_boolean_t no_diff_deleted,
+ svn_boolean_t show_copies_as_adds,
+ svn_boolean_t ignore_content_type,
+ svn_boolean_t ignore_properties,
+ svn_boolean_t properties_only,
+ svn_boolean_t use_git_diff_format,
+ svn_boolean_t pretty_print_mergeinfo,
+ const char *header_encoding,
+ svn_stream_t *outstream,
+ svn_stream_t *errstream,
+ const apr_array_header_t *changelists,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *pool);
+
+/** Similar to svn_client_diff7(), but with @a pretty_print_mergeinfo
+ * always passed as @c TRUE.
+ *
+ * @deprecated Provided for backward compatibility with the 1.10 API.
* @since New in 1.8.
*/
+SVN_DEPRECATED
svn_error_t *
svn_client_diff6(const apr_array_header_t *diff_options,
const char *path_or_url1,
@@ -3249,14 +3318,45 @@ svn_client_diff(const apr_array_header_t *diff_options,
* be either a working-copy path or URL.
*
* If @a peg_revision is #svn_opt_revision_unspecified, behave
- * identically to svn_client_diff6(), using @a path_or_url for both of that
+ * identically to svn_client_diff7(), using @a path_or_url for both of that
* function's @a path_or_url1 and @a path_or_url2 arguments.
*
- * All other options are handled identically to svn_client_diff6().
+ * All other options are handled identically to svn_client_diff7().
*
* @since New in 1.8.
*/
svn_error_t *
+svn_client_diff_peg7(const apr_array_header_t *diff_options,
+ const char *path_or_url,
+ const svn_opt_revision_t *peg_revision,
+ const svn_opt_revision_t *start_revision,
+ const svn_opt_revision_t *end_revision,
+ const char *relative_to_dir,
+ svn_depth_t depth,
+ svn_boolean_t ignore_ancestry,
+ svn_boolean_t no_diff_added,
+ svn_boolean_t no_diff_deleted,
+ svn_boolean_t show_copies_as_adds,
+ svn_boolean_t ignore_content_type,
+ svn_boolean_t ignore_properties,
+ svn_boolean_t properties_only,
+ svn_boolean_t use_git_diff_format,
+ svn_boolean_t pretty_print_mergeinfo,
+ const char *header_encoding,
+ svn_stream_t *outstream,
+ svn_stream_t *errstream,
+ const apr_array_header_t *changelists,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *pool);
+
+/** Similar to svn_client_diff_peg7(), but with @a pretty_print_mergeinfo
+ * always passed as @c TRUE.
+ *
+ * @deprecated Provided for backward compatibility with the 1.7 API.
+ * @since New in 1.7.
+ */
+SVN_DEPRECATED
+svn_error_t *
svn_client_diff_peg6(const apr_array_header_t *diff_options,
const char *path_or_url,
const svn_opt_revision_t *peg_revision,
@@ -3419,7 +3519,7 @@ svn_client_diff_peg(const apr_array_header_t *diff_options,
* Calls @a summarize_func with @a summarize_baton for each difference
* with a #svn_client_diff_summarize_t structure describing the difference.
*
- * See svn_client_diff6() for a description of the other parameters.
+ * See svn_client_diff7() for a description of the other parameters.
*
* @since New in 1.5.
*/
@@ -4274,17 +4374,23 @@ svn_client_relocate(const char *dir,
/**
* Restore the pristine version of working copy @a paths,
- * effectively undoing any local mods. For each path in @a paths,
- * revert it if it is a file. Else if it is a directory, revert
- * according to @a depth:
+ * effectively undoing any local mods. This means returning each
+ * path's versioned status to 'unmodified' and changing its on-disk
+ * state to match that.
+ *
+ * If an item was in a state of conflict, reverting also marks the
+ * conflict as resolved. If there are conflict marker files attached
+ * to the item, these are removed.
*
* @a paths is an array of (const char *) local WC paths.
*
- * If @a depth is #svn_depth_empty, revert just the properties on
- * the directory; else if #svn_depth_files, revert the properties
+ * For each path in @a paths, revert it if it is a file. Else if it is
+ * a directory, revert according to @a depth:
+ * If @a depth is #svn_depth_empty, revert just
+ * the directory; else if #svn_depth_files, revert the directory
* and any files immediately under the directory; else if
* #svn_depth_immediates, revert all of the preceding plus
- * properties on immediate subdirectories; else if #svn_depth_infinity,
+ * immediate subdirectories; else if #svn_depth_infinity,
* revert path and everything under it fully recursively.
*
* @a changelists is an array of <tt>const char *</tt> changelist
@@ -4296,9 +4402,14 @@ svn_client_relocate(const char *dir,
* If @a clear_changelists is TRUE, then changelist information for the
* paths is cleared while reverting.
*
- * If @a metadata_only is TRUE, the files and directories aren't changed
- * by the operation. If there are conflict marker files attached to the
- * targets these are removed.
+ * The @a metadata_only and @a added_keep_local options control the
+ * extent of reverting. If @a metadata_only is TRUE, the working copy
+ * files are untouched, but if there are conflict marker files attached
+ * to these files these markers are removed. Otherwise, if
+ * @a added_keep_local is TRUE, then all items are reverted except an
+ * item that was scheduled as plain 'add' (not a copy) will not be
+ * removed from the working copy. Otherwise, all items are reverted and
+ * their on-disk state changed to match.
*
* If @a ctx->notify_func2 is non-NULL, then for each item reverted,
* call @a ctx->notify_func2 with @a ctx->notify_baton2 and the path of
@@ -4308,8 +4419,28 @@ svn_client_relocate(const char *dir,
* then do not error, just invoke @a ctx->notify_func2 with @a
* ctx->notify_baton2, using notification code #svn_wc_notify_skip.
*
+ * @warning The 'revert' command intentionally and permanently loses
+ * local modifications.
+ *
+ * @since New in 1.11.
+ */
+svn_error_t *
+svn_client_revert4(const apr_array_header_t *paths,
+ svn_depth_t depth,
+ const apr_array_header_t *changelists,
+ svn_boolean_t clear_changelists,
+ svn_boolean_t metadata_only,
+ svn_boolean_t added_keep_local,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool);
+
+/** Similar to svn_client_revert4(), but with @a added_keep_local set to
+ * TRUE.
+ *
* @since New in 1.9.
+ * @deprecated Provided for backwards compatibility with the 1.10 API.
*/
+SVN_DEPRECATED
svn_error_t *
svn_client_revert3(const apr_array_header_t *paths,
svn_depth_t depth,
@@ -4427,7 +4558,13 @@ typedef enum svn_client_conflict_option_id_t {
svn_client_conflict_option_incoming_move_dir_merge,
/* Options for local move vs incoming edit on merge. */
- svn_client_conflict_option_local_move_file_text_merge
+ svn_client_conflict_option_local_move_file_text_merge,
+ svn_client_conflict_option_local_move_dir_merge, /**< @since New in 1.11. */
+
+ /* Options for local missing vs incoming edit on merge. */
+ svn_client_conflict_option_sibling_move_file_text_merge, /**< @since New in 1.11. */
+ svn_client_conflict_option_sibling_move_dir_merge, /**< @since New in 1.11. */
+
} svn_client_conflict_option_id_t;
/**
@@ -4448,26 +4585,45 @@ svn_client_conflict_option_set_merged_propval(
const svn_string_t *merged_propval);
/**
- * Get a list of possible repository paths which can be applied to the
- * svn_client_conflict_option_incoming_move_file_text_merge or
- * svn_client_conflict_option_incoming_move_dir_merge resolution
- * @a option. (If a different option is passed in, this function will
- * raise an assertion failure.)
- *
- * In some situations, there can be multiple possible destinations for an
- * incoming move. One such situation is where a file was copied and moved
- * in the same revision: svn cp a b; svn mv a c; svn commit
+ * Get a list of possible repository paths which can be applied to @a option.
+ *
+ * In some situations, there can be multiple possible destinations for a move.
+ * One such situation is where a file was copied and moved in the same revision:
+ * svn cp a b; svn mv a c; svn commit
* When this move is merged elsewhere, both b and c will appear as valid move
* destinations to the conflict resolver. To resolve such ambiguity, the client
* may call this function to obtain a list of possible destinations the user
* may choose from.
*
+ * @a *possible_moved_to_repos_relpaths is set to NULL if the @a option does
+ * not support multiple move targets. API users may assume that only one option
+ * among those which can be applied to a conflict supports move targets.
+ *
* The array is allocated in @a result_pool and will have "const char *"
* elements pointing to strings also allocated in @a result_pool.
* All paths are relpaths, and relative to the repository root.
*
- * @see svn_client_conflict_option_set_moved_to_repos_relpath()
+ * @see svn_client_conflict_option_set_moved_to_repos_relpath2()
+ * @since New in 1.11.
+ */
+svn_error_t *
+svn_client_conflict_option_get_moved_to_repos_relpath_candidates2(
+ apr_array_header_t **possible_moved_to_repos_relpaths,
+ svn_client_conflict_option_t *option,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+/**
+ * Get a list of possible repository paths which can be applied to the
+ * svn_client_conflict_option_incoming_move_file_text_merge, or the
+ * svn_client_conflict_option_incoming_move_dir_merge resolution @a option.
+ *
+ * In SVN 1.10, if a different option is passed in, this function will
+ * raise an assertion failure. Otherwise this function behaves just like
+ * svn_client_conflict_option_get_moved_to_repos_relpath_candidates2().
+ *
* @since New in 1.10.
+ * @deprecated use svn_client_conflict_option_get_moved_to_repos_relpath_candidates2()
*/
svn_error_t *
svn_client_conflict_option_get_moved_to_repos_relpath_candidates(
@@ -4477,10 +4633,9 @@ svn_client_conflict_option_get_moved_to_repos_relpath_candidates(
apr_pool_t *scratch_pool);
/**
- * Set the preferred moved target repository path for the
- * svn_client_conflict_option_incoming_move_file_text_merge or
- * svn_client_conflict_option_incoming_move_dir_merge resolution option.
- *
+ * Set the preferred moved target repository path. If @a option is not
+ * applicable to a moved target repository path, do nothing.
+ *
* @a preferred_move_target_idx must be a valid index into the list returned
* by svn_client_conflict_option_get_moved_to_repos_relpath_candidates().
*
@@ -4489,7 +4644,23 @@ svn_client_conflict_option_get_moved_to_repos_relpath_candidates(
* svn_client_conflict_option_get_description(). Call these functions again
* to get updated descriptions containing the newly selected move target.
*
+ * @since New in 1.11.
+ */
+svn_error_t *
+svn_client_conflict_option_set_moved_to_repos_relpath2(
+ svn_client_conflict_option_t *option,
+ int preferred_move_target_idx,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool);
+
+/**
+ * Like svn_client_conflict_option_set_moved_to_repos_relpath2(), except
+ * that in SVN 1.10 it raises an assertion failure if an option other
+ * than svn_client_conflict_option_incoming_move_file_text_merge or
+ * svn_client_conflict_option_incoming_move_dir_merge is passed.
+ *
* @since New in 1.10.
+ * @deprecated use svn_client_conflict_option_set_moved_to_repos_relpath2()
*/
svn_error_t *
svn_client_conflict_option_set_moved_to_repos_relpath(
@@ -4500,24 +4671,45 @@ svn_client_conflict_option_set_moved_to_repos_relpath(
/**
* Get a list of possible moved-to abspaths in the working copy which can be
- * applied to the svn_client_conflict_option_incoming_move_file_text_merge
- * or svn_client_conflict_option_incoming_move_dir_merge resolution @a option.
- * (If a different option is passed in, this function will raise an assertion
- * failure.)
- *
- * All paths in the returned list correspond to the repository path which
- * is assumed to be the destination of the incoming move operation.
- * To support cases where this destination path is ambiguous, the client may
- * call svn_client_conflict_option_get_moved_to_repos_relpath_candidates()
- * before calling this function to let the user select a repository path first.
+ * applied to @a option.
+ *
+ * All working copy paths in the returned list correspond to one repository
+ * path which is be one of the possible destinations of a move operation.
+ * More than one repository-side move target candidate may exist; call
+ * svn_client_conflict_option_get_moved_to_repos_relpath_candidates() before
+ * calling this function to let the user select a repository path first.
+ * Otherwise, one of the repository-side paths will be selected internally.
*
+ * @a *possible_moved_to_abspaths is set to NULL if the @a option does not
+ * support multiple move targets. API users may assume that only one option
+ * among those which can be applied to a conflict supports move targets.
+ *
* If no possible moved-to paths can be found, return an empty array.
* This doesn't mean that no move happened in the repository. It is possible
* that the move destination is outside the scope of the current working copy,
* for example, in which case the conflict must be resolved in some other way.
*
- * @see svn_client_conflict_option_set_moved_to_abspath()
+ * @see svn_client_conflict_option_set_moved_to_abspath2()
+ * @since New in 1.11.
+ */
+svn_error_t *
+svn_client_conflict_option_get_moved_to_abspath_candidates2(
+ apr_array_header_t **possible_moved_to_abspaths,
+ svn_client_conflict_option_t *option,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+/**
+ * Get a list of possible moved-to abspaths in the working copy which can be
+ * svn_client_conflict_option_incoming_move_file_text_merge, or the
+ * svn_client_conflict_option_incoming_move_dir_merge resolution @a option.
+ *
+ * In SVN 1.10, if a different option is passed in, this function will
+ * raise an assertion failure. Otherwise this function behaves just like
+ * svn_client_conflict_option_get_moved_to_abspath_candidates2().
+ *
* @since New in 1.10.
+ * @deprecated use svn_client_conflict_option_get_moved_to_abspath_candidates2()
*/
svn_error_t *
svn_client_conflict_option_get_moved_to_abspath_candidates(
@@ -4527,14 +4719,34 @@ svn_client_conflict_option_get_moved_to_abspath_candidates(
apr_pool_t *scratch_pool);
/**
- * Set the preferred moved target abspath for the
- * svn_client_conflict_option_incoming_move_file_text_merge or
- * svn_client_conflict_option_incoming_move_dir_merge resolution option.
+ * Set the preferred moved target working copy path. If @a option is not
+ * applicable to a moved target working copy path, do nothing.
*
* @a preferred_move_target_idx must be a valid index into the list
- * returned by svn_client_conflict_option_get_moved_to_abspath_candidates().
+ * returned by svn_client_conflict_option_get_moved_to_abspath_candidates2().
*
+ * This function can be called multiple times.
+ * It affects the output of svn_client_conflict_tree_get_description() and
+ * svn_client_conflict_option_get_description(). Call these functions again
+ * to get updated descriptions containing the newly selected move target.
+ *
+ * @since New in 1.11.
+ */
+svn_error_t *
+svn_client_conflict_option_set_moved_to_abspath2(
+ svn_client_conflict_option_t *option,
+ int preferred_move_target_idx,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool);
+
+/**
+ * Like svn_client_conflict_option_set_moved_to_abspath2(), except that
+ * in SVN 1.10 this function raises an assertion failure if an option
+ * other than svn_client_conflict_option_incoming_move_file_text_merge or
+ * svn_client_conflict_option_incoming_move_dir_merge is passed.
+ *
* @since New in 1.10.
+ * @deprecated use svn_client_conflict_option_set_moved_to_abspath2()
*/
svn_error_t *
svn_client_conflict_option_set_moved_to_abspath(
@@ -4583,7 +4795,7 @@ typedef svn_error_t *(*svn_client_conflict_walk_func_t)(
/**
* Walk all conflicts within the specified @a depth of @a local_abspath.
- * Pass each conflict found during the walk to the @conflict_walk_func
+ * Pass each conflict found during the walk to the @a conflict_walk_func
* callback, along with @a conflict_walk_func_baton.
* Use cancellation and notification support provided by client context @a ctx.
*
@@ -4881,7 +5093,7 @@ svn_client_conflict_get_repos_info(const char **repos_root_url,
* Any output parameter may be set to @c NULL by the caller to indicate that
* a particular piece of information should not be returned.
*
- * In case of tree conflicts, this path@revision does not necessarily exist
+ * In case of tree conflicts, this "path@revision" does not necessarily exist
* in the repository, and it does not necessarily represent the incoming
* change which is responsible for the occurance of the tree conflict.
* The responsible incoming change is generally located somewhere between
@@ -6715,151 +6927,402 @@ svn_client_cat(svn_stream_t *out,
-/** Shelving commands
+/** Shelving v2, with checkpoints
*
- * @defgroup svn_client_shelve_funcs Client Shelving Functions
+ * @defgroup svn_client_shelves_checkpoints Shelves and checkpoints
* @{
*/
-/** Shelve a change.
+/** A shelf.
*
- * Shelve as @a name the local modifications found by @a paths, @a depth,
- * @a changelists. Revert the shelved change from the WC unless @a keep_local
- * is true.
+ * @warning EXPERIMENTAL.
+ */
+typedef struct svn_client__shelf_t
+{
+ /* Public fields (read-only for public use) */
+ const char *name;
+ int max_version; /** @deprecated */
+
+ /* Private fields */
+ const char *wc_root_abspath;
+ const char *shelves_dir;
+ apr_hash_t *revprops; /* non-null; allocated in POOL */
+ svn_client_ctx_t *ctx;
+ apr_pool_t *pool;
+} svn_client__shelf_t;
+
+/** One version of a shelved change-set.
*
- * If @a dry_run is true, don't actually do it.
+ * @warning EXPERIMENTAL.
+ */
+typedef struct svn_client__shelf_version_t
+{
+ /* Public fields (read-only for public use) */
+ svn_client__shelf_t *shelf;
+ apr_time_t mtime; /** time-stamp of this version */
+
+ /* Private fields */
+ const char *files_dir_abspath; /** abspath of the storage area */
+ int version_number; /** version number starting from 1 */
+} svn_client__shelf_version_t;
+
+/** Open an existing shelf or create a new shelf.
+ *
+ * Create a new shelf (containing no versions) if a shelf named @a name
+ * is not found.
+ *
+ * The shelf should be closed after use by calling svn_client_shelf_close().
+ *
+ * @a local_abspath is any path in the WC and is used to find the WC root.
*
- * @since New in 1.10.
* @warning EXPERIMENTAL.
*/
SVN_EXPERIMENTAL
svn_error_t *
-svn_client_shelve(const char *name,
- const apr_array_header_t *paths,
- svn_depth_t depth,
- const apr_array_header_t *changelists,
- svn_boolean_t keep_local,
- svn_boolean_t dry_run,
- svn_client_ctx_t *ctx,
- apr_pool_t *pool);
+svn_client__shelf_open_or_create(svn_client__shelf_t **shelf_p,
+ const char *name,
+ const char *local_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool);
-/** Unshelve the shelved change @a name.
+/** Open an existing shelf named @a name, or error if it doesn't exist.
+ *
+ * The shelf should be closed after use by calling svn_client_shelf_close().
*
* @a local_abspath is any path in the WC and is used to find the WC root.
- * Rename the shelved patch to add a '.bak' extension unless @a keep is true.
*
- * If @a dry_run is true, don't actually do it.
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf_open_existing(svn_client__shelf_t **shelf_p,
+ const char *name,
+ const char *local_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool);
+
+/** Close @a shelf.
+ *
+ * If @a shelf is NULL, do nothing; otherwise @a shelf must be an open shelf.
*
- * @since New in 1.10.
* @warning EXPERIMENTAL.
*/
SVN_EXPERIMENTAL
svn_error_t *
-svn_client_unshelve(const char *name,
- const char *local_abspath,
- svn_boolean_t keep,
- svn_boolean_t dry_run,
- svn_client_ctx_t *ctx,
- apr_pool_t *pool);
+svn_client__shelf_close(svn_client__shelf_t *shelf,
+ apr_pool_t *scratch_pool);
-/** Delete the shelved patch @a name.
+/** Delete the shelf named @a name, or error if it doesn't exist.
*
* @a local_abspath is any path in the WC and is used to find the WC root.
*
- * If @a dry_run is true, don't actually do it.
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf_delete(const char *name,
+ const char *local_abspath,
+ svn_boolean_t dry_run,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool);
+
+/** Save the local modifications found by @a paths, @a depth,
+ * @a changelists as a new version of @a shelf.
+ *
+ * If any paths are shelved, create a new shelf-version and return the new
+ * shelf-version in @a *new_version_p, else set @a *new_version_p to null.
+ * @a new_version_p may be null if that output is not wanted; a new shelf-
+ * version is still saved and may be found through @a shelf.
+ *
+ * @a paths are relative to the CWD, or absolute.
+ *
+ * For each successfully shelved path: call @a shelved_func (if not null)
+ * with @a shelved_baton.
+ *
+ * If any paths cannot be shelved: if @a not_shelved_func is given, call
+ * it with @a not_shelved_baton for each such path, and still create a new
+ * shelf-version if any paths are shelved.
+ *
+ * This function does not revert the changes from the WC; use
+ * svn_client_shelf_unapply() for that.
*
- * @since New in 1.10.
* @warning EXPERIMENTAL.
*/
SVN_EXPERIMENTAL
svn_error_t *
-svn_client_shelves_delete(const char *name,
- const char *local_abspath,
- svn_boolean_t dry_run,
- svn_client_ctx_t *ctx,
- apr_pool_t *pool);
+svn_client__shelf_save_new_version3(svn_client__shelf_version_t **new_version_p,
+ svn_client__shelf_t *shelf,
+ const apr_array_header_t *paths,
+ svn_depth_t depth,
+ const apr_array_header_t *changelists,
+ svn_client_status_func_t shelved_func,
+ void *shelved_baton,
+ svn_client_status_func_t not_shelved_func,
+ void *not_shelved_baton,
+ apr_pool_t *scratch_pool);
-/** Information about a shelved patch.
+/** Delete all newer versions of @a shelf newer than @a shelf_version.
+ *
+ * If @a shelf_version is null, delete all versions of @a shelf. (The
+ * shelf will still exist, with any log message and other revprops, but
+ * with no versions in it.)
+ *
+ * Leave the shelf's log message and other revprops unchanged.
+ *
+ * Any #svn_client_shelf_version_t object that refers to a deleted version
+ * will become invalid: attempting to use it will give undefined behaviour.
+ * The given @a shelf_version will remain valid.
*
- * @since New in 1.10.
* @warning EXPERIMENTAL.
*/
-typedef struct svn_client_shelved_patch_info_t
-{
- const char *message; /* first line of log message */
- const char *patch_path; /* abspath of the patch file */
- svn_io_dirent2_t *dirent; /* info about the patch file */
- apr_time_t mtime; /* a copy of dirent->mtime */
-} svn_client_shelved_patch_info_t;
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf_delete_newer_versions(svn_client__shelf_t *shelf,
+ svn_client__shelf_version_t *shelf_version,
+ apr_pool_t *scratch_pool);
-/** Set @a *shelved_patch_infos to a hash, keyed by patch name, of pointers to
- * @c svn_client_shelved_patch_info_t structures.
+/** Return in @a shelf_version an existing version of @a shelf, given its
+ * @a version_number. Error if that version doesn't exist.
*
- * @a local_abspath is any path in the WC and is used to find the WC root.
+ * There is no need to "close" it after use.
*
- * @since New in 1.10.
* @warning EXPERIMENTAL.
*/
SVN_EXPERIMENTAL
svn_error_t *
-svn_client_shelves_list(apr_hash_t **shelved_patch_infos,
- const char *local_abspath,
- svn_client_ctx_t *ctx,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool);
+svn_client__shelf_version_open(svn_client__shelf_version_t **shelf_version_p,
+ svn_client__shelf_t *shelf,
+ int version_number,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
-/** Set @a *any_shelved to indicate if there are any shelved changes in this WC.
+/** Return in @a shelf_version the newest version of @a shelf.
*
- * This shall provide the answer fast, regardless of how many changes
- * are stored, unlike svn_client_shelves_list().
+ * Set @a shelf_version to null if no versions exist.
*
- * ### Initial implementation isn't O(1) fast -- it just calls
- * svn_client_shelves_list().
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf_get_newest_version(svn_client__shelf_version_t **shelf_version_p,
+ svn_client__shelf_t *shelf,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+/** Return in @a versions_p an array of (#svn_client_shelf_version_t *)
+ * containing all versions of @a shelf.
*
- * @a local_abspath is any path in the WC and is used to find the WC root.
+ * The versions will be in chronological order, oldest to newest.
*
- * @since New in 1.10.
* @warning EXPERIMENTAL.
*/
SVN_EXPERIMENTAL
svn_error_t *
-svn_client_shelves_any(svn_boolean_t *any_shelved,
- const char *local_abspath,
- svn_client_ctx_t *ctx,
+svn_client__shelf_get_all_versions(apr_array_header_t **versions_p,
+ svn_client__shelf_t *shelf,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+/** Apply @a shelf_version to the WC.
+ *
+ * If @a dry_run is true, try applying the shelf-version to the WC and
+ * report the full set of notifications about successes and conflicts,
+ * but leave the WC untouched.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf_apply(svn_client__shelf_version_t *shelf_version,
+ svn_boolean_t dry_run,
apr_pool_t *scratch_pool);
+/** Test whether we can successfully apply the changes for @a file_relpath
+ * in @a shelf_version to the WC.
+ *
+ * Set @a *conflict_p to true if the changes conflict with the WC state,
+ * else to false.
+ *
+ * If @a file_relpath is not found in @a shelf_version, set @a *conflict_p
+ * to FALSE.
+ *
+ * @a file_relpath is relative to the WC root.
+ *
+ * A conflict means the shelf cannot be applied successfully to the WC
+ * because the change to be applied is not compatible with the current
+ * working state of the WC file. Examples are a text conflict, or the
+ * file does not exist or is a directory, or the shelf is trying to add
+ * the file but it already exists, or trying to delete it but it does not
+ * exist.
+ *
+ * Return an error only if something is broken, e.g. unable to read data
+ * from the specified shelf-version.
+ *
+ * Leave the WC untouched.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf_test_apply_file(svn_boolean_t *conflict_p,
+ svn_client__shelf_version_t *shelf_version,
+ const char *file_relpath,
+ apr_pool_t *scratch_pool);
+
+/** Reverse-apply @a shelf_version to the WC.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf_unapply(svn_client__shelf_version_t *shelf_version,
+ svn_boolean_t dry_run,
+ apr_pool_t *scratch_pool);
+
/** Set @a *affected_paths to a hash with one entry for each path affected
- * by the shelf @a name. The hash key is the old path and value is
- * the new path, both relative to the WC root. The key and value are the
- * same except when a path is moved or copied.
+ * by the @a shelf_version.
+ *
+ * The hash key is the path of the affected file, relative to the WC root.
+ *
+ * (Future possibility: When moves and copies are supported, the hash key
+ * is the old path and value is the new path.)
*
- * @since New in 1.10.
* @warning EXPERIMENTAL.
*/
SVN_EXPERIMENTAL
svn_error_t *
-svn_client_shelf_get_paths(apr_hash_t **affected_paths,
- const char *name,
- const char *local_abspath,
- svn_client_ctx_t *ctx,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool);
+svn_client__shelf_paths_changed(apr_hash_t **affected_paths,
+ svn_client__shelf_version_t *shelf_version,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
-/** Set @a *has_changes to indicate whether the shelf @a name
- * contains any modifications, in other words if svn_client_shelf_get_paths()
- * would return a non-empty set of paths.
+/** Set @a shelf's revprop @a prop_name to @a prop_val.
+ *
+ * This can be used to set or change the shelf's log message
+ * (property name "svn:log" or #SVN_PROP_REVISION_LOG).
+ *
+ * If @a prop_val is NULL, delete the property (if present).
*
- * @since New in 1.10.
* @warning EXPERIMENTAL.
*/
SVN_EXPERIMENTAL
svn_error_t *
-svn_client_shelf_has_changes(svn_boolean_t *has_changes,
- const char *name,
- const char *local_abspath,
- svn_client_ctx_t *ctx,
+svn_client__shelf_revprop_set(svn_client__shelf_t *shelf,
+ const char *prop_name,
+ const svn_string_t *prop_val,
apr_pool_t *scratch_pool);
+/** Set @a shelf's revprops to @a revprop_table.
+ *
+ * This deletes all previous revprops.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf_revprop_set_all(svn_client__shelf_t *shelf,
+ apr_hash_t *revprop_table,
+ apr_pool_t *scratch_pool);
+
+/** Get @a shelf's revprop @a prop_name into @a *prop_val.
+ *
+ * If the property is not present, set @a *prop_val to NULL.
+ *
+ * This can be used to get the shelf's log message
+ * (property name "svn:log" or #SVN_PROP_REVISION_LOG).
+ *
+ * The lifetime of the result is limited to that of @a shelf and/or
+ * of @a result_pool.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf_revprop_get(svn_string_t **prop_val,
+ svn_client__shelf_t *shelf,
+ const char *prop_name,
+ apr_pool_t *result_pool);
+
+/** Get @a shelf's revprops into @a props.
+ *
+ * The lifetime of the result is limited to that of @a shelf and/or
+ * of @a result_pool.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf_revprop_list(apr_hash_t **props,
+ svn_client__shelf_t *shelf,
+ apr_pool_t *result_pool);
+
+/** Set the log message in @a shelf to @a log_message.
+ *
+ * If @a log_message is null, delete the log message.
+ *
+ * Similar to svn_client_shelf_revprop_set(... SVN_PROP_REVISION_LOG ...).
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf_set_log_message(svn_client__shelf_t *shelf,
+ const char *log_message,
+ apr_pool_t *scratch_pool);
+
+/** Get the log message in @a shelf into @a *log_message.
+ *
+ * Set @a *log_message to NULL if there is no log message.
+ *
+ * Similar to svn_client_shelf_revprop_get(... SVN_PROP_REVISION_LOG ...).
+ *
+ * The result is allocated in @a result_pool.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf_get_log_message(char **log_message,
+ svn_client__shelf_t *shelf,
+ apr_pool_t *result_pool);
+
+/** Information about a shelf.
+ *
+ * @warning EXPERIMENTAL.
+ */
+typedef struct svn_client__shelf_info_t
+{
+ apr_time_t mtime; /* mtime of the latest change */
+} svn_client__shelf_info_t;
+
+/** Set @a *shelf_infos to a hash, keyed by shelf name, of pointers to
+ * @c svn_client_shelf_info_t structures, one for each shelf in the
+ * given WC.
+ *
+ * @a local_abspath is any path in the WC and is used to find the WC root.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf_list(apr_hash_t **shelf_infos,
+ const char *local_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+/* Report the shelved status of all the shelved paths in SHELF_VERSION
+ * via WALK_FUNC(WALK_BATON, ...).
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf_version_status_walk(svn_client__shelf_version_t *shelf_version,
+ const char *wc_relpath,
+ svn_wc_status_func4_t walk_func,
+ void *walk_baton,
+ apr_pool_t *scratch_pool);
/** @} */
/** Changelist commands
@@ -6868,15 +7331,6 @@ svn_client_shelf_has_changes(svn_boolean_t *has_changes,
* @{
*/
-/** Implementation note:
- *
- * For now, changelists are implemented by scattering the
- * associations across multiple .svn/entries files in a working copy.
- * However, this client API was written so that we have the option of
- * changing the underlying implementation -- we may someday want to
- * store changelist definitions in a centralized database.
- */
-
/**
* Add each path in @a paths (recursing to @a depth as necessary) to
* @a changelist. If a path is already a member of another
diff --git a/subversion/include/svn_fs.h b/subversion/include/svn_fs.h
index 179774e..3cd58ae 100644
--- a/subversion/include/svn_fs.h
+++ b/subversion/include/svn_fs.h
@@ -1744,7 +1744,7 @@ svn_fs_paths_changed3(svn_fs_path_change_iterator_t **iterator,
*
* Use @a pool for all allocations, including the hash and its values.
*
- * @note Retrieving the #node_rev_id element of #svn_fs_path_change2_t may
+ * @note Retrieving the #svn_fs_path_change2_t.node_rev_id element may
* be expensive in some FS backends.
*
* @since New in 1.6.
@@ -2492,7 +2492,7 @@ svn_fs_file_md5_checksum(unsigned char digest[],
* svn_fs_file_contents(). In that case, the result of reading from
* @a *contents is undefined.
*
- * ### @todo kff: I am worried about lifetime issues with this pool vs
+ * @todo kff: I am worried about lifetime issues with this pool vs
* the trail created farther down the call stack. Trace this function
* to investigate...
*/
diff --git a/subversion/include/svn_opt.h b/subversion/include/svn_opt.h
index 1c85b61..367b8a0 100644
--- a/subversion/include/svn_opt.h
+++ b/subversion/include/svn_opt.h
@@ -69,6 +69,10 @@ typedef svn_error_t *(svn_opt_subcommand_t)(
/** The maximum number of options that can be accepted by a subcommand. */
#define SVN_OPT_MAX_OPTIONS 50
+/** The maximum number of paragraphs of help text a subcommand can have.
+ * @since New in 1.11. */
+#define SVN_OPT_MAX_PARAGRAPHS 100
+
/** Options that have no short option char should use an identifying
* integer equal to or greater than this.
*/
@@ -77,7 +81,39 @@ typedef svn_error_t *(svn_opt_subcommand_t)(
/** One element of a subcommand dispatch table.
*
+ * @since New in 1.11.
+ */
+typedef struct svn_opt_subcommand_desc3_t
+{
+ /** The full name of this command. */
+ const char *name;
+
+ /** The function this command invokes. */
+ svn_opt_subcommand_t *cmd_func;
+
+ /** A list of alias names for this command (e.g., 'up' for 'update'). */
+ const char *aliases[SVN_OPT_MAX_ALIASES];
+
+ /** A multi-paragraph string describing this command. */
+ const char *help[SVN_OPT_MAX_PARAGRAPHS];
+
+ /** A list of options accepted by this command. Each value in the
+ * array is a unique enum (the 2nd field in apr_getopt_option_t)
+ */
+ int valid_options[SVN_OPT_MAX_OPTIONS];
+
+ /** A list of option help descriptions, keyed by the option unique enum
+ * (the 2nd field in apr_getopt_option_t), which override the generic
+ * descriptions given in an apr_getopt_option_t on a per-subcommand basis.
+ */
+ struct { int optch; const char *desc; } desc_overrides[SVN_OPT_MAX_OPTIONS];
+} svn_opt_subcommand_desc3_t;
+
+
+/** One element of a subcommand dispatch table.
+ *
* @since New in 1.4.
+ * @deprecated Provided for backward compatibility with the 1.10 API.
*/
typedef struct svn_opt_subcommand_desc2_t
{
@@ -139,8 +175,21 @@ typedef struct svn_opt_subcommand_desc_t
* Return the entry in @a table whose name matches @a cmd_name, or @c NULL if
* none. @a cmd_name may be an alias.
*
+ * @since New in 1.11.
+ */
+const svn_opt_subcommand_desc3_t *
+svn_opt_get_canonical_subcommand3(const svn_opt_subcommand_desc3_t *table,
+ const char *cmd_name);
+
+
+/**
+ * Same as svn_opt_get_canonical_subcommand3(), but with a different
+ * version of the subcommand description table.
+ *
* @since New in 1.4.
+ * @deprecated Provided for backward compatibility with the 1.10 API.
*/
+SVN_DEPRECATED
const svn_opt_subcommand_desc2_t *
svn_opt_get_canonical_subcommand2(const svn_opt_subcommand_desc2_t *table,
const char *cmd_name);
@@ -170,8 +219,22 @@ svn_opt_get_canonical_subcommand(const svn_opt_subcommand_desc_t *table,
*
* The returned value may be statically allocated, or allocated in @a pool.
*
+ * @since New in 1.11.
+ */
+const apr_getopt_option_t *
+svn_opt_get_option_from_code3(int code,
+ const apr_getopt_option_t *option_table,
+ const svn_opt_subcommand_desc3_t *command,
+ apr_pool_t *pool);
+
+/**
+ * Same as svn_opt_get_option_from_code3(), but with a different
+ * version of the subcommand description table.
+ *
* @since New in 1.4.
+ * @deprecated Provided for backward compatibility with the 1.10 API.
*/
+SVN_DEPRECATED
const apr_getopt_option_t *
svn_opt_get_option_from_code2(int code,
const apr_getopt_option_t *option_table,
@@ -198,8 +261,21 @@ svn_opt_get_option_from_code(int code,
* non-NULL, it is a zero-terminated array, and all subcommands take
* the options listed in it.
*
+ * @since New in 1.11.
+ */
+svn_boolean_t
+svn_opt_subcommand_takes_option4(const svn_opt_subcommand_desc3_t *command,
+ int option_code,
+ const int *global_options);
+
+/**
+ * Same as svn_opt_subcommand_takes_option4(), but with a different
+ * version of the subcommand description table.
+ *
* @since New in 1.5.
+ * @deprecated Provided for backward compatibility with the 1.10 API.
*/
+SVN_DEPRECATED
svn_boolean_t
svn_opt_subcommand_takes_option3(const svn_opt_subcommand_desc2_t *command,
int option_code,
@@ -235,7 +311,7 @@ svn_opt_subcommand_takes_option(const svn_opt_subcommand_desc_t *command,
/**
* Print a generic (not command-specific) usage message to @a stream.
*
- * ### @todo Why is @a stream a stdio file instead of an svn stream?
+ * @todo Why is @a stream a stdio file instead of an svn stream?
*
* If @a header is non-NULL, print @a header followed by a newline. Then
* loop over @a cmd_table printing the usage for each command (getting
@@ -244,8 +320,24 @@ svn_opt_subcommand_takes_option(const svn_opt_subcommand_desc_t *command,
*
* Use @a pool for temporary allocation.
*
+ * @since New in 1.11.
+ */
+void
+svn_opt_print_generic_help3(const char *header,
+ const svn_opt_subcommand_desc3_t *cmd_table,
+ const apr_getopt_option_t *opt_table,
+ const char *footer,
+ apr_pool_t *pool,
+ FILE *stream);
+
+/**
+ * Same as svn_opt_print_generic_help3(), but with a different
+ * version of the subcommand description table.
+ *
* @since New in 1.4.
+ * @deprecated Provided for backward compatibility with the 1.10 API.
*/
+SVN_DEPRECATED
void
svn_opt_print_generic_help2(const char *header,
const svn_opt_subcommand_desc2_t *cmd_table,
@@ -297,8 +389,23 @@ svn_opt_format_option(const char **string,
* use that second name as an alias for the first name. This additional
* behaviour is new in 1.7.
*
+ * @since New in 1.11.
+ */
+void
+svn_opt_subcommand_help4(const char *subcommand,
+ const svn_opt_subcommand_desc3_t *table,
+ const apr_getopt_option_t *options_table,
+ const int *global_options,
+ apr_pool_t *pool);
+
+/**
+ * Same as svn_opt_subcommand_help4(), but with a different
+ * version of the subcommand description table.
+ *
* @since New in 1.5.
+ * @deprecated Provided for backward compatibility with the 1.10 API.
*/
+SVN_DEPRECATED
void
svn_opt_subcommand_help3(const char *subcommand,
const svn_opt_subcommand_desc2_t *table,
@@ -700,9 +807,30 @@ svn_opt_parse_path(svn_opt_revision_t *rev,
* --version flag *and* subcommand arguments on a help command line.
* The logic for handling such a situation should be in one place.
*
- * @since New in 1.8.
+ * @since New in 1.11.
*/
+svn_error_t *
+svn_opt_print_help5(apr_getopt_t *os,
+ const char *pgm_name,
+ svn_boolean_t print_version,
+ svn_boolean_t quiet,
+ svn_boolean_t verbose,
+ const char *version_footer,
+ const char *header,
+ const svn_opt_subcommand_desc3_t *cmd_table,
+ const apr_getopt_option_t *option_table,
+ const int *global_options,
+ const char *footer,
+ apr_pool_t *pool);
+/**
+ * Same as svn_opt_print_help5(), but with a different
+ * version of the subcommand description table.
+ *
+ * @since New in 1.8.
+ * @deprecated Provided for backward compatibility with the 1.10 API.
+ */
+SVN_DEPRECATED
svn_error_t *
svn_opt_print_help4(apr_getopt_t *os,
const char *pgm_name,
diff --git a/subversion/include/svn_props.h b/subversion/include/svn_props.h
index 7ea8bba..8b044b0 100644
--- a/subversion/include/svn_props.h
+++ b/subversion/include/svn_props.h
@@ -415,19 +415,26 @@ svn_prop_name_is_valid(const char *prop_name);
/** Describes external items to check out into this directory.
*
* The format is a series of lines, each in the following format:
- * [-r REV] URL[@PEG] LOCALPATH
+ *
+ * [-r REV] URL[@PEG] LOCALPATH
+ *
* LOCALPATH is relative to the directory having this property.
* REV pins the external to revision REV.
* URL may be a full URL or a relative URL starting with one of:
- * ../ to the parent directory of the extracted external
- * ^/ to the repository root
- * / to the server root
- * // to the URL scheme
+ *
+ * ../ to the parent directory of the extracted external
+ * ^/ to the repository root
+ * / to the server root
+ * // to the URL scheme
+ *
* The following format is supported for interoperability with
* Subversion 1.4 and earlier clients:
- * LOCALPATH [-r PEG] URL
+ *
+ * LOCALPATH [-r PEG] URL
+ *
* The ambiguous format 'relative_path relative_path' is taken as
* 'relative_url relative_path' with peg revision support.
+ *
* Lines starting with a '#' character are ignored.
*/
#define SVN_PROP_EXTERNALS SVN_PROP_PREFIX "externals"
diff --git a/subversion/include/svn_ra.h b/subversion/include/svn_ra.h
index 030458d..cef9a87 100644
--- a/subversion/include/svn_ra.h
+++ b/subversion/include/svn_ra.h
@@ -555,9 +555,9 @@ typedef struct svn_ra_callbacks2_t
/** Fetch working copy properties.
*
- *<pre> ### we might have a problem if the RA layer ever wants a property
- * ### that corresponds to a different revision of the file than
- * ### what is in the WC. we'll cross that bridge one day...</pre>
+ * @note we might have a problem if the RA layer ever wants a property
+ * that corresponds to a different revision of the file than
+ * what is in the WC. we'll cross that bridge one day...
*/
svn_ra_get_wc_prop_func_t get_wc_prop;
@@ -1857,7 +1857,7 @@ svn_ra_get_location_segments(svn_ra_session_t *session,
* @note Prior to Subversion 1.9, this function may request delta handlers
* from @a handler even for empty text deltas. Starting with 1.9, the
* delta handler / baton return arguments passed to @a handler will be
- * #NULL unless there is an actual difference in the file contents between
+ * NULL unless there is an actual difference in the file contents between
* the current and the previous call.
*
* @since New in 1.5.
diff --git a/subversion/include/svn_repos.h b/subversion/include/svn_repos.h
index 9bb462a..81a96db 100644
--- a/subversion/include/svn_repos.h
+++ b/subversion/include/svn_repos.h
@@ -861,7 +861,7 @@ typedef svn_error_t *(*svn_repos_freeze_func_t)(void *baton, apr_pool_t *pool);
* @since New in 1.8.
*/
svn_error_t *
-svn_repos_freeze(apr_array_header_t *paths,
+svn_repos_freeze(const apr_array_header_t *paths,
svn_repos_freeze_func_t freeze_func,
void *freeze_baton,
apr_pool_t *pool);
@@ -1036,7 +1036,10 @@ svn_repos_hooks_setenv(svn_repos_t *repos,
*
* @a send_copyfrom_args instructs the driver to send 'copyfrom'
* arguments to the editor's add_file() and add_directory() methods,
- * whenever it deems feasible.
+ * and therefore to send their content as deltas against the copy source,
+ * whenever it deems feasible. The implementation only does so for
+ * add_file(), and only when the file itself is the copy root (not when
+ * the file is part of a copied subtree).
*
* Use @a authz_read_func and @a authz_read_baton (if not @c NULL) to
* avoid sending data through @a editor/@a edit_baton which is not
@@ -2404,7 +2407,7 @@ svn_repos_fs_get_mergeinfo(svn_mergeinfo_catalog_t *catalog,
* @note Prior to Subversion 1.9, this function may request delta handlers
* from @a handler even for empty text deltas. Starting with 1.9, the
* delta handler / baton return arguments passed to @a handler will be
- * #NULL unless there is an actual difference in the file contents between
+ * NULL unless there is an actual difference in the file contents between
* the current and the previous call.
*
* @since New in 1.5.
@@ -3803,7 +3806,7 @@ typedef struct svn_repos_parse_fns3_t
*
* @since New in 1.8.
- * @since Starting in 1.10, @a parse_fns may contain #NULL pointers for
+ * @since Starting in 1.10, @a parse_fns may contain NULL pointers for
* those callbacks that the caller is not interested in.
*/
svn_error_t *
diff --git a/subversion/include/svn_time.h b/subversion/include/svn_time.h
index 76517ca..ac857fb 100644
--- a/subversion/include/svn_time.h
+++ b/subversion/include/svn_time.h
@@ -38,14 +38,21 @@ extern "C" {
/** Convert @a when to a <tt>const char *</tt> representation allocated
- * in @a pool. Use svn_time_from_cstring() for the reverse
- * conversion.
+ * in @a pool.
+ *
+ * @see svn_time_from_cstring() for the reverse conversion.
*/
const char *
svn_time_to_cstring(apr_time_t when,
apr_pool_t *pool);
/** Convert @a data to an @c apr_time_t @a when.
+ *
+ * @see svn_time_to_cstring() for the reverse conversion.
+ *
+ * @deprecated Also accepts a format that was used before Subversion 0.14.
+ * See implementation for details. Use of this format is deprecated.
+ *
* Use @a pool for temporary memory allocation.
*/
svn_error_t *
diff --git a/subversion/include/svn_utf.h b/subversion/include/svn_utf.h
index 4a2c137..c65afc7 100644
--- a/subversion/include/svn_utf.h
+++ b/subversion/include/svn_utf.h
@@ -212,7 +212,7 @@ svn_utf_cstring_from_utf8_ex(const char **dest,
* so when we can detect that at configure time, things will change.
* Also, this should (?) be moved to apr/apu eventually.
*
- * See http://subversion.tigris.org/issues/show_bug.cgi?id=807 for
+ * See https://issues.apache.org/jira/browse/SVN-807 for
* details.
*/
const char *
diff --git a/subversion/include/svn_version.h b/subversion/include/svn_version.h
index 7d95271..bf1604a 100644
--- a/subversion/include/svn_version.h
+++ b/subversion/include/svn_version.h
@@ -61,7 +61,7 @@ extern "C" {
* Modify when new functionality is added or new interfaces are
* defined, but all changes are backward compatible.
*/
-#define SVN_VER_MINOR 10
+#define SVN_VER_MINOR 11
/**
* Patch number.
@@ -70,7 +70,7 @@ extern "C" {
*
* @since New in 1.1.
*/
-#define SVN_VER_PATCH 2
+#define SVN_VER_PATCH 0
/** @deprecated Provided for backward compatibility with the 1.0 API. */
@@ -93,7 +93,7 @@ extern "C" {
*
* Always change this at the same time as SVN_VER_NUMTAG.
*/
-#define SVN_VER_TAG " (r1835932)"
+#define SVN_VER_TAG " (Release Candidate 2)"
/** Number tag: a string describing the version.
@@ -108,7 +108,7 @@ extern "C" {
*
* Always change this at the same time as SVN_VER_TAG.
*/
-#define SVN_VER_NUMTAG ""
+#define SVN_VER_NUMTAG "-rc2"
/** Revision number: The repository revision number of this release.
@@ -117,7 +117,7 @@ extern "C" {
* file version. Its value remains 0 in the repository except in release
* tags where it is the revision from which the tag was created.
*/
-#define SVN_VER_REVISION 1835932
+#define SVN_VER_REVISION 1842234
/* Version strings composed from the above definitions. */
diff --git a/subversion/include/svn_wc.h b/subversion/include/svn_wc.h
index e632673..cd018ae 100644
--- a/subversion/include/svn_wc.h
+++ b/subversion/include/svn_wc.h
@@ -7602,9 +7602,14 @@ svn_wc_relocate(const char *path,
* If @a clear_changelists is TRUE, then changelist information for the
* paths is cleared.
*
- * If @a metadata_only is TRUE, the working copy files are untouched, but
- * if there are conflict marker files attached to these files these
- * markers are removed.
+ * The @a metadata_only and @a added_keep_local options control the
+ * extent of reverting. If @a metadata_only is TRUE, the working copy
+ * files are untouched, but if there are conflict marker files attached
+ * to these files these markers are removed. Otherwise, if
+ * @a added_keep_local is TRUE, then all items are reverted except an
+ * item that was scheduled as plain 'add' (not a copy) will not be
+ * removed from the working copy. Otherwise, all items are reverted and
+ * their on-disk state changed to match.
*
* If @a cancel_func is non-NULL, call it with @a cancel_baton at
* various points during the reversion process. If it returns an
@@ -7622,8 +7627,30 @@ svn_wc_relocate(const char *path,
* If @a path is not under version control, return the error
* #SVN_ERR_UNVERSIONED_RESOURCE.
*
+ * @since New in 1.11.
+ */
+svn_error_t *
+svn_wc_revert6(svn_wc_context_t *wc_ctx,
+ const char *local_abspath,
+ svn_depth_t depth,
+ svn_boolean_t use_commit_times,
+ const apr_array_header_t *changelist_filter,
+ svn_boolean_t clear_changelists,
+ svn_boolean_t metadata_only,
+ svn_boolean_t added_keep_local,
+ svn_cancel_func_t cancel_func,
+ void *cancel_baton,
+ svn_wc_notify_func2_t notify_func,
+ void *notify_baton,
+ apr_pool_t *scratch_pool);
+
+/** Similar to svn_wc_revert6() but with @a added_keep_local always
+ * set to TRUE.
+ *
* @since New in 1.9.
+ * @deprecated Provided for backward compatibility with the 1.10 API.
*/
+SVN_DEPRECATED
svn_error_t *
svn_wc_revert5(svn_wc_context_t *wc_ctx,
const char *local_abspath,
diff --git a/subversion/libsvn_client/client.h b/subversion/libsvn_client/client.h
index c0a7947..f217d59 100644
--- a/subversion/libsvn_client/client.h
+++ b/subversion/libsvn_client/client.h
@@ -682,34 +682,6 @@ svn_client__get_diff_editor2(const svn_delta_editor_t **editor,
/* ---------------------------------------------------------------- */
-/*** Editor for diff summary ***/
-
-/* Set *DIFF_PROCESSOR to a diff processor that will report a diff summary
- to SUMMARIZE_FUNC.
-
- P_ROOT_RELPATH will return a pointer to a string that must be set to
- the root of the operation before the processor is called.
-
- ORIGINAL_PATH specifies the original path and will be used with
- **ANCHOR_PATH to create paths as the user originally provided them
- to the diff function.
-
- SUMMARIZE_FUNC is called with SUMMARIZE_BATON as parameter by the
- created callbacks for each changed item.
-*/
-svn_error_t *
-svn_client__get_diff_summarize_callbacks(
- const svn_diff_tree_processor_t **diff_processor,
- const char ***p_root_relpath,
- svn_client_diff_summarize_func_t summarize_func,
- void *summarize_baton,
- const char *original_target,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool);
-
-/* ---------------------------------------------------------------- */
-
-
/*** Copy Stuff ***/
/* This structure is used to associate a specific copy or move SRC with a
@@ -754,40 +726,23 @@ typedef struct svn_client__copy_pair_t
/*** Commit Stuff ***/
-/* WARNING: This is all new, untested, un-peer-reviewed conceptual
- stuff.
+/* The "Harvest Committables" System
- The day that 'svn switch' came into existence, our old commit
- crawler (svn_wc_crawl_local_mods) became obsolete. It relied far
- too heavily on the on-disk hierarchy of files and directories, and
- simply had no way to support disjoint working copy trees or nest
- working copies. The primary reason for this is that commit
- process, in order to guarantee atomicity, is a single drive of a
+ The commit process requires, per repository, a single drive of a
commit editor which is based not on working copy paths, but on
- URLs. With the completion of 'svn switch', it became all too
- likely that the on-disk working copy hierarchy would no longer be
- guaranteed to map to a similar in-repository hierarchy.
-
- Aside from this new brokenness of the old system, an unrelated
- feature request had cropped up -- the ability to know in advance of
- your commit, exactly what would be committed (so that log messages
- could be initially populated with this information). Since the old
- crawler discovered commit candidates while in the process of
- committing, it was impossible to harvest this information upfront.
- As a workaround, svn_wc_statuses() was used to stat the whole
- working copy for changes before the commit started...and then the
- commit would again stat the whole tree for changes.
-
- Enter the new system.
+ URLs. The on-disk working copy hierarchy does not, in general,
+ map to a similar in-repository hierarchy, due to switched subtrees
+ and disjoint working copies.
+
+ Also we wish to know exactly what would be committed, in advance of
+ the commit, so that a log message editor can be initially populated
+ with this information.
The primary goal of this system is very straightforward: harvest
all commit candidate information up front, and cache enough info in
the process to use this to drive a URL-sorted commit.
- *** END-OF-KNOWLEDGE ***
-
- The prototypes below are still in development. In general, the
- idea is that commit-y processes ('svn mkdir URL', 'svn delete URL',
+ The idea is that commit-y processes ('svn mkdir URL', 'svn delete URL',
'svn commit', 'svn copy WC_PATH URL', 'svn copy URL1 URL2', 'svn
move URL1 URL2', others?) generate the cached commit candidate
information, and hand this information off to a consumer which is
@@ -844,7 +799,7 @@ typedef svn_error_t *(*svn_client__check_url_kind_t)(void *baton,
- if the candidate has a lock token, add it to the LOCK_TOKENS hash.
- if the candidate is a directory scheduled for deletion, crawl
- the directories children recursively for any lock tokens and
+ the directory's children recursively for any lock tokens and
add them to the LOCK_TOKENS array.
At the successful return of this function, COMMITTABLES will point
@@ -1129,24 +1084,26 @@ svn_client__resolve_conflicts(svn_boolean_t *conflicts_remain,
svn_client_ctx_t *ctx,
apr_pool_t *scratch_pool);
-/* Produce a diff with depth DEPTH between two files or two directories at
- * LEFT_ABSPATH1 and RIGHT_ABSPATH, using the provided diff callbacks to
- * show changes in files. The files and directories involved may be part of
- * a working copy or they may be unversioned. For versioned files, show
- * property changes, too.
+/* Produce a diff with depth DEPTH between the file or directory at
+ * LEFT_ABSPATH and the file or directory at RIGHT_ABSPATH, reporting
+ * differences to DIFF_PROCESSOR.
*
- * If ANCHOR_ABSPATH is not null, set it to the anchor of the diff before
- * the first processor call. (The anchor is LEFT_ABSPATH or an ancestor of it)
+ * The files and directories involved may be part of a working copy or
+ * they may be unversioned. For versioned files, show property changes,
+ * too.
+ *
+ * No copy or move information is reported to the diff processor.
+ *
+ * Anchor the DIFF_PROCESSOR at the requested diff targets (LEFT_ABSPATH,
+ * RIGHT_ABSPATH). As any children reached by recursion are matched by
+ * name, a diff processor relpath applies equally to both sides of the diff.
*/
svn_error_t *
-svn_client__arbitrary_nodes_diff(const char **root_relpath,
- svn_boolean_t *root_is_dir,
- const char *left_abspath,
+svn_client__arbitrary_nodes_diff(const char *left_abspath,
const char *right_abspath,
svn_depth_t depth,
const svn_diff_tree_processor_t *diff_processor,
svn_client_ctx_t *ctx,
- apr_pool_t *result_pool,
apr_pool_t *scratch_pool);
diff --git a/subversion/libsvn_client/conflicts.c b/subversion/libsvn_client/conflicts.c
index f571f3c..9b94db5 100644
--- a/subversion/libsvn_client/conflicts.c
+++ b/subversion/libsvn_client/conflicts.c
@@ -255,7 +255,7 @@ struct repos_move_info {
/* The revision in which this move was committed. */
svn_revnum_t rev;
- /* The author who commited the revision in which this move was committed. */
+ /* The author who committed the revision in which this move was committed. */
const char *rev_author;
/* The repository relpath the node was moved from in this revision. */
@@ -806,18 +806,20 @@ map_deleted_path_to_move(const char *deleted_relpath,
if (closest_move)
{
const char *relpath;
- const char *moved_along_path;
- struct repos_move_info *move;
/* See if we can find an even closer move for this moved-along path. */
relpath = svn_relpath_skip_ancestor(closest_move->moved_to_repos_relpath,
deleted_relpath);
- moved_along_path =
- svn_relpath_join(closest_move->moved_from_repos_relpath, relpath,
- scratch_pool);
- move = map_deleted_path_to_move(moved_along_path, moves, scratch_pool);
- if (move)
- return move;
+ if (relpath && relpath[0] != '\0')
+ {
+ struct repos_move_info *move;
+ const char *moved_along_path =
+ svn_relpath_join(closest_move->moved_from_repos_relpath, relpath,
+ scratch_pool);
+ move = map_deleted_path_to_move(moved_along_path, moves, scratch_pool);
+ if (move)
+ return move;
+ }
}
return closest_move;
@@ -1059,6 +1061,9 @@ find_deleted_rev(void *baton,
{
apr_array_header_t *moves;
+ if (b->moves_table == NULL)
+ return SVN_NO_ERROR;
+
moves = apr_hash_get(b->moves_table, &log_entry->revision,
sizeof(svn_revnum_t));
if (moves)
@@ -2097,33 +2102,6 @@ trace_moved_node_backwards(apr_hash_t *moves_table,
return SVN_NO_ERROR;
}
-static svn_error_t *
-reparent_session_and_fetch_node_kind(svn_node_kind_t *node_kind,
- svn_ra_session_t *ra_session,
- const char *url,
- svn_revnum_t peg_rev,
- apr_pool_t *scratch_pool)
-{
- svn_error_t *err;
-
- err = svn_ra_reparent(ra_session, url, scratch_pool);
- if (err)
- {
- if (err->apr_err == SVN_ERR_RA_ILLEGAL_URL)
- {
- svn_error_clear(err);
- *node_kind = svn_node_unknown;
- return SVN_NO_ERROR;
- }
-
- return svn_error_trace(err);
- }
-
- SVN_ERR(svn_ra_check_path(ra_session, "", peg_rev, node_kind, scratch_pool));
-
- return SVN_NO_ERROR;
-}
-
/* Scan MOVES_TABLE for moves which affect a particular deleted node, and
* build a set of new move information for this node.
* Return heads of all possible move chains in *MOVES.
@@ -2170,22 +2148,29 @@ find_operative_moves(apr_array_header_t **moves,
svn_pool_clear(iterpool);
move = APR_ARRAY_IDX(moves_in_deleted_rev, i, struct repos_move_info *);
- relpath = svn_relpath_skip_ancestor(move->moved_from_repos_relpath,
+ if (strcmp(move->moved_from_repos_relpath, deleted_repos_relpath) == 0)
+ {
+ APR_ARRAY_PUSH(*moves, struct repos_move_info *) = move;
+ continue;
+ }
+
+ /* Test for an operative nested move. */
+ relpath = svn_relpath_skip_ancestor(move->moved_to_repos_relpath,
deleted_repos_relpath);
if (relpath && relpath[0] != '\0')
{
- svn_node_kind_t node_kind;
-
- url = svn_path_url_add_component2(repos_root_url,
- deleted_repos_relpath,
- iterpool);
- SVN_ERR(reparent_session_and_fetch_node_kind(&node_kind,
- ra_session, url,
- rev_below(deleted_rev),
- iterpool));
- move = new_path_adjusted_move(move, relpath, node_kind, result_pool);
+ struct repos_move_info *nested_move;
+ const char *actual_deleted_repos_relpath;
+
+ actual_deleted_repos_relpath =
+ svn_relpath_join(move->moved_from_repos_relpath, relpath,
+ iterpool);
+ nested_move = map_deleted_path_to_move(actual_deleted_repos_relpath,
+ moves_in_deleted_rev,
+ iterpool);
+ if (nested_move)
+ APR_ARRAY_PUSH(*moves, struct repos_move_info *) = nested_move;
}
- APR_ARRAY_PUSH(*moves, struct repos_move_info *) = move;
}
if (url != NULL)
@@ -2223,8 +2208,8 @@ find_operative_moves(apr_array_header_t **moves,
* If the node was replaced rather than deleted, set *REPLACING_NODE_KIND to
* the node kind of the replacing node. Else, set it to svn_node_unknown.
* Only request the log for revisions up to END_REV from the server.
- * If the deleted node was moved, provide heads of move chains in *MOVES.
- * If the node was not moved,set *MOVES to NULL.
+ * If MOVES it not NULL, and the deleted node was moved, provide heads of
+ * move chains in *MOVES, or, if the node was not moved, set *MOVES to NULL.
*/
static svn_error_t *
find_revision_for_suspected_deletion(svn_revnum_t *deleted_rev,
@@ -2261,10 +2246,11 @@ find_revision_for_suspected_deletion(svn_revnum_t *deleted_rev,
scratch_pool));
victim_abspath = svn_client_conflict_get_local_abspath(conflict);
- SVN_ERR(find_moves_in_revision_range(&moves_table, parent_repos_relpath,
- repos_root_url, repos_uuid,
- victim_abspath, start_rev, end_rev,
- ctx, result_pool, scratch_pool));
+ if (moves)
+ SVN_ERR(find_moves_in_revision_range(&moves_table, parent_repos_relpath,
+ repos_root_url, repos_uuid,
+ victim_abspath, start_rev, end_rev,
+ ctx, result_pool, scratch_pool));
url = svn_path_url_add_component2(repos_root_url, parent_repos_relpath,
scratch_pool);
@@ -2289,7 +2275,8 @@ find_revision_for_suspected_deletion(svn_revnum_t *deleted_rev,
b.repos_root_url = repos_root_url;
b.repos_uuid = repos_uuid;
b.ctx = ctx;
- b.moves_table = moves_table;
+ if (moves)
+ b.moves_table = moves_table;
b.result_pool = result_pool;
SVN_ERR(svn_ra__dup_session(&b.extra_ra_session, ra_session, NULL,
scratch_pool, scratch_pool));
@@ -2319,7 +2306,7 @@ find_revision_for_suspected_deletion(svn_revnum_t *deleted_rev,
{
struct repos_move_info *move = b.move;
- if (move)
+ if (moves && move)
{
*deleted_rev = move->rev;
*deleted_rev_author = move->rev_author;
@@ -2337,7 +2324,8 @@ find_revision_for_suspected_deletion(svn_revnum_t *deleted_rev,
*deleted_rev = SVN_INVALID_REVNUM;
*deleted_rev_author = NULL;
*replacing_node_kind = svn_node_unknown;
- *moves = NULL;
+ if (moves)
+ *moves = NULL;
}
return SVN_NO_ERROR;
}
@@ -2346,10 +2334,11 @@ find_revision_for_suspected_deletion(svn_revnum_t *deleted_rev,
*deleted_rev = b.deleted_rev;
*deleted_rev_author = b.deleted_rev_author;
*replacing_node_kind = b.replacing_node_kind;
- SVN_ERR(find_operative_moves(moves, moves_table,
- b.deleted_repos_relpath, b.deleted_rev,
- ra_session, repos_root_url,
- result_pool, scratch_pool));
+ if (moves)
+ SVN_ERR(find_operative_moves(moves, moves_table,
+ b.deleted_repos_relpath, b.deleted_rev,
+ ra_session, repos_root_url,
+ result_pool, scratch_pool));
}
return SVN_NO_ERROR;
@@ -2361,6 +2350,8 @@ struct conflict_tree_local_missing_details
/* If not SVN_INVALID_REVNUM, the node was deleted in DELETED_REV. */
svn_revnum_t deleted_rev;
+ /* ### Add 'added_rev', like in conflict_tree_incoming_delete_details? */
+
/* Author who committed DELETED_REV. */
const char *deleted_rev_author;
@@ -2368,21 +2359,49 @@ struct conflict_tree_local_missing_details
const char *deleted_repos_relpath;
/* Move information about the conflict victim. If not NULL, this is an
- * array of repos_move_info elements. Each element is the head of a
- * move chain which starts in DELETED_REV. */
+ * array of 'struct repos_move_info *' elements. Each element is the
+ * head of a move chain which starts in DELETED_REV. */
apr_array_header_t *moves;
+ /* If moves is not NULL, a map of repos_relpaths and working copy nodes.
+ *
+ * Each key is a "const char *" repository relpath corresponding to a
+ * possible repository-side move destination node in the revision which
+ * is the merge-right revision in case of a merge.
+ *
+ * Each value is an apr_array_header_t *.
+ * Each array consists of "const char *" absolute paths to working copy
+ * nodes which correspond to the repository node selected by the map key.
+ * Each such working copy node is a potential local move target which can
+ * be chosen to find a suitable merge target when resolving a tree conflict.
+ *
+ * This may be an empty hash map in case if there is no move target path
+ * in the working copy. */
+ apr_hash_t *wc_move_targets;
+
+ /* If not NULL, the preferred move target repository relpath. This is our key
+ * into the WC_MOVE_TARGETS map above (can be overridden by the user). */
+ const char *move_target_repos_relpath;
+
+ /* The current index into the list of working copy nodes corresponding to
+ * MOVE_TARGET_REPOS_REPLATH (can be overridden by the user). */
+ int wc_move_target_idx;
+
/* Move information about siblings. Siblings are nodes which share
* a youngest common ancestor with the conflict victim. E.g. in case
* of a merge operation they are part of the merge source branch.
- * If not NULL, this is an array of repos_move_info elements.
+ * If not NULL, this is an array of 'struct repos_move_info *' elements.
* Each element is the head of a move chain, which starts at some
* point in history after siblings and conflict victim forked off
* their common ancestor. */
apr_array_header_t *sibling_moves;
- /* If not NULL, this is the move target abspath. */
- const char *moved_to_abspath;
+ /* List of nodes in the WC which are suitable merge targets for changes
+ * merged from any moved sibling. Array elements are 'const char *'
+ * absolute paths of working copy nodes. This array contains multiple
+ * elements only if ambiguous matches were found in the WC. */
+ apr_array_header_t *wc_siblings;
+ int preferred_sibling_idx;
};
static svn_error_t *
@@ -2601,6 +2620,171 @@ find_moves_in_natural_history(apr_array_header_t **moves,
return SVN_NO_ERROR;
}
+static svn_error_t *
+collect_sibling_move_candidates(apr_array_header_t *candidates,
+ const char *victim_abspath,
+ svn_node_kind_t victim_kind,
+ struct repos_move_info *move,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ const char *basename;
+ apr_array_header_t *abspaths;
+ int i;
+
+ basename = svn_relpath_basename(move->moved_from_repos_relpath, scratch_pool);
+ SVN_ERR(svn_wc__find_working_nodes_with_basename(&abspaths, victim_abspath,
+ basename, victim_kind,
+ ctx->wc_ctx, result_pool,
+ scratch_pool));
+ apr_array_cat(candidates, abspaths);
+
+ if (move->next)
+ {
+ apr_pool_t *iterpool = svn_pool_create(scratch_pool);
+ for (i = 0; i < move->next->nelts; i++)
+ {
+ struct repos_move_info *next_move;
+ next_move = APR_ARRAY_IDX(move->next, i, struct repos_move_info *);
+ SVN_ERR(collect_sibling_move_candidates(candidates, victim_abspath,
+ victim_kind, next_move, ctx,
+ result_pool, iterpool));
+ svn_pool_clear(iterpool);
+ }
+ svn_pool_destroy(iterpool);
+ }
+
+ return SVN_NO_ERROR;
+}
+
+/* Follow each move chain starting a MOVE all the way to the end to find
+ * the possible working copy locations for VICTIM_ABSPATH which corresponds
+ * to VICTIM_REPOS_REPLATH@VICTIM_REVISION.
+ * Add each such location to the WC_MOVE_TARGETS hash table, keyed on the
+ * repos_relpath which is the corresponding move destination in the repository.
+ * This function is recursive. */
+static svn_error_t *
+follow_move_chains(apr_hash_t *wc_move_targets,
+ struct repos_move_info *move,
+ svn_client_ctx_t *ctx,
+ const char *victim_abspath,
+ svn_node_kind_t victim_node_kind,
+ const char *victim_repos_relpath,
+ svn_revnum_t victim_revision,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ /* If this is the end of a move chain, look for matching paths in
+ * the working copy and add them to our collection if found. */
+ if (move->next == NULL)
+ {
+ apr_array_header_t *candidate_abspaths;
+
+ /* Gather candidate nodes which represent this moved_to_repos_relpath. */
+ SVN_ERR(svn_wc__guess_incoming_move_target_nodes(
+ &candidate_abspaths, ctx->wc_ctx,
+ victim_abspath, victim_node_kind,
+ move->moved_to_repos_relpath,
+ scratch_pool, scratch_pool));
+ if (candidate_abspaths->nelts > 0)
+ {
+ apr_array_header_t *moved_to_abspaths;
+ int i;
+ apr_pool_t *iterpool = svn_pool_create(scratch_pool);
+
+ moved_to_abspaths = apr_array_make(result_pool, 1,
+ sizeof (const char *));
+
+ for (i = 0; i < candidate_abspaths->nelts; i++)
+ {
+ const char *candidate_abspath;
+ const char *repos_root_url;
+ const char *repos_uuid;
+ const char *candidate_repos_relpath;
+ svn_revnum_t candidate_revision;
+
+ svn_pool_clear(iterpool);
+
+ candidate_abspath = APR_ARRAY_IDX(candidate_abspaths, i,
+ const char *);
+ SVN_ERR(svn_wc__node_get_origin(NULL, &candidate_revision,
+ &candidate_repos_relpath,
+ &repos_root_url,
+ &repos_uuid,
+ NULL, NULL,
+ ctx->wc_ctx,
+ candidate_abspath,
+ FALSE,
+ iterpool, iterpool));
+
+ if (candidate_revision == SVN_INVALID_REVNUM)
+ continue;
+
+ /* If the conflict victim and the move target candidate
+ * are not from the same revision we must ensure that
+ * they are related. */
+ if (candidate_revision != victim_revision)
+ {
+ svn_client__pathrev_t *yca_loc;
+ svn_error_t *err;
+
+ err = find_yca(&yca_loc, victim_repos_relpath,
+ victim_revision,
+ candidate_repos_relpath,
+ candidate_revision,
+ repos_root_url, repos_uuid,
+ NULL, ctx, iterpool, iterpool);
+ if (err)
+ {
+ if (err->apr_err == SVN_ERR_FS_NOT_FOUND)
+ {
+ svn_error_clear(err);
+ yca_loc = NULL;
+ }
+ else
+ return svn_error_trace(err);
+ }
+
+ if (yca_loc == NULL)
+ continue;
+ }
+
+ APR_ARRAY_PUSH(moved_to_abspaths, const char *) =
+ apr_pstrdup(result_pool, candidate_abspath);
+ }
+ svn_pool_destroy(iterpool);
+
+ svn_hash_sets(wc_move_targets, move->moved_to_repos_relpath,
+ moved_to_abspaths);
+ }
+ }
+ else
+ {
+ int i;
+ apr_pool_t *iterpool;
+
+ /* Recurse into each of the possible move chains. */
+ iterpool = svn_pool_create(scratch_pool);
+ for (i = 0; i < move->next->nelts; i++)
+ {
+ struct repos_move_info *next_move;
+
+ svn_pool_clear(iterpool);
+
+ next_move = APR_ARRAY_IDX(move->next, i, struct repos_move_info *);
+ SVN_ERR(follow_move_chains(wc_move_targets, next_move,
+ ctx, victim_abspath, victim_node_kind,
+ victim_repos_relpath, victim_revision,
+ result_pool, iterpool));
+
+ }
+ svn_pool_destroy(iterpool);
+ }
+
+ return SVN_NO_ERROR;
+}
+
/* Implements tree_conflict_get_details_func_t. */
static svn_error_t *
conflict_tree_get_details_local_missing(svn_client_conflict_t *conflict,
@@ -2614,12 +2798,15 @@ conflict_tree_get_details_local_missing(svn_client_conflict_t *conflict,
svn_revnum_t old_rev;
svn_revnum_t new_rev;
svn_revnum_t deleted_rev;
+ svn_node_kind_t old_kind;
+ svn_node_kind_t new_kind;
const char *deleted_rev_author;
svn_node_kind_t replacing_node_kind;
const char *deleted_basename;
struct conflict_tree_local_missing_details *details;
apr_array_header_t *moves = NULL;
apr_array_header_t *sibling_moves = NULL;
+ apr_array_header_t *wc_siblings = NULL;
const char *related_repos_relpath;
svn_revnum_t related_peg_rev;
const char *repos_root_url;
@@ -2630,10 +2817,10 @@ conflict_tree_get_details_local_missing(svn_client_conflict_t *conflict,
svn_revnum_t end_rev;
SVN_ERR(svn_client_conflict_get_incoming_old_repos_location(
- &old_repos_relpath, &old_rev, NULL, conflict,
+ &old_repos_relpath, &old_rev, &old_kind, conflict,
scratch_pool, scratch_pool));
SVN_ERR(svn_client_conflict_get_incoming_new_repos_location(
- &new_repos_relpath, &new_rev, NULL, conflict,
+ &new_repos_relpath, &new_rev, &new_kind, conflict,
scratch_pool, scratch_pool));
/* Scan the conflict victim's parent's log to find a revision which
@@ -2649,6 +2836,11 @@ conflict_tree_get_details_local_missing(svn_client_conflict_t *conflict,
scratch_pool,
scratch_pool));
+ /* If the parent is not part of the repository-side tree checked out
+ * into this working copy, then bail. We do not support this case yet. */
+ if (parent_peg_rev == SVN_INVALID_REVNUM)
+ return SVN_NO_ERROR;
+
/* Pick the younger incoming node as our 'related node' which helps
* pin-pointing the deleted conflict victim in history. */
related_repos_relpath =
@@ -2693,7 +2885,8 @@ conflict_tree_get_details_local_missing(svn_client_conflict_t *conflict,
end_rev = 0; /* ### We might walk through all of history... */
SVN_ERR(find_revision_for_suspected_deletion(
- &deleted_rev, &deleted_rev_author, &replacing_node_kind, &moves,
+ &deleted_rev, &deleted_rev_author, &replacing_node_kind,
+ yca_loc ? &moves : NULL,
conflict, deleted_basename, parent_repos_relpath,
parent_peg_rev, end_rev, related_repos_relpath, related_peg_rev,
ctx, conflict->pool, scratch_pool));
@@ -2703,6 +2896,9 @@ conflict_tree_get_details_local_missing(svn_client_conflict_t *conflict,
{
const char *victim_abspath;
svn_node_kind_t related_node_kind;
+ apr_array_header_t *candidates;
+ int i;
+ apr_pool_t *iterpool;
/* ### The following describes all moves in terms of forward-merges,
* should do we something else for reverse-merges? */
@@ -2736,7 +2932,81 @@ conflict_tree_get_details_local_missing(svn_client_conflict_t *conflict,
if (sibling_moves == NULL)
return SVN_NO_ERROR;
- /* ## TODO: Find the missing node in the WC. */
+ /* Find the missing node in the WC. In theory, this requires tracing
+ * back history of every node in the WC to check for a YCA with the
+ * conflict victim. This operation would obviously be quite expensive.
+ *
+ * However, assuming that the victim was not moved in the merge target,
+ * we can take a short-cut: The basename of the node cannot have changed,
+ * so we can limit history tracing to nodes with a matching basename.
+ *
+ * This approach solves the conflict case where an edit to a file which
+ * was moved on one branch is cherry-picked to another branch where the
+ * corresponding file has not been moved (yet). It does not solve move
+ * vs. move conflicts, but such conflicts are not yet supported by the
+ * resolver anyway and are hard to solve without server-side support. */
+ iterpool = svn_pool_create(scratch_pool);
+ for (i = 0; i < sibling_moves->nelts; i++)
+ {
+ struct repos_move_info *move;
+ int j;
+
+ svn_pool_clear(iterpool);
+
+ move = APR_ARRAY_IDX(sibling_moves, i, struct repos_move_info *);
+ candidates = apr_array_make(iterpool, 1, sizeof(const char *));
+ SVN_ERR(collect_sibling_move_candidates(candidates, victim_abspath,
+ old_rev < new_rev
+ ? new_kind : old_kind,
+ move, ctx, iterpool,
+ iterpool));
+
+ /* Determine whether a candidate node shares a YCA with the victim. */
+ for (j = 0; j < candidates->nelts; j++)
+ {
+ const char *candidate_abspath;
+ const char *candidate_repos_relpath;
+ svn_revnum_t candidate_revision;
+ svn_error_t *err;
+
+ candidate_abspath = APR_ARRAY_IDX(candidates, j, const char *);
+ SVN_ERR(svn_wc__node_get_origin(NULL, &candidate_revision,
+ &candidate_repos_relpath,
+ NULL, NULL, NULL, NULL,
+ ctx->wc_ctx,
+ candidate_abspath,
+ FALSE,
+ iterpool, iterpool));
+ err = find_yca(&yca_loc,
+ old_rev < new_rev
+ ? new_repos_relpath : old_repos_relpath,
+ old_rev < new_rev ? new_rev : old_rev,
+ candidate_repos_relpath,
+ candidate_revision,
+ repos_root_url, repos_uuid,
+ NULL, ctx, iterpool, iterpool);
+ if (err)
+ {
+ if (err->apr_err == SVN_ERR_FS_NOT_FOUND)
+ {
+ svn_error_clear(err);
+ yca_loc = NULL;
+ }
+ else
+ return svn_error_trace(err);
+ }
+
+ if (yca_loc)
+ {
+ if (wc_siblings == NULL)
+ wc_siblings = apr_array_make(conflict->pool, 1,
+ sizeof(const char *));
+ APR_ARRAY_PUSH(wc_siblings, const char *) =
+ apr_pstrdup(conflict->pool, candidate_abspath);
+ }
+ }
+ }
+ svn_pool_destroy(iterpool);
}
details = apr_pcalloc(conflict->pool, sizeof(*details));
@@ -2747,8 +3017,83 @@ conflict_tree_get_details_local_missing(svn_client_conflict_t *conflict,
deleted_basename,
conflict->pool);
details->moves = moves;
- details->sibling_moves = sibling_moves;
+ if (details->moves != NULL)
+ {
+ apr_pool_t *iterpool;
+ int i;
+
+ details->wc_move_targets = apr_hash_make(conflict->pool);
+ iterpool = svn_pool_create(scratch_pool);
+ for (i = 0; i < details->moves->nelts; i++)
+ {
+ struct repos_move_info *move;
+
+ svn_pool_clear(iterpool);
+ move = APR_ARRAY_IDX(details->moves, i, struct repos_move_info *);
+ SVN_ERR(follow_move_chains(details->wc_move_targets, move, ctx,
+ conflict->local_abspath,
+ new_kind,
+ new_repos_relpath,
+ new_rev,
+ scratch_pool, iterpool));
+ }
+ svn_pool_destroy(iterpool);
+
+ if (apr_hash_count(details->wc_move_targets) > 0)
+ {
+ apr_array_header_t *move_target_repos_relpaths;
+ const svn_sort__item_t *item;
+
+ /* Initialize to the first possible move target. Hopefully,
+ * in most cases there will only be one candidate anyway. */
+ move_target_repos_relpaths = svn_sort__hash(
+ details->wc_move_targets,
+ svn_sort_compare_items_as_paths,
+ scratch_pool);
+ item = &APR_ARRAY_IDX(move_target_repos_relpaths,
+ 0, svn_sort__item_t);
+ details->move_target_repos_relpath = item->key;
+ details->wc_move_target_idx = 0;
+ }
+ else
+ {
+ details->move_target_repos_relpath = NULL;
+ details->wc_move_target_idx = 0;
+ }
+ }
+ details->sibling_moves = sibling_moves;
+ details->wc_siblings = wc_siblings;
+ if (details->wc_move_targets && apr_hash_count(details->wc_move_targets) == 1)
+ {
+ apr_array_header_t *wc_abspaths;
+
+ wc_abspaths = svn_hash_gets(details->wc_move_targets,
+ details->move_target_repos_relpath);
+ if (wc_abspaths->nelts == 1)
+ {
+ svn_node_kind_t kind = old_rev < new_rev ? new_kind : old_kind;
+
+ if (kind == svn_node_file)
+ conflict->recommended_option_id =
+ svn_client_conflict_option_local_move_file_text_merge;
+ else if (kind == svn_node_dir)
+ conflict->recommended_option_id =
+ svn_client_conflict_option_local_move_dir_merge;
+ }
+ }
+ else if (details->wc_siblings && details->wc_siblings->nelts == 1)
+ {
+ svn_node_kind_t kind = old_rev < new_rev ? new_kind : old_kind;
+
+ if (kind == svn_node_file)
+ conflict->recommended_option_id =
+ svn_client_conflict_option_sibling_move_file_text_merge;
+ else if (kind == svn_node_dir)
+ conflict->recommended_option_id =
+ svn_client_conflict_option_sibling_move_dir_merge;
+ }
+
conflict->tree_conflict_local_details = details;
return SVN_NO_ERROR;
@@ -4657,133 +5002,6 @@ get_incoming_delete_details_for_reverse_addition(
return SVN_NO_ERROR;
}
-/* Follow each move chain starting a MOVE all the way to the end to find
- * the possible working copy locations for VICTIM_ABSPATH which corresponds
- * to VICTIM_REPOS_REPLATH@VICTIM_REVISION.
- * Add each such location to the WC_MOVE_TARGETS hash table, keyed on the
- * repos_relpath which is the corresponding move destination in the repository.
- * This function is recursive. */
-static svn_error_t *
-follow_move_chains(apr_hash_t *wc_move_targets,
- struct repos_move_info *move,
- svn_client_ctx_t *ctx,
- const char *victim_abspath,
- svn_node_kind_t victim_node_kind,
- const char *victim_repos_relpath,
- svn_revnum_t victim_revision,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool)
-{
- /* If this is the end of a move chain, look for matching paths in
- * the working copy and add them to our collection if found. */
- if (move->next == NULL)
- {
- apr_array_header_t *candidate_abspaths;
-
- /* Gather candidate nodes which represent this moved_to_repos_relpath. */
- SVN_ERR(svn_wc__guess_incoming_move_target_nodes(
- &candidate_abspaths, ctx->wc_ctx,
- victim_abspath, victim_node_kind,
- move->moved_to_repos_relpath,
- scratch_pool, scratch_pool));
- if (candidate_abspaths->nelts > 0)
- {
- apr_array_header_t *moved_to_abspaths;
- int i;
- apr_pool_t *iterpool = svn_pool_create(scratch_pool);
-
- moved_to_abspaths = apr_array_make(result_pool, 1,
- sizeof (const char *));
-
- for (i = 0; i < candidate_abspaths->nelts; i++)
- {
- const char *candidate_abspath;
- const char *repos_root_url;
- const char *repos_uuid;
- const char *candidate_repos_relpath;
- svn_revnum_t candidate_revision;
-
- svn_pool_clear(iterpool);
-
- candidate_abspath = APR_ARRAY_IDX(candidate_abspaths, i,
- const char *);
- SVN_ERR(svn_wc__node_get_origin(NULL, &candidate_revision,
- &candidate_repos_relpath,
- &repos_root_url,
- &repos_uuid,
- NULL, NULL,
- ctx->wc_ctx,
- candidate_abspath,
- FALSE,
- iterpool, iterpool));
-
- if (candidate_revision == SVN_INVALID_REVNUM)
- continue;
-
- /* If the conflict victim and the move target candidate
- * are not from the same revision we must ensure that
- * they are related. */
- if (candidate_revision != victim_revision)
- {
- svn_client__pathrev_t *yca_loc;
- svn_error_t *err;
-
- err = find_yca(&yca_loc, victim_repos_relpath,
- victim_revision,
- candidate_repos_relpath,
- candidate_revision,
- repos_root_url, repos_uuid,
- NULL, ctx, iterpool, iterpool);
- if (err)
- {
- if (err->apr_err == SVN_ERR_FS_NOT_FOUND)
- {
- svn_error_clear(err);
- yca_loc = NULL;
- }
- else
- return svn_error_trace(err);
- }
-
- if (yca_loc == NULL)
- continue;
- }
-
- APR_ARRAY_PUSH(moved_to_abspaths, const char *) =
- apr_pstrdup(result_pool, candidate_abspath);
- }
- svn_pool_destroy(iterpool);
-
- svn_hash_sets(wc_move_targets, move->moved_to_repos_relpath,
- moved_to_abspaths);
- }
- }
- else
- {
- int i;
- apr_pool_t *iterpool;
-
- /* Recurse into each of the possible move chains. */
- iterpool = svn_pool_create(scratch_pool);
- for (i = 0; i < move->next->nelts; i++)
- {
- struct repos_move_info *next_move;
-
- svn_pool_clear(iterpool);
-
- next_move = APR_ARRAY_IDX(move->next, i, struct repos_move_info *);
- SVN_ERR(follow_move_chains(wc_move_targets, next_move,
- ctx, victim_abspath, victim_node_kind,
- victim_repos_relpath, victim_revision,
- result_pool, iterpool));
-
- }
- svn_pool_destroy(iterpool);
- }
-
- return SVN_NO_ERROR;
-}
-
static svn_error_t *
init_wc_move_targets(struct conflict_tree_incoming_delete_details *details,
svn_client_conflict_t *conflict,
@@ -4795,11 +5013,9 @@ init_wc_move_targets(struct conflict_tree_incoming_delete_details *details,
svn_node_kind_t victim_node_kind;
const char *incoming_new_repos_relpath;
svn_revnum_t incoming_new_pegrev;
- svn_wc_operation_t operation;
victim_abspath = svn_client_conflict_get_local_abspath(conflict);
victim_node_kind = svn_client_conflict_tree_get_victim_node_kind(conflict);
- operation = svn_client_conflict_get_operation(conflict);
/* ### Should we get the old location in case of reverse-merges? */
SVN_ERR(svn_client_conflict_get_incoming_new_repos_location(
&incoming_new_repos_relpath, &incoming_new_pegrev,
@@ -4825,11 +5041,8 @@ init_wc_move_targets(struct conflict_tree_incoming_delete_details *details,
get_moved_to_repos_relpath(details, scratch_pool);
details->wc_move_target_idx = 0;
- /* If only one move target exists after an update or switch,
- * recommend a resolution option which follows the incoming move. */
- if (apr_hash_count(details->wc_move_targets) == 1 &&
- (operation == svn_wc_operation_update ||
- operation == svn_wc_operation_switch))
+ /* If only one move target exists recommend a resolution option. */
+ if (apr_hash_count(details->wc_move_targets) == 1)
{
apr_array_header_t *wc_abspaths;
@@ -4842,7 +5055,10 @@ init_wc_move_targets(struct conflict_tree_incoming_delete_details *details,
/* Only one of these will be present for any given conflict. */
svn_client_conflict_option_incoming_move_file_text_merge,
svn_client_conflict_option_incoming_move_dir_merge,
- svn_client_conflict_option_local_move_file_text_merge
+ svn_client_conflict_option_local_move_file_text_merge,
+ svn_client_conflict_option_local_move_dir_merge,
+ svn_client_conflict_option_sibling_move_file_text_merge,
+ svn_client_conflict_option_sibling_move_dir_merge,
};
apr_array_header_t *options;
@@ -4899,6 +5115,7 @@ conflict_tree_get_details_incoming_delete(svn_client_conflict_t *conflict,
const char *parent_repos_relpath;
svn_revnum_t parent_peg_rev;
svn_revnum_t deleted_rev;
+ svn_revnum_t end_rev;
const char *deleted_rev_author;
svn_node_kind_t replacing_node_kind;
apr_array_header_t *moves;
@@ -4931,12 +5148,15 @@ conflict_tree_get_details_incoming_delete(svn_client_conflict_t *conflict,
related_peg_rev = SVN_INVALID_REVNUM;
}
+ end_rev = (new_kind == svn_node_none ? 0 : old_rev);
+ if (end_rev >= parent_peg_rev)
+ end_rev = (parent_peg_rev > 0 ? parent_peg_rev - 1 : 0);
+
SVN_ERR(find_revision_for_suspected_deletion(
&deleted_rev, &deleted_rev_author, &replacing_node_kind,
&moves, conflict,
svn_dirent_basename(conflict->local_abspath, scratch_pool),
- parent_repos_relpath, parent_peg_rev,
- new_kind == svn_node_none ? 0 : old_rev,
+ parent_repos_relpath, parent_peg_rev, end_rev,
related_repos_relpath, related_peg_rev,
ctx, conflict->pool, scratch_pool));
if (deleted_rev == SVN_INVALID_REVNUM)
@@ -5069,7 +5289,7 @@ conflict_tree_get_details_incoming_add(svn_client_conflict_t *conflict,
const char *repos_root_url;
svn_revnum_t old_rev;
svn_revnum_t new_rev;
- struct conflict_tree_incoming_add_details *details;
+ struct conflict_tree_incoming_add_details *details = NULL;
svn_wc_operation_t operation;
SVN_ERR(svn_client_conflict_get_incoming_old_repos_location(
@@ -5162,7 +5382,8 @@ conflict_tree_get_details_incoming_add(svn_client_conflict_t *conflict,
}
}
}
- else if (operation == svn_wc_operation_merge)
+ else if (operation == svn_wc_operation_merge &&
+ strcmp(old_repos_relpath, new_repos_relpath) == 0)
{
if (old_rev < new_rev)
{
@@ -5213,7 +5434,7 @@ conflict_tree_get_details_incoming_add(svn_client_conflict_t *conflict,
details->deleted_rev = SVN_INVALID_REVNUM;
details->deleted_rev_author = NULL;
}
- else
+ else if (old_rev > new_rev)
{
/* The merge operation was a reverse-merge.
* This addition is in fact a deletion, applied in reverse,
@@ -5253,10 +5474,6 @@ conflict_tree_get_details_incoming_add(svn_client_conflict_t *conflict,
details->moves = moves;
}
}
- else
- {
- details = NULL;
- }
conflict->tree_conflict_incoming_details = details;
@@ -5719,7 +5936,10 @@ find_modified_rev(void *baton,
if (log_item->copyfrom_path)
b->repos_relpath = apr_pstrdup(b->scratch_pool,
- log_item->copyfrom_path);
+ /* ### remove leading slash */
+ svn_relpath_canonicalize(
+ log_item->copyfrom_path,
+ iterpool));
}
else if (b->node_kind == svn_node_dir &&
svn_relpath_skip_ancestor(b->repos_relpath, path) != NULL)
@@ -5959,8 +6179,11 @@ describe_incoming_edit_list_modified_revs(apr_array_header_t *edits,
{
if (i == edits->nelts - (max_revs_to_display / 2))
s = apr_psprintf(result_pool,
- _("%s\n [%d revisions omitted for "
- "brevity],\n"),
+ Q_("%s\n [%d revision omitted for "
+ "brevity],\n",
+ "%s\n [%d revisions omitted for "
+ "brevity],\n",
+ num_revs_to_skip),
s, num_revs_to_skip);
s = apr_psprintf(result_pool, _("%s r%ld by %s%s"), s,
@@ -6719,8 +6942,9 @@ resolve_merge_incoming_added_file_text_update(
/* Revert the path in order to restore the repository's line of
* history, which is part of the BASE tree. This revert operation
* is why are being careful about not losing the temporary copy. */
- err = svn_wc_revert5(ctx->wc_ctx, local_abspath, svn_depth_empty,
+ err = svn_wc_revert6(ctx->wc_ctx, local_abspath, svn_depth_empty,
FALSE, NULL, TRUE, FALSE,
+ TRUE /*added_keep_local*/,
NULL, NULL, /* no cancellation */
ctx->notify_func2, ctx->notify_baton2,
scratch_pool);
@@ -7537,7 +7761,6 @@ merge_newly_added_dir(const char *added_repos_relpath,
diff_processor = processor;
if (reverse_merge)
diff_processor = svn_diff__tree_processor_reverse_create(diff_processor,
- NULL,
scratch_pool);
/* Filter the first path component using a filter processor, until we fixed
@@ -8004,6 +8227,112 @@ resolve_merge_incoming_added_dir_replace_and_merge(
scratch_pool));
}
+/* Ensure the conflict victim is a copy of itself from before it was deleted.
+ * Update and switch are supposed to set this up when flagging the conflict. */
+static svn_error_t *
+ensure_local_edit_vs_incoming_deletion_copied_state(
+ struct conflict_tree_incoming_delete_details *details,
+ svn_wc_operation_t operation,
+ const char *wcroot_abspath,
+ svn_client_conflict_t *conflict,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+
+ svn_boolean_t is_copy;
+ svn_revnum_t copyfrom_rev;
+ const char *copyfrom_repos_relpath;
+
+ SVN_ERR_ASSERT(operation == svn_wc_operation_update ||
+ operation == svn_wc_operation_switch);
+
+ SVN_ERR(svn_wc__node_get_origin(&is_copy, &copyfrom_rev,
+ &copyfrom_repos_relpath,
+ NULL, NULL, NULL, NULL,
+ ctx->wc_ctx, conflict->local_abspath,
+ FALSE, scratch_pool, scratch_pool));
+ if (!is_copy)
+ return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
+ _("Cannot resolve tree conflict on '%s' "
+ "(expected a copied item, but the item "
+ "is not a copy)"),
+ svn_dirent_local_style(
+ svn_dirent_skip_ancestor(
+ wcroot_abspath,
+ conflict->local_abspath),
+ scratch_pool));
+ else if (details->deleted_rev != SVN_INVALID_REVNUM &&
+ copyfrom_rev >= details->deleted_rev)
+ return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
+ _("Cannot resolve tree conflict on '%s' "
+ "(expected an item copied from a revision "
+ "smaller than r%ld, but the item was "
+ "copied from r%ld)"),
+ svn_dirent_local_style(
+ svn_dirent_skip_ancestor(
+ wcroot_abspath, conflict->local_abspath),
+ scratch_pool),
+ details->deleted_rev, copyfrom_rev);
+ else if (details->added_rev != SVN_INVALID_REVNUM &&
+ copyfrom_rev < details->added_rev)
+ return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
+ _("Cannot resolve tree conflict on '%s' "
+ "(expected an item copied from a revision "
+ "larger than r%ld, but the item was "
+ "copied from r%ld)"),
+ svn_dirent_local_style(
+ svn_dirent_skip_ancestor(
+ wcroot_abspath, conflict->local_abspath),
+ scratch_pool),
+ details->added_rev, copyfrom_rev);
+ else if (operation == svn_wc_operation_update)
+ {
+ const char *old_repos_relpath;
+
+ SVN_ERR(svn_client_conflict_get_incoming_old_repos_location(
+ &old_repos_relpath, NULL, NULL, conflict,
+ scratch_pool, scratch_pool));
+ if (strcmp(copyfrom_repos_relpath, details->repos_relpath) != 0 &&
+ strcmp(copyfrom_repos_relpath, old_repos_relpath) != 0)
+ return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
+ _("Cannot resolve tree conflict on '%s' "
+ "(expected an item copied from '^/%s' "
+ "or from '^/%s' but the item was "
+ "copied from '^/%s@%ld')"),
+ svn_dirent_local_style(
+ svn_dirent_skip_ancestor(
+ wcroot_abspath, conflict->local_abspath),
+ scratch_pool),
+ details->repos_relpath,
+ old_repos_relpath,
+ copyfrom_repos_relpath, copyfrom_rev);
+ }
+ else if (operation == svn_wc_operation_switch)
+ {
+ const char *old_repos_relpath;
+
+ SVN_ERR(svn_client_conflict_get_incoming_old_repos_location(
+ &old_repos_relpath, NULL, NULL, conflict,
+ scratch_pool, scratch_pool));
+
+ if (strcmp(copyfrom_repos_relpath, old_repos_relpath) != 0)
+ return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
+ _("Cannot resolve tree conflict on '%s' "
+ "(expected an item copied from '^/%s', "
+ "but the item was copied from "
+ "'^/%s@%ld')"),
+ svn_dirent_local_style(
+ svn_dirent_skip_ancestor(
+ wcroot_abspath,
+ conflict->local_abspath),
+ scratch_pool),
+ old_repos_relpath,
+ copyfrom_repos_relpath, copyfrom_rev);
+ }
+
+ return SVN_NO_ERROR;
+}
+
/* Verify the local working copy state matches what we expect when an
* incoming deletion tree conflict exists.
* We assume update/merge/switch operations leave the working copy in a
@@ -8014,26 +8343,25 @@ resolve_merge_incoming_added_dir_replace_and_merge(
static svn_error_t *
verify_local_state_for_incoming_delete(svn_client_conflict_t *conflict,
svn_client_conflict_option_t *option,
- svn_client_ctx_t *ctx,
+ svn_client_ctx_t *ctx,
apr_pool_t *scratch_pool)
{
const char *local_abspath;
const char *wcroot_abspath;
svn_wc_operation_t operation;
+ svn_wc_conflict_reason_t local_change;
local_abspath = svn_client_conflict_get_local_abspath(conflict);
SVN_ERR(svn_wc__get_wcroot(&wcroot_abspath, ctx->wc_ctx,
local_abspath, scratch_pool,
scratch_pool));
operation = svn_client_conflict_get_operation(conflict);
+ local_change = svn_client_conflict_get_local_change(conflict);
if (operation == svn_wc_operation_update ||
operation == svn_wc_operation_switch)
{
struct conflict_tree_incoming_delete_details *details;
- svn_boolean_t is_copy;
- svn_revnum_t copyfrom_rev;
- const char *copyfrom_repos_relpath;
details = conflict->tree_conflict_incoming_details;
if (details == NULL)
@@ -8045,26 +8373,8 @@ verify_local_state_for_incoming_delete(svn_client_conflict_t *conflict,
svn_dirent_local_style(local_abspath,
scratch_pool));
- /* Ensure that the item is a copy of itself from before it was deleted.
- * Update and switch are supposed to set this up when flagging the
- * conflict. */
- SVN_ERR(svn_wc__node_get_origin(&is_copy, &copyfrom_rev,
- &copyfrom_repos_relpath,
- NULL, NULL, NULL, NULL,
- ctx->wc_ctx, local_abspath, FALSE,
- scratch_pool, scratch_pool));
- if (!is_copy)
- return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
- _("Cannot resolve tree conflict on '%s' "
- "(expected a copied item, but the item "
- "is not a copy)"),
- svn_dirent_local_style(
- svn_dirent_skip_ancestor(
- wcroot_abspath,
- conflict->local_abspath),
- scratch_pool));
- else if (details->deleted_rev == SVN_INVALID_REVNUM &&
- details->added_rev == SVN_INVALID_REVNUM)
+ if (details->deleted_rev == SVN_INVALID_REVNUM &&
+ details->added_rev == SVN_INVALID_REVNUM)
return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
_("Could not find the revision in which '%s' "
"was deleted from the repository"),
@@ -8073,75 +8383,11 @@ verify_local_state_for_incoming_delete(svn_client_conflict_t *conflict,
wcroot_abspath,
conflict->local_abspath),
scratch_pool));
- else if (details->deleted_rev != SVN_INVALID_REVNUM &&
- copyfrom_rev >= details->deleted_rev)
- return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
- _("Cannot resolve tree conflict on '%s' "
- "(expected an item copied from a revision "
- "smaller than r%ld, but the item was "
- "copied from r%ld)"),
- svn_dirent_local_style(
- svn_dirent_skip_ancestor(
- wcroot_abspath, conflict->local_abspath),
- scratch_pool),
- details->deleted_rev, copyfrom_rev);
- else if (details->added_rev != SVN_INVALID_REVNUM &&
- copyfrom_rev < details->added_rev)
- return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
- _("Cannot resolve tree conflict on '%s' "
- "(expected an item copied from a revision "
- "larger than r%ld, but the item was "
- "copied from r%ld)"),
- svn_dirent_local_style(
- svn_dirent_skip_ancestor(
- wcroot_abspath, conflict->local_abspath),
- scratch_pool),
- details->added_rev, copyfrom_rev);
- else if (operation == svn_wc_operation_update)
- {
- const char *old_repos_relpath;
-
- SVN_ERR(svn_client_conflict_get_incoming_old_repos_location(
- &old_repos_relpath, NULL, NULL, conflict,
- scratch_pool, scratch_pool));
- if (strcmp(copyfrom_repos_relpath, details->repos_relpath) != 0 &&
- strcmp(copyfrom_repos_relpath, old_repos_relpath) != 0)
- return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
- _("Cannot resolve tree conflict on '%s' "
- "(expected an item copied from '^/%s' "
- "or from '^/%s' but the item was "
- "copied from '^/%s@%ld')"),
- svn_dirent_local_style(
- svn_dirent_skip_ancestor(
- wcroot_abspath, conflict->local_abspath),
- scratch_pool),
- details->repos_relpath,
- old_repos_relpath,
- copyfrom_repos_relpath, copyfrom_rev);
- }
- else if (operation == svn_wc_operation_switch)
- {
- const char *old_repos_relpath;
-
- SVN_ERR(svn_client_conflict_get_incoming_old_repos_location(
- &old_repos_relpath, NULL, NULL, conflict,
- scratch_pool, scratch_pool));
-
- if (strcmp(copyfrom_repos_relpath, old_repos_relpath) != 0)
- return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
- _("Cannot resolve tree conflict on '%s' "
- "(expected an item copied from '^/%s', "
- "but the item was copied from "
- "'^/%s@%ld')"),
- svn_dirent_local_style(
- svn_dirent_skip_ancestor(
- wcroot_abspath,
- conflict->local_abspath),
- scratch_pool),
- old_repos_relpath,
- copyfrom_repos_relpath, copyfrom_rev);
- }
+ if (local_change == svn_wc_conflict_reason_edited)
+ SVN_ERR(ensure_local_edit_vs_incoming_deletion_copied_state(
+ details, operation, wcroot_abspath, conflict, ctx,
+ scratch_pool));
}
else if (operation == svn_wc_operation_merge)
{
@@ -8723,8 +8969,9 @@ resolve_incoming_move_dir_merge(svn_client_conflict_option_t *option,
svn_opt_revision_t incoming_new_opt_rev;
/* Revert the incoming move target directory. */
- SVN_ERR(svn_wc_revert5(ctx->wc_ctx, moved_to_abspath, svn_depth_infinity,
+ SVN_ERR(svn_wc_revert6(ctx->wc_ctx, moved_to_abspath, svn_depth_infinity,
FALSE, NULL, TRUE, FALSE,
+ TRUE /*added_keep_local*/,
NULL, NULL, /* no cancellation */
ctx->notify_func2, ctx->notify_baton2,
scratch_pool));
@@ -8817,7 +9064,9 @@ unlock_wc:
return SVN_NO_ERROR;
}
-/* Implements conflict_option_resolve_func_t. */
+/* Implements conflict_option_resolve_func_t.
+ * Handles svn_client_conflict_option_local_move_file_text_merge
+ * and svn_client_conflict_option_sibling_move_file_text_merge. */
static svn_error_t *
resolve_local_move_file_merge(svn_client_conflict_option_t *option,
svn_client_conflict_t *conflict,
@@ -8845,6 +9094,12 @@ resolve_local_move_file_merge(svn_client_conflict_option_t *option,
svn_wc_notify_state_t merge_props_outcome;
apr_array_header_t *propdiffs;
struct conflict_tree_local_missing_details *details;
+ const char *merge_target_abspath;
+ const char *wcroot_abspath;
+
+ SVN_ERR(svn_wc__get_wcroot(&wcroot_abspath, ctx->wc_ctx,
+ conflict->local_abspath, scratch_pool,
+ scratch_pool));
details = conflict->tree_conflict_local_details;
@@ -8860,8 +9115,31 @@ resolve_local_move_file_merge(svn_client_conflict_option_t *option,
NULL, conflict, scratch_pool,
scratch_pool));
+ if (details->wc_siblings)
+ {
+ merge_target_abspath = APR_ARRAY_IDX(details->wc_siblings,
+ details->preferred_sibling_idx,
+ const char *);
+ }
+ else if (details->wc_move_targets && details->move_target_repos_relpath)
+ {
+ apr_array_header_t *moves;
+ moves = svn_hash_gets(details->wc_move_targets,
+ details->move_target_repos_relpath);
+ merge_target_abspath = APR_ARRAY_IDX(moves, details->wc_move_target_idx,
+ const char *);
+ }
+ else
+ return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
+ _("Corresponding working copy node not found "
+ "for '%s'"),
+ svn_dirent_local_style(
+ svn_dirent_skip_ancestor(
+ wcroot_abspath, conflict->local_abspath),
+ scratch_pool));
+
SVN_ERR(svn_wc__get_tmpdir(&wc_tmpdir, ctx->wc_ctx,
- details->moved_to_abspath,
+ merge_target_abspath,
scratch_pool, scratch_pool));
/* Fetch the common ancestor file's content. */
@@ -8906,7 +9184,7 @@ resolve_local_move_file_merge(svn_client_conflict_option_t *option,
SVN_ERR(svn_wc__acquire_write_lock_for_resolve(
&lock_abspath, ctx->wc_ctx,
svn_dirent_get_longest_ancestor(conflict->local_abspath,
- details->moved_to_abspath,
+ merge_target_abspath,
scratch_pool),
scratch_pool, scratch_pool));
@@ -8914,7 +9192,7 @@ resolve_local_move_file_merge(svn_client_conflict_option_t *option,
err = svn_wc_merge5(&merge_content_outcome, &merge_props_outcome,
ctx->wc_ctx,
ancestor_tmp_abspath, incoming_tmp_abspath,
- details->moved_to_abspath,
+ merge_target_abspath,
NULL, NULL, NULL, /* labels */
NULL, NULL, /* conflict versions */
FALSE, /* dry run */
@@ -8924,7 +9202,7 @@ resolve_local_move_file_merge(svn_client_conflict_option_t *option,
NULL, NULL, /* conflict func/baton */
NULL, NULL, /* don't allow user to cancel here */
scratch_pool);
- svn_io_sleep_for_timestamps(details->moved_to_abspath, scratch_pool);
+ svn_io_sleep_for_timestamps(merge_target_abspath, scratch_pool);
if (err)
return svn_error_compose_create(err,
svn_wc__release_write_lock(ctx->wc_ctx,
@@ -8945,7 +9223,7 @@ resolve_local_move_file_merge(svn_client_conflict_option_t *option,
svn_wc_notify_t *notify;
/* Tell the world about the file merge that just happened. */
- notify = svn_wc_create_notify(details->moved_to_abspath,
+ notify = svn_wc_create_notify(merge_target_abspath,
svn_wc_notify_update_update,
scratch_pool);
if (merge_content_outcome == svn_wc_merge_conflict)
@@ -8968,6 +9246,127 @@ resolve_local_move_file_merge(svn_client_conflict_option_t *option,
return SVN_NO_ERROR;
}
+/* Implements conflict_option_resolve_func_t. */
+static svn_error_t *
+resolve_local_move_dir_merge(svn_client_conflict_option_t *option,
+ svn_client_conflict_t *conflict,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ const char *lock_abspath;
+ svn_error_t *err;
+ const char *repos_root_url;
+ const char *incoming_old_repos_relpath;
+ svn_revnum_t incoming_old_pegrev;
+ const char *incoming_new_repos_relpath;
+ svn_revnum_t incoming_new_pegrev;
+ struct conflict_tree_local_missing_details *details;
+ const char *merge_target_abspath;
+ const char *incoming_old_url;
+ const char *incoming_new_url;
+ svn_opt_revision_t incoming_old_opt_rev;
+ svn_opt_revision_t incoming_new_opt_rev;
+ svn_client__conflict_report_t *conflict_report;
+
+ details = conflict->tree_conflict_local_details;
+
+ SVN_ERR(svn_client_conflict_get_repos_info(&repos_root_url, NULL,
+ conflict, scratch_pool,
+ scratch_pool));
+ SVN_ERR(svn_client_conflict_get_incoming_old_repos_location(
+ &incoming_old_repos_relpath, &incoming_old_pegrev,
+ NULL, conflict, scratch_pool,
+ scratch_pool));
+ SVN_ERR(svn_client_conflict_get_incoming_new_repos_location(
+ &incoming_new_repos_relpath, &incoming_new_pegrev,
+ NULL, conflict, scratch_pool,
+ scratch_pool));
+
+ if (details->wc_move_targets)
+ {
+ apr_array_header_t *moves;
+
+ moves = svn_hash_gets(details->wc_move_targets,
+ details->move_target_repos_relpath);
+ merge_target_abspath =
+ APR_ARRAY_IDX(moves, details->wc_move_target_idx, const char *);
+ }
+ else
+ merge_target_abspath = APR_ARRAY_IDX(details->wc_siblings,
+ details->preferred_sibling_idx,
+ const char *);
+
+ /* ### The following WC modifications should be atomic. */
+ SVN_ERR(svn_wc__acquire_write_lock_for_resolve(
+ &lock_abspath, ctx->wc_ctx,
+ svn_dirent_get_longest_ancestor(conflict->local_abspath,
+ merge_target_abspath,
+ scratch_pool),
+ scratch_pool, scratch_pool));
+
+ /* Resolve to current working copy state.
+ * svn_client__merge_locked() requires this. */
+ err = svn_wc__del_tree_conflict(ctx->wc_ctx, conflict->local_abspath,
+ scratch_pool);
+ if (err)
+ goto unlock_wc;
+
+ /* Merge outstanding changes to the merge target. */
+ incoming_old_url = apr_pstrcat(scratch_pool, repos_root_url, "/",
+ incoming_old_repos_relpath, SVN_VA_NULL);
+ incoming_old_opt_rev.kind = svn_opt_revision_number;
+ incoming_old_opt_rev.value.number = incoming_old_pegrev;
+ incoming_new_url = apr_pstrcat(scratch_pool, repos_root_url, "/",
+ incoming_new_repos_relpath, SVN_VA_NULL);
+ incoming_new_opt_rev.kind = svn_opt_revision_number;
+ incoming_new_opt_rev.value.number = incoming_new_pegrev;
+ err = svn_client__merge_locked(&conflict_report,
+ incoming_old_url, &incoming_old_opt_rev,
+ incoming_new_url, &incoming_new_opt_rev,
+ merge_target_abspath, svn_depth_infinity,
+ TRUE, TRUE, /* do a no-ancestry merge */
+ FALSE, FALSE, FALSE,
+ TRUE, /* Allow mixed-rev just in case,
+ * since conflict victims can't be
+ * updated to straighten out
+ * mixed-rev trees. */
+ NULL, ctx, scratch_pool, scratch_pool);
+unlock_wc:
+ svn_io_sleep_for_timestamps(merge_target_abspath, scratch_pool);
+ err = svn_error_compose_create(err,
+ svn_wc__release_write_lock(ctx->wc_ctx,
+ lock_abspath,
+ scratch_pool));
+ if (err)
+ return svn_error_trace(err);
+
+ if (ctx->notify_func2)
+ {
+ svn_wc_notify_t *notify;
+
+ /* Tell the world about the file merge that just happened. */
+ notify = svn_wc_create_notify(merge_target_abspath,
+ svn_wc_notify_update_update,
+ scratch_pool);
+ if (conflict_report)
+ notify->content_state = svn_wc_notify_state_conflicted;
+ else
+ notify->content_state = svn_wc_notify_state_merged;
+ notify->kind = svn_node_dir;
+ ctx->notify_func2(ctx->notify_baton2, notify, scratch_pool);
+
+ /* And also about the successfully resolved tree conflict. */
+ notify = svn_wc_create_notify(conflict->local_abspath,
+ svn_wc_notify_resolved_tree,
+ scratch_pool);
+ ctx->notify_func2(ctx->notify_baton2, notify, scratch_pool);
+ }
+
+ conflict->resolution_tree = svn_client_conflict_option_get_id(option);
+
+ return SVN_NO_ERROR;
+}
+
static svn_error_t *
assert_text_conflict(svn_client_conflict_t *conflict, apr_pool_t *scratch_pool)
{
@@ -9104,13 +9503,13 @@ svn_client_conflict_text_get_resolution_options(apr_array_header_t **options,
add_resolution_option(*options, conflict,
svn_client_conflict_option_incoming_text_where_conflicted,
_("Accept incoming for conflicts"),
- _("accept changes only where they conflict"),
+ _("accept incoming changes only where they conflict"),
resolve_text_conflict);
add_resolution_option(*options, conflict,
svn_client_conflict_option_working_text_where_conflicted,
_("Reject conflicts"),
- _("reject changes which conflict and accept the rest"),
+ _("reject incoming changes which conflict and accept the rest"),
resolve_text_conflict);
add_resolution_option(*options, conflict,
@@ -9519,13 +9918,18 @@ configure_option_incoming_added_dir_merge(svn_client_conflict_t *conflict,
conflict->local_abspath, scratch_pool,
scratch_pool));
if (operation == svn_wc_operation_merge)
- description =
- apr_psprintf(scratch_pool, _("merge '^/%s@%ld' into '%s'"),
- incoming_new_repos_relpath, incoming_new_pegrev,
- svn_dirent_local_style(
- svn_dirent_skip_ancestor(wcroot_abspath,
- conflict->local_abspath),
- scratch_pool));
+ {
+ if (conflict->tree_conflict_incoming_details == NULL)
+ return SVN_NO_ERROR;
+
+ description =
+ apr_psprintf(scratch_pool, _("merge '^/%s@%ld' into '%s'"),
+ incoming_new_repos_relpath, incoming_new_pegrev,
+ svn_dirent_local_style(
+ svn_dirent_skip_ancestor(wcroot_abspath,
+ conflict->local_abspath),
+ scratch_pool));
+ }
else
description =
apr_psprintf(scratch_pool, _("merge local '%s' and '^/%s@%ld'"),
@@ -9965,23 +10369,32 @@ configure_option_incoming_dir_merge(svn_client_conflict_t *conflict,
/* Configure 'local move file merge' resolution option for
* a tree conflict. */
static svn_error_t *
-configure_option_local_move_file_merge(svn_client_conflict_t *conflict,
- svn_client_ctx_t *ctx,
- apr_array_header_t *options,
- apr_pool_t *scratch_pool)
+configure_option_local_move_file_or_dir_merge(
+ svn_client_conflict_t *conflict,
+ svn_client_ctx_t *ctx,
+ apr_array_header_t *options,
+ apr_pool_t *scratch_pool)
{
svn_wc_operation_t operation;
svn_wc_conflict_action_t incoming_change;
svn_wc_conflict_reason_t local_change;
+ const char *incoming_old_repos_relpath;
+ svn_revnum_t incoming_old_pegrev;
+ svn_node_kind_t incoming_old_kind;
const char *incoming_new_repos_relpath;
svn_revnum_t incoming_new_pegrev;
+ svn_node_kind_t incoming_new_kind;
operation = svn_client_conflict_get_operation(conflict);
incoming_change = svn_client_conflict_get_incoming_change(conflict);
local_change = svn_client_conflict_get_local_change(conflict);
+ SVN_ERR(svn_client_conflict_get_incoming_old_repos_location(
+ &incoming_old_repos_relpath, &incoming_old_pegrev,
+ &incoming_old_kind, conflict, scratch_pool,
+ scratch_pool));
SVN_ERR(svn_client_conflict_get_incoming_new_repos_location(
&incoming_new_repos_relpath, &incoming_new_pegrev,
- NULL, conflict, scratch_pool,
+ &incoming_new_kind, conflict, scratch_pool,
scratch_pool));
if (operation == svn_wc_operation_merge &&
@@ -9989,62 +10402,37 @@ configure_option_local_move_file_merge(svn_client_conflict_t *conflict,
local_change == svn_wc_conflict_reason_missing)
{
struct conflict_tree_local_missing_details *details;
+ const char *wcroot_abspath;
+
+ SVN_ERR(svn_wc__get_wcroot(&wcroot_abspath, ctx->wc_ctx,
+ conflict->local_abspath,
+ scratch_pool, scratch_pool));
details = conflict->tree_conflict_local_details;
- if (details != NULL && details->moves != NULL)
+ if (details != NULL && details->moves != NULL &&
+ details->move_target_repos_relpath != NULL)
{
- apr_hash_t *wc_move_targets = apr_hash_make(scratch_pool);
- apr_pool_t *iterpool;
- int i;
+ apr_array_header_t *moves;
+ const char *moved_to_abspath;
+ const char *description;
- iterpool = svn_pool_create(scratch_pool);
- for (i = 0; i < details->moves->nelts; i++)
- {
- struct repos_move_info *move;
+ moves = svn_hash_gets(details->wc_move_targets,
+ details->move_target_repos_relpath);
+ moved_to_abspath =
+ APR_ARRAY_IDX(moves, details->wc_move_target_idx, const char *);
- svn_pool_clear(iterpool);
- move = APR_ARRAY_IDX(details->moves, i, struct repos_move_info *);
- SVN_ERR(follow_move_chains(wc_move_targets, move, ctx,
- conflict->local_abspath,
- svn_node_file,
- incoming_new_repos_relpath,
- incoming_new_pegrev,
- scratch_pool, iterpool));
- }
- svn_pool_destroy(iterpool);
+ description =
+ apr_psprintf(
+ scratch_pool, _("apply changes to move destination '%s'"),
+ svn_dirent_local_style(
+ svn_dirent_skip_ancestor(wcroot_abspath, moved_to_abspath),
+ scratch_pool));
- if (apr_hash_count(wc_move_targets) > 0)
+ if ((incoming_old_kind == svn_node_file ||
+ incoming_old_kind == svn_node_none) &&
+ (incoming_new_kind == svn_node_file ||
+ incoming_new_kind == svn_node_none))
{
- apr_array_header_t *move_target_repos_relpaths;
- const svn_sort__item_t *item;
- apr_array_header_t *moved_to_abspaths;
- const char *description;
- const char *wcroot_abspath;
-
- /* Initialize to the first possible move target. Hopefully,
- * in most cases there will only be one candidate anyway. */
- move_target_repos_relpaths = svn_sort__hash(
- wc_move_targets,
- svn_sort_compare_items_as_paths,
- scratch_pool);
- item = &APR_ARRAY_IDX(move_target_repos_relpaths,
- 0, svn_sort__item_t);
- moved_to_abspaths = item->value;
- details->moved_to_abspath =
- apr_pstrdup(conflict->pool,
- APR_ARRAY_IDX(moved_to_abspaths, 0, const char *));
-
- SVN_ERR(svn_wc__get_wcroot(&wcroot_abspath, ctx->wc_ctx,
- conflict->local_abspath,
- scratch_pool, scratch_pool));
- description =
- apr_psprintf(
- scratch_pool, _("apply changes to move destination '%s'"),
- svn_dirent_local_style(
- svn_dirent_skip_ancestor(wcroot_abspath,
- details->moved_to_abspath),
- scratch_pool));
-
add_resolution_option(
options, conflict,
svn_client_conflict_option_local_move_file_text_merge,
@@ -10052,50 +10440,121 @@ configure_option_local_move_file_merge(svn_client_conflict_t *conflict,
description, resolve_local_move_file_merge);
}
else
- details->moved_to_abspath = NULL;
+ {
+ add_resolution_option(
+ options, conflict,
+ svn_client_conflict_option_local_move_dir_merge,
+ _("Apply to move destination"),
+ description, resolve_local_move_dir_merge);
+ }
}
}
return SVN_NO_ERROR;
}
-svn_error_t *
-svn_client_conflict_option_get_moved_to_repos_relpath_candidates(
+/* Configure 'sibling move file/dir merge' resolution option for
+ * a tree conflict. */
+static svn_error_t *
+configure_option_sibling_move_merge(svn_client_conflict_t *conflict,
+ svn_client_ctx_t *ctx,
+ apr_array_header_t *options,
+ apr_pool_t *scratch_pool)
+{
+ svn_wc_operation_t operation;
+ svn_wc_conflict_action_t incoming_change;
+ svn_wc_conflict_reason_t local_change;
+ const char *incoming_old_repos_relpath;
+ svn_revnum_t incoming_old_pegrev;
+ svn_node_kind_t incoming_old_kind;
+ const char *incoming_new_repos_relpath;
+ svn_revnum_t incoming_new_pegrev;
+ svn_node_kind_t incoming_new_kind;
+
+ operation = svn_client_conflict_get_operation(conflict);
+ incoming_change = svn_client_conflict_get_incoming_change(conflict);
+ local_change = svn_client_conflict_get_local_change(conflict);
+ SVN_ERR(svn_client_conflict_get_incoming_old_repos_location(
+ &incoming_old_repos_relpath, &incoming_old_pegrev,
+ &incoming_old_kind, conflict, scratch_pool,
+ scratch_pool));
+ SVN_ERR(svn_client_conflict_get_incoming_new_repos_location(
+ &incoming_new_repos_relpath, &incoming_new_pegrev,
+ &incoming_new_kind, conflict, scratch_pool,
+ scratch_pool));
+
+ if (operation == svn_wc_operation_merge &&
+ incoming_change == svn_wc_conflict_action_edit &&
+ local_change == svn_wc_conflict_reason_missing)
+ {
+ struct conflict_tree_local_missing_details *details;
+ const char *wcroot_abspath;
+
+ SVN_ERR(svn_wc__get_wcroot(&wcroot_abspath, ctx->wc_ctx,
+ conflict->local_abspath,
+ scratch_pool, scratch_pool));
+
+ details = conflict->tree_conflict_local_details;
+ if (details != NULL && details->wc_siblings != NULL)
+ {
+ const char *description;
+ const char *sibling;
+
+ sibling =
+ apr_pstrdup(conflict->pool,
+ APR_ARRAY_IDX(details->wc_siblings,
+ details->preferred_sibling_idx,
+ const char *));
+ description =
+ apr_psprintf(
+ scratch_pool, _("apply changes to '%s'"),
+ svn_dirent_local_style(
+ svn_dirent_skip_ancestor(wcroot_abspath, sibling),
+ scratch_pool));
+
+ if ((incoming_old_kind == svn_node_file ||
+ incoming_old_kind == svn_node_none) &&
+ (incoming_new_kind == svn_node_file ||
+ incoming_new_kind == svn_node_none))
+ {
+ add_resolution_option(
+ options, conflict,
+ svn_client_conflict_option_sibling_move_file_text_merge,
+ _("Apply to corresponding local location"),
+ description, resolve_local_move_file_merge);
+ }
+ else
+ {
+ add_resolution_option(
+ options, conflict,
+ svn_client_conflict_option_sibling_move_dir_merge,
+ _("Apply to corresponding local location"),
+ description, resolve_local_move_dir_merge);
+ }
+ }
+ }
+
+ return SVN_NO_ERROR;
+}
+
+/* Return a copy of the repos replath candidate list. */
+static svn_error_t *
+get_repos_relpath_candidates(
apr_array_header_t **possible_moved_to_repos_relpaths,
- svn_client_conflict_option_t *option,
+ apr_hash_t *wc_move_targets,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
{
- svn_client_conflict_t *conflict = option->conflict;
- struct conflict_tree_incoming_delete_details *details;
- const char *victim_abspath;
apr_array_header_t *sorted_repos_relpaths;
int i;
- SVN_ERR_ASSERT(svn_client_conflict_option_get_id(option) ==
- svn_client_conflict_option_incoming_move_file_text_merge ||
- svn_client_conflict_option_get_id(option) ==
- svn_client_conflict_option_incoming_move_dir_merge);
-
- victim_abspath = svn_client_conflict_get_local_abspath(conflict);
- details = conflict->tree_conflict_incoming_details;
- if (details == NULL || details->wc_move_targets == NULL)
- return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
- _("Getting a list of possible move targets "
- "requires details for tree conflict at '%s' "
- "to be fetched from the repository first"),
- svn_dirent_local_style(victim_abspath,
- scratch_pool));
-
- /* Return a copy of the repos replath candidate list. */
- sorted_repos_relpaths = svn_sort__hash(details->wc_move_targets,
+ sorted_repos_relpaths = svn_sort__hash(wc_move_targets,
svn_sort_compare_items_as_paths,
scratch_pool);
- *possible_moved_to_repos_relpaths = apr_array_make(
- result_pool,
- sorted_repos_relpaths->nelts,
- sizeof (const char *));
+ *possible_moved_to_repos_relpaths =
+ apr_array_make(result_pool, sorted_repos_relpaths->nelts,
+ sizeof (const char *));
for (i = 0; i < sorted_repos_relpaths->nelts; i++)
{
svn_sort__item_t item;
@@ -10111,37 +10570,111 @@ svn_client_conflict_option_get_moved_to_repos_relpath_candidates(
}
svn_error_t *
-svn_client_conflict_option_set_moved_to_repos_relpath(
+svn_client_conflict_option_get_moved_to_repos_relpath_candidates2(
+ apr_array_header_t **possible_moved_to_repos_relpaths,
svn_client_conflict_option_t *option,
- int preferred_move_target_idx,
- svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
{
svn_client_conflict_t *conflict = option->conflict;
- struct conflict_tree_incoming_delete_details *details;
const char *victim_abspath;
+ svn_wc_operation_t operation;
+ svn_wc_conflict_action_t incoming_change;
+ svn_wc_conflict_reason_t local_change;
+ svn_client_conflict_option_id_t id;
+
+ id = svn_client_conflict_option_get_id(option);
+ if (id != svn_client_conflict_option_incoming_move_file_text_merge &&
+ id != svn_client_conflict_option_incoming_move_dir_merge &&
+ id != svn_client_conflict_option_local_move_file_text_merge &&
+ id != svn_client_conflict_option_local_move_dir_merge &&
+ id != svn_client_conflict_option_sibling_move_file_text_merge &&
+ id != svn_client_conflict_option_sibling_move_dir_merge)
+ {
+ /* We cannot operate on this option. */
+ *possible_moved_to_repos_relpaths = NULL;
+ return SVN_NO_ERROR;
+ }
+
+ victim_abspath = svn_client_conflict_get_local_abspath(conflict);
+ operation = svn_client_conflict_get_operation(conflict);
+ incoming_change = svn_client_conflict_get_incoming_change(conflict);
+ local_change = svn_client_conflict_get_local_change(conflict);
+
+ if (operation == svn_wc_operation_merge &&
+ incoming_change == svn_wc_conflict_action_edit &&
+ local_change == svn_wc_conflict_reason_missing)
+ {
+ struct conflict_tree_local_missing_details *details;
+
+ details = conflict->tree_conflict_local_details;
+ if (details == NULL ||
+ (details->wc_move_targets == NULL && details->wc_siblings == NULL))
+ return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
+ _("Getting a list of possible move targets "
+ "requires details for tree conflict at '%s' "
+ "to be fetched from the repository first"),
+ svn_dirent_local_style(victim_abspath,
+ scratch_pool));
+
+ if (details->wc_move_targets)
+ SVN_ERR(get_repos_relpath_candidates(possible_moved_to_repos_relpaths,
+ details->wc_move_targets,
+ result_pool, scratch_pool));
+ else
+ *possible_moved_to_repos_relpaths = NULL;
+ }
+ else
+ {
+ struct conflict_tree_incoming_delete_details *details;
+
+ details = conflict->tree_conflict_incoming_details;
+ if (details == NULL || details->wc_move_targets == NULL)
+ return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
+ _("Getting a list of possible move targets "
+ "requires details for tree conflict at '%s' "
+ "to be fetched from the repository first"),
+ svn_dirent_local_style(victim_abspath,
+ scratch_pool));
+
+ SVN_ERR(get_repos_relpath_candidates(possible_moved_to_repos_relpaths,
+ details->wc_move_targets,
+ result_pool, scratch_pool));
+ }
+
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client_conflict_option_get_moved_to_repos_relpath_candidates(
+ apr_array_header_t **possible_moved_to_repos_relpaths,
+ svn_client_conflict_option_t *option,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ /* The only difference to API version 2 is an assertion failure if
+ * an unexpected option is passed.
+ * We do not emulate this old behaviour since clients written against
+ * the previous API will just keep working. */
+ return svn_error_trace(
+ svn_client_conflict_option_get_moved_to_repos_relpath_candidates2(
+ possible_moved_to_repos_relpaths, option, result_pool, scratch_pool));
+}
+
+static svn_error_t *
+set_wc_move_target(const char **new_hash_key,
+ apr_hash_t *wc_move_targets,
+ int preferred_move_target_idx,
+ const char *victim_abspath,
+ apr_pool_t *scratch_pool)
+{
apr_array_header_t *move_target_repos_relpaths;
svn_sort__item_t item;
const char *move_target_repos_relpath;
apr_hash_index_t *hi;
- SVN_ERR_ASSERT(svn_client_conflict_option_get_id(option) ==
- svn_client_conflict_option_incoming_move_file_text_merge ||
- svn_client_conflict_option_get_id(option) ==
- svn_client_conflict_option_incoming_move_dir_merge);
-
- victim_abspath = svn_client_conflict_get_local_abspath(conflict);
- details = conflict->tree_conflict_incoming_details;
- if (details == NULL || details->wc_move_targets == NULL)
- return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
- _("Setting a move target requires details "
- "for tree conflict at '%s' to be fetched "
- "from the repository first"),
- svn_dirent_local_style(victim_abspath,
- scratch_pool));
-
if (preferred_move_target_idx < 0 ||
- preferred_move_target_idx >= apr_hash_count(details->wc_move_targets))
+ preferred_move_target_idx >= apr_hash_count(wc_move_targets))
return svn_error_createf(SVN_ERR_INCORRECT_PARAMS, NULL,
_("Index '%d' is out of bounds of the possible "
"move target list for '%s'"),
@@ -10150,15 +10683,14 @@ svn_client_conflict_option_set_moved_to_repos_relpath(
scratch_pool));
/* Translate the index back into a hash table key. */
- move_target_repos_relpaths =
- svn_sort__hash(details->wc_move_targets,
- svn_sort_compare_items_as_paths,
- scratch_pool);
+ move_target_repos_relpaths = svn_sort__hash(wc_move_targets,
+ svn_sort_compare_items_as_paths,
+ scratch_pool);
item = APR_ARRAY_IDX(move_target_repos_relpaths, preferred_move_target_idx,
svn_sort__item_t);
move_target_repos_relpath = item.key;
/* Find our copy of the hash key and remember the user's preference. */
- for (hi = apr_hash_first(scratch_pool, details->wc_move_targets);
+ for (hi = apr_hash_first(scratch_pool, wc_move_targets);
hi != NULL;
hi = apr_hash_next(hi))
{
@@ -10166,15 +10698,7 @@ svn_client_conflict_option_set_moved_to_repos_relpath(
if (strcmp(move_target_repos_relpath, repos_relpath) == 0)
{
- details->move_target_repos_relpath = repos_relpath;
- /* Update option description. */
- SVN_ERR(describe_incoming_move_merge_conflict_option(
- &option->description,
- conflict, ctx,
- details,
- conflict->pool,
- scratch_pool));
-
+ *new_hash_key = repos_relpath;
return SVN_NO_ERROR;
}
}
@@ -10188,107 +10712,399 @@ svn_client_conflict_option_set_moved_to_repos_relpath(
}
svn_error_t *
-svn_client_conflict_option_get_moved_to_abspath_candidates(
+svn_client_conflict_option_set_moved_to_repos_relpath2(
+ svn_client_conflict_option_t *option,
+ int preferred_move_target_idx,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ svn_client_conflict_t *conflict = option->conflict;
+ const char *victim_abspath;
+ svn_wc_operation_t operation;
+ svn_wc_conflict_action_t incoming_change;
+ svn_wc_conflict_reason_t local_change;
+ svn_client_conflict_option_id_t id;
+
+ id = svn_client_conflict_option_get_id(option);
+ if (id != svn_client_conflict_option_incoming_move_file_text_merge &&
+ id != svn_client_conflict_option_incoming_move_dir_merge &&
+ id != svn_client_conflict_option_local_move_file_text_merge &&
+ id != svn_client_conflict_option_local_move_dir_merge &&
+ id != svn_client_conflict_option_sibling_move_file_text_merge &&
+ id != svn_client_conflict_option_sibling_move_dir_merge)
+ return SVN_NO_ERROR; /* We cannot operate on this option. Nothing to do. */
+
+ victim_abspath = svn_client_conflict_get_local_abspath(conflict);
+ operation = svn_client_conflict_get_operation(conflict);
+ incoming_change = svn_client_conflict_get_incoming_change(conflict);
+ local_change = svn_client_conflict_get_local_change(conflict);
+
+ if (operation == svn_wc_operation_merge &&
+ incoming_change == svn_wc_conflict_action_edit &&
+ local_change == svn_wc_conflict_reason_missing)
+ {
+ struct conflict_tree_local_missing_details *details;
+
+ details = conflict->tree_conflict_local_details;
+ if (details == NULL || details->wc_move_targets == NULL)
+ return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
+ _("Setting a move target requires details "
+ "for tree conflict at '%s' to be fetched "
+ "from the repository first"),
+ svn_dirent_local_style(victim_abspath,
+ scratch_pool));
+
+ SVN_ERR(set_wc_move_target(&details->move_target_repos_relpath,
+ details->wc_move_targets,
+ preferred_move_target_idx,
+ victim_abspath, scratch_pool));
+ details->wc_move_target_idx = 0;
+
+ /* Update option description. */
+ SVN_ERR(conflict_tree_get_description_local_missing(
+ &option->description, conflict, ctx,
+ conflict->pool, scratch_pool));
+ }
+ else
+ {
+ struct conflict_tree_incoming_delete_details *details;
+
+ details = conflict->tree_conflict_incoming_details;
+ if (details == NULL || details->wc_move_targets == NULL)
+ return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
+ _("Setting a move target requires details "
+ "for tree conflict at '%s' to be fetched "
+ "from the repository first"),
+ svn_dirent_local_style(victim_abspath,
+ scratch_pool));
+
+ SVN_ERR(set_wc_move_target(&details->move_target_repos_relpath,
+ details->wc_move_targets,
+ preferred_move_target_idx,
+ victim_abspath, scratch_pool));
+ details->wc_move_target_idx = 0;
+
+ /* Update option description. */
+ SVN_ERR(describe_incoming_move_merge_conflict_option(
+ &option->description,
+ conflict, ctx,
+ details,
+ conflict->pool,
+ scratch_pool));
+ }
+
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client_conflict_option_set_moved_to_repos_relpath(
+ svn_client_conflict_option_t *option,
+ int preferred_move_target_idx,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ /* The only difference to API version 2 is an assertion failure if
+ * an unexpected option is passed.
+ * We do not emulate this old behaviour since clients written against
+ * the previous API will just keep working. */
+ return svn_error_trace(
+ svn_client_conflict_option_set_moved_to_repos_relpath2(option,
+ preferred_move_target_idx, ctx, scratch_pool));
+}
+
+svn_error_t *
+svn_client_conflict_option_get_moved_to_abspath_candidates2(
apr_array_header_t **possible_moved_to_abspaths,
svn_client_conflict_option_t *option,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
{
svn_client_conflict_t *conflict = option->conflict;
- struct conflict_tree_incoming_delete_details *details;
const char *victim_abspath;
- apr_array_header_t *move_target_wc_abspaths;
+ svn_wc_operation_t operation;
+ svn_wc_conflict_action_t incoming_change;
+ svn_wc_conflict_reason_t local_change;
int i;
+ svn_client_conflict_option_id_t id;
- SVN_ERR_ASSERT(svn_client_conflict_option_get_id(option) ==
- svn_client_conflict_option_incoming_move_file_text_merge ||
- svn_client_conflict_option_get_id(option) ==
- svn_client_conflict_option_incoming_move_dir_merge);
+ id = svn_client_conflict_option_get_id(option);
+ if (id != svn_client_conflict_option_incoming_move_file_text_merge &&
+ id != svn_client_conflict_option_incoming_move_dir_merge &&
+ id != svn_client_conflict_option_local_move_file_text_merge &&
+ id != svn_client_conflict_option_local_move_dir_merge &&
+ id != svn_client_conflict_option_sibling_move_file_text_merge &&
+ id != svn_client_conflict_option_sibling_move_dir_merge)
+ {
+ /* We cannot operate on this option. */
+ *possible_moved_to_abspaths = NULL;
+ return NULL;
+ }
victim_abspath = svn_client_conflict_get_local_abspath(conflict);
- details = conflict->tree_conflict_incoming_details;
- if (details == NULL || details->wc_move_targets == NULL)
- return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
- _("Getting a list of possible move targets "
- "requires details for tree conflict at '%s' "
- "to be fetched from the repository first"),
- svn_dirent_local_style(victim_abspath,
- scratch_pool));
+ operation = svn_client_conflict_get_operation(conflict);
+ incoming_change = svn_client_conflict_get_incoming_change(conflict);
+ local_change = svn_client_conflict_get_local_change(conflict);
- move_target_wc_abspaths =
- svn_hash_gets(details->wc_move_targets,
- get_moved_to_repos_relpath(details, scratch_pool));
+ if (operation == svn_wc_operation_merge &&
+ incoming_change == svn_wc_conflict_action_edit &&
+ local_change == svn_wc_conflict_reason_missing)
+ {
+ struct conflict_tree_local_missing_details *details;
- /* Return a copy of the option's move target candidate list. */
- *possible_moved_to_abspaths =
- apr_array_make(result_pool, move_target_wc_abspaths->nelts,
- sizeof (const char *));
- for (i = 0; i < move_target_wc_abspaths->nelts; i++)
+ details = conflict->tree_conflict_local_details;
+ if (details == NULL ||
+ (details->wc_move_targets == NULL && details->wc_siblings == NULL))
+ return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
+ _("Getting a list of possible move siblings "
+ "requires details for tree conflict at '%s' "
+ "to be fetched from the repository first"),
+ svn_dirent_local_style(victim_abspath,
+ scratch_pool));
+
+ *possible_moved_to_abspaths = apr_array_make(result_pool, 1,
+ sizeof (const char *));
+ if (details->wc_move_targets)
+ {
+ apr_array_header_t *move_target_wc_abspaths;
+ move_target_wc_abspaths =
+ svn_hash_gets(details->wc_move_targets,
+ details->move_target_repos_relpath);
+ for (i = 0; i < move_target_wc_abspaths->nelts; i++)
+ {
+ const char *moved_to_abspath;
+
+ moved_to_abspath = APR_ARRAY_IDX(move_target_wc_abspaths, i,
+ const char *);
+ APR_ARRAY_PUSH(*possible_moved_to_abspaths, const char *) =
+ apr_pstrdup(result_pool, moved_to_abspath);
+ }
+ }
+
+ /* ### Siblings are actually 'corresponding nodes', not 'move targets'.
+ ### But we provide them here to avoid another API function. */
+ if (details->wc_siblings)
+ {
+ for (i = 0; i < details->wc_siblings->nelts; i++)
+ {
+ const char *sibling_abspath;
+
+ sibling_abspath = APR_ARRAY_IDX(details->wc_siblings, i,
+ const char *);
+ APR_ARRAY_PUSH(*possible_moved_to_abspaths, const char *) =
+ apr_pstrdup(result_pool, sibling_abspath);
+ }
+ }
+ }
+ else
{
- const char *moved_to_abspath;
+ struct conflict_tree_incoming_delete_details *details;
+ apr_array_header_t *move_target_wc_abspaths;
- moved_to_abspath = APR_ARRAY_IDX(move_target_wc_abspaths, i,
- const char *);
- APR_ARRAY_PUSH(*possible_moved_to_abspaths, const char *) =
- apr_pstrdup(result_pool, moved_to_abspath);
+ details = conflict->tree_conflict_incoming_details;
+ if (details == NULL || details->wc_move_targets == NULL)
+ return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
+ _("Getting a list of possible move targets "
+ "requires details for tree conflict at '%s' "
+ "to be fetched from the repository first"),
+ svn_dirent_local_style(victim_abspath,
+ scratch_pool));
+
+ move_target_wc_abspaths =
+ svn_hash_gets(details->wc_move_targets,
+ get_moved_to_repos_relpath(details, scratch_pool));
+
+ /* Return a copy of the option's move target candidate list. */
+ *possible_moved_to_abspaths =
+ apr_array_make(result_pool, move_target_wc_abspaths->nelts,
+ sizeof (const char *));
+ for (i = 0; i < move_target_wc_abspaths->nelts; i++)
+ {
+ const char *moved_to_abspath;
+
+ moved_to_abspath = APR_ARRAY_IDX(move_target_wc_abspaths, i,
+ const char *);
+ APR_ARRAY_PUSH(*possible_moved_to_abspaths, const char *) =
+ apr_pstrdup(result_pool, moved_to_abspath);
+ }
}
return SVN_NO_ERROR;
}
svn_error_t *
-svn_client_conflict_option_set_moved_to_abspath(
+svn_client_conflict_option_get_moved_to_abspath_candidates(
+ apr_array_header_t **possible_moved_to_abspaths,
+ svn_client_conflict_option_t *option,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ /* The only difference to API version 2 is an assertion failure if
+ * an unexpected option is passed.
+ * We do not emulate this old behaviour since clients written against
+ * the previous API will just keep working. */
+ return svn_error_trace(
+ svn_client_conflict_option_get_moved_to_abspath_candidates2(
+ possible_moved_to_abspaths, option, result_pool, scratch_pool));
+}
+
+svn_error_t *
+svn_client_conflict_option_set_moved_to_abspath2(
svn_client_conflict_option_t *option,
int preferred_move_target_idx,
svn_client_ctx_t *ctx,
apr_pool_t *scratch_pool)
{
svn_client_conflict_t *conflict = option->conflict;
- struct conflict_tree_incoming_delete_details *details;
const char *victim_abspath;
- apr_array_header_t *move_target_wc_abspaths;
+ svn_wc_operation_t operation;
+ svn_wc_conflict_action_t incoming_change;
+ svn_wc_conflict_reason_t local_change;
+ svn_client_conflict_option_id_t id;
- SVN_ERR_ASSERT(svn_client_conflict_option_get_id(option) ==
- svn_client_conflict_option_incoming_move_file_text_merge ||
- svn_client_conflict_option_get_id(option) ==
- svn_client_conflict_option_incoming_move_dir_merge);
+ id = svn_client_conflict_option_get_id(option);
+ if (id != svn_client_conflict_option_incoming_move_file_text_merge &&
+ id != svn_client_conflict_option_incoming_move_dir_merge &&
+ id != svn_client_conflict_option_local_move_file_text_merge &&
+ id != svn_client_conflict_option_local_move_dir_merge &&
+ id != svn_client_conflict_option_sibling_move_file_text_merge &&
+ id != svn_client_conflict_option_sibling_move_dir_merge)
+ return NULL; /* We cannot operate on this option. Nothing to do. */
victim_abspath = svn_client_conflict_get_local_abspath(conflict);
- details = conflict->tree_conflict_incoming_details;
- if (details == NULL || details->wc_move_targets == NULL)
- return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
- _("Setting a move target requires details "
- "for tree conflict at '%s' to be fetched "
- "from the repository first"),
- svn_dirent_local_style(victim_abspath,
- scratch_pool));
+ operation = svn_client_conflict_get_operation(conflict);
+ incoming_change = svn_client_conflict_get_incoming_change(conflict);
+ local_change = svn_client_conflict_get_local_change(conflict);
- move_target_wc_abspaths =
- svn_hash_gets(details->wc_move_targets,
- get_moved_to_repos_relpath(details, scratch_pool));
+ if (operation == svn_wc_operation_merge &&
+ incoming_change == svn_wc_conflict_action_edit &&
+ local_change == svn_wc_conflict_reason_missing)
+ {
+ struct conflict_tree_local_missing_details *details;
+ const char *wcroot_abspath;
+ const char *preferred_sibling;
- if (preferred_move_target_idx < 0 ||
- preferred_move_target_idx > move_target_wc_abspaths->nelts)
- return svn_error_createf(SVN_ERR_INCORRECT_PARAMS, NULL,
- _("Index '%d' is out of bounds of the possible "
- "move target list for '%s'"),
- preferred_move_target_idx,
- svn_dirent_local_style(victim_abspath,
- scratch_pool));
+ SVN_ERR(svn_wc__get_wcroot(&wcroot_abspath,
+ ctx->wc_ctx,
+ conflict->local_abspath,
+ scratch_pool,
+ scratch_pool));
- /* Record the user's preference. */
- details->wc_move_target_idx = preferred_move_target_idx;
+ details = conflict->tree_conflict_local_details;
+ if (details == NULL || (details->wc_siblings == NULL &&
+ details->wc_move_targets == NULL))
+ return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
+ _("Setting a move target requires details "
+ "for tree conflict at '%s' to be fetched "
+ "from the repository first"),
+ svn_dirent_local_style(victim_abspath,
+ scratch_pool));
+
+ if (details->wc_siblings)
+ {
+ if (preferred_move_target_idx < 0 ||
+ preferred_move_target_idx > details->wc_siblings->nelts)
+ return svn_error_createf(SVN_ERR_INCORRECT_PARAMS, NULL,
+ _("Index '%d' is out of bounds of the "
+ "possible move sibling list for '%s'"),
+ preferred_move_target_idx,
+ svn_dirent_local_style(victim_abspath,
+ scratch_pool));
+ /* Record the user's preference. */
+ details->preferred_sibling_idx = preferred_move_target_idx;
+
+ /* Update option description. */
+ preferred_sibling = APR_ARRAY_IDX(details->wc_siblings,
+ details->preferred_sibling_idx,
+ const char *);
+ option->description =
+ apr_psprintf(
+ conflict->pool, _("apply changes to '%s'"),
+ svn_dirent_local_style(
+ svn_dirent_skip_ancestor(wcroot_abspath, preferred_sibling),
+ scratch_pool));
+ }
+ else if (details->wc_move_targets)
+ {
+ apr_array_header_t *move_target_wc_abspaths;
+ move_target_wc_abspaths =
+ svn_hash_gets(details->wc_move_targets,
+ details->move_target_repos_relpath);
+
+ if (preferred_move_target_idx < 0 ||
+ preferred_move_target_idx > move_target_wc_abspaths->nelts)
+ return svn_error_createf(SVN_ERR_INCORRECT_PARAMS, NULL,
+ _("Index '%d' is out of bounds of the possible "
+ "move target list for '%s'"),
+ preferred_move_target_idx,
+ svn_dirent_local_style(victim_abspath,
+ scratch_pool));
- /* Update option description. */
- SVN_ERR(describe_incoming_move_merge_conflict_option(&option->description,
- conflict, ctx,
- details,
- conflict->pool,
+ /* Record the user's preference. */
+ details->wc_move_target_idx = preferred_move_target_idx;
+
+ /* Update option description. */
+ SVN_ERR(conflict_tree_get_description_local_missing(
+ &option->description, conflict, ctx,
+ conflict->pool, scratch_pool));
+ }
+ }
+ else
+ {
+ struct conflict_tree_incoming_delete_details *details;
+ apr_array_header_t *move_target_wc_abspaths;
+
+ details = conflict->tree_conflict_incoming_details;
+ if (details == NULL || details->wc_move_targets == NULL)
+ return svn_error_createf(SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE, NULL,
+ _("Setting a move target requires details "
+ "for tree conflict at '%s' to be fetched "
+ "from the repository first"),
+ svn_dirent_local_style(victim_abspath,
scratch_pool));
+
+ move_target_wc_abspaths =
+ svn_hash_gets(details->wc_move_targets,
+ get_moved_to_repos_relpath(details, scratch_pool));
+
+ if (preferred_move_target_idx < 0 ||
+ preferred_move_target_idx > move_target_wc_abspaths->nelts)
+ return svn_error_createf(SVN_ERR_INCORRECT_PARAMS, NULL,
+ _("Index '%d' is out of bounds of the possible "
+ "move target list for '%s'"),
+ preferred_move_target_idx,
+ svn_dirent_local_style(victim_abspath,
+ scratch_pool));
+
+ /* Record the user's preference. */
+ details->wc_move_target_idx = preferred_move_target_idx;
+
+ /* Update option description. */
+ SVN_ERR(describe_incoming_move_merge_conflict_option(&option->description,
+ conflict, ctx,
+ details,
+ conflict->pool,
+ scratch_pool));
+ }
return SVN_NO_ERROR;
}
svn_error_t *
+svn_client_conflict_option_set_moved_to_abspath(
+ svn_client_conflict_option_t *option,
+ int preferred_move_target_idx,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ /* The only difference to API version 2 is an assertion failure if
+ * an unexpected option is passed.
+ * We do not emulate this old behaviour since clients written against
+ * the previous API will just keep working. */
+ return svn_error_trace(
+ svn_client_conflict_option_set_moved_to_abspath2(option,
+ preferred_move_target_idx, ctx, scratch_pool));
+}
+
+svn_error_t *
svn_client_conflict_tree_get_resolution_options(apr_array_header_t **options,
svn_client_conflict_t *conflict,
svn_client_ctx_t *ctx,
@@ -10341,8 +11157,11 @@ svn_client_conflict_tree_get_resolution_options(apr_array_header_t **options,
scratch_pool));
SVN_ERR(configure_option_incoming_dir_merge(conflict, ctx, *options,
scratch_pool));
- SVN_ERR(configure_option_local_move_file_merge(conflict, ctx, *options,
- scratch_pool));
+ SVN_ERR(configure_option_local_move_file_or_dir_merge(conflict, ctx,
+ *options,
+ scratch_pool));
+ SVN_ERR(configure_option_sibling_move_merge(conflict, ctx, *options,
+ scratch_pool));
return SVN_NO_ERROR;
}
diff --git a/subversion/libsvn_client/deprecated.c b/subversion/libsvn_client/deprecated.c
index dc20b27..941ed2f 100644
--- a/subversion/libsvn_client/deprecated.c
+++ b/subversion/libsvn_client/deprecated.c
@@ -936,6 +936,42 @@ svn_client_delete(svn_client_commit_info_t **commit_info_p,
/*** From diff.c ***/
svn_error_t *
+svn_client_diff6(const apr_array_header_t *diff_options,
+ const char *path_or_url1,
+ const svn_opt_revision_t *revision1,
+ const char *path_or_url2,
+ const svn_opt_revision_t *revision2,
+ const char *relative_to_dir,
+ svn_depth_t depth,
+ svn_boolean_t ignore_ancestry,
+ svn_boolean_t no_diff_added,
+ svn_boolean_t no_diff_deleted,
+ svn_boolean_t show_copies_as_adds,
+ svn_boolean_t ignore_content_type,
+ svn_boolean_t ignore_properties,
+ svn_boolean_t properties_only,
+ svn_boolean_t use_git_diff_format,
+ const char *header_encoding,
+ svn_stream_t *outstream,
+ svn_stream_t *errstream,
+ const apr_array_header_t *changelists,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *pool)
+{
+ return svn_client_diff7(diff_options,
+ path_or_url1, revision1,
+ path_or_url2, revision2,
+ relative_to_dir, depth,
+ ignore_ancestry, no_diff_added,
+ no_diff_deleted, show_copies_as_adds,
+ ignore_content_type, ignore_properties,
+ properties_only, use_git_diff_format,
+ TRUE /*pretty_print_mergeinfo*/,
+ header_encoding,
+ outstream, errstream, changelists, ctx, pool);
+}
+
+svn_error_t *
svn_client_diff5(const apr_array_header_t *diff_options,
const char *path1,
const svn_opt_revision_t *revision1,
@@ -1058,6 +1094,53 @@ svn_client_diff(const apr_array_header_t *options,
}
svn_error_t *
+svn_client_diff_peg6(const apr_array_header_t *options,
+ const char *path_or_url,
+ const svn_opt_revision_t *peg_revision,
+ const svn_opt_revision_t *start_revision,
+ const svn_opt_revision_t *end_revision,
+ const char *relative_to_dir,
+ svn_depth_t depth,
+ svn_boolean_t ignore_ancestry,
+ svn_boolean_t no_diff_added,
+ svn_boolean_t no_diff_deleted,
+ svn_boolean_t show_copies_as_adds,
+ svn_boolean_t ignore_content_type,
+ svn_boolean_t ignore_properties,
+ svn_boolean_t properties_only,
+ svn_boolean_t use_git_diff_format,
+ const char *header_encoding,
+ svn_stream_t *outstream,
+ svn_stream_t *errstream,
+ const apr_array_header_t *changelists,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *pool)
+{
+ return svn_client_diff_peg7(options,
+ path_or_url,
+ peg_revision,
+ start_revision,
+ end_revision,
+ relative_to_dir,
+ depth,
+ ignore_ancestry,
+ no_diff_added,
+ no_diff_deleted,
+ show_copies_as_adds,
+ ignore_content_type,
+ ignore_properties,
+ properties_only,
+ use_git_diff_format,
+ TRUE /*pretty_print_mergeinfo*/,
+ header_encoding,
+ outstream,
+ errstream,
+ changelists,
+ ctx,
+ pool);
+}
+
+svn_error_t *
svn_client_diff_peg5(const apr_array_header_t *diff_options,
const char *path,
const svn_opt_revision_t *peg_revision,
@@ -1643,7 +1726,7 @@ svn_client_log(const apr_array_header_t *targets,
* we just invoke the receiver manually on a hand-constructed log
* message for revision 0.
*
- * See also http://subversion.tigris.org/issues/show_bug.cgi?id=692.
+ * See also https://issues.apache.org/jira/browse/SVN-692.
*/
if (err && (err->apr_err == SVN_ERR_FS_NO_SUCH_REVISION)
&& (start->kind == svn_opt_revision_head)
@@ -2853,6 +2936,22 @@ svn_client_resolved(const char *path,
}
/*** From revert.c ***/
svn_error_t *
+svn_client_revert3(const apr_array_header_t *paths,
+ svn_depth_t depth,
+ const apr_array_header_t *changelists,
+ svn_boolean_t clear_changelists,
+ svn_boolean_t metadata_only,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *pool)
+{
+ SVN_ERR(svn_client_revert4(paths, depth, changelists,
+ clear_changelists, metadata_only,
+ TRUE /*added_keep_local*/,
+ ctx, pool));
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
svn_client_revert2(const apr_array_header_t *paths,
svn_depth_t depth,
const apr_array_header_t *changelists,
diff --git a/subversion/libsvn_client/diff.c b/subversion/libsvn_client/diff.c
index ba6e91e..30d00b0 100644
--- a/subversion/libsvn_client/diff.c
+++ b/subversion/libsvn_client/diff.c
@@ -23,6 +23,9 @@
/* ==================================================================== */
+/* We define this here to remove any further warnings about the usage of
+ experimental functions in this file. */
+#define SVN_EXPERIMENTAL
/*** Includes. ***/
@@ -66,6 +69,31 @@
_("Path '%s' must be an immediate child of " \
"the directory '%s'"), path, relative_to_dir)
+/* State provided by the diff drivers; used by the diff writer */
+typedef struct diff_driver_info_t
+{
+ /* The anchor to prefix before wc paths */
+ const char *anchor;
+
+ /* Relative path of ra session from repos_root_url.
+
+ Used only in printing git diff headers. The repository-root-relative
+ path of ... ### what user-visible property of the diff? */
+ const char *session_relpath;
+
+ /* Used only in printing git diff headers. Used to find the
+ repository-root-relative path of a WC path. */
+ svn_wc_context_t *wc_ctx;
+
+ /* The original targets passed to the diff command. We may need
+ these to construct distinctive diff labels when comparing the
+ same relative path in the same revision, under different anchors
+ (for example, when comparing a trunk against a branch). */
+ const char *orig_path_1;
+ const char *orig_path_2;
+} diff_driver_info_t;
+
+
/* Calculate the repository relative path of DIFF_RELPATH, using
* SESSION_RELPATH and WC_CTX, and return the result in *REPOS_RELPATH.
* ORIG_TARGET is the related original target passed to the diff command,
@@ -120,25 +148,47 @@ make_repos_relpath(const char **repos_relpath,
return SVN_NO_ERROR;
}
-/* Adjust *INDEX_PATH, *ORIG_PATH_1 and *ORIG_PATH_2, representing the changed
- * node and the two original targets passed to the diff command, to handle the
- * case when we're dealing with different anchors. RELATIVE_TO_DIR is the
- * directory the diff target should be considered relative to.
- * ANCHOR is the local path where the diff editor is anchored. The resulting
- * values are allocated in RESULT_POOL and temporary allocations are performed
- * in SCRATCH_POOL. */
+/* Adjust paths to handle the case when we're dealing with different anchors.
+ *
+ * Set *INDEX_PATH to the new relative path. Set *LABEL_PATH1 and
+ * *LABEL_PATH2 to that path annotated with the unique parts of ORIG_PATH_1
+ * and ORIG_PATH_2 respectively, like this:
+ *
+ * INDEX_PATH: "path"
+ * LABEL_PATH1: "path\t(.../branches/branch1)"
+ * LABEL_PATH2: "path\t(.../trunk)"
+ *
+ * Make the output paths relative to RELATIVE_TO_DIR (if not null) by
+ * removing it from the beginning of (ANCHOR + RELPATH).
+ *
+ * ANCHOR (if not null) is the local path where the diff editor is anchored.
+ * RELPATH is the path to the changed node within the diff editor, so
+ * relative to ANCHOR.
+ *
+ * RELATIVE_TO_DIR and ANCHOR are of the same form -- either absolute local
+ * paths or relative paths relative to the same base.
+ *
+ * ORIG_PATH_1 and ORIG_PATH_2 represent the two original target paths or
+ * URLs passed to the diff command.
+ *
+ * Allocate results in RESULT_POOL (or as a pointer to RELPATH) and
+ * temporary data in SCRATCH_POOL.
+ */
static svn_error_t *
adjust_paths_for_diff_labels(const char **index_path,
- const char **orig_path_1,
- const char **orig_path_2,
+ const char **label_path1,
+ const char **label_path2,
const char *relative_to_dir,
const char *anchor,
+ const char *relpath,
+ const char *orig_path_1,
+ const char *orig_path_2,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
{
- const char *new_path = *index_path;
- const char *new_path1 = *orig_path_1;
- const char *new_path2 = *orig_path_2;
+ const char *new_path = relpath;
+ const char *new_path1 = orig_path_1;
+ const char *new_path2 = orig_path_2;
if (anchor)
new_path = svn_dirent_join(anchor, new_path, result_pool);
@@ -177,6 +227,7 @@ adjust_paths_for_diff_labels(const char **index_path,
/* ### BH: We can now just construct the repos_relpath, etc. as the
anchor is available. See also make_repos_relpath() */
+ /* Remove the common prefix of NEW_PATH1 and NEW_PATH2. */
is_url1 = svn_path_is_url(new_path1);
is_url2 = svn_path_is_url(new_path2);
@@ -220,8 +271,8 @@ adjust_paths_for_diff_labels(const char **index_path,
new_path2 = apr_psprintf(result_pool, "%s\t(.../%s)", new_path, new_path2);
*index_path = new_path;
- *orig_path_1 = new_path1;
- *orig_path_2 = new_path2;
+ *label_path1 = new_path1;
+ *label_path2 = new_path2;
return SVN_NO_ERROR;
}
@@ -383,28 +434,33 @@ maybe_print_mode_change(svn_stream_t *os,
}
/* Print a git diff header showing the OPERATION to the stream OS using
- * HEADER_ENCODING. Return suitable diff labels for the git diff in *LABEL1
- * and *LABEL2. REPOS_RELPATH1 and REPOS_RELPATH2 are relative to reposroot.
- * are the paths passed to the original diff command. REV1 and REV2 are
- * revisions being diffed. COPYFROM_PATH and COPYFROM_REV indicate where the
+ * HEADER_ENCODING.
+ *
+ * Return suitable diff labels for the git diff in *LABEL1 and *LABEL2.
+ *
+ * REV1 and REV2 are the revisions being diffed.
+ * COPYFROM_PATH and COPYFROM_REV indicate where the
* diffed item was copied from.
* Use SCRATCH_POOL for temporary allocations. */
static svn_error_t *
print_git_diff_header(svn_stream_t *os,
const char **label1, const char **label2,
svn_diff_operation_kind_t operation,
- const char *repos_relpath1,
- const char *repos_relpath2,
svn_revnum_t rev1,
svn_revnum_t rev2,
+ const char *diff_relpath,
const char *copyfrom_path,
svn_revnum_t copyfrom_rev,
apr_hash_t *left_props,
apr_hash_t *right_props,
const char *git_index_shas,
const char *header_encoding,
+ const diff_driver_info_t *ddi,
apr_pool_t *scratch_pool)
{
+ const char *repos_relpath1;
+ const char *repos_relpath2;
+ const char *copyfrom_repos_relpath = NULL;
svn_boolean_t exec_bit1 = (svn_prop_get_value(left_props,
SVN_PROP_EXECUTABLE) != NULL);
svn_boolean_t exec_bit2 = (svn_prop_get_value(right_props,
@@ -414,6 +470,26 @@ print_git_diff_header(svn_stream_t *os,
svn_boolean_t symlink_bit2 = (svn_prop_get_value(right_props,
SVN_PROP_SPECIAL) != NULL);
+ SVN_ERR(make_repos_relpath(&repos_relpath1, diff_relpath,
+ ddi->orig_path_1,
+ ddi->session_relpath,
+ ddi->wc_ctx,
+ ddi->anchor,
+ scratch_pool, scratch_pool));
+ SVN_ERR(make_repos_relpath(&repos_relpath2, diff_relpath,
+ ddi->orig_path_2,
+ ddi->session_relpath,
+ ddi->wc_ctx,
+ ddi->anchor,
+ scratch_pool, scratch_pool));
+ if (copyfrom_path)
+ SVN_ERR(make_repos_relpath(&copyfrom_repos_relpath, copyfrom_path,
+ ddi->orig_path_2,
+ ddi->session_relpath,
+ ddi->wc_ctx,
+ ddi->anchor,
+ scratch_pool, scratch_pool));
+
if (operation == svn_diff_op_deleted)
{
SVN_ERR(print_git_diff_header_deleted(os, header_encoding,
@@ -487,26 +563,45 @@ print_git_diff_header(svn_stream_t *os,
return SVN_NO_ERROR;
}
+/* Print the "Index:" and "=====" lines.
+ * Show the paths in platform-independent format ('/' separators)
+ */
+static svn_error_t *
+print_diff_index_header(svn_stream_t *outstream,
+ const char *header_encoding,
+ const char *index_path,
+ const char *suffix,
+ apr_pool_t *scratch_pool)
+{
+ SVN_ERR(svn_stream_printf_from_utf8(outstream,
+ header_encoding, scratch_pool,
+ "Index: %s%s" APR_EOL_STR
+ SVN_DIFF__EQUAL_STRING APR_EOL_STR,
+ index_path, suffix));
+ return SVN_NO_ERROR;
+}
+
/* A helper func that writes out verbal descriptions of property diffs
to OUTSTREAM. Of course, OUTSTREAM will probably be whatever was
- passed to svn_client_diff6(), which is probably stdout.
+ passed to svn_client_diff7(), which is probably stdout.
### FIXME needs proper docstring
If USE_GIT_DIFF_FORMAT is TRUE, pring git diff headers, which always
- show paths relative to the repository root. RA_SESSION and WC_CTX are
- needed to normalize paths relative the repository root, and are ignored
- if USE_GIT_DIFF_FORMAT is FALSE.
-
- ANCHOR is the local path where the diff editor is anchored. */
+ show paths relative to the repository root. DDI->session_relpath and
+ DDI->wc_ctx are needed to normalize paths relative the repository root,
+ and are ignored if USE_GIT_DIFF_FORMAT is FALSE.
+
+ If @a pretty_print_mergeinfo is true, then describe 'svn:mergeinfo'
+ property changes in a human-readable form that says what changes were
+ merged or reverse merged; otherwise (or if the mergeinfo property values
+ don't parse correctly) display them just like any other property.
+ */
static svn_error_t *
display_prop_diffs(const apr_array_header_t *propchanges,
apr_hash_t *left_props,
apr_hash_t *right_props,
const char *diff_relpath,
- const char *anchor,
- const char *orig_path1,
- const char *orig_path2,
svn_revnum_t rev1,
svn_revnum_t rev2,
const char *encoding,
@@ -514,32 +609,29 @@ display_prop_diffs(const apr_array_header_t *propchanges,
const char *relative_to_dir,
svn_boolean_t show_diff_header,
svn_boolean_t use_git_diff_format,
- const char *ra_session_relpath,
+ svn_boolean_t pretty_print_mergeinfo,
+ const diff_driver_info_t *ddi,
svn_cancel_func_t cancel_func,
void *cancel_baton,
- svn_wc_context_t *wc_ctx,
apr_pool_t *scratch_pool)
{
const char *repos_relpath1 = NULL;
- const char *repos_relpath2 = NULL;
- const char *index_path = diff_relpath;
- const char *adjusted_path1 = orig_path1;
- const char *adjusted_path2 = orig_path2;
+ const char *index_path;
+ const char *label_path1, *label_path2;
if (use_git_diff_format)
{
- SVN_ERR(make_repos_relpath(&repos_relpath1, diff_relpath, orig_path1,
- ra_session_relpath, wc_ctx, anchor,
- scratch_pool, scratch_pool));
- SVN_ERR(make_repos_relpath(&repos_relpath2, diff_relpath, orig_path2,
- ra_session_relpath, wc_ctx, anchor,
+ SVN_ERR(make_repos_relpath(&repos_relpath1, diff_relpath, ddi->orig_path_1,
+ ddi->session_relpath, ddi->wc_ctx, ddi->anchor,
scratch_pool, scratch_pool));
}
/* If we're creating a diff on the wc root, path would be empty. */
- SVN_ERR(adjust_paths_for_diff_labels(&index_path, &adjusted_path1,
- &adjusted_path2,
- relative_to_dir, anchor,
+ SVN_ERR(adjust_paths_for_diff_labels(&index_path,
+ &label_path1, &label_path2,
+ relative_to_dir, ddi->anchor,
+ diff_relpath,
+ ddi->orig_path_1, ddi->orig_path_2,
scratch_pool, scratch_pool));
if (show_diff_header)
@@ -547,27 +639,21 @@ display_prop_diffs(const apr_array_header_t *propchanges,
const char *label1;
const char *label2;
- label1 = diff_label(adjusted_path1, rev1, scratch_pool);
- label2 = diff_label(adjusted_path2, rev2, scratch_pool);
-
- /* ### Should we show the paths in platform specific format,
- * ### diff_content_changed() does not! */
+ label1 = diff_label(label_path1, rev1, scratch_pool);
+ label2 = diff_label(label_path2, rev2, scratch_pool);
- SVN_ERR(svn_stream_printf_from_utf8(outstream, encoding, scratch_pool,
- "Index: %s" APR_EOL_STR
- SVN_DIFF__EQUAL_STRING APR_EOL_STR,
- index_path));
+ SVN_ERR(print_diff_index_header(outstream, encoding,
+ index_path, "", scratch_pool));
if (use_git_diff_format)
SVN_ERR(print_git_diff_header(outstream, &label1, &label2,
svn_diff_op_modified,
- repos_relpath1, repos_relpath2,
- rev1, rev2, NULL,
- SVN_INVALID_REVNUM,
- left_props,
- right_props,
+ rev1, rev2,
+ diff_relpath,
+ NULL, SVN_INVALID_REVNUM,
+ left_props, right_props,
NULL,
- encoding, scratch_pool));
+ encoding, ddi, scratch_pool));
/* --- label1
* +++ label2 */
@@ -588,7 +674,7 @@ display_prop_diffs(const apr_array_header_t *propchanges,
SVN_ERR(svn_diff__display_prop_diffs(
outstream, encoding, propchanges, left_props,
- TRUE /* pretty_print_mergeinfo */,
+ pretty_print_mergeinfo,
-1 /* context_size */,
cancel_func, cancel_baton, scratch_pool));
@@ -599,24 +685,6 @@ display_prop_diffs(const apr_array_header_t *propchanges,
/*** Callbacks for 'svn diff', invoked by the repos-diff editor. ***/
-/* State provided by the diff drivers; used by the diff writer */
-typedef struct diff_driver_info_t
-{
- /* The anchor to prefix before wc paths */
- const char *anchor;
-
- /* Relative path of ra session from repos_root_url */
- const char *session_relpath;
-
- /* The original targets passed to the diff command. We may need
- these to construct distinctive diff labels when comparing the
- same relative path in the same revision, under different anchors
- (for example, when comparing a trunk against a branch). */
- const char *orig_path_1;
- const char *orig_path_2;
-} diff_driver_info_t;
-
-
/* Diff writer state */
typedef struct diff_writer_info_t
{
@@ -668,11 +736,12 @@ typedef struct diff_writer_info_t
/* Whether to ignore copyfrom information when showing adds */
svn_boolean_t show_copies_as_adds;
+ /* Whether to show mergeinfo prop changes in human-readable form */
+ svn_boolean_t pretty_print_mergeinfo;
+
/* Empty files for creating diffs or NULL if not used yet */
const char *empty_file;
- svn_wc_context_t *wc_ctx;
-
svn_cancel_func_t cancel_func;
void *cancel_baton;
@@ -708,9 +777,6 @@ diff_props_changed(const char *diff_relpath,
* dir_props_changed(). */
SVN_ERR(display_prop_diffs(props, left_props, right_props,
diff_relpath,
- dwi->ddi.anchor,
- dwi->ddi.orig_path_1,
- dwi->ddi.orig_path_2,
rev1,
rev2,
dwi->header_encoding,
@@ -718,10 +784,10 @@ diff_props_changed(const char *diff_relpath,
dwi->relative_to_dir,
show_diff_header,
dwi->use_git_diff_format,
- dwi->ddi.session_relpath,
+ dwi->pretty_print_mergeinfo,
+ &dwi->ddi,
dwi->cancel_func,
dwi->cancel_baton,
- dwi->wc_ctx,
scratch_pool));
}
@@ -785,9 +851,12 @@ transform_link_to_git(const char **new_tmpfile,
}
/* Show differences between TMPFILE1 and TMPFILE2. DIFF_RELPATH, REV1, and
- REV2 are used in the headers to indicate the file and revisions. If either
- MIMETYPE1 or MIMETYPE2 indicate binary content, don't show a diff,
- but instead print a warning message.
+ REV2 are used in the headers to indicate the file and revisions.
+
+ If either side has an svn:mime-type property that indicates 'binary'
+ content, then if DWI->force_binary is set, attempt to produce the
+ diff in the usual way, otherwise produce a 'GIT binary diff' in git mode
+ or print a warning message in non-git mode.
If FORCE_DIFF is TRUE, always write a diff, even for empty diffs.
@@ -812,9 +881,8 @@ diff_content_changed(svn_boolean_t *wrote_header,
svn_stream_t *outstream = dwi->outstream;
const char *label1, *label2;
svn_boolean_t mt1_binary = FALSE, mt2_binary = FALSE;
- const char *index_path = diff_relpath;
- const char *path1 = dwi->ddi.orig_path_1;
- const char *path2 = dwi->ddi.orig_path_2;
+ const char *index_path;
+ const char *label_path1, *label_path2;
const char *mimetype1 = svn_prop_get_value(left_props, SVN_PROP_MIME_TYPE);
const char *mimetype2 = svn_prop_get_value(right_props, SVN_PROP_MIME_TYPE);
const char *index_shas = NULL;
@@ -824,12 +892,15 @@ diff_content_changed(svn_boolean_t *wrote_header,
return SVN_NO_ERROR;
/* Generate the diff headers. */
- SVN_ERR(adjust_paths_for_diff_labels(&index_path, &path1, &path2,
+ SVN_ERR(adjust_paths_for_diff_labels(&index_path,
+ &label_path1, &label_path2,
rel_to_dir, dwi->ddi.anchor,
+ diff_relpath,
+ dwi->ddi.orig_path_1, dwi->ddi.orig_path_2,
scratch_pool, scratch_pool));
- label1 = diff_label(path1, rev1, scratch_pool);
- label2 = diff_label(path2, rev2, scratch_pool);
+ label1 = diff_label(label_path1, rev1, scratch_pool);
+ label2 = diff_label(label_path2, rev2, scratch_pool);
/* Possible easy-out: if either mime-type is binary and force was not
specified, don't attempt to generate a viewable diff at all.
@@ -869,12 +940,8 @@ diff_content_changed(svn_boolean_t *wrote_header,
if (! dwi->force_binary && (mt1_binary || mt2_binary))
{
/* Print out the diff header. */
- SVN_ERR(svn_stream_printf_from_utf8(outstream,
- dwi->header_encoding, scratch_pool,
- "Index: %s" APR_EOL_STR
- SVN_DIFF__EQUAL_STRING APR_EOL_STR,
- index_path));
-
+ SVN_ERR(print_diff_index_header(outstream, dwi->header_encoding,
+ index_path, "", scratch_pool));
*wrote_header = TRUE;
/* ### Print git diff headers. */
@@ -883,40 +950,17 @@ diff_content_changed(svn_boolean_t *wrote_header,
{
svn_stream_t *left_stream;
svn_stream_t *right_stream;
- const char *repos_relpath1;
- const char *repos_relpath2;
- const char *copyfrom_repos_relpath = NULL;
-
- SVN_ERR(make_repos_relpath(&repos_relpath1, diff_relpath,
- dwi->ddi.orig_path_1,
- dwi->ddi.session_relpath,
- dwi->wc_ctx,
- dwi->ddi.anchor,
- scratch_pool, scratch_pool));
- SVN_ERR(make_repos_relpath(&repos_relpath2, diff_relpath,
- dwi->ddi.orig_path_2,
- dwi->ddi.session_relpath,
- dwi->wc_ctx,
- dwi->ddi.anchor,
- scratch_pool, scratch_pool));
- if (copyfrom_path)
- SVN_ERR(make_repos_relpath(&copyfrom_repos_relpath, copyfrom_path,
- dwi->ddi.orig_path_2,
- dwi->ddi.session_relpath,
- dwi->wc_ctx,
- dwi->ddi.anchor,
- scratch_pool, scratch_pool));
- SVN_ERR(print_git_diff_header(outstream, &label1, &label2,
+
+ SVN_ERR(print_git_diff_header(outstream,
+ &label1, &label2,
operation,
- repos_relpath1, repos_relpath2,
rev1, rev2,
- copyfrom_repos_relpath,
- copyfrom_rev,
- left_props,
- right_props,
+ diff_relpath,
+ copyfrom_path, copyfrom_rev,
+ left_props, right_props,
index_shas,
dwi->header_encoding,
- scratch_pool));
+ &dwi->ddi, scratch_pool));
SVN_ERR(svn_stream_open_readonly(&left_stream, tmpfile1,
scratch_pool, scratch_pool));
@@ -973,11 +1017,9 @@ diff_content_changed(svn_boolean_t *wrote_header,
int exitcode;
/* Print out the diff header. */
- SVN_ERR(svn_stream_printf_from_utf8(outstream,
- dwi->header_encoding, scratch_pool,
- "Index: %s" APR_EOL_STR
- SVN_DIFF__EQUAL_STRING APR_EOL_STR,
- index_path));
+ SVN_ERR(print_diff_index_header(outstream, dwi->header_encoding,
+ index_path, "", scratch_pool));
+ *wrote_header = TRUE;
/* ### Do we want to add git diff headers here too? I'd say no. The
* ### 'Index' and '===' line is something subversion has added. The rest
@@ -1030,10 +1072,6 @@ diff_content_changed(svn_boolean_t *wrote_header,
scratch_pool),
NULL, NULL, scratch_pool));
}
-
- /* If we have printed a diff for this path, mark it as visited. */
- if (exitcode == 1)
- *wrote_header = TRUE;
}
else /* use libsvn_diff to generate the diff */
{
@@ -1048,49 +1086,22 @@ diff_content_changed(svn_boolean_t *wrote_header,
|| svn_diff_contains_diffs(diff))
{
/* Print out the diff header. */
- SVN_ERR(svn_stream_printf_from_utf8(outstream,
- dwi->header_encoding, scratch_pool,
- "Index: %s" APR_EOL_STR
- SVN_DIFF__EQUAL_STRING APR_EOL_STR,
- index_path));
+ SVN_ERR(print_diff_index_header(outstream, dwi->header_encoding,
+ index_path, "", scratch_pool));
+ *wrote_header = TRUE;
if (dwi->use_git_diff_format)
{
- const char *repos_relpath1;
- const char *repos_relpath2;
- const char *copyfrom_repos_relpath = NULL;
-
- SVN_ERR(make_repos_relpath(&repos_relpath1, diff_relpath,
- dwi->ddi.orig_path_1,
- dwi->ddi.session_relpath,
- dwi->wc_ctx,
- dwi->ddi.anchor,
- scratch_pool, scratch_pool));
- SVN_ERR(make_repos_relpath(&repos_relpath2, diff_relpath,
- dwi->ddi.orig_path_2,
- dwi->ddi.session_relpath,
- dwi->wc_ctx,
- dwi->ddi.anchor,
- scratch_pool, scratch_pool));
- if (copyfrom_path)
- SVN_ERR(make_repos_relpath(&copyfrom_repos_relpath,
- copyfrom_path,
- dwi->ddi.orig_path_2,
- dwi->ddi.session_relpath,
- dwi->wc_ctx,
- dwi->ddi.anchor,
- scratch_pool, scratch_pool));
- SVN_ERR(print_git_diff_header(outstream, &label1, &label2,
+ SVN_ERR(print_git_diff_header(outstream,
+ &label1, &label2,
operation,
- repos_relpath1, repos_relpath2,
rev1, rev2,
- copyfrom_repos_relpath,
- copyfrom_rev,
- left_props,
- right_props,
+ diff_relpath,
+ copyfrom_path, copyfrom_rev,
+ left_props, right_props,
index_shas,
dwi->header_encoding,
- scratch_pool));
+ &dwi->ddi, scratch_pool));
}
/* Output the actual diff */
@@ -1102,10 +1113,6 @@ diff_content_changed(svn_boolean_t *wrote_header,
dwi->options.for_internal->context_size,
dwi->cancel_func, dwi->cancel_baton,
scratch_pool));
-
- /* If we have printed a diff for this path, mark it as visited. */
- if (dwi->use_git_diff_format || svn_diff_contains_diffs(diff))
- *wrote_header = TRUE;
}
}
@@ -1180,11 +1187,9 @@ diff_file_added(const char *relpath,
index_path = svn_dirent_join(dwi->ddi.anchor, relpath,
scratch_pool);
- SVN_ERR(svn_stream_printf_from_utf8(dwi->outstream,
- dwi->header_encoding, scratch_pool,
- "Index: %s (added)" APR_EOL_STR
- SVN_DIFF__EQUAL_STRING APR_EOL_STR,
- index_path));
+ SVN_ERR(print_diff_index_header(dwi->outstream, dwi->header_encoding,
+ index_path, " (added)",
+ scratch_pool));
wrote_header = TRUE;
return SVN_NO_ERROR;
}
@@ -1270,11 +1275,9 @@ diff_file_deleted(const char *relpath,
index_path = svn_dirent_join(dwi->ddi.anchor, relpath,
scratch_pool);
- SVN_ERR(svn_stream_printf_from_utf8(dwi->outstream,
- dwi->header_encoding, scratch_pool,
- "Index: %s (deleted)" APR_EOL_STR
- SVN_DIFF__EQUAL_STRING APR_EOL_STR,
- index_path));
+ SVN_ERR(print_diff_index_header(dwi->outstream, dwi->header_encoding,
+ index_path, " (deleted)",
+ scratch_pool));
}
else
{
@@ -1537,11 +1540,22 @@ check_diff_target_exists(const char *url,
/** Prepare a repos repos diff between PATH_OR_URL1 and
* PATH_OR_URL2@PEG_REVISION, in the revision range REVISION1:REVISION2.
- * Return URLs and peg revisions in *URL1, *REV1 and in *URL2, *REV2.
- * Return suitable anchors in *ANCHOR1 and *ANCHOR2, and targets in
- * *TARGET1 and *TARGET2, based on *URL1 and *URL2.
- * Indicate the corresponding node kinds in *KIND1 and *KIND2, and verify
+ *
+ * Return the resolved URL and peg revision pairs in *URL1, *REV1 and in
+ * *URL2, *REV2.
+ *
+ * Return suitable anchor URL and target pairs in *ANCHOR1, *TARGET1 and
+ * in *ANCHOR2, *TARGET2, corresponding to *URL1 and *URL2.
+ *
+ * (The choice of anchor URLs here appears to be: start with *URL1, *URL2;
+ * then take the parent dir on both sides, unless either of *URL1 or *URL2
+ * is the repository root or the parent dir of *URL1 is unreadable.)
+ *
+ * Set *KIND1 and *KIND2 to the node kinds of *URL1 and *URL2, and verify
* that at least one of the diff targets exists.
+ *
+ * Set *RA_SESSION to an RA session parented at the URL *ANCHOR1.
+ *
* Use client context CTX. Do all allocations in POOL. */
static svn_error_t *
diff_prepare_repos_repos(const char **url1,
@@ -1766,8 +1780,8 @@ diff_prepare_repos_repos(const char **url1,
/* A Theoretical Note From Ben, regarding do_diff().
- This function is really svn_client_diff6(). If you read the public
- API description for svn_client_diff6(), it sounds quite Grand. It
+ This function is really svn_client_diff7(). If you read the public
+ API description for svn_client_diff7(), it sounds quite Grand. It
sounds really generalized and abstract and beautiful: that it will
diff any two paths, be they working-copy paths or URLs, at any two
revisions.
@@ -1791,7 +1805,7 @@ diff_prepare_repos_repos(const char **url1,
pigeonholed into one of these use-cases, we currently bail with a
friendly apology.
- Perhaps someday a brave soul will truly make svn_client_diff6()
+ Perhaps someday a brave soul will truly make svn_client_diff7()
perfectly general. For now, we live with the 90% case. Certainly,
the commandline client only calls this function in legal ways.
When there are other users of svn_client.h, maybe this will become
@@ -1804,7 +1818,7 @@ static svn_error_t *
unsupported_diff_error(svn_error_t *child_err)
{
return svn_error_create(SVN_ERR_INCORRECT_PARAMS, child_err,
- _("Sorry, svn_client_diff6 was called in a way "
+ _("Sorry, svn_client_diff7 was called in a way "
"that is not yet supported"));
}
@@ -1813,12 +1827,14 @@ unsupported_diff_error(svn_error_t *child_err)
PATH1 and PATH2 are both working copy paths. REVISION1 and
REVISION2 are their respective revisions.
- All other options are the same as those passed to svn_client_diff6(). */
+ For now, require PATH1=PATH2, REVISION1='base', REVISION2='working',
+ otherwise return an error.
+
+ Anchor DIFF_PROCESSOR at the requested diff targets.
+
+ All other options are the same as those passed to svn_client_diff7(). */
static svn_error_t *
-diff_wc_wc(const char **root_relpath,
- svn_boolean_t *root_is_dir,
- struct diff_driver_info_t *ddi,
- const char *path1,
+diff_wc_wc(const char *path1,
const svn_opt_revision_t *revision1,
const char *path2,
const svn_opt_revision_t *revision2,
@@ -1844,24 +1860,12 @@ diff_wc_wc(const char **root_relpath,
&& (revision2->kind == svn_opt_revision_working))))
return unsupported_diff_error(
svn_error_create(SVN_ERR_INCORRECT_PARAMS, NULL,
- _("Only diffs between a path's text-base "
- "and its working files are supported at this time"
+ _("A non-URL diff at this time must be either from "
+ "a path's base to the same path's working version "
+ "or between the working versions of two paths"
)));
- if (ddi)
- {
- svn_node_kind_t kind;
-
- SVN_ERR(svn_wc_read_kind2(&kind, ctx->wc_ctx, abspath1,
- TRUE, FALSE, scratch_pool));
-
- if (kind != svn_node_dir)
- ddi->anchor = svn_dirent_dirname(path1, scratch_pool);
- else
- ddi->anchor = path1;
- }
-
- SVN_ERR(svn_wc__diff7(root_relpath, root_is_dir,
+ SVN_ERR(svn_wc__diff7(TRUE,
ctx->wc_ctx, abspath1, depth,
ignore_ancestry, changelists,
diff_processor,
@@ -1878,11 +1882,31 @@ diff_wc_wc(const char **root_relpath,
and the actual two paths compared are determined by following copy
history from PATH_OR_URL2.
- All other options are the same as those passed to svn_client_diff6(). */
+ If DDI is null, anchor the DIFF_PROCESSOR at the requested diff
+ targets. (This case is used by diff-summarize.)
+
+ If DDI is non-null: Set DDI->orig_path_* to the two diff target URLs as
+ resolved at the given revisions; set DDI->anchor to an anchor WC path
+ if either of PATH_OR_URL* is given as a WC path, else to null; set
+ DDI->session_relpath to the repository-relpath of the anchor URL for
+ DDI->orig_path_1. Anchor the DIFF_PROCESSOR at the anchor chosen
+ for the underlying diff implementation if the target on either side
+ is a file, else at the actual requested targets.
+
+ (The choice of WC anchor implementated here for DDI->anchor appears to
+ be: choose PATH_OR_URL2 (if it's a WC path) or else PATH_OR_URL1 (if
+ it's a WC path); then take its parent dir unless both resolved URLs
+ refer to directories.)
+
+ (For the choice of URL anchor for DDI->session_relpath, see
+ diff_prepare_repos_repos().)
+
+ ### Bizarre anchoring. TODO: always anchor DIFF_PROCESSOR at the
+ requested targets.
+
+ All other options are the same as those passed to svn_client_diff7(). */
static svn_error_t *
-diff_repos_repos(const char **root_relpath,
- svn_boolean_t *root_is_dir,
- struct diff_driver_info_t *ddi,
+diff_repos_repos(struct diff_driver_info_t *ddi,
const char *path_or_url1,
const char *path_or_url2,
const svn_opt_revision_t *revision1,
@@ -1974,14 +1998,16 @@ diff_repos_repos(const char **root_relpath,
target1 = str_tmp;
diff_processor = svn_diff__tree_processor_reverse_create(diff_processor,
- NULL,
scratch_pool);
}
/* Filter the first path component using a filter processor, until we fixed
the diff processing to handle this directly */
- if (root_relpath)
- *root_relpath = apr_pstrdup(result_pool, target1);
+ if (!ddi)
+ {
+ diff_processor = svn_diff__tree_processor_filter_create(
+ diff_processor, target1, scratch_pool);
+ }
else if ((kind1 != svn_node_file && kind2 != svn_node_file)
&& target1[0] != '\0')
{
@@ -2048,11 +2074,17 @@ diff_repos_repos(const char **root_relpath,
If REVERSE is TRUE, the diff will be reported in reverse.
- All other options are the same as those passed to svn_client_diff6(). */
+ If DDI is null, anchor the DIFF_PROCESSOR at the requested diff
+ targets. (This case is used by diff-summarize.)
+
+ If DDI is non-null: Set DDI->orig_path_* to the URLs of the two diff
+ targets as resolved at the given revisions; set DDI->anchor to a WC path
+ anchor for PATH2; set DDI->session_relpath to the repository-relpath of
+ the URL of that same anchor WC path.
+
+ All other options are the same as those passed to svn_client_diff7(). */
static svn_error_t *
-diff_repos_wc(const char **root_relpath,
- svn_boolean_t *root_is_dir,
- struct diff_driver_info_t *ddi,
+diff_repos_wc(struct diff_driver_info_t *ddi,
const char *path_or_url1,
const svn_opt_revision_t *revision1,
const svn_opt_revision_t *peg_revision1,
@@ -2130,11 +2162,6 @@ diff_repos_wc(const char **root_relpath,
target = "";
}
- if (root_relpath)
- *root_relpath = apr_pstrdup(result_pool, target);
- if (root_is_dir)
- *root_is_dir = (*target == '\0');
-
/* Fetch the URL of the anchor directory. */
SVN_ERR(svn_dirent_get_absolute(&anchor_abspath, anchor, scratch_pool));
SVN_ERR(svn_wc__node_get_url(&anchor_url, ctx->wc_ctx, anchor_abspath,
@@ -2143,7 +2170,7 @@ diff_repos_wc(const char **root_relpath,
target_url = NULL;
}
- else /* is_copy && revision2->kind == svn_opt_revision_base */
+ else /* is_copy && revision2->kind != svn_opt_revision_base */
{
#if 0
svn_node_kind_t kind;
@@ -2232,10 +2259,14 @@ diff_repos_wc(const char **root_relpath,
anchor_url,
result_pool);
}
+ else
+ {
+ diff_processor = svn_diff__tree_processor_filter_create(
+ diff_processor, target, scratch_pool);
+ }
if (reverse)
- diff_processor = svn_diff__tree_processor_reverse_create(
- diff_processor, NULL, scratch_pool);
+ diff_processor = svn_diff__tree_processor_reverse_create(diff_processor, scratch_pool);
/* Use the diff editor to generate the diff. */
SVN_ERR(svn_ra_has_capability(ra_session, &server_supports_depth,
@@ -2311,12 +2342,84 @@ diff_repos_wc(const char **root_relpath,
return SVN_NO_ERROR;
}
+/* Run diff on shelf SHELF_NAME, if it exists.
+ */
+static svn_error_t *
+diff_shelf(const char *shelf_name,
+ const char *target_abspath,
+ svn_depth_t depth,
+ svn_boolean_t ignore_ancestry,
+ const svn_diff_tree_processor_t *diff_processor,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ svn_error_t *err;
+ svn_client__shelf_t *shelf;
+ svn_client__shelf_version_t *shelf_version;
+ const char *wc_relpath;
+
+ err = svn_client__shelf_open_existing(&shelf,
+ shelf_name, target_abspath,
+ ctx, scratch_pool);
+ if (err && err->apr_err == SVN_ERR_ILLEGAL_TARGET)
+ {
+ svn_error_clear(err);
+ return SVN_NO_ERROR;
+ }
+ else
+ SVN_ERR(err);
+
+ SVN_ERR(svn_client__shelf_version_open(&shelf_version,
+ shelf, shelf->max_version,
+ scratch_pool, scratch_pool));
+ wc_relpath = svn_dirent_skip_ancestor(shelf->wc_root_abspath, target_abspath);
+ SVN_ERR(svn_client__shelf_diff(shelf_version, wc_relpath,
+ depth, ignore_ancestry,
+ diff_processor, scratch_pool));
+ SVN_ERR(svn_client__shelf_close(shelf, scratch_pool));
+
+ return SVN_NO_ERROR;
+}
+
+/* Run diff on all shelves named in CHANGELISTS by a changelist name
+ * of the form "svn:shelf:SHELF_NAME", if they exist.
+ */
+static svn_error_t *
+diff_shelves(const apr_array_header_t *changelists,
+ const char *target_abspath,
+ svn_depth_t depth,
+ svn_boolean_t ignore_ancestry,
+ const svn_diff_tree_processor_t *diff_processor,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ static const char PREFIX[] = "svn:shelf:";
+ static const int PREFIX_LEN = 10;
+ int i;
+
+ if (! changelists)
+ return SVN_NO_ERROR;
+ for (i = 0; i < changelists->nelts; i++)
+ {
+ const char *cl = APR_ARRAY_IDX(changelists, i, const char *);
+
+ if (strncmp(cl, PREFIX, PREFIX_LEN) == 0)
+ {
+ const char *shelf_name = cl + PREFIX_LEN;
+
+ SVN_ERR(diff_shelf(shelf_name, target_abspath,
+ depth, ignore_ancestry,
+ diff_processor, ctx, scratch_pool));
+ }
+ }
+
+ return SVN_NO_ERROR;
+}
+
/* This is basically just the guts of svn_client_diff[_summarize][_peg]6(). */
static svn_error_t *
-do_diff(const char **root_relpath,
- svn_boolean_t *root_is_dir,
- diff_driver_info_t *ddi,
+do_diff(diff_driver_info_t *ddi,
const char *path_or_url1,
const char *path_or_url2,
const svn_opt_revision_t *revision1,
@@ -2344,8 +2447,7 @@ do_diff(const char **root_relpath,
if (is_repos2)
{
/* Ignores changelists. */
- SVN_ERR(diff_repos_repos(root_relpath, root_is_dir,
- ddi,
+ SVN_ERR(diff_repos_repos(ddi,
path_or_url1, path_or_url2,
revision1, revision2,
peg_revision, depth, ignore_ancestry,
@@ -2355,7 +2457,7 @@ do_diff(const char **root_relpath,
}
else /* path_or_url2 is a working copy path */
{
- SVN_ERR(diff_repos_wc(root_relpath, root_is_dir, ddi,
+ SVN_ERR(diff_repos_wc(ddi,
path_or_url1, revision1,
no_peg_revision ? revision1
: peg_revision,
@@ -2370,7 +2472,7 @@ do_diff(const char **root_relpath,
{
if (is_repos2)
{
- SVN_ERR(diff_repos_wc(root_relpath, root_is_dir, ddi,
+ SVN_ERR(diff_repos_wc(ddi,
path_or_url2, revision2,
no_peg_revision ? revision2
: peg_revision,
@@ -2394,19 +2496,51 @@ do_diff(const char **root_relpath,
SVN_ERR(svn_dirent_get_absolute(&abspath2, path_or_url2,
scratch_pool));
- /* ### What about ddi? */
+ if (ddi)
+ {
+ svn_node_kind_t kind1, kind2;
+
+ SVN_ERR(svn_io_check_resolved_path(abspath1, &kind1,
+ scratch_pool));
+ SVN_ERR(svn_io_check_resolved_path(abspath2, &kind2,
+ scratch_pool));
+ if (kind1 == svn_node_dir && kind2 == svn_node_dir)
+ {
+ ddi->anchor = "";
+ }
+ else
+ {
+ ddi->anchor = svn_dirent_basename(abspath1, NULL);
+ }
+ ddi->orig_path_1 = path_or_url1;
+ ddi->orig_path_2 = path_or_url2;
+ }
+
/* Ignores changelists, ignore_ancestry */
- SVN_ERR(svn_client__arbitrary_nodes_diff(root_relpath, root_is_dir,
- abspath1, abspath2,
+ SVN_ERR(svn_client__arbitrary_nodes_diff(abspath1, abspath2,
depth,
diff_processor,
- ctx,
- result_pool, scratch_pool));
+ ctx, scratch_pool));
}
else
{
- SVN_ERR(diff_wc_wc(root_relpath, root_is_dir, ddi,
- path_or_url1, revision1,
+ if (ddi)
+ {
+ ddi->anchor = path_or_url1;
+ ddi->orig_path_1 = path_or_url1;
+ ddi->orig_path_2 = path_or_url2;
+ }
+
+ {
+ const char *abspath1;
+
+ SVN_ERR(svn_dirent_get_absolute(&abspath1, path_or_url1,
+ scratch_pool));
+ SVN_ERR(diff_shelves(changelists, abspath1,
+ depth, ignore_ancestry,
+ diff_processor, ctx, scratch_pool));
+ }
+ SVN_ERR(diff_wc_wc(path_or_url1, revision1,
path_or_url2, revision2,
depth, ignore_ancestry, changelists,
diff_processor, ctx,
@@ -2482,6 +2616,115 @@ create_diff_writer_info(diff_writer_info_t *dwi,
return SVN_NO_ERROR;
}
+/* Set up *DIFF_PROCESSOR and *DDI for normal and git-style diffs (but not
+ * summary diffs).
+ */
+static svn_error_t *
+get_diff_processor(svn_diff_tree_processor_t **diff_processor,
+ struct diff_driver_info_t **ddi,
+ const apr_array_header_t *options,
+ const char *relative_to_dir,
+ svn_boolean_t no_diff_added,
+ svn_boolean_t no_diff_deleted,
+ svn_boolean_t show_copies_as_adds,
+ svn_boolean_t ignore_content_type,
+ svn_boolean_t ignore_properties,
+ svn_boolean_t properties_only,
+ svn_boolean_t use_git_diff_format,
+ svn_boolean_t pretty_print_mergeinfo,
+ const char *header_encoding,
+ svn_stream_t *outstream,
+ svn_stream_t *errstream,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *pool)
+{
+ diff_writer_info_t *dwi = apr_pcalloc(pool, sizeof(*dwi));
+ svn_diff_tree_processor_t *processor;
+
+ /* setup callback and baton */
+
+ SVN_ERR(create_diff_writer_info(dwi, options,
+ ctx->config, pool));
+ dwi->pool = pool;
+ dwi->outstream = outstream;
+ dwi->errstream = errstream;
+ dwi->header_encoding = header_encoding;
+
+ dwi->force_binary = ignore_content_type;
+ dwi->ignore_properties = ignore_properties;
+ dwi->properties_only = properties_only;
+ dwi->relative_to_dir = relative_to_dir;
+ dwi->use_git_diff_format = use_git_diff_format;
+ dwi->no_diff_added = no_diff_added;
+ dwi->no_diff_deleted = no_diff_deleted;
+ dwi->show_copies_as_adds = show_copies_as_adds;
+ dwi->pretty_print_mergeinfo = pretty_print_mergeinfo;
+
+ dwi->cancel_func = ctx->cancel_func;
+ dwi->cancel_baton = ctx->cancel_baton;
+
+ dwi->ddi.wc_ctx = ctx->wc_ctx;
+ dwi->ddi.session_relpath = NULL;
+ dwi->ddi.anchor = NULL;
+
+ processor = svn_diff__tree_processor_create(dwi, pool);
+
+ processor->dir_added = diff_dir_added;
+ processor->dir_changed = diff_dir_changed;
+ processor->dir_deleted = diff_dir_deleted;
+
+ processor->file_added = diff_file_added;
+ processor->file_changed = diff_file_changed;
+ processor->file_deleted = diff_file_deleted;
+
+ *diff_processor = processor;
+ *ddi = &dwi->ddi;
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__get_diff_writer_svn(
+ svn_diff_tree_processor_t **diff_processor,
+ const char *anchor,
+ const char *orig_path_1,
+ const char *orig_path_2,
+ const apr_array_header_t *options,
+ const char *relative_to_dir,
+ svn_boolean_t no_diff_added,
+ svn_boolean_t no_diff_deleted,
+ svn_boolean_t show_copies_as_adds,
+ svn_boolean_t ignore_content_type,
+ svn_boolean_t ignore_properties,
+ svn_boolean_t properties_only,
+ svn_boolean_t pretty_print_mergeinfo,
+ const char *header_encoding,
+ svn_stream_t *outstream,
+ svn_stream_t *errstream,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *pool)
+{
+ struct diff_driver_info_t *ddi;
+
+ SVN_ERR(get_diff_processor(diff_processor, &ddi,
+ options,
+ relative_to_dir,
+ no_diff_added,
+ no_diff_deleted,
+ show_copies_as_adds,
+ ignore_content_type,
+ ignore_properties,
+ properties_only,
+ FALSE /*use_git_diff_format*/,
+ pretty_print_mergeinfo,
+ header_encoding,
+ outstream, errstream,
+ ctx, pool));
+ ddi->anchor = anchor;
+ ddi->orig_path_1 = orig_path_1;
+ ddi->orig_path_2 = orig_path_2;
+ return SVN_NO_ERROR;
+}
+
/*----------------------------------------------------------------------- */
/*** Public Interfaces. ***/
@@ -2519,7 +2762,7 @@ create_diff_writer_info(diff_writer_info_t *dwi,
* These cases require server communication.
*/
svn_error_t *
-svn_client_diff6(const apr_array_header_t *options,
+svn_client_diff7(const apr_array_header_t *options,
const char *path_or_url1,
const svn_opt_revision_t *revision1,
const char *path_or_url2,
@@ -2534,6 +2777,7 @@ svn_client_diff6(const apr_array_header_t *options,
svn_boolean_t ignore_properties,
svn_boolean_t properties_only,
svn_boolean_t use_git_diff_format,
+ svn_boolean_t pretty_print_mergeinfo,
const char *header_encoding,
svn_stream_t *outstream,
svn_stream_t *errstream,
@@ -2541,10 +2785,9 @@ svn_client_diff6(const apr_array_header_t *options,
svn_client_ctx_t *ctx,
apr_pool_t *pool)
{
- diff_writer_info_t dwi = { 0 };
svn_opt_revision_t peg_revision;
- const svn_diff_tree_processor_t *diff_processor;
- svn_diff_tree_processor_t *processor;
+ svn_diff_tree_processor_t *diff_processor;
+ struct diff_driver_info_t *ddi;
if (ignore_properties && properties_only)
return svn_error_create(SVN_ERR_INCORRECT_PARAMS, NULL,
@@ -2554,50 +2797,26 @@ svn_client_diff6(const apr_array_header_t *options,
/* We will never do a pegged diff from here. */
peg_revision.kind = svn_opt_revision_unspecified;
- /* setup callback and baton */
- dwi.ddi.orig_path_1 = path_or_url1;
- dwi.ddi.orig_path_2 = path_or_url2;
-
- SVN_ERR(create_diff_writer_info(&dwi, options,
- ctx->config, pool));
- dwi.pool = pool;
- dwi.outstream = outstream;
- dwi.errstream = errstream;
- dwi.header_encoding = header_encoding;
-
- dwi.force_binary = ignore_content_type;
- dwi.ignore_properties = ignore_properties;
- dwi.properties_only = properties_only;
- dwi.relative_to_dir = relative_to_dir;
- dwi.use_git_diff_format = use_git_diff_format;
- dwi.no_diff_added = no_diff_added;
- dwi.no_diff_deleted = no_diff_deleted;
- dwi.show_copies_as_adds = show_copies_as_adds;
-
- dwi.cancel_func = ctx->cancel_func;
- dwi.cancel_baton = ctx->cancel_baton;
-
- dwi.wc_ctx = ctx->wc_ctx;
- dwi.ddi.session_relpath = NULL;
- dwi.ddi.anchor = NULL;
-
- processor = svn_diff__tree_processor_create(&dwi, pool);
-
- processor->dir_added = diff_dir_added;
- processor->dir_changed = diff_dir_changed;
- processor->dir_deleted = diff_dir_deleted;
-
- processor->file_added = diff_file_added;
- processor->file_changed = diff_file_changed;
- processor->file_deleted = diff_file_deleted;
-
- diff_processor = processor;
-
/* --show-copies-as-adds and --git imply --notice-ancestry */
if (show_copies_as_adds || use_git_diff_format)
ignore_ancestry = FALSE;
- return svn_error_trace(do_diff(NULL, NULL, &dwi.ddi,
+ SVN_ERR(get_diff_processor(&diff_processor, &ddi,
+ options,
+ relative_to_dir,
+ no_diff_added,
+ no_diff_deleted,
+ show_copies_as_adds,
+ ignore_content_type,
+ ignore_properties,
+ properties_only,
+ use_git_diff_format,
+ pretty_print_mergeinfo,
+ header_encoding,
+ outstream, errstream,
+ ctx, pool));
+
+ return svn_error_trace(do_diff(ddi,
path_or_url1, path_or_url2,
revision1, revision2,
&peg_revision, TRUE /* no_peg_revision */,
@@ -2607,7 +2826,7 @@ svn_client_diff6(const apr_array_header_t *options,
}
svn_error_t *
-svn_client_diff_peg6(const apr_array_header_t *options,
+svn_client_diff_peg7(const apr_array_header_t *options,
const char *path_or_url,
const svn_opt_revision_t *peg_revision,
const svn_opt_revision_t *start_revision,
@@ -2622,6 +2841,7 @@ svn_client_diff_peg6(const apr_array_header_t *options,
svn_boolean_t ignore_properties,
svn_boolean_t properties_only,
svn_boolean_t use_git_diff_format,
+ svn_boolean_t pretty_print_mergeinfo,
const char *header_encoding,
svn_stream_t *outstream,
svn_stream_t *errstream,
@@ -2629,59 +2849,34 @@ svn_client_diff_peg6(const apr_array_header_t *options,
svn_client_ctx_t *ctx,
apr_pool_t *pool)
{
- diff_writer_info_t dwi = { 0 };
- const svn_diff_tree_processor_t *diff_processor;
- svn_diff_tree_processor_t *processor;
+ svn_diff_tree_processor_t *diff_processor;
+ struct diff_driver_info_t *ddi;
if (ignore_properties && properties_only)
return svn_error_create(SVN_ERR_INCORRECT_PARAMS, NULL,
_("Cannot ignore properties and show only "
"properties at the same time"));
- /* setup callback and baton */
- dwi.ddi.orig_path_1 = path_or_url;
- dwi.ddi.orig_path_2 = path_or_url;
-
- SVN_ERR(create_diff_writer_info(&dwi, options,
- ctx->config, pool));
- dwi.pool = pool;
- dwi.outstream = outstream;
- dwi.errstream = errstream;
- dwi.header_encoding = header_encoding;
-
- dwi.force_binary = ignore_content_type;
- dwi.ignore_properties = ignore_properties;
- dwi.properties_only = properties_only;
- dwi.relative_to_dir = relative_to_dir;
- dwi.use_git_diff_format = use_git_diff_format;
- dwi.no_diff_added = no_diff_added;
- dwi.no_diff_deleted = no_diff_deleted;
- dwi.show_copies_as_adds = show_copies_as_adds;
-
- dwi.cancel_func = ctx->cancel_func;
- dwi.cancel_baton = ctx->cancel_baton;
-
- dwi.wc_ctx = ctx->wc_ctx;
- dwi.ddi.session_relpath = NULL;
- dwi.ddi.anchor = NULL;
-
- processor = svn_diff__tree_processor_create(&dwi, pool);
-
- processor->dir_added = diff_dir_added;
- processor->dir_changed = diff_dir_changed;
- processor->dir_deleted = diff_dir_deleted;
-
- processor->file_added = diff_file_added;
- processor->file_changed = diff_file_changed;
- processor->file_deleted = diff_file_deleted;
-
- diff_processor = processor;
-
/* --show-copies-as-adds and --git imply --notice-ancestry */
if (show_copies_as_adds || use_git_diff_format)
ignore_ancestry = FALSE;
- return svn_error_trace(do_diff(NULL, NULL, &dwi.ddi,
+ SVN_ERR(get_diff_processor(&diff_processor, &ddi,
+ options,
+ relative_to_dir,
+ no_diff_added,
+ no_diff_deleted,
+ show_copies_as_adds,
+ ignore_content_type,
+ ignore_properties,
+ properties_only,
+ use_git_diff_format,
+ pretty_print_mergeinfo,
+ header_encoding,
+ outstream, errstream,
+ ctx, pool));
+
+ return svn_error_trace(do_diff(ddi,
path_or_url, path_or_url,
start_revision, end_revision,
peg_revision, FALSE /* no_peg_revision */,
@@ -2703,19 +2898,17 @@ svn_client_diff_summarize2(const char *path_or_url1,
svn_client_ctx_t *ctx,
apr_pool_t *pool)
{
- const svn_diff_tree_processor_t *diff_processor;
+ svn_diff_tree_processor_t *diff_processor;
svn_opt_revision_t peg_revision;
- const char **p_root_relpath;
/* We will never do a pegged diff from here. */
peg_revision.kind = svn_opt_revision_unspecified;
- SVN_ERR(svn_client__get_diff_summarize_callbacks(
- &diff_processor, &p_root_relpath,
+ SVN_ERR(svn_client__get_diff_summarize_callbacks(&diff_processor,
summarize_func, summarize_baton,
- path_or_url1, pool, pool));
+ pool, pool));
- return svn_error_trace(do_diff(p_root_relpath, NULL, NULL,
+ return svn_error_trace(do_diff(NULL,
path_or_url1, path_or_url2,
revision1, revision2,
&peg_revision, TRUE /* no_peg_revision */,
@@ -2737,15 +2930,13 @@ svn_client_diff_summarize_peg2(const char *path_or_url,
svn_client_ctx_t *ctx,
apr_pool_t *pool)
{
- const svn_diff_tree_processor_t *diff_processor;
- const char **p_root_relpath;
+ svn_diff_tree_processor_t *diff_processor;
- SVN_ERR(svn_client__get_diff_summarize_callbacks(
- &diff_processor, &p_root_relpath,
+ SVN_ERR(svn_client__get_diff_summarize_callbacks(&diff_processor,
summarize_func, summarize_baton,
- path_or_url, pool, pool));
+ pool, pool));
- return svn_error_trace(do_diff(p_root_relpath, NULL, NULL,
+ return svn_error_trace(do_diff(NULL,
path_or_url, path_or_url,
start_revision, end_revision,
peg_revision, FALSE /* no_peg_revision */,
diff --git a/subversion/libsvn_client/diff_local.c b/subversion/libsvn_client/diff_local.c
index 056ee53..feac90d 100644
--- a/subversion/libsvn_client/diff_local.c
+++ b/subversion/libsvn_client/diff_local.c
@@ -647,20 +647,17 @@ do_dir_diff(const char *left_abspath,
}
svn_error_t *
-svn_client__arbitrary_nodes_diff(const char **root_relpath,
- svn_boolean_t *root_is_dir,
- const char *left_abspath,
+svn_client__arbitrary_nodes_diff(const char *left_abspath,
const char *right_abspath,
svn_depth_t depth,
const svn_diff_tree_processor_t *diff_processor,
svn_client_ctx_t *ctx,
- apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
{
svn_node_kind_t left_kind;
svn_node_kind_t right_kind;
- const char *left_root_abspath;
- const char *right_root_abspath;
+ const char *left_root_abspath = left_abspath;
+ const char *right_root_abspath = right_abspath;
svn_boolean_t left_before_right = TRUE; /* Future argument? */
if (depth == svn_depth_unknown)
@@ -671,28 +668,6 @@ svn_client__arbitrary_nodes_diff(const char **root_relpath,
if (left_kind == svn_node_dir && right_kind == svn_node_dir)
{
- left_root_abspath = left_abspath;
- right_root_abspath = right_abspath;
-
- if (root_relpath)
- *root_relpath = "";
- if (root_is_dir)
- *root_is_dir = TRUE;
- }
- else
- {
- svn_dirent_split(&left_root_abspath, root_relpath, left_abspath,
- scratch_pool);
- right_root_abspath = svn_dirent_dirname(right_abspath, scratch_pool);
-
- if (root_relpath)
- *root_relpath = apr_pstrdup(result_pool, *root_relpath);
- if (root_is_dir)
- *root_is_dir = FALSE;
- }
-
- if (left_kind == svn_node_dir && right_kind == svn_node_dir)
- {
SVN_ERR(do_dir_diff(left_abspath, right_abspath,
left_root_abspath, right_root_abspath,
FALSE, FALSE, left_before_right,
@@ -710,79 +685,48 @@ svn_client__arbitrary_nodes_diff(const char **root_relpath,
else if (left_kind == svn_node_file || left_kind == svn_node_dir
|| right_kind == svn_node_file || right_kind == svn_node_dir)
{
- void *dir_baton;
- svn_boolean_t skip = FALSE;
- svn_boolean_t skip_children = FALSE;
- svn_diff_source_t *left_src;
- svn_diff_source_t *right_src;
-
- left_src = svn_diff__source_create(SVN_INVALID_REVNUM, scratch_pool);
- right_src = svn_diff__source_create(SVN_INVALID_REVNUM, scratch_pool);
-
- /* The root is replaced... */
- /* Report delete and/or add */
-
- SVN_ERR(diff_processor->dir_opened(&dir_baton, &skip, &skip_children, "",
- left_src,
- right_src,
- NULL /* copyfrom_src */,
- NULL,
- diff_processor,
- scratch_pool, scratch_pool));
-
- if (skip)
- return SVN_NO_ERROR;
- else if (!skip_children)
+ /* The root is added/deleted/replaced. Report delete and/or add. */
+ if (left_before_right)
{
- if (left_before_right)
- {
- if (left_kind == svn_node_file)
- SVN_ERR(do_file_diff(left_abspath, right_abspath,
- left_root_abspath, right_root_abspath,
- TRUE, FALSE, NULL /* parent_baton */,
- diff_processor, ctx, scratch_pool));
- else if (left_kind == svn_node_dir)
- SVN_ERR(do_dir_diff(left_abspath, right_abspath,
- left_root_abspath, right_root_abspath,
- TRUE, FALSE, left_before_right,
- depth, NULL /* parent_baton */,
- diff_processor, ctx, scratch_pool));
- }
-
- if (right_kind == svn_node_file)
+ if (left_kind == svn_node_file)
SVN_ERR(do_file_diff(left_abspath, right_abspath,
left_root_abspath, right_root_abspath,
- FALSE, TRUE, NULL /* parent_baton */,
+ TRUE, FALSE, NULL /* parent_baton */,
diff_processor, ctx, scratch_pool));
- else if (right_kind == svn_node_dir)
+ else if (left_kind == svn_node_dir)
SVN_ERR(do_dir_diff(left_abspath, right_abspath,
left_root_abspath, right_root_abspath,
- FALSE, TRUE, left_before_right,
+ TRUE, FALSE, left_before_right,
depth, NULL /* parent_baton */,
diff_processor, ctx, scratch_pool));
-
- if (! left_before_right)
- {
- if (left_kind == svn_node_file)
- SVN_ERR(do_file_diff(left_abspath, right_abspath,
- left_root_abspath, right_root_abspath,
- TRUE, FALSE, NULL /* parent_baton */,
- diff_processor, ctx, scratch_pool));
- else if (left_kind == svn_node_dir)
- SVN_ERR(do_dir_diff(left_abspath, right_abspath,
- left_root_abspath, right_root_abspath,
- TRUE, FALSE, left_before_right,
- depth, NULL /* parent_baton */,
- diff_processor, ctx, scratch_pool));
- }
}
- SVN_ERR(diff_processor->dir_closed("",
- left_src,
- right_src,
- dir_baton,
- diff_processor,
- scratch_pool));
+ if (right_kind == svn_node_file)
+ SVN_ERR(do_file_diff(left_abspath, right_abspath,
+ left_root_abspath, right_root_abspath,
+ FALSE, TRUE, NULL /* parent_baton */,
+ diff_processor, ctx, scratch_pool));
+ else if (right_kind == svn_node_dir)
+ SVN_ERR(do_dir_diff(left_abspath, right_abspath,
+ left_root_abspath, right_root_abspath,
+ FALSE, TRUE, left_before_right,
+ depth, NULL /* parent_baton */,
+ diff_processor, ctx, scratch_pool));
+
+ if (! left_before_right)
+ {
+ if (left_kind == svn_node_file)
+ SVN_ERR(do_file_diff(left_abspath, right_abspath,
+ left_root_abspath, right_root_abspath,
+ TRUE, FALSE, NULL /* parent_baton */,
+ diff_processor, ctx, scratch_pool));
+ else if (left_kind == svn_node_dir)
+ SVN_ERR(do_dir_diff(left_abspath, right_abspath,
+ left_root_abspath, right_root_abspath,
+ TRUE, FALSE, left_before_right,
+ depth, NULL /* parent_baton */,
+ diff_processor, ctx, scratch_pool));
+ }
}
else
return svn_error_createf(SVN_ERR_NODE_UNEXPECTED_KIND, NULL,
diff --git a/subversion/libsvn_client/diff_summarize.c b/subversion/libsvn_client/diff_summarize.c
index 9e258cd..f4972a3 100644
--- a/subversion/libsvn_client/diff_summarize.c
+++ b/subversion/libsvn_client/diff_summarize.c
@@ -36,11 +36,6 @@
/* Diff callbacks baton. */
struct summarize_baton_t {
- apr_pool_t *baton_pool; /* For allocating skip_path */
-
- /* The target path of the diff, relative to the anchor; "" if target == anchor. */
- const char *skip_relpath;
-
/* The summarize callback passed down from the API */
svn_client_diff_summarize_func_t summarize_func;
@@ -49,9 +44,8 @@ struct summarize_baton_t {
};
/* Call B->summarize_func with B->summarize_func_baton, passing it a
- * summary object composed from PATH (but made to be relative to the target
- * of the diff), SUMMARIZE_KIND, PROP_CHANGED (or FALSE if the action is an
- * add or delete) and NODE_KIND. */
+ * summary object composed from PATH, SUMMARIZE_KIND, PROP_CHANGED (or
+ * FALSE if the action is an add or delete) and NODE_KIND. */
static svn_error_t *
send_summary(struct summarize_baton_t *b,
const char *path,
@@ -65,9 +59,7 @@ send_summary(struct summarize_baton_t *b,
SVN_ERR_ASSERT(summarize_kind != svn_client_diff_summarize_kind_normal
|| prop_changed);
- /* PATH is relative to the anchor of the diff, but SUM->path needs to be
- relative to the target of the diff. */
- sum->path = svn_relpath_skip_ancestor(b->skip_relpath, path);
+ sum->path = path;
sum->summarize_kind = summarize_kind;
if (summarize_kind == svn_client_diff_summarize_kind_modified
|| summarize_kind == svn_client_diff_summarize_kind_normal)
@@ -265,18 +257,15 @@ diff_file_deleted(const char *relpath,
svn_error_t *
svn_client__get_diff_summarize_callbacks(
- const svn_diff_tree_processor_t **diff_processor,
- const char ***p_root_relpath,
+ svn_diff_tree_processor_t **diff_processor,
svn_client_diff_summarize_func_t summarize_func,
void *summarize_baton,
- const char *original_target,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
{
svn_diff_tree_processor_t *dp;
struct summarize_baton_t *b = apr_pcalloc(result_pool, sizeof(*b));
- b->baton_pool = result_pool;
b->summarize_func = summarize_func;
b->summarize_func_baton = summarize_baton;
@@ -293,7 +282,6 @@ svn_client__get_diff_summarize_callbacks(
dp->dir_added = diff_dir_added;
*diff_processor = dp;
- *p_root_relpath = &b->skip_relpath;
return SVN_NO_ERROR;
}
diff --git a/subversion/libsvn_client/export.c b/subversion/libsvn_client/export.c
index 2fc2dc8..b335f2a 100644
--- a/subversion/libsvn_client/export.c
+++ b/subversion/libsvn_client/export.c
@@ -453,12 +453,12 @@ export_node(void *baton,
* If PATH exists but is a file, then error with SVN_ERR_WC_NOT_WORKING_COPY.
*
* If PATH is a already a directory, then error with
- * SVN_ERR_WC_OBSTRUCTED_UPDATE, unless FORCE, in which case just
+ * SVN_ERR_WC_OBSTRUCTED_UPDATE, unless OVERWRITE, in which case just
* export into PATH with no error.
*/
static svn_error_t *
open_root_internal(const char *path,
- svn_boolean_t force,
+ svn_boolean_t overwrite,
svn_wc_notify_func2_t notify_func,
void *notify_baton,
apr_pool_t *pool)
@@ -472,7 +472,7 @@ open_root_internal(const char *path,
return svn_error_createf(SVN_ERR_WC_NOT_WORKING_COPY, NULL,
_("'%s' exists and is not a directory"),
svn_dirent_local_style(path, pool));
- else if ((kind != svn_node_dir) || (! force))
+ else if ((kind != svn_node_dir) || (! overwrite))
return svn_error_createf(SVN_ERR_WC_OBSTRUCTED_UPDATE, NULL,
_("'%s' already exists"),
svn_dirent_local_style(path, pool));
@@ -501,7 +501,7 @@ struct edit_baton
const char *repos_root_url;
const char *root_path;
const char *root_url;
- svn_boolean_t force;
+ svn_boolean_t overwrite;
svn_revnum_t *target_revision;
apr_hash_t *externals;
const char *native_eol;
@@ -587,7 +587,7 @@ open_root(void *edit_baton,
struct edit_baton *eb = edit_baton;
struct dir_baton *db = apr_pcalloc(pool, sizeof(*db));
- SVN_ERR(open_root_internal(eb->root_path, eb->force,
+ SVN_ERR(open_root_internal(eb->root_path, eb->overwrite,
eb->notify_func, eb->notify_baton, pool));
/* Build our dir baton. */
@@ -621,7 +621,7 @@ add_directory(const char *path,
return svn_error_createf(SVN_ERR_WC_NOT_WORKING_COPY, NULL,
_("'%s' exists and is not a directory"),
svn_dirent_local_style(full_path, pool));
- else if (! (kind == svn_node_dir && eb->force))
+ else if (! (kind == svn_node_dir && eb->overwrite))
return svn_error_createf(SVN_ERR_WC_OBSTRUCTED_UPDATE, NULL,
_("'%s' already exists"),
svn_dirent_local_style(full_path, pool));
@@ -1077,7 +1077,7 @@ add_directory_ev2(void *baton,
return svn_error_createf(SVN_ERR_WC_NOT_WORKING_COPY, NULL,
_("'%s' exists and is not a directory"),
svn_dirent_local_style(full_path, scratch_pool));
- else if (! (kind == svn_node_dir && eb->force))
+ else if (! (kind == svn_node_dir && eb->overwrite))
return svn_error_createf(SVN_ERR_WC_OBSTRUCTED_UPDATE, NULL,
_("'%s' already exists"),
svn_dirent_local_style(full_path, scratch_pool));
@@ -1141,7 +1141,7 @@ get_editor_ev2(const svn_delta_editor_t **export_editor,
exb, result_pool));
/* Create the root of the export. */
- SVN_ERR(open_root_internal(eb->root_path, eb->force, eb->notify_func,
+ SVN_ERR(open_root_internal(eb->root_path, eb->overwrite, eb->notify_func,
eb->notify_baton, scratch_pool));
return SVN_NO_ERROR;
@@ -1153,7 +1153,6 @@ export_file_ev2(const char *from_url,
struct edit_baton *eb,
svn_client__pathrev_t *loc,
svn_ra_session_t *ra_session,
- svn_boolean_t overwrite,
apr_pool_t *scratch_pool)
{
apr_hash_t *props;
@@ -1177,7 +1176,7 @@ export_file_ev2(const char *from_url,
SVN_ERR(svn_io_check_path(to_path, &to_kind, scratch_pool));
if ((to_kind == svn_node_file || to_kind == svn_node_unknown) &&
- ! overwrite)
+ ! eb->overwrite)
return svn_error_createf(SVN_ERR_ILLEGAL_TARGET, NULL,
_("Destination file '%s' exists, and "
"will not be overwritten unless forced"),
@@ -1207,7 +1206,6 @@ export_file(const char *from_url,
struct edit_baton *eb,
svn_client__pathrev_t *loc,
svn_ra_session_t *ra_session,
- svn_boolean_t overwrite,
apr_pool_t *scratch_pool)
{
apr_hash_t *props;
@@ -1232,7 +1230,7 @@ export_file(const char *from_url,
SVN_ERR(svn_io_check_path(to_path, &to_kind, scratch_pool));
if ((to_kind == svn_node_file || to_kind == svn_node_unknown) &&
- ! overwrite)
+ ! eb->overwrite)
return svn_error_createf(SVN_ERR_ILLEGAL_TARGET, NULL,
_("Destination file '%s' exists, and "
"will not be overwritten unless forced"),
@@ -1289,7 +1287,6 @@ export_directory(const char *from_url,
struct edit_baton *eb,
svn_client__pathrev_t *loc,
svn_ra_session_t *ra_session,
- svn_boolean_t overwrite,
svn_boolean_t ignore_externals,
svn_boolean_t ignore_keywords,
svn_depth_t depth,
@@ -1344,7 +1341,7 @@ export_directory(const char *from_url,
SVN_ERR(svn_io_check_path(to_path, &kind, scratch_pool));
if (kind == svn_node_none)
SVN_ERR(open_root_internal
- (to_path, overwrite, ctx->notify_func2,
+ (to_path, eb->overwrite, ctx->notify_func2,
ctx->notify_baton2, scratch_pool));
if (! ignore_externals && depth == svn_depth_infinity)
@@ -1415,7 +1412,7 @@ svn_client_export5(svn_revnum_t *result_rev,
SVN_ERR(svn_ra_get_repos_root2(ra_session, &eb->repos_root_url, pool));
eb->root_path = to_path;
eb->root_url = loc->url;
- eb->force = overwrite;
+ eb->overwrite = overwrite;
eb->target_revision = &edit_revision;
eb->externals = apr_hash_make(pool);
eb->native_eol = native_eol;
@@ -1431,15 +1428,15 @@ svn_client_export5(svn_revnum_t *result_rev,
{
if (!ENABLE_EV2_IMPL)
SVN_ERR(export_file(from_url, to_path, eb, loc, ra_session,
- overwrite, pool));
+ pool));
else
SVN_ERR(export_file_ev2(from_url, to_path, eb, loc,
- ra_session, overwrite, pool));
+ ra_session, pool));
}
else if (kind == svn_node_dir)
{
SVN_ERR(export_directory(from_url, to_path,
- eb, loc, ra_session, overwrite,
+ eb, loc, ra_session,
ignore_externals, ignore_keywords, depth,
native_eol, ctx, pool));
}
diff --git a/subversion/libsvn_client/layout.c b/subversion/libsvn_client/layout.c
new file mode 100644
index 0000000..bfa7ec1
--- /dev/null
+++ b/subversion/libsvn_client/layout.c
@@ -0,0 +1,289 @@
+/*
+* layout.c: code to list and update the working copy layout
+*
+* ====================================================================
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements. See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership. The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied. See the License for the
+* specific language governing permissions and limitations
+* under the License.
+* ====================================================================
+*/
+
+/* ==================================================================== */
+
+
+
+/*** Includes. ***/
+
+#include "svn_hash.h"
+#include "svn_dirent_uri.h"
+#include "svn_path.h"
+#include "svn_wc.h"
+#include "svn_client.h"
+#include "svn_error.h"
+#include "svn_pools.h"
+#include "client.h"
+
+#include "svn_private_config.h"
+#include "private/svn_wc_private.h"
+
+struct layout_item_t
+{
+ const char *local_abspath;
+ const char *url;
+ svn_revnum_t revision;
+ svn_depth_t depth;
+ struct layout_item_t *ancestor;
+ apr_pool_t *pool;
+};
+
+struct client_layout_baton_t
+{
+ const char *root_abspath;
+ svn_wc_context_t *wc_ctx;
+ const char *repos_root_url;
+
+ struct layout_item_t *stack;
+ apr_pool_t *root_pool;
+
+ svn_client__layout_func_t layout;
+ void *layout_baton;
+};
+
+
+static svn_error_t *
+layout_set_path(void *report_baton,
+ const char *path,
+ svn_revnum_t revision,
+ svn_depth_t depth,
+ svn_boolean_t start_empty,
+ const char *lock_token,
+ apr_pool_t *pool)
+{
+ struct client_layout_baton_t *lb = report_baton;
+ const char *local_abspath = svn_dirent_join(lb->root_abspath, path, pool);
+ struct layout_item_t *it;
+ apr_pool_t *item_pool;
+ svn_depth_t expected_depth;
+
+ while (lb->stack
+ && !svn_dirent_is_ancestor(lb->stack->local_abspath, local_abspath))
+ {
+ it = lb->stack;
+ lb->stack = it->ancestor;
+ svn_pool_destroy(it->pool);
+ }
+
+ item_pool = svn_pool_create(lb->stack ? lb->stack->pool
+ : lb->root_pool);
+
+ it = apr_pcalloc(item_pool, sizeof(*it));
+ it->pool = item_pool;
+ it->local_abspath = apr_pstrdup(item_pool, local_abspath);
+ it->depth = depth;
+ it->revision = revision;
+ if (lb->stack)
+ {
+ it->url = svn_path_url_add_component2(
+ lb->stack->url,
+ svn_dirent_skip_ancestor(lb->stack->local_abspath,
+ local_abspath),
+ item_pool);
+ }
+ else
+ {
+ const char *repos_relpath, *repos_root_url;
+
+ SVN_ERR(svn_wc__node_get_base(NULL, NULL, &repos_relpath,
+ &repos_root_url, NULL, NULL,
+ lb->wc_ctx, local_abspath,
+ FALSE /* ignore_enoent */,
+ pool, pool));
+
+ lb->repos_root_url = apr_pstrdup(lb->root_pool, repos_root_url);
+ it->url = svn_path_url_add_component2(repos_root_url, repos_relpath,
+ item_pool);
+ }
+ it->ancestor = lb->stack;
+ lb->stack = it;
+
+ if (!it->ancestor)
+ expected_depth = depth;
+ else if (it->ancestor->depth == svn_depth_infinity)
+ expected_depth = svn_depth_infinity;
+ else
+ expected_depth = svn_depth_empty;
+
+ return svn_error_trace(lb->layout(lb->layout_baton,
+ it->local_abspath,
+ lb->repos_root_url,
+ FALSE /* not-present */,
+ FALSE /* url changed */,
+ it->url,
+ it->ancestor
+ ? it->ancestor->revision != it->revision
+ : FALSE,
+ it->revision,
+ (depth != expected_depth),
+ it->depth,
+ pool));
+ }
+
+static svn_error_t *
+layout_link_path(void *report_baton,
+ const char *path,
+ const char *url,
+ svn_revnum_t revision,
+ svn_depth_t depth,
+ svn_boolean_t start_empty,
+ const char *lock_token,
+ apr_pool_t *pool)
+{
+ struct client_layout_baton_t *lb = report_baton;
+ const char *local_abspath = svn_dirent_join(lb->root_abspath, path, pool);
+ struct layout_item_t *it;
+ apr_pool_t *item_pool;
+ svn_depth_t expected_depth;
+
+ SVN_ERR_ASSERT(lb->stack); /* Always below root entry */
+
+ while (!svn_dirent_is_ancestor(lb->stack->local_abspath, local_abspath))
+ {
+ it = lb->stack;
+ lb->stack = it->ancestor;
+ svn_pool_destroy(it->pool);
+ }
+
+ item_pool = svn_pool_create(lb->stack ? lb->stack->pool
+ : lb->root_pool);
+
+ it = apr_pcalloc(item_pool, sizeof(*it));
+ it->pool = item_pool;
+ it->local_abspath = apr_pstrdup(item_pool, local_abspath);
+ it->depth = depth;
+ it->revision = revision;
+ it->url = apr_pstrdup(item_pool, url);
+
+ it->ancestor = lb->stack;
+ lb->stack = it;
+
+ if (it->ancestor->depth == svn_depth_infinity)
+ expected_depth = svn_depth_infinity;
+ else
+ expected_depth = svn_depth_empty;
+
+ return svn_error_trace(lb->layout(lb->layout_baton,
+ it->local_abspath,
+ lb->repos_root_url,
+ FALSE /* not-present */,
+ TRUE /* url changed */,
+ it->url,
+ it->ancestor
+ ? it->ancestor->revision != it->revision
+ : FALSE,
+ it->revision,
+ (depth != expected_depth),
+ it->depth,
+ pool));
+}
+
+static svn_error_t *
+layout_delete_path(void *report_baton,
+ const char *path,
+ apr_pool_t *pool)
+{
+ struct client_layout_baton_t *lb = report_baton;
+ const char *local_abspath = svn_dirent_join(lb->root_abspath, path, pool);
+ struct layout_item_t *it;
+
+ SVN_ERR_ASSERT(lb->stack); /* Always below root entry */
+
+ while (!svn_dirent_is_ancestor(lb->stack->local_abspath, local_abspath))
+ {
+ it = lb->stack;
+ lb->stack = it->ancestor;
+ svn_pool_destroy(it->pool);
+ }
+
+ return svn_error_trace(lb->layout(lb->layout_baton,
+ local_abspath,
+ lb->repos_root_url,
+ TRUE /* not-present */,
+ FALSE /* url changed */,
+ NULL /* no-url */,
+ FALSE /* revision changed */,
+ SVN_INVALID_REVNUM,
+ FALSE /* depth changed */,
+ svn_depth_unknown,
+ pool));
+}
+
+static svn_error_t *
+layout_finish_report(void *report_baton,
+ apr_pool_t *pool)
+{
+ /*struct client_layout_baton_t *lb = report_baton;*/
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+layout_abort_report(void *report_baton,
+ apr_pool_t *pool)
+{
+ /*struct client_layout_baton_t *lb = report_baton;*/
+ return SVN_NO_ERROR;
+}
+
+static const svn_ra_reporter3_t layout_reporter =
+{
+ layout_set_path,
+ layout_delete_path,
+ layout_link_path,
+ layout_finish_report,
+ layout_abort_report
+};
+
+svn_error_t *
+svn_client__layout_list(const char *local_abspath,
+ svn_client__layout_func_t layout,
+ void *layout_baton,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ struct client_layout_baton_t lb;
+
+ lb.root_abspath = local_abspath;
+ lb.root_pool = scratch_pool;
+ lb.wc_ctx = ctx->wc_ctx;
+ lb.repos_root_url = NULL; /* Filled in later */
+ lb.stack = NULL;
+
+ lb.layout = layout;
+ lb.layout_baton = layout_baton;
+
+ /* Drive the reporter structure, describing the revisions within
+ LOCAL_ABSPATH. */
+ SVN_ERR(svn_wc_crawl_revisions5(ctx->wc_ctx, local_abspath,
+ &layout_reporter, &lb,
+ FALSE /* restore_files */,
+ svn_depth_infinity,
+ TRUE /* honor_depth_exclude */,
+ FALSE /* depth_compatibility_trick */,
+ FALSE /* use_commit_times */,
+ ctx->cancel_func, ctx->cancel_baton,
+ ctx->notify_func2, ctx->notify_baton2,
+ scratch_pool));
+ return SVN_NO_ERROR;
+}
diff --git a/subversion/libsvn_client/list.c b/subversion/libsvn_client/list.c
index 78433c3..d52de6d 100644
--- a/subversion/libsvn_client/list.c
+++ b/subversion/libsvn_client/list.c
@@ -394,7 +394,7 @@ list_internal(const char *path_or_url,
svn_membuf__create(&scratch_buffer, 256, pool);
/* Report the dirent for the target. */
- if (match_patterns(svn_dirent_dirname(fs_path, pool), patterns,
+ if (match_patterns(svn_dirent_basename(fs_path, pool), patterns,
&scratch_buffer))
SVN_ERR(list_func(baton, "", dirent, locks
? (svn_hash_gets(locks, fs_path))
diff --git a/subversion/libsvn_client/merge.c b/subversion/libsvn_client/merge.c
index 21341b9..72e5c5a 100644
--- a/subversion/libsvn_client/merge.c
+++ b/subversion/libsvn_client/merge.c
@@ -215,6 +215,21 @@
/*** Repos-Diff Editor Callbacks ***/
+struct merge_cmd_baton_t;
+
+struct notify_begin_state_t
+{
+ /* Cache of which abspath was last notified. */
+ const char *last_abspath;
+
+ /* Reference to the main merge baton */
+ struct merge_cmd_baton_t *merge_b;
+
+ /* the wrapped notification callback */
+ svn_wc_notify_func2_t notify_func2;
+ void *notify_baton2;
+};
+
typedef struct merge_cmd_baton_t {
svn_boolean_t force_delete; /* Delete a file/dir even if modified */
svn_boolean_t dry_run;
@@ -242,11 +257,15 @@ typedef struct merge_cmd_baton_t {
/* Rangelist containing single range which describes the gap, if any,
in the natural history of the merge source currently being processed.
- See http://subversion.tigris.org/issues/show_bug.cgi?id=3432.
+ See https://issues.apache.org/jira/browse/SVN-3432.
Updated during each call to do_directory_merge(). May be NULL if there
is no gap. */
svn_rangelist_t *implicit_src_gap;
+ /* Reference to the one-and-only CHILDREN_WITH_MERGEINFO (see global
+ comment) or a similar list for single-file-merges */
+ const apr_array_header_t *children_with_mergeinfo;
+
svn_client_ctx_t *ctx; /* Client context for callbacks, etc. */
/* The list of any paths which remained in conflict after a
@@ -319,17 +338,10 @@ typedef struct merge_cmd_baton_t {
or do_file_merge() in do_merge(). */
apr_pool_t *pool;
-
- /* State for notify_merge_begin() */
- struct notify_begin_state_t
- {
- /* Cache of which abspath was last notified. */
- const char *last_abspath;
-
- /* Reference to the one-and-only CHILDREN_WITH_MERGEINFO (see global
- comment) or a similar list for single-file-merges */
- const apr_array_header_t *nodes_with_mergeinfo;
- } notify_begin;
+ /* Our notification callback, that adds a 'begin' notification */
+ svn_wc_notify_func2_t notify_func;
+ void *notify_baton;
+ struct notify_begin_state_t notify_begin;
} merge_cmd_baton_t;
@@ -340,17 +352,25 @@ typedef struct merge_cmd_baton_t {
merge source is an ancestor of the right-side (or vice-versa), the merge
source is in the same repository as the merge target, and we are not
ignoring mergeinfo. */
-#define HONOR_MERGEINFO(merge_b) ((merge_b)->mergeinfo_capable \
- && (merge_b)->merge_source.ancestral \
- && (merge_b)->same_repos \
- && (! (merge_b)->ignore_mergeinfo))
+static svn_boolean_t
+HONOR_MERGEINFO(const merge_cmd_baton_t *merge_b)
+{
+ return (merge_b->mergeinfo_capable
+ && merge_b->merge_source.ancestral
+ && merge_b->same_repos
+ && (!merge_b->ignore_mergeinfo));
+}
/* Return TRUE iff we should be recording mergeinfo for the merge described
by MERGE_B. Specifically, that is if we are honoring mergeinfo and the
merge is not a dry run. */
-#define RECORD_MERGEINFO(merge_b) (HONOR_MERGEINFO(merge_b) \
- && !(merge_b)->dry_run)
+static svn_boolean_t
+RECORD_MERGEINFO(const merge_cmd_baton_t *merge_b)
+{
+ return (HONOR_MERGEINFO(merge_b)
+ && !merge_b->dry_run);
+}
/*-----------------------------------------------------------------------*/
@@ -1226,13 +1246,6 @@ struct merge_file_baton_t
svn_boolean_t add_is_replace; /* Add is second part of replace */
};
-/* Forward declaration */
-static svn_error_t *
-notify_merge_begin(merge_cmd_baton_t *merge_b,
- const char *local_abspath,
- svn_boolean_t delete_action,
- apr_pool_t *scratch_pool);
-
/* Record the skip for future processing and (later) produce the
skip notification */
static svn_error_t *
@@ -1253,18 +1266,16 @@ record_skip(merge_cmd_baton_t *merge_b,
store_path(merge_b->skipped_abspaths, local_abspath);
}
- if (merge_b->ctx->notify_func2)
+ if (merge_b->notify_func)
{
svn_wc_notify_t *notify;
- SVN_ERR(notify_merge_begin(merge_b, local_abspath, FALSE, scratch_pool));
-
notify = svn_wc_create_notify(local_abspath, action, scratch_pool);
notify->kind = kind;
notify->content_state = notify->prop_state = state;
- merge_b->ctx->notify_func2(merge_b->ctx->notify_baton2, notify,
- scratch_pool);
+ merge_b->notify_func(merge_b->notify_baton, notify,
+ scratch_pool);
}
return SVN_NO_ERROR;
}
@@ -1364,7 +1375,7 @@ record_tree_conflict(merge_cmd_baton_t *merge_b,
* but figure out the actual revision range merged. */
(void)find_nearest_ancestor_with_intersecting_ranges(
&(range.start), &(range.end),
- merge_b->notify_begin.nodes_with_mergeinfo,
+ merge_b->children_with_mergeinfo,
action != svn_wc_conflict_action_delete,
local_abspath);
loc1 = svn_client__pathrev_dup(merge_b->merge_source.loc1,
@@ -1423,18 +1434,16 @@ record_tree_conflict(merge_cmd_baton_t *merge_b,
}
/* On a replacement we currently get two tree conflicts */
- if (merge_b->ctx->notify_func2 && notify_tc)
+ if (merge_b->notify_func && notify_tc)
{
svn_wc_notify_t *notify;
- SVN_ERR(notify_merge_begin(merge_b, local_abspath, FALSE, scratch_pool));
-
notify = svn_wc_create_notify(local_abspath, svn_wc_notify_tree_conflict,
scratch_pool);
notify->kind = local_node_kind;
- merge_b->ctx->notify_func2(merge_b->ctx->notify_baton2, notify,
- scratch_pool);
+ merge_b->notify_func(merge_b->notify_baton, notify,
+ scratch_pool);
}
return SVN_NO_ERROR;
@@ -1455,21 +1464,19 @@ record_update_add(merge_cmd_baton_t *merge_b,
store_path(merge_b->merged_abspaths, local_abspath);
}
- if (merge_b->ctx->notify_func2)
+ if (merge_b->notify_func)
{
svn_wc_notify_t *notify;
svn_wc_notify_action_t action = svn_wc_notify_update_add;
- SVN_ERR(notify_merge_begin(merge_b, local_abspath, FALSE, scratch_pool));
-
if (notify_replaced)
action = svn_wc_notify_update_replace;
notify = svn_wc_create_notify(local_abspath, action, scratch_pool);
notify->kind = kind;
- merge_b->ctx->notify_func2(merge_b->ctx->notify_baton2, notify,
- scratch_pool);
+ merge_b->notify_func(merge_b->notify_baton, notify,
+ scratch_pool);
}
return SVN_NO_ERROR;
@@ -1490,20 +1497,18 @@ record_update_update(merge_cmd_baton_t *merge_b,
store_path(merge_b->merged_abspaths, local_abspath);
}
- if (merge_b->ctx->notify_func2)
+ if (merge_b->notify_func)
{
svn_wc_notify_t *notify;
- SVN_ERR(notify_merge_begin(merge_b, local_abspath, FALSE, scratch_pool));
-
notify = svn_wc_create_notify(local_abspath, svn_wc_notify_update_update,
scratch_pool);
notify->kind = kind;
notify->content_state = content_state;
notify->prop_state = prop_state;
- merge_b->ctx->notify_func2(merge_b->ctx->notify_baton2, notify,
- scratch_pool);
+ merge_b->notify_func(merge_b->notify_baton, notify,
+ scratch_pool);
}
return SVN_NO_ERROR;
@@ -1529,8 +1534,6 @@ record_update_delete(merge_cmd_baton_t *merge_b,
store_path(merge_b->merged_abspaths, local_abspath);
}
- SVN_ERR(notify_merge_begin(merge_b, local_abspath, TRUE, scratch_pool));
-
if (parent_db)
{
const char *dup_abspath = apr_pstrdup(parent_db->pool, local_abspath);
@@ -1552,7 +1555,7 @@ handle_pending_notifications(merge_cmd_baton_t *merge_b,
struct merge_dir_baton_t *db,
apr_pool_t *scratch_pool)
{
- if (merge_b->ctx->notify_func2 && db->pending_deletes)
+ if (merge_b->notify_func && db->pending_deletes)
{
apr_hash_index_t *hi;
@@ -1569,8 +1572,8 @@ handle_pending_notifications(merge_cmd_baton_t *merge_b,
notify->kind = svn_node_kind_from_word(
apr_hash_this_val(hi));
- merge_b->ctx->notify_func2(merge_b->ctx->notify_baton2,
- notify, scratch_pool);
+ merge_b->notify_func(merge_b->notify_baton,
+ notify, scratch_pool);
}
db->pending_deletes = NULL;
@@ -1620,13 +1623,10 @@ mark_dir_edited(merge_cmd_baton_t *merge_b,
for clarity we produce a skip for this node that
most likely isn't touched by the merge itself */
- if (merge_b->ctx->notify_func2)
+ if (merge_b->notify_func)
{
svn_wc_notify_t *notify;
- SVN_ERR(notify_merge_begin(merge_b, local_abspath, FALSE,
- scratch_pool));
-
notify = svn_wc_create_notify(
local_abspath,
(db->tree_conflict_reason == CONFLICT_REASON_SKIP)
@@ -1636,9 +1636,9 @@ mark_dir_edited(merge_cmd_baton_t *merge_b,
notify->kind = svn_node_dir;
notify->content_state = notify->prop_state = db->skip_reason;
- merge_b->ctx->notify_func2(merge_b->ctx->notify_baton2,
- notify,
- scratch_pool);
+ merge_b->notify_func(merge_b->notify_baton,
+ notify,
+ scratch_pool);
}
if (merge_b->merge_source.ancestral
@@ -1706,21 +1706,18 @@ mark_file_edited(merge_cmd_baton_t *merge_b,
for clarity we produce a skip for this node that
most likely isn't touched by the merge itself */
- if (merge_b->ctx->notify_func2)
+ if (merge_b->notify_func)
{
svn_wc_notify_t *notify;
- SVN_ERR(notify_merge_begin(merge_b, local_abspath, FALSE,
- scratch_pool));
-
notify = svn_wc_create_notify(local_abspath, svn_wc_notify_skip,
scratch_pool);
notify->kind = svn_node_file;
notify->content_state = notify->prop_state = fb->skip_reason;
- merge_b->ctx->notify_func2(merge_b->ctx->notify_baton2,
- notify,
- scratch_pool);
+ merge_b->notify_func(merge_b->notify_baton,
+ notify,
+ scratch_pool);
}
if (merge_b->merge_source.ancestral
@@ -3413,6 +3410,49 @@ merge_node_absent(const char *relpath,
return SVN_NO_ERROR;
}
+/* Return a diff processor that will apply the merge to the WC.
+ */
+static svn_diff_tree_processor_t *
+merge_apply_processor(merge_cmd_baton_t *merge_cmd_baton,
+ apr_pool_t *result_pool)
+{
+ svn_diff_tree_processor_t *merge_processor;
+
+ merge_processor = svn_diff__tree_processor_create(merge_cmd_baton,
+ result_pool);
+
+ merge_processor->dir_opened = merge_dir_opened;
+ merge_processor->dir_changed = merge_dir_changed;
+ merge_processor->dir_added = merge_dir_added;
+ merge_processor->dir_deleted = merge_dir_deleted;
+ merge_processor->dir_closed = merge_dir_closed;
+
+ merge_processor->file_opened = merge_file_opened;
+ merge_processor->file_changed = merge_file_changed;
+ merge_processor->file_added = merge_file_added;
+ merge_processor->file_deleted = merge_file_deleted;
+ /* Not interested in file_closed() */
+
+ merge_processor->node_absent = merge_node_absent;
+
+ return merge_processor;
+}
+
+/* Initialize minimal dir baton to allow calculating 'R'eplace
+ from 'D'elete + 'A'dd. */
+static void *
+open_dir_for_replace_single_file(apr_pool_t *result_pool)
+{
+ struct merge_dir_baton_t *dir_baton = apr_pcalloc(result_pool, sizeof(*dir_baton));
+
+ dir_baton->pool = result_pool;
+ dir_baton->tree_conflict_reason = CONFLICT_REASON_NONE;
+ dir_baton->tree_conflict_action = svn_wc_conflict_action_edit;
+ dir_baton->skip_reason = svn_wc_notify_state_unknown;
+
+ return dir_baton;
+}
+
/*-----------------------------------------------------------------------*/
/*** Merge Notification ***/
@@ -3608,20 +3648,9 @@ notify_merge_completed(const char *target_abspath,
}
}
-/* Is the notification the result of a real operative merge? */
-#define IS_OPERATIVE_NOTIFICATION(notify) \
- (notify->content_state == svn_wc_notify_state_conflicted \
- || notify->content_state == svn_wc_notify_state_merged \
- || notify->content_state == svn_wc_notify_state_changed \
- || notify->prop_state == svn_wc_notify_state_conflicted \
- || notify->prop_state == svn_wc_notify_state_merged \
- || notify->prop_state == svn_wc_notify_state_changed \
- || notify->action == svn_wc_notify_update_add \
- || notify->action == svn_wc_notify_tree_conflict)
-
/* Remove merge source gaps from range used for merge notifications.
- See http://subversion.tigris.org/issues/show_bug.cgi?id=4138
+ See https://issues.apache.org/jira/browse/SVN-4138
If IMPLICIT_SRC_GAP is not NULL then it is a rangelist containing a
single range (see the implicit_src_gap member of merge_cmd_baton_t).
@@ -3656,27 +3685,28 @@ remove_source_gap(svn_merge_range_t *range,
* This calls the client's notification receiver (as found in the client
* context), with a WC abspath.
*/
-static svn_error_t *
-notify_merge_begin(merge_cmd_baton_t *merge_b,
+static void
+notify_merge_begin(struct notify_begin_state_t *notify_begin_state,
const char *local_abspath,
svn_boolean_t delete_action,
apr_pool_t *scratch_pool)
{
+ merge_cmd_baton_t *merge_b = notify_begin_state->merge_b;
svn_wc_notify_t *notify;
svn_merge_range_t n_range =
{SVN_INVALID_REVNUM, SVN_INVALID_REVNUM, TRUE};
const char *notify_abspath;
- if (! merge_b->ctx->notify_func2)
- return SVN_NO_ERROR;
+ if (! notify_begin_state->notify_func2)
+ return;
/* If our merge sources are ancestors of one another... */
if (merge_b->merge_source.ancestral)
{
const svn_client__merge_path_t *child;
- /* Find NOTIFY->PATH's nearest ancestor in
- NOTIFY->CHILDREN_WITH_MERGEINFO. Normally we consider a child in
- NOTIFY->CHILDREN_WITH_MERGEINFO representing PATH to be an
+ /* Find LOCAL_ABSPATH's nearest ancestor in
+ CHILDREN_WITH_MERGEINFO. Normally we consider a child in
+ CHILDREN_WITH_MERGEINFO representing PATH to be an
ancestor of PATH, but if this is a deletion of PATH then the
notification must be for a proper ancestor of PATH. This ensures
we don't get notifications like:
@@ -3692,47 +3722,47 @@ notify_merge_begin(merge_cmd_baton_t *merge_b,
child = find_nearest_ancestor_with_intersecting_ranges(
&(n_range.start), &(n_range.end),
- merge_b->notify_begin.nodes_with_mergeinfo,
+ merge_b->children_with_mergeinfo,
! delete_action, local_abspath);
if (!child && delete_action)
{
/* Triggered by file replace in single-file-merge */
- child = find_nearest_ancestor(merge_b->notify_begin.nodes_with_mergeinfo,
+ child = find_nearest_ancestor(merge_b->children_with_mergeinfo,
TRUE, local_abspath);
}
assert(child != NULL); /* Should always find the merge anchor */
if (! child)
- return SVN_NO_ERROR;
+ return;
- if (merge_b->notify_begin.last_abspath != NULL
- && strcmp(child->abspath, merge_b->notify_begin.last_abspath) == 0)
+ if (notify_begin_state->last_abspath != NULL
+ && strcmp(child->abspath, notify_begin_state->last_abspath) == 0)
{
/* Don't notify the same merge again */
- return SVN_NO_ERROR;
+ return;
}
- merge_b->notify_begin.last_abspath = child->abspath;
+ notify_begin_state->last_abspath = child->abspath;
if (child->absent || child->remaining_ranges->nelts == 0
|| !SVN_IS_VALID_REVNUM(n_range.start))
{
/* No valid information for an header */
- return SVN_NO_ERROR;
+ return;
}
notify_abspath = child->abspath;
}
else
{
- if (merge_b->notify_begin.last_abspath)
- return SVN_NO_ERROR; /* already notified */
+ if (notify_begin_state->last_abspath)
+ return; /* already notified */
notify_abspath = merge_b->target->abspath;
/* Store something in last_abspath. Any value would do */
- merge_b->notify_begin.last_abspath = merge_b->target->abspath;
+ notify_begin_state->last_abspath = merge_b->target->abspath;
}
notify = svn_wc_create_notify(notify_abspath,
@@ -3753,10 +3783,23 @@ notify_merge_begin(merge_cmd_baton_t *merge_b,
notify->merge_range = NULL;
}
- merge_b->ctx->notify_func2(merge_b->ctx->notify_baton2, notify,
- scratch_pool);
+ notify_begin_state->notify_func2(notify_begin_state->notify_baton2, notify,
+ scratch_pool);
+}
- return SVN_NO_ERROR;
+/* Our notification callback, that adds a 'begin' notification */
+static void
+notify_merging(void *baton,
+ const svn_wc_notify_t *notify,
+ apr_pool_t *pool)
+{
+ struct notify_begin_state_t *b = baton;
+
+ notify_merge_begin(b, notify->path,
+ notify->action == svn_wc_notify_update_delete,
+ pool);
+
+ b->notify_func2(b->notify_baton2, notify, pool);
}
/* Set *OUT_RANGELIST to the intersection of IN_RANGELIST with the simple
@@ -5445,7 +5488,7 @@ record_skips_in_mergeinfo(const char *mergeinfo_path,
### TODO: An empty range is fine if the skipped path doesn't
### inherit any mergeinfo from a parent, but if it does
### we need to account for that. See issue #3440
- ### http://subversion.tigris.org/issues/show_bug.cgi?id=3440. */
+ ### https://issues.apache.org/jira/browse/SVN-3440. */
svn_hash_sets(merges, skipped_abspath,
apr_array_make(scratch_pool, 0,
sizeof(svn_merge_range_t *)));
@@ -7596,16 +7639,15 @@ do_file_merge(svn_mergeinfo_catalog_t result_catalog,
/* ### Create a fake copy of merge_target as we don't keep
remaining_ranges in sync (yet). */
- target_info = apr_pcalloc(scratch_pool, sizeof(*target_info));
-
- target_info->abspath = merge_target->abspath;
+ target_info = svn_client__merge_path_create(merge_target->abspath,
+ scratch_pool);
target_info->remaining_ranges = ranges_to_merge;
APR_ARRAY_PUSH(child_with_mergeinfo, svn_client__merge_path_t *)
= target_info;
/* And store in baton to allow using it from notify_merge_begin() */
- merge_b->notify_begin.nodes_with_mergeinfo = child_with_mergeinfo;
+ merge_b->children_with_mergeinfo = child_with_mergeinfo;
}
while (ranges_to_merge->nelts > 0)
@@ -7648,19 +7690,10 @@ do_file_merge(svn_mergeinfo_catalog_t result_catalog,
do a text-n-props merge; otherwise, do a delete-n-add merge. */
if (! (merge_b->diff_ignore_ancestry || sources_related))
{
- struct merge_dir_baton_t dir_baton;
+ void *dir_baton = open_dir_for_replace_single_file(iterpool);
void *file_baton;
svn_boolean_t skip;
- /* Initialize minimal dir baton to allow calculating 'R'eplace
- from 'D'elete + 'A'dd. */
-
- memset(&dir_baton, 0, sizeof(dir_baton));
- dir_baton.pool = iterpool;
- dir_baton.tree_conflict_reason = CONFLICT_REASON_NONE;
- dir_baton.tree_conflict_action = svn_wc_conflict_action_edit;
- dir_baton.skip_reason = svn_wc_notify_state_unknown;
-
/* Delete... */
file_baton = NULL;
skip = FALSE;
@@ -7668,7 +7701,7 @@ do_file_merge(svn_mergeinfo_catalog_t result_catalog,
left_source,
NULL /* right_source */,
NULL /* copyfrom_source */,
- &dir_baton,
+ dir_baton,
processor,
iterpool, iterpool));
if (! skip)
@@ -7687,7 +7720,7 @@ do_file_merge(svn_mergeinfo_catalog_t result_catalog,
NULL /* left_source */,
right_source,
NULL /* copyfrom_source */,
- &dir_baton,
+ dir_baton,
processor,
iterpool, iterpool));
if (! skip)
@@ -7819,7 +7852,7 @@ do_file_merge(svn_mergeinfo_catalog_t result_catalog,
}
}
- merge_b->notify_begin.nodes_with_mergeinfo = NULL;
+ merge_b->children_with_mergeinfo = NULL;
svn_pool_destroy(iterpool);
@@ -7878,7 +7911,7 @@ process_children_with_new_mergeinfo(merge_cmd_baton_t *merge_b,
was added (with preexisting mergeinfo) by the merge. That's actually
more correct, since the inherited mergeinfo likely describes
non-existent or unrelated merge history, but it's not quite so simple
- as that, see http://subversion.tigris.org/issues/show_bug.cgi?id=4309
+ as that, see https://issues.apache.org/jira/browse/SVN-4309
*/
/* Get the path's new explicit mergeinfo... */
@@ -8269,7 +8302,7 @@ flag_subtrees_needing_mergeinfo(svn_boolean_t operative_merge,
merge_b->target->abspath, depth, merge_b->ctx->wc_ctx,
merge_b->ra_session1, scratch_pool, iterpool));
- /* Issue #4056: Walk NOTIFY_B->CHILDREN_WITH_MERGEINFO reverse depth-first
+ /* Issue #4056: Walk CHILDREN_WITH_MERGEINFO reverse depth-first
order. This way each child knows if it has operative missing/switched
children which necessitates non-inheritable mergeinfo. */
for (i = children_with_mergeinfo->nelts - 1; i >= 0; i--)
@@ -8432,7 +8465,7 @@ flag_subtrees_needing_mergeinfo(svn_boolean_t operative_merge,
}
else /* child->record_mergeinfo */
{
- /* If CHILD is in NOTIFY_B->CHILDREN_WITH_MERGEINFO simply
+ /* If CHILD is in CHILDREN_WITH_MERGEINFO simply
because it had no explicit mergeinfo of its own at the
start of the merge but is the child of of some path with
non-inheritable mergeinfo, then the explicit mergeinfo it
@@ -8457,7 +8490,7 @@ flag_subtrees_needing_mergeinfo(svn_boolean_t operative_merge,
If RESULT_CATALOG is NULL then record mergeinfo describing a merge of
MERGED_RANGE->START:MERGED_RANGE->END from the repository relative path
MERGEINFO_FSPATH to the merge target (and possibly its subtrees) described
- by NOTIFY_B->CHILDREN_WITH_MERGEINFO -- see the global comment
+ by CHILDREN_WITH_MERGEINFO -- see the global comment
'THE CHILDREN_WITH_MERGEINFO ARRAY'. Obviously this should only
be called if recording mergeinfo -- see doc string for RECORD_MERGEINFO().
@@ -8508,7 +8541,7 @@ record_mergeinfo_for_dir_merge(svn_mergeinfo_catalog_t result_catalog,
range.inheritable = TRUE;
/* Remove absent children at or under MERGE_B->target->abspath from
- NOTIFY_B->CHILDREN_WITH_MERGEINFO
+ CHILDREN_WITH_MERGEINFO
before we calculate the merges performed. */
remove_absent_children(merge_b->target->abspath,
children_with_mergeinfo);
@@ -9334,7 +9367,7 @@ do_mergeinfo_aware_dir_merge(svn_mergeinfo_catalog_t result_catalog,
/* Point our RA_SESSION to the URL of our youngest merge source side. */
ra_session = is_rollback ? merge_b->ra_session1 : merge_b->ra_session2;
- /* Fill NOTIFY_B->CHILDREN_WITH_MERGEINFO with child paths (const
+ /* Fill CHILDREN_WITH_MERGEINFO with child paths (const
svn_client__merge_path_t *) which might have intersecting merges
because they meet one or more of the criteria described in
get_mergeinfo_paths(). Here the paths are arranged in a depth
@@ -9344,13 +9377,13 @@ do_mergeinfo_aware_dir_merge(svn_mergeinfo_catalog_t result_catalog,
merge_b->dry_run, merge_b->same_repos,
merge_b->ctx, scratch_pool, scratch_pool));
- /* The first item from the NOTIFY_B->CHILDREN_WITH_MERGEINFO is always
+ /* The first item from the CHILDREN_WITH_MERGEINFO is always
the target thanks to depth-first ordering. */
target_merge_path = APR_ARRAY_IDX(children_with_mergeinfo, 0,
svn_client__merge_path_t *);
/* If we are honoring mergeinfo, then for each item in
- NOTIFY_B->CHILDREN_WITH_MERGEINFO, we need to calculate what needs to be
+ CHILDREN_WITH_MERGEINFO, we need to calculate what needs to be
merged, and then merge it. Otherwise, we just merge what we were asked
to merge across the whole tree. */
SVN_ERR(populate_remaining_ranges(children_with_mergeinfo,
@@ -9370,7 +9403,7 @@ do_mergeinfo_aware_dir_merge(svn_mergeinfo_catalog_t result_catalog,
/* The merge target TARGET_ABSPATH and/or its subtrees may not need all
of SOURCE->rev1:rev2 applied. So examine
- NOTIFY_B->CHILDREN_WITH_MERGEINFO to find the oldest starting
+ CHILDREN_WITH_MERGEINFO to find the oldest starting
revision that actually needs to be merged (for reverse merges this is
the youngest starting revision).
@@ -9408,7 +9441,7 @@ do_mergeinfo_aware_dir_merge(svn_mergeinfo_catalog_t result_catalog,
/* Is there anything to merge? */
if (SVN_IS_VALID_REVNUM(start_rev))
{
- /* Now examine NOTIFY_B->CHILDREN_WITH_MERGEINFO to find the oldest
+ /* Now examine CHILDREN_WITH_MERGEINFO to find the oldest
ending revision that actually needs to be merged (for reverse
merges this is the youngest ending revision). */
svn_revnum_t end_rev =
@@ -9417,7 +9450,7 @@ do_mergeinfo_aware_dir_merge(svn_mergeinfo_catalog_t result_catalog,
/* While END_REV is valid, do the following:
- 1. Tweak each NOTIFY_B->CHILDREN_WITH_MERGEINFO element so that
+ 1. Tweak each CHILDREN_WITH_MERGEINFO element so that
the element's remaining_ranges member has as its first element
a range that ends with end_rev.
@@ -9425,17 +9458,17 @@ do_mergeinfo_aware_dir_merge(svn_mergeinfo_catalog_t result_catalog,
on MERGE_B->target->abspath for start_rev:end_rev.
3. Remove the first element from each
- NOTIFY_B->CHILDREN_WITH_MERGEINFO element's remaining_ranges
+ CHILDREN_WITH_MERGEINFO element's remaining_ranges
member.
- 4. Again examine NOTIFY_B->CHILDREN_WITH_MERGEINFO to find the most
+ 4. Again examine CHILDREN_WITH_MERGEINFO to find the most
inclusive starting revision that actually needs to be merged and
update start_rev. This prevents us from needlessly contacting the
repository and doing a diff where we describe the entire target
tree as *not* needing any of the requested range. This can happen
whenever we have mergeinfo with gaps in it for the merge source.
- 5. Again examine NOTIFY_B->CHILDREN_WITH_MERGEINFO to find the most
+ 5. Again examine CHILDREN_WITH_MERGEINFO to find the most
inclusive ending revision that actually needs to be merged and
update end_rev.
@@ -9496,14 +9529,14 @@ do_mergeinfo_aware_dir_merge(svn_mergeinfo_catalog_t result_catalog,
/* If any paths picked up explicit mergeinfo as a result of
the merge we need to make sure any mergeinfo those paths
inherited is recorded and then add these paths to
- NOTIFY_B->CHILDREN_WITH_MERGEINFO.*/
+ CHILDREN_WITH_MERGEINFO.*/
SVN_ERR(process_children_with_new_mergeinfo(
merge_b, children_with_mergeinfo,
scratch_pool));
/* If any subtrees had their explicit mergeinfo deleted as a
result of the merge then remove these paths from
- NOTIFY_B->CHILDREN_WITH_MERGEINFO since there is no need
+ CHILDREN_WITH_MERGEINFO since there is no need
to consider these subtrees for subsequent editor drives
nor do we want to record mergeinfo on them describing
the merge itself. */
@@ -9634,7 +9667,7 @@ do_directory_merge(svn_mergeinfo_catalog_t result_catalog,
apr_array_make(scratch_pool, 16, sizeof(svn_client__merge_path_t *));
/* And make it read-only accessible from the baton */
- merge_b->notify_begin.nodes_with_mergeinfo = children_with_mergeinfo;
+ merge_b->children_with_mergeinfo = children_with_mergeinfo;
/* If we are not honoring mergeinfo we can skip right to the
business of merging changes! */
@@ -9652,7 +9685,7 @@ do_directory_merge(svn_mergeinfo_catalog_t result_catalog,
processor, depth,
merge_b, result_pool, scratch_pool));
- merge_b->notify_begin.nodes_with_mergeinfo = NULL;
+ merge_b->children_with_mergeinfo = NULL;
return SVN_NO_ERROR;
}
@@ -9889,28 +9922,13 @@ do_merge(apr_hash_t **modified_subtrees,
merge_cmd_baton.added_abspaths = apr_hash_make(result_pool);
merge_cmd_baton.tree_conflicted_abspaths = apr_hash_make(result_pool);
- {
- svn_diff_tree_processor_t *merge_processor;
-
- merge_processor = svn_diff__tree_processor_create(&merge_cmd_baton,
- scratch_pool);
-
- merge_processor->dir_opened = merge_dir_opened;
- merge_processor->dir_changed = merge_dir_changed;
- merge_processor->dir_added = merge_dir_added;
- merge_processor->dir_deleted = merge_dir_deleted;
- merge_processor->dir_closed = merge_dir_closed;
-
- merge_processor->file_opened = merge_file_opened;
- merge_processor->file_changed = merge_file_changed;
- merge_processor->file_added = merge_file_added;
- merge_processor->file_deleted = merge_file_deleted;
- /* Not interested in file_closed() */
-
- merge_processor->node_absent = merge_node_absent;
+ merge_cmd_baton.notify_func = notify_merging;
+ merge_cmd_baton.notify_baton = &merge_cmd_baton.notify_begin;
+ merge_cmd_baton.notify_begin.merge_b = &merge_cmd_baton;
+ merge_cmd_baton.notify_begin.notify_func2 = ctx->notify_func2;
+ merge_cmd_baton.notify_begin.notify_baton2 = ctx->notify_baton2;
- processor = merge_processor;
- }
+ processor = merge_apply_processor(&merge_cmd_baton, scratch_pool);
if (src_session)
{
diff --git a/subversion/libsvn_client/patch.c b/subversion/libsvn_client/patch.c
index 1b2d86b..a1ad458 100644
--- a/subversion/libsvn_client/patch.c
+++ b/subversion/libsvn_client/patch.c
@@ -343,7 +343,9 @@ strip_path(const char **result, const char *path, int strip_count,
components = svn_path_decompose(path, scratch_pool);
if (strip_count > components->nelts)
return svn_error_createf(SVN_ERR_CLIENT_PATCH_BAD_STRIP_COUNT, NULL,
- _("Cannot strip %u components from '%s'"),
+ Q_("Cannot strip %u component from '%s'",
+ "Cannot strip %u components from '%s'",
+ strip_count),
strip_count,
svn_dirent_local_style(path, scratch_pool));
@@ -2145,8 +2147,8 @@ reject_hunk(patch_target_t *target, target_content_t *content,
if (prop_name)
{
/* ### Print 'Added', 'Deleted' or 'Modified' instead of 'Property'. */
- svn_stream_printf(target->reject_stream,
- pool, "Property: %s" APR_EOL_STR, prop_name);
+ SVN_ERR(svn_stream_printf(target->reject_stream,
+ pool, "Property: %s" APR_EOL_STR, prop_name));
atat = prop_atat;
}
else
diff --git a/subversion/libsvn_client/repos_diff.c b/subversion/libsvn_client/repos_diff.c
index 58fe8aa..17b537c 100644
--- a/subversion/libsvn_client/repos_diff.c
+++ b/subversion/libsvn_client/repos_diff.c
@@ -51,6 +51,7 @@
#include "private/svn_subr_private.h"
#include "private/svn_wc_private.h"
#include "private/svn_editor.h"
+#include "private/svn_sorts_private.h"
/* Overall crawler editor baton. */
struct edit_baton {
@@ -380,7 +381,7 @@ get_file_from_ra(struct file_baton *fb,
way. Hence this little hack: We populate FILE_BATON->PROPCHANGES only
with *actual* property changes.
- See http://subversion.tigris.org/issues/show_bug.cgi?id=3657#desc9 and
+ See https://issues.apache.org/jira/browse/SVN-3657#desc9 and
http://svn.haxx.se/dev/archive-2010-08/0351.shtml for more details.
*/
static void
@@ -404,15 +405,9 @@ remove_non_prop_changes(apr_hash_t *pristine_props,
if (old_val && svn_string_compare(old_val, change->value))
{
- int j;
-
- /* Remove the matching change by shifting the rest */
- for (j = i; j < changes->nelts - 1; j++)
- {
- APR_ARRAY_IDX(changes, j, svn_prop_t)
- = APR_ARRAY_IDX(changes, j+1, svn_prop_t);
- }
- changes->nelts--;
+ /* Remove the matching change and re-check the current index */
+ svn_sort__array_delete(changes, i, 1);
+ i--;
}
}
}
diff --git a/subversion/libsvn_client/revert.c b/subversion/libsvn_client/revert.c
index d827014..cec28f2 100644
--- a/subversion/libsvn_client/revert.c
+++ b/subversion/libsvn_client/revert.c
@@ -51,6 +51,7 @@ struct revert_with_write_lock_baton {
const apr_array_header_t *changelists;
svn_boolean_t clear_changelists;
svn_boolean_t metadata_only;
+ svn_boolean_t added_keep_local;
svn_client_ctx_t *ctx;
};
@@ -80,13 +81,14 @@ revert(void *baton, apr_pool_t *result_pool, apr_pool_t *scratch_pool)
struct revert_with_write_lock_baton *b = baton;
svn_error_t *err;
- err = svn_wc_revert5(b->ctx->wc_ctx,
+ err = svn_wc_revert6(b->ctx->wc_ctx,
b->local_abspath,
b->depth,
b->use_commit_times,
b->changelists,
b->clear_changelists,
b->metadata_only,
+ b->added_keep_local,
b->ctx->cancel_func, b->ctx->cancel_baton,
b->ctx->notify_func2, b->ctx->notify_baton2,
scratch_pool);
@@ -123,11 +125,12 @@ revert(void *baton, apr_pool_t *result_pool, apr_pool_t *scratch_pool)
svn_error_t *
-svn_client_revert3(const apr_array_header_t *paths,
+svn_client_revert4(const apr_array_header_t *paths,
svn_depth_t depth,
const apr_array_header_t *changelists,
svn_boolean_t clear_changelists,
svn_boolean_t metadata_only,
+ svn_boolean_t added_keep_local,
svn_client_ctx_t *ctx,
apr_pool_t *pool)
{
@@ -183,6 +186,7 @@ svn_client_revert3(const apr_array_header_t *paths,
baton.changelists = changelists;
baton.clear_changelists = clear_changelists;
baton.metadata_only = metadata_only;
+ baton.added_keep_local = added_keep_local;
baton.ctx = ctx;
err = svn_wc__is_wcroot(&wc_root, ctx->wc_ctx, local_abspath, iterpool);
diff --git a/subversion/libsvn_client/shelf.c b/subversion/libsvn_client/shelf.c
new file mode 100644
index 0000000..692e8c4
--- /dev/null
+++ b/subversion/libsvn_client/shelf.c
@@ -0,0 +1,2101 @@
+/*
+ * shelf.c: implementation of shelving
+ *
+ * ====================================================================
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * ====================================================================
+ */
+
+/* ==================================================================== */
+
+/* We define this here to remove any further warnings about the usage of
+ experimental functions in this file. */
+#define SVN_EXPERIMENTAL
+
+#include "svn_client.h"
+#include "svn_wc.h"
+#include "svn_pools.h"
+#include "svn_dirent_uri.h"
+#include "svn_path.h"
+#include "svn_hash.h"
+#include "svn_utf.h"
+#include "svn_ctype.h"
+#include "svn_props.h"
+
+#include "client.h"
+#include "private/svn_client_private.h"
+#include "private/svn_wc_private.h"
+#include "private/svn_sorts_private.h"
+#include "svn_private_config.h"
+
+
+static svn_error_t *
+shelf_name_encode(char **encoded_name_p,
+ const char *name,
+ apr_pool_t *result_pool)
+{
+ char *encoded_name
+ = apr_palloc(result_pool, strlen(name) * 2 + 1);
+ char *out_pos = encoded_name;
+
+ if (name[0] == '\0')
+ return svn_error_create(SVN_ERR_BAD_CHANGELIST_NAME, NULL,
+ _("Shelf name cannot be the empty string"));
+
+ while (*name)
+ {
+ apr_snprintf(out_pos, 3, "%02x", (unsigned char)(*name++));
+ out_pos += 2;
+ }
+ *encoded_name_p = encoded_name;
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+shelf_name_decode(char **decoded_name_p,
+ const char *codename,
+ apr_pool_t *result_pool)
+{
+ svn_stringbuf_t *sb
+ = svn_stringbuf_create_ensure(strlen(codename) / 2, result_pool);
+ const char *input = codename;
+
+ while (*input)
+ {
+ int c;
+ int nchars;
+ int nitems = sscanf(input, "%02x%n", &c, &nchars);
+
+ if (nitems != 1 || nchars != 2)
+ return svn_error_createf(SVN_ERR_BAD_CHANGELIST_NAME, NULL,
+ _("Shelve: Bad encoded name '%s'"), codename);
+ svn_stringbuf_appendbyte(sb, c);
+ input += 2;
+ }
+ *decoded_name_p = sb->data;
+ return SVN_NO_ERROR;
+}
+
+/* Set *NAME to the shelf name from FILENAME, if FILENAME names a '.current'
+ * file, else to NULL. */
+static svn_error_t *
+shelf_name_from_filename(char **name,
+ const char *filename,
+ apr_pool_t *result_pool)
+{
+ size_t len = strlen(filename);
+ static const char suffix[] = ".current";
+ int suffix_len = sizeof(suffix) - 1;
+
+ if (len > suffix_len && strcmp(filename + len - suffix_len, suffix) == 0)
+ {
+ char *codename = apr_pstrndup(result_pool, filename, len - suffix_len);
+ SVN_ERR(shelf_name_decode(name, codename, result_pool));
+ }
+ else
+ {
+ *name = NULL;
+ }
+ return SVN_NO_ERROR;
+}
+
+/* Set *ABSPATH to the abspath of the file storage dir for SHELF
+ * version VERSION, no matter whether it exists.
+ */
+static svn_error_t *
+shelf_version_files_dir_abspath(const char **abspath,
+ svn_client__shelf_t *shelf,
+ int version,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ char *codename;
+ char *filename;
+
+ SVN_ERR(shelf_name_encode(&codename, shelf->name, result_pool));
+ filename = apr_psprintf(scratch_pool, "%s-%03d.d", codename, version);
+ *abspath = svn_dirent_join(shelf->shelves_dir, filename, result_pool);
+ return SVN_NO_ERROR;
+}
+
+/* Create a shelf-version object for a version that may or may not already
+ * exist on disk.
+ */
+static svn_error_t *
+shelf_version_create(svn_client__shelf_version_t **new_version_p,
+ svn_client__shelf_t *shelf,
+ int version_number,
+ apr_pool_t *result_pool)
+{
+ svn_client__shelf_version_t *shelf_version
+ = apr_pcalloc(result_pool, sizeof(*shelf_version));
+
+ shelf_version->shelf = shelf;
+ shelf_version->version_number = version_number;
+ SVN_ERR(shelf_version_files_dir_abspath(&shelf_version->files_dir_abspath,
+ shelf, version_number,
+ result_pool, result_pool));
+ *new_version_p = shelf_version;
+ return SVN_NO_ERROR;
+}
+
+/* Set *ABSPATH to the abspath of the metadata file for SHELF_VERSION
+ * node at RELPATH, no matter whether it exists.
+ */
+static svn_error_t *
+get_metadata_abspath(char **abspath,
+ svn_client__shelf_version_t *shelf_version,
+ const char *wc_relpath,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ wc_relpath = apr_psprintf(scratch_pool, "%s.meta", wc_relpath);
+ *abspath = svn_dirent_join(shelf_version->files_dir_abspath, wc_relpath,
+ result_pool);
+ return SVN_NO_ERROR;
+}
+
+/* Set *ABSPATH to the abspath of the base text file for SHELF_VERSION
+ * node at RELPATH, no matter whether it exists.
+ */
+static svn_error_t *
+get_base_file_abspath(char **base_abspath,
+ svn_client__shelf_version_t *shelf_version,
+ const char *wc_relpath,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ wc_relpath = apr_psprintf(scratch_pool, "%s.base", wc_relpath);
+ *base_abspath = svn_dirent_join(shelf_version->files_dir_abspath, wc_relpath,
+ result_pool);
+ return SVN_NO_ERROR;
+}
+
+/* Set *ABSPATH to the abspath of the working text file for SHELF_VERSION
+ * node at RELPATH, no matter whether it exists.
+ */
+static svn_error_t *
+get_working_file_abspath(char **work_abspath,
+ svn_client__shelf_version_t *shelf_version,
+ const char *wc_relpath,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ wc_relpath = apr_psprintf(scratch_pool, "%s.work", wc_relpath);
+ *work_abspath = svn_dirent_join(shelf_version->files_dir_abspath, wc_relpath,
+ result_pool);
+ return SVN_NO_ERROR;
+}
+
+/* Set *ABSPATH to the abspath of the base props file for SHELF_VERSION
+ * node at RELPATH, no matter whether it exists.
+ */
+static svn_error_t *
+get_base_props_abspath(char **base_abspath,
+ svn_client__shelf_version_t *shelf_version,
+ const char *wc_relpath,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ wc_relpath = apr_psprintf(scratch_pool, "%s.base-props", wc_relpath);
+ *base_abspath = svn_dirent_join(shelf_version->files_dir_abspath, wc_relpath,
+ result_pool);
+ return SVN_NO_ERROR;
+}
+
+/* Set *ABSPATH to the abspath of the working props file for SHELF_VERSION
+ * node at RELPATH, no matter whether it exists.
+ */
+static svn_error_t *
+get_working_props_abspath(char **work_abspath,
+ svn_client__shelf_version_t *shelf_version,
+ const char *wc_relpath,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ wc_relpath = apr_psprintf(scratch_pool, "%s.work-props", wc_relpath);
+ *work_abspath = svn_dirent_join(shelf_version->files_dir_abspath, wc_relpath,
+ result_pool);
+ return SVN_NO_ERROR;
+}
+
+/* Delete the storage for SHELF:VERSION. */
+static svn_error_t *
+shelf_version_delete(svn_client__shelf_t *shelf,
+ int version,
+ apr_pool_t *scratch_pool)
+{
+ const char *files_dir_abspath;
+
+ SVN_ERR(shelf_version_files_dir_abspath(&files_dir_abspath,
+ shelf, version,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_io_remove_dir2(files_dir_abspath, TRUE /*ignore_enoent*/,
+ NULL, NULL, /*cancel*/
+ scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+/* */
+static svn_error_t *
+get_log_abspath(char **log_abspath,
+ svn_client__shelf_t *shelf,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ char *codename;
+ const char *filename;
+
+ SVN_ERR(shelf_name_encode(&codename, shelf->name, result_pool));
+ filename = apr_pstrcat(scratch_pool, codename, ".log", SVN_VA_NULL);
+ *log_abspath = svn_dirent_join(shelf->shelves_dir, filename, result_pool);
+ return SVN_NO_ERROR;
+}
+
+/* Set SHELF->revprops by reading from its storage (the '.log' file).
+ * Set SHELF->revprops to empty if the storage file does not exist; this
+ * is not an error.
+ */
+static svn_error_t *
+shelf_read_revprops(svn_client__shelf_t *shelf,
+ apr_pool_t *scratch_pool)
+{
+ char *log_abspath;
+ svn_error_t *err;
+ svn_stream_t *stream;
+
+ SVN_ERR(get_log_abspath(&log_abspath, shelf, scratch_pool, scratch_pool));
+
+ shelf->revprops = apr_hash_make(shelf->pool);
+ err = svn_stream_open_readonly(&stream, log_abspath,
+ scratch_pool, scratch_pool);
+ if (err && APR_STATUS_IS_ENOENT(err->apr_err))
+ {
+ svn_error_clear(err);
+ return SVN_NO_ERROR;
+ }
+ else
+ SVN_ERR(err);
+ SVN_ERR(svn_hash_read2(shelf->revprops, stream, "PROPS-END", shelf->pool));
+ SVN_ERR(svn_stream_close(stream));
+ return SVN_NO_ERROR;
+}
+
+/* Write SHELF's revprops to its file storage.
+ */
+static svn_error_t *
+shelf_write_revprops(svn_client__shelf_t *shelf,
+ apr_pool_t *scratch_pool)
+{
+ char *log_abspath;
+ apr_file_t *file;
+ svn_stream_t *stream;
+
+ SVN_ERR(get_log_abspath(&log_abspath, shelf, scratch_pool, scratch_pool));
+
+ SVN_ERR(svn_io_file_open(&file, log_abspath,
+ APR_FOPEN_WRITE | APR_FOPEN_CREATE | APR_FOPEN_TRUNCATE,
+ APR_FPROT_OS_DEFAULT, scratch_pool));
+ stream = svn_stream_from_aprfile2(file, FALSE /*disown*/, scratch_pool);
+
+ SVN_ERR(svn_hash_write2(shelf->revprops, stream, "PROPS-END", scratch_pool));
+ SVN_ERR(svn_stream_close(stream));
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf_revprop_set(svn_client__shelf_t *shelf,
+ const char *prop_name,
+ const svn_string_t *prop_val,
+ apr_pool_t *scratch_pool)
+{
+ svn_hash_sets(shelf->revprops, apr_pstrdup(shelf->pool, prop_name),
+ svn_string_dup(prop_val, shelf->pool));
+ SVN_ERR(shelf_write_revprops(shelf, scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf_revprop_set_all(svn_client__shelf_t *shelf,
+ apr_hash_t *revprop_table,
+ apr_pool_t *scratch_pool)
+{
+ if (revprop_table)
+ shelf->revprops = svn_prop_hash_dup(revprop_table, shelf->pool);
+ else
+ shelf->revprops = apr_hash_make(shelf->pool);
+
+ SVN_ERR(shelf_write_revprops(shelf, scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf_revprop_get(svn_string_t **prop_val,
+ svn_client__shelf_t *shelf,
+ const char *prop_name,
+ apr_pool_t *result_pool)
+{
+ *prop_val = svn_hash_gets(shelf->revprops, prop_name);
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf_revprop_list(apr_hash_t **props,
+ svn_client__shelf_t *shelf,
+ apr_pool_t *result_pool)
+{
+ *props = shelf->revprops;
+ return SVN_NO_ERROR;
+}
+
+/* */
+static svn_error_t *
+get_current_abspath(char **current_abspath,
+ svn_client__shelf_t *shelf,
+ apr_pool_t *result_pool)
+{
+ char *codename;
+ char *filename;
+
+ SVN_ERR(shelf_name_encode(&codename, shelf->name, result_pool));
+ filename = apr_psprintf(result_pool, "%s.current", codename);
+ *current_abspath = svn_dirent_join(shelf->shelves_dir, filename, result_pool);
+ return SVN_NO_ERROR;
+}
+
+/* Read SHELF->max_version from its storage (the '.current' file).
+ * Set SHELF->max_version to -1 if that file does not exist.
+ */
+static svn_error_t *
+shelf_read_current(svn_client__shelf_t *shelf,
+ apr_pool_t *scratch_pool)
+{
+ char *current_abspath;
+ svn_error_t *err;
+
+ SVN_ERR(get_current_abspath(&current_abspath, shelf, scratch_pool));
+ err = svn_io_read_version_file(&shelf->max_version,
+ current_abspath, scratch_pool);
+ if (err)
+ {
+ shelf->max_version = -1;
+ svn_error_clear(err);
+ return SVN_NO_ERROR;
+ }
+ return SVN_NO_ERROR;
+}
+
+/* */
+static svn_error_t *
+shelf_write_current(svn_client__shelf_t *shelf,
+ apr_pool_t *scratch_pool)
+{
+ char *current_abspath;
+
+ SVN_ERR(get_current_abspath(&current_abspath, shelf, scratch_pool));
+ SVN_ERR(svn_io_write_version_file(current_abspath, shelf->max_version,
+ scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+/*-------------------------------------------------------------------------*/
+/* Status Reporting */
+
+/* Create a status struct with all fields initialized to valid values
+ * representing 'uninteresting' or 'unknown' status.
+ */
+static svn_wc_status3_t *
+status_create(apr_pool_t *result_pool)
+{
+ svn_wc_status3_t *s = apr_pcalloc(result_pool, sizeof(*s));
+
+ s->filesize = SVN_INVALID_FILESIZE;
+ s->versioned = TRUE;
+ s->node_status = svn_wc_status_none;
+ s->text_status = svn_wc_status_none;
+ s->prop_status = svn_wc_status_none;
+ s->revision = SVN_INVALID_REVNUM;
+ s->changed_rev = SVN_INVALID_REVNUM;
+ s->repos_node_status = svn_wc_status_none;
+ s->repos_text_status = svn_wc_status_none;
+ s->repos_prop_status = svn_wc_status_none;
+ s->ood_changed_rev = SVN_INVALID_REVNUM;
+ return s;
+}
+
+/* Convert from svn_node_kind_t to a single character representation. */
+static char
+kind_to_char(svn_node_kind_t kind)
+{
+ return (kind == svn_node_dir ? 'd'
+ : kind == svn_node_file ? 'f'
+ : kind == svn_node_symlink ? 'l'
+ : '?');
+}
+
+/* Convert to svn_node_kind_t from a single character representation. */
+static svn_node_kind_t
+char_to_kind(char kind)
+{
+ return (kind == 'd' ? svn_node_dir
+ : kind == 'f' ? svn_node_file
+ : kind == 'l' ? svn_node_symlink
+ : svn_node_unknown);
+}
+
+/* Return the single character representation of STATUS.
+ * (Similar to subversion/svn/status.c:generate_status_code()
+ * and subversion/tests/libsvn_client/client-test.c:status_to_char().) */
+static char
+status_to_char(enum svn_wc_status_kind status)
+{
+ switch (status)
+ {
+ case svn_wc_status_none: return '.';
+ case svn_wc_status_unversioned: return '?';
+ case svn_wc_status_normal: return ' ';
+ case svn_wc_status_added: return 'A';
+ case svn_wc_status_missing: return '!';
+ case svn_wc_status_deleted: return 'D';
+ case svn_wc_status_replaced: return 'R';
+ case svn_wc_status_modified: return 'M';
+ case svn_wc_status_merged: return 'G';
+ case svn_wc_status_conflicted: return 'C';
+ case svn_wc_status_ignored: return 'I';
+ case svn_wc_status_obstructed: return '~';
+ case svn_wc_status_external: return 'X';
+ case svn_wc_status_incomplete: return ':';
+ default: return '*';
+ }
+}
+
+static enum svn_wc_status_kind
+char_to_status(char status)
+{
+ switch (status)
+ {
+ case '.': return svn_wc_status_none;
+ case '?': return svn_wc_status_unversioned;
+ case ' ': return svn_wc_status_normal;
+ case 'A': return svn_wc_status_added;
+ case '!': return svn_wc_status_missing;
+ case 'D': return svn_wc_status_deleted;
+ case 'R': return svn_wc_status_replaced;
+ case 'M': return svn_wc_status_modified;
+ case 'G': return svn_wc_status_merged;
+ case 'C': return svn_wc_status_conflicted;
+ case 'I': return svn_wc_status_ignored;
+ case '~': return svn_wc_status_obstructed;
+ case 'X': return svn_wc_status_external;
+ case ':': return svn_wc_status_incomplete;
+ default: return (enum svn_wc_status_kind)0;
+ }
+}
+
+/* Write a serial representation of (some fields of) STATUS to STREAM.
+ */
+static svn_error_t *
+wc_status_serialize(svn_stream_t *stream,
+ const svn_wc_status3_t *status,
+ apr_pool_t *scratch_pool)
+{
+ SVN_ERR(svn_stream_printf(stream, scratch_pool, "%c %c%c%c %ld",
+ kind_to_char(status->kind),
+ status_to_char(status->node_status),
+ status_to_char(status->text_status),
+ status_to_char(status->prop_status),
+ status->revision));
+ return SVN_NO_ERROR;
+}
+
+/* Read a serial representation of (some fields of) STATUS from STREAM.
+ */
+static svn_error_t *
+wc_status_unserialize(svn_wc_status3_t *status,
+ svn_stream_t *stream,
+ apr_pool_t *result_pool)
+{
+ svn_stringbuf_t *sb;
+ char *string;
+
+ SVN_ERR(svn_stringbuf_from_stream(&sb, stream, 100, result_pool));
+ string = sb->data;
+ status->kind = char_to_kind(string[0]);
+ status->node_status = char_to_status(string[2]);
+ status->text_status = char_to_status(string[3]);
+ status->prop_status = char_to_status(string[4]);
+ sscanf(string + 6, "%ld", &status->revision);
+ return SVN_NO_ERROR;
+}
+
+/* Write status to shelf storage.
+ */
+static svn_error_t *
+status_write(svn_client__shelf_version_t *shelf_version,
+ const char *relpath,
+ const svn_wc_status3_t *status,
+ apr_pool_t *scratch_pool)
+{
+ char *file_abspath;
+ svn_stream_t *stream;
+
+ SVN_ERR(get_metadata_abspath(&file_abspath, shelf_version, relpath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_stream_open_writable(&stream, file_abspath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(wc_status_serialize(stream, status, scratch_pool));
+ SVN_ERR(svn_stream_close(stream));
+ return SVN_NO_ERROR;
+}
+
+/* Read status from shelf storage.
+ */
+static svn_error_t *
+status_read(svn_wc_status3_t **status,
+ svn_client__shelf_version_t *shelf_version,
+ const char *relpath,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ svn_wc_status3_t *s = status_create(result_pool);
+ char *file_abspath;
+ svn_stream_t *stream;
+
+ SVN_ERR(get_metadata_abspath(&file_abspath, shelf_version, relpath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_stream_open_readonly(&stream, file_abspath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(wc_status_unserialize(s, stream, result_pool));
+ SVN_ERR(svn_stream_close(stream));
+
+ s->changelist = apr_psprintf(result_pool, "svn:shelf:%s",
+ shelf_version->shelf->name);
+ *status = s;
+ return SVN_NO_ERROR;
+}
+
+/* A visitor function type for use with shelf_status_walk().
+ * The same as svn_wc_status_func4_t except relpath instead of abspath.
+ * Only some fields in STATUS are available.
+ */
+typedef svn_error_t *(*shelf_status_visitor_t)(void *baton,
+ const char *relpath,
+ svn_wc_status3_t *status,
+ apr_pool_t *scratch_pool);
+
+/* Baton for shelved_files_walk_visitor(). */
+struct shelf_status_baton_t
+{
+ svn_client__shelf_version_t *shelf_version;
+ const char *top_relpath;
+ const char *walk_root_abspath;
+ shelf_status_visitor_t walk_func;
+ void *walk_baton;
+};
+
+/* Call BATON->walk_func(BATON->walk_baton, relpath, ...) for the shelved
+ * 'binary' file stored at ABSPATH.
+ * Implements svn_io_walk_func_t. */
+static svn_error_t *
+shelf_status_visitor(void *baton,
+ const char *abspath,
+ const apr_finfo_t *finfo,
+ apr_pool_t *scratch_pool)
+{
+ struct shelf_status_baton_t *b = baton;
+ const char *relpath;
+
+ relpath = svn_dirent_skip_ancestor(b->walk_root_abspath, abspath);
+ if (finfo->filetype == APR_REG
+ && (strlen(relpath) >= 5 && strcmp(relpath+strlen(relpath)-5, ".meta") == 0))
+ {
+ svn_wc_status3_t *s;
+
+ relpath = apr_pstrndup(scratch_pool, relpath, strlen(relpath) - 5);
+ if (!svn_relpath_skip_ancestor(b->top_relpath, relpath))
+ return SVN_NO_ERROR;
+
+ SVN_ERR(status_read(&s, b->shelf_version, relpath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(b->walk_func(b->walk_baton, relpath, s, scratch_pool));
+ }
+ return SVN_NO_ERROR;
+}
+
+/* Report the shelved status of the path SHELF_VERSION:WC_RELPATH
+ * via WALK_FUNC(WALK_BATON, ...).
+ */
+static svn_error_t *
+shelf_status_visit_path(svn_client__shelf_version_t *shelf_version,
+ const char *wc_relpath,
+ shelf_status_visitor_t walk_func,
+ void *walk_baton,
+ apr_pool_t *scratch_pool)
+{
+ struct shelf_status_baton_t baton;
+ char *abspath;
+ apr_finfo_t finfo;
+
+ baton.shelf_version = shelf_version;
+ baton.top_relpath = wc_relpath;
+ baton.walk_root_abspath = shelf_version->files_dir_abspath;
+ baton.walk_func = walk_func;
+ baton.walk_baton = walk_baton;
+ SVN_ERR(get_metadata_abspath(&abspath, shelf_version, wc_relpath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_io_stat(&finfo, abspath, APR_FINFO_TYPE, scratch_pool));
+ SVN_ERR(shelf_status_visitor(&baton, abspath, &finfo, scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+/* Report the shelved status of all the shelved paths in SHELF_VERSION
+ * via WALK_FUNC(WALK_BATON, ...).
+ */
+static svn_error_t *
+shelf_status_walk(svn_client__shelf_version_t *shelf_version,
+ const char *wc_relpath,
+ shelf_status_visitor_t walk_func,
+ void *walk_baton,
+ apr_pool_t *scratch_pool)
+{
+ struct shelf_status_baton_t baton;
+ svn_error_t *err;
+
+ baton.shelf_version = shelf_version;
+ baton.top_relpath = wc_relpath;
+ baton.walk_root_abspath = shelf_version->files_dir_abspath;
+ baton.walk_func = walk_func;
+ baton.walk_baton = walk_baton;
+ err = svn_io_dir_walk2(baton.walk_root_abspath, 0 /*wanted*/,
+ shelf_status_visitor, &baton,
+ scratch_pool);
+ if (err && APR_STATUS_IS_ENOENT(err->apr_err))
+ svn_error_clear(err);
+ else
+ SVN_ERR(err);
+
+ return SVN_NO_ERROR;
+}
+
+typedef struct wc_status_baton_t
+{
+ svn_client__shelf_version_t *shelf_version;
+ svn_wc_status_func4_t walk_func;
+ void *walk_baton;
+} wc_status_baton_t;
+
+static svn_error_t *
+wc_status_visitor(void *baton,
+ const char *relpath,
+ svn_wc_status3_t *status,
+ apr_pool_t *scratch_pool)
+{
+ struct wc_status_baton_t *b = baton;
+ svn_client__shelf_t *shelf = b->shelf_version->shelf;
+ const char *abspath = svn_dirent_join(shelf->wc_root_abspath, relpath,
+ scratch_pool);
+ SVN_ERR(b->walk_func(b->walk_baton, abspath, status, scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf_version_status_walk(svn_client__shelf_version_t *shelf_version,
+ const char *wc_relpath,
+ svn_wc_status_func4_t walk_func,
+ void *walk_baton,
+ apr_pool_t *scratch_pool)
+{
+ wc_status_baton_t baton;
+
+ baton.shelf_version = shelf_version;
+ baton.walk_func = walk_func;
+ baton.walk_baton = walk_baton;
+ SVN_ERR(shelf_status_walk(shelf_version, wc_relpath,
+ wc_status_visitor, &baton,
+ scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+/*-------------------------------------------------------------------------*/
+/* Shelf Storage */
+
+/* A baton for use with write_changes_visitor(). */
+typedef struct write_changes_baton_t {
+ const char *wc_root_abspath;
+ svn_client__shelf_version_t *shelf_version;
+ svn_client_ctx_t *ctx;
+ svn_boolean_t any_shelved; /* were any paths successfully shelved? */
+ svn_client_status_func_t was_shelved_func;
+ void *was_shelved_baton;
+ svn_client_status_func_t was_not_shelved_func;
+ void *was_not_shelved_baton;
+ apr_pool_t *pool; /* pool for data in 'unshelvable', etc. */
+} write_changes_baton_t;
+
+/* */
+static svn_error_t *
+notify_shelved(write_changes_baton_t *wb,
+ const char *wc_relpath,
+ const char *local_abspath,
+ const svn_wc_status3_t *wc_status,
+ apr_pool_t *scratch_pool)
+{
+ if (wb->was_shelved_func)
+ {
+ svn_client_status_t *cst;
+
+ SVN_ERR(svn_client__create_status(&cst, wb->ctx->wc_ctx, local_abspath,
+ wc_status,
+ scratch_pool, scratch_pool));
+ SVN_ERR(wb->was_shelved_func(wb->was_shelved_baton,
+ wc_relpath, cst, scratch_pool));
+ }
+
+ wb->any_shelved = TRUE;
+ return SVN_NO_ERROR;
+}
+
+/* */
+static svn_error_t *
+notify_not_shelved(write_changes_baton_t *wb,
+ const char *wc_relpath,
+ const char *local_abspath,
+ const svn_wc_status3_t *wc_status,
+ apr_pool_t *scratch_pool)
+{
+ if (wb->was_not_shelved_func)
+ {
+ svn_client_status_t *cst;
+
+ SVN_ERR(svn_client__create_status(&cst, wb->ctx->wc_ctx, local_abspath,
+ wc_status,
+ scratch_pool, scratch_pool));
+ SVN_ERR(wb->was_not_shelved_func(wb->was_not_shelved_baton,
+ wc_relpath, cst, scratch_pool));
+ }
+
+ return SVN_NO_ERROR;
+}
+
+/* Read BASE_PROPS and WORK_PROPS from the WC, setting each to null if
+ * the node has no base or working version (respectively).
+ */
+static svn_error_t *
+read_props_from_wc(apr_hash_t **base_props,
+ apr_hash_t **work_props,
+ enum svn_wc_status_kind node_status,
+ const char *from_wc_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ if (node_status != svn_wc_status_added)
+ SVN_ERR(svn_wc_get_pristine_props(base_props, ctx->wc_ctx, from_wc_abspath,
+ result_pool, scratch_pool));
+ else
+ *base_props = NULL;
+ if (node_status != svn_wc_status_deleted)
+ SVN_ERR(svn_wc_prop_list2(work_props, ctx->wc_ctx, from_wc_abspath,
+ result_pool, scratch_pool));
+ else
+ *work_props = NULL;
+ return SVN_NO_ERROR;
+}
+
+/* Write BASE_PROPS and WORK_PROPS to storage in SHELF_VERSION:WC_RELPATH.
+ */
+static svn_error_t *
+write_props_to_shelf(svn_client__shelf_version_t *shelf_version,
+ const char *wc_relpath,
+ apr_hash_t *base_props,
+ apr_hash_t *work_props,
+ apr_pool_t *scratch_pool)
+{
+ char *stored_props_abspath;
+ svn_stream_t *stream;
+
+ if (base_props)
+ {
+ SVN_ERR(get_base_props_abspath(&stored_props_abspath,
+ shelf_version, wc_relpath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_stream_open_writable(&stream, stored_props_abspath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_hash_write2(base_props, stream, NULL, scratch_pool));
+ SVN_ERR(svn_stream_close(stream));
+ }
+
+ if (work_props)
+ {
+ SVN_ERR(get_working_props_abspath(&stored_props_abspath,
+ shelf_version, wc_relpath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_stream_open_writable(&stream, stored_props_abspath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_hash_write2(work_props, stream, NULL, scratch_pool));
+ SVN_ERR(svn_stream_close(stream));
+ }
+
+ return SVN_NO_ERROR;
+}
+
+/* Read BASE_PROPS and WORK_PROPS from storage in SHELF_VERSION:WC_RELPATH.
+ */
+static svn_error_t *
+read_props_from_shelf(apr_hash_t **base_props,
+ apr_hash_t **work_props,
+ enum svn_wc_status_kind node_status,
+ svn_client__shelf_version_t *shelf_version,
+ const char *wc_relpath,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ char *stored_props_abspath;
+ svn_stream_t *stream;
+
+ if (node_status != svn_wc_status_added)
+ {
+ *base_props = apr_hash_make(result_pool);
+ SVN_ERR(get_base_props_abspath(&stored_props_abspath,
+ shelf_version, wc_relpath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_stream_open_readonly(&stream, stored_props_abspath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_hash_read2(*base_props, stream, NULL, scratch_pool));
+ SVN_ERR(svn_stream_close(stream));
+ }
+ else
+ *base_props = NULL;
+
+ if (node_status != svn_wc_status_deleted)
+ {
+ *work_props = apr_hash_make(result_pool);
+ SVN_ERR(get_working_props_abspath(&stored_props_abspath,
+ shelf_version, wc_relpath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_stream_open_readonly(&stream, stored_props_abspath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_hash_read2(*work_props, stream, NULL, scratch_pool));
+ SVN_ERR(svn_stream_close(stream));
+ }
+ else
+ *work_props = NULL;
+
+ return SVN_NO_ERROR;
+}
+
+/* Store metadata for any node, and base and working files if it's a file.
+ *
+ * Copy the WC base and working files at FROM_WC_ABSPATH to the storage
+ * area in SHELF_VERSION.
+ */
+static svn_error_t *
+store_file(const char *from_wc_abspath,
+ const char *wc_relpath,
+ svn_client__shelf_version_t *shelf_version,
+ const svn_wc_status3_t *status,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ char *stored_abspath;
+ apr_hash_t *base_props, *work_props;
+
+ SVN_ERR(get_working_file_abspath(&stored_abspath,
+ shelf_version, wc_relpath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_io_make_dir_recursively(svn_dirent_dirname(stored_abspath,
+ scratch_pool),
+ scratch_pool));
+ SVN_ERR(status_write(shelf_version, wc_relpath,
+ status, scratch_pool));
+
+ /* properties */
+ SVN_ERR(read_props_from_wc(&base_props, &work_props,
+ status->node_status,
+ from_wc_abspath, ctx,
+ scratch_pool, scratch_pool));
+ SVN_ERR(write_props_to_shelf(shelf_version, wc_relpath,
+ base_props, work_props,
+ scratch_pool));
+
+ /* file text */
+ if (status->kind == svn_node_file)
+ {
+ svn_stream_t *wc_base_stream;
+ svn_node_kind_t work_kind;
+
+ /* Copy the base file (copy-from base, if copied/moved), if present */
+ SVN_ERR(svn_wc_get_pristine_contents2(&wc_base_stream,
+ ctx->wc_ctx, from_wc_abspath,
+ scratch_pool, scratch_pool));
+ if (wc_base_stream)
+ {
+ char *stored_base_abspath;
+ svn_stream_t *stored_base_stream;
+
+ SVN_ERR(get_base_file_abspath(&stored_base_abspath,
+ shelf_version, wc_relpath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_stream_open_writable(&stored_base_stream,
+ stored_base_abspath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_stream_copy3(wc_base_stream, stored_base_stream,
+ NULL, NULL, scratch_pool));
+ }
+
+ /* Copy the working file, if present */
+ SVN_ERR(svn_io_check_path(from_wc_abspath, &work_kind, scratch_pool));
+ if (work_kind == svn_node_file)
+ {
+ SVN_ERR(svn_io_copy_file(from_wc_abspath, stored_abspath,
+ TRUE /*copy_perms*/, scratch_pool));
+ }
+ }
+ return SVN_NO_ERROR;
+}
+
+/* An implementation of svn_wc_status_func4_t. */
+static svn_error_t *
+write_changes_visitor(void *baton,
+ const char *local_abspath,
+ const svn_wc_status3_t *status,
+ apr_pool_t *scratch_pool)
+{
+ write_changes_baton_t *wb = baton;
+ const char *wc_relpath = svn_dirent_skip_ancestor(wb->wc_root_abspath,
+ local_abspath);
+
+ /* Catch any conflict, even a tree conflict on a path that has
+ node-status 'unversioned'. */
+ if (status->conflicted)
+ {
+ SVN_ERR(notify_not_shelved(wb, wc_relpath, local_abspath,
+ status, scratch_pool));
+ }
+ else switch (status->node_status)
+ {
+ case svn_wc_status_deleted:
+ case svn_wc_status_added:
+ case svn_wc_status_replaced:
+ if (status->kind != svn_node_file
+ || status->copied)
+ {
+ SVN_ERR(notify_not_shelved(wb, wc_relpath, local_abspath,
+ status, scratch_pool));
+ break;
+ }
+ /* fall through */
+ case svn_wc_status_modified:
+ {
+ /* Store metadata, and base and working versions if it's a file */
+ SVN_ERR(store_file(local_abspath, wc_relpath, wb->shelf_version,
+ status, wb->ctx, scratch_pool));
+ SVN_ERR(notify_shelved(wb, wc_relpath, local_abspath,
+ status, scratch_pool));
+ break;
+ }
+
+ case svn_wc_status_incomplete:
+ if ((status->text_status != svn_wc_status_normal
+ && status->text_status != svn_wc_status_none)
+ || (status->prop_status != svn_wc_status_normal
+ && status->prop_status != svn_wc_status_none))
+ {
+ /* Incomplete, but local modifications */
+ SVN_ERR(notify_not_shelved(wb, wc_relpath, local_abspath,
+ status, scratch_pool));
+ }
+ break;
+
+ case svn_wc_status_conflicted:
+ case svn_wc_status_missing:
+ case svn_wc_status_obstructed:
+ SVN_ERR(notify_not_shelved(wb, wc_relpath, local_abspath,
+ status, scratch_pool));
+ break;
+
+ case svn_wc_status_normal:
+ case svn_wc_status_ignored:
+ case svn_wc_status_none:
+ case svn_wc_status_external:
+ case svn_wc_status_unversioned:
+ default:
+ break;
+ }
+
+ return SVN_NO_ERROR;
+}
+
+/* A baton for use with changelist_filter_func(). */
+struct changelist_filter_baton_t {
+ apr_hash_t *changelist_hash;
+ svn_wc_status_func4_t status_func;
+ void *status_baton;
+};
+
+/* Filter out paths that are not in the requested changelist(s).
+ * Implements svn_wc_status_func4_t. */
+static svn_error_t *
+changelist_filter_func(void *baton,
+ const char *local_abspath,
+ const svn_wc_status3_t *status,
+ apr_pool_t *scratch_pool)
+{
+ struct changelist_filter_baton_t *b = baton;
+
+ if (b->changelist_hash
+ && (! status->changelist
+ || ! svn_hash_gets(b->changelist_hash, status->changelist)))
+ {
+ return SVN_NO_ERROR;
+ }
+
+ SVN_ERR(b->status_func(b->status_baton, local_abspath, status,
+ scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+/*
+ * Walk the WC tree(s) rooted at PATHS, to depth DEPTH, omitting paths that
+ * are not in one of the CHANGELISTS (if not null).
+ *
+ * Call STATUS_FUNC(STATUS_BATON, ...) for each visited path.
+ *
+ * PATHS are absolute, or relative to CWD.
+ */
+static svn_error_t *
+wc_walk_status_multi(const apr_array_header_t *paths,
+ svn_depth_t depth,
+ const apr_array_header_t *changelists,
+ svn_wc_status_func4_t status_func,
+ void *status_baton,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ struct changelist_filter_baton_t cb = {0};
+ int i;
+
+ if (changelists && changelists->nelts)
+ SVN_ERR(svn_hash_from_cstring_keys(&cb.changelist_hash,
+ changelists, scratch_pool));
+ cb.status_func = status_func;
+ cb.status_baton = status_baton;
+
+ for (i = 0; i < paths->nelts; i++)
+ {
+ const char *path = APR_ARRAY_IDX(paths, i, const char *);
+
+ if (svn_path_is_url(path))
+ return svn_error_createf(SVN_ERR_ILLEGAL_TARGET, NULL,
+ _("'%s' is not a local path"), path);
+ SVN_ERR(svn_dirent_get_absolute(&path, path, scratch_pool));
+
+ SVN_ERR(svn_wc_walk_status(ctx->wc_ctx, path, depth,
+ FALSE /*get_all*/, FALSE /*no_ignore*/,
+ FALSE /*ignore_text_mods*/,
+ NULL /*ignore_patterns*/,
+ changelist_filter_func, &cb,
+ ctx->cancel_func, ctx->cancel_baton,
+ scratch_pool));
+ }
+
+ return SVN_NO_ERROR;
+}
+
+/** Write local changes to the shelf storage.
+ *
+ * @a paths, @a depth, @a changelists: The selection of local paths to diff.
+ *
+ * @a paths are relative to CWD (or absolute).
+ */
+static svn_error_t *
+shelf_write_changes(svn_boolean_t *any_shelved,
+ svn_client__shelf_version_t *shelf_version,
+ const apr_array_header_t *paths,
+ svn_depth_t depth,
+ const apr_array_header_t *changelists,
+ svn_client_status_func_t shelved_func,
+ void *shelved_baton,
+ svn_client_status_func_t not_shelved_func,
+ void *not_shelved_baton,
+ const char *wc_root_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ write_changes_baton_t wb = { 0 };
+
+ wb.wc_root_abspath = wc_root_abspath;
+ wb.shelf_version = shelf_version;
+ wb.ctx = ctx;
+ wb.any_shelved = FALSE;
+ wb.was_shelved_func = shelved_func;
+ wb.was_shelved_baton = shelved_baton;
+ wb.was_not_shelved_func = not_shelved_func;
+ wb.was_not_shelved_baton = not_shelved_baton;
+ wb.pool = result_pool;
+
+ /* Walk the WC */
+ SVN_ERR(wc_walk_status_multi(paths, depth, changelists,
+ write_changes_visitor, &wb,
+ ctx, scratch_pool));
+
+ *any_shelved = wb.any_shelved;
+ return SVN_NO_ERROR;
+}
+
+/* Construct a shelf object representing an empty shelf: no versions,
+ * no revprops, no looking to see if such a shelf exists on disk.
+ */
+static svn_error_t *
+shelf_construct(svn_client__shelf_t **shelf_p,
+ const char *name,
+ const char *local_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool)
+{
+ svn_client__shelf_t *shelf = apr_palloc(result_pool, sizeof(*shelf));
+ char *shelves_dir;
+
+ SVN_ERR(svn_client_get_wc_root(&shelf->wc_root_abspath,
+ local_abspath, ctx,
+ result_pool, result_pool));
+ SVN_ERR(svn_wc__get_shelves_dir(&shelves_dir,
+ ctx->wc_ctx, local_abspath,
+ result_pool, result_pool));
+ shelf->shelves_dir = shelves_dir;
+ shelf->ctx = ctx;
+ shelf->pool = result_pool;
+
+ shelf->name = apr_pstrdup(result_pool, name);
+ shelf->revprops = apr_hash_make(result_pool);
+ shelf->max_version = 0;
+
+ *shelf_p = shelf;
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf_open_existing(svn_client__shelf_t **shelf_p,
+ const char *name,
+ const char *local_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool)
+{
+ SVN_ERR(shelf_construct(shelf_p, name,
+ local_abspath, ctx, result_pool));
+ SVN_ERR(shelf_read_revprops(*shelf_p, result_pool));
+ SVN_ERR(shelf_read_current(*shelf_p, result_pool));
+ if ((*shelf_p)->max_version < 0)
+ {
+ return svn_error_createf(SVN_ERR_ILLEGAL_TARGET, NULL,
+ _("Shelf '%s' not found"),
+ name);
+ }
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf_open_or_create(svn_client__shelf_t **shelf_p,
+ const char *name,
+ const char *local_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool)
+{
+ svn_client__shelf_t *shelf;
+
+ SVN_ERR(shelf_construct(&shelf, name,
+ local_abspath, ctx, result_pool));
+ SVN_ERR(shelf_read_revprops(shelf, result_pool));
+ SVN_ERR(shelf_read_current(shelf, result_pool));
+ if (shelf->max_version < 0)
+ {
+ shelf->max_version = 0;
+ SVN_ERR(shelf_write_current(shelf, result_pool));
+ }
+ *shelf_p = shelf;
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf_close(svn_client__shelf_t *shelf,
+ apr_pool_t *scratch_pool)
+{
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf_delete(const char *name,
+ const char *local_abspath,
+ svn_boolean_t dry_run,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ svn_client__shelf_t *shelf;
+ int i;
+ char *abspath;
+
+ SVN_ERR(svn_client__shelf_open_existing(&shelf, name,
+ local_abspath, ctx, scratch_pool));
+
+ /* Remove the versions. */
+ for (i = shelf->max_version; i > 0; i--)
+ {
+ SVN_ERR(shelf_version_delete(shelf, i, scratch_pool));
+ }
+
+ /* Remove the other files */
+ SVN_ERR(get_log_abspath(&abspath, shelf, scratch_pool, scratch_pool));
+ SVN_ERR(svn_io_remove_file2(abspath, TRUE /*ignore_enoent*/, scratch_pool));
+ SVN_ERR(get_current_abspath(&abspath, shelf, scratch_pool));
+ SVN_ERR(svn_io_remove_file2(abspath, TRUE /*ignore_enoent*/, scratch_pool));
+
+ SVN_ERR(svn_client__shelf_close(shelf, scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+/* Baton for paths_changed_visitor(). */
+struct paths_changed_walk_baton_t
+{
+ apr_hash_t *paths_hash;
+ svn_boolean_t as_abspath;
+ const char *wc_root_abspath;
+ apr_pool_t *pool;
+};
+
+/* Add to the list(s) in BATON, the RELPATH of a shelved 'binary' file.
+ * Implements shelved_files_walk_func_t. */
+static svn_error_t *
+paths_changed_visitor(void *baton,
+ const char *relpath,
+ svn_wc_status3_t *s,
+ apr_pool_t *scratch_pool)
+{
+ struct paths_changed_walk_baton_t *b = baton;
+
+ relpath = (b->as_abspath
+ ? svn_dirent_join(b->wc_root_abspath, relpath, b->pool)
+ : apr_pstrdup(b->pool, relpath));
+ svn_hash_sets(b->paths_hash, relpath, relpath);
+ return SVN_NO_ERROR;
+}
+
+/* Get the paths changed, relative to WC root or as abspaths, as a hash
+ * and/or an array (in no particular order).
+ */
+static svn_error_t *
+shelf_paths_changed(apr_hash_t **paths_hash_p,
+ apr_array_header_t **paths_array_p,
+ svn_client__shelf_version_t *shelf_version,
+ svn_boolean_t as_abspath,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ svn_client__shelf_t *shelf = shelf_version->shelf;
+ apr_hash_t *paths_hash = apr_hash_make(result_pool);
+ struct paths_changed_walk_baton_t baton;
+
+ baton.paths_hash = paths_hash;
+ baton.as_abspath = as_abspath;
+ baton.wc_root_abspath = shelf->wc_root_abspath;
+ baton.pool = result_pool;
+ SVN_ERR(shelf_status_walk(shelf_version, "",
+ paths_changed_visitor, &baton,
+ scratch_pool));
+
+ if (paths_hash_p)
+ *paths_hash_p = paths_hash;
+ if (paths_array_p)
+ SVN_ERR(svn_hash_keys(paths_array_p, paths_hash, result_pool));
+
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf_paths_changed(apr_hash_t **affected_paths,
+ svn_client__shelf_version_t *shelf_version,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ SVN_ERR(shelf_paths_changed(affected_paths, NULL, shelf_version,
+ FALSE /*as_abspath*/,
+ result_pool, scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+/* Send a notification */
+static svn_error_t *
+send_notification(const char *local_abspath,
+ svn_wc_notify_action_t action,
+ svn_node_kind_t kind,
+ svn_wc_notify_state_t content_state,
+ svn_wc_notify_state_t prop_state,
+ svn_wc_notify_func2_t notify_func,
+ void *notify_baton,
+ apr_pool_t *scratch_pool)
+{
+ if (notify_func)
+ {
+ svn_wc_notify_t *notify
+ = svn_wc_create_notify(local_abspath, action, scratch_pool);
+
+ notify->kind = kind;
+ notify->content_state = content_state;
+ notify->prop_state = prop_state;
+ notify_func(notify_baton, notify, scratch_pool);
+ }
+
+ return SVN_NO_ERROR;
+}
+
+/* Merge a shelved change into WC_ABSPATH.
+ */
+static svn_error_t *
+wc_file_merge(const char *wc_abspath,
+ const char *left_file,
+ const char *right_file,
+ /*const*/ apr_hash_t *left_props,
+ /*const*/ apr_hash_t *right_props,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ svn_wc_notify_state_t property_state;
+ svn_boolean_t has_local_mods;
+ enum svn_wc_merge_outcome_t content_outcome;
+ const char *target_label, *left_label, *right_label;
+ apr_array_header_t *prop_changes;
+
+ /* xgettext: the '.working', '.merge-left' and '.merge-right' strings
+ are used to tag onto a file name in case of a merge conflict */
+ target_label = apr_psprintf(scratch_pool, _(".working"));
+ left_label = apr_psprintf(scratch_pool, _(".merge-left"));
+ right_label = apr_psprintf(scratch_pool, _(".merge-right"));
+
+ SVN_ERR(svn_prop_diffs(&prop_changes, right_props, left_props, scratch_pool));
+ SVN_ERR(svn_wc_text_modified_p2(&has_local_mods, ctx->wc_ctx,
+ wc_abspath, FALSE, scratch_pool));
+
+ /* Do property merge and text merge in one step so that keyword expansion
+ takes into account the new property values. */
+ SVN_WC__CALL_WITH_WRITE_LOCK(
+ svn_wc_merge5(&content_outcome, &property_state, ctx->wc_ctx,
+ left_file, right_file, wc_abspath,
+ left_label, right_label, target_label,
+ NULL, NULL, /*left, right conflict-versions*/
+ FALSE /*dry_run*/, NULL /*diff3_cmd*/,
+ NULL /*merge_options*/,
+ left_props, prop_changes,
+ NULL, NULL,
+ ctx->cancel_func, ctx->cancel_baton,
+ scratch_pool),
+ ctx->wc_ctx, wc_abspath,
+ FALSE /*lock_anchor*/, scratch_pool);
+
+ return SVN_NO_ERROR;
+}
+
+/* Merge a shelved change (of properties) into the dir at WC_ABSPATH.
+ */
+static svn_error_t *
+wc_dir_props_merge(const char *wc_abspath,
+ /*const*/ apr_hash_t *left_props,
+ /*const*/ apr_hash_t *right_props,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ apr_array_header_t *prop_changes;
+ svn_wc_notify_state_t property_state;
+
+ SVN_ERR(svn_prop_diffs(&prop_changes, right_props, left_props, scratch_pool));
+ SVN_WC__CALL_WITH_WRITE_LOCK(
+ svn_wc_merge_props3(&property_state, ctx->wc_ctx,
+ wc_abspath,
+ NULL, NULL, /*left, right conflict-versions*/
+ left_props, prop_changes,
+ FALSE /*dry_run*/,
+ NULL, NULL,
+ ctx->cancel_func, ctx->cancel_baton,
+ scratch_pool),
+ ctx->wc_ctx, wc_abspath,
+ FALSE /*lock_anchor*/, scratch_pool);
+
+ return SVN_NO_ERROR;
+}
+
+/* Apply a shelved "delete" to TO_WC_ABSPATH.
+ */
+static svn_error_t *
+wc_node_delete(const char *to_wc_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ SVN_WC__CALL_WITH_WRITE_LOCK(
+ svn_wc_delete4(ctx->wc_ctx,
+ to_wc_abspath,
+ FALSE /*keep_local*/,
+ TRUE /*delete_unversioned_target*/,
+ NULL, NULL, NULL, NULL, /*cancel, notify*/
+ scratch_pool),
+ ctx->wc_ctx, to_wc_abspath,
+ TRUE /*lock_anchor*/, scratch_pool);
+ return SVN_NO_ERROR;
+}
+
+/* Apply a shelved "add" to TO_WC_ABSPATH.
+ * The node must already exist on disk, in a versioned parent dir.
+ */
+static svn_error_t *
+wc_node_add(const char *to_wc_abspath,
+ apr_hash_t *work_props,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ /* If it was not already versioned, schedule the node for addition.
+ (Do not apply autoprops, because this isn't a user-facing "add" but
+ restoring a previously saved state.) */
+ SVN_WC__CALL_WITH_WRITE_LOCK(
+ svn_wc_add_from_disk3(ctx->wc_ctx,
+ to_wc_abspath, work_props,
+ FALSE /* skip checks */,
+ NULL, NULL, scratch_pool),
+ ctx->wc_ctx, to_wc_abspath,
+ TRUE /*lock_anchor*/, scratch_pool);
+ return SVN_NO_ERROR;
+}
+
+/* Baton for apply_file_visitor(). */
+struct apply_files_baton_t
+{
+ svn_client__shelf_version_t *shelf_version;
+ svn_boolean_t test_only; /* only check whether it would conflict */
+ svn_boolean_t conflict; /* would it conflict? */
+ svn_client_ctx_t *ctx;
+};
+
+/* Copy the file RELPATH from shelf binary file storage to the WC.
+ *
+ * If it is not already versioned, schedule the file for addition.
+ *
+ * Make any missing parent directories.
+ *
+ * In test mode (BATON->test_only): set BATON->conflict if we can't apply
+ * the change to WC at RELPATH without conflict. But in fact, just check
+ * if WC at RELPATH is locally modified.
+ *
+ * Implements shelved_files_walk_func_t. */
+static svn_error_t *
+apply_file_visitor(void *baton,
+ const char *relpath,
+ svn_wc_status3_t *s,
+ apr_pool_t *scratch_pool)
+{
+ struct apply_files_baton_t *b = baton;
+ const char *wc_root_abspath = b->shelf_version->shelf->wc_root_abspath;
+ char *stored_base_abspath, *stored_work_abspath;
+ apr_hash_t *base_props, *work_props;
+ const char *to_wc_abspath = svn_dirent_join(wc_root_abspath, relpath,
+ scratch_pool);
+ const char *to_dir_abspath = svn_dirent_dirname(to_wc_abspath, scratch_pool);
+
+ SVN_ERR(get_base_file_abspath(&stored_base_abspath,
+ b->shelf_version, relpath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(get_working_file_abspath(&stored_work_abspath,
+ b->shelf_version, relpath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(read_props_from_shelf(&base_props, &work_props,
+ s->node_status,
+ b->shelf_version, relpath,
+ scratch_pool, scratch_pool));
+
+ if (b->test_only)
+ {
+ svn_wc_status3_t *status;
+
+ SVN_ERR(svn_wc_status3(&status, b->ctx->wc_ctx, to_wc_abspath,
+ scratch_pool, scratch_pool));
+ switch (status->node_status)
+ {
+ case svn_wc_status_normal:
+ case svn_wc_status_none:
+ break;
+ default:
+ b->conflict = TRUE;
+ }
+
+ return SVN_NO_ERROR;
+ }
+
+ /* Handle 'delete' and the delete half of 'replace' */
+ if (s->node_status == svn_wc_status_deleted
+ || s->node_status == svn_wc_status_replaced)
+ {
+ SVN_ERR(wc_node_delete(to_wc_abspath, b->ctx, scratch_pool));
+ if (s->node_status != svn_wc_status_replaced)
+ {
+ SVN_ERR(send_notification(to_wc_abspath, svn_wc_notify_update_delete,
+ s->kind,
+ svn_wc_notify_state_inapplicable,
+ svn_wc_notify_state_inapplicable,
+ b->ctx->notify_func2, b->ctx->notify_baton2,
+ scratch_pool));
+ }
+ }
+
+ /* If we can merge a file, do so. */
+ if (s->node_status == svn_wc_status_modified)
+ {
+ if (s->kind == svn_node_dir)
+ {
+ SVN_ERR(wc_dir_props_merge(to_wc_abspath,
+ base_props, work_props,
+ b->ctx, scratch_pool, scratch_pool));
+ }
+ else if (s->kind == svn_node_file)
+ {
+ SVN_ERR(wc_file_merge(to_wc_abspath,
+ stored_base_abspath, stored_work_abspath,
+ base_props, work_props,
+ b->ctx, scratch_pool));
+ }
+ SVN_ERR(send_notification(to_wc_abspath, svn_wc_notify_update_update,
+ s->kind,
+ (s->kind == svn_node_dir)
+ ? svn_wc_notify_state_inapplicable
+ : svn_wc_notify_state_merged,
+ (s->kind == svn_node_dir)
+ ? svn_wc_notify_state_merged
+ : svn_wc_notify_state_unknown,
+ b->ctx->notify_func2, b->ctx->notify_baton2,
+ scratch_pool));
+ }
+
+ /* For an added file, copy it into the WC and ensure it's versioned. */
+ if (s->node_status == svn_wc_status_added
+ || s->node_status == svn_wc_status_replaced)
+ {
+ if (s->kind == svn_node_dir)
+ {
+ SVN_ERR(svn_io_make_dir_recursively(to_wc_abspath, scratch_pool));
+ }
+ else if (s->kind == svn_node_file)
+ {
+ SVN_ERR(svn_io_make_dir_recursively(to_dir_abspath, scratch_pool));
+ SVN_ERR(svn_io_copy_file(stored_work_abspath, to_wc_abspath,
+ TRUE /*copy_perms*/, scratch_pool));
+ }
+ SVN_ERR(wc_node_add(to_wc_abspath, work_props, b->ctx, scratch_pool));
+ SVN_ERR(send_notification(to_wc_abspath,
+ (s->node_status == svn_wc_status_replaced)
+ ? svn_wc_notify_update_replace
+ : svn_wc_notify_update_add,
+ s->kind,
+ svn_wc_notify_state_inapplicable,
+ svn_wc_notify_state_inapplicable,
+ b->ctx->notify_func2, b->ctx->notify_baton2,
+ scratch_pool));
+ }
+
+ return SVN_NO_ERROR;
+}
+
+/*-------------------------------------------------------------------------*/
+/* Diff */
+
+/* */
+static svn_error_t *
+file_changed(svn_client__shelf_version_t *shelf_version,
+ const char *relpath,
+ svn_wc_status3_t *s,
+ const svn_diff_tree_processor_t *diff_processor,
+ svn_diff_source_t *left_source,
+ svn_diff_source_t *right_source,
+ const char *left_stored_abspath,
+ const char *right_stored_abspath,
+ void *dir_baton,
+ apr_pool_t *scratch_pool)
+{
+ void *fb;
+ svn_boolean_t skip = FALSE;
+
+ SVN_ERR(diff_processor->file_opened(&fb, &skip, relpath,
+ left_source, right_source,
+ NULL /*copyfrom*/,
+ dir_baton, diff_processor,
+ scratch_pool, scratch_pool));
+ if (!skip)
+ {
+ apr_hash_t *left_props, *right_props;
+ apr_array_header_t *prop_changes;
+
+ SVN_ERR(read_props_from_shelf(&left_props, &right_props,
+ s->node_status, shelf_version, relpath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_prop_diffs(&prop_changes, right_props, left_props,
+ scratch_pool));
+ SVN_ERR(diff_processor->file_changed(
+ relpath,
+ left_source, right_source,
+ left_stored_abspath, right_stored_abspath,
+ left_props, right_props,
+ TRUE /*file_modified*/, prop_changes,
+ fb, diff_processor, scratch_pool));
+ }
+
+ return SVN_NO_ERROR;
+}
+
+/* */
+static svn_error_t *
+file_deleted(svn_client__shelf_version_t *shelf_version,
+ const char *relpath,
+ svn_wc_status3_t *s,
+ const svn_diff_tree_processor_t *diff_processor,
+ svn_diff_source_t *left_source,
+ const char *left_stored_abspath,
+ void *dir_baton,
+ apr_pool_t *scratch_pool)
+{
+ void *fb;
+ svn_boolean_t skip = FALSE;
+
+ SVN_ERR(diff_processor->file_opened(&fb, &skip, relpath,
+ left_source, NULL, NULL /*copyfrom*/,
+ dir_baton, diff_processor,
+ scratch_pool, scratch_pool));
+ if (!skip)
+ {
+ apr_hash_t *left_props, *right_props;
+
+ SVN_ERR(read_props_from_shelf(&left_props, &right_props,
+ s->node_status, shelf_version, relpath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(diff_processor->file_deleted(relpath,
+ left_source,
+ left_stored_abspath,
+ left_props,
+ fb, diff_processor,
+ scratch_pool));
+ }
+
+ return SVN_NO_ERROR;
+}
+
+/* */
+static svn_error_t *
+file_added(svn_client__shelf_version_t *shelf_version,
+ const char *relpath,
+ svn_wc_status3_t *s,
+ const svn_diff_tree_processor_t *diff_processor,
+ svn_diff_source_t *right_source,
+ const char *right_stored_abspath,
+ void *dir_baton,
+ apr_pool_t *scratch_pool)
+{
+ void *fb;
+ svn_boolean_t skip = FALSE;
+
+ SVN_ERR(diff_processor->file_opened(&fb, &skip, relpath,
+ NULL, right_source, NULL /*copyfrom*/,
+ dir_baton, diff_processor,
+ scratch_pool, scratch_pool));
+ if (!skip)
+ {
+ apr_hash_t *left_props, *right_props;
+
+ SVN_ERR(read_props_from_shelf(&left_props, &right_props,
+ s->node_status, shelf_version, relpath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(diff_processor->file_added(
+ relpath,
+ NULL /*copyfrom_source*/, right_source,
+ NULL /*copyfrom_abspath*/, right_stored_abspath,
+ NULL /*copyfrom_props*/, right_props,
+ fb, diff_processor, scratch_pool));
+ }
+
+ return SVN_NO_ERROR;
+}
+
+/* Baton for diff_visitor(). */
+struct diff_baton_t
+{
+ svn_client__shelf_version_t *shelf_version;
+ const char *top_relpath; /* top of diff, relative to shelf */
+ const char *walk_root_abspath;
+ const svn_diff_tree_processor_t *diff_processor;
+};
+
+/* Drive BATON->diff_processor.
+ * Implements svn_io_walk_func_t. */
+static svn_error_t *
+diff_visitor(void *baton,
+ const char *abspath,
+ const apr_finfo_t *finfo,
+ apr_pool_t *scratch_pool)
+{
+ struct diff_baton_t *b = baton;
+ const char *relpath;
+
+ relpath = svn_dirent_skip_ancestor(b->walk_root_abspath, abspath);
+ if (finfo->filetype == APR_REG
+ && (strlen(relpath) >= 5 && strcmp(relpath+strlen(relpath)-5, ".meta") == 0))
+ {
+ svn_wc_status3_t *s;
+ void *db = NULL;
+ svn_diff_source_t *left_source;
+ svn_diff_source_t *right_source;
+ char *left_stored_abspath, *right_stored_abspath;
+
+ relpath = apr_pstrndup(scratch_pool, relpath, strlen(relpath) - 5);
+ if (!svn_relpath_skip_ancestor(b->top_relpath, relpath))
+ return SVN_NO_ERROR;
+
+ SVN_ERR(status_read(&s, b->shelf_version, relpath,
+ scratch_pool, scratch_pool));
+
+ left_source = svn_diff__source_create(s->revision, scratch_pool);
+ right_source = svn_diff__source_create(SVN_INVALID_REVNUM, scratch_pool);
+ SVN_ERR(get_base_file_abspath(&left_stored_abspath,
+ b->shelf_version, relpath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(get_working_file_abspath(&right_stored_abspath,
+ b->shelf_version, relpath,
+ scratch_pool, scratch_pool));
+
+ switch (s->node_status)
+ {
+ case svn_wc_status_modified:
+ SVN_ERR(file_changed(b->shelf_version, relpath, s,
+ b->diff_processor,
+ left_source, right_source,
+ left_stored_abspath, right_stored_abspath,
+ db, scratch_pool));
+ break;
+ case svn_wc_status_added:
+ SVN_ERR(file_added(b->shelf_version, relpath, s,
+ b->diff_processor,
+ right_source, right_stored_abspath,
+ db, scratch_pool));
+ break;
+ case svn_wc_status_deleted:
+ SVN_ERR(file_deleted(b->shelf_version, relpath, s,
+ b->diff_processor,
+ left_source, left_stored_abspath,
+ db, scratch_pool));
+ break;
+ case svn_wc_status_replaced:
+ SVN_ERR(file_deleted(b->shelf_version, relpath, s,
+ b->diff_processor,
+ left_source, left_stored_abspath,
+ db, scratch_pool));
+ SVN_ERR(file_added(b->shelf_version, relpath, s,
+ b->diff_processor,
+ right_source, right_stored_abspath,
+ db, scratch_pool));
+ default:
+ break;
+ }
+ }
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf_test_apply_file(svn_boolean_t *conflict_p,
+ svn_client__shelf_version_t *shelf_version,
+ const char *file_relpath,
+ apr_pool_t *scratch_pool)
+{
+ struct apply_files_baton_t baton = {0};
+
+ baton.shelf_version = shelf_version;
+ baton.test_only = TRUE;
+ baton.conflict = FALSE;
+ baton.ctx = shelf_version->shelf->ctx;
+ SVN_ERR(shelf_status_visit_path(shelf_version, file_relpath,
+ apply_file_visitor, &baton,
+ scratch_pool));
+ *conflict_p = baton.conflict;
+
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf_apply(svn_client__shelf_version_t *shelf_version,
+ svn_boolean_t dry_run,
+ apr_pool_t *scratch_pool)
+{
+ struct apply_files_baton_t baton = {0};
+
+ baton.shelf_version = shelf_version;
+ baton.ctx = shelf_version->shelf->ctx;
+ SVN_ERR(shelf_status_walk(shelf_version, "",
+ apply_file_visitor, &baton,
+ scratch_pool));
+
+ svn_io_sleep_for_timestamps(shelf_version->shelf->wc_root_abspath,
+ scratch_pool);
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf_unapply(svn_client__shelf_version_t *shelf_version,
+ svn_boolean_t dry_run,
+ apr_pool_t *scratch_pool)
+{
+ apr_array_header_t *targets;
+
+ SVN_ERR(shelf_paths_changed(NULL, &targets, shelf_version,
+ TRUE /*as_abspath*/,
+ scratch_pool, scratch_pool));
+ if (!dry_run)
+ {
+ SVN_ERR(svn_client_revert4(targets, svn_depth_empty,
+ NULL /*changelists*/,
+ FALSE /*clear_changelists*/,
+ FALSE /*metadata_only*/,
+ FALSE /*added_keep_local*/,
+ shelf_version->shelf->ctx, scratch_pool));
+ }
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf_delete_newer_versions(svn_client__shelf_t *shelf,
+ svn_client__shelf_version_t *shelf_version,
+ apr_pool_t *scratch_pool)
+{
+ int previous_version = shelf_version ? shelf_version->version_number : 0;
+ int i;
+
+ /* Delete any newer checkpoints */
+ for (i = shelf->max_version; i > previous_version; i--)
+ {
+ SVN_ERR(shelf_version_delete(shelf, i, scratch_pool));
+ }
+
+ shelf->max_version = previous_version;
+ SVN_ERR(shelf_write_current(shelf, scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf_diff(svn_client__shelf_version_t *shelf_version,
+ const char *shelf_relpath,
+ svn_depth_t depth,
+ svn_boolean_t ignore_ancestry,
+ const svn_diff_tree_processor_t *diff_processor,
+ apr_pool_t *scratch_pool)
+{
+ struct diff_baton_t baton;
+
+ if (shelf_version->version_number == 0)
+ return SVN_NO_ERROR;
+
+ baton.shelf_version = shelf_version;
+ baton.top_relpath = shelf_relpath;
+ baton.walk_root_abspath = shelf_version->files_dir_abspath;
+ baton.diff_processor = diff_processor;
+ SVN_ERR(svn_io_dir_walk2(baton.walk_root_abspath, 0 /*wanted*/,
+ diff_visitor, &baton,
+ scratch_pool));
+
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf_save_new_version3(svn_client__shelf_version_t **new_version_p,
+ svn_client__shelf_t *shelf,
+ const apr_array_header_t *paths,
+ svn_depth_t depth,
+ const apr_array_header_t *changelists,
+ svn_client_status_func_t shelved_func,
+ void *shelved_baton,
+ svn_client_status_func_t not_shelved_func,
+ void *not_shelved_baton,
+ apr_pool_t *scratch_pool)
+{
+ int next_version = shelf->max_version + 1;
+ svn_client__shelf_version_t *new_shelf_version;
+ svn_boolean_t any_shelved;
+
+ SVN_ERR(shelf_version_create(&new_shelf_version,
+ shelf, next_version, scratch_pool));
+ SVN_ERR(shelf_write_changes(&any_shelved,
+ new_shelf_version,
+ paths, depth, changelists,
+ shelved_func, shelved_baton,
+ not_shelved_func, not_shelved_baton,
+ shelf->wc_root_abspath,
+ shelf->ctx, scratch_pool, scratch_pool));
+
+ if (any_shelved)
+ {
+ shelf->max_version = next_version;
+ SVN_ERR(shelf_write_current(shelf, scratch_pool));
+
+ if (new_version_p)
+ SVN_ERR(svn_client__shelf_version_open(new_version_p, shelf, next_version,
+ scratch_pool, scratch_pool));
+ }
+ else
+ {
+ if (new_version_p)
+ *new_version_p = NULL;
+ }
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf_get_log_message(char **log_message,
+ svn_client__shelf_t *shelf,
+ apr_pool_t *result_pool)
+{
+ svn_string_t *propval = svn_hash_gets(shelf->revprops, SVN_PROP_REVISION_LOG);
+
+ if (propval)
+ *log_message = apr_pstrdup(result_pool, propval->data);
+ else
+ *log_message = NULL;
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf_set_log_message(svn_client__shelf_t *shelf,
+ const char *message,
+ apr_pool_t *scratch_pool)
+{
+ svn_string_t *propval
+ = message ? svn_string_create(message, shelf->pool) : NULL;
+
+ SVN_ERR(svn_client__shelf_revprop_set(shelf, SVN_PROP_REVISION_LOG, propval,
+ scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf_list(apr_hash_t **shelf_infos,
+ const char *local_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ const char *wc_root_abspath;
+ char *shelves_dir;
+ apr_hash_t *dirents;
+ apr_hash_index_t *hi;
+
+ SVN_ERR(svn_wc__get_wcroot(&wc_root_abspath, ctx->wc_ctx, local_abspath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_wc__get_shelves_dir(&shelves_dir, ctx->wc_ctx, local_abspath,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_io_get_dirents3(&dirents, shelves_dir, FALSE /*only_check_type*/,
+ result_pool, scratch_pool));
+
+ *shelf_infos = apr_hash_make(result_pool);
+
+ /* Remove non-shelves */
+ for (hi = apr_hash_first(scratch_pool, dirents); hi; hi = apr_hash_next(hi))
+ {
+ const char *filename = apr_hash_this_key(hi);
+ svn_io_dirent2_t *dirent = apr_hash_this_val(hi);
+ char *name = NULL;
+
+ svn_error_clear(shelf_name_from_filename(&name, filename, result_pool));
+ if (name && dirent->kind == svn_node_file)
+ {
+ svn_client__shelf_info_t *info
+ = apr_palloc(result_pool, sizeof(*info));
+
+ info->mtime = dirent->mtime;
+ svn_hash_sets(*shelf_infos, name, info);
+ }
+ }
+
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf_version_open(svn_client__shelf_version_t **shelf_version_p,
+ svn_client__shelf_t *shelf,
+ int version_number,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ svn_client__shelf_version_t *shelf_version;
+ const svn_io_dirent2_t *dirent;
+
+ SVN_ERR(shelf_version_create(&shelf_version,
+ shelf, version_number, result_pool));
+ SVN_ERR(svn_io_stat_dirent2(&dirent,
+ shelf_version->files_dir_abspath,
+ FALSE /*verify_truename*/,
+ TRUE /*ignore_enoent*/,
+ result_pool, scratch_pool));
+ if (dirent->kind == svn_node_none)
+ {
+ return svn_error_createf(SVN_ERR_ILLEGAL_TARGET, NULL,
+ _("Shelf '%s' version %d not found"),
+ shelf->name, version_number);
+ }
+ shelf_version->mtime = dirent->mtime;
+ *shelf_version_p = shelf_version;
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf_get_newest_version(svn_client__shelf_version_t **shelf_version_p,
+ svn_client__shelf_t *shelf,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ if (shelf->max_version == 0)
+ {
+ *shelf_version_p = NULL;
+ return SVN_NO_ERROR;
+ }
+
+ SVN_ERR(svn_client__shelf_version_open(shelf_version_p,
+ shelf, shelf->max_version,
+ result_pool, scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_client__shelf_get_all_versions(apr_array_header_t **versions_p,
+ svn_client__shelf_t *shelf,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ int i;
+
+ *versions_p = apr_array_make(result_pool, shelf->max_version - 1,
+ sizeof(svn_client__shelf_version_t *));
+
+ for (i = 1; i <= shelf->max_version; i++)
+ {
+ svn_client__shelf_version_t *shelf_version;
+
+ SVN_ERR(svn_client__shelf_version_open(&shelf_version,
+ shelf, i,
+ result_pool, scratch_pool));
+ APR_ARRAY_PUSH(*versions_p, svn_client__shelf_version_t *) = shelf_version;
+ }
+ return SVN_NO_ERROR;
+}
diff --git a/subversion/libsvn_client/shelve.c b/subversion/libsvn_client/shelve.c
deleted file mode 100644
index af8dd67..0000000
--- a/subversion/libsvn_client/shelve.c
+++ /dev/null
@@ -1,552 +0,0 @@
-/*
- * shelve.c: implementation of the 'shelve' commands
- *
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- */
-
-/* ==================================================================== */
-
-/* We define this here to remove any further warnings about the usage of
- experimental functions in this file. */
-#define SVN_EXPERIMENTAL
-
-#include "svn_client.h"
-#include "svn_wc.h"
-#include "svn_pools.h"
-#include "svn_dirent_uri.h"
-#include "svn_path.h"
-#include "svn_hash.h"
-#include "svn_utf.h"
-#include "svn_ctype.h"
-
-#include "client.h"
-#include "private/svn_client_private.h"
-#include "private/svn_wc_private.h"
-#include "svn_private_config.h"
-
-
-static svn_error_t *
-shelf_name_encode(char **encoded_name_p,
- const char *name,
- apr_pool_t *result_pool)
-{
- char *encoded_name
- = apr_palloc(result_pool, strlen(name) * 2 + 1);
- char *out_pos = encoded_name;
-
- if (name[0] == '\0')
- return svn_error_create(SVN_ERR_BAD_CHANGELIST_NAME, NULL,
- _("Shelf name cannot be the empty string"));
-
- while (*name)
- {
- apr_snprintf(out_pos, 3, "%02x", (unsigned char)(*name++));
- out_pos += 2;
- }
- *encoded_name_p = encoded_name;
- return SVN_NO_ERROR;
-}
-
-static svn_error_t *
-shelf_name_decode(char **decoded_name_p,
- const char *codename,
- apr_pool_t *result_pool)
-{
- svn_stringbuf_t *sb
- = svn_stringbuf_create_ensure(strlen(codename) / 2, result_pool);
- const char *input = codename;
-
- while (*input)
- {
- int c;
- int nchars;
- int nitems = sscanf(input, "%02x%n", &c, &nchars);
-
- if (nitems != 1 || nchars != 2)
- return svn_error_createf(SVN_ERR_BAD_CHANGELIST_NAME, NULL,
- _("Shelve: Bad encoded name '%s'"), codename);
- svn_stringbuf_appendbyte(sb, c);
- input += 2;
- }
- *decoded_name_p = sb->data;
- return SVN_NO_ERROR;
-}
-
-/* Set *NAME to the shelf name from FILENAME. */
-static svn_error_t *
-shelf_name_from_filename(char **name,
- const char *filename,
- apr_pool_t *result_pool)
-{
- size_t len = strlen(filename);
-
- if (len > 6 && strcmp(filename + len - 6, ".patch") == 0)
- {
- char *codename = apr_pstrndup(result_pool, filename, len - 6);
- SVN_ERR(shelf_name_decode(name, codename, result_pool));
- }
- return SVN_NO_ERROR;
-}
-
-/* Set *PATCH_ABSPATH to the abspath of the patch file for shelved change
- * NAME, no matter whether it exists.
- */
-static svn_error_t *
-get_patch_abspath(char **patch_abspath,
- const char *name,
- const char *wc_root_abspath,
- svn_client_ctx_t *ctx,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool)
-{
- char *dir;
- char *filename;
-
- SVN_ERR(svn_wc__get_shelves_dir(&dir, ctx->wc_ctx, wc_root_abspath,
- scratch_pool, scratch_pool));
- SVN_ERR(shelf_name_encode(&filename, name, scratch_pool));
- filename = apr_pstrcat(scratch_pool, filename, ".patch", SVN_VA_NULL);
- *patch_abspath = svn_dirent_join(dir, filename, result_pool);
- return SVN_NO_ERROR;
-}
-
-/** Write local changes to a patch file for shelved change @a name.
- *
- * @a message: An optional log message.
- *
- * @a wc_root_abspath: The WC root dir.
- *
- * @a overwrite_existing: If a file at @a patch_abspath exists, overwrite it.
- *
- * @a paths, @a depth, @a changelists: The selection of local paths to diff.
- */
-static svn_error_t *
-shelf_write_patch(const char *name,
- const char *message,
- const char *wc_root_abspath,
- svn_boolean_t overwrite_existing,
- const apr_array_header_t *paths,
- svn_depth_t depth,
- const apr_array_header_t *changelists,
- svn_client_ctx_t *ctx,
- apr_pool_t *scratch_pool)
-{
- char *patch_abspath;
- apr_int32_t flag;
- apr_file_t *outfile;
- svn_stream_t *outstream;
- svn_stream_t *errstream;
- apr_pool_t *iterpool = svn_pool_create(scratch_pool);
- int i;
- svn_opt_revision_t peg_revision = {svn_opt_revision_unspecified, {0}};
- svn_opt_revision_t start_revision = {svn_opt_revision_base, {0}};
- svn_opt_revision_t end_revision = {svn_opt_revision_working, {0}};
-
- SVN_ERR(get_patch_abspath(&patch_abspath, name, wc_root_abspath,
- ctx, scratch_pool, scratch_pool));
-
- /* Get streams for the output and any error output of the diff. */
- /* ### svn_stream_open_writable() doesn't work here: the buffering
- goes wrong so that diff headers appear after their hunks.
- For now, fix by opening the file without APR_BUFFERED. */
- flag = APR_FOPEN_WRITE | APR_FOPEN_CREATE | APR_FOPEN_TRUNCATE;
- if (! overwrite_existing)
- flag |= APR_FOPEN_EXCL;
- SVN_ERR(svn_io_file_open(&outfile, patch_abspath,
- flag, APR_FPROT_OS_DEFAULT, scratch_pool));
- outstream = svn_stream_from_aprfile2(outfile, FALSE /*disown*/, scratch_pool);
- SVN_ERR(svn_stream_for_stderr(&errstream, scratch_pool));
-
- /* Write the patch file header (log message, etc.) */
- if (message)
- {
- SVN_ERR(svn_stream_printf(outstream, scratch_pool, "%s\n",
- message));
- }
- SVN_ERR(svn_stream_printf(outstream, scratch_pool,
- "--This line, and those below, will be ignored--\n\n"));
- SVN_ERR(svn_stream_printf(outstream, scratch_pool,
- "--This patch was generated by 'svn shelve'--\n\n"));
-
- for (i = 0; i < paths->nelts; i++)
- {
- const char *path = APR_ARRAY_IDX(paths, i, const char *);
-
- if (svn_path_is_url(path))
- return svn_error_createf(SVN_ERR_ILLEGAL_TARGET, NULL,
- _("'%s' is not a local path"), path);
- SVN_ERR(svn_dirent_get_absolute(&path, path, scratch_pool));
-
- SVN_ERR(svn_client_diff_peg6(
- NULL /*options*/,
- path,
- &peg_revision,
- &start_revision,
- &end_revision,
- wc_root_abspath,
- depth,
- TRUE /*notice_ancestry*/,
- FALSE /*no_diff_added*/,
- FALSE /*no_diff_deleted*/,
- TRUE /*show_copies_as_adds*/,
- FALSE /*ignore_content_type: FALSE -> omit binary files*/,
- FALSE /*ignore_properties*/,
- FALSE /*properties_only*/,
- FALSE /*use_git_diff_format*/,
- SVN_APR_LOCALE_CHARSET,
- outstream,
- errstream,
- changelists,
- ctx, iterpool));
- }
- SVN_ERR(svn_stream_close(outstream));
- SVN_ERR(svn_stream_close(errstream));
-
- return SVN_NO_ERROR;
-}
-
-/** Apply the patch file for shelved change @a name to the WC.
- *
- * @a wc_root_abspath: The WC root dir.
- *
- * @a reverse: Apply the patch in reverse.
- *
- * @a dry_run: Don't really apply the changes, just notify what would be done.
- */
-static svn_error_t *
-shelf_apply_patch(const char *name,
- const char *wc_root_abspath,
- svn_boolean_t reverse,
- svn_boolean_t dry_run,
- svn_client_ctx_t *ctx,
- apr_pool_t *scratch_pool)
-{
- char *patch_abspath;
-
- SVN_ERR(get_patch_abspath(&patch_abspath, name, wc_root_abspath,
- ctx, scratch_pool, scratch_pool));
- SVN_ERR(svn_client_patch(patch_abspath, wc_root_abspath,
- dry_run, 0 /*strip*/,
- reverse,
- FALSE /*ignore_whitespace*/,
- TRUE /*remove_tempfiles*/, NULL, NULL,
- ctx, scratch_pool));
-
- return SVN_NO_ERROR;
-}
-
-/** Delete the patch file for shelved change @a name.
- *
- * @a wc_root_abspath: The WC root dir.
- */
-static svn_error_t *
-shelf_delete_patch(const char *name,
- const char *wc_root_abspath,
- svn_client_ctx_t *ctx,
- apr_pool_t *scratch_pool)
-{
- char *patch_abspath, *to_abspath;
-
- SVN_ERR(get_patch_abspath(&patch_abspath, name, wc_root_abspath,
- ctx, scratch_pool, scratch_pool));
- to_abspath = apr_pstrcat(scratch_pool, patch_abspath, ".bak", SVN_VA_NULL);
-
- /* remove any previous backup */
- SVN_ERR(svn_io_remove_file2(to_abspath, TRUE /*ignore_enoent*/,
- scratch_pool));
-
- /* move the patch to a backup file */
- SVN_ERR(svn_io_file_rename2(patch_abspath, to_abspath, FALSE /*flush_to_disk*/,
- scratch_pool));
- return SVN_NO_ERROR;
-}
-
-svn_error_t *
-svn_client_shelve(const char *name,
- const apr_array_header_t *paths,
- svn_depth_t depth,
- const apr_array_header_t *changelists,
- svn_boolean_t keep_local,
- svn_boolean_t dry_run,
- svn_client_ctx_t *ctx,
- apr_pool_t *pool)
-{
- const char *local_abspath;
- const char *wc_root_abspath;
- const char *message = "";
- svn_error_t *err;
-
- /* ### TODO: check all paths are in same WC; for now use first path */
- SVN_ERR(svn_dirent_get_absolute(&local_abspath,
- APR_ARRAY_IDX(paths, 0, char *), pool));
- SVN_ERR(svn_client_get_wc_root(&wc_root_abspath,
- local_abspath, ctx, pool, pool));
-
- /* Fetch the log message and any other revprops */
- if (SVN_CLIENT__HAS_LOG_MSG_FUNC(ctx))
- {
- const char *tmp_file;
- apr_array_header_t *commit_items = apr_array_make(pool, 1, sizeof(void *));
-
- SVN_ERR(svn_client__get_log_msg(&message, &tmp_file, commit_items,
- ctx, pool));
- if (! message)
- return SVN_NO_ERROR;
- }
-
- err = shelf_write_patch(name, message, wc_root_abspath,
- FALSE /*overwrite_existing*/,
- paths, depth, changelists,
- ctx, pool);
- if (err && APR_STATUS_IS_EEXIST(err->apr_err))
- {
- return svn_error_quick_wrapf(err,
- "Shelved change '%s' already exists",
- name);
- }
- else
- SVN_ERR(err);
-
- if (!keep_local)
- {
- /* Reverse-apply the patch. This should be a safer way to remove those
- changes from the WC than running a 'revert' operation. */
- SVN_ERR(shelf_apply_patch(name, wc_root_abspath,
- TRUE /*reverse*/, dry_run,
- ctx, pool));
- }
-
- if (dry_run)
- {
- SVN_ERR(shelf_delete_patch(name, wc_root_abspath,
- ctx, pool));
- }
-
- return SVN_NO_ERROR;
-}
-
-svn_error_t *
-svn_client_unshelve(const char *name,
- const char *local_abspath,
- svn_boolean_t keep,
- svn_boolean_t dry_run,
- svn_client_ctx_t *ctx,
- apr_pool_t *pool)
-{
- const char *wc_root_abspath;
- svn_error_t *err;
-
- SVN_ERR(svn_client_get_wc_root(&wc_root_abspath,
- local_abspath, ctx, pool, pool));
-
- /* Apply the patch. */
- err = shelf_apply_patch(name, wc_root_abspath,
- FALSE /*reverse*/, dry_run,
- ctx, pool);
- if (err && err->apr_err == SVN_ERR_ILLEGAL_TARGET)
- {
- return svn_error_quick_wrapf(err,
- "Shelved change '%s' not found",
- name);
- }
- else
- SVN_ERR(err);
-
- /* Remove the patch. */
- if (! keep && ! dry_run)
- {
- SVN_ERR(shelf_delete_patch(name, wc_root_abspath,
- ctx, pool));
- }
-
- return SVN_NO_ERROR;
-}
-
-svn_error_t *
-svn_client_shelves_delete(const char *name,
- const char *local_abspath,
- svn_boolean_t dry_run,
- svn_client_ctx_t *ctx,
- apr_pool_t *pool)
-{
- const char *wc_root_abspath;
-
- SVN_ERR(svn_client_get_wc_root(&wc_root_abspath,
- local_abspath, ctx, pool, pool));
-
- /* Remove the patch. */
- if (! dry_run)
- {
- svn_error_t *err;
-
- err = shelf_delete_patch(name, wc_root_abspath,
- ctx, pool);
- if (err && APR_STATUS_IS_ENOENT(err->apr_err))
- {
- return svn_error_quick_wrapf(err,
- "Shelved change '%s' not found",
- name);
- }
- else
- SVN_ERR(err);
- }
-
- return SVN_NO_ERROR;
-}
-
-svn_error_t *
-svn_client_shelf_get_paths(apr_hash_t **affected_paths,
- const char *name,
- const char *local_abspath,
- svn_client_ctx_t *ctx,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool)
-{
- const char *wc_root_abspath;
- char *patch_abspath;
- svn_patch_file_t *patch_file;
- apr_pool_t *iterpool = svn_pool_create(scratch_pool);
- apr_hash_t *paths = apr_hash_make(result_pool);
-
- SVN_ERR(svn_client_get_wc_root(&wc_root_abspath,
- local_abspath, ctx, scratch_pool, scratch_pool));
- SVN_ERR(get_patch_abspath(&patch_abspath, name, wc_root_abspath,
- ctx, scratch_pool, scratch_pool));
- SVN_ERR(svn_diff_open_patch_file(&patch_file, patch_abspath, result_pool));
-
- while (1)
- {
- svn_patch_t *patch;
-
- svn_pool_clear(iterpool);
- SVN_ERR(svn_diff_parse_next_patch(&patch, patch_file,
- FALSE /*reverse*/,
- FALSE /*ignore_whitespace*/,
- iterpool, iterpool));
- if (! patch)
- break;
- svn_hash_sets(paths,
- apr_pstrdup(result_pool, patch->old_filename),
- apr_pstrdup(result_pool, patch->new_filename));
- }
- SVN_ERR(svn_diff_close_patch_file(patch_file, iterpool));
- svn_pool_destroy(iterpool);
-
- *affected_paths = paths;
- return SVN_NO_ERROR;
-}
-
-svn_error_t *
-svn_client_shelf_has_changes(svn_boolean_t *has_changes,
- const char *name,
- const char *local_abspath,
- svn_client_ctx_t *ctx,
- apr_pool_t *scratch_pool)
-{
- apr_hash_t *patch_paths;
-
- SVN_ERR(svn_client_shelf_get_paths(&patch_paths, name, local_abspath,
- ctx, scratch_pool, scratch_pool));
- *has_changes = (apr_hash_count(patch_paths) != 0);
- return SVN_NO_ERROR;
-}
-
-/* Set *LOGMSG to the log message stored in the file PATCH_ABSPATH.
- *
- * ### Currently just reads the first line.
- */
-static svn_error_t *
-read_logmsg_from_patch(const char **logmsg,
- const char *patch_abspath,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool)
-{
- apr_file_t *file;
- svn_stream_t *stream;
- svn_boolean_t eof;
- svn_stringbuf_t *line;
-
- SVN_ERR(svn_io_file_open(&file, patch_abspath,
- APR_FOPEN_READ, APR_FPROT_OS_DEFAULT, scratch_pool));
- stream = svn_stream_from_aprfile2(file, FALSE /*disown*/, scratch_pool);
- SVN_ERR(svn_stream_readline(stream, &line, "\n", &eof, result_pool));
- SVN_ERR(svn_stream_close(stream));
- *logmsg = line->data;
- return SVN_NO_ERROR;
-}
-
-svn_error_t *
-svn_client_shelves_list(apr_hash_t **shelved_patch_infos,
- const char *local_abspath,
- svn_client_ctx_t *ctx,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool)
-{
- char *shelves_dir;
- apr_hash_t *dirents;
- apr_hash_index_t *hi;
-
- SVN_ERR(svn_wc__get_shelves_dir(&shelves_dir, ctx->wc_ctx, local_abspath,
- scratch_pool, scratch_pool));
- SVN_ERR(svn_io_get_dirents3(&dirents, shelves_dir, FALSE /*only_check_type*/,
- result_pool, scratch_pool));
-
- *shelved_patch_infos = apr_hash_make(result_pool);
-
- /* Remove non-shelves */
- for (hi = apr_hash_first(scratch_pool, dirents); hi; hi = apr_hash_next(hi))
- {
- const char *filename = apr_hash_this_key(hi);
- svn_io_dirent2_t *dirent = apr_hash_this_val(hi);
- char *name = NULL;
-
- svn_error_clear(shelf_name_from_filename(&name, filename, result_pool));
- if (name && dirent->kind == svn_node_file)
- {
- svn_client_shelved_patch_info_t *info
- = apr_palloc(result_pool, sizeof(*info));
-
- info->dirent = dirent;
- info->mtime = info->dirent->mtime;
- info->patch_path
- = svn_dirent_join(shelves_dir, filename, result_pool);
- SVN_ERR(read_logmsg_from_patch(&info->message, info->patch_path,
- result_pool, scratch_pool));
-
- svn_hash_sets(*shelved_patch_infos, name, info);
- }
- }
-
- return SVN_NO_ERROR;
-}
-
-svn_error_t *
-svn_client_shelves_any(svn_boolean_t *any_shelved,
- const char *local_abspath,
- svn_client_ctx_t *ctx,
- apr_pool_t *scratch_pool)
-{
- apr_hash_t *shelved_patch_infos;
-
- SVN_ERR(svn_client_shelves_list(&shelved_patch_infos, local_abspath,
- ctx, scratch_pool, scratch_pool));
- *any_shelved = apr_hash_count(shelved_patch_infos) != 0;
- return SVN_NO_ERROR;
-}
diff --git a/subversion/libsvn_client/status.c b/subversion/libsvn_client/status.c
index a701658..5ab5234 100644
--- a/subversion/libsvn_client/status.c
+++ b/subversion/libsvn_client/status.c
@@ -23,6 +23,9 @@
/* ==================================================================== */
+/* We define this here to remove any further warnings about the usage of
+ experimental functions in this file. */
+#define SVN_EXPERIMENTAL
/*** Includes. ***/
@@ -329,6 +332,79 @@ do_external_status(svn_client_ctx_t *ctx,
return SVN_NO_ERROR;
}
+
+/* Run status on shelf SHELF_NAME, if it exists.
+ */
+static svn_error_t *
+shelf_status(const char *shelf_name,
+ const char *target_abspath,
+ svn_wc_status_func4_t status_func,
+ void *status_baton,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ svn_error_t *err;
+ svn_client__shelf_t *shelf;
+ svn_client__shelf_version_t *shelf_version;
+ const char *wc_relpath;
+
+ err = svn_client__shelf_open_existing(&shelf,
+ shelf_name, target_abspath,
+ ctx, scratch_pool);
+ if (err && err->apr_err == SVN_ERR_ILLEGAL_TARGET)
+ {
+ svn_error_clear(err);
+ return SVN_NO_ERROR;
+ }
+ else
+ SVN_ERR(err);
+
+ SVN_ERR(svn_client__shelf_version_open(&shelf_version,
+ shelf, shelf->max_version,
+ scratch_pool, scratch_pool));
+ wc_relpath = svn_dirent_skip_ancestor(shelf->wc_root_abspath, target_abspath);
+ SVN_ERR(svn_client__shelf_version_status_walk(shelf_version, wc_relpath,
+ status_func, status_baton,
+ scratch_pool));
+ SVN_ERR(svn_client__shelf_close(shelf, scratch_pool));
+
+ return SVN_NO_ERROR;
+}
+
+/* Run status on all shelves named in CHANGELISTS by a changelist name
+ * of the form "svn:shelf:SHELF_NAME", if they exist.
+ */
+static svn_error_t *
+shelves_status(const apr_array_header_t *changelists,
+ const char *target_abspath,
+ svn_wc_status_func4_t status_func,
+ void *status_baton,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ static const char PREFIX[] = "svn:shelf:";
+ static const int PREFIX_LEN = 10;
+ int i;
+
+ if (! changelists)
+ return SVN_NO_ERROR;
+ for (i = 0; i < changelists->nelts; i++)
+ {
+ const char *cl = APR_ARRAY_IDX(changelists, i, const char *);
+
+ if (strncmp(cl, PREFIX, PREFIX_LEN) == 0)
+ {
+ const char *shelf_name = cl + PREFIX_LEN;
+
+ SVN_ERR(shelf_status(shelf_name, target_abspath,
+ status_func, status_baton,
+ ctx, scratch_pool));
+ }
+ }
+
+ return SVN_NO_ERROR;
+}
+
/*** Public Interface. ***/
@@ -586,6 +662,9 @@ svn_client_status6(svn_revnum_t *result_rev,
}
else
{
+ SVN_ERR(shelves_status(changelists, target_abspath,
+ tweak_status, &sb,
+ ctx, pool));
err = svn_wc_walk_status(ctx->wc_ctx, target_abspath,
depth, get_all, no_ignore, FALSE, ignores,
tweak_status, &sb,
diff --git a/subversion/libsvn_client/update.c b/subversion/libsvn_client/update.c
index 602f7e3..12469b7 100644
--- a/subversion/libsvn_client/update.c
+++ b/subversion/libsvn_client/update.c
@@ -615,7 +615,7 @@ svn_client__update_internal(svn_revnum_t *result_rev,
{
const char *anchor_abspath, *lockroot_abspath;
svn_error_t *err;
- svn_opt_revision_t peg_revision = *revision;
+ svn_opt_revision_t opt_rev = *revision; /* operative revision */
apr_hash_t *conflicted_paths
= ctx->conflict_func2 ? apr_hash_make(pool) : NULL;
@@ -668,7 +668,7 @@ svn_client__update_internal(svn_revnum_t *result_rev,
err = update_internal(result_rev, timestamp_sleep, conflicted_paths,
&ra_session, missing_parent,
- anchor_abspath, &peg_revision, svn_depth_empty,
+ anchor_abspath, &opt_rev, svn_depth_empty,
FALSE, ignore_externals,
allow_unver_obstructions, adds_as_modification,
FALSE, ctx, pool, iterpool);
@@ -679,8 +679,8 @@ svn_client__update_internal(svn_revnum_t *result_rev,
/* If we successfully updated a missing parent, let's re-use
the returned revision number for future updates for the
sake of consistency. */
- peg_revision.kind = svn_opt_revision_number;
- peg_revision.value.number = *result_rev;
+ opt_rev.kind = svn_opt_revision_number;
+ opt_rev.value.number = *result_rev;
}
svn_pool_destroy(iterpool);
@@ -696,7 +696,7 @@ svn_client__update_internal(svn_revnum_t *result_rev,
err = update_internal(result_rev, timestamp_sleep, conflicted_paths,
&ra_session,
local_abspath, anchor_abspath,
- &peg_revision, depth, depth_is_sticky,
+ &opt_rev, depth, depth_is_sticky,
ignore_externals, allow_unver_obstructions,
adds_as_modification,
TRUE, ctx, pool, pool);
diff --git a/subversion/libsvn_delta/debug_editor.c b/subversion/libsvn_delta/debug_editor.c
index 5f26936..c5dbc9b 100644
--- a/subversion/libsvn_delta/debug_editor.c
+++ b/subversion/libsvn_delta/debug_editor.c
@@ -71,9 +71,11 @@ set_target_revision(void *edit_baton,
SVN_ERR(svn_stream_printf(eb->out, pool, "set_target_revision : %ld\n",
target_revision));
- return eb->wrapped_editor->set_target_revision(eb->wrapped_edit_baton,
- target_revision,
- pool);
+ if (eb->wrapped_editor)
+ SVN_ERR(eb->wrapped_editor->set_target_revision(eb->wrapped_edit_baton,
+ target_revision,
+ pool));
+ return SVN_NO_ERROR;
}
static svn_error_t *
@@ -90,10 +92,11 @@ open_root(void *edit_baton,
base_revision));
eb->indent_level++;
- SVN_ERR(eb->wrapped_editor->open_root(eb->wrapped_edit_baton,
- base_revision,
- pool,
- &dir_baton->wrapped_dir_baton));
+ if (eb->wrapped_editor)
+ SVN_ERR(eb->wrapped_editor->open_root(eb->wrapped_edit_baton,
+ base_revision,
+ pool,
+ &dir_baton->wrapped_dir_baton));
dir_baton->edit_baton = edit_baton;
@@ -115,10 +118,12 @@ delete_entry(const char *path,
SVN_ERR(svn_stream_printf(eb->out, pool, "delete_entry : %s:%ld\n",
path, base_revision));
- return eb->wrapped_editor->delete_entry(path,
- base_revision,
- pb->wrapped_dir_baton,
- pool);
+ if (eb->wrapped_editor)
+ SVN_ERR(eb->wrapped_editor->delete_entry(path,
+ base_revision,
+ pb->wrapped_dir_baton,
+ pool));
+ return SVN_NO_ERROR;
}
static svn_error_t *
@@ -139,12 +144,13 @@ add_directory(const char *path,
path, copyfrom_path, copyfrom_revision));
eb->indent_level++;
- SVN_ERR(eb->wrapped_editor->add_directory(path,
- pb->wrapped_dir_baton,
- copyfrom_path,
- copyfrom_revision,
- pool,
- &b->wrapped_dir_baton));
+ if (eb->wrapped_editor)
+ SVN_ERR(eb->wrapped_editor->add_directory(path,
+ pb->wrapped_dir_baton,
+ copyfrom_path,
+ copyfrom_revision,
+ pool,
+ &b->wrapped_dir_baton));
b->edit_baton = eb;
*child_baton = b;
@@ -168,11 +174,12 @@ open_directory(const char *path,
path, base_revision));
eb->indent_level++;
- SVN_ERR(eb->wrapped_editor->open_directory(path,
- pb->wrapped_dir_baton,
- base_revision,
- pool,
- &db->wrapped_dir_baton));
+ if (eb->wrapped_editor)
+ SVN_ERR(eb->wrapped_editor->open_directory(path,
+ pb->wrapped_dir_baton,
+ base_revision,
+ pool,
+ &db->wrapped_dir_baton));
db->edit_baton = eb;
*child_baton = db;
@@ -199,12 +206,13 @@ add_file(const char *path,
eb->indent_level++;
- SVN_ERR(eb->wrapped_editor->add_file(path,
- pb->wrapped_dir_baton,
- copyfrom_path,
- copyfrom_revision,
- pool,
- &fb->wrapped_file_baton));
+ if (eb->wrapped_editor)
+ SVN_ERR(eb->wrapped_editor->add_file(path,
+ pb->wrapped_dir_baton,
+ copyfrom_path,
+ copyfrom_revision,
+ pool,
+ &fb->wrapped_file_baton));
fb->edit_baton = eb;
*file_baton = fb;
@@ -229,11 +237,12 @@ open_file(const char *path,
eb->indent_level++;
- SVN_ERR(eb->wrapped_editor->open_file(path,
- pb->wrapped_dir_baton,
- base_revision,
- pool,
- &fb->wrapped_file_baton));
+ if (eb->wrapped_editor)
+ SVN_ERR(eb->wrapped_editor->open_file(path,
+ pb->wrapped_dir_baton,
+ base_revision,
+ pool,
+ &fb->wrapped_file_baton));
fb->edit_baton = eb;
*file_baton = fb;
@@ -255,11 +264,38 @@ apply_textdelta(void *file_baton,
SVN_ERR(svn_stream_printf(eb->out, pool, "apply_textdelta : %s\n",
base_checksum));
- SVN_ERR(eb->wrapped_editor->apply_textdelta(fb->wrapped_file_baton,
- base_checksum,
- pool,
- handler,
- handler_baton));
+ if (eb->wrapped_editor)
+ SVN_ERR(eb->wrapped_editor->apply_textdelta(fb->wrapped_file_baton,
+ base_checksum,
+ pool,
+ handler,
+ handler_baton));
+
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+apply_textdelta_stream(const struct svn_delta_editor_t *editor,
+ void *file_baton,
+ const char *base_checksum,
+ svn_txdelta_stream_open_func_t open_func,
+ void *open_baton,
+ apr_pool_t *scratch_pool)
+{
+ struct file_baton *fb = file_baton;
+ struct edit_baton *eb = fb->edit_baton;
+
+ SVN_ERR(write_indent(eb, scratch_pool));
+ SVN_ERR(svn_stream_printf(eb->out, scratch_pool,
+ "apply_textdelta_stream : %s\n",
+ base_checksum));
+
+ if (eb->wrapped_editor)
+ SVN_ERR(eb->wrapped_editor->apply_textdelta_stream(eb->wrapped_editor,
+ fb->wrapped_file_baton,
+ base_checksum,
+ open_func, open_baton,
+ scratch_pool));
return SVN_NO_ERROR;
}
@@ -278,8 +314,9 @@ close_file(void *file_baton,
SVN_ERR(svn_stream_printf(eb->out, pool, "close_file : %s\n",
text_checksum));
- SVN_ERR(eb->wrapped_editor->close_file(fb->wrapped_file_baton,
- text_checksum, pool));
+ if (eb->wrapped_editor)
+ SVN_ERR(eb->wrapped_editor->close_file(fb->wrapped_file_baton,
+ text_checksum, pool));
return SVN_NO_ERROR;
}
@@ -295,8 +332,9 @@ absent_file(const char *path,
SVN_ERR(write_indent(eb, pool));
SVN_ERR(svn_stream_printf(eb->out, pool, "absent_file : %s\n", path));
- SVN_ERR(eb->wrapped_editor->absent_file(path, fb->wrapped_file_baton,
- pool));
+ if (eb->wrapped_editor)
+ SVN_ERR(eb->wrapped_editor->absent_file(path, fb->wrapped_file_baton,
+ pool));
return SVN_NO_ERROR;
}
@@ -312,8 +350,9 @@ close_directory(void *dir_baton,
SVN_ERR(write_indent(eb, pool));
SVN_ERR(svn_stream_printf(eb->out, pool, "close_directory\n"));
- SVN_ERR(eb->wrapped_editor->close_directory(db->wrapped_dir_baton,
- pool));
+ if (eb->wrapped_editor)
+ SVN_ERR(eb->wrapped_editor->close_directory(db->wrapped_dir_baton,
+ pool));
return SVN_NO_ERROR;
}
@@ -330,8 +369,9 @@ absent_directory(const char *path,
SVN_ERR(svn_stream_printf(eb->out, pool, "absent_directory : %s\n",
path));
- SVN_ERR(eb->wrapped_editor->absent_directory(path, db->wrapped_dir_baton,
- pool));
+ if (eb->wrapped_editor)
+ SVN_ERR(eb->wrapped_editor->absent_directory(path, db->wrapped_dir_baton,
+ pool));
return SVN_NO_ERROR;
}
@@ -349,10 +389,11 @@ change_file_prop(void *file_baton,
SVN_ERR(svn_stream_printf(eb->out, pool, "change_file_prop : %s -> %s\n",
name, value ? value->data : "<deleted>"));
- SVN_ERR(eb->wrapped_editor->change_file_prop(fb->wrapped_file_baton,
- name,
- value,
- pool));
+ if (eb->wrapped_editor)
+ SVN_ERR(eb->wrapped_editor->change_file_prop(fb->wrapped_file_baton,
+ name,
+ value,
+ pool));
return SVN_NO_ERROR;
}
@@ -370,10 +411,11 @@ change_dir_prop(void *dir_baton,
SVN_ERR(svn_stream_printf(eb->out, pool, "change_dir_prop : %s -> %s\n",
name, value ? value->data : "<deleted>"));
- SVN_ERR(eb->wrapped_editor->change_dir_prop(db->wrapped_dir_baton,
- name,
- value,
- pool));
+ if (eb->wrapped_editor)
+ SVN_ERR(eb->wrapped_editor->change_dir_prop(db->wrapped_dir_baton,
+ name,
+ value,
+ pool));
return SVN_NO_ERROR;
}
@@ -387,7 +429,8 @@ close_edit(void *edit_baton,
SVN_ERR(write_indent(eb, pool));
SVN_ERR(svn_stream_printf(eb->out, pool, "close_edit\n"));
- SVN_ERR(eb->wrapped_editor->close_edit(eb->wrapped_edit_baton, pool));
+ if (eb->wrapped_editor)
+ SVN_ERR(eb->wrapped_editor->close_edit(eb->wrapped_edit_baton, pool));
return SVN_NO_ERROR;
}
@@ -401,7 +444,8 @@ abort_edit(void *edit_baton,
SVN_ERR(write_indent(eb, pool));
SVN_ERR(svn_stream_printf(eb->out, pool, "abort_edit\n"));
- SVN_ERR(eb->wrapped_editor->abort_edit(eb->wrapped_edit_baton, pool));
+ if (eb->wrapped_editor)
+ SVN_ERR(eb->wrapped_editor->abort_edit(eb->wrapped_edit_baton, pool));
return SVN_NO_ERROR;
}
@@ -414,7 +458,7 @@ svn_delta__get_debug_editor(const svn_delta_editor_t **editor,
const char *prefix,
apr_pool_t *pool)
{
- svn_delta_editor_t *tree_editor = apr_palloc(pool, sizeof(*tree_editor));
+ svn_delta_editor_t *tree_editor = svn_delta_default_editor(pool);
struct edit_baton *eb = apr_palloc(pool, sizeof(*eb));
apr_file_t *errfp;
svn_stream_t *out;
@@ -436,6 +480,7 @@ svn_delta__get_debug_editor(const svn_delta_editor_t **editor,
tree_editor->add_file = add_file;
tree_editor->open_file = open_file;
tree_editor->apply_textdelta = apply_textdelta;
+ tree_editor->apply_textdelta_stream = apply_textdelta_stream;
tree_editor->change_file_prop = change_file_prop;
tree_editor->close_file = close_file;
tree_editor->absent_file = absent_file;
diff --git a/subversion/libsvn_delta/element.c b/subversion/libsvn_delta/element.c
index be7b217..7982964 100644
--- a/subversion/libsvn_delta/element.c
+++ b/subversion/libsvn_delta/element.c
@@ -375,14 +375,12 @@ svn_element__tree_get(const svn_element__tree_t *tree,
return svn_eid__hash_get(tree->e_map, eid);
}
-svn_error_t *
+void
svn_element__tree_set(svn_element__tree_t *tree,
int eid,
const svn_element__content_t *element)
{
svn_eid__hash_set(tree->e_map, eid, element);
-
- return SVN_NO_ERROR;
}
void
diff --git a/subversion/libsvn_diff/diff_tree.c b/subversion/libsvn_diff/diff_tree.c
index 8490179..d18b242 100644
--- a/subversion/libsvn_diff/diff_tree.c
+++ b/subversion/libsvn_diff/diff_tree.c
@@ -37,14 +37,6 @@
#include "private/svn_diff_tree.h"
#include "svn_private_config.h"
-typedef struct tree_processor_t
-{
- svn_diff_tree_processor_t tp;
-
- /* void *future_extension */
-} tree_processor_t;
-
-
static svn_error_t *
default_dir_opened(void **new_dir_baton,
svn_boolean_t *skip,
@@ -215,33 +207,30 @@ svn_diff_tree_processor_t *
svn_diff__tree_processor_create(void *baton,
apr_pool_t *result_pool)
{
- tree_processor_t *wrapper;
- wrapper = apr_pcalloc(result_pool, sizeof(*wrapper));
-
- wrapper->tp.baton = baton;
+ svn_diff_tree_processor_t *tp = apr_pcalloc(result_pool, sizeof(*tp));
- wrapper->tp.dir_opened = default_dir_opened;
- wrapper->tp.dir_added = default_dir_added;
- wrapper->tp.dir_deleted = default_dir_deleted;
- wrapper->tp.dir_changed = default_dir_changed;
- wrapper->tp.dir_closed = default_dir_closed;
+ tp->baton = baton;
- wrapper->tp.file_opened = default_file_opened;
- wrapper->tp.file_added = default_file_added;
- wrapper->tp.file_deleted = default_file_deleted;
- wrapper->tp.file_changed = default_file_changed;
- wrapper->tp.file_closed = default_file_closed;
+ tp->dir_opened = default_dir_opened;
+ tp->dir_added = default_dir_added;
+ tp->dir_deleted = default_dir_deleted;
+ tp->dir_changed = default_dir_changed;
+ tp->dir_closed = default_dir_closed;
- wrapper->tp.node_absent = default_node_absent;
+ tp->file_opened = default_file_opened;
+ tp->file_added = default_file_added;
+ tp->file_deleted = default_file_deleted;
+ tp->file_changed = default_file_changed;
+ tp->file_closed = default_file_closed;
+ tp->node_absent = default_node_absent;
- return &wrapper->tp;
+ return tp;
}
struct reverse_tree_baton_t
{
const svn_diff_tree_processor_t *processor;
- const char *prefix_relpath;
};
static svn_error_t *
@@ -259,9 +248,6 @@ reverse_dir_opened(void **new_dir_baton,
{
struct reverse_tree_baton_t *rb = processor->baton;
- if (rb->prefix_relpath)
- relpath = svn_relpath_join(rb->prefix_relpath, relpath, scratch_pool);
-
SVN_ERR(rb->processor->dir_opened(new_dir_baton, skip, skip_children,
relpath,
right_source, left_source,
@@ -284,9 +270,6 @@ reverse_dir_added(const char *relpath,
{
struct reverse_tree_baton_t *rb = processor->baton;
- if (rb->prefix_relpath)
- relpath = svn_relpath_join(rb->prefix_relpath, relpath, scratch_pool);
-
SVN_ERR(rb->processor->dir_deleted(relpath,
right_source,
right_props,
@@ -307,9 +290,6 @@ reverse_dir_deleted(const char *relpath,
{
struct reverse_tree_baton_t *rb = processor->baton;
- if (rb->prefix_relpath)
- relpath = svn_relpath_join(rb->prefix_relpath, relpath, scratch_pool);
-
SVN_ERR(rb->processor->dir_added(relpath,
NULL,
left_source,
@@ -335,9 +315,6 @@ reverse_dir_changed(const char *relpath,
struct reverse_tree_baton_t *rb = processor->baton;
apr_array_header_t *reversed_prop_changes = NULL;
- if (rb->prefix_relpath)
- relpath = svn_relpath_join(rb->prefix_relpath, relpath, scratch_pool);
-
if (prop_changes)
{
SVN_ERR_ASSERT(left_props != NULL && right_props != NULL);
@@ -367,9 +344,6 @@ reverse_dir_closed(const char *relpath,
{
struct reverse_tree_baton_t *rb = processor->baton;
- if (rb->prefix_relpath)
- relpath = svn_relpath_join(rb->prefix_relpath, relpath, scratch_pool);
-
SVN_ERR(rb->processor->dir_closed(relpath,
right_source,
left_source,
@@ -393,9 +367,6 @@ reverse_file_opened(void **new_file_baton,
{
struct reverse_tree_baton_t *rb = processor->baton;
- if (rb->prefix_relpath)
- relpath = svn_relpath_join(rb->prefix_relpath, relpath, scratch_pool);
-
SVN_ERR(rb->processor->file_opened(new_file_baton,
skip,
relpath,
@@ -423,9 +394,6 @@ reverse_file_added(const char *relpath,
{
struct reverse_tree_baton_t *rb = processor->baton;
- if (rb->prefix_relpath)
- relpath = svn_relpath_join(rb->prefix_relpath, relpath, scratch_pool);
-
SVN_ERR(rb->processor->file_deleted(relpath,
right_source,
right_file,
@@ -447,9 +415,6 @@ reverse_file_deleted(const char *relpath,
{
struct reverse_tree_baton_t *rb = processor->baton;
- if (rb->prefix_relpath)
- relpath = svn_relpath_join(rb->prefix_relpath, relpath, scratch_pool);
-
SVN_ERR(rb->processor->file_added(relpath,
NULL /* copyfrom src */,
left_source,
@@ -480,9 +445,6 @@ reverse_file_changed(const char *relpath,
struct reverse_tree_baton_t *rb = processor->baton;
apr_array_header_t *reversed_prop_changes = NULL;
- if (rb->prefix_relpath)
- relpath = svn_relpath_join(rb->prefix_relpath, relpath, scratch_pool);
-
if (prop_changes)
{
SVN_ERR_ASSERT(left_props != NULL && right_props != NULL);
@@ -515,9 +477,6 @@ reverse_file_closed(const char *relpath,
{
struct reverse_tree_baton_t *rb = processor->baton;
- if (rb->prefix_relpath)
- relpath = svn_relpath_join(rb->prefix_relpath, relpath, scratch_pool);
-
SVN_ERR(rb->processor->file_closed(relpath,
right_source,
left_source,
@@ -536,9 +495,6 @@ reverse_node_absent(const char *relpath,
{
struct reverse_tree_baton_t *rb = processor->baton;
- if (rb->prefix_relpath)
- relpath = svn_relpath_join(rb->prefix_relpath, relpath, scratch_pool);
-
SVN_ERR(rb->processor->node_absent(relpath,
dir_baton,
rb->processor,
@@ -549,7 +505,6 @@ reverse_node_absent(const char *relpath,
const svn_diff_tree_processor_t *
svn_diff__tree_processor_reverse_create(const svn_diff_tree_processor_t * processor,
- const char *prefix_relpath,
apr_pool_t *result_pool)
{
struct reverse_tree_baton_t *rb;
@@ -557,8 +512,6 @@ svn_diff__tree_processor_reverse_create(const svn_diff_tree_processor_t * proces
rb = apr_pcalloc(result_pool, sizeof(*rb));
rb->processor = processor;
- if (prefix_relpath)
- rb->prefix_relpath = apr_pstrdup(result_pool, prefix_relpath);
reverse = svn_diff__tree_processor_create(rb, result_pool);
diff --git a/subversion/libsvn_diff/parse-diff.c b/subversion/libsvn_diff/parse-diff.c
index f215969..a9c8e62 100644
--- a/subversion/libsvn_diff/parse-diff.c
+++ b/subversion/libsvn_diff/parse-diff.c
@@ -69,6 +69,11 @@ struct svn_diff_hunk_t {
/* APR file handle to the patch file this hunk came from. */
apr_file_t *apr_file;
+ /* Whether the hunk was interpreted as pretty-print mergeinfo. If so,
+ the hunk content is in PATCH and the rest of this hunk object is
+ mostly uninitialized. */
+ svn_boolean_t is_pretty_print_mergeinfo;
+
/* Ranges used to keep track of this hunk's texts positions within
* the patch file. */
struct svn_diff__hunk_range diff_text_range;
@@ -899,10 +904,6 @@ parse_prop_name(const char **prop_name, const char *header,
* The hunk header has the following format:
* ## -0,NUMBER_OF_REVERSE_MERGES +0,NUMBER_OF_FORWARD_MERGES ##
*
- * At this point, the number of reverse merges has already been
- * parsed into HUNK->ORIGINAL_LENGTH, and the number of forward
- * merges has been parsed into HUNK->MODIFIED_LENGTH.
- *
* The header is followed by a list of mergeinfo, one path per line.
* This function parses such lines. Lines describing reverse merges
* appear first, and then all lines describing forward merges appear.
@@ -914,18 +915,27 @@ parse_prop_name(const char **prop_name, const char *header,
* ":r", which in turn is followed by a mergeinfo revision range,
* which is terminated by whitespace or end-of-string.
*
- * If the current line meets the above criteria and we're able
- * to parse valid mergeinfo from it, the resulting mergeinfo
- * is added to patch->mergeinfo or patch->reverse_mergeinfo,
- * and we proceed to the next line.
+ * *NUMBER_OF_REVERSE_MERGES and *NUMBER_OF_FORWARD_MERGES are the
+ * numbers of reverse and forward merges remaining to be read. This
+ * function decrements *NUMBER_OF_REVERSE_MERGES for each LINE
+ * parsed until that is zero, then *NUMBER_OF_FORWARD_MERGES for
+ * each LINE parsed until that is zero. If both are zero, it parses
+ * and discards LINE.
+ *
+ * If LINE is successfully parsed, *FOUND_MERGEINFO is set to TRUE,
+ * otherwise to FALSE.
+ *
+ * If LINE is successfully parsed and counted, the resulting mergeinfo
+ * is added to PATCH->mergeinfo or PATCH->reverse_mergeinfo.
*/
static svn_error_t *
-parse_mergeinfo(svn_boolean_t *found_mergeinfo,
- svn_stringbuf_t *line,
- svn_diff_hunk_t *hunk,
- svn_patch_t *patch,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool)
+parse_pretty_mergeinfo_line(svn_boolean_t *found_mergeinfo,
+ svn_linenum_t *number_of_reverse_merges,
+ svn_linenum_t *number_of_forward_merges,
+ svn_stringbuf_t *line,
+ svn_patch_t *patch,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
{
char *slash = strchr(line->data, '/');
char *colon = strrchr(line->data, ':');
@@ -972,7 +982,7 @@ parse_mergeinfo(svn_boolean_t *found_mergeinfo,
if (mergeinfo)
{
- if (hunk->original_length > 0) /* reverse merges */
+ if (*number_of_reverse_merges > 0) /* reverse merges */
{
if (patch->reverse)
{
@@ -994,9 +1004,9 @@ parse_mergeinfo(svn_boolean_t *found_mergeinfo,
result_pool,
scratch_pool));
}
- hunk->original_length--;
+ (*number_of_reverse_merges)--;
}
- else if (hunk->modified_length > 0) /* forward merges */
+ else if (number_of_forward_merges > 0) /* forward merges */
{
if (patch->reverse)
{
@@ -1018,7 +1028,7 @@ parse_mergeinfo(svn_boolean_t *found_mergeinfo,
result_pool,
scratch_pool));
}
- hunk->modified_length--;
+ (*number_of_forward_merges)--;
}
*found_mergeinfo = TRUE;
@@ -1165,18 +1175,48 @@ parse_next_hunk(svn_diff_hunk_t **hunk,
if (in_hunk && *is_property && *prop_name &&
strcmp(*prop_name, SVN_PROP_MERGEINFO) == 0)
{
- svn_boolean_t found_mergeinfo;
+ svn_boolean_t found_pretty_mergeinfo_line;
- SVN_ERR(parse_mergeinfo(&found_mergeinfo, line, *hunk, patch,
- result_pool, iterpool));
- if (found_mergeinfo)
- continue; /* Proceed to the next line in the svn:mergeinfo hunk. */
- else
+ if (! hunk_seen)
{
- /* Perhaps we can also use original_lines/modified_lines here */
+ /* We're reading the first line of the hunk, so the start
+ * of the line just read is the hunk text's byte offset. */
+ start = last_line;
+ }
- in_hunk = FALSE; /* On to next property */
+ SVN_ERR(parse_pretty_mergeinfo_line(&found_pretty_mergeinfo_line,
+ &original_lines, &modified_lines,
+ line, patch,
+ result_pool, iterpool));
+ if (found_pretty_mergeinfo_line)
+ {
+ hunk_seen = TRUE;
+ (*hunk)->is_pretty_print_mergeinfo = TRUE;
+ continue; /* Proceed to the next line in the svn:mergeinfo hunk. */
}
+
+ if ((*hunk)->is_pretty_print_mergeinfo)
+ {
+ /* We have reached the end of the pretty-print-mergeinfo hunk.
+ (This format uses only one hunk.) */
+ if (eof)
+ {
+ /* The hunk ends at EOF. */
+ end = pos;
+ }
+ else
+ {
+ /* The start of the current line marks the first byte
+ * after the hunk text. */
+ end = last_line;
+ }
+ original_end = end;
+ modified_end = end;
+ break;
+ }
+
+ /* Otherwise, this is a property diff in the
+ regular format so fall through to normal processing. */
}
if (in_hunk)
@@ -1971,10 +2011,10 @@ parse_hunks(svn_patch_t *patch, apr_file_t *apr_file,
else
last_prop_name = prop_name;
- /* Skip svn:mergeinfo properties.
- * Mergeinfo data cannot be represented as a hunk and
+ /* Skip pretty-printed svn:mergeinfo property hunks.
+ * Pretty-printed mergeinfo data cannot be represented as a hunk and
* is therefore stored in PATCH itself. */
- if (strcmp(prop_name, SVN_PROP_MERGEINFO) == 0)
+ if (hunk->is_pretty_print_mergeinfo)
continue;
SVN_ERR(add_property_hunk(patch, prop_name, hunk, prop_operation,
diff --git a/subversion/libsvn_fs_fs/cached_data.h b/subversion/libsvn_fs_fs/cached_data.h
index 7b25fcf..cdf3bfb 100644
--- a/subversion/libsvn_fs_fs/cached_data.h
+++ b/subversion/libsvn_fs_fs/cached_data.h
@@ -171,7 +171,7 @@ svn_fs_fs__get_proplist(apr_hash_t **proplist,
apr_pool_t *pool);
/* Create a changes retrieval context object in *RESULT_POOL and return it
- * in *CONTEXT. It will allow svn_fs_x__get_changes to fetch consecutive
+ * in *CONTEXT. It will allow svn_fs_fs__get_changes to fetch consecutive
* blocks (one per invocation) from REV's changed paths list in FS. */
svn_error_t *
svn_fs_fs__create_changes_context(svn_fs_fs__changes_context_t **context,
diff --git a/subversion/libsvn_fs_fs/dag.c b/subversion/libsvn_fs_fs/dag.c
index 714235d..2630af5 100644
--- a/subversion/libsvn_fs_fs/dag.c
+++ b/subversion/libsvn_fs_fs/dag.c
@@ -1166,7 +1166,7 @@ svn_fs_fs__dag_serialize(void **data,
(const void * const *)&node->node_pool);
/* serialize other sub-structures */
- svn_fs_fs__id_serialize(context, (const svn_fs_id_t **)&node->id);
+ svn_fs_fs__id_serialize(context, (const svn_fs_id_t *const *)&node->id);
svn_fs_fs__id_serialize(context, &node->fresh_root_predecessor_id);
svn_temp_serializer__add_string(context, &node->created_path);
diff --git a/subversion/libsvn_fs_fs/id.c b/subversion/libsvn_fs_fs/id.c
index d22b8f7..5f27303 100644
--- a/subversion/libsvn_fs_fs/id.c
+++ b/subversion/libsvn_fs_fs/id.c
@@ -591,7 +591,8 @@ svn_fs_fs__id_parse(const svn_fs_id_t **id_p,
svn_fs_id_t *id = id_parse(data, pool);
if (id == NULL)
return svn_error_createf(SVN_ERR_FS_MALFORMED_NODEREV_ID, NULL,
- "Malformed node revision ID string");
+ "Malformed node revision ID string '%s'",
+ data);
*id_p = id;
diff --git a/subversion/libsvn_fs_fs/index.c b/subversion/libsvn_fs_fs/index.c
index 1cb8fba..b7ba79f 100644
--- a/subversion/libsvn_fs_fs/index.c
+++ b/subversion/libsvn_fs_fs/index.c
@@ -3191,9 +3191,9 @@ compare_p2l_entry_revision(const void *lhs,
const void *rhs)
{
const svn_fs_fs__p2l_entry_t *lhs_entry
- =*(const svn_fs_fs__p2l_entry_t **)lhs;
+ =*(const svn_fs_fs__p2l_entry_t *const *)lhs;
const svn_fs_fs__p2l_entry_t *rhs_entry
- =*(const svn_fs_fs__p2l_entry_t **)rhs;
+ =*(const svn_fs_fs__p2l_entry_t *const *)rhs;
if (lhs_entry->item.revision < rhs_entry->item.revision)
return -1;
diff --git a/subversion/libsvn_fs_fs/load-index.c b/subversion/libsvn_fs_fs/load-index.c
index 0ba6672..b170b5c 100644
--- a/subversion/libsvn_fs_fs/load-index.c
+++ b/subversion/libsvn_fs_fs/load-index.c
@@ -83,9 +83,9 @@ compare_p2l_entry_revision(const void *lhs,
const void *rhs)
{
const svn_fs_fs__p2l_entry_t *lhs_entry
- =*(const svn_fs_fs__p2l_entry_t **)lhs;
+ =*(const svn_fs_fs__p2l_entry_t *const *)lhs;
const svn_fs_fs__p2l_entry_t *rhs_entry
- =*(const svn_fs_fs__p2l_entry_t **)rhs;
+ =*(const svn_fs_fs__p2l_entry_t *const *)rhs;
if (lhs_entry->offset < rhs_entry->offset)
return -1;
diff --git a/subversion/libsvn_fs_fs/low_level.c b/subversion/libsvn_fs_fs/low_level.c
index 2854bc6..66900e1 100644
--- a/subversion/libsvn_fs_fs/low_level.c
+++ b/subversion/libsvn_fs_fs/low_level.c
@@ -670,7 +670,7 @@ svn_fs_fs__write_changes(svn_stream_t *stream,
}
if (terminate_list)
- svn_stream_puts(stream, "\n");
+ SVN_ERR(svn_stream_puts(stream, "\n"));
svn_pool_destroy(iterpool);
diff --git a/subversion/libsvn_fs_fs/pack.c b/subversion/libsvn_fs_fs/pack.c
index 1119857..7f32f13 100644
--- a/subversion/libsvn_fs_fs/pack.c
+++ b/subversion/libsvn_fs_fs/pack.c
@@ -2067,9 +2067,9 @@ pack_body(void *baton,
if (fully_packed)
{
if (pb->notify_func)
- (*pb->notify_func)(pb->notify_baton,
- ffd->min_unpacked_rev / ffd->max_files_per_dir,
- svn_fs_pack_notify_noop, pool);
+ SVN_ERR(pb->notify_func(pb->notify_baton,
+ ffd->min_unpacked_rev / ffd->max_files_per_dir,
+ svn_fs_pack_notify_noop, pool));
return SVN_NO_ERROR;
}
@@ -2122,7 +2122,7 @@ svn_fs_fs__pack(svn_fs_t *fs,
if (!ffd->max_files_per_dir)
{
if (notify_func)
- (*notify_func)(notify_baton, -1, svn_fs_pack_notify_noop, pool);
+ SVN_ERR(notify_func(notify_baton, -1, svn_fs_pack_notify_noop, pool));
return SVN_NO_ERROR;
}
@@ -2132,9 +2132,9 @@ svn_fs_fs__pack(svn_fs_t *fs,
if (fully_packed)
{
if (notify_func)
- (*notify_func)(notify_baton,
- ffd->min_unpacked_rev / ffd->max_files_per_dir,
- svn_fs_pack_notify_noop, pool);
+ SVN_ERR(notify_func(notify_baton,
+ ffd->min_unpacked_rev / ffd->max_files_per_dir,
+ svn_fs_pack_notify_noop, pool));
return SVN_NO_ERROR;
}
diff --git a/subversion/libsvn_fs_fs/recovery.c b/subversion/libsvn_fs_fs/recovery.c
index eef06f6..09030f4 100644
--- a/subversion/libsvn_fs_fs/recovery.c
+++ b/subversion/libsvn_fs_fs/recovery.c
@@ -471,9 +471,15 @@ recover_body(void *baton, apr_pool_t *pool)
}
/* Prune younger-than-(newfound-youngest) revisions from the rep
- cache if sharing is enabled taking care not to create the cache
- if it does not exist. */
- if (ffd->rep_sharing_allowed)
+ cache, taking care not to create the cache if it does not exist.
+
+ We do this whenever rep-cache.db exists, whether it's currently enabled
+ or not, to prevent a data loss that could result from having revisions
+ created after this 'recover' operation referring to rep-cache.db rows
+ that were created before the recover and that point to revisions younger-
+ than-(newfound-youngest).
+ */
+ if (ffd->format >= SVN_FS_FS__MIN_REP_SHARING_FORMAT)
{
svn_boolean_t rep_cache_exists;
diff --git a/subversion/libsvn_fs_fs/rep-cache-db.h b/subversion/libsvn_fs_fs/rep-cache-db.h
index e662538..3229f96 100644
--- a/subversion/libsvn_fs_fs/rep-cache-db.h
+++ b/subversion/libsvn_fs_fs/rep-cache-db.h
@@ -1,4 +1,4 @@
-/* This file is automatically generated from rep-cache-db.sql and subversion/libsvn_fs_fs/token-map.h.
+/* This file is automatically generated from rep-cache-db.sql and token-map.h.
* Do not edit this file -- edit the source and rerun gen-make.py */
#define STMT_CREATE_SCHEMA_V1 0
diff --git a/subversion/libsvn_fs_fs/temp_serializer.h b/subversion/libsvn_fs_fs/temp_serializer.h
index 187c8d0..32bb554 100644
--- a/subversion/libsvn_fs_fs/temp_serializer.h
+++ b/subversion/libsvn_fs_fs/temp_serializer.h
@@ -53,7 +53,7 @@ svn_fs_fs__noderev_deserialize(void *buffer,
/**
* Adds position information to the raw window data in WINDOW.
*/
-typedef struct
+typedef struct svn_fs_fs__raw_cached_window_t
{
/* the (unprocessed) txdelta window byte sequence cached / to be cached */
svn_string_t window;
@@ -89,7 +89,7 @@ svn_fs_fs__deserialize_raw_window(void **item,
* #svn_txdelta_window_t is not sufficient for caching the data it
* represents because data read process needs auxiliary information.
*/
-typedef struct
+typedef struct svn_fs_fs__txdelta_cached_window_t
{
/* the txdelta window information cached / to be cached */
svn_txdelta_window_t *window;
@@ -377,7 +377,7 @@ typedef struct svn_fs_fs__changes_list_t
of elements in the list is a multiple of our block / range size. */
svn_boolean_t eol;
- /* Array of #svn_fs_x__change_t * representing a consecutive sub-range of
+ /* Array of #svn_fs_fs__change_t * representing a consecutive sub-range of
elements in a changed paths list. */
/* number of entries in the array */
diff --git a/subversion/libsvn_fs_x/changes.c b/subversion/libsvn_fs_x/changes.c
index c385e59..419bc41 100644
--- a/subversion/libsvn_fs_x/changes.c
+++ b/subversion/libsvn_fs_x/changes.c
@@ -184,7 +184,7 @@ svn_fs_x__changes_append_list(apr_size_t *list_index,
/* simply append the list and all changes */
for (i = 0; i < list->nelts; ++i)
- append_change(changes, APR_ARRAY_IDX(list, i, svn_fs_x__change_t *));
+ SVN_ERR(append_change(changes, APR_ARRAY_IDX(list, i, svn_fs_x__change_t *)));
/* terminate the list by storing the next changes offset */
APR_ARRAY_PUSH(changes->offsets, int) = changes->changes->nelts;
diff --git a/subversion/libsvn_fs_x/low_level.c b/subversion/libsvn_fs_x/low_level.c
index 5c7e3ad..c73d927 100644
--- a/subversion/libsvn_fs_x/low_level.c
+++ b/subversion/libsvn_fs_x/low_level.c
@@ -1131,7 +1131,7 @@ svn_fs_x__write_changes(svn_stream_t *stream,
}
if (terminate_list)
- svn_stream_puts(stream, "\n");
+ SVN_ERR(svn_stream_puts(stream, "\n"));
svn_pool_destroy(iterpool);
diff --git a/subversion/libsvn_fs_x/pack.c b/subversion/libsvn_fs_x/pack.c
index 095b04e..ceb9e7f 100644
--- a/subversion/libsvn_fs_x/pack.c
+++ b/subversion/libsvn_fs_x/pack.c
@@ -2204,9 +2204,9 @@ pack_body(void *baton,
if (fully_packed)
{
if (pb->notify_func)
- (*pb->notify_func)(pb->notify_baton,
- ffd->min_unpacked_rev / ffd->max_files_per_dir,
- svn_fs_pack_notify_noop, scratch_pool);
+ SVN_ERR(pb->notify_func(pb->notify_baton,
+ ffd->min_unpacked_rev / ffd->max_files_per_dir,
+ svn_fs_pack_notify_noop, scratch_pool));
return SVN_NO_ERROR;
}
@@ -2258,9 +2258,9 @@ svn_fs_x__pack(svn_fs_t *fs,
svn_fs_x__data_t *ffd = fs->fsap_data;
if (notify_func)
- (*notify_func)(notify_baton,
- ffd->min_unpacked_rev / ffd->max_files_per_dir,
- svn_fs_pack_notify_noop, scratch_pool);
+ SVN_ERR(notify_func(notify_baton,
+ ffd->min_unpacked_rev / ffd->max_files_per_dir,
+ svn_fs_pack_notify_noop, scratch_pool));
return SVN_NO_ERROR;
}
diff --git a/subversion/libsvn_fs_x/rep-cache-db.h b/subversion/libsvn_fs_x/rep-cache-db.h
index c212760..67ab630 100644
--- a/subversion/libsvn_fs_x/rep-cache-db.h
+++ b/subversion/libsvn_fs_x/rep-cache-db.h
@@ -1,4 +1,4 @@
-/* This file is automatically generated from rep-cache-db.sql and subversion/libsvn_fs_x/token-map.h.
+/* This file is automatically generated from rep-cache-db.sql and token-map.h.
* Do not edit this file -- edit the source and rerun gen-make.py */
#define STMT_CREATE_SCHEMA 0
diff --git a/subversion/libsvn_fs_x/transaction.c b/subversion/libsvn_fs_x/transaction.c
index 52c958f..ff05d62 100644
--- a/subversion/libsvn_fs_x/transaction.c
+++ b/subversion/libsvn_fs_x/transaction.c
@@ -1259,7 +1259,7 @@ get_and_increment_txn_key_body(void *baton,
SVN_ERR(svn_io_check_path(txn_dir, &kind, iterpool));
if (kind == svn_node_none)
{
- svn_io_dir_make(txn_dir, APR_OS_DEFAULT, iterpool);
+ SVN_ERR(svn_io_dir_make(txn_dir, APR_OS_DEFAULT, iterpool));
break;
}
diff --git a/subversion/libsvn_fs_x/tree.c b/subversion/libsvn_fs_x/tree.c
index 36374af..6fe34f3 100644
--- a/subversion/libsvn_fs_x/tree.c
+++ b/subversion/libsvn_fs_x/tree.c
@@ -2060,7 +2060,7 @@ typedef struct text_baton_t
* svn_fs_apply_text() ==> ... ==> txn_body_fulltext_finalize_edits()
*/
-/* Write function for the publically returned stream. */
+/* Write function for the publicly returned stream. */
static svn_error_t *
text_stream_writer(void *baton,
const char *data,
diff --git a/subversion/libsvn_ra_serf/commit.c b/subversion/libsvn_ra_serf/commit.c
index 63a6f0b..1b25ab4 100644
--- a/subversion/libsvn_ra_serf/commit.c
+++ b/subversion/libsvn_ra_serf/commit.c
@@ -311,7 +311,7 @@ checkout_node(const char **working_url,
fails due to an SVN_ERR_APMOD_BAD_BASELINE error return from the
server.
- See http://subversion.tigris.org/issues/show_bug.cgi?id=4127 for
+ See https://issues.apache.org/jira/browse/SVN-4127 for
details.
*/
static svn_error_t *
@@ -677,7 +677,7 @@ write_prop_xml(const proppatch_context_t *proppatch,
explicitly deleted in this commit already, then mod_dav removed its
lock token when it fielded the DELETE request, so we don't want to
set the lock precondition again. (See
- http://subversion.tigris.org/issues/show_bug.cgi?id=3674 for details.)
+ https://issues.apache.org/jira/browse/SVN-3674 for details.)
*/
static svn_error_t *
maybe_set_lock_token_header(serf_bucket_t *headers,
diff --git a/subversion/libsvn_ra_serf/list.c b/subversion/libsvn_ra_serf/list.c
index 722a946..3b2ac9f 100644
--- a/subversion/libsvn_ra_serf/list.c
+++ b/subversion/libsvn_ra_serf/list.c
@@ -21,26 +21,13 @@
* ====================================================================
*/
-
-
-
-#include <apr_uri.h>
#include <serf.h>
#include "svn_hash.h"
-#include "svn_pools.h"
-#include "svn_ra.h"
-#include "svn_dav.h"
#include "svn_base64.h"
#include "svn_xml.h"
-#include "svn_config.h"
-#include "svn_path.h"
-#include "svn_props.h"
#include "svn_time.h"
-#include "private/svn_dav_protocol.h"
-#include "private/svn_string_private.h"
-#include "private/svn_subr_private.h"
#include "svn_private_config.h"
#include "ra_serf.h"
diff --git a/subversion/libsvn_ra_serf/options.c b/subversion/libsvn_ra_serf/options.c
index 9cb507c..776a9aa 100644
--- a/subversion/libsvn_ra_serf/options.c
+++ b/subversion/libsvn_ra_serf/options.c
@@ -71,6 +71,9 @@ typedef struct options_context_t {
svn_ra_serf__response_handler_t inner_handler;
void *inner_baton;
+ /* Have we received any DAV headers at all? */
+ svn_boolean_t received_dav_header;
+
const char *activity_collection;
svn_revnum_t youngest_rev;
@@ -165,6 +168,8 @@ capabilities_headers_iterator_callback(void *baton,
apr_array_header_t *vals = svn_cstring_split(val, ",", TRUE,
opt_ctx->pool);
+ opt_ctx->received_dav_header = TRUE;
+
/* Right now we only have a few capabilities to detect, so just
seek for them directly. This could be written slightly more
efficiently, but that wouldn't be worth it until we have many
@@ -396,6 +401,19 @@ options_response_handler(serf_request_t *request,
serf_bucket_headers_do(hdrs, capabilities_headers_iterator_callback,
opt_ctx);
+ /* Bail out early if we're not talking to a DAV server.
+ Note that this check is only valid if we've received a success
+ response; redirects and errors don't count. */
+ if (opt_ctx->handler->sline.code >= 200
+ && opt_ctx->handler->sline.code < 300
+ && !opt_ctx->received_dav_header)
+ {
+ return svn_error_createf
+ (SVN_ERR_RA_DAV_OPTIONS_REQ_FAILED, NULL,
+ _("The server at '%s' does not support the HTTP/DAV protocol"),
+ session->session_url_str);
+ }
+
/* Assume mergeinfo capability unsupported, if didn't receive information
about server or repository mergeinfo capability. */
if (!svn_hash_gets(session->capabilities, SVN_RA_CAPABILITY_MERGEINFO))
diff --git a/subversion/libsvn_ra_serf/replay.c b/subversion/libsvn_ra_serf/replay.c
index bb90ad4..a8cc398 100644
--- a/subversion/libsvn_ra_serf/replay.c
+++ b/subversion/libsvn_ra_serf/replay.c
@@ -701,7 +701,7 @@ svn_ra_serf__replay_range(svn_ra_session_t *ra_session,
wish for the best.
See issue #4287:
- http://subversion.tigris.org/issues/show_bug.cgi?id=4287
+ https://issues.apache.org/jira/browse/SVN-4287
*/
if (session->supports_rev_rsrc_replay)
{
diff --git a/subversion/libsvn_ra_serf/update.c b/subversion/libsvn_ra_serf/update.c
index 63091f2..fc68adf 100644
--- a/subversion/libsvn_ra_serf/update.c
+++ b/subversion/libsvn_ra_serf/update.c
@@ -603,7 +603,7 @@ get_best_connection(report_context_t *ctx)
### simply can't handle the way ra_serf violates the editor v1
### drive ordering requirements.
###
- ### See http://subversion.tigris.org/issues/show_bug.cgi?id=4116.
+ ### See https://issues.apache.org/jira/browse/SVN-4116.
*/
if (ctx->report_received && (ctx->sess->max_connections > 2))
first_conn = 0;
diff --git a/subversion/libsvn_ra_serf/util.c b/subversion/libsvn_ra_serf/util.c
index 52bf93b..66e06ff 100644
--- a/subversion/libsvn_ra_serf/util.c
+++ b/subversion/libsvn_ra_serf/util.c
@@ -756,6 +756,9 @@ handle_client_cert_pw(void *data,
if (creds)
{
+ /* At this stage we are unable to check whether the password
+ is correct; if it is incorrect serf will fail to establish
+ an SSL connection and will return a generic SSL error. */
svn_auth_cred_ssl_client_cert_pw_t *pw_creds;
pw_creds = creds;
*password = pw_creds->password;
@@ -1445,6 +1448,23 @@ handle_response(serf_request_t *request,
process_body:
+ /* A client cert file password was obtained and worked (any HTTP
+ response means that the SSL connection was established.) */
+ if (handler->conn->ssl_client_pw_auth_state)
+ {
+ SVN_ERR(svn_auth_save_credentials(handler->conn->ssl_client_pw_auth_state,
+ handler->session->pool));
+ handler->conn->ssl_client_pw_auth_state = NULL;
+ }
+ if (handler->conn->ssl_client_auth_state)
+ {
+ /* The cert file provider doesn't have any code to save creds so
+ this is currently a no-op. */
+ SVN_ERR(svn_auth_save_credentials(handler->conn->ssl_client_auth_state,
+ handler->session->pool));
+ handler->conn->ssl_client_auth_state = NULL;
+ }
+
/* We've been instructed to ignore the body. Drain whatever is present. */
if (handler->discard_body)
{
diff --git a/subversion/libsvn_ra_svn/protocol b/subversion/libsvn_ra_svn/protocol
index dfa7bc4..b067d87 100644
--- a/subversion/libsvn_ra_svn/protocol
+++ b/subversion/libsvn_ra_svn/protocol
@@ -342,7 +342,7 @@ second place for auth-request point as noted below.
stat
params: ( path:string [ rev:number ] )
response: ( ? entry:dirent )
- dirent: ( name:string kind:node-kind size:number has-props:bool
+ dirent: ( kind:node-kind size:number has-props:bool
created-rev:number [ created-date:string ]
[ last-author:string ] )
New in svn 1.2. If path is non-existent, an empty response is returned.
diff --git a/subversion/libsvn_repos/dump.c b/subversion/libsvn_repos/dump.c
index 960bba5..8b74e47 100644
--- a/subversion/libsvn_repos/dump.c
+++ b/subversion/libsvn_repos/dump.c
@@ -1936,25 +1936,11 @@ write_revision_record(svn_stream_t *stream,
apr_pool_t *pool)
{
apr_hash_t *props;
- apr_time_t timetemp;
- svn_string_t *datevalue;
if (include_revprops)
{
SVN_ERR(svn_repos_fs_revision_proplist(&props, repos, rev,
authz_func, authz_baton, pool));
-
- /* Run revision date properties through the time conversion to
- canonicalize them. */
- /* ### Remove this when it is no longer needed for sure. */
- datevalue = svn_hash_gets(props, SVN_PROP_REVISION_DATE);
- if (datevalue)
- {
- SVN_ERR(svn_time_from_cstring(&timetemp, datevalue->data, pool));
- datevalue = svn_string_create(svn_time_to_cstring(timetemp, pool),
- pool);
- svn_hash_sets(props, SVN_PROP_REVISION_DATE, datevalue);
- }
}
else
{
diff --git a/subversion/libsvn_repos/dump_editor.c b/subversion/libsvn_repos/dump_editor.c
new file mode 100644
index 0000000..ad45ff8
--- /dev/null
+++ b/subversion/libsvn_repos/dump_editor.c
@@ -0,0 +1,1035 @@
+/*
+ * dump_editor.c: A svn_delta_editor_t editor used to dump revisions.
+ *
+ * ====================================================================
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * ====================================================================
+ */
+
+#include "svn_repos.h"
+#include "svn_hash.h"
+#include "svn_pools.h"
+#include "svn_path.h"
+#include "svn_props.h"
+#include "svn_subst.h"
+#include "svn_dirent_uri.h"
+
+#include "private/svn_repos_private.h"
+
+#include <assert.h>
+
+#define ARE_VALID_COPY_ARGS(p,r) ((p) && SVN_IS_VALID_REVNUM(r))
+
+
+/* Normalize the line ending style of the values of properties in PROPS
+ * that "need translation" (according to svn_prop_needs_translation(),
+ * currently all svn:* props) so that they contain only LF (\n) line endings.
+ *
+ * Put the normalized props into NORMAL_PROPS, allocated in RESULT_POOL.
+ */
+static svn_error_t *
+normalize_props(apr_hash_t **normal_props,
+ apr_hash_t *props,
+ apr_pool_t *result_pool)
+{
+ apr_hash_index_t *hi;
+ apr_pool_t *iterpool;
+
+ *normal_props = apr_hash_make(result_pool);
+
+ iterpool = svn_pool_create(result_pool);
+ for (hi = apr_hash_first(result_pool, props); hi; hi = apr_hash_next(hi))
+ {
+ const char *key = apr_hash_this_key(hi);
+ const svn_string_t *value = apr_hash_this_val(hi);
+
+ svn_pool_clear(iterpool);
+
+ SVN_ERR(svn_repos__normalize_prop(&value, NULL, key, value,
+ result_pool, iterpool));
+ svn_hash_sets(*normal_props, key, value);
+ }
+ svn_pool_destroy(iterpool);
+
+ return SVN_NO_ERROR;
+}
+
+/* A directory baton used by all directory-related callback functions
+ * in the dump editor. */
+struct dir_baton
+{
+ struct dump_edit_baton *eb;
+
+ /* Pool for per-directory allocations */
+ apr_pool_t *pool;
+
+ /* the path to this directory */
+ const char *repos_relpath; /* a relpath */
+
+ /* Copyfrom info for the node, if any. */
+ const char *copyfrom_path; /* a relpath */
+ svn_revnum_t copyfrom_rev;
+
+ /* Headers accumulated so far for this directory */
+ svn_repos__dumpfile_headers_t *headers;
+
+ /* Properties which were modified during change_dir_prop. */
+ apr_hash_t *props;
+
+ /* Properties which were deleted during change_dir_prop. */
+ apr_hash_t *deleted_props;
+
+ /* Hash of paths that need to be deleted, though some -might- be
+ replaced. Maps const char * paths to this dir_baton. Note that
+ they're full paths, because that's what the editor driver gives
+ us, although they're all really within this directory. */
+ apr_hash_t *deleted_entries;
+
+ /* Flag to trigger dumping props. */
+ svn_boolean_t dump_props;
+};
+
+/* A file baton used by all file-related callback functions in the dump
+ * editor */
+struct file_baton
+{
+ struct dump_edit_baton *eb;
+
+ /* Pool for per-file allocations */
+ apr_pool_t *pool;
+
+ /* the path to this file */
+ const char *repos_relpath; /* a relpath */
+
+ /* Properties which were modified during change_file_prop. */
+ apr_hash_t *props;
+
+ /* Properties which were deleted during change_file_prop. */
+ apr_hash_t *deleted_props;
+
+ /* The checksum of the file the delta is being applied to */
+ const char *base_checksum;
+
+ /* Copy state and source information (if any). */
+ svn_boolean_t is_copy;
+ const char *copyfrom_path;
+ svn_revnum_t copyfrom_rev;
+
+ /* The action associate with this node. */
+ enum svn_node_action action;
+
+ /* Flags to trigger dumping props and text. */
+ svn_boolean_t dump_text;
+ svn_boolean_t dump_props;
+};
+
+/* The baton used by the dump editor. */
+struct dump_edit_baton {
+ /* The output stream we write the dumpfile to */
+ svn_stream_t *stream;
+
+ /* The repository relpath of the anchor of the editor when driven
+ via the RA update mechanism; NULL otherwise. (When the editor is
+ driven via the RA "replay" mechanism instead, the editor is
+ always anchored at the repository, we don't need to prepend an
+ anchor path to the dumped node paths, and open_root() doesn't
+ need to manufacture directory additions.) */
+ const char *update_anchor_relpath;
+
+ /* Pool for per-revision allocations */
+ apr_pool_t *pool;
+
+ /* Temporary file used for textdelta application along with its
+ absolute path; these two variables should be allocated in the
+ per-edit-session pool */
+ const char *delta_abspath;
+ apr_file_t *delta_file;
+
+ /* The baton of the directory node whose block of
+ dump stream data has not been fully completed; NULL if there's no
+ such item. */
+ struct dir_baton *pending_db;
+};
+
+/* Make a directory baton to represent the directory at PATH (relative
+ * to the EDIT_BATON).
+ *
+ * COPYFROM_PATH/COPYFROM_REV are the path/revision against which this
+ * directory should be compared for changes. If the copyfrom
+ * information is valid, the directory will be compared against its
+ * copy source.
+ *
+ * PB is the directory baton of this directory's parent, or NULL if
+ * this is the top-level directory of the edit.
+ *
+ * Perform all allocations in POOL. */
+static struct dir_baton *
+make_dir_baton(const char *path,
+ const char *copyfrom_path,
+ svn_revnum_t copyfrom_rev,
+ void *edit_baton,
+ struct dir_baton *pb,
+ apr_pool_t *pool)
+{
+ struct dump_edit_baton *eb = edit_baton;
+ struct dir_baton *new_db = apr_pcalloc(pool, sizeof(*new_db));
+ const char *repos_relpath;
+
+ /* Construct the full path of this node. */
+ if (pb)
+ repos_relpath = svn_relpath_canonicalize(path, pool);
+ else
+ repos_relpath = "";
+
+ /* Strip leading slash from copyfrom_path so that the path is
+ canonical and svn_relpath_join can be used */
+ if (copyfrom_path)
+ copyfrom_path = svn_relpath_canonicalize(copyfrom_path, pool);
+
+ new_db->eb = eb;
+ new_db->pool = pool;
+ new_db->repos_relpath = repos_relpath;
+ new_db->copyfrom_path = copyfrom_path
+ ? svn_relpath_canonicalize(copyfrom_path, pool)
+ : NULL;
+ new_db->copyfrom_rev = copyfrom_rev;
+ new_db->headers = NULL;
+ new_db->props = apr_hash_make(pool);
+ new_db->deleted_props = apr_hash_make(pool);
+ new_db->deleted_entries = apr_hash_make(pool);
+
+ return new_db;
+}
+
+/* Make a file baton to represent the directory at PATH (relative to
+ * PB->eb). PB is the directory baton of this directory's parent, or
+ * NULL if this is the top-level directory of the edit. Perform all
+ * allocations in POOL. */
+static struct file_baton *
+make_file_baton(const char *path,
+ struct dir_baton *pb,
+ apr_pool_t *pool)
+{
+ struct file_baton *new_fb = apr_pcalloc(pool, sizeof(*new_fb));
+
+ new_fb->eb = pb->eb;
+ new_fb->pool = pool;
+ new_fb->repos_relpath = svn_relpath_canonicalize(path, pool);
+ new_fb->props = apr_hash_make(pool);
+ new_fb->deleted_props = apr_hash_make(pool);
+ new_fb->is_copy = FALSE;
+ new_fb->copyfrom_path = NULL;
+ new_fb->copyfrom_rev = SVN_INVALID_REVNUM;
+ new_fb->action = svn_node_action_change;
+
+ return new_fb;
+}
+
+/* Append to HEADERS the required headers, and set *CONTENT to the property
+ * content section, to represent the property delta of PROPS/DELETED_PROPS.
+ */
+static svn_error_t *
+get_props_content(svn_repos__dumpfile_headers_t *headers,
+ svn_stringbuf_t **content,
+ apr_hash_t *props,
+ apr_hash_t *deleted_props,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ svn_stream_t *content_stream;
+ apr_hash_t *normal_props;
+
+ *content = svn_stringbuf_create_empty(result_pool);
+
+ content_stream = svn_stream_from_stringbuf(*content, scratch_pool);
+
+ SVN_ERR(normalize_props(&normal_props, props, scratch_pool));
+ SVN_ERR(svn_hash_write_incremental(normal_props, deleted_props,
+ content_stream, "PROPS-END",
+ scratch_pool));
+ SVN_ERR(svn_stream_close(content_stream));
+
+ /* Prop-delta: true */
+ svn_repos__dumpfile_header_push(
+ headers, SVN_REPOS_DUMPFILE_PROP_DELTA, "true");
+
+ return SVN_NO_ERROR;
+}
+
+/* A special case of dump_node(), for a delete record.
+ *
+ * The only thing special about this version is it only writes one blank
+ * line, not two, after the headers. Why? Historical precedent for the
+ * case where a delete record is used as part of a (delete + add-with-history)
+ * in implementing a replacement.
+ */
+static svn_error_t *
+dump_node_delete(svn_stream_t *stream,
+ const char *node_relpath,
+ apr_pool_t *pool)
+{
+ svn_repos__dumpfile_headers_t *headers
+ = svn_repos__dumpfile_headers_create(pool);
+
+ assert(svn_relpath_is_canonical(node_relpath));
+
+ /* Node-path: ... */
+ svn_repos__dumpfile_header_push(
+ headers, SVN_REPOS_DUMPFILE_NODE_PATH, node_relpath);
+
+ /* Node-action: delete */
+ svn_repos__dumpfile_header_push(
+ headers, SVN_REPOS_DUMPFILE_NODE_ACTION, "delete");
+
+ SVN_ERR(svn_repos__dump_node_record(stream, headers,
+ NULL, FALSE, 0, /* props & text */
+ FALSE /*content_length_always*/, pool));
+ return SVN_NO_ERROR;
+}
+
+/* Set *HEADERS_P to contain some headers for the node at PATH of type KIND.
+ *
+ * ACTION describes what is happening to the node (see enum
+ * svn_node_action).
+ *
+ * If the node was itself copied, IS_COPY is TRUE and the
+ * path/revision of the copy source are in COPYFROM_PATH/COPYFROM_REV.
+ * If IS_COPY is FALSE, yet COPYFROM_PATH/COPYFROM_REV are valid, this
+ * node is part of a copied subtree.
+ *
+ * Iff ACTION is svn_node_action_replace and IS_COPY, then first write a
+ * complete deletion record to the dump stream.
+ *
+ * If ACTION is svn_node_action_delete, then the node record will be
+ * complete. (The caller may want to write two blank lines after the
+ * header block.)
+ */
+static svn_error_t *
+dump_node(svn_repos__dumpfile_headers_t **headers_p,
+ struct dump_edit_baton *eb,
+ const char *repos_relpath,
+ struct dir_baton *db,
+ struct file_baton *fb,
+ enum svn_node_action action,
+ svn_boolean_t is_copy,
+ const char *copyfrom_path,
+ svn_revnum_t copyfrom_rev,
+ apr_pool_t *pool)
+{
+ const char *node_relpath = repos_relpath;
+ svn_repos__dumpfile_headers_t *headers
+ = svn_repos__dumpfile_headers_create(pool);
+
+ assert(svn_relpath_is_canonical(repos_relpath));
+ assert(!copyfrom_path || svn_relpath_is_canonical(copyfrom_path));
+ assert(! (db && fb));
+
+ /* Add the edit root relpath prefix if necessary. */
+ if (eb->update_anchor_relpath)
+ node_relpath = svn_relpath_join(eb->update_anchor_relpath,
+ node_relpath, pool);
+
+ /* Node-path: ... */
+ svn_repos__dumpfile_header_push(
+ headers, SVN_REPOS_DUMPFILE_NODE_PATH, node_relpath);
+
+ /* Node-kind: "file" | "dir" */
+ if (fb)
+ svn_repos__dumpfile_header_push(
+ headers, SVN_REPOS_DUMPFILE_NODE_KIND, "file");
+ else if (db)
+ svn_repos__dumpfile_header_push(
+ headers, SVN_REPOS_DUMPFILE_NODE_KIND, "dir");
+
+
+ /* Write the appropriate Node-action header */
+ switch (action)
+ {
+ case svn_node_action_change:
+ /* We are here after a change_file_prop or change_dir_prop. They
+ set up whatever dump_props they needed to- nothing to
+ do here but print node action information.
+
+ Node-action: change. */
+ svn_repos__dumpfile_header_push(
+ headers, SVN_REPOS_DUMPFILE_NODE_ACTION, "change");
+ break;
+
+ case svn_node_action_delete:
+ /* Node-action: delete */
+ svn_repos__dumpfile_header_push(
+ headers, SVN_REPOS_DUMPFILE_NODE_ACTION, "delete");
+ break;
+
+ case svn_node_action_replace:
+ if (! is_copy)
+ {
+ /* Node-action: replace */
+ svn_repos__dumpfile_header_push(
+ headers, SVN_REPOS_DUMPFILE_NODE_ACTION, "replace");
+
+ /* Wait for a change_*_prop to be called before dumping
+ anything */
+ if (fb)
+ fb->dump_props = TRUE;
+ else if (db)
+ db->dump_props = TRUE;
+ break;
+ }
+ else
+ {
+ /* More complex case: is_copy is true, and copyfrom_path/
+ copyfrom_rev are present: delete the original, and then re-add
+ it */
+ /* ### Why not write a 'replace' record? Don't know. */
+
+ /* ### Unusually, we end this 'delete' node record with only a single
+ blank line after the header block -- no extra blank line. */
+ SVN_ERR(dump_node_delete(eb->stream, repos_relpath, pool));
+
+ /* The remaining action is a non-replacing add-with-history */
+ /* action = svn_node_action_add; */
+ }
+ /* FALL THROUGH to 'add' */
+
+ case svn_node_action_add:
+ /* Node-action: add */
+ svn_repos__dumpfile_header_push(
+ headers, SVN_REPOS_DUMPFILE_NODE_ACTION, "add");
+
+ if (is_copy)
+ {
+ /* Node-copyfrom-rev / Node-copyfrom-path */
+ svn_repos__dumpfile_header_pushf(
+ headers, SVN_REPOS_DUMPFILE_NODE_COPYFROM_REV, "%ld", copyfrom_rev);
+ svn_repos__dumpfile_header_push(
+ headers, SVN_REPOS_DUMPFILE_NODE_COPYFROM_PATH, copyfrom_path);
+ }
+ else
+ {
+ /* fb->dump_props (for files) is handled in close_file()
+ which is called immediately.
+
+ However, directories are not closed until all the work
+ inside them has been done; db->dump_props (for directories)
+ is handled (via dump_pending()) in all the functions that
+ can possibly be called after add_directory():
+
+ - add_directory()
+ - open_directory()
+ - delete_entry()
+ - close_directory()
+ - add_file()
+ - open_file()
+
+ change_dir_prop() is a special case. */
+ if (fb)
+ fb->dump_props = TRUE;
+ else if (db)
+ db->dump_props = TRUE;
+ }
+
+ break;
+ }
+
+ /* Return the headers so far. We don't necessarily have all the headers
+ yet -- there may be property-related and content length headers to
+ come, if this was not a 'delete' record. */
+ *headers_p = headers;
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+dump_mkdir(struct dump_edit_baton *eb,
+ const char *repos_relpath,
+ apr_pool_t *pool)
+{
+ svn_stringbuf_t *prop_content;
+ svn_repos__dumpfile_headers_t *headers
+ = svn_repos__dumpfile_headers_create(pool);
+
+ /* Node-path: ... */
+ svn_repos__dumpfile_header_push(
+ headers, SVN_REPOS_DUMPFILE_NODE_PATH, repos_relpath);
+
+ /* Node-kind: dir */
+ svn_repos__dumpfile_header_push(
+ headers, SVN_REPOS_DUMPFILE_NODE_KIND, "dir");
+
+ /* Node-action: add */
+ svn_repos__dumpfile_header_push(
+ headers, SVN_REPOS_DUMPFILE_NODE_ACTION, "add");
+
+ /* Dump the (empty) property block. */
+ SVN_ERR(get_props_content(headers, &prop_content,
+ apr_hash_make(pool), apr_hash_make(pool),
+ pool, pool));
+ SVN_ERR(svn_repos__dump_node_record(eb->stream, headers, prop_content,
+ FALSE, 0, FALSE /*content_length_always*/,
+ pool));
+
+ /* Newlines to tie it all off. */
+ SVN_ERR(svn_stream_puts(eb->stream, "\n\n"));
+
+ return SVN_NO_ERROR;
+}
+
+/* Dump pending headers and properties for the directory EB->pending_db (if
+ * not null), to allow starting the dump of a child node */
+static svn_error_t *
+dump_pending_dir(struct dump_edit_baton *eb,
+ apr_pool_t *scratch_pool)
+{
+ struct dir_baton *db = eb->pending_db;
+ svn_stringbuf_t *prop_content = NULL;
+
+ if (! db)
+ return SVN_NO_ERROR;
+
+ /* Some pending properties to dump? */
+ if (db->dump_props)
+ {
+ SVN_ERR(get_props_content(db->headers, &prop_content,
+ db->props, db->deleted_props,
+ scratch_pool, scratch_pool));
+ }
+ SVN_ERR(svn_repos__dump_node_record(eb->stream, db->headers, prop_content,
+ FALSE, 0, FALSE /*content_length_always*/,
+ scratch_pool));
+
+ /* No text is going to be dumped. Write a couple of newlines and
+ wait for the next node/ revision. */
+ SVN_ERR(svn_stream_puts(eb->stream, "\n\n"));
+
+ if (db->dump_props)
+ {
+ /* Cleanup so that data is never dumped twice. */
+ apr_hash_clear(db->props);
+ apr_hash_clear(db->deleted_props);
+ db->dump_props = FALSE;
+ }
+
+ /* Anything that was pending is pending no longer. */
+ eb->pending_db = NULL;
+
+ return SVN_NO_ERROR;
+}
+
+
+
+/*** Editor Function Implementations ***/
+
+static svn_error_t *
+open_root(void *edit_baton,
+ svn_revnum_t base_revision,
+ apr_pool_t *pool,
+ void **root_baton)
+{
+ struct dump_edit_baton *eb = edit_baton;
+ struct dir_baton *new_db = NULL;
+
+ /* Clear the per-revision pool after each revision */
+ svn_pool_clear(eb->pool);
+
+ if (eb->update_anchor_relpath)
+ {
+ int i;
+ const char *parent_path = eb->update_anchor_relpath;
+ apr_array_header_t *dirs_to_add =
+ apr_array_make(pool, 4, sizeof(const char *));
+ apr_pool_t *iterpool = svn_pool_create(pool);
+
+ while (! svn_path_is_empty(parent_path))
+ {
+ APR_ARRAY_PUSH(dirs_to_add, const char *) = parent_path;
+ parent_path = svn_relpath_dirname(parent_path, pool);
+ }
+
+ for (i = dirs_to_add->nelts; i; --i)
+ {
+ const char *dir_to_add =
+ APR_ARRAY_IDX(dirs_to_add, i - 1, const char *);
+
+ svn_pool_clear(iterpool);
+
+ /* For parents of the source directory, we just manufacture
+ the adds ourselves. */
+ if (i > 1)
+ {
+ SVN_ERR(dump_mkdir(eb, dir_to_add, iterpool));
+ }
+ else
+ {
+ /* ... but for the source directory itself, we'll defer
+ to letting the typical plumbing handle this task. */
+ new_db = make_dir_baton(NULL, NULL, SVN_INVALID_REVNUM,
+ edit_baton, NULL, pool);
+ SVN_ERR(dump_node(&new_db->headers,
+ eb, new_db->repos_relpath, new_db,
+ NULL, svn_node_action_add, FALSE,
+ NULL, SVN_INVALID_REVNUM, pool));
+
+ /* Remember that we've started but not yet finished
+ handling this directory. */
+ eb->pending_db = new_db;
+ }
+ }
+ svn_pool_destroy(iterpool);
+ }
+
+ if (! new_db)
+ {
+ new_db = make_dir_baton(NULL, NULL, SVN_INVALID_REVNUM,
+ edit_baton, NULL, pool);
+ }
+
+ *root_baton = new_db;
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+delete_entry(const char *path,
+ svn_revnum_t revision,
+ void *parent_baton,
+ apr_pool_t *pool)
+{
+ struct dir_baton *pb = parent_baton;
+
+ SVN_ERR(dump_pending_dir(pb->eb, pool));
+
+ /* We don't dump this deletion immediate. Rather, we add this path
+ to the deleted_entries of the parent directory baton. That way,
+ we can tell (later) an addition from a replacement. All the real
+ deletions get handled in close_directory(). */
+ svn_hash_sets(pb->deleted_entries, apr_pstrdup(pb->pool, path), pb);
+
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+add_directory(const char *path,
+ void *parent_baton,
+ const char *copyfrom_path,
+ svn_revnum_t copyfrom_rev,
+ apr_pool_t *pool,
+ void **child_baton)
+{
+ struct dir_baton *pb = parent_baton;
+ void *was_deleted;
+ struct dir_baton *new_db;
+ svn_boolean_t is_copy;
+
+ SVN_ERR(dump_pending_dir(pb->eb, pool));
+
+ new_db = make_dir_baton(path, copyfrom_path, copyfrom_rev, pb->eb,
+ pb, pb->pool);
+
+ /* This might be a replacement -- is the path already deleted? */
+ was_deleted = svn_hash_gets(pb->deleted_entries, path);
+
+ /* Detect an add-with-history */
+ is_copy = ARE_VALID_COPY_ARGS(copyfrom_path, copyfrom_rev);
+
+ /* Dump the node */
+ SVN_ERR(dump_node(&new_db->headers,
+ pb->eb, new_db->repos_relpath, new_db, NULL,
+ was_deleted ? svn_node_action_replace : svn_node_action_add,
+ is_copy,
+ is_copy ? new_db->copyfrom_path : NULL,
+ is_copy ? copyfrom_rev : SVN_INVALID_REVNUM,
+ pool));
+
+ if (was_deleted)
+ /* Delete the path, it's now been dumped */
+ svn_hash_sets(pb->deleted_entries, path, NULL);
+
+ /* Remember that we've started, but not yet finished handling this
+ directory. */
+ pb->eb->pending_db = new_db;
+
+ *child_baton = new_db;
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+open_directory(const char *path,
+ void *parent_baton,
+ svn_revnum_t base_revision,
+ apr_pool_t *pool,
+ void **child_baton)
+{
+ struct dir_baton *pb = parent_baton;
+ struct dir_baton *new_db;
+ const char *copyfrom_path = NULL;
+ svn_revnum_t copyfrom_rev = SVN_INVALID_REVNUM;
+
+ SVN_ERR(dump_pending_dir(pb->eb, pool));
+
+ /* If the parent directory has explicit comparison path and rev,
+ record the same for this one. */
+ if (ARE_VALID_COPY_ARGS(pb->copyfrom_path, pb->copyfrom_rev))
+ {
+ copyfrom_path = svn_relpath_join(pb->copyfrom_path,
+ svn_relpath_basename(path, NULL),
+ pb->pool);
+ copyfrom_rev = pb->copyfrom_rev;
+ }
+
+ new_db = make_dir_baton(path, copyfrom_path, copyfrom_rev, pb->eb, pb,
+ pb->pool);
+
+ *child_baton = new_db;
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+close_directory(void *dir_baton,
+ apr_pool_t *pool)
+{
+ struct dir_baton *db = dir_baton;
+ apr_hash_index_t *hi;
+ svn_boolean_t this_pending;
+
+ /* Remember if this directory is the one currently pending. */
+ this_pending = (db->eb->pending_db == db);
+
+ SVN_ERR(dump_pending_dir(db->eb, pool));
+
+ /* If this directory was pending, then dump_pending() should have
+ taken care of all the props and such. Of course, the only way
+ that would be the case is if this directory was added/replaced.
+
+ Otherwise, if stuff for this directory has already been written
+ out (at some point in the past, prior to our handling other
+ nodes), we might need to generate a second "change" record just
+ to carry the information we've since learned about the
+ directory. */
+ if ((! this_pending) && (db->dump_props))
+ {
+ SVN_ERR(dump_node(&db->headers,
+ db->eb, db->repos_relpath, db, NULL,
+ svn_node_action_change, FALSE,
+ NULL, SVN_INVALID_REVNUM, pool));
+ db->eb->pending_db = db;
+ SVN_ERR(dump_pending_dir(db->eb, pool));
+ }
+
+ /* Dump the deleted directory entries */
+ for (hi = apr_hash_first(pool, db->deleted_entries); hi;
+ hi = apr_hash_next(hi))
+ {
+ const char *path = apr_hash_this_key(hi);
+
+ SVN_ERR(dump_node_delete(db->eb->stream, path, pool));
+ /* This deletion record is complete -- write an extra newline */
+ SVN_ERR(svn_stream_puts(db->eb->stream, "\n"));
+ }
+
+ /* ### should be unnecessary */
+ apr_hash_clear(db->deleted_entries);
+
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+add_file(const char *path,
+ void *parent_baton,
+ const char *copyfrom_path,
+ svn_revnum_t copyfrom_rev,
+ apr_pool_t *pool,
+ void **file_baton)
+{
+ struct dir_baton *pb = parent_baton;
+ struct file_baton *fb;
+ void *was_deleted;
+
+ SVN_ERR(dump_pending_dir(pb->eb, pool));
+
+ /* Make the file baton. */
+ fb = make_file_baton(path, pb, pool);
+
+ /* This might be a replacement -- is the path already deleted? */
+ was_deleted = svn_hash_gets(pb->deleted_entries, path);
+
+ /* Detect add-with-history. */
+ if (ARE_VALID_COPY_ARGS(copyfrom_path, copyfrom_rev))
+ {
+ fb->copyfrom_path = svn_relpath_canonicalize(copyfrom_path, fb->pool);
+ fb->copyfrom_rev = copyfrom_rev;
+ fb->is_copy = TRUE;
+ }
+ fb->action = was_deleted ? svn_node_action_replace : svn_node_action_add;
+
+ /* Delete the path, it's now been dumped. */
+ if (was_deleted)
+ svn_hash_sets(pb->deleted_entries, path, NULL);
+
+ *file_baton = fb;
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+open_file(const char *path,
+ void *parent_baton,
+ svn_revnum_t ancestor_revision,
+ apr_pool_t *pool,
+ void **file_baton)
+{
+ struct dir_baton *pb = parent_baton;
+ struct file_baton *fb;
+
+ SVN_ERR(dump_pending_dir(pb->eb, pool));
+
+ /* Make the file baton. */
+ fb = make_file_baton(path, pb, pool);
+
+ /* If the parent directory has explicit copyfrom path and rev,
+ record the same for this one. */
+ if (ARE_VALID_COPY_ARGS(pb->copyfrom_path, pb->copyfrom_rev))
+ {
+ fb->copyfrom_path = svn_relpath_join(pb->copyfrom_path,
+ svn_relpath_basename(path, NULL),
+ pb->pool);
+ fb->copyfrom_rev = pb->copyfrom_rev;
+ }
+
+ *file_baton = fb;
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+change_dir_prop(void *parent_baton,
+ const char *name,
+ const svn_string_t *value,
+ apr_pool_t *pool)
+{
+ struct dir_baton *db = parent_baton;
+ svn_boolean_t this_pending;
+
+ /* This directory is not pending, but something else is, so handle
+ the "something else". */
+ this_pending = (db->eb->pending_db == db);
+ if (! this_pending)
+ SVN_ERR(dump_pending_dir(db->eb, pool));
+
+ if (svn_property_kind2(name) != svn_prop_regular_kind)
+ return SVN_NO_ERROR;
+
+ if (value)
+ svn_hash_sets(db->props,
+ apr_pstrdup(db->pool, name),
+ svn_string_dup(value, db->pool));
+ else
+ svn_hash_sets(db->deleted_props, apr_pstrdup(db->pool, name), "");
+
+ /* Make sure we eventually output the props */
+ db->dump_props = TRUE;
+
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+change_file_prop(void *file_baton,
+ const char *name,
+ const svn_string_t *value,
+ apr_pool_t *pool)
+{
+ struct file_baton *fb = file_baton;
+
+ if (svn_property_kind2(name) != svn_prop_regular_kind)
+ return SVN_NO_ERROR;
+
+ if (value)
+ svn_hash_sets(fb->props,
+ apr_pstrdup(fb->pool, name),
+ svn_string_dup(value, fb->pool));
+ else
+ svn_hash_sets(fb->deleted_props, apr_pstrdup(fb->pool, name), "");
+
+ /* Dump the property headers and wait; close_file might need
+ to write text headers too depending on whether
+ apply_textdelta is called */
+ fb->dump_props = TRUE;
+
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+apply_textdelta(void *file_baton, const char *base_checksum,
+ apr_pool_t *pool,
+ svn_txdelta_window_handler_t *handler,
+ void **handler_baton)
+{
+ struct file_baton *fb = file_baton;
+ struct dump_edit_baton *eb = fb->eb;
+ svn_stream_t *delta_filestream;
+
+ /* Use a temporary file to measure the Text-content-length */
+ delta_filestream = svn_stream_from_aprfile2(eb->delta_file, TRUE, pool);
+
+ /* Prepare to write the delta to the delta_filestream */
+ svn_txdelta_to_svndiff3(handler, handler_baton,
+ delta_filestream, 0,
+ SVN_DELTA_COMPRESSION_LEVEL_DEFAULT, pool);
+
+ /* Record that there's text to be dumped, and its base checksum. */
+ fb->dump_text = TRUE;
+ fb->base_checksum = apr_pstrdup(fb->pool, base_checksum);
+
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+close_file(void *file_baton,
+ const char *text_checksum,
+ apr_pool_t *pool)
+{
+ struct file_baton *fb = file_baton;
+ struct dump_edit_baton *eb = fb->eb;
+ svn_filesize_t text_content_length = 0;
+ svn_stringbuf_t *propstring = NULL;
+ svn_repos__dumpfile_headers_t *headers;
+
+ SVN_ERR(dump_pending_dir(eb, pool));
+
+ /* Start dumping this node, by collecting some basic headers for it. */
+ SVN_ERR(dump_node(&headers, eb, fb->repos_relpath, NULL, fb,
+ fb->action, fb->is_copy, fb->copyfrom_path,
+ fb->copyfrom_rev, pool));
+
+ /* Some pending properties to dump? We'll dump just the headers for
+ now, then dump the actual propchange content only after dumping
+ the text headers too (if present). */
+ if (fb->dump_props)
+ {
+ SVN_ERR(get_props_content(headers, &propstring,
+ fb->props, fb->deleted_props,
+ pool, pool));
+ }
+
+ /* Dump the text headers */
+ if (fb->dump_text)
+ {
+ /* Text-delta: true */
+ svn_repos__dumpfile_header_push(
+ headers, SVN_REPOS_DUMPFILE_TEXT_DELTA, "true");
+
+ SVN_ERR(svn_io_file_size_get(&text_content_length, eb->delta_file,
+ pool));
+
+ if (fb->base_checksum)
+ /* Text-delta-base-md5: */
+ svn_repos__dumpfile_header_push(
+ headers, SVN_REPOS_DUMPFILE_TEXT_DELTA_BASE_MD5, fb->base_checksum);
+
+ /* Text-content-md5: 82705804337e04dcd0e586bfa2389a7f */
+ svn_repos__dumpfile_header_push(
+ headers, SVN_REPOS_DUMPFILE_TEXT_CONTENT_MD5, text_checksum);
+ }
+
+ /* Dump the headers and props now */
+ SVN_ERR(svn_repos__dump_node_record(eb->stream, headers, propstring,
+ fb->dump_text, text_content_length,
+ FALSE /*content_length_always*/,
+ pool));
+
+ if (fb->dump_props)
+ {
+ /* Cleanup */
+ fb->dump_props = FALSE;
+ apr_hash_clear(fb->props);
+ apr_hash_clear(fb->deleted_props);
+ }
+
+ /* Dump the text */
+ if (fb->dump_text)
+ {
+ /* Seek to the beginning of the delta file, map it to a stream,
+ and copy the stream to eb->stream. Then close the stream and
+ truncate the file so we can reuse it for the next textdelta
+ application. Note that the file isn't created, opened or
+ closed here */
+ svn_stream_t *delta_filestream;
+ apr_off_t offset = 0;
+
+ SVN_ERR(svn_io_file_seek(eb->delta_file, APR_SET, &offset, pool));
+ delta_filestream = svn_stream_from_aprfile2(eb->delta_file, TRUE, pool);
+ SVN_ERR(svn_stream_copy3(delta_filestream, eb->stream, NULL, NULL, pool));
+
+ /* Cleanup */
+ SVN_ERR(svn_stream_close(delta_filestream));
+ SVN_ERR(svn_io_file_trunc(eb->delta_file, 0, pool));
+ }
+
+ /* Write a couple of blank lines for matching output with `svnadmin
+ dump` */
+ SVN_ERR(svn_stream_puts(eb->stream, "\n\n"));
+
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+close_edit(void *edit_baton, apr_pool_t *pool)
+{
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_repos__get_dump_editor(const svn_delta_editor_t **editor,
+ void **edit_baton,
+ svn_stream_t *stream,
+ const char *update_anchor_relpath,
+ apr_pool_t *pool)
+{
+ struct dump_edit_baton *eb;
+ svn_delta_editor_t *de;
+
+ eb = apr_pcalloc(pool, sizeof(struct dump_edit_baton));
+ eb->stream = stream;
+ eb->update_anchor_relpath = update_anchor_relpath;
+ eb->pending_db = NULL;
+
+ /* Create a special per-revision pool */
+ eb->pool = svn_pool_create(pool);
+
+ /* Open a unique temporary file for all textdelta applications in
+ this edit session. The file is automatically closed and cleaned
+ up when the edit session is done. */
+ SVN_ERR(svn_io_open_unique_file3(&(eb->delta_file), &(eb->delta_abspath),
+ NULL, svn_io_file_del_on_close, pool, pool));
+
+ de = svn_delta_default_editor(pool);
+ de->open_root = open_root;
+ de->delete_entry = delete_entry;
+ de->add_directory = add_directory;
+ de->open_directory = open_directory;
+ de->close_directory = close_directory;
+ de->change_dir_prop = change_dir_prop;
+ de->change_file_prop = change_file_prop;
+ de->apply_textdelta = apply_textdelta;
+ de->add_file = add_file;
+ de->open_file = open_file;
+ de->close_file = close_file;
+ de->close_edit = close_edit;
+
+ /* Set the edit_baton and editor. */
+ *edit_baton = eb;
+ *editor = de;
+
+ return SVN_NO_ERROR;
+}
diff --git a/subversion/libsvn_repos/list.c b/subversion/libsvn_repos/list.c
index ef8ac32..f620b3f 100644
--- a/subversion/libsvn_repos/list.c
+++ b/subversion/libsvn_repos/list.c
@@ -324,7 +324,7 @@ svn_repos_list(svn_fs_root_t *root,
svn_membuf__create(&scratch_buffer, 256, scratch_pool);
/* Actually report PATH, if it passes the filters. */
- if (matches_any(svn_dirent_dirname(path, scratch_pool), patterns,
+ if (matches_any(svn_dirent_basename(path, scratch_pool), patterns,
&scratch_buffer))
SVN_ERR(report_dirent(root, path, kind, path_info_only,
receiver, receiver_baton, scratch_pool));
diff --git a/subversion/libsvn_repos/load-fs-vtable.c b/subversion/libsvn_repos/load-fs-vtable.c
index f6c6bf6..a353628 100644
--- a/subversion/libsvn_repos/load-fs-vtable.c
+++ b/subversion/libsvn_repos/load-fs-vtable.c
@@ -75,7 +75,7 @@ struct parse_baton
(svn_revnum_t *) in the dump stream to their corresponding revisions
(svn_revnum_t *) in the loaded repository. The hash and its
contents are allocated in POOL. */
- /* ### See http://subversion.tigris.org/issues/show_bug.cgi?id=3903
+ /* ### See https://issues.apache.org/jira/browse/SVN-3903
### for discussion about improving the memory costs of this mapping. */
apr_hash_t *rev_map;
@@ -253,7 +253,7 @@ renumber_mergeinfo_revs(svn_string_t **final_val,
SVN_ERR(svn_mergeinfo_parse(&mergeinfo, initial_val->data, subpool));
/* Issue #3020
- http://subversion.tigris.org/issues/show_bug.cgi?id=3020#desc16
+ https://issues.apache.org/jira/browse/SVN-3020#desc16
Remove mergeinfo older than the oldest revision in the dump stream
and adjust its revisions by the difference between the head rev of
the target repository and the current dump stream rev. */
@@ -323,7 +323,7 @@ renumber_mergeinfo_revs(svn_string_t **final_val,
mergeinfo with a start rev > end rev. If that gets into the
repository then a world of bustage breaks loose anytime that
bogus mergeinfo is parsed. See
- http://subversion.tigris.org/issues/show_bug.cgi?id=3020#desc16.
+ https://issues.apache.org/jira/browse/SVN-3020#desc16.
*/
continue;
}
diff --git a/subversion/libsvn_repos/log.c b/subversion/libsvn_repos/log.c
index 7dec5dd..5db5028 100644
--- a/subversion/libsvn_repos/log.c
+++ b/subversion/libsvn_repos/log.c
@@ -2447,7 +2447,7 @@ svn_repos_get_logs5(svn_repos_t *repos,
represents all of PATHS' history between START and END. We will use
this later to squelch duplicate log revisions that might exist in
both natural history and merged-in history. See
- http://subversion.tigris.org/issues/show_bug.cgi?id=3650#desc5 */
+ https://issues.apache.org/jira/browse/SVN-3650#desc5 */
if (include_merged_revisions)
{
apr_pool_t *subpool = svn_pool_create(scratch_pool);
diff --git a/subversion/libsvn_repos/repos.c b/subversion/libsvn_repos/repos.c
index 2333f56..f46b828 100644
--- a/subversion/libsvn_repos/repos.c
+++ b/subversion/libsvn_repos/repos.c
@@ -1721,7 +1721,7 @@ svn_repos_recover4(const char *path,
}
struct freeze_baton_t {
- apr_array_header_t *paths;
+ const apr_array_header_t *paths;
int counter;
svn_repos_freeze_func_t freeze_func;
void *freeze_baton;
@@ -1788,7 +1788,7 @@ multi_freeze(void *baton,
and an SQLite reserved lock which means the repository is readable
while frozen. */
svn_error_t *
-svn_repos_freeze(apr_array_header_t *paths,
+svn_repos_freeze(const apr_array_header_t *paths,
svn_repos_freeze_func_t freeze_func,
void *freeze_baton,
apr_pool_t *pool)
diff --git a/subversion/libsvn_subr/compress_lz4.c b/subversion/libsvn_subr/compress_lz4.c
index d700b32..7dd4526 100644
--- a/subversion/libsvn_subr/compress_lz4.c
+++ b/subversion/libsvn_subr/compress_lz4.c
@@ -27,7 +27,7 @@
#include "svn_private_config.h"
-#if SVN_INTERNAL_LZ4
+#ifdef SVN_INTERNAL_LZ4
#include "lz4/lz4internal.h"
#else
#include <lz4.h>
diff --git a/subversion/libsvn_subr/config_win.c b/subversion/libsvn_subr/config_win.c
index aeab0d6..468545b 100644
--- a/subversion/libsvn_subr/config_win.c
+++ b/subversion/libsvn_subr/config_win.c
@@ -137,7 +137,7 @@ parse_section(svn_config_t *cfg, HKEY hkey, const char *section,
_("Can't enumerate registry values"));
/* Ignore option names that start with '#', see
- http://subversion.tigris.org/issues/show_bug.cgi?id=671 */
+ https://issues.apache.org/jira/browse/SVN-671 */
if (type == REG_SZ && option->data[0] != '#')
{
DWORD value_len = (DWORD)value->blocksize;
diff --git a/subversion/libsvn_subr/deprecated.c b/subversion/libsvn_subr/deprecated.c
index 1110d99..ef19bdb 100644
--- a/subversion/libsvn_subr/deprecated.c
+++ b/subversion/libsvn_subr/deprecated.c
@@ -390,6 +390,30 @@ print_command_info(const svn_opt_subcommand_desc_t *cmd,
return SVN_NO_ERROR;
}
+const svn_opt_subcommand_desc2_t *
+svn_opt_get_canonical_subcommand2(const svn_opt_subcommand_desc2_t *table,
+ const char *cmd_name)
+{
+ int i = 0;
+
+ if (cmd_name == NULL)
+ return NULL;
+
+ while (table[i].name) {
+ int j;
+ if (strcmp(cmd_name, table[i].name) == 0)
+ return table + i;
+ for (j = 0; (j < SVN_OPT_MAX_ALIASES) && table[i].aliases[j]; j++)
+ if (strcmp(cmd_name, table[i].aliases[j]) == 0)
+ return table + i;
+
+ i++;
+ }
+
+ /* If we get here, there was no matching subcommand name or alias. */
+ return NULL;
+}
+
const svn_opt_subcommand_desc_t *
svn_opt_get_canonical_subcommand(const svn_opt_subcommand_desc_t *table,
const char *cmd_name)
@@ -414,6 +438,344 @@ svn_opt_get_canonical_subcommand(const svn_opt_subcommand_desc_t *table,
return NULL;
}
+const apr_getopt_option_t *
+svn_opt_get_option_from_code2(int code,
+ const apr_getopt_option_t *option_table,
+ const svn_opt_subcommand_desc2_t *command,
+ apr_pool_t *pool)
+{
+ apr_size_t i;
+
+ for (i = 0; option_table[i].optch; i++)
+ if (option_table[i].optch == code)
+ {
+ if (command)
+ {
+ int j;
+
+ for (j = 0; ((j < SVN_OPT_MAX_OPTIONS) &&
+ command->desc_overrides[j].optch); j++)
+ if (command->desc_overrides[j].optch == code)
+ {
+ apr_getopt_option_t *tmpopt =
+ apr_palloc(pool, sizeof(*tmpopt));
+ *tmpopt = option_table[i];
+ tmpopt->description = command->desc_overrides[j].desc;
+ return tmpopt;
+ }
+ }
+ return &(option_table[i]);
+ }
+
+ return NULL;
+}
+
+const apr_getopt_option_t *
+svn_opt_get_option_from_code(int code,
+ const apr_getopt_option_t *option_table)
+{
+ apr_size_t i;
+
+ for (i = 0; option_table[i].optch; i++)
+ if (option_table[i].optch == code)
+ return &(option_table[i]);
+
+ return NULL;
+}
+
+/* Like svn_opt_get_option_from_code2(), but also, if CODE appears a second
+ * time in OPTION_TABLE with a different name, then set *LONG_ALIAS to that
+ * second name, else set it to NULL. */
+static const apr_getopt_option_t *
+get_option_from_code(const char **long_alias,
+ int code,
+ const apr_getopt_option_t *option_table,
+ const svn_opt_subcommand_desc2_t *command,
+ apr_pool_t *pool)
+{
+ const apr_getopt_option_t *i;
+ const apr_getopt_option_t *opt
+ = svn_opt_get_option_from_code2(code, option_table, command, pool);
+
+ /* Find a long alias in the table, if there is one. */
+ *long_alias = NULL;
+ for (i = option_table; i->optch; i++)
+ {
+ if (i->optch == code && i->name != opt->name)
+ {
+ *long_alias = i->name;
+ break;
+ }
+ }
+
+ return opt;
+}
+
+/* Print an option OPT nicely into a STRING allocated in POOL.
+ * If OPT has a single-character short form, then print OPT->name (if not
+ * NULL) as an alias, else print LONG_ALIAS (if not NULL) as an alias.
+ * If DOC is set, include the generic documentation string of OPT,
+ * localized to the current locale if a translation is available.
+ */
+static void
+format_option(const char **string,
+ const apr_getopt_option_t *opt,
+ const char *long_alias,
+ svn_boolean_t doc,
+ apr_pool_t *pool)
+{
+ char *opts;
+
+ if (opt == NULL)
+ {
+ *string = "?";
+ return;
+ }
+
+ /* We have a valid option which may or may not have a "short
+ name" (a single-character alias for the long option). */
+ if (opt->optch <= 255)
+ opts = apr_psprintf(pool, "-%c [--%s]", opt->optch, opt->name);
+ else if (long_alias)
+ opts = apr_psprintf(pool, "--%s [--%s]", opt->name, long_alias);
+ else
+ opts = apr_psprintf(pool, "--%s", opt->name);
+
+ if (opt->has_arg)
+ opts = apr_pstrcat(pool, opts, _(" ARG"), SVN_VA_NULL);
+
+ if (doc)
+ opts = apr_psprintf(pool, "%-24s : %s", opts, _(opt->description));
+
+ *string = opts;
+}
+
+/* Print the canonical command name for CMD, and all its aliases, to
+ STREAM. If HELP is set, print CMD's help string too, in which case
+ obtain option usage from OPTIONS_TABLE. */
+static svn_error_t *
+print_command_info2(const svn_opt_subcommand_desc2_t *cmd,
+ const apr_getopt_option_t *options_table,
+ const int *global_options,
+ svn_boolean_t help,
+ apr_pool_t *pool,
+ FILE *stream)
+{
+ svn_boolean_t first_time;
+ apr_size_t i;
+
+ /* Print the canonical command name. */
+ SVN_ERR(svn_cmdline_fputs(cmd->name, stream, pool));
+
+ /* Print the list of aliases. */
+ first_time = TRUE;
+ for (i = 0; i < SVN_OPT_MAX_ALIASES; i++)
+ {
+ if (cmd->aliases[i] == NULL)
+ break;
+
+ if (first_time) {
+ SVN_ERR(svn_cmdline_fputs(" (", stream, pool));
+ first_time = FALSE;
+ }
+ else
+ SVN_ERR(svn_cmdline_fputs(", ", stream, pool));
+
+ SVN_ERR(svn_cmdline_fputs(cmd->aliases[i], stream, pool));
+ }
+
+ if (! first_time)
+ SVN_ERR(svn_cmdline_fputs(")", stream, pool));
+
+ if (help)
+ {
+ const apr_getopt_option_t *option;
+ const char *long_alias;
+ svn_boolean_t have_options = FALSE;
+
+ SVN_ERR(svn_cmdline_fprintf(stream, pool, ": %s", _(cmd->help)));
+
+ /* Loop over all valid option codes attached to the subcommand */
+ for (i = 0; i < SVN_OPT_MAX_OPTIONS; i++)
+ {
+ if (cmd->valid_options[i])
+ {
+ if (!have_options)
+ {
+ SVN_ERR(svn_cmdline_fputs(_("\nValid options:\n"),
+ stream, pool));
+ have_options = TRUE;
+ }
+
+ /* convert each option code into an option */
+ option = get_option_from_code(&long_alias, cmd->valid_options[i],
+ options_table, cmd, pool);
+
+ /* print the option's docstring */
+ if (option && option->description)
+ {
+ const char *optstr;
+ format_option(&optstr, option, long_alias, TRUE, pool);
+ SVN_ERR(svn_cmdline_fprintf(stream, pool, " %s\n",
+ optstr));
+ }
+ }
+ }
+ /* And global options too */
+ if (global_options && *global_options)
+ {
+ SVN_ERR(svn_cmdline_fputs(_("\nGlobal options:\n"),
+ stream, pool));
+ have_options = TRUE;
+
+ for (i = 0; global_options[i]; i++)
+ {
+
+ /* convert each option code into an option */
+ option = get_option_from_code(&long_alias, global_options[i],
+ options_table, cmd, pool);
+
+ /* print the option's docstring */
+ if (option && option->description)
+ {
+ const char *optstr;
+ format_option(&optstr, option, long_alias, TRUE, pool);
+ SVN_ERR(svn_cmdline_fprintf(stream, pool, " %s\n",
+ optstr));
+ }
+ }
+ }
+
+ if (have_options)
+ SVN_ERR(svn_cmdline_fprintf(stream, pool, "\n"));
+ }
+
+ return SVN_NO_ERROR;
+}
+
+/* The body for svn_opt_print_generic_help2() function with standard error
+ * handling semantic. Handling of errors implemented at caller side. */
+static svn_error_t *
+print_generic_help_body(const char *header,
+ const svn_opt_subcommand_desc2_t *cmd_table,
+ const apr_getopt_option_t *opt_table,
+ const char *footer,
+ apr_pool_t *pool, FILE *stream)
+{
+ int i = 0;
+
+ if (header)
+ SVN_ERR(svn_cmdline_fputs(header, stream, pool));
+
+ while (cmd_table[i].name)
+ {
+ SVN_ERR(svn_cmdline_fputs(" ", stream, pool));
+ SVN_ERR(print_command_info2(cmd_table + i, opt_table,
+ NULL, FALSE,
+ pool, stream));
+ SVN_ERR(svn_cmdline_fputs("\n", stream, pool));
+ i++;
+ }
+
+ SVN_ERR(svn_cmdline_fputs("\n", stream, pool));
+
+ if (footer)
+ SVN_ERR(svn_cmdline_fputs(footer, stream, pool));
+
+ return SVN_NO_ERROR;
+}
+
+void
+svn_opt_print_generic_help2(const char *header,
+ const svn_opt_subcommand_desc2_t *cmd_table,
+ const apr_getopt_option_t *opt_table,
+ const char *footer,
+ apr_pool_t *pool, FILE *stream)
+{
+ svn_error_t *err;
+
+ err = print_generic_help_body(header, cmd_table, opt_table, footer, pool,
+ stream);
+
+ /* Issue #3014:
+ * Don't print anything on broken pipes. The pipe was likely
+ * closed by the process at the other end. We expect that
+ * process to perform error reporting as necessary.
+ *
+ * ### This assumes that there is only one error in a chain for
+ * ### SVN_ERR_IO_PIPE_WRITE_ERROR. See svn_cmdline_fputs(). */
+ if (err && err->apr_err != SVN_ERR_IO_PIPE_WRITE_ERROR)
+ svn_handle_error2(err, stderr, FALSE, "svn: ");
+ svn_error_clear(err);
+}
+
+svn_boolean_t
+svn_opt_subcommand_takes_option3(const svn_opt_subcommand_desc2_t *command,
+ int option_code,
+ const int *global_options)
+{
+ apr_size_t i;
+
+ for (i = 0; i < SVN_OPT_MAX_OPTIONS; i++)
+ if (command->valid_options[i] == option_code)
+ return TRUE;
+
+ if (global_options)
+ for (i = 0; global_options[i]; i++)
+ if (global_options[i] == option_code)
+ return TRUE;
+
+ return FALSE;
+}
+
+svn_boolean_t
+svn_opt_subcommand_takes_option2(const svn_opt_subcommand_desc2_t *command,
+ int option_code)
+{
+ return svn_opt_subcommand_takes_option3(command,
+ option_code,
+ NULL);
+}
+
+svn_boolean_t
+svn_opt_subcommand_takes_option(const svn_opt_subcommand_desc_t *command,
+ int option_code)
+{
+ apr_size_t i;
+
+ for (i = 0; i < SVN_OPT_MAX_OPTIONS; i++)
+ if (command->valid_options[i] == option_code)
+ return TRUE;
+
+ return FALSE;
+}
+
+void
+svn_opt_subcommand_help3(const char *subcommand,
+ const svn_opt_subcommand_desc2_t *table,
+ const apr_getopt_option_t *options_table,
+ const int *global_options,
+ apr_pool_t *pool)
+{
+ const svn_opt_subcommand_desc2_t *cmd =
+ svn_opt_get_canonical_subcommand2(table, subcommand);
+ svn_error_t *err;
+
+ if (cmd)
+ err = print_command_info2(cmd, options_table, global_options,
+ TRUE, pool, stdout);
+ else
+ err = svn_cmdline_fprintf(stderr, pool,
+ _("\"%s\": unknown command.\n\n"), subcommand);
+
+ if (err) {
+ /* Issue #3014: Don't print anything on broken pipes. */
+ if (err->apr_err != SVN_ERR_IO_PIPE_WRITE_ERROR)
+ svn_handle_error2(err, stderr, FALSE, "svn: ");
+ svn_error_clear(err);
+ }
+}
+
void
svn_opt_subcommand_help2(const char *subcommand,
const svn_opt_subcommand_desc2_t *table,
@@ -522,6 +884,56 @@ svn_opt_args_to_target_array(apr_array_header_t **targets_p,
}
svn_error_t *
+svn_opt_print_help4(apr_getopt_t *os,
+ const char *pgm_name,
+ svn_boolean_t print_version,
+ svn_boolean_t quiet,
+ svn_boolean_t verbose,
+ const char *version_footer,
+ const char *header,
+ const svn_opt_subcommand_desc2_t *cmd_table,
+ const apr_getopt_option_t *option_table,
+ const int *global_options,
+ const char *footer,
+ apr_pool_t *pool)
+{
+ apr_array_header_t *targets = NULL;
+
+ if (os)
+ SVN_ERR(svn_opt_parse_all_args(&targets, os, pool));
+
+ if (os && targets->nelts) /* help on subcommand(s) requested */
+ {
+ int i;
+
+ for (i = 0; i < targets->nelts; i++)
+ {
+ svn_opt_subcommand_help3(APR_ARRAY_IDX(targets, i, const char *),
+ cmd_table, option_table,
+ global_options, pool);
+ }
+ }
+ else if (print_version) /* just --version */
+ {
+ SVN_ERR(svn_opt__print_version_info(pgm_name, version_footer,
+ svn_version_extended(verbose, pool),
+ quiet, verbose, pool));
+ }
+ else if (os && !targets->nelts) /* `-h', `--help', or `help' */
+ svn_opt_print_generic_help2(header,
+ cmd_table,
+ option_table,
+ footer,
+ pool,
+ stdout);
+ else /* unknown option or cmd */
+ SVN_ERR(svn_cmdline_fprintf(stderr, pool,
+ _("Type '%s help' for usage.\n"), pgm_name));
+
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
svn_opt_print_help3(apr_getopt_t *os,
const char *pgm_name,
svn_boolean_t print_version,
diff --git a/subversion/libsvn_subr/internal_statements.h b/subversion/libsvn_subr/internal_statements.h
index 5f8095f..f7ca6ca 100644
--- a/subversion/libsvn_subr/internal_statements.h
+++ b/subversion/libsvn_subr/internal_statements.h
@@ -1,4 +1,4 @@
-/* This file is automatically generated from internal_statements.sql and subversion/libsvn_subr/token-map.h.
+/* This file is automatically generated from internal_statements.sql and token-map.h.
* Do not edit this file -- edit the source and rerun gen-make.py */
#define STMT_INTERNAL_SAVEPOINT_SVN 0
diff --git a/subversion/libsvn_subr/io.c b/subversion/libsvn_subr/io.c
index a1bc29c..b071dd9 100644
--- a/subversion/libsvn_subr/io.c
+++ b/subversion/libsvn_subr/io.c
@@ -2546,9 +2546,10 @@ stringbuf_from_aprfile(svn_stringbuf_t **result,
{
apr_finfo_t finfo = { 0 };
- /* In some cases we get size 0 and no error for non files,
- so we also check for the name. (= cached in apr_file_t) */
- if (! apr_file_info_get(&finfo, APR_FINFO_SIZE, file) && finfo.fname)
+ /* In some cases we get size 0 and no error for non files, so we
+ also check for the name. (= cached in apr_file_t) and for FIFOs */
+ if (! apr_file_info_get(&finfo, APR_FINFO_SIZE | APR_FINFO_TYPE, file)
+ && finfo.fname && finfo.filetype != APR_PIPE)
{
/* we've got the file length. Now, read it in one go. */
svn_boolean_t eof;
@@ -2712,8 +2713,8 @@ svn_io_remove_dir(const char *path, apr_pool_t *pool)
directory scan. A previous workaround involving rewinddir is
problematic on Win32 and some NFS clients, notably NetBSD.
- See http://subversion.tigris.org/issues/show_bug.cgi?id=1896 and
- http://subversion.tigris.org/issues/show_bug.cgi?id=3501.
+ See https://issues.apache.org/jira/browse/SVN-1896 and
+ https://issues.apache.org/jira/browse/SVN-3501.
*/
/* Neither windows nor unix allows us to delete a non-empty
@@ -4636,7 +4637,7 @@ svn_io_dir_walk2(const char *dirname,
}
else if (finfo.filetype == APR_REG || finfo.filetype == APR_LNK)
{
- /* some other directory. pass it to the callback. */
+ /* a regular file or a symlink. pass it to the callback. */
SVN_ERR(entry_name_to_utf8(&name_utf8, finfo.name, dirname,
subpool));
full_path = svn_dirent_join(dirname, name_utf8, subpool);
diff --git a/subversion/libsvn_subr/lz4/lz4.c b/subversion/libsvn_subr/lz4/lz4.c
index d329064..405ba59 100644
--- a/subversion/libsvn_subr/lz4/lz4.c
+++ b/subversion/libsvn_subr/lz4/lz4.c
@@ -1,5 +1,5 @@
#include "svn_private_config.h"
-#if SVN_INTERNAL_LZ4
+#ifdef SVN_INTERNAL_LZ4
/*
LZ4 - Fast LZ compression algorithm
Copyright (C) 2011-2016, Yann Collet.
diff --git a/subversion/libsvn_subr/lz4/lz4internal.h b/subversion/libsvn_subr/lz4/lz4internal.h
index 02ba09d..cdc25e4 100644
--- a/subversion/libsvn_subr/lz4/lz4internal.h
+++ b/subversion/libsvn_subr/lz4/lz4internal.h
@@ -1,5 +1,5 @@
#include "svn_private_config.h"
-#if SVN_INTERNAL_LZ4
+#ifdef SVN_INTERNAL_LZ4
/*
* LZ4 - Fast LZ compression algorithm
* Header File
diff --git a/subversion/libsvn_subr/opt.c b/subversion/libsvn_subr/opt.c
index fd8c73a..aac1819 100644
--- a/subversion/libsvn_subr/opt.c
+++ b/subversion/libsvn_subr/opt.c
@@ -55,8 +55,8 @@
/*** Code. ***/
-const svn_opt_subcommand_desc2_t *
-svn_opt_get_canonical_subcommand2(const svn_opt_subcommand_desc2_t *table,
+const svn_opt_subcommand_desc3_t *
+svn_opt_get_canonical_subcommand3(const svn_opt_subcommand_desc3_t *table,
const char *cmd_name)
{
int i = 0;
@@ -80,9 +80,9 @@ svn_opt_get_canonical_subcommand2(const svn_opt_subcommand_desc2_t *table,
}
const apr_getopt_option_t *
-svn_opt_get_option_from_code2(int code,
+svn_opt_get_option_from_code3(int code,
const apr_getopt_option_t *option_table,
- const svn_opt_subcommand_desc2_t *command,
+ const svn_opt_subcommand_desc3_t *command,
apr_pool_t *pool)
{
apr_size_t i;
@@ -111,34 +111,19 @@ svn_opt_get_option_from_code2(int code,
return NULL;
}
-
-const apr_getopt_option_t *
-svn_opt_get_option_from_code(int code,
- const apr_getopt_option_t *option_table)
-{
- apr_size_t i;
-
- for (i = 0; option_table[i].optch; i++)
- if (option_table[i].optch == code)
- return &(option_table[i]);
-
- return NULL;
-}
-
-
-/* Like svn_opt_get_option_from_code2(), but also, if CODE appears a second
+/* Like svn_opt_get_option_from_code3(), but also, if CODE appears a second
* time in OPTION_TABLE with a different name, then set *LONG_ALIAS to that
* second name, else set it to NULL. */
static const apr_getopt_option_t *
-get_option_from_code(const char **long_alias,
- int code,
- const apr_getopt_option_t *option_table,
- const svn_opt_subcommand_desc2_t *command,
- apr_pool_t *pool)
+get_option_from_code3(const char **long_alias,
+ int code,
+ const apr_getopt_option_t *option_table,
+ const svn_opt_subcommand_desc3_t *command,
+ apr_pool_t *pool)
{
const apr_getopt_option_t *i;
const apr_getopt_option_t *opt
- = svn_opt_get_option_from_code2(code, option_table, command, pool);
+ = svn_opt_get_option_from_code3(code, option_table, command, pool);
/* Find a long alias in the table, if there is one. */
*long_alias = NULL;
@@ -205,7 +190,7 @@ svn_opt_format_option(const char **string,
svn_boolean_t
-svn_opt_subcommand_takes_option3(const svn_opt_subcommand_desc2_t *command,
+svn_opt_subcommand_takes_option4(const svn_opt_subcommand_desc3_t *command,
int option_code,
const int *global_options)
{
@@ -223,35 +208,12 @@ svn_opt_subcommand_takes_option3(const svn_opt_subcommand_desc2_t *command,
return FALSE;
}
-svn_boolean_t
-svn_opt_subcommand_takes_option2(const svn_opt_subcommand_desc2_t *command,
- int option_code)
-{
- return svn_opt_subcommand_takes_option3(command,
- option_code,
- NULL);
-}
-
-
-svn_boolean_t
-svn_opt_subcommand_takes_option(const svn_opt_subcommand_desc_t *command,
- int option_code)
-{
- apr_size_t i;
-
- for (i = 0; i < SVN_OPT_MAX_OPTIONS; i++)
- if (command->valid_options[i] == option_code)
- return TRUE;
-
- return FALSE;
-}
-
/* Print the canonical command name for CMD, and all its aliases, to
STREAM. If HELP is set, print CMD's help string too, in which case
obtain option usage from OPTIONS_TABLE. */
static svn_error_t *
-print_command_info2(const svn_opt_subcommand_desc2_t *cmd,
+print_command_info3(const svn_opt_subcommand_desc3_t *cmd,
const apr_getopt_option_t *options_table,
const int *global_options,
svn_boolean_t help,
@@ -290,7 +252,12 @@ print_command_info2(const svn_opt_subcommand_desc2_t *cmd,
const char *long_alias;
svn_boolean_t have_options = FALSE;
- SVN_ERR(svn_cmdline_fprintf(stream, pool, ": %s", _(cmd->help)));
+ SVN_ERR(svn_cmdline_fprintf(stream, pool, ": "));
+
+ for (i = 0; i < SVN_OPT_MAX_PARAGRAPHS && cmd->help[i]; i++)
+ {
+ SVN_ERR(svn_cmdline_fprintf(stream, pool, "%s", _(cmd->help[i])));
+ }
/* Loop over all valid option codes attached to the subcommand */
for (i = 0; i < SVN_OPT_MAX_OPTIONS; i++)
@@ -305,8 +272,8 @@ print_command_info2(const svn_opt_subcommand_desc2_t *cmd,
}
/* convert each option code into an option */
- option = get_option_from_code(&long_alias, cmd->valid_options[i],
- options_table, cmd, pool);
+ option = get_option_from_code3(&long_alias, cmd->valid_options[i],
+ options_table, cmd, pool);
/* print the option's docstring */
if (option && option->description)
@@ -329,8 +296,8 @@ print_command_info2(const svn_opt_subcommand_desc2_t *cmd,
{
/* convert each option code into an option */
- option = get_option_from_code(&long_alias, global_options[i],
- options_table, cmd, pool);
+ option = get_option_from_code3(&long_alias, global_options[i],
+ options_table, cmd, pool);
/* print the option's docstring */
if (option && option->description)
@@ -350,14 +317,14 @@ print_command_info2(const svn_opt_subcommand_desc2_t *cmd,
return SVN_NO_ERROR;
}
-/* The body for svn_opt_print_generic_help2() function with standard error
+/* The body for svn_opt_print_generic_help3() function with standard error
* handling semantic. Handling of errors implemented at caller side. */
static svn_error_t *
-print_generic_help_body(const char *header,
- const svn_opt_subcommand_desc2_t *cmd_table,
- const apr_getopt_option_t *opt_table,
- const char *footer,
- apr_pool_t *pool, FILE *stream)
+print_generic_help_body3(const char *header,
+ const svn_opt_subcommand_desc3_t *cmd_table,
+ const apr_getopt_option_t *opt_table,
+ const char *footer,
+ apr_pool_t *pool, FILE *stream)
{
int i = 0;
@@ -367,7 +334,7 @@ print_generic_help_body(const char *header,
while (cmd_table[i].name)
{
SVN_ERR(svn_cmdline_fputs(" ", stream, pool));
- SVN_ERR(print_command_info2(cmd_table + i, opt_table,
+ SVN_ERR(print_command_info3(cmd_table + i, opt_table,
NULL, FALSE,
pool, stream));
SVN_ERR(svn_cmdline_fputs("\n", stream, pool));
@@ -383,16 +350,16 @@ print_generic_help_body(const char *header,
}
void
-svn_opt_print_generic_help2(const char *header,
- const svn_opt_subcommand_desc2_t *cmd_table,
+svn_opt_print_generic_help3(const char *header,
+ const svn_opt_subcommand_desc3_t *cmd_table,
const apr_getopt_option_t *opt_table,
const char *footer,
apr_pool_t *pool, FILE *stream)
{
svn_error_t *err;
- err = print_generic_help_body(header, cmd_table, opt_table, footer, pool,
- stream);
+ err = print_generic_help_body3(header, cmd_table, opt_table, footer, pool,
+ stream);
/* Issue #3014:
* Don't print anything on broken pipes. The pipe was likely
@@ -408,18 +375,18 @@ svn_opt_print_generic_help2(const char *header,
void
-svn_opt_subcommand_help3(const char *subcommand,
- const svn_opt_subcommand_desc2_t *table,
+svn_opt_subcommand_help4(const char *subcommand,
+ const svn_opt_subcommand_desc3_t *table,
const apr_getopt_option_t *options_table,
const int *global_options,
apr_pool_t *pool)
{
- const svn_opt_subcommand_desc2_t *cmd =
- svn_opt_get_canonical_subcommand2(table, subcommand);
+ const svn_opt_subcommand_desc3_t *cmd =
+ svn_opt_get_canonical_subcommand3(table, subcommand);
svn_error_t *err;
if (cmd)
- err = print_command_info2(cmd, options_table, global_options,
+ err = print_command_info3(cmd, options_table, global_options,
TRUE, pool, stdout);
else
err = svn_cmdline_fprintf(stderr, pool,
@@ -1194,14 +1161,14 @@ svn_opt__print_version_info(const char *pgm_name,
}
svn_error_t *
-svn_opt_print_help4(apr_getopt_t *os,
+svn_opt_print_help5(apr_getopt_t *os,
const char *pgm_name,
svn_boolean_t print_version,
svn_boolean_t quiet,
svn_boolean_t verbose,
const char *version_footer,
const char *header,
- const svn_opt_subcommand_desc2_t *cmd_table,
+ const svn_opt_subcommand_desc3_t *cmd_table,
const apr_getopt_option_t *option_table,
const int *global_options,
const char *footer,
@@ -1218,7 +1185,7 @@ svn_opt_print_help4(apr_getopt_t *os,
for (i = 0; i < targets->nelts; i++)
{
- svn_opt_subcommand_help3(APR_ARRAY_IDX(targets, i, const char *),
+ svn_opt_subcommand_help4(APR_ARRAY_IDX(targets, i, const char *),
cmd_table, option_table,
global_options, pool);
}
@@ -1230,7 +1197,7 @@ svn_opt_print_help4(apr_getopt_t *os,
quiet, verbose, pool));
}
else if (os && !targets->nelts) /* `-h', `--help', or `help' */
- svn_opt_print_generic_help2(header,
+ svn_opt_print_generic_help3(header,
cmd_table,
option_table,
footer,
diff --git a/subversion/libsvn_subr/ssl_client_cert_pw_providers.c b/subversion/libsvn_subr/ssl_client_cert_pw_providers.c
index 1626750..2fcfc8e 100644
--- a/subversion/libsvn_subr/ssl_client_cert_pw_providers.c
+++ b/subversion/libsvn_subr/ssl_client_cert_pw_providers.c
@@ -36,7 +36,7 @@
#include "svn_private_config.h"
/*-----------------------------------------------------------------------*/
-/* File provider */
+/* File password provider */
/*-----------------------------------------------------------------------*/
/* Baton type for the ssl client cert passphrase provider. */
@@ -51,6 +51,13 @@ typedef struct ssl_client_cert_pw_file_provider_baton_t
apr_hash_t *plaintext_answers;
} ssl_client_cert_pw_file_provider_baton_t;
+/* The client cert password provider only deals with a password and
+ realm (the client cert filename), there is no username. The gnome
+ keyring backend based on libsecret requires a non-NULL username so
+ we have to invent one. An empty string is acceptable and doesn't
+ change the value stored by the kwallet backend. */
+#define DUMMY_USERNAME ""
+
/* This implements the svn_auth__password_get_t interface.
Set **PASSPHRASE to the plaintext passphrase retrieved from CREDS;
ignore other parameters. */
@@ -132,7 +139,8 @@ svn_auth__ssl_client_cert_pw_cache_get(void **credentials_p,
svn_boolean_t done;
SVN_ERR(passphrase_get(&done, &password, creds_hash, realmstring,
- NULL, parameters, non_interactive, pool));
+ DUMMY_USERNAME, parameters, non_interactive,
+ pool));
if (!done)
password = NULL;
}
@@ -293,7 +301,7 @@ svn_auth__ssl_client_cert_pw_cache_set(svn_boolean_t *saved,
if (may_save_passphrase)
{
SVN_ERR(passphrase_set(saved, creds_hash, realmstring,
- NULL, creds->password, parameters,
+ DUMMY_USERNAME, creds->password, parameters,
non_interactive, pool));
if (*saved && passtype)
diff --git a/subversion/libsvn_subr/stream.c b/subversion/libsvn_subr/stream.c
index 609d7af..18b7a9b 100644
--- a/subversion/libsvn_subr/stream.c
+++ b/subversion/libsvn_subr/stream.c
@@ -1468,10 +1468,10 @@ seek_handler_checksum(void *baton, const svn_stream_mark_t *mark)
else
{
if (btn->read_ctx)
- svn_checksum_ctx_reset(btn->read_ctx);
+ SVN_ERR(svn_checksum_ctx_reset(btn->read_ctx));
if (btn->write_ctx)
- svn_checksum_ctx_reset(btn->write_ctx);
+ SVN_ERR(svn_checksum_ctx_reset(btn->write_ctx));
SVN_ERR(svn_stream_reset(btn->proxy));
}
diff --git a/subversion/libsvn_subr/utf.c b/subversion/libsvn_subr/utf.c
index a0b0dc7..5164f64 100644
--- a/subversion/libsvn_subr/utf.c
+++ b/subversion/libsvn_subr/utf.c
@@ -960,7 +960,7 @@ svn_utf__cstring_from_utf8_fuzzy(const char *src,
/* ### Check the client locale, maybe we can avoid that second
* conversion! See Ulrich Drepper's patch at
- * http://subversion.tigris.org/issues/show_bug.cgi?id=807.
+ * https://issues.apache.org/jira/browse/SVN-807.
*/
}
diff --git a/subversion/libsvn_subr/x509info.c b/subversion/libsvn_subr/x509info.c
index 9cd4372..a24611c 100644
--- a/subversion/libsvn_subr/x509info.c
+++ b/subversion/libsvn_subr/x509info.c
@@ -128,7 +128,7 @@ typedef struct asn1_oid {
const char *long_label;
} asn1_oid;
-#define CONSTANT_PAIR(c) (unsigned char *)(c), sizeof((c)) - 1
+#define CONSTANT_PAIR(c) (const unsigned char *)(c), sizeof((c)) - 1
static const asn1_oid asn1_oids[] = {
{ CONSTANT_PAIR(SVN_X509_OID_COMMON_NAME), "CN", "commonName" },
diff --git a/subversion/libsvn_wc/README b/subversion/libsvn_wc/README
index b5fc529..9a30633 100644
--- a/subversion/libsvn_wc/README
+++ b/subversion/libsvn_wc/README
@@ -94,6 +94,9 @@ copies.
.svn/wc.db /* SQLite database containing node metadata. */
pristine/ /* Sharded directory containing base files. */
tmp/ /* Local tmp area. */
+ experimental/ /* Data for experimental features. */
+ entries /* Stub file. */
+ format /* Stub file. */
`wc.db':
A self-contained SQLite database containing all the metadata Subversion
@@ -109,6 +112,13 @@ copies.
Pristines are used for sending diffs back to the server, etc.
+`experimental':
+ Experimental (unstable) features store their data here.
+
+`entries', `format':
+ These stub files exist only to enable a pre-1.7 client to yield a clearer
+ error message.
+
How the client applies an update delta
--------------------------------------
diff --git a/subversion/libsvn_wc/conflicts.c b/subversion/libsvn_wc/conflicts.c
index 606710c..f46ec9d 100644
--- a/subversion/libsvn_wc/conflicts.c
+++ b/subversion/libsvn_wc/conflicts.c
@@ -539,6 +539,7 @@ svn_wc__conflict_skel_add_tree_conflict(svn_skel_t *conflict_skel,
svn_wc_conflict_reason_t reason,
svn_wc_conflict_action_t action,
const char *move_src_op_root_abspath,
+ const char *move_dst_op_root_abspath,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
{
@@ -555,18 +556,33 @@ svn_wc__conflict_skel_add_tree_conflict(svn_skel_t *conflict_skel,
tree_conflict = svn_skel__make_empty_list(result_pool);
- if (reason == svn_wc_conflict_reason_moved_away
- && move_src_op_root_abspath)
+ if (reason == svn_wc_conflict_reason_moved_away)
{
- const char *move_src_op_root_relpath;
+ if (move_dst_op_root_abspath)
+ {
+ const char *move_dst_op_root_relpath;
- SVN_ERR(svn_wc__db_to_relpath(&move_src_op_root_relpath,
- db, wri_abspath,
- move_src_op_root_abspath,
- result_pool, scratch_pool));
+ SVN_ERR(svn_wc__db_to_relpath(&move_dst_op_root_relpath,
+ db, wri_abspath,
+ move_dst_op_root_abspath,
+ result_pool, scratch_pool));
- svn_skel__prepend_str(move_src_op_root_relpath, tree_conflict,
- result_pool);
+ svn_skel__prepend_str(move_dst_op_root_relpath, tree_conflict,
+ result_pool);
+ }
+
+ if (move_src_op_root_abspath)
+ {
+ const char *move_src_op_root_relpath;
+
+ SVN_ERR(svn_wc__db_to_relpath(&move_src_op_root_relpath,
+ db, wri_abspath,
+ move_src_op_root_abspath,
+ result_pool, scratch_pool));
+
+ svn_skel__prepend_str(move_src_op_root_relpath, tree_conflict,
+ result_pool);
+ }
}
svn_skel__prepend_str(svn_token__to_word(action_map, action),
@@ -932,6 +948,7 @@ svn_error_t *
svn_wc__conflict_read_tree_conflict(svn_wc_conflict_reason_t *reason,
svn_wc_conflict_action_t *action,
const char **move_src_op_root_abspath,
+ const char **move_dst_op_root_abspath,
svn_wc__db_t *db,
const char *wri_abspath,
const svn_skel_t *conflict_skel,
@@ -981,10 +998,10 @@ svn_wc__conflict_read_tree_conflict(svn_wc_conflict_reason_t *reason,
c = c->next;
- if (move_src_op_root_abspath)
+ if (move_src_op_root_abspath || move_dst_op_root_abspath)
{
/* Only set for update and switch tree conflicts */
- if (c && is_moved_away)
+ if (c && is_moved_away && move_src_op_root_abspath)
{
const char *move_src_op_root_relpath
= apr_pstrmemdup(scratch_pool, c->data, c->len);
@@ -994,8 +1011,25 @@ svn_wc__conflict_read_tree_conflict(svn_wc_conflict_reason_t *reason,
move_src_op_root_relpath,
result_pool, scratch_pool));
}
- else
+ else if (move_src_op_root_abspath)
*move_src_op_root_abspath = NULL;
+
+ if (c)
+ c = c->next;
+
+ if (c && is_moved_away && move_dst_op_root_abspath)
+ {
+ const char *move_dst_op_root_relpath
+ = apr_pstrmemdup(scratch_pool, c->data, c->len);
+
+ SVN_ERR(svn_wc__db_from_relpath(move_dst_op_root_abspath,
+ db, wri_abspath,
+ move_dst_op_root_relpath,
+ result_pool, scratch_pool));
+ }
+ else if (move_dst_op_root_abspath)
+ *move_dst_op_root_abspath = NULL;
+
}
return SVN_NO_ERROR;
@@ -1801,7 +1835,7 @@ read_tree_conflict_desc(svn_wc_conflict_description2_t **desc,
svn_wc_conflict_action_t action;
SVN_ERR(svn_wc__conflict_read_tree_conflict(
- &reason, &action, NULL,
+ &reason, &action, NULL, NULL,
db, local_abspath, conflict_skel, scratch_pool, scratch_pool));
if (reason == svn_wc_conflict_reason_missing)
@@ -2676,7 +2710,7 @@ resolve_tree_conflict_on_node(svn_boolean_t *did_resolve,
SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, &action,
&src_op_root_abspath,
- db, local_abspath,
+ NULL, db, local_abspath,
conflicts,
scratch_pool, scratch_pool));
@@ -2748,6 +2782,7 @@ resolve_tree_conflict_on_node(svn_boolean_t *did_resolve,
SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, &action,
&src_op_root_abspath,
+ NULL,
db, local_abspath,
new_conflicts,
scratch_pool,
@@ -3483,7 +3518,7 @@ svn_wc__conflict_tree_update_break_moved_away(svn_wc_context_t *wc_ctx,
return SVN_NO_ERROR;
SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, &action,
- &src_op_root_abspath,
+ &src_op_root_abspath, NULL,
wc_ctx->db, local_abspath,
conflict_skel,
scratch_pool, scratch_pool));
@@ -3569,7 +3604,7 @@ svn_wc__conflict_tree_update_raise_moved_away(svn_wc_context_t *wc_ctx,
if (!tree_conflicted)
return SVN_NO_ERROR;
- SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, &action, NULL,
+ SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, &action, NULL, NULL,
wc_ctx->db, local_abspath,
conflict_skel,
scratch_pool, scratch_pool));
@@ -3648,7 +3683,7 @@ svn_wc__conflict_tree_update_moved_away_node(svn_wc_context_t *wc_ctx,
return SVN_NO_ERROR;
SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, &action,
- &src_op_root_abspath,
+ &src_op_root_abspath, NULL,
wc_ctx->db, local_abspath,
conflict_skel,
scratch_pool, scratch_pool));
@@ -3734,8 +3769,8 @@ svn_wc__conflict_tree_update_incoming_move(svn_wc_context_t *wc_ctx,
return SVN_NO_ERROR;
SVN_ERR(svn_wc__conflict_read_tree_conflict(&local_change, &incoming_change,
- NULL, wc_ctx->db, local_abspath,
- conflict_skel,
+ NULL, NULL, wc_ctx->db,
+ local_abspath, conflict_skel,
scratch_pool, scratch_pool));
/* Make sure the expected conflict is recorded. */
@@ -3803,8 +3838,8 @@ svn_wc__conflict_tree_update_local_add(svn_wc_context_t *wc_ctx,
return SVN_NO_ERROR;
SVN_ERR(svn_wc__conflict_read_tree_conflict(&local_change, &incoming_change,
- NULL, wc_ctx->db, local_abspath,
- conflict_skel,
+ NULL, NULL, wc_ctx->db,
+ local_abspath, conflict_skel,
scratch_pool, scratch_pool));
/* Make sure the expected conflict is recorded. */
@@ -3853,9 +3888,9 @@ svn_wc__guess_incoming_move_target_nodes(apr_array_header_t **possible_targets,
apr_size_t longest_ancestor_len = 0;
*possible_targets = apr_array_make(result_pool, 1, sizeof(const char *));
- SVN_ERR(svn_wc__find_repos_node_in_wc(&candidates, wc_ctx->db, victim_abspath,
- moved_to_repos_relpath,
- scratch_pool, scratch_pool));
+ SVN_ERR(svn_wc__db_find_repos_node_in_wc(&candidates, wc_ctx->db, victim_abspath,
+ moved_to_repos_relpath,
+ scratch_pool, scratch_pool));
/* Find a "useful move target" node in our set of candidates.
* Since there is no way to be certain, filter out nodes which seem
diff --git a/subversion/libsvn_wc/conflicts.h b/subversion/libsvn_wc/conflicts.h
index 0a9324b..d4a6742 100644
--- a/subversion/libsvn_wc/conflicts.h
+++ b/subversion/libsvn_wc/conflicts.h
@@ -219,6 +219,11 @@ svn_wc__conflict_skel_add_prop_conflict(svn_skel_t *conflict_skel,
MOVE_SRC_OP_ROOT_ABSPATH should be A for a conflict associated
with (1), MOVE_SRC_OP_ROOT_ABSPATH should be A/B for a conflict
associated with (2).
+ MOVE_DST_OP_ROOT_ABSPATH is the op-root of the move target (i.e. the
+ op-root of the corresponding copy). This needs to be stored because
+ moves in the NODE table do not always persist after an update, while
+ the conflict resolver may need information about the pre-update state
+ of the move.
It is an error to add another tree conflict to a conflict skel that
already contains a tree conflict. (It is not an error, at this level,
@@ -233,6 +238,7 @@ svn_wc__conflict_skel_add_tree_conflict(svn_skel_t *conflict_skel,
svn_wc_conflict_reason_t local_change,
svn_wc_conflict_action_t incoming_change,
const char *move_src_op_root_abspath,
+ const char *move_dst_op_root_abspath,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool);
@@ -364,6 +370,7 @@ svn_error_t *
svn_wc__conflict_read_tree_conflict(svn_wc_conflict_reason_t *local_change,
svn_wc_conflict_action_t *incoming_change,
const char **move_src_op_root_abspath,
+ const char **move_dst_op_root_abspath,
svn_wc__db_t *db,
const char *wri_abspath,
const svn_skel_t *conflict_skel,
diff --git a/subversion/libsvn_wc/deprecated.c b/subversion/libsvn_wc/deprecated.c
index e54a86d..379564b 100644
--- a/subversion/libsvn_wc/deprecated.c
+++ b/subversion/libsvn_wc/deprecated.c
@@ -1091,6 +1091,33 @@ svn_wc_add(const char *path,
/*** From revert.c ***/
svn_error_t *
+svn_wc_revert5(svn_wc_context_t *wc_ctx,
+ const char *local_abspath,
+ svn_depth_t depth,
+ svn_boolean_t use_commit_times,
+ const apr_array_header_t *changelist_filter,
+ svn_boolean_t clear_changelists,
+ svn_boolean_t metadata_only,
+ svn_cancel_func_t cancel_func,
+ void *cancel_baton,
+ svn_wc_notify_func2_t notify_func,
+ void *notify_baton,
+ apr_pool_t *scratch_pool)
+{
+ SVN_ERR(svn_wc_revert6(wc_ctx, local_abspath,
+ depth,
+ use_commit_times,
+ changelist_filter,
+ clear_changelists,
+ metadata_only,
+ TRUE /*added_keep_local*/,
+ cancel_func, cancel_baton,
+ notify_func, notify_baton,
+ scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
svn_wc_revert4(svn_wc_context_t *wc_ctx,
const char *local_abspath,
svn_depth_t depth,
@@ -2069,8 +2096,7 @@ svn_wc_get_diff_editor6(const svn_delta_editor_t **editor,
result_pool, scratch_pool));
if (reverse_order)
- diff_processor = svn_diff__tree_processor_reverse_create(
- diff_processor, NULL, result_pool);
+ diff_processor = svn_diff__tree_processor_reverse_create(diff_processor, result_pool);
if (! show_copies_as_adds)
diff_processor = svn_diff__tree_processor_copy_as_changed_create(
diff --git a/subversion/libsvn_wc/diff_local.c b/subversion/libsvn_wc/diff_local.c
index 61ec067..08cdced 100644
--- a/subversion/libsvn_wc/diff_local.c
+++ b/subversion/libsvn_wc/diff_local.c
@@ -433,8 +433,7 @@ diff_status_callback(void *baton,
/* Public Interface */
svn_error_t *
-svn_wc__diff7(const char **root_relpath,
- svn_boolean_t *root_is_dir,
+svn_wc__diff7(svn_boolean_t anchor_at_given_paths,
svn_wc_context_t *wc_ctx,
const char *local_abspath,
svn_depth_t depth,
@@ -459,26 +458,30 @@ svn_wc__diff7(const char **root_relpath,
eb.anchor_abspath = local_abspath;
- if (root_relpath)
+ if (anchor_at_given_paths)
{
+ /* Anchor the underlying diff processor at the parent of
+ LOCAL_ABSPATH (if possible), and adjust so the outgoing
+ DIFF_PROCESSOR is always anchored at LOCAL_ABSPATH. */
+ /* ### Why anchor the underlying diff processor at the parent? */
svn_boolean_t is_wcroot;
SVN_ERR(svn_wc__db_is_wcroot(&is_wcroot,
wc_ctx->db, local_abspath, scratch_pool));
if (!is_wcroot)
- eb.anchor_abspath = svn_dirent_dirname(local_abspath, scratch_pool);
+ {
+ const char *relpath;
+
+ eb.anchor_abspath = svn_dirent_dirname(local_abspath, scratch_pool);
+ relpath = svn_dirent_basename(local_abspath, NULL);
+ diff_processor = svn_diff__tree_processor_filter_create(
+ diff_processor, relpath, scratch_pool);
+ }
}
else if (kind != svn_node_dir)
eb.anchor_abspath = svn_dirent_dirname(local_abspath, scratch_pool);
- if (root_relpath)
- *root_relpath = apr_pstrdup(result_pool,
- svn_dirent_skip_ancestor(eb.anchor_abspath,
- local_abspath));
- if (root_is_dir)
- *root_is_dir = (kind == svn_node_dir);
-
/* Apply changelist filtering to the output */
if (changelist_filter && changelist_filter->nelts)
{
@@ -572,7 +575,7 @@ svn_wc_diff6(svn_wc_context_t *wc_ctx,
processor = svn_diff__tree_processor_copy_as_changed_create(processor,
scratch_pool);
- return svn_error_trace(svn_wc__diff7(NULL, NULL,
+ return svn_error_trace(svn_wc__diff7(FALSE,
wc_ctx, local_abspath,
depth,
ignore_ancestry,
diff --git a/subversion/libsvn_wc/node.c b/subversion/libsvn_wc/node.c
index 5864776..2a6a185 100644
--- a/subversion/libsvn_wc/node.c
+++ b/subversion/libsvn_wc/node.c
@@ -1126,3 +1126,17 @@ svn_wc__node_was_moved_here(const char **moved_from_abspath,
return SVN_NO_ERROR;
}
+
+svn_error_t *
+svn_wc__find_working_nodes_with_basename(apr_array_header_t **abspaths,
+ const char *wri_abspath,
+ const char *basename,
+ svn_node_kind_t kind,
+ svn_wc_context_t *wc_ctx,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ return svn_error_trace(svn_wc__db_find_working_nodes_with_basename(
+ abspaths, wc_ctx->db, wri_abspath, basename, kind,
+ result_pool, scratch_pool));
+}
diff --git a/subversion/libsvn_wc/props.c b/subversion/libsvn_wc/props.c
index f56899d..b314a34 100644
--- a/subversion/libsvn_wc/props.c
+++ b/subversion/libsvn_wc/props.c
@@ -2236,7 +2236,9 @@ svn_wc_canonicalize_svn_prop(const svn_string_t **propval_p,
if (duplicate_targets->nelts > 1)
{
more_str = apr_psprintf(/*scratch_*/pool,
- _(" (%d more duplicate targets found)"),
+ Q_(" (%d more duplicate target found)",
+ " (%d more duplicate targets found)",
+ duplicate_targets->nelts - 1),
duplicate_targets->nelts - 1);
}
return svn_error_createf(
diff --git a/subversion/libsvn_wc/questions.c b/subversion/libsvn_wc/questions.c
index 0858363..c248f5d 100644
--- a/subversion/libsvn_wc/questions.c
+++ b/subversion/libsvn_wc/questions.c
@@ -475,7 +475,7 @@ internal_conflicted_p(svn_boolean_t *text_conflicted_p,
svn_wc_conflict_action_t action;
SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, &action, NULL,
- db, local_abspath,
+ NULL, db, local_abspath,
conflicts,
scratch_pool,
scratch_pool));
diff --git a/subversion/libsvn_wc/revert.c b/subversion/libsvn_wc/revert.c
index bba1799..fad45bb 100644
--- a/subversion/libsvn_wc/revert.c
+++ b/subversion/libsvn_wc/revert.c
@@ -285,6 +285,7 @@ revert_restore(svn_boolean_t *run_wq,
svn_boolean_t metadata_only,
svn_boolean_t use_commit_times,
svn_boolean_t revert_root,
+ svn_boolean_t added_keep_local,
const struct svn_wc__db_info_t *info,
svn_cancel_func_t cancel_func,
void *cancel_baton,
@@ -344,8 +345,9 @@ revert_restore(svn_boolean_t *run_wq,
}
else
{
- if (!copied_here)
+ if (added_keep_local && !copied_here)
{
+ /* It is a plain add, and we want to keep the local file/dir. */
if (notify_func && notify_required)
notify_func(notify_baton,
svn_wc_create_notify(local_abspath,
@@ -359,8 +361,17 @@ revert_restore(svn_boolean_t *run_wq,
scratch_pool));
return SVN_NO_ERROR;
}
+ else if (!copied_here)
+ {
+ /* It is a plain add, and we don't want to keep the local file/dir. */
+ status = svn_wc__db_status_not_present;
+ kind = svn_node_none;
+ recorded_size = SVN_INVALID_FILESIZE;
+ recorded_time = 0;
+ }
else
{
+ /* It is a copy, so we don't want to keep the local file/dir. */
/* ### Initialise to values which prevent the code below from
* ### trying to restore anything to disk.
* ### 'status' should be status_unknown but that doesn't exist. */
@@ -429,6 +440,7 @@ revert_restore(svn_boolean_t *run_wq,
SVN_ERR(revert_restore(run_wq,
db, child_abspath, depth, metadata_only,
use_commit_times, FALSE /* revert root */,
+ added_keep_local,
apr_hash_this_val(hi),
cancel_func, cancel_baton,
notify_func, notify_baton,
@@ -536,11 +548,7 @@ revert_wc_data(svn_boolean_t *run_wq,
/* If we expect a versioned item to be present then check that any
item on disk matches the versioned item, if it doesn't match then
fix it or delete it. */
- if (on_disk != svn_node_none
- && status != svn_wc__db_status_server_excluded
- && status != svn_wc__db_status_deleted
- && status != svn_wc__db_status_excluded
- && status != svn_wc__db_status_not_present)
+ if (on_disk != svn_node_none)
{
if (on_disk == svn_node_dir && kind != svn_node_dir)
{
@@ -560,7 +568,11 @@ revert_wc_data(svn_boolean_t *run_wq,
on_disk = svn_node_none;
}
}
- else if (on_disk == svn_node_file)
+ else if (on_disk == svn_node_file
+ && status != svn_wc__db_status_server_excluded
+ && status != svn_wc__db_status_deleted
+ && status != svn_wc__db_status_excluded
+ && status != svn_wc__db_status_not_present)
{
svn_boolean_t modified;
apr_hash_t *props;
@@ -712,6 +724,7 @@ revert(svn_wc__db_t *db,
svn_boolean_t use_commit_times,
svn_boolean_t clear_changelists,
svn_boolean_t metadata_only,
+ svn_boolean_t added_keep_local,
svn_cancel_func_t cancel_func,
void *cancel_baton,
svn_wc_notify_func2_t notify_func,
@@ -762,6 +775,7 @@ revert(svn_wc__db_t *db,
err = svn_error_trace(
revert_restore(&run_queue, db, local_abspath, depth, metadata_only,
use_commit_times, TRUE /* revert root */,
+ added_keep_local,
info, cancel_func, cancel_baton,
notify_func, notify_baton,
scratch_pool));
@@ -791,6 +805,7 @@ revert_changelist(svn_wc__db_t *db,
apr_hash_t *changelist_hash,
svn_boolean_t clear_changelists,
svn_boolean_t metadata_only,
+ svn_boolean_t added_keep_local,
svn_cancel_func_t cancel_func,
void *cancel_baton,
svn_wc_notify_func2_t notify_func,
@@ -809,7 +824,7 @@ revert_changelist(svn_wc__db_t *db,
scratch_pool))
SVN_ERR(revert(db, local_abspath,
svn_depth_empty, use_commit_times, clear_changelists,
- metadata_only,
+ metadata_only, added_keep_local,
cancel_func, cancel_baton,
notify_func, notify_baton,
scratch_pool));
@@ -845,6 +860,7 @@ revert_changelist(svn_wc__db_t *db,
SVN_ERR(revert_changelist(db, child_abspath, depth,
use_commit_times, changelist_hash,
clear_changelists, metadata_only,
+ added_keep_local,
cancel_func, cancel_baton,
notify_func, notify_baton,
iterpool));
@@ -871,6 +887,7 @@ revert_partial(svn_wc__db_t *db,
svn_boolean_t use_commit_times,
svn_boolean_t clear_changelists,
svn_boolean_t metadata_only,
+ svn_boolean_t added_keep_local,
svn_cancel_func_t cancel_func,
void *cancel_baton,
svn_wc_notify_func2_t notify_func,
@@ -892,6 +909,7 @@ revert_partial(svn_wc__db_t *db,
children. */
SVN_ERR(revert(db, local_abspath, svn_depth_empty,
use_commit_times, clear_changelists, metadata_only,
+ added_keep_local,
cancel_func, cancel_baton,
notify_func, notify_baton, iterpool));
@@ -926,7 +944,7 @@ revert_partial(svn_wc__db_t *db,
/* Revert just this node (depth=empty). */
SVN_ERR(revert(db, child_abspath,
svn_depth_empty, use_commit_times, clear_changelists,
- metadata_only,
+ metadata_only, added_keep_local,
cancel_func, cancel_baton,
notify_func, notify_baton,
iterpool));
@@ -939,13 +957,14 @@ revert_partial(svn_wc__db_t *db,
svn_error_t *
-svn_wc_revert5(svn_wc_context_t *wc_ctx,
+svn_wc_revert6(svn_wc_context_t *wc_ctx,
const char *local_abspath,
svn_depth_t depth,
svn_boolean_t use_commit_times,
const apr_array_header_t *changelist_filter,
svn_boolean_t clear_changelists,
svn_boolean_t metadata_only,
+ svn_boolean_t added_keep_local,
svn_cancel_func_t cancel_func,
void *cancel_baton,
svn_wc_notify_func2_t notify_func,
@@ -963,6 +982,7 @@ svn_wc_revert5(svn_wc_context_t *wc_ctx,
changelist_hash,
clear_changelists,
metadata_only,
+ added_keep_local,
cancel_func, cancel_baton,
notify_func, notify_baton,
scratch_pool));
@@ -972,6 +992,7 @@ svn_wc_revert5(svn_wc_context_t *wc_ctx,
return svn_error_trace(revert(wc_ctx->db, local_abspath,
depth, use_commit_times, clear_changelists,
metadata_only,
+ added_keep_local,
cancel_func, cancel_baton,
notify_func, notify_baton,
scratch_pool));
@@ -986,6 +1007,7 @@ svn_wc_revert5(svn_wc_context_t *wc_ctx,
return svn_error_trace(revert_partial(wc_ctx->db, local_abspath,
depth, use_commit_times,
clear_changelists, metadata_only,
+ added_keep_local,
cancel_func, cancel_baton,
notify_func, notify_baton,
scratch_pool));
diff --git a/subversion/libsvn_wc/tree_conflicts.c b/subversion/libsvn_wc/tree_conflicts.c
index caf39ed..e846577 100644
--- a/subversion/libsvn_wc/tree_conflicts.c
+++ b/subversion/libsvn_wc/tree_conflicts.c
@@ -442,7 +442,7 @@ svn_wc__add_tree_conflict(svn_wc_context_t *wc_ctx,
conflict->local_abspath,
conflict->reason,
conflict->action,
- NULL,
+ NULL, NULL,
scratch_pool, scratch_pool));
switch (conflict->operation)
diff --git a/subversion/libsvn_wc/update_editor.c b/subversion/libsvn_wc/update_editor.c
index 4dca3af..5ac42fd 100644
--- a/subversion/libsvn_wc/update_editor.c
+++ b/subversion/libsvn_wc/update_editor.c
@@ -1235,9 +1235,11 @@ open_root(void *edit_baton,
db->shadowed = TRUE;
else if (have_work)
{
+ const char *move_dst_op_root_abspath;
const char *move_src_root_abspath;
- SVN_ERR(svn_wc__db_base_moved_to(NULL, NULL, &move_src_root_abspath,
+ SVN_ERR(svn_wc__db_base_moved_to(NULL, &move_dst_op_root_abspath,
+ &move_src_root_abspath,
NULL, eb->db, db->local_abspath,
pool, pool));
@@ -1252,7 +1254,8 @@ open_root(void *edit_baton,
tree_conflict, eb->db, move_src_root_abspath,
svn_wc_conflict_reason_moved_away,
svn_wc_conflict_action_edit,
- move_src_root_abspath, pool, pool));
+ move_src_root_abspath,
+ move_dst_op_root_abspath, pool, pool));
if (strcmp(db->local_abspath, move_src_root_abspath))
{
@@ -1345,6 +1348,7 @@ check_tree_conflict(svn_skel_t **pconflict,
svn_wc_conflict_reason_t reason = SVN_WC_CONFLICT_REASON_NONE;
svn_boolean_t modified = FALSE;
const char *move_src_op_root_abspath = NULL;
+ const char *move_dst_op_root_abspath = NULL;
*pconflict = NULL;
@@ -1397,8 +1401,8 @@ check_tree_conflict(svn_skel_t **pconflict,
case svn_wc__db_status_deleted:
{
- SVN_ERR(svn_wc__db_base_moved_to(NULL, NULL, NULL,
- &move_src_op_root_abspath,
+ SVN_ERR(svn_wc__db_base_moved_to(NULL, &move_dst_op_root_abspath,
+ NULL, &move_src_op_root_abspath,
eb->db, local_abspath,
scratch_pool, scratch_pool));
if (move_src_op_root_abspath)
@@ -1530,6 +1534,7 @@ check_tree_conflict(svn_skel_t **pconflict,
reason,
action,
move_src_op_root_abspath,
+ move_dst_op_root_abspath,
result_pool, scratch_pool));
return SVN_NO_ERROR;
@@ -2007,11 +2012,13 @@ add_directory(const char *path,
{
svn_wc_conflict_reason_t reason;
const char *move_src_op_root_abspath;
+ const char *move_dst_op_root_abspath;
/* So this deletion wasn't just a deletion, it is actually a
replacement. Let's install a better tree conflict. */
SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, NULL,
&move_src_op_root_abspath,
+ &move_dst_op_root_abspath,
eb->db,
db->local_abspath,
tree_conflict,
@@ -2024,6 +2031,7 @@ add_directory(const char *path,
eb->db, db->local_abspath,
reason, svn_wc_conflict_action_replace,
move_src_op_root_abspath,
+ move_dst_op_root_abspath,
db->pool, scratch_pool));
/* And now stop checking for conflicts here and just perform
@@ -2148,8 +2156,8 @@ add_directory(const char *path,
tree_conflict,
eb->db, db->local_abspath,
svn_wc_conflict_reason_unversioned,
- svn_wc_conflict_action_add, NULL,
- db->pool, scratch_pool));
+ svn_wc_conflict_action_add,
+ NULL, NULL, db->pool, scratch_pool));
db->edit_conflict = tree_conflict;
}
}
@@ -2336,7 +2344,7 @@ open_directory(const char *path,
db->edit_conflict = tree_conflict;
/* Other modifications wouldn't be a tree conflict */
- SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, NULL, NULL,
+ SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, NULL, NULL, NULL,
eb->db, db->local_abspath,
tree_conflict,
db->pool, db->pool));
@@ -3220,11 +3228,13 @@ add_file(const char *path,
{
svn_wc_conflict_reason_t reason;
const char *move_src_op_root_abspath;
+ const char *move_dst_op_root_abspath;
/* So this deletion wasn't just a deletion, it is actually a
replacement. Let's install a better tree conflict. */
SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, NULL,
&move_src_op_root_abspath,
+ &move_dst_op_root_abspath,
eb->db,
fb->local_abspath,
tree_conflict,
@@ -3237,6 +3247,7 @@ add_file(const char *path,
eb->db, fb->local_abspath,
reason, svn_wc_conflict_action_replace,
move_src_op_root_abspath,
+ move_dst_op_root_abspath,
fb->pool, scratch_pool));
/* And now stop checking for conflicts here and just perform
@@ -3363,7 +3374,7 @@ add_file(const char *path,
eb->db, fb->local_abspath,
svn_wc_conflict_reason_unversioned,
svn_wc_conflict_action_add,
- NULL,
+ NULL, NULL,
fb->pool, scratch_pool));
}
}
@@ -3528,7 +3539,7 @@ open_file(const char *path,
fb->edit_conflict = tree_conflict;
/* Other modifications wouldn't be a tree conflict */
- SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, NULL, NULL,
+ SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, NULL, NULL, NULL,
eb->db, fb->local_abspath,
tree_conflict,
scratch_pool, scratch_pool));
@@ -3797,7 +3808,7 @@ change_file_prop(void *file_baton,
eb->db, fb->local_abspath,
svn_wc_conflict_reason_edited,
svn_wc_conflict_action_replace,
- NULL,
+ NULL, NULL,
fb->pool, scratch_pool));
SVN_ERR(complete_conflict(fb->edit_conflict, fb->edit_baton,
diff --git a/subversion/libsvn_wc/upgrade.c b/subversion/libsvn_wc/upgrade.c
index 3b9ab3a..0a218c7 100644
--- a/subversion/libsvn_wc/upgrade.c
+++ b/subversion/libsvn_wc/upgrade.c
@@ -1237,7 +1237,7 @@ svn_wc__upgrade_conflict_skel_from_raw(svn_skel_t **conflicts,
db, wri_abspath,
tc->reason,
tc->action,
- NULL,
+ NULL, NULL,
scratch_pool,
scratch_pool));
diff --git a/subversion/libsvn_wc/wc-checks.h b/subversion/libsvn_wc/wc-checks.h
index bb9e549..162bca4 100644
--- a/subversion/libsvn_wc/wc-checks.h
+++ b/subversion/libsvn_wc/wc-checks.h
@@ -1,4 +1,4 @@
-/* This file is automatically generated from wc-checks.sql and /opt/svnrm/tempdir/subversion-1.10.2/subversion/libsvn_wc/token-map.h.
+/* This file is automatically generated from wc-checks.sql and token-map.h.
* Do not edit this file -- edit the source and rerun gen-make.py */
#define STMT_VERIFICATION_TRIGGERS 0
diff --git a/subversion/libsvn_wc/wc-metadata.h b/subversion/libsvn_wc/wc-metadata.h
index 7c7c78b..75e7503 100644
--- a/subversion/libsvn_wc/wc-metadata.h
+++ b/subversion/libsvn_wc/wc-metadata.h
@@ -1,4 +1,4 @@
-/* This file is automatically generated from wc-metadata.sql and /opt/svnrm/tempdir/subversion-1.10.2/subversion/libsvn_wc/token-map.h.
+/* This file is automatically generated from wc-metadata.sql and token-map.h.
* Do not edit this file -- edit the source and rerun gen-make.py */
#define STMT_CREATE_SCHEMA 0
diff --git a/subversion/libsvn_wc/wc-queries.h b/subversion/libsvn_wc/wc-queries.h
index b333e95..7518c43 100644
--- a/subversion/libsvn_wc/wc-queries.h
+++ b/subversion/libsvn_wc/wc-queries.h
@@ -1,4 +1,4 @@
-/* This file is automatically generated from wc-queries.sql and subversion/libsvn_wc/token-map.h.
+/* This file is automatically generated from wc-queries.sql and token-map.h.
* Do not edit this file -- edit the source and rerun gen-make.py */
#define STMT_SELECT_NODE_INFO 0
@@ -115,17 +115,31 @@
"LIMIT 1 " \
""
-#define STMT_SELECT_ACTUAL_NODE 10
-#define STMT_10_INFO {"STMT_SELECT_ACTUAL_NODE", NULL}
+#define STMT_SELECT_PRESENT_HIGHEST_WORKING_NODES_BY_BASENAME_AND_KIND 10
+#define STMT_10_INFO {"STMT_SELECT_PRESENT_HIGHEST_WORKING_NODES_BY_BASENAME_AND_KIND", NULL}
#define STMT_10 \
+ "SELECT presence, local_relpath " \
+ "FROM nodes n " \
+ "WHERE wc_id = ?1 AND local_relpath = (CASE WHEN (parent_relpath) = '' THEN (?2) WHEN (?2) = '' THEN (parent_relpath) ELSE (parent_relpath) || '/' || (?2) END) " \
+ " AND kind = ?3 " \
+ " AND presence in ('normal', 'incomplete') " \
+ " AND op_depth = (SELECT MAX(op_depth) " \
+ " FROM NODES w " \
+ " WHERE w.wc_id = ?1 " \
+ " AND w.local_relpath = n.local_relpath) " \
+ ""
+
+#define STMT_SELECT_ACTUAL_NODE 11
+#define STMT_11_INFO {"STMT_SELECT_ACTUAL_NODE", NULL}
+#define STMT_11 \
"SELECT changelist, properties, conflict_data " \
"FROM actual_node " \
"WHERE wc_id = ?1 AND local_relpath = ?2 " \
""
-#define STMT_SELECT_NODE_CHILDREN_INFO 11
-#define STMT_11_INFO {"STMT_SELECT_NODE_CHILDREN_INFO", NULL}
-#define STMT_11 \
+#define STMT_SELECT_NODE_CHILDREN_INFO 12
+#define STMT_12_INFO {"STMT_SELECT_NODE_CHILDREN_INFO", NULL}
+#define STMT_12 \
"SELECT op_depth, nodes.repos_id, nodes.repos_path, presence, kind, revision, " \
" checksum, translated_size, changed_revision, changed_date, changed_author, " \
" depth, symlink_target, last_mod_time, properties, lock_token, lock_owner, " \
@@ -137,9 +151,9 @@
"ORDER BY local_relpath DESC, op_depth DESC " \
""
-#define STMT_SELECT_BASE_NODE_CHILDREN_INFO 12
-#define STMT_12_INFO {"STMT_SELECT_BASE_NODE_CHILDREN_INFO", NULL}
-#define STMT_12 \
+#define STMT_SELECT_BASE_NODE_CHILDREN_INFO 13
+#define STMT_13_INFO {"STMT_SELECT_BASE_NODE_CHILDREN_INFO", NULL}
+#define STMT_13 \
"SELECT op_depth, nodes.repos_id, nodes.repos_path, presence, kind, revision, " \
" checksum, translated_size, changed_revision, changed_date, changed_author, " \
" depth, symlink_target, last_mod_time, properties, lock_token, lock_owner, " \
@@ -151,50 +165,50 @@
"ORDER BY local_relpath DESC " \
""
-#define STMT_SELECT_NODE_CHILDREN_WALKER_INFO 13
-#define STMT_13_INFO {"STMT_SELECT_NODE_CHILDREN_WALKER_INFO", NULL}
-#define STMT_13 \
+#define STMT_SELECT_NODE_CHILDREN_WALKER_INFO 14
+#define STMT_14_INFO {"STMT_SELECT_NODE_CHILDREN_WALKER_INFO", NULL}
+#define STMT_14 \
"SELECT local_relpath, op_depth, presence, kind " \
"FROM nodes_current " \
"WHERE wc_id = ?1 AND parent_relpath = ?2 " \
"ORDER BY local_relpath " \
""
-#define STMT_SELECT_ACTUAL_CHILDREN_INFO 14
-#define STMT_14_INFO {"STMT_SELECT_ACTUAL_CHILDREN_INFO", NULL}
-#define STMT_14 \
+#define STMT_SELECT_ACTUAL_CHILDREN_INFO 15
+#define STMT_15_INFO {"STMT_SELECT_ACTUAL_CHILDREN_INFO", NULL}
+#define STMT_15 \
"SELECT local_relpath, changelist, properties, conflict_data " \
"FROM actual_node " \
"WHERE wc_id = ?1 AND parent_relpath = ?2 " \
""
-#define STMT_SELECT_REPOSITORY_BY_ID 15
-#define STMT_15_INFO {"STMT_SELECT_REPOSITORY_BY_ID", NULL}
-#define STMT_15 \
+#define STMT_SELECT_REPOSITORY_BY_ID 16
+#define STMT_16_INFO {"STMT_SELECT_REPOSITORY_BY_ID", NULL}
+#define STMT_16 \
"SELECT root, uuid FROM repository WHERE id = ?1 " \
""
-#define STMT_SELECT_WCROOT_NULL 16
-#define STMT_16_INFO {"STMT_SELECT_WCROOT_NULL", NULL}
-#define STMT_16 \
+#define STMT_SELECT_WCROOT_NULL 17
+#define STMT_17_INFO {"STMT_SELECT_WCROOT_NULL", NULL}
+#define STMT_17 \
"SELECT id FROM wcroot WHERE local_abspath IS NULL " \
""
-#define STMT_SELECT_REPOSITORY 17
-#define STMT_17_INFO {"STMT_SELECT_REPOSITORY", NULL}
-#define STMT_17 \
+#define STMT_SELECT_REPOSITORY 18
+#define STMT_18_INFO {"STMT_SELECT_REPOSITORY", NULL}
+#define STMT_18 \
"SELECT id FROM repository WHERE root = ?1 " \
""
-#define STMT_INSERT_REPOSITORY 18
-#define STMT_18_INFO {"STMT_INSERT_REPOSITORY", NULL}
-#define STMT_18 \
+#define STMT_INSERT_REPOSITORY 19
+#define STMT_19_INFO {"STMT_INSERT_REPOSITORY", NULL}
+#define STMT_19 \
"INSERT INTO repository (root, uuid) VALUES (?1, ?2) " \
""
-#define STMT_INSERT_NODE 19
-#define STMT_19_INFO {"STMT_INSERT_NODE", NULL}
-#define STMT_19 \
+#define STMT_INSERT_NODE 20
+#define STMT_20_INFO {"STMT_INSERT_NODE", NULL}
+#define STMT_20 \
"INSERT OR REPLACE INTO nodes ( " \
" wc_id, local_relpath, op_depth, parent_relpath, repos_id, repos_path, " \
" revision, presence, depth, kind, changed_revision, changed_date, " \
@@ -205,9 +219,9 @@
" ?15, ?16, ?17, ?18, ?19, ?20, ?21, ?22, ?23) " \
""
-#define STMT_SELECT_WORKING_PRESENT 20
-#define STMT_20_INFO {"STMT_SELECT_WORKING_PRESENT", NULL}
-#define STMT_20 \
+#define STMT_SELECT_WORKING_PRESENT 21
+#define STMT_21_INFO {"STMT_SELECT_WORKING_PRESENT", NULL}
+#define STMT_21 \
"SELECT local_relpath, kind, checksum, translated_size, last_mod_time " \
"FROM nodes n " \
"WHERE wc_id = ?1 " \
@@ -220,25 +234,25 @@
"ORDER BY local_relpath DESC " \
""
-#define STMT_DELETE_NODE_RECURSIVE 21
-#define STMT_21_INFO {"STMT_DELETE_NODE_RECURSIVE", NULL}
-#define STMT_21 \
+#define STMT_DELETE_NODE_RECURSIVE 22
+#define STMT_22_INFO {"STMT_DELETE_NODE_RECURSIVE", NULL}
+#define STMT_22 \
"DELETE FROM NODES " \
"WHERE wc_id = ?1 " \
" AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
""
-#define STMT_DELETE_NODE 22
-#define STMT_22_INFO {"STMT_DELETE_NODE", NULL}
-#define STMT_22 \
+#define STMT_DELETE_NODE 23
+#define STMT_23_INFO {"STMT_DELETE_NODE", NULL}
+#define STMT_23 \
"DELETE " \
"FROM NODES " \
"WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \
""
-#define STMT_DELETE_ACTUAL_FOR_BASE_RECURSIVE 23
-#define STMT_23_INFO {"STMT_DELETE_ACTUAL_FOR_BASE_RECURSIVE", NULL}
-#define STMT_23 \
+#define STMT_DELETE_ACTUAL_FOR_BASE_RECURSIVE 24
+#define STMT_24_INFO {"STMT_DELETE_ACTUAL_FOR_BASE_RECURSIVE", NULL}
+#define STMT_24 \
"DELETE FROM actual_node " \
"WHERE wc_id = ?1 AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
" AND EXISTS(SELECT 1 FROM NODES b " \
@@ -252,9 +266,9 @@
" AND presence in ('normal', 'incomplete', 'not-present')) " \
""
-#define STMT_DELETE_WORKING_BASE_DELETE 24
-#define STMT_24_INFO {"STMT_DELETE_WORKING_BASE_DELETE", NULL}
-#define STMT_24 \
+#define STMT_DELETE_WORKING_BASE_DELETE 25
+#define STMT_25_INFO {"STMT_DELETE_WORKING_BASE_DELETE", NULL}
+#define STMT_25 \
"DELETE FROM nodes " \
"WHERE wc_id = ?1 AND local_relpath = ?2 " \
" AND presence = 'base-deleted' " \
@@ -265,9 +279,9 @@
" AND op_depth > ?3) " \
""
-#define STMT_DELETE_WORKING_BASE_DELETE_RECURSIVE 25
-#define STMT_25_INFO {"STMT_DELETE_WORKING_BASE_DELETE_RECURSIVE", NULL}
-#define STMT_25 \
+#define STMT_DELETE_WORKING_BASE_DELETE_RECURSIVE 26
+#define STMT_26_INFO {"STMT_DELETE_WORKING_BASE_DELETE_RECURSIVE", NULL}
+#define STMT_26 \
"DELETE FROM nodes " \
"WHERE wc_id = ?1 AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
" AND presence = 'base-deleted' " \
@@ -278,35 +292,35 @@
" AND op_depth > ?3) " \
""
-#define STMT_DELETE_WORKING_RECURSIVE 26
-#define STMT_26_INFO {"STMT_DELETE_WORKING_RECURSIVE", NULL}
-#define STMT_26 \
+#define STMT_DELETE_WORKING_RECURSIVE 27
+#define STMT_27_INFO {"STMT_DELETE_WORKING_RECURSIVE", NULL}
+#define STMT_27 \
"DELETE FROM nodes " \
"WHERE wc_id = ?1 AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
" AND op_depth > 0 " \
""
-#define STMT_DELETE_BASE_RECURSIVE 27
-#define STMT_27_INFO {"STMT_DELETE_BASE_RECURSIVE", NULL}
-#define STMT_27 \
+#define STMT_DELETE_BASE_RECURSIVE 28
+#define STMT_28_INFO {"STMT_DELETE_BASE_RECURSIVE", NULL}
+#define STMT_28 \
"DELETE FROM nodes " \
"WHERE wc_id = ?1 AND (local_relpath = ?2 " \
" OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
" AND op_depth = 0 " \
""
-#define STMT_DELETE_WORKING_OP_DEPTH 28
-#define STMT_28_INFO {"STMT_DELETE_WORKING_OP_DEPTH", NULL}
-#define STMT_28 \
+#define STMT_DELETE_WORKING_OP_DEPTH 29
+#define STMT_29_INFO {"STMT_DELETE_WORKING_OP_DEPTH", NULL}
+#define STMT_29 \
"DELETE FROM nodes " \
"WHERE wc_id = ?1 " \
" AND (local_relpath = ?2 OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
" AND op_depth = ?3 " \
""
-#define STMT_SELECT_LAYER_FOR_REPLACE 29
-#define STMT_29_INFO {"STMT_SELECT_LAYER_FOR_REPLACE", NULL}
-#define STMT_29 \
+#define STMT_SELECT_LAYER_FOR_REPLACE 30
+#define STMT_30_INFO {"STMT_SELECT_LAYER_FOR_REPLACE", NULL}
+#define STMT_30 \
"SELECT s.local_relpath, s.kind, " \
" (CASE WHEN (?2) = '' THEN (CASE WHEN (?4) = '' THEN (s.local_relpath) WHEN (s.local_relpath) = '' THEN (?4) ELSE (?4) || '/' || (s.local_relpath) END) WHEN (?4) = '' THEN (CASE WHEN (?2) = '' THEN (s.local_relpath) WHEN SUBSTR((s.local_relpath), 1, LENGTH(?2)) = (?2) THEN CASE WHEN LENGTH(?2) = LENGTH(s.local_relpath) THEN '' WHEN SUBSTR((s.local_relpath), LENGTH(?2)+1, 1) = '/' THEN SUBSTR((s.local_relpath), LENGTH(?2)+2) END END) WHEN SUBSTR((s.local_relpath), 1, LENGTH(?2)) = (?2) THEN CASE WHEN LENGTH(?2) = LENGTH(s.local_relpath) THEN (?4) WHEN SUBSTR((s.local_relpath), LENGTH(?2)+1, 1) = '/' THEN (?4) || SUBSTR((s.local_relpath), LENGTH(?2)+1) END END) drp, 'normal' " \
"FROM nodes s " \
@@ -323,9 +337,9 @@
"ORDER BY s.local_relpath " \
""
-#define STMT_SELECT_DESCENDANTS_OP_DEPTH_RV 30
-#define STMT_30_INFO {"STMT_SELECT_DESCENDANTS_OP_DEPTH_RV", NULL}
-#define STMT_30 \
+#define STMT_SELECT_DESCENDANTS_OP_DEPTH_RV 31
+#define STMT_31_INFO {"STMT_SELECT_DESCENDANTS_OP_DEPTH_RV", NULL}
+#define STMT_31 \
"SELECT local_relpath, kind " \
"FROM nodes " \
"WHERE wc_id = ?1 " \
@@ -335,9 +349,9 @@
"ORDER BY local_relpath DESC " \
""
-#define STMT_COPY_NODE_MOVE 31
-#define STMT_31_INFO {"STMT_COPY_NODE_MOVE", NULL}
-#define STMT_31 \
+#define STMT_COPY_NODE_MOVE 32
+#define STMT_32_INFO {"STMT_COPY_NODE_MOVE", NULL}
+#define STMT_32 \
"INSERT OR REPLACE INTO nodes ( " \
" wc_id, local_relpath, op_depth, parent_relpath, repos_id, repos_path, " \
" revision, presence, depth, kind, changed_revision, changed_date, " \
@@ -356,9 +370,9 @@
"WHERE s.wc_id = ?1 AND s.local_relpath = ?2 AND s.op_depth = ?3 " \
""
-#define STMT_SELECT_NO_LONGER_MOVED_RV 32
-#define STMT_32_INFO {"STMT_SELECT_NO_LONGER_MOVED_RV", NULL}
-#define STMT_32 \
+#define STMT_SELECT_NO_LONGER_MOVED_RV 33
+#define STMT_33_INFO {"STMT_SELECT_NO_LONGER_MOVED_RV", NULL}
+#define STMT_33 \
"SELECT d.local_relpath, (CASE WHEN (?2) = '' THEN (CASE WHEN (?4) = '' THEN (d.local_relpath) WHEN (d.local_relpath) = '' THEN (?4) ELSE (?4) || '/' || (d.local_relpath) END) WHEN (?4) = '' THEN (CASE WHEN (?2) = '' THEN (d.local_relpath) WHEN SUBSTR((d.local_relpath), 1, LENGTH(?2)) = (?2) THEN CASE WHEN LENGTH(?2) = LENGTH(d.local_relpath) THEN '' WHEN SUBSTR((d.local_relpath), LENGTH(?2)+1, 1) = '/' THEN SUBSTR((d.local_relpath), LENGTH(?2)+2) END END) WHEN SUBSTR((d.local_relpath), 1, LENGTH(?2)) = (?2) THEN CASE WHEN LENGTH(?2) = LENGTH(d.local_relpath) THEN (?4) WHEN SUBSTR((d.local_relpath), LENGTH(?2)+1, 1) = '/' THEN (?4) || SUBSTR((d.local_relpath), LENGTH(?2)+1) END END) srp, " \
" b.presence, b.op_depth " \
"FROM nodes d " \
@@ -377,9 +391,9 @@
"ORDER BY d.local_relpath DESC " \
""
-#define STMT_SELECT_OP_DEPTH_CHILDREN 33
-#define STMT_33_INFO {"STMT_SELECT_OP_DEPTH_CHILDREN", NULL}
-#define STMT_33 \
+#define STMT_SELECT_OP_DEPTH_CHILDREN 34
+#define STMT_34_INFO {"STMT_SELECT_OP_DEPTH_CHILDREN", NULL}
+#define STMT_34 \
"SELECT local_relpath, kind FROM nodes " \
"WHERE wc_id = ?1 " \
" AND parent_relpath = ?2 " \
@@ -389,9 +403,9 @@
"ORDER BY local_relpath " \
""
-#define STMT_SELECT_OP_DEPTH_CHILDREN_EXISTS 34
-#define STMT_34_INFO {"STMT_SELECT_OP_DEPTH_CHILDREN_EXISTS", NULL}
-#define STMT_34 \
+#define STMT_SELECT_OP_DEPTH_CHILDREN_EXISTS 35
+#define STMT_35_INFO {"STMT_SELECT_OP_DEPTH_CHILDREN_EXISTS", NULL}
+#define STMT_35 \
"SELECT local_relpath, kind FROM nodes " \
"WHERE wc_id = ?1 " \
" AND parent_relpath = ?2 " \
@@ -400,9 +414,9 @@
"ORDER BY local_relpath " \
""
-#define STMT_SELECT_GE_OP_DEPTH_CHILDREN 35
-#define STMT_35_INFO {"STMT_SELECT_GE_OP_DEPTH_CHILDREN", NULL}
-#define STMT_35 \
+#define STMT_SELECT_GE_OP_DEPTH_CHILDREN 36
+#define STMT_36_INFO {"STMT_SELECT_GE_OP_DEPTH_CHILDREN", NULL}
+#define STMT_36 \
"SELECT 1 FROM nodes " \
"WHERE wc_id = ?1 AND parent_relpath = ?2 " \
" AND (op_depth > ?3 OR (op_depth = ?3 " \
@@ -414,9 +428,9 @@
" WHERE wc_id = ?1 AND n.local_relpath = a.local_relpath) " \
""
-#define STMT_DELETE_SHADOWED_RECURSIVE 36
-#define STMT_36_INFO {"STMT_DELETE_SHADOWED_RECURSIVE", NULL}
-#define STMT_36 \
+#define STMT_DELETE_SHADOWED_RECURSIVE 37
+#define STMT_37_INFO {"STMT_DELETE_SHADOWED_RECURSIVE", NULL}
+#define STMT_37 \
"DELETE FROM nodes " \
"WHERE wc_id = ?1 " \
" AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
@@ -424,26 +438,26 @@
" OR (op_depth = ?3 AND presence = 'base-deleted')) " \
""
-#define STMT_CLEAR_MOVED_TO_FROM_DEST 37
-#define STMT_37_INFO {"STMT_CLEAR_MOVED_TO_FROM_DEST", NULL}
-#define STMT_37 \
+#define STMT_CLEAR_MOVED_TO_FROM_DEST 38
+#define STMT_38_INFO {"STMT_CLEAR_MOVED_TO_FROM_DEST", NULL}
+#define STMT_38 \
"UPDATE NODES SET moved_to = NULL " \
"WHERE wc_id = ?1 " \
" AND moved_to = ?2 " \
""
-#define STMT_SELECT_NOT_PRESENT_DESCENDANTS 38
-#define STMT_38_INFO {"STMT_SELECT_NOT_PRESENT_DESCENDANTS", NULL}
-#define STMT_38 \
+#define STMT_SELECT_NOT_PRESENT_DESCENDANTS 39
+#define STMT_39_INFO {"STMT_SELECT_NOT_PRESENT_DESCENDANTS", NULL}
+#define STMT_39 \
"SELECT local_relpath FROM nodes " \
"WHERE wc_id = ?1 AND op_depth = ?3 " \
" AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
" AND presence = 'not-present' " \
""
-#define STMT_COMMIT_DESCENDANTS_TO_BASE 39
-#define STMT_39_INFO {"STMT_COMMIT_DESCENDANTS_TO_BASE", NULL}
-#define STMT_39 \
+#define STMT_COMMIT_DESCENDANTS_TO_BASE 40
+#define STMT_40_INFO {"STMT_COMMIT_DESCENDANTS_TO_BASE", NULL}
+#define STMT_40 \
"UPDATE NODES SET op_depth = 0, " \
" repos_id = ?4, " \
" repos_path = (CASE WHEN (?2) = '' THEN (CASE WHEN (?5) = '' THEN (local_relpath) WHEN (local_relpath) = '' THEN (?5) ELSE (?5) || '/' || (local_relpath) END) WHEN (?5) = '' THEN (CASE WHEN (?2) = '' THEN (local_relpath) WHEN SUBSTR((local_relpath), 1, LENGTH(?2)) = (?2) THEN CASE WHEN LENGTH(?2) = LENGTH(local_relpath) THEN '' WHEN SUBSTR((local_relpath), LENGTH(?2)+1, 1) = '/' THEN SUBSTR((local_relpath), LENGTH(?2)+2) END END) WHEN SUBSTR((local_relpath), 1, LENGTH(?2)) = (?2) THEN CASE WHEN LENGTH(?2) = LENGTH(local_relpath) THEN (?5) WHEN SUBSTR((local_relpath), LENGTH(?2)+1, 1) = '/' THEN (?5) || SUBSTR((local_relpath), LENGTH(?2)+1) END END), " \
@@ -461,17 +475,17 @@
" AND op_depth = ?3 " \
""
-#define STMT_SELECT_NODE_CHILDREN 40
-#define STMT_40_INFO {"STMT_SELECT_NODE_CHILDREN", NULL}
-#define STMT_40 \
+#define STMT_SELECT_NODE_CHILDREN 41
+#define STMT_41_INFO {"STMT_SELECT_NODE_CHILDREN", NULL}
+#define STMT_41 \
"SELECT DISTINCT local_relpath FROM nodes " \
"WHERE wc_id = ?1 AND parent_relpath = ?2 " \
"ORDER BY local_relpath " \
""
-#define STMT_SELECT_WORKING_CHILDREN 41
-#define STMT_41_INFO {"STMT_SELECT_WORKING_CHILDREN", NULL}
-#define STMT_41 \
+#define STMT_SELECT_WORKING_CHILDREN 42
+#define STMT_42_INFO {"STMT_SELECT_WORKING_CHILDREN", NULL}
+#define STMT_42 \
"SELECT DISTINCT local_relpath FROM nodes " \
"WHERE wc_id = ?1 AND parent_relpath = ?2 " \
" AND (op_depth > (SELECT MAX(op_depth) FROM nodes " \
@@ -483,56 +497,56 @@
"ORDER BY local_relpath " \
""
-#define STMT_SELECT_BASE_NOT_PRESENT_CHILDREN 42
-#define STMT_42_INFO {"STMT_SELECT_BASE_NOT_PRESENT_CHILDREN", NULL}
-#define STMT_42 \
+#define STMT_SELECT_BASE_NOT_PRESENT_CHILDREN 43
+#define STMT_43_INFO {"STMT_SELECT_BASE_NOT_PRESENT_CHILDREN", NULL}
+#define STMT_43 \
"SELECT local_relpath FROM nodes " \
"WHERE wc_id = ?1 AND parent_relpath = ?2 AND op_depth = 0 " \
" AND presence = 'not-present' " \
"ORDER BY local_relpath " \
""
-#define STMT_SELECT_NODE_PROPS 43
-#define STMT_43_INFO {"STMT_SELECT_NODE_PROPS", NULL}
-#define STMT_43 \
+#define STMT_SELECT_NODE_PROPS 44
+#define STMT_44_INFO {"STMT_SELECT_NODE_PROPS", NULL}
+#define STMT_44 \
"SELECT properties, presence FROM nodes " \
"WHERE wc_id = ?1 AND local_relpath = ?2 " \
"ORDER BY op_depth DESC " \
""
-#define STMT_SELECT_ACTUAL_PROPS 44
-#define STMT_44_INFO {"STMT_SELECT_ACTUAL_PROPS", NULL}
-#define STMT_44 \
+#define STMT_SELECT_ACTUAL_PROPS 45
+#define STMT_45_INFO {"STMT_SELECT_ACTUAL_PROPS", NULL}
+#define STMT_45 \
"SELECT properties FROM actual_node " \
"WHERE wc_id = ?1 AND local_relpath = ?2 " \
""
-#define STMT_UPDATE_ACTUAL_PROPS 45
-#define STMT_45_INFO {"STMT_UPDATE_ACTUAL_PROPS", NULL}
-#define STMT_45 \
+#define STMT_UPDATE_ACTUAL_PROPS 46
+#define STMT_46_INFO {"STMT_UPDATE_ACTUAL_PROPS", NULL}
+#define STMT_46 \
"UPDATE actual_node SET properties = ?3 " \
"WHERE wc_id = ?1 AND local_relpath = ?2 " \
""
-#define STMT_INSERT_ACTUAL_PROPS 46
-#define STMT_46_INFO {"STMT_INSERT_ACTUAL_PROPS", NULL}
-#define STMT_46 \
+#define STMT_INSERT_ACTUAL_PROPS 47
+#define STMT_47_INFO {"STMT_INSERT_ACTUAL_PROPS", NULL}
+#define STMT_47 \
"INSERT INTO actual_node (wc_id, local_relpath, parent_relpath, properties) " \
"VALUES (?1, ?2, ?3, ?4) " \
""
-#define STMT_INSERT_LOCK 47
-#define STMT_47_INFO {"STMT_INSERT_LOCK", NULL}
-#define STMT_47 \
+#define STMT_INSERT_LOCK 48
+#define STMT_48_INFO {"STMT_INSERT_LOCK", NULL}
+#define STMT_48 \
"INSERT OR REPLACE INTO lock " \
"(repos_id, repos_relpath, lock_token, lock_owner, lock_comment, " \
" lock_date) " \
"VALUES (?1, ?2, ?3, ?4, ?5, ?6) " \
""
-#define STMT_SELECT_BASE_NODE_LOCK_TOKENS_RECURSIVE 48
-#define STMT_48_INFO {"STMT_SELECT_BASE_NODE_LOCK_TOKENS_RECURSIVE", NULL}
-#define STMT_48 \
+#define STMT_SELECT_BASE_NODE_LOCK_TOKENS_RECURSIVE 49
+#define STMT_49_INFO {"STMT_SELECT_BASE_NODE_LOCK_TOKENS_RECURSIVE", NULL}
+#define STMT_49 \
"SELECT nodes.repos_id, nodes.repos_path, lock_token " \
"FROM nodes " \
"LEFT JOIN lock ON nodes.repos_id = lock.repos_id " \
@@ -541,30 +555,30 @@
" AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
""
-#define STMT_INSERT_WCROOT 49
-#define STMT_49_INFO {"STMT_INSERT_WCROOT", NULL}
-#define STMT_49 \
+#define STMT_INSERT_WCROOT 50
+#define STMT_50_INFO {"STMT_INSERT_WCROOT", NULL}
+#define STMT_50 \
"INSERT INTO wcroot (local_abspath) " \
"VALUES (?1) " \
""
-#define STMT_UPDATE_BASE_NODE_DAV_CACHE 50
-#define STMT_50_INFO {"STMT_UPDATE_BASE_NODE_DAV_CACHE", NULL}
-#define STMT_50 \
+#define STMT_UPDATE_BASE_NODE_DAV_CACHE 51
+#define STMT_51_INFO {"STMT_UPDATE_BASE_NODE_DAV_CACHE", NULL}
+#define STMT_51 \
"UPDATE nodes SET dav_cache = ?3 " \
"WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
""
-#define STMT_SELECT_BASE_DAV_CACHE 51
-#define STMT_51_INFO {"STMT_SELECT_BASE_DAV_CACHE", NULL}
-#define STMT_51 \
+#define STMT_SELECT_BASE_DAV_CACHE 52
+#define STMT_52_INFO {"STMT_SELECT_BASE_DAV_CACHE", NULL}
+#define STMT_52 \
"SELECT dav_cache FROM nodes " \
"WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
""
-#define STMT_SELECT_DELETION_INFO 52
-#define STMT_52_INFO {"STMT_SELECT_DELETION_INFO", NULL}
-#define STMT_52 \
+#define STMT_SELECT_DELETION_INFO 53
+#define STMT_53_INFO {"STMT_SELECT_DELETION_INFO", NULL}
+#define STMT_53 \
"SELECT b.presence, w.presence, w.op_depth, w.moved_to " \
"FROM nodes w " \
"LEFT JOIN nodes b ON b.wc_id = ?1 AND b.local_relpath = ?2 AND b.op_depth = 0 " \
@@ -575,18 +589,18 @@
"LIMIT 1 " \
""
-#define STMT_SELECT_MOVED_TO_NODE 53
-#define STMT_53_INFO {"STMT_SELECT_MOVED_TO_NODE", NULL}
-#define STMT_53 \
+#define STMT_SELECT_MOVED_TO_NODE 54
+#define STMT_54_INFO {"STMT_SELECT_MOVED_TO_NODE", NULL}
+#define STMT_54 \
"SELECT op_depth, moved_to " \
"FROM nodes " \
"WHERE wc_id = ?1 AND local_relpath = ?2 AND moved_to IS NOT NULL " \
"ORDER BY op_depth DESC " \
""
-#define STMT_SELECT_OP_DEPTH_MOVED_TO 54
-#define STMT_54_INFO {"STMT_SELECT_OP_DEPTH_MOVED_TO", NULL}
-#define STMT_54 \
+#define STMT_SELECT_OP_DEPTH_MOVED_TO 55
+#define STMT_55_INFO {"STMT_SELECT_OP_DEPTH_MOVED_TO", NULL}
+#define STMT_55 \
"SELECT op_depth, moved_to " \
"FROM nodes " \
"WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth > ?3 " \
@@ -597,17 +611,17 @@
"LIMIT 1 " \
""
-#define STMT_SELECT_MOVED_TO 55
-#define STMT_55_INFO {"STMT_SELECT_MOVED_TO", NULL}
-#define STMT_55 \
+#define STMT_SELECT_MOVED_TO 56
+#define STMT_56_INFO {"STMT_SELECT_MOVED_TO", NULL}
+#define STMT_56 \
"SELECT moved_to " \
"FROM nodes " \
"WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \
""
-#define STMT_SELECT_MOVED_BACK 56
-#define STMT_56_INFO {"STMT_SELECT_MOVED_BACK", NULL}
-#define STMT_56 \
+#define STMT_SELECT_MOVED_BACK 57
+#define STMT_57_INFO {"STMT_SELECT_MOVED_BACK", NULL}
+#define STMT_57 \
"SELECT u.local_relpath, " \
" u.presence, u.repos_id, u.repos_path, u.revision, " \
" l.presence, l.repos_id, l.repos_path, l.revision, " \
@@ -633,71 +647,71 @@
" AND u.op_depth = ?4 " \
""
-#define STMT_DELETE_LOCK 57
-#define STMT_57_INFO {"STMT_DELETE_LOCK", NULL}
-#define STMT_57 \
+#define STMT_DELETE_LOCK 58
+#define STMT_58_INFO {"STMT_DELETE_LOCK", NULL}
+#define STMT_58 \
"DELETE FROM lock " \
"WHERE repos_id = ?1 AND repos_relpath = ?2 " \
""
-#define STMT_DELETE_LOCK_RECURSIVELY 58
-#define STMT_58_INFO {"STMT_DELETE_LOCK_RECURSIVELY", NULL}
-#define STMT_58 \
+#define STMT_DELETE_LOCK_RECURSIVELY 59
+#define STMT_59_INFO {"STMT_DELETE_LOCK_RECURSIVELY", NULL}
+#define STMT_59 \
"DELETE FROM lock " \
"WHERE repos_id = ?1 AND (repos_relpath = ?2 OR (((repos_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((repos_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
""
-#define STMT_CLEAR_BASE_NODE_RECURSIVE_DAV_CACHE 59
-#define STMT_59_INFO {"STMT_CLEAR_BASE_NODE_RECURSIVE_DAV_CACHE", NULL}
-#define STMT_59 \
+#define STMT_CLEAR_BASE_NODE_RECURSIVE_DAV_CACHE 60
+#define STMT_60_INFO {"STMT_CLEAR_BASE_NODE_RECURSIVE_DAV_CACHE", NULL}
+#define STMT_60 \
"UPDATE nodes SET dav_cache = NULL " \
"WHERE dav_cache IS NOT NULL AND wc_id = ?1 AND op_depth = 0 " \
" AND (local_relpath = ?2 " \
" OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
""
-#define STMT_RECURSIVE_UPDATE_NODE_REPO 60
-#define STMT_60_INFO {"STMT_RECURSIVE_UPDATE_NODE_REPO", NULL}
-#define STMT_60 \
+#define STMT_RECURSIVE_UPDATE_NODE_REPO 61
+#define STMT_61_INFO {"STMT_RECURSIVE_UPDATE_NODE_REPO", NULL}
+#define STMT_61 \
"UPDATE nodes SET repos_id = ?4, dav_cache = NULL " \
"WHERE (wc_id = ?1 AND local_relpath = ?2 AND repos_id = ?3) " \
" OR (wc_id = ?1 AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
" AND repos_id = ?3) " \
""
-#define STMT_UPDATE_LOCK_REPOS_ID 61
-#define STMT_61_INFO {"STMT_UPDATE_LOCK_REPOS_ID", NULL}
-#define STMT_61 \
+#define STMT_UPDATE_LOCK_REPOS_ID 62
+#define STMT_62_INFO {"STMT_UPDATE_LOCK_REPOS_ID", NULL}
+#define STMT_62 \
"UPDATE lock SET repos_id = ?2 " \
"WHERE repos_id = ?1 " \
""
-#define STMT_UPDATE_NODE_FILEINFO 62
-#define STMT_62_INFO {"STMT_UPDATE_NODE_FILEINFO", NULL}
-#define STMT_62 \
+#define STMT_UPDATE_NODE_FILEINFO 63
+#define STMT_63_INFO {"STMT_UPDATE_NODE_FILEINFO", NULL}
+#define STMT_63 \
"UPDATE nodes SET translated_size = ?3, last_mod_time = ?4 " \
"WHERE wc_id = ?1 AND local_relpath = ?2 " \
" AND op_depth = (SELECT MAX(op_depth) FROM nodes " \
" WHERE wc_id = ?1 AND local_relpath = ?2) " \
""
-#define STMT_INSERT_ACTUAL_CONFLICT 63
-#define STMT_63_INFO {"STMT_INSERT_ACTUAL_CONFLICT", NULL}
-#define STMT_63 \
+#define STMT_INSERT_ACTUAL_CONFLICT 64
+#define STMT_64_INFO {"STMT_INSERT_ACTUAL_CONFLICT", NULL}
+#define STMT_64 \
"INSERT INTO actual_node (wc_id, local_relpath, conflict_data, parent_relpath) " \
"VALUES (?1, ?2, ?3, ?4) " \
""
-#define STMT_UPDATE_ACTUAL_CONFLICT 64
-#define STMT_64_INFO {"STMT_UPDATE_ACTUAL_CONFLICT", NULL}
-#define STMT_64 \
+#define STMT_UPDATE_ACTUAL_CONFLICT 65
+#define STMT_65_INFO {"STMT_UPDATE_ACTUAL_CONFLICT", NULL}
+#define STMT_65 \
"UPDATE actual_node SET conflict_data = ?3 " \
"WHERE wc_id = ?1 AND local_relpath = ?2 " \
""
-#define STMT_UPDATE_ACTUAL_CHANGELISTS 65
-#define STMT_65_INFO {"STMT_UPDATE_ACTUAL_CHANGELISTS", NULL}
-#define STMT_65 \
+#define STMT_UPDATE_ACTUAL_CHANGELISTS 66
+#define STMT_66_INFO {"STMT_UPDATE_ACTUAL_CHANGELISTS", NULL}
+#define STMT_66 \
"UPDATE actual_node SET changelist = ?3 " \
"WHERE wc_id = ?1 " \
" AND (local_relpath = ?2 OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
@@ -707,16 +721,16 @@
" AND kind = 'file') " \
""
-#define STMT_UPDATE_ACTUAL_CLEAR_CHANGELIST 66
-#define STMT_66_INFO {"STMT_UPDATE_ACTUAL_CLEAR_CHANGELIST", NULL}
-#define STMT_66 \
+#define STMT_UPDATE_ACTUAL_CLEAR_CHANGELIST 67
+#define STMT_67_INFO {"STMT_UPDATE_ACTUAL_CLEAR_CHANGELIST", NULL}
+#define STMT_67 \
"UPDATE actual_node SET changelist = NULL " \
" WHERE wc_id = ?1 AND local_relpath = ?2 " \
""
-#define STMT_MARK_SKIPPED_CHANGELIST_DIRS 67
-#define STMT_67_INFO {"STMT_MARK_SKIPPED_CHANGELIST_DIRS", NULL}
-#define STMT_67 \
+#define STMT_MARK_SKIPPED_CHANGELIST_DIRS 68
+#define STMT_68_INFO {"STMT_MARK_SKIPPED_CHANGELIST_DIRS", NULL}
+#define STMT_68 \
"INSERT INTO changelist_list (wc_id, local_relpath, notify, changelist) " \
"SELECT wc_id, local_relpath, 7, ?3 " \
"FROM targets_list " \
@@ -725,17 +739,17 @@
" AND kind = 'dir' " \
""
-#define STMT_RESET_ACTUAL_WITH_CHANGELIST 68
-#define STMT_68_INFO {"STMT_RESET_ACTUAL_WITH_CHANGELIST", NULL}
-#define STMT_68 \
+#define STMT_RESET_ACTUAL_WITH_CHANGELIST 69
+#define STMT_69_INFO {"STMT_RESET_ACTUAL_WITH_CHANGELIST", NULL}
+#define STMT_69 \
"REPLACE INTO actual_node ( " \
" wc_id, local_relpath, parent_relpath, changelist) " \
"VALUES (?1, ?2, ?3, ?4) " \
""
-#define STMT_CREATE_CHANGELIST_LIST 69
-#define STMT_69_INFO {"STMT_CREATE_CHANGELIST_LIST", NULL}
-#define STMT_69 \
+#define STMT_CREATE_CHANGELIST_LIST 70
+#define STMT_70_INFO {"STMT_CREATE_CHANGELIST_LIST", NULL}
+#define STMT_70 \
"DROP TABLE IF EXISTS changelist_list; " \
"CREATE TEMPORARY TABLE changelist_list ( " \
" wc_id INTEGER NOT NULL, " \
@@ -746,9 +760,9 @@
") " \
""
-#define STMT_CREATE_CHANGELIST_TRIGGER 70
-#define STMT_70_INFO {"STMT_CREATE_CHANGELIST_TRIGGER", NULL}
-#define STMT_70 \
+#define STMT_CREATE_CHANGELIST_TRIGGER 71
+#define STMT_71_INFO {"STMT_CREATE_CHANGELIST_TRIGGER", NULL}
+#define STMT_71 \
"DROP TRIGGER IF EXISTS trigger_changelist_list_change; " \
"CREATE TEMPORARY TRIGGER trigger_changelist_list_change " \
"BEFORE UPDATE ON actual_node " \
@@ -763,25 +777,25 @@
"END " \
""
-#define STMT_FINALIZE_CHANGELIST 71
-#define STMT_71_INFO {"STMT_FINALIZE_CHANGELIST", NULL}
-#define STMT_71 \
+#define STMT_FINALIZE_CHANGELIST 72
+#define STMT_72_INFO {"STMT_FINALIZE_CHANGELIST", NULL}
+#define STMT_72 \
"DROP TRIGGER trigger_changelist_list_change; " \
"DROP TABLE changelist_list; " \
"DROP TABLE targets_list " \
""
-#define STMT_SELECT_CHANGELIST_LIST 72
-#define STMT_72_INFO {"STMT_SELECT_CHANGELIST_LIST", NULL}
-#define STMT_72 \
+#define STMT_SELECT_CHANGELIST_LIST 73
+#define STMT_73_INFO {"STMT_SELECT_CHANGELIST_LIST", NULL}
+#define STMT_73 \
"SELECT wc_id, local_relpath, notify, changelist " \
"FROM changelist_list " \
"ORDER BY wc_id, local_relpath ASC, notify DESC " \
""
-#define STMT_CREATE_TARGETS_LIST 73
-#define STMT_73_INFO {"STMT_CREATE_TARGETS_LIST", NULL}
-#define STMT_73 \
+#define STMT_CREATE_TARGETS_LIST 74
+#define STMT_74_INFO {"STMT_CREATE_TARGETS_LIST", NULL}
+#define STMT_74 \
"DROP TABLE IF EXISTS targets_list; " \
"CREATE TEMPORARY TABLE targets_list ( " \
" wc_id INTEGER NOT NULL, " \
@@ -792,15 +806,15 @@
" ); " \
""
-#define STMT_DROP_TARGETS_LIST 74
-#define STMT_74_INFO {"STMT_DROP_TARGETS_LIST", NULL}
-#define STMT_74 \
+#define STMT_DROP_TARGETS_LIST 75
+#define STMT_75_INFO {"STMT_DROP_TARGETS_LIST", NULL}
+#define STMT_75 \
"DROP TABLE targets_list " \
""
-#define STMT_INSERT_TARGET 75
-#define STMT_75_INFO {"STMT_INSERT_TARGET", NULL}
-#define STMT_75 \
+#define STMT_INSERT_TARGET 76
+#define STMT_76_INFO {"STMT_INSERT_TARGET", NULL}
+#define STMT_76 \
"INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \
"SELECT wc_id, local_relpath, parent_relpath, kind " \
"FROM nodes_current " \
@@ -808,9 +822,9 @@
" AND local_relpath = ?2 " \
""
-#define STMT_INSERT_TARGET_DEPTH_FILES 76
-#define STMT_76_INFO {"STMT_INSERT_TARGET_DEPTH_FILES", NULL}
-#define STMT_76 \
+#define STMT_INSERT_TARGET_DEPTH_FILES 77
+#define STMT_77_INFO {"STMT_INSERT_TARGET_DEPTH_FILES", NULL}
+#define STMT_77 \
"INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \
"SELECT wc_id, local_relpath, parent_relpath, kind " \
"FROM nodes_current " \
@@ -819,9 +833,9 @@
" AND kind = 'file' " \
""
-#define STMT_INSERT_TARGET_DEPTH_IMMEDIATES 77
-#define STMT_77_INFO {"STMT_INSERT_TARGET_DEPTH_IMMEDIATES", NULL}
-#define STMT_77 \
+#define STMT_INSERT_TARGET_DEPTH_IMMEDIATES 78
+#define STMT_78_INFO {"STMT_INSERT_TARGET_DEPTH_IMMEDIATES", NULL}
+#define STMT_78 \
"INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \
"SELECT wc_id, local_relpath, parent_relpath, kind " \
"FROM nodes_current " \
@@ -829,9 +843,9 @@
" AND parent_relpath = ?2 " \
""
-#define STMT_INSERT_TARGET_DEPTH_INFINITY 78
-#define STMT_78_INFO {"STMT_INSERT_TARGET_DEPTH_INFINITY", NULL}
-#define STMT_78 \
+#define STMT_INSERT_TARGET_DEPTH_INFINITY 79
+#define STMT_79_INFO {"STMT_INSERT_TARGET_DEPTH_INFINITY", NULL}
+#define STMT_79 \
"INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \
"SELECT wc_id, local_relpath, parent_relpath, kind " \
"FROM nodes_current " \
@@ -839,9 +853,9 @@
" AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
""
-#define STMT_INSERT_TARGET_WITH_CHANGELIST 79
-#define STMT_79_INFO {"STMT_INSERT_TARGET_WITH_CHANGELIST", NULL}
-#define STMT_79 \
+#define STMT_INSERT_TARGET_WITH_CHANGELIST 80
+#define STMT_80_INFO {"STMT_INSERT_TARGET_WITH_CHANGELIST", NULL}
+#define STMT_80 \
"INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \
"SELECT N.wc_id, N.local_relpath, N.parent_relpath, N.kind " \
" FROM actual_node AS A JOIN nodes_current AS N " \
@@ -851,9 +865,9 @@
" AND A.changelist = ?3 " \
""
-#define STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_FILES 80
-#define STMT_80_INFO {"STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_FILES", NULL}
-#define STMT_80 \
+#define STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_FILES 81
+#define STMT_81_INFO {"STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_FILES", NULL}
+#define STMT_81 \
"INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \
"SELECT N.wc_id, N.local_relpath, N.parent_relpath, N.kind " \
" FROM actual_node AS A JOIN nodes_current AS N " \
@@ -864,9 +878,9 @@
" AND A.changelist = ?3 " \
""
-#define STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_IMMEDIATES 81
-#define STMT_81_INFO {"STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_IMMEDIATES", NULL}
-#define STMT_81 \
+#define STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_IMMEDIATES 82
+#define STMT_82_INFO {"STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_IMMEDIATES", NULL}
+#define STMT_82 \
"INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \
"SELECT N.wc_id, N.local_relpath, N.parent_relpath, N.kind " \
" FROM actual_node AS A JOIN nodes_current AS N " \
@@ -876,9 +890,9 @@
" AND A.changelist = ?3 " \
""
-#define STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_INFINITY 82
-#define STMT_82_INFO {"STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_INFINITY", NULL}
-#define STMT_82 \
+#define STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_INFINITY 83
+#define STMT_83_INFO {"STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_INFINITY", NULL}
+#define STMT_83 \
"INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \
"SELECT N.wc_id, N.local_relpath, N.parent_relpath, N.kind " \
" FROM actual_node AS A JOIN nodes_current AS N " \
@@ -888,18 +902,18 @@
" AND A.changelist = ?3 " \
""
-#define STMT_INSERT_ACTUAL_EMPTIES 83
-#define STMT_83_INFO {"STMT_INSERT_ACTUAL_EMPTIES", NULL}
-#define STMT_83 \
+#define STMT_INSERT_ACTUAL_EMPTIES 84
+#define STMT_84_INFO {"STMT_INSERT_ACTUAL_EMPTIES", NULL}
+#define STMT_84 \
"INSERT OR IGNORE INTO actual_node ( " \
" wc_id, local_relpath, parent_relpath) " \
"SELECT wc_id, local_relpath, parent_relpath " \
"FROM targets_list " \
""
-#define STMT_INSERT_ACTUAL_EMPTIES_FILES 84
-#define STMT_84_INFO {"STMT_INSERT_ACTUAL_EMPTIES_FILES", NULL}
-#define STMT_84 \
+#define STMT_INSERT_ACTUAL_EMPTIES_FILES 85
+#define STMT_85_INFO {"STMT_INSERT_ACTUAL_EMPTIES_FILES", NULL}
+#define STMT_85 \
"INSERT OR IGNORE INTO actual_node ( " \
" wc_id, local_relpath, parent_relpath) " \
"SELECT wc_id, local_relpath, parent_relpath " \
@@ -907,9 +921,9 @@
"WHERE kind='file' " \
""
-#define STMT_DELETE_ACTUAL_EMPTY 85
-#define STMT_85_INFO {"STMT_DELETE_ACTUAL_EMPTY", NULL}
-#define STMT_85 \
+#define STMT_DELETE_ACTUAL_EMPTY 86
+#define STMT_86_INFO {"STMT_DELETE_ACTUAL_EMPTY", NULL}
+#define STMT_86 \
"DELETE FROM actual_node " \
"WHERE wc_id = ?1 AND local_relpath = ?2 " \
" AND properties IS NULL " \
@@ -921,9 +935,9 @@
" AND left_checksum IS NULL " \
""
-#define STMT_DELETE_ACTUAL_EMPTIES 86
-#define STMT_86_INFO {"STMT_DELETE_ACTUAL_EMPTIES", NULL}
-#define STMT_86 \
+#define STMT_DELETE_ACTUAL_EMPTIES 87
+#define STMT_87_INFO {"STMT_DELETE_ACTUAL_EMPTIES", NULL}
+#define STMT_87 \
"DELETE FROM actual_node " \
"WHERE wc_id = ?1 " \
" AND (local_relpath = ?2 OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
@@ -936,25 +950,25 @@
" AND left_checksum IS NULL " \
""
-#define STMT_DELETE_BASE_NODE 87
-#define STMT_87_INFO {"STMT_DELETE_BASE_NODE", NULL}
-#define STMT_87 \
+#define STMT_DELETE_BASE_NODE 88
+#define STMT_88_INFO {"STMT_DELETE_BASE_NODE", NULL}
+#define STMT_88 \
"DELETE FROM nodes " \
"WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
""
-#define STMT_DELETE_WORKING_NODE 88
-#define STMT_88_INFO {"STMT_DELETE_WORKING_NODE", NULL}
-#define STMT_88 \
+#define STMT_DELETE_WORKING_NODE 89
+#define STMT_89_INFO {"STMT_DELETE_WORKING_NODE", NULL}
+#define STMT_89 \
"DELETE FROM nodes " \
"WHERE wc_id = ?1 AND local_relpath = ?2 " \
" AND op_depth = (SELECT MAX(op_depth) FROM nodes " \
" WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth > 0) " \
""
-#define STMT_DELETE_LOWEST_WORKING_NODE 89
-#define STMT_89_INFO {"STMT_DELETE_LOWEST_WORKING_NODE", NULL}
-#define STMT_89 \
+#define STMT_DELETE_LOWEST_WORKING_NODE 90
+#define STMT_90_INFO {"STMT_DELETE_LOWEST_WORKING_NODE", NULL}
+#define STMT_90 \
"DELETE FROM nodes " \
"WHERE wc_id = ?1 AND local_relpath = ?2 " \
" AND op_depth = (SELECT MIN(op_depth) FROM nodes " \
@@ -962,16 +976,16 @@
" AND presence = 'base-deleted' " \
""
-#define STMT_DELETE_NODE_ALL_LAYERS 90
-#define STMT_90_INFO {"STMT_DELETE_NODE_ALL_LAYERS", NULL}
-#define STMT_90 \
+#define STMT_DELETE_NODE_ALL_LAYERS 91
+#define STMT_91_INFO {"STMT_DELETE_NODE_ALL_LAYERS", NULL}
+#define STMT_91 \
"DELETE FROM nodes " \
"WHERE wc_id = ?1 AND local_relpath = ?2 " \
""
-#define STMT_DELETE_NODES_ABOVE_DEPTH_RECURSIVE 91
-#define STMT_91_INFO {"STMT_DELETE_NODES_ABOVE_DEPTH_RECURSIVE", NULL}
-#define STMT_91 \
+#define STMT_DELETE_NODES_ABOVE_DEPTH_RECURSIVE 92
+#define STMT_92_INFO {"STMT_DELETE_NODES_ABOVE_DEPTH_RECURSIVE", NULL}
+#define STMT_92 \
"DELETE FROM nodes " \
"WHERE wc_id = ?1 " \
" AND (local_relpath = ?2 " \
@@ -979,25 +993,25 @@
" AND op_depth >= ?3 " \
""
-#define STMT_DELETE_ACTUAL_NODE 92
-#define STMT_92_INFO {"STMT_DELETE_ACTUAL_NODE", NULL}
-#define STMT_92 \
+#define STMT_DELETE_ACTUAL_NODE 93
+#define STMT_93_INFO {"STMT_DELETE_ACTUAL_NODE", NULL}
+#define STMT_93 \
"DELETE FROM actual_node " \
"WHERE wc_id = ?1 AND local_relpath = ?2 " \
""
-#define STMT_DELETE_ACTUAL_NODE_RECURSIVE 93
-#define STMT_93_INFO {"STMT_DELETE_ACTUAL_NODE_RECURSIVE", NULL}
-#define STMT_93 \
+#define STMT_DELETE_ACTUAL_NODE_RECURSIVE 94
+#define STMT_94_INFO {"STMT_DELETE_ACTUAL_NODE_RECURSIVE", NULL}
+#define STMT_94 \
"DELETE FROM actual_node " \
"WHERE wc_id = ?1 " \
" AND (local_relpath = ?2 " \
" OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
""
-#define STMT_DELETE_ACTUAL_NODE_LEAVING_CHANGELIST 94
-#define STMT_94_INFO {"STMT_DELETE_ACTUAL_NODE_LEAVING_CHANGELIST", NULL}
-#define STMT_94 \
+#define STMT_DELETE_ACTUAL_NODE_LEAVING_CHANGELIST 95
+#define STMT_95_INFO {"STMT_DELETE_ACTUAL_NODE_LEAVING_CHANGELIST", NULL}
+#define STMT_95 \
"DELETE FROM actual_node " \
"WHERE wc_id = ?1 " \
" AND local_relpath = ?2 " \
@@ -1007,9 +1021,9 @@
" AND c.kind = 'file')) " \
""
-#define STMT_DELETE_ACTUAL_NODE_LEAVING_CHANGELIST_RECURSIVE 95
-#define STMT_95_INFO {"STMT_DELETE_ACTUAL_NODE_LEAVING_CHANGELIST_RECURSIVE", NULL}
-#define STMT_95 \
+#define STMT_DELETE_ACTUAL_NODE_LEAVING_CHANGELIST_RECURSIVE 96
+#define STMT_96_INFO {"STMT_DELETE_ACTUAL_NODE_LEAVING_CHANGELIST_RECURSIVE", NULL}
+#define STMT_96 \
"DELETE FROM actual_node " \
"WHERE wc_id = ?1 " \
" AND (local_relpath = ?2 " \
@@ -1021,9 +1035,9 @@
" AND c.kind = 'file')) " \
""
-#define STMT_CLEAR_ACTUAL_NODE_LEAVING_CHANGELIST 96
-#define STMT_96_INFO {"STMT_CLEAR_ACTUAL_NODE_LEAVING_CHANGELIST", NULL}
-#define STMT_96 \
+#define STMT_CLEAR_ACTUAL_NODE_LEAVING_CHANGELIST 97
+#define STMT_97_INFO {"STMT_CLEAR_ACTUAL_NODE_LEAVING_CHANGELIST", NULL}
+#define STMT_97 \
"UPDATE actual_node " \
"SET properties = NULL, " \
" text_mod = NULL, " \
@@ -1035,9 +1049,9 @@
"WHERE wc_id = ?1 AND local_relpath = ?2 " \
""
-#define STMT_CLEAR_ACTUAL_NODE_LEAVING_CONFLICT 97
-#define STMT_97_INFO {"STMT_CLEAR_ACTUAL_NODE_LEAVING_CONFLICT", NULL}
-#define STMT_97 \
+#define STMT_CLEAR_ACTUAL_NODE_LEAVING_CONFLICT 98
+#define STMT_98_INFO {"STMT_CLEAR_ACTUAL_NODE_LEAVING_CONFLICT", NULL}
+#define STMT_98 \
"UPDATE actual_node " \
"SET properties = NULL, " \
" text_mod = NULL, " \
@@ -1049,9 +1063,9 @@
"WHERE wc_id = ?1 AND local_relpath = ?2 " \
""
-#define STMT_CLEAR_ACTUAL_NODE_LEAVING_CHANGELIST_RECURSIVE 98
-#define STMT_98_INFO {"STMT_CLEAR_ACTUAL_NODE_LEAVING_CHANGELIST_RECURSIVE", NULL}
-#define STMT_98 \
+#define STMT_CLEAR_ACTUAL_NODE_LEAVING_CHANGELIST_RECURSIVE 99
+#define STMT_99_INFO {"STMT_CLEAR_ACTUAL_NODE_LEAVING_CHANGELIST_RECURSIVE", NULL}
+#define STMT_99 \
"UPDATE actual_node " \
"SET properties = NULL, " \
" text_mod = NULL, " \
@@ -1065,109 +1079,109 @@
" OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
""
-#define STMT_UPDATE_NODE_BASE_DEPTH 99
-#define STMT_99_INFO {"STMT_UPDATE_NODE_BASE_DEPTH", NULL}
-#define STMT_99 \
+#define STMT_UPDATE_NODE_BASE_DEPTH 100
+#define STMT_100_INFO {"STMT_UPDATE_NODE_BASE_DEPTH", NULL}
+#define STMT_100 \
"UPDATE nodes SET depth = ?3 " \
"WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
" AND kind='dir' " \
" AND presence IN ('normal', 'incomplete') " \
""
-#define STMT_UPDATE_NODE_BASE_PRESENCE 100
-#define STMT_100_INFO {"STMT_UPDATE_NODE_BASE_PRESENCE", NULL}
-#define STMT_100 \
+#define STMT_UPDATE_NODE_BASE_PRESENCE 101
+#define STMT_101_INFO {"STMT_UPDATE_NODE_BASE_PRESENCE", NULL}
+#define STMT_101 \
"UPDATE nodes SET presence = ?3 " \
"WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
""
-#define STMT_UPDATE_BASE_NODE_PRESENCE_REVNUM_AND_REPOS_PATH 101
-#define STMT_101_INFO {"STMT_UPDATE_BASE_NODE_PRESENCE_REVNUM_AND_REPOS_PATH", NULL}
-#define STMT_101 \
+#define STMT_UPDATE_BASE_NODE_PRESENCE_REVNUM_AND_REPOS_PATH 102
+#define STMT_102_INFO {"STMT_UPDATE_BASE_NODE_PRESENCE_REVNUM_AND_REPOS_PATH", NULL}
+#define STMT_102 \
"UPDATE nodes SET presence = ?3, revision = ?4, repos_path = ?5 " \
"WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
""
-#define STMT_LOOK_FOR_WORK 102
-#define STMT_102_INFO {"STMT_LOOK_FOR_WORK", NULL}
-#define STMT_102 \
+#define STMT_LOOK_FOR_WORK 103
+#define STMT_103_INFO {"STMT_LOOK_FOR_WORK", NULL}
+#define STMT_103 \
"SELECT id FROM work_queue LIMIT 1 " \
""
-#define STMT_INSERT_WORK_ITEM 103
-#define STMT_103_INFO {"STMT_INSERT_WORK_ITEM", NULL}
-#define STMT_103 \
+#define STMT_INSERT_WORK_ITEM 104
+#define STMT_104_INFO {"STMT_INSERT_WORK_ITEM", NULL}
+#define STMT_104 \
"INSERT INTO work_queue (work) VALUES (?1) " \
""
-#define STMT_SELECT_WORK_ITEM 104
-#define STMT_104_INFO {"STMT_SELECT_WORK_ITEM", NULL}
-#define STMT_104 \
+#define STMT_SELECT_WORK_ITEM 105
+#define STMT_105_INFO {"STMT_SELECT_WORK_ITEM", NULL}
+#define STMT_105 \
"SELECT id, work FROM work_queue ORDER BY id LIMIT 1 " \
""
-#define STMT_DELETE_WORK_ITEM 105
-#define STMT_105_INFO {"STMT_DELETE_WORK_ITEM", NULL}
-#define STMT_105 \
+#define STMT_DELETE_WORK_ITEM 106
+#define STMT_106_INFO {"STMT_DELETE_WORK_ITEM", NULL}
+#define STMT_106 \
"DELETE FROM work_queue WHERE id = ?1 " \
""
-#define STMT_INSERT_OR_IGNORE_PRISTINE 106
-#define STMT_106_INFO {"STMT_INSERT_OR_IGNORE_PRISTINE", NULL}
-#define STMT_106 \
+#define STMT_INSERT_OR_IGNORE_PRISTINE 107
+#define STMT_107_INFO {"STMT_INSERT_OR_IGNORE_PRISTINE", NULL}
+#define STMT_107 \
"INSERT OR IGNORE INTO pristine (checksum, md5_checksum, size, refcount) " \
"VALUES (?1, ?2, ?3, 0) " \
""
-#define STMT_INSERT_PRISTINE 107
-#define STMT_107_INFO {"STMT_INSERT_PRISTINE", NULL}
-#define STMT_107 \
+#define STMT_INSERT_PRISTINE 108
+#define STMT_108_INFO {"STMT_INSERT_PRISTINE", NULL}
+#define STMT_108 \
"INSERT INTO pristine (checksum, md5_checksum, size, refcount) " \
"VALUES (?1, ?2, ?3, 0) " \
""
-#define STMT_SELECT_PRISTINE 108
-#define STMT_108_INFO {"STMT_SELECT_PRISTINE", NULL}
-#define STMT_108 \
+#define STMT_SELECT_PRISTINE 109
+#define STMT_109_INFO {"STMT_SELECT_PRISTINE", NULL}
+#define STMT_109 \
"SELECT md5_checksum " \
"FROM pristine " \
"WHERE checksum = ?1 " \
""
-#define STMT_SELECT_PRISTINE_SIZE 109
-#define STMT_109_INFO {"STMT_SELECT_PRISTINE_SIZE", NULL}
-#define STMT_109 \
+#define STMT_SELECT_PRISTINE_SIZE 110
+#define STMT_110_INFO {"STMT_SELECT_PRISTINE_SIZE", NULL}
+#define STMT_110 \
"SELECT size " \
"FROM pristine " \
"WHERE checksum = ?1 LIMIT 1 " \
""
-#define STMT_SELECT_PRISTINE_BY_MD5 110
-#define STMT_110_INFO {"STMT_SELECT_PRISTINE_BY_MD5", NULL}
-#define STMT_110 \
+#define STMT_SELECT_PRISTINE_BY_MD5 111
+#define STMT_111_INFO {"STMT_SELECT_PRISTINE_BY_MD5", NULL}
+#define STMT_111 \
"SELECT checksum " \
"FROM pristine " \
"WHERE md5_checksum = ?1 " \
""
-#define STMT_SELECT_UNREFERENCED_PRISTINES 111
-#define STMT_111_INFO {"STMT_SELECT_UNREFERENCED_PRISTINES", NULL}
-#define STMT_111 \
+#define STMT_SELECT_UNREFERENCED_PRISTINES 112
+#define STMT_112_INFO {"STMT_SELECT_UNREFERENCED_PRISTINES", NULL}
+#define STMT_112 \
"SELECT checksum " \
"FROM pristine " \
"WHERE refcount = 0 " \
""
-#define STMT_DELETE_PRISTINE_IF_UNREFERENCED 112
-#define STMT_112_INFO {"STMT_DELETE_PRISTINE_IF_UNREFERENCED", NULL}
-#define STMT_112 \
+#define STMT_DELETE_PRISTINE_IF_UNREFERENCED 113
+#define STMT_113_INFO {"STMT_DELETE_PRISTINE_IF_UNREFERENCED", NULL}
+#define STMT_113 \
"DELETE FROM pristine " \
"WHERE checksum = ?1 AND refcount = 0 " \
""
-#define STMT_SELECT_COPY_PRISTINES 113
-#define STMT_113_INFO {"STMT_SELECT_COPY_PRISTINES", NULL}
-#define STMT_113 \
+#define STMT_SELECT_COPY_PRISTINES 114
+#define STMT_114_INFO {"STMT_SELECT_COPY_PRISTINES", NULL}
+#define STMT_114 \
"SELECT n.checksum, md5_checksum, size " \
"FROM nodes_current n " \
"LEFT JOIN pristine p ON n.checksum = p.checksum " \
@@ -1185,62 +1199,62 @@
" AND n.checksum IS NOT NULL " \
""
-#define STMT_VACUUM 114
-#define STMT_114_INFO {"STMT_VACUUM", NULL}
-#define STMT_114 \
+#define STMT_VACUUM 115
+#define STMT_115_INFO {"STMT_VACUUM", NULL}
+#define STMT_115 \
"VACUUM " \
""
-#define STMT_SELECT_CONFLICT_VICTIMS 115
-#define STMT_115_INFO {"STMT_SELECT_CONFLICT_VICTIMS", NULL}
-#define STMT_115 \
+#define STMT_SELECT_CONFLICT_VICTIMS 116
+#define STMT_116_INFO {"STMT_SELECT_CONFLICT_VICTIMS", NULL}
+#define STMT_116 \
"SELECT local_relpath, conflict_data " \
"FROM actual_node " \
"WHERE wc_id = ?1 AND parent_relpath = ?2 AND " \
" NOT (conflict_data IS NULL) " \
""
-#define STMT_INSERT_WC_LOCK 116
-#define STMT_116_INFO {"STMT_INSERT_WC_LOCK", NULL}
-#define STMT_116 \
+#define STMT_INSERT_WC_LOCK 117
+#define STMT_117_INFO {"STMT_INSERT_WC_LOCK", NULL}
+#define STMT_117 \
"INSERT INTO wc_lock (wc_id, local_dir_relpath, locked_levels) " \
"VALUES (?1, ?2, ?3) " \
""
-#define STMT_SELECT_WC_LOCK 117
-#define STMT_117_INFO {"STMT_SELECT_WC_LOCK", NULL}
-#define STMT_117 \
+#define STMT_SELECT_WC_LOCK 118
+#define STMT_118_INFO {"STMT_SELECT_WC_LOCK", NULL}
+#define STMT_118 \
"SELECT locked_levels FROM wc_lock " \
"WHERE wc_id = ?1 AND local_dir_relpath = ?2 " \
""
-#define STMT_SELECT_ANCESTOR_WCLOCKS 118
-#define STMT_118_INFO {"STMT_SELECT_ANCESTOR_WCLOCKS", NULL}
-#define STMT_118 \
+#define STMT_SELECT_ANCESTOR_WCLOCKS 119
+#define STMT_119_INFO {"STMT_SELECT_ANCESTOR_WCLOCKS", NULL}
+#define STMT_119 \
"SELECT local_dir_relpath, locked_levels FROM wc_lock " \
"WHERE wc_id = ?1 " \
" AND ((local_dir_relpath >= ?3 AND local_dir_relpath <= ?2) " \
" OR local_dir_relpath = '') " \
""
-#define STMT_DELETE_WC_LOCK 119
-#define STMT_119_INFO {"STMT_DELETE_WC_LOCK", NULL}
-#define STMT_119 \
+#define STMT_DELETE_WC_LOCK 120
+#define STMT_120_INFO {"STMT_DELETE_WC_LOCK", NULL}
+#define STMT_120 \
"DELETE FROM wc_lock " \
"WHERE wc_id = ?1 AND local_dir_relpath = ?2 " \
""
-#define STMT_FIND_WC_LOCK 120
-#define STMT_120_INFO {"STMT_FIND_WC_LOCK", NULL}
-#define STMT_120 \
+#define STMT_FIND_WC_LOCK 121
+#define STMT_121_INFO {"STMT_FIND_WC_LOCK", NULL}
+#define STMT_121 \
"SELECT local_dir_relpath FROM wc_lock " \
"WHERE wc_id = ?1 " \
" AND (((local_dir_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_dir_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
""
-#define STMT_FIND_CONFLICT_DESCENDANT 121
-#define STMT_121_INFO {"STMT_FIND_CONFLICT_DESCENDANT", NULL}
-#define STMT_121 \
+#define STMT_FIND_CONFLICT_DESCENDANT 122
+#define STMT_122_INFO {"STMT_FIND_CONFLICT_DESCENDANT", NULL}
+#define STMT_122 \
"SELECT 1 FROM actual_node " \
"WHERE wc_id = ?1 " \
" AND local_relpath > (?2 || '/') " \
@@ -1249,9 +1263,9 @@
"LIMIT 1 " \
""
-#define STMT_DELETE_WC_LOCK_ORPHAN 122
-#define STMT_122_INFO {"STMT_DELETE_WC_LOCK_ORPHAN", NULL}
-#define STMT_122 \
+#define STMT_DELETE_WC_LOCK_ORPHAN 123
+#define STMT_123_INFO {"STMT_DELETE_WC_LOCK_ORPHAN", NULL}
+#define STMT_123 \
"DELETE FROM wc_lock " \
"WHERE wc_id = ?1 AND local_dir_relpath = ?2 " \
"AND NOT EXISTS (SELECT 1 FROM nodes " \
@@ -1259,9 +1273,9 @@
" AND nodes.local_relpath = wc_lock.local_dir_relpath) " \
""
-#define STMT_DELETE_WC_LOCK_ORPHAN_RECURSIVE 123
-#define STMT_123_INFO {"STMT_DELETE_WC_LOCK_ORPHAN_RECURSIVE", NULL}
-#define STMT_123 \
+#define STMT_DELETE_WC_LOCK_ORPHAN_RECURSIVE 124
+#define STMT_124_INFO {"STMT_DELETE_WC_LOCK_ORPHAN_RECURSIVE", NULL}
+#define STMT_124 \
"DELETE FROM wc_lock " \
"WHERE wc_id = ?1 " \
" AND (local_dir_relpath = ?2 " \
@@ -1271,9 +1285,9 @@
" AND nodes.local_relpath = wc_lock.local_dir_relpath) " \
""
-#define STMT_APPLY_CHANGES_TO_BASE_NODE 124
-#define STMT_124_INFO {"STMT_APPLY_CHANGES_TO_BASE_NODE", NULL}
-#define STMT_124 \
+#define STMT_APPLY_CHANGES_TO_BASE_NODE 125
+#define STMT_125_INFO {"STMT_APPLY_CHANGES_TO_BASE_NODE", NULL}
+#define STMT_125 \
"INSERT OR REPLACE INTO nodes ( " \
" wc_id, local_relpath, op_depth, parent_relpath, repos_id, repos_path, " \
" revision, presence, depth, kind, changed_revision, changed_date, " \
@@ -1287,18 +1301,18 @@
" AND op_depth = 0)) " \
""
-#define STMT_INSTALL_WORKING_NODE_FOR_DELETE 125
-#define STMT_125_INFO {"STMT_INSTALL_WORKING_NODE_FOR_DELETE", NULL}
-#define STMT_125 \
+#define STMT_INSTALL_WORKING_NODE_FOR_DELETE 126
+#define STMT_126_INFO {"STMT_INSTALL_WORKING_NODE_FOR_DELETE", NULL}
+#define STMT_126 \
"INSERT INTO nodes ( " \
" wc_id, local_relpath, op_depth, " \
" parent_relpath, presence, kind) " \
"VALUES(?1, ?2, ?3, ?4, 'base-deleted', ?5) " \
""
-#define STMT_REPLACE_WITH_BASE_DELETED 126
-#define STMT_126_INFO {"STMT_REPLACE_WITH_BASE_DELETED", NULL}
-#define STMT_126 \
+#define STMT_REPLACE_WITH_BASE_DELETED 127
+#define STMT_127_INFO {"STMT_REPLACE_WITH_BASE_DELETED", NULL}
+#define STMT_127 \
"INSERT OR REPLACE INTO nodes (wc_id, local_relpath, op_depth, parent_relpath, " \
" kind, moved_to, presence) " \
"SELECT wc_id, local_relpath, op_depth, parent_relpath, " \
@@ -1309,9 +1323,9 @@
" AND op_depth = ?3 " \
""
-#define STMT_INSERT_DELETE_FROM_NODE_RECURSIVE 127
-#define STMT_127_INFO {"STMT_INSERT_DELETE_FROM_NODE_RECURSIVE", NULL}
-#define STMT_127 \
+#define STMT_INSERT_DELETE_FROM_NODE_RECURSIVE 128
+#define STMT_128_INFO {"STMT_INSERT_DELETE_FROM_NODE_RECURSIVE", NULL}
+#define STMT_128 \
"INSERT INTO nodes ( " \
" wc_id, local_relpath, op_depth, parent_relpath, presence, kind) " \
"SELECT wc_id, local_relpath, ?4 , parent_relpath, 'base-deleted', " \
@@ -1330,9 +1344,9 @@
"ORDER BY local_relpath " \
""
-#define STMT_INSERT_WORKING_NODE_FROM_BASE_COPY 128
-#define STMT_128_INFO {"STMT_INSERT_WORKING_NODE_FROM_BASE_COPY", NULL}
-#define STMT_128 \
+#define STMT_INSERT_WORKING_NODE_FROM_BASE_COPY 129
+#define STMT_129_INFO {"STMT_INSERT_WORKING_NODE_FROM_BASE_COPY", NULL}
+#define STMT_129 \
"INSERT OR REPLACE INTO nodes ( " \
" wc_id, local_relpath, op_depth, parent_relpath, repos_id, repos_path, " \
" revision, presence, depth, kind, changed_revision, changed_date, " \
@@ -1348,9 +1362,9 @@
"WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
""
-#define STMT_INSERT_DELETE_FROM_BASE 129
-#define STMT_129_INFO {"STMT_INSERT_DELETE_FROM_BASE", NULL}
-#define STMT_129 \
+#define STMT_INSERT_DELETE_FROM_BASE 130
+#define STMT_130_INFO {"STMT_INSERT_DELETE_FROM_BASE", NULL}
+#define STMT_130 \
"INSERT INTO nodes ( " \
" wc_id, local_relpath, op_depth, parent_relpath, presence, kind) " \
"SELECT wc_id, local_relpath, ?3 , parent_relpath, " \
@@ -1359,18 +1373,18 @@
"WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
""
-#define STMT_UPDATE_OP_DEPTH_INCREASE_RECURSIVE 130
-#define STMT_130_INFO {"STMT_UPDATE_OP_DEPTH_INCREASE_RECURSIVE", NULL}
-#define STMT_130 \
+#define STMT_UPDATE_OP_DEPTH_INCREASE_RECURSIVE 131
+#define STMT_131_INFO {"STMT_UPDATE_OP_DEPTH_INCREASE_RECURSIVE", NULL}
+#define STMT_131 \
"UPDATE nodes SET op_depth = ?3 + 1 " \
"WHERE wc_id = ?1 " \
" AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
" AND op_depth = ?3 " \
""
-#define STMT_COPY_OP_DEPTH_RECURSIVE 131
-#define STMT_131_INFO {"STMT_COPY_OP_DEPTH_RECURSIVE", NULL}
-#define STMT_131 \
+#define STMT_COPY_OP_DEPTH_RECURSIVE 132
+#define STMT_132_INFO {"STMT_COPY_OP_DEPTH_RECURSIVE", NULL}
+#define STMT_132 \
"INSERT INTO nodes ( " \
" wc_id, local_relpath, op_depth, parent_relpath, repos_id, repos_path, " \
" revision, presence, depth, kind, changed_revision, changed_date, " \
@@ -1395,16 +1409,16 @@
"ORDER BY local_relpath " \
""
-#define STMT_DOES_NODE_EXIST 132
-#define STMT_132_INFO {"STMT_DOES_NODE_EXIST", NULL}
-#define STMT_132 \
+#define STMT_DOES_NODE_EXIST 133
+#define STMT_133_INFO {"STMT_DOES_NODE_EXIST", NULL}
+#define STMT_133 \
"SELECT 1 FROM nodes WHERE wc_id = ?1 AND local_relpath = ?2 " \
"LIMIT 1 " \
""
-#define STMT_HAS_SERVER_EXCLUDED_DESCENDANTS 133
-#define STMT_133_INFO {"STMT_HAS_SERVER_EXCLUDED_DESCENDANTS", NULL}
-#define STMT_133 \
+#define STMT_HAS_SERVER_EXCLUDED_DESCENDANTS 134
+#define STMT_134_INFO {"STMT_HAS_SERVER_EXCLUDED_DESCENDANTS", NULL}
+#define STMT_134 \
"SELECT local_relpath FROM nodes " \
"WHERE wc_id = ?1 " \
" AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
@@ -1412,9 +1426,9 @@
"LIMIT 1 " \
""
-#define STMT_SELECT_ALL_EXCLUDED_DESCENDANTS 134
-#define STMT_134_INFO {"STMT_SELECT_ALL_EXCLUDED_DESCENDANTS", NULL}
-#define STMT_134 \
+#define STMT_SELECT_ALL_EXCLUDED_DESCENDANTS 135
+#define STMT_135_INFO {"STMT_SELECT_ALL_EXCLUDED_DESCENDANTS", NULL}
+#define STMT_135 \
"SELECT local_relpath FROM nodes " \
"WHERE wc_id = ?1 " \
" AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
@@ -1422,9 +1436,9 @@
" AND (presence = 'server-excluded' OR presence = 'excluded') " \
""
-#define STMT_INSERT_WORKING_NODE_COPY_FROM 135
-#define STMT_135_INFO {"STMT_INSERT_WORKING_NODE_COPY_FROM", NULL}
-#define STMT_135 \
+#define STMT_INSERT_WORKING_NODE_COPY_FROM 136
+#define STMT_136_INFO {"STMT_INSERT_WORKING_NODE_COPY_FROM", NULL}
+#define STMT_136 \
"INSERT OR REPLACE INTO nodes ( " \
" wc_id, local_relpath, op_depth, parent_relpath, repos_id, " \
" repos_path, revision, presence, depth, moved_here, kind, changed_revision, " \
@@ -1443,9 +1457,9 @@
"WHERE wc_id = ?1 AND local_relpath = ?2 " \
""
-#define STMT_INSERT_WORKING_NODE_COPY_FROM_DEPTH 136
-#define STMT_136_INFO {"STMT_INSERT_WORKING_NODE_COPY_FROM_DEPTH", NULL}
-#define STMT_136 \
+#define STMT_INSERT_WORKING_NODE_COPY_FROM_DEPTH 137
+#define STMT_137_INFO {"STMT_INSERT_WORKING_NODE_COPY_FROM_DEPTH", NULL}
+#define STMT_137 \
"INSERT OR REPLACE INTO nodes ( " \
" wc_id, local_relpath, op_depth, parent_relpath, repos_id, " \
" repos_path, revision, presence, depth, moved_here, kind, changed_revision, " \
@@ -1464,49 +1478,49 @@
"WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?7 " \
""
-#define STMT_UPDATE_BASE_REVISION 137
-#define STMT_137_INFO {"STMT_UPDATE_BASE_REVISION", NULL}
-#define STMT_137 \
+#define STMT_UPDATE_BASE_REVISION 138
+#define STMT_138_INFO {"STMT_UPDATE_BASE_REVISION", NULL}
+#define STMT_138 \
"UPDATE nodes SET revision = ?3 " \
"WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
""
-#define STMT_UPDATE_BASE_REPOS 138
-#define STMT_138_INFO {"STMT_UPDATE_BASE_REPOS", NULL}
-#define STMT_138 \
+#define STMT_UPDATE_BASE_REPOS 139
+#define STMT_139_INFO {"STMT_UPDATE_BASE_REPOS", NULL}
+#define STMT_139 \
"UPDATE nodes SET repos_id = ?3, repos_path = ?4 " \
"WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
""
-#define STMT_ACTUAL_HAS_CHILDREN 139
-#define STMT_139_INFO {"STMT_ACTUAL_HAS_CHILDREN", NULL}
-#define STMT_139 \
+#define STMT_ACTUAL_HAS_CHILDREN 140
+#define STMT_140_INFO {"STMT_ACTUAL_HAS_CHILDREN", NULL}
+#define STMT_140 \
"SELECT 1 FROM actual_node " \
"WHERE wc_id = ?1 AND parent_relpath = ?2 " \
"LIMIT 1 " \
""
-#define STMT_INSERT_EXTERNAL 140
-#define STMT_140_INFO {"STMT_INSERT_EXTERNAL", NULL}
-#define STMT_140 \
+#define STMT_INSERT_EXTERNAL 141
+#define STMT_141_INFO {"STMT_INSERT_EXTERNAL", NULL}
+#define STMT_141 \
"INSERT OR REPLACE INTO externals ( " \
" wc_id, local_relpath, parent_relpath, presence, kind, def_local_relpath, " \
" repos_id, def_repos_relpath, def_operational_revision, def_revision) " \
"VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10) " \
""
-#define STMT_SELECT_EXTERNAL_INFO 141
-#define STMT_141_INFO {"STMT_SELECT_EXTERNAL_INFO", NULL}
-#define STMT_141 \
+#define STMT_SELECT_EXTERNAL_INFO 142
+#define STMT_142_INFO {"STMT_SELECT_EXTERNAL_INFO", NULL}
+#define STMT_142 \
"SELECT presence, kind, def_local_relpath, repos_id, " \
" def_repos_relpath, def_operational_revision, def_revision " \
"FROM externals WHERE wc_id = ?1 AND local_relpath = ?2 " \
"LIMIT 1 " \
""
-#define STMT_DELETE_FILE_EXTERNALS 142
-#define STMT_142_INFO {"STMT_DELETE_FILE_EXTERNALS", NULL}
-#define STMT_142 \
+#define STMT_DELETE_FILE_EXTERNALS 143
+#define STMT_143_INFO {"STMT_DELETE_FILE_EXTERNALS", NULL}
+#define STMT_143 \
"DELETE FROM nodes " \
"WHERE wc_id = ?1 " \
" AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
@@ -1514,26 +1528,26 @@
" AND file_external IS NOT NULL " \
""
-#define STMT_DELETE_FILE_EXTERNAL_REGISTATIONS 143
-#define STMT_143_INFO {"STMT_DELETE_FILE_EXTERNAL_REGISTATIONS", NULL}
-#define STMT_143 \
+#define STMT_DELETE_FILE_EXTERNAL_REGISTATIONS 144
+#define STMT_144_INFO {"STMT_DELETE_FILE_EXTERNAL_REGISTATIONS", NULL}
+#define STMT_144 \
"DELETE FROM externals " \
"WHERE wc_id = ?1 " \
" AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
" AND kind != 'dir' " \
""
-#define STMT_DELETE_EXTERNAL_REGISTATIONS 144
-#define STMT_144_INFO {"STMT_DELETE_EXTERNAL_REGISTATIONS", NULL}
-#define STMT_144 \
+#define STMT_DELETE_EXTERNAL_REGISTATIONS 145
+#define STMT_145_INFO {"STMT_DELETE_EXTERNAL_REGISTATIONS", NULL}
+#define STMT_145 \
"DELETE FROM externals " \
"WHERE wc_id = ?1 " \
" AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
""
-#define STMT_SELECT_COMMITTABLE_EXTERNALS_BELOW 145
-#define STMT_145_INFO {"STMT_SELECT_COMMITTABLE_EXTERNALS_BELOW", NULL}
-#define STMT_145 \
+#define STMT_SELECT_COMMITTABLE_EXTERNALS_BELOW 146
+#define STMT_146_INFO {"STMT_SELECT_COMMITTABLE_EXTERNALS_BELOW", NULL}
+#define STMT_146 \
"SELECT local_relpath, kind, def_repos_relpath, " \
" (SELECT root FROM repository AS r WHERE r.id = e.repos_id) " \
"FROM externals e " \
@@ -1551,9 +1565,9 @@
" AND nodes.local_relpath = e.parent_relpath)) " \
""
-#define STMT_SELECT_COMMITTABLE_EXTERNALS_IMMEDIATELY_BELOW 146
-#define STMT_146_INFO {"STMT_SELECT_COMMITTABLE_EXTERNALS_IMMEDIATELY_BELOW", NULL}
-#define STMT_146 \
+#define STMT_SELECT_COMMITTABLE_EXTERNALS_IMMEDIATELY_BELOW 147
+#define STMT_147_INFO {"STMT_SELECT_COMMITTABLE_EXTERNALS_IMMEDIATELY_BELOW", NULL}
+#define STMT_147 \
"SELECT local_relpath, kind, def_repos_relpath, " \
" (SELECT root FROM repository AS r WHERE r.id = e.repos_id) " \
"FROM externals e " \
@@ -1572,25 +1586,25 @@
" AND nodes.local_relpath = e.parent_relpath)) " \
""
-#define STMT_SELECT_EXTERNALS_DEFINED 147
-#define STMT_147_INFO {"STMT_SELECT_EXTERNALS_DEFINED", NULL}
-#define STMT_147 \
+#define STMT_SELECT_EXTERNALS_DEFINED 148
+#define STMT_148_INFO {"STMT_SELECT_EXTERNALS_DEFINED", NULL}
+#define STMT_148 \
"SELECT local_relpath, def_local_relpath " \
"FROM externals " \
"WHERE (wc_id = ?1 AND def_local_relpath = ?2) " \
" OR (wc_id = ?1 AND (((def_local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((def_local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
""
-#define STMT_DELETE_EXTERNAL 148
-#define STMT_148_INFO {"STMT_DELETE_EXTERNAL", NULL}
-#define STMT_148 \
+#define STMT_DELETE_EXTERNAL 149
+#define STMT_149_INFO {"STMT_DELETE_EXTERNAL", NULL}
+#define STMT_149 \
"DELETE FROM externals " \
"WHERE wc_id = ?1 AND local_relpath = ?2 " \
""
-#define STMT_SELECT_EXTERNAL_PROPERTIES 149
-#define STMT_149_INFO {"STMT_SELECT_EXTERNAL_PROPERTIES", NULL}
-#define STMT_149 \
+#define STMT_SELECT_EXTERNAL_PROPERTIES 150
+#define STMT_150_INFO {"STMT_SELECT_EXTERNAL_PROPERTIES", NULL}
+#define STMT_150 \
"SELECT IFNULL((SELECT properties FROM actual_node a " \
" WHERE a.wc_id = ?1 AND A.local_relpath = n.local_relpath), " \
" properties), " \
@@ -1608,9 +1622,9 @@
" AND kind = 'dir' AND presence IN ('normal', 'incomplete') " \
""
-#define STMT_SELECT_CURRENT_PROPS_RECURSIVE 150
-#define STMT_150_INFO {"STMT_SELECT_CURRENT_PROPS_RECURSIVE", NULL}
-#define STMT_150 \
+#define STMT_SELECT_CURRENT_PROPS_RECURSIVE 151
+#define STMT_151_INFO {"STMT_SELECT_CURRENT_PROPS_RECURSIVE", NULL}
+#define STMT_151 \
"SELECT IFNULL((SELECT properties FROM actual_node a " \
" WHERE a.wc_id = ?1 AND A.local_relpath = n.local_relpath), " \
" properties), " \
@@ -1620,51 +1634,51 @@
" OR (wc_id = ?1 AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
""
-#define STMT_PRAGMA_LOCKING_MODE 151
-#define STMT_151_INFO {"STMT_PRAGMA_LOCKING_MODE", NULL}
-#define STMT_151 \
+#define STMT_PRAGMA_LOCKING_MODE 152
+#define STMT_152_INFO {"STMT_PRAGMA_LOCKING_MODE", NULL}
+#define STMT_152 \
"PRAGMA locking_mode = exclusive; " \
"PRAGMA journal_mode = DELETE " \
""
-#define STMT_FIND_REPOS_PATH_IN_WC 152
-#define STMT_152_INFO {"STMT_FIND_REPOS_PATH_IN_WC", NULL}
-#define STMT_152 \
+#define STMT_FIND_REPOS_PATH_IN_WC 153
+#define STMT_153_INFO {"STMT_FIND_REPOS_PATH_IN_WC", NULL}
+#define STMT_153 \
"SELECT local_relpath FROM nodes_current " \
" WHERE wc_id = ?1 AND repos_path = ?2 " \
""
-#define STMT_INSERT_ACTUAL_NODE 153
-#define STMT_153_INFO {"STMT_INSERT_ACTUAL_NODE", NULL}
-#define STMT_153 \
+#define STMT_INSERT_ACTUAL_NODE 154
+#define STMT_154_INFO {"STMT_INSERT_ACTUAL_NODE", NULL}
+#define STMT_154 \
"INSERT OR REPLACE INTO actual_node ( " \
" wc_id, local_relpath, parent_relpath, properties, changelist, conflict_data) " \
"VALUES (?1, ?2, ?3, ?4, ?5, ?6) " \
""
-#define STMT_SELECT_ALL_FILES 154
-#define STMT_154_INFO {"STMT_SELECT_ALL_FILES", NULL}
-#define STMT_154 \
+#define STMT_SELECT_ALL_FILES 155
+#define STMT_155_INFO {"STMT_SELECT_ALL_FILES", NULL}
+#define STMT_155 \
"SELECT local_relpath FROM nodes_current " \
"WHERE wc_id = ?1 AND parent_relpath = ?2 AND kind = 'file' " \
""
-#define STMT_UPDATE_NODE_PROPS 155
-#define STMT_155_INFO {"STMT_UPDATE_NODE_PROPS", NULL}
-#define STMT_155 \
+#define STMT_UPDATE_NODE_PROPS 156
+#define STMT_156_INFO {"STMT_UPDATE_NODE_PROPS", NULL}
+#define STMT_156 \
"UPDATE nodes SET properties = ?4 " \
"WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \
""
-#define STMT_PRAGMA_TABLE_INFO_NODES 156
-#define STMT_156_INFO {"STMT_PRAGMA_TABLE_INFO_NODES", NULL}
-#define STMT_156 \
+#define STMT_PRAGMA_TABLE_INFO_NODES 157
+#define STMT_157_INFO {"STMT_PRAGMA_TABLE_INFO_NODES", NULL}
+#define STMT_157 \
"PRAGMA table_info(\"NODES\") " \
""
-#define STMT_CREATE_TARGET_PROP_CACHE 157
-#define STMT_157_INFO {"STMT_CREATE_TARGET_PROP_CACHE", NULL}
-#define STMT_157 \
+#define STMT_CREATE_TARGET_PROP_CACHE 158
+#define STMT_158_INFO {"STMT_CREATE_TARGET_PROP_CACHE", NULL}
+#define STMT_158 \
"DROP TABLE IF EXISTS target_prop_cache; " \
"CREATE TEMPORARY TABLE target_prop_cache ( " \
" local_relpath TEXT NOT NULL PRIMARY KEY, " \
@@ -1673,9 +1687,9 @@
"); " \
""
-#define STMT_CACHE_TARGET_PROPS 158
-#define STMT_158_INFO {"STMT_CACHE_TARGET_PROPS", NULL}
-#define STMT_158 \
+#define STMT_CACHE_TARGET_PROPS 159
+#define STMT_159_INFO {"STMT_CACHE_TARGET_PROPS", NULL}
+#define STMT_159 \
"INSERT INTO target_prop_cache(local_relpath, kind, properties) " \
" SELECT n.local_relpath, n.kind, " \
" IFNULL((SELECT properties FROM actual_node AS a " \
@@ -1694,9 +1708,9 @@
" ORDER BY t.local_relpath " \
""
-#define STMT_CACHE_TARGET_PRISTINE_PROPS 159
-#define STMT_159_INFO {"STMT_CACHE_TARGET_PRISTINE_PROPS", NULL}
-#define STMT_159 \
+#define STMT_CACHE_TARGET_PRISTINE_PROPS 160
+#define STMT_160_INFO {"STMT_CACHE_TARGET_PRISTINE_PROPS", NULL}
+#define STMT_160 \
"INSERT INTO target_prop_cache(local_relpath, kind, properties) " \
" SELECT n.local_relpath, n.kind, " \
" CASE n.presence " \
@@ -1721,22 +1735,22 @@
" ORDER BY t.local_relpath " \
""
-#define STMT_SELECT_ALL_TARGET_PROP_CACHE 160
-#define STMT_160_INFO {"STMT_SELECT_ALL_TARGET_PROP_CACHE", NULL}
-#define STMT_160 \
+#define STMT_SELECT_ALL_TARGET_PROP_CACHE 161
+#define STMT_161_INFO {"STMT_SELECT_ALL_TARGET_PROP_CACHE", NULL}
+#define STMT_161 \
"SELECT local_relpath, properties FROM target_prop_cache " \
"ORDER BY local_relpath " \
""
-#define STMT_DROP_TARGET_PROP_CACHE 161
-#define STMT_161_INFO {"STMT_DROP_TARGET_PROP_CACHE", NULL}
-#define STMT_161 \
+#define STMT_DROP_TARGET_PROP_CACHE 162
+#define STMT_162_INFO {"STMT_DROP_TARGET_PROP_CACHE", NULL}
+#define STMT_162 \
"DROP TABLE target_prop_cache; " \
""
-#define STMT_CREATE_REVERT_LIST 162
-#define STMT_162_INFO {"STMT_CREATE_REVERT_LIST", NULL}
-#define STMT_162 \
+#define STMT_CREATE_REVERT_LIST 163
+#define STMT_163_INFO {"STMT_CREATE_REVERT_LIST", NULL}
+#define STMT_163 \
"DROP TABLE IF EXISTS revert_list; " \
"CREATE TEMPORARY TABLE revert_list ( " \
" local_relpath TEXT NOT NULL, " \
@@ -1794,26 +1808,26 @@
"END " \
""
-#define STMT_DROP_REVERT_LIST_TRIGGERS 163
-#define STMT_163_INFO {"STMT_DROP_REVERT_LIST_TRIGGERS", NULL}
-#define STMT_163 \
+#define STMT_DROP_REVERT_LIST_TRIGGERS 164
+#define STMT_164_INFO {"STMT_DROP_REVERT_LIST_TRIGGERS", NULL}
+#define STMT_164 \
"DROP TRIGGER trigger_revert_list_nodes; " \
"DROP TRIGGER trigger_revert_list_actual_delete; " \
"DROP TRIGGER trigger_revert_list_actual_update " \
""
-#define STMT_SELECT_REVERT_LIST 164
-#define STMT_164_INFO {"STMT_SELECT_REVERT_LIST", NULL}
-#define STMT_164 \
+#define STMT_SELECT_REVERT_LIST 165
+#define STMT_165_INFO {"STMT_SELECT_REVERT_LIST", NULL}
+#define STMT_165 \
"SELECT actual, notify, kind, op_depth, repos_id, conflict_data " \
"FROM revert_list " \
"WHERE local_relpath = ?1 " \
"ORDER BY actual DESC " \
""
-#define STMT_SELECT_REVERT_LIST_COPIED_CHILDREN 165
-#define STMT_165_INFO {"STMT_SELECT_REVERT_LIST_COPIED_CHILDREN", NULL}
-#define STMT_165 \
+#define STMT_SELECT_REVERT_LIST_COPIED_CHILDREN 166
+#define STMT_166_INFO {"STMT_SELECT_REVERT_LIST_COPIED_CHILDREN", NULL}
+#define STMT_166 \
"SELECT local_relpath, kind " \
"FROM revert_list " \
"WHERE (((local_relpath) > (CASE (?1) WHEN '' THEN '' ELSE (?1) || '/' END)) AND ((local_relpath) < CASE (?1) WHEN '' THEN X'FFFF' ELSE (?1) || '0' END)) " \
@@ -1822,15 +1836,15 @@
"ORDER BY local_relpath " \
""
-#define STMT_DELETE_REVERT_LIST 166
-#define STMT_166_INFO {"STMT_DELETE_REVERT_LIST", NULL}
-#define STMT_166 \
+#define STMT_DELETE_REVERT_LIST 167
+#define STMT_167_INFO {"STMT_DELETE_REVERT_LIST", NULL}
+#define STMT_167 \
"DELETE FROM revert_list WHERE local_relpath = ?1 " \
""
-#define STMT_SELECT_REVERT_LIST_RECURSIVE 167
-#define STMT_167_INFO {"STMT_SELECT_REVERT_LIST_RECURSIVE", NULL}
-#define STMT_167 \
+#define STMT_SELECT_REVERT_LIST_RECURSIVE 168
+#define STMT_168_INFO {"STMT_SELECT_REVERT_LIST_RECURSIVE", NULL}
+#define STMT_168 \
"SELECT p.local_relpath, n.kind, a.notify, a.kind " \
"FROM (SELECT DISTINCT local_relpath " \
" FROM revert_list " \
@@ -1841,32 +1855,32 @@
"ORDER BY p.local_relpath " \
""
-#define STMT_DELETE_REVERT_LIST_RECURSIVE 168
-#define STMT_168_INFO {"STMT_DELETE_REVERT_LIST_RECURSIVE", NULL}
-#define STMT_168 \
+#define STMT_DELETE_REVERT_LIST_RECURSIVE 169
+#define STMT_169_INFO {"STMT_DELETE_REVERT_LIST_RECURSIVE", NULL}
+#define STMT_169 \
"DELETE FROM revert_list " \
"WHERE (local_relpath = ?1 " \
" OR (((local_relpath) > (CASE (?1) WHEN '' THEN '' ELSE (?1) || '/' END)) AND ((local_relpath) < CASE (?1) WHEN '' THEN X'FFFF' ELSE (?1) || '0' END))) " \
""
-#define STMT_DROP_REVERT_LIST 169
-#define STMT_169_INFO {"STMT_DROP_REVERT_LIST", NULL}
-#define STMT_169 \
+#define STMT_DROP_REVERT_LIST 170
+#define STMT_170_INFO {"STMT_DROP_REVERT_LIST", NULL}
+#define STMT_170 \
"DROP TABLE IF EXISTS revert_list " \
""
-#define STMT_CREATE_DELETE_LIST 170
-#define STMT_170_INFO {"STMT_CREATE_DELETE_LIST", NULL}
-#define STMT_170 \
+#define STMT_CREATE_DELETE_LIST 171
+#define STMT_171_INFO {"STMT_CREATE_DELETE_LIST", NULL}
+#define STMT_171 \
"DROP TABLE IF EXISTS delete_list; " \
"CREATE TEMPORARY TABLE delete_list ( " \
" local_relpath TEXT PRIMARY KEY NOT NULL UNIQUE " \
" ) " \
""
-#define STMT_INSERT_DELETE_LIST 171
-#define STMT_171_INFO {"STMT_INSERT_DELETE_LIST", NULL}
-#define STMT_171 \
+#define STMT_INSERT_DELETE_LIST 172
+#define STMT_172_INFO {"STMT_INSERT_DELETE_LIST", NULL}
+#define STMT_172 \
"INSERT INTO delete_list(local_relpath) " \
"SELECT ?2 " \
"UNION ALL " \
@@ -1882,22 +1896,22 @@
"ORDER by local_relpath " \
""
-#define STMT_SELECT_DELETE_LIST 172
-#define STMT_172_INFO {"STMT_SELECT_DELETE_LIST", NULL}
-#define STMT_172 \
+#define STMT_SELECT_DELETE_LIST 173
+#define STMT_173_INFO {"STMT_SELECT_DELETE_LIST", NULL}
+#define STMT_173 \
"SELECT local_relpath FROM delete_list " \
"ORDER BY local_relpath " \
""
-#define STMT_FINALIZE_DELETE 173
-#define STMT_173_INFO {"STMT_FINALIZE_DELETE", NULL}
-#define STMT_173 \
+#define STMT_FINALIZE_DELETE 174
+#define STMT_174_INFO {"STMT_FINALIZE_DELETE", NULL}
+#define STMT_174 \
"DROP TABLE IF EXISTS delete_list " \
""
-#define STMT_CREATE_UPDATE_MOVE_LIST 174
-#define STMT_174_INFO {"STMT_CREATE_UPDATE_MOVE_LIST", NULL}
-#define STMT_174 \
+#define STMT_CREATE_UPDATE_MOVE_LIST 175
+#define STMT_175_INFO {"STMT_CREATE_UPDATE_MOVE_LIST", NULL}
+#define STMT_175 \
"DROP TABLE IF EXISTS update_move_list; " \
"CREATE TEMPORARY TABLE update_move_list ( " \
" local_relpath TEXT PRIMARY KEY NOT NULL UNIQUE, " \
@@ -1908,39 +1922,39 @@
" ) " \
""
-#define STMT_INSERT_UPDATE_MOVE_LIST 175
-#define STMT_175_INFO {"STMT_INSERT_UPDATE_MOVE_LIST", NULL}
-#define STMT_175 \
+#define STMT_INSERT_UPDATE_MOVE_LIST 176
+#define STMT_176_INFO {"STMT_INSERT_UPDATE_MOVE_LIST", NULL}
+#define STMT_176 \
"INSERT INTO update_move_list(local_relpath, action, kind, content_state, " \
" prop_state) " \
"VALUES (?1, ?2, ?3, ?4, ?5) " \
""
-#define STMT_SELECT_UPDATE_MOVE_LIST 176
-#define STMT_176_INFO {"STMT_SELECT_UPDATE_MOVE_LIST", NULL}
-#define STMT_176 \
+#define STMT_SELECT_UPDATE_MOVE_LIST 177
+#define STMT_177_INFO {"STMT_SELECT_UPDATE_MOVE_LIST", NULL}
+#define STMT_177 \
"SELECT local_relpath, action, kind, content_state, prop_state " \
"FROM update_move_list " \
"ORDER BY local_relpath " \
""
-#define STMT_FINALIZE_UPDATE_MOVE 177
-#define STMT_177_INFO {"STMT_FINALIZE_UPDATE_MOVE", NULL}
-#define STMT_177 \
+#define STMT_FINALIZE_UPDATE_MOVE 178
+#define STMT_178_INFO {"STMT_FINALIZE_UPDATE_MOVE", NULL}
+#define STMT_178 \
"DROP TABLE IF EXISTS update_move_list " \
""
-#define STMT_MOVE_NOTIFY_TO_REVERT 178
-#define STMT_178_INFO {"STMT_MOVE_NOTIFY_TO_REVERT", NULL}
-#define STMT_178 \
+#define STMT_MOVE_NOTIFY_TO_REVERT 179
+#define STMT_179_INFO {"STMT_MOVE_NOTIFY_TO_REVERT", NULL}
+#define STMT_179 \
"INSERT INTO revert_list (local_relpath, notify, kind, actual) " \
" SELECT local_relpath, 2, kind, 1 FROM update_move_list; " \
"DROP TABLE update_move_list " \
""
-#define STMT_SELECT_MIN_MAX_REVISIONS 179
-#define STMT_179_INFO {"STMT_SELECT_MIN_MAX_REVISIONS", NULL}
-#define STMT_179 \
+#define STMT_SELECT_MIN_MAX_REVISIONS 180
+#define STMT_180_INFO {"STMT_SELECT_MIN_MAX_REVISIONS", NULL}
+#define STMT_180 \
"SELECT MIN(revision), MAX(revision), " \
" MIN(changed_revision), MAX(changed_revision) FROM nodes " \
" WHERE wc_id = ?1 " \
@@ -1951,9 +1965,9 @@
" AND op_depth = 0 " \
""
-#define STMT_HAS_SPARSE_NODES 180
-#define STMT_180_INFO {"STMT_HAS_SPARSE_NODES", NULL}
-#define STMT_180 \
+#define STMT_HAS_SPARSE_NODES 181
+#define STMT_181_INFO {"STMT_HAS_SPARSE_NODES", NULL}
+#define STMT_181 \
"SELECT 1 FROM nodes " \
"WHERE wc_id = ?1 " \
" AND (local_relpath = ?2 " \
@@ -1965,9 +1979,9 @@
"LIMIT 1 " \
""
-#define STMT_SUBTREE_HAS_TREE_MODIFICATIONS 181
-#define STMT_181_INFO {"STMT_SUBTREE_HAS_TREE_MODIFICATIONS", NULL}
-#define STMT_181 \
+#define STMT_SUBTREE_HAS_TREE_MODIFICATIONS 182
+#define STMT_182_INFO {"STMT_SUBTREE_HAS_TREE_MODIFICATIONS", NULL}
+#define STMT_182 \
"SELECT 1 FROM nodes " \
"WHERE wc_id = ?1 " \
" AND (local_relpath = ?2 " \
@@ -1976,9 +1990,9 @@
"LIMIT 1 " \
""
-#define STMT_SUBTREE_HAS_PROP_MODIFICATIONS 182
-#define STMT_182_INFO {"STMT_SUBTREE_HAS_PROP_MODIFICATIONS", NULL}
-#define STMT_182 \
+#define STMT_SUBTREE_HAS_PROP_MODIFICATIONS 183
+#define STMT_183_INFO {"STMT_SUBTREE_HAS_PROP_MODIFICATIONS", NULL}
+#define STMT_183 \
"SELECT 1 FROM actual_node " \
"WHERE wc_id = ?1 " \
" AND (local_relpath = ?2 " \
@@ -1987,9 +2001,9 @@
"LIMIT 1 " \
""
-#define STMT_HAS_SWITCHED 183
-#define STMT_183_INFO {"STMT_HAS_SWITCHED", NULL}
-#define STMT_183 \
+#define STMT_HAS_SWITCHED 184
+#define STMT_184_INFO {"STMT_HAS_SWITCHED", NULL}
+#define STMT_184 \
"SELECT 1 " \
"FROM nodes " \
"WHERE wc_id = ?1 " \
@@ -2001,47 +2015,47 @@
"LIMIT 1 " \
""
-#define STMT_SELECT_MOVED_FROM_RELPATH 184
-#define STMT_184_INFO {"STMT_SELECT_MOVED_FROM_RELPATH", NULL}
-#define STMT_184 \
+#define STMT_SELECT_MOVED_FROM_RELPATH 185
+#define STMT_185_INFO {"STMT_SELECT_MOVED_FROM_RELPATH", NULL}
+#define STMT_185 \
"SELECT local_relpath, op_depth FROM nodes " \
"WHERE wc_id = ?1 AND moved_to = ?2 AND op_depth > 0 " \
""
-#define STMT_UPDATE_MOVED_TO_RELPATH 185
-#define STMT_185_INFO {"STMT_UPDATE_MOVED_TO_RELPATH", NULL}
-#define STMT_185 \
+#define STMT_UPDATE_MOVED_TO_RELPATH 186
+#define STMT_186_INFO {"STMT_UPDATE_MOVED_TO_RELPATH", NULL}
+#define STMT_186 \
"UPDATE nodes SET moved_to = ?4 " \
"WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \
""
-#define STMT_CLEAR_MOVED_TO_RELPATH 186
-#define STMT_186_INFO {"STMT_CLEAR_MOVED_TO_RELPATH", NULL}
-#define STMT_186 \
+#define STMT_CLEAR_MOVED_TO_RELPATH 187
+#define STMT_187_INFO {"STMT_CLEAR_MOVED_TO_RELPATH", NULL}
+#define STMT_187 \
"UPDATE nodes SET moved_to = NULL " \
"WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \
""
-#define STMT_CLEAR_MOVED_HERE_RECURSIVE 187
-#define STMT_187_INFO {"STMT_CLEAR_MOVED_HERE_RECURSIVE", NULL}
-#define STMT_187 \
+#define STMT_CLEAR_MOVED_HERE_RECURSIVE 188
+#define STMT_188_INFO {"STMT_CLEAR_MOVED_HERE_RECURSIVE", NULL}
+#define STMT_188 \
"UPDATE nodes SET moved_here = NULL " \
"WHERE wc_id = ?1 " \
" AND (local_relpath = ?2 OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
" AND op_depth = ?3 " \
""
-#define STMT_SELECT_MOVED_HERE_CHILDREN 188
-#define STMT_188_INFO {"STMT_SELECT_MOVED_HERE_CHILDREN", NULL}
-#define STMT_188 \
+#define STMT_SELECT_MOVED_HERE_CHILDREN 189
+#define STMT_189_INFO {"STMT_SELECT_MOVED_HERE_CHILDREN", NULL}
+#define STMT_189 \
"SELECT moved_to, local_relpath FROM nodes " \
"WHERE wc_id = ?1 AND op_depth > 0 " \
" AND (((moved_to) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((moved_to) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
""
-#define STMT_SELECT_MOVED_FOR_DELETE 189
-#define STMT_189_INFO {"STMT_SELECT_MOVED_FOR_DELETE", NULL}
-#define STMT_189 \
+#define STMT_SELECT_MOVED_FOR_DELETE 190
+#define STMT_190_INFO {"STMT_SELECT_MOVED_FOR_DELETE", NULL}
+#define STMT_190 \
"SELECT local_relpath, moved_to, op_depth, " \
" (SELECT CASE WHEN r.moved_here THEN r.op_depth END FROM nodes r " \
" WHERE r.wc_id = ?1 " \
@@ -2055,9 +2069,9 @@
" AND op_depth >= ?3 " \
""
-#define STMT_SELECT_MOVED_FROM_FOR_DELETE 190
-#define STMT_190_INFO {"STMT_SELECT_MOVED_FROM_FOR_DELETE", NULL}
-#define STMT_190 \
+#define STMT_SELECT_MOVED_FROM_FOR_DELETE 191
+#define STMT_191_INFO {"STMT_SELECT_MOVED_FROM_FOR_DELETE", NULL}
+#define STMT_191 \
"SELECT local_relpath, op_depth, " \
" (SELECT CASE WHEN r.moved_here THEN r.op_depth END FROM nodes r " \
" WHERE r.wc_id = ?1 " \
@@ -2068,25 +2082,25 @@
"WHERE wc_id = ?1 AND moved_to = ?2 AND op_depth > 0 " \
""
-#define STMT_UPDATE_MOVED_TO_DESCENDANTS 191
-#define STMT_191_INFO {"STMT_UPDATE_MOVED_TO_DESCENDANTS", NULL}
-#define STMT_191 \
+#define STMT_UPDATE_MOVED_TO_DESCENDANTS 192
+#define STMT_192_INFO {"STMT_UPDATE_MOVED_TO_DESCENDANTS", NULL}
+#define STMT_192 \
"UPDATE nodes SET moved_to = (CASE WHEN (?2) = '' THEN (CASE WHEN (?3) = '' THEN (moved_to) WHEN (moved_to) = '' THEN (?3) ELSE (?3) || '/' || (moved_to) END) WHEN (?3) = '' THEN (CASE WHEN (?2) = '' THEN (moved_to) WHEN SUBSTR((moved_to), 1, LENGTH(?2)) = (?2) THEN CASE WHEN LENGTH(?2) = LENGTH(moved_to) THEN '' WHEN SUBSTR((moved_to), LENGTH(?2)+1, 1) = '/' THEN SUBSTR((moved_to), LENGTH(?2)+2) END END) WHEN SUBSTR((moved_to), 1, LENGTH(?2)) = (?2) THEN CASE WHEN LENGTH(?2) = LENGTH(moved_to) THEN (?3) WHEN SUBSTR((moved_to), LENGTH(?2)+1, 1) = '/' THEN (?3) || SUBSTR((moved_to), LENGTH(?2)+1) END END) " \
" WHERE wc_id = ?1 " \
" AND (((moved_to) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((moved_to) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
""
-#define STMT_CLEAR_MOVED_TO_DESCENDANTS 192
-#define STMT_192_INFO {"STMT_CLEAR_MOVED_TO_DESCENDANTS", NULL}
-#define STMT_192 \
+#define STMT_CLEAR_MOVED_TO_DESCENDANTS 193
+#define STMT_193_INFO {"STMT_CLEAR_MOVED_TO_DESCENDANTS", NULL}
+#define STMT_193 \
"UPDATE nodes SET moved_to = NULL " \
" WHERE wc_id = ?1 " \
" AND (((moved_to) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((moved_to) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
""
-#define STMT_SELECT_MOVED_PAIR3 193
-#define STMT_193_INFO {"STMT_SELECT_MOVED_PAIR3", NULL}
-#define STMT_193 \
+#define STMT_SELECT_MOVED_PAIR3 194
+#define STMT_194_INFO {"STMT_SELECT_MOVED_PAIR3", NULL}
+#define STMT_194 \
"SELECT n.local_relpath, d.moved_to, d.op_depth, n.kind " \
"FROM nodes n " \
"JOIN nodes d ON d.wc_id = ?1 AND d.local_relpath = n.local_relpath " \
@@ -2112,9 +2126,9 @@
"ORDER BY n.local_relpath " \
""
-#define STMT_SELECT_MOVED_OUTSIDE 194
-#define STMT_194_INFO {"STMT_SELECT_MOVED_OUTSIDE", NULL}
-#define STMT_194 \
+#define STMT_SELECT_MOVED_OUTSIDE 195
+#define STMT_195_INFO {"STMT_SELECT_MOVED_OUTSIDE", NULL}
+#define STMT_195 \
"SELECT local_relpath, moved_to, op_depth FROM nodes " \
"WHERE wc_id = ?1 " \
" AND (local_relpath = ?2 OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
@@ -2123,9 +2137,9 @@
" AND NOT (((moved_to) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((moved_to) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
""
-#define STMT_SELECT_MOVED_DESCENDANTS_SRC 195
-#define STMT_195_INFO {"STMT_SELECT_MOVED_DESCENDANTS_SRC", NULL}
-#define STMT_195 \
+#define STMT_SELECT_MOVED_DESCENDANTS_SRC 196
+#define STMT_196_INFO {"STMT_SELECT_MOVED_DESCENDANTS_SRC", NULL}
+#define STMT_196 \
"SELECT s.op_depth, n.local_relpath, n.kind, n.repos_path, s.moved_to " \
"FROM nodes n " \
"JOIN nodes s ON s.wc_id = n.wc_id AND s.local_relpath = n.local_relpath " \
@@ -2139,9 +2153,9 @@
" AND s.moved_to IS NOT NULL " \
""
-#define STMT_COMMIT_UPDATE_ORIGIN 196
-#define STMT_196_INFO {"STMT_COMMIT_UPDATE_ORIGIN", NULL}
-#define STMT_196 \
+#define STMT_COMMIT_UPDATE_ORIGIN 197
+#define STMT_197_INFO {"STMT_COMMIT_UPDATE_ORIGIN", NULL}
+#define STMT_197 \
"UPDATE nodes SET repos_id = ?4, " \
" repos_path = (CASE WHEN (?2) = '' THEN (CASE WHEN (?5) = '' THEN (local_relpath) WHEN (local_relpath) = '' THEN (?5) ELSE (?5) || '/' || (local_relpath) END) WHEN (?5) = '' THEN (CASE WHEN (?2) = '' THEN (local_relpath) WHEN SUBSTR((local_relpath), 1, LENGTH(?2)) = (?2) THEN CASE WHEN LENGTH(?2) = LENGTH(local_relpath) THEN '' WHEN SUBSTR((local_relpath), LENGTH(?2)+1, 1) = '/' THEN SUBSTR((local_relpath), LENGTH(?2)+2) END END) WHEN SUBSTR((local_relpath), 1, LENGTH(?2)) = (?2) THEN CASE WHEN LENGTH(?2) = LENGTH(local_relpath) THEN (?5) WHEN SUBSTR((local_relpath), LENGTH(?2)+1, 1) = '/' THEN (?5) || SUBSTR((local_relpath), LENGTH(?2)+1) END END), " \
" revision = ?6 " \
@@ -2151,16 +2165,16 @@
" AND op_depth = ?3 " \
""
-#define STMT_HAS_LAYER_BETWEEN 197
-#define STMT_197_INFO {"STMT_HAS_LAYER_BETWEEN", NULL}
-#define STMT_197 \
+#define STMT_HAS_LAYER_BETWEEN 198
+#define STMT_198_INFO {"STMT_HAS_LAYER_BETWEEN", NULL}
+#define STMT_198 \
"SELECT 1 FROM NODES " \
"WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth > ?3 AND op_depth < ?4 " \
""
-#define STMT_SELECT_REPOS_PATH_REVISION 198
-#define STMT_198_INFO {"STMT_SELECT_REPOS_PATH_REVISION", NULL}
-#define STMT_198 \
+#define STMT_SELECT_REPOS_PATH_REVISION 199
+#define STMT_199_INFO {"STMT_SELECT_REPOS_PATH_REVISION", NULL}
+#define STMT_199 \
"SELECT local_relpath, repos_path, revision FROM nodes " \
"WHERE wc_id = ?1 " \
" AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
@@ -2168,17 +2182,17 @@
"ORDER BY local_relpath " \
""
-#define STMT_SELECT_HAS_NON_FILE_CHILDREN 199
-#define STMT_199_INFO {"STMT_SELECT_HAS_NON_FILE_CHILDREN", NULL}
-#define STMT_199 \
+#define STMT_SELECT_HAS_NON_FILE_CHILDREN 200
+#define STMT_200_INFO {"STMT_SELECT_HAS_NON_FILE_CHILDREN", NULL}
+#define STMT_200 \
"SELECT 1 FROM nodes " \
"WHERE wc_id = ?1 AND parent_relpath = ?2 AND op_depth = ?3 AND kind != 'file' " \
"LIMIT 1 " \
""
-#define STMT_SELECT_HAS_GRANDCHILDREN 200
-#define STMT_200_INFO {"STMT_SELECT_HAS_GRANDCHILDREN", NULL}
-#define STMT_200 \
+#define STMT_SELECT_HAS_GRANDCHILDREN 201
+#define STMT_201_INFO {"STMT_SELECT_HAS_GRANDCHILDREN", NULL}
+#define STMT_201 \
"SELECT 1 FROM nodes " \
"WHERE wc_id = ?1 " \
" AND (((parent_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((parent_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
@@ -2187,24 +2201,24 @@
"LIMIT 1 " \
""
-#define STMT_SELECT_ALL_NODES 201
-#define STMT_201_INFO {"STMT_SELECT_ALL_NODES", NULL}
-#define STMT_201 \
+#define STMT_SELECT_ALL_NODES 202
+#define STMT_202_INFO {"STMT_SELECT_ALL_NODES", NULL}
+#define STMT_202 \
"SELECT op_depth, local_relpath, parent_relpath, file_external FROM nodes " \
"WHERE wc_id = ?1 " \
""
-#define STMT_UPDATE_IPROP 202
-#define STMT_202_INFO {"STMT_UPDATE_IPROP", NULL}
-#define STMT_202 \
+#define STMT_UPDATE_IPROP 203
+#define STMT_203_INFO {"STMT_UPDATE_IPROP", NULL}
+#define STMT_203 \
"UPDATE nodes " \
"SET inherited_props = ?3 " \
"WHERE (wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0) " \
""
-#define STMT_SELECT_IPROPS_NODE 203
-#define STMT_203_INFO {"STMT_SELECT_IPROPS_NODE", NULL}
-#define STMT_203 \
+#define STMT_SELECT_IPROPS_NODE 204
+#define STMT_204_INFO {"STMT_SELECT_IPROPS_NODE", NULL}
+#define STMT_204 \
"SELECT local_relpath, repos_path FROM nodes " \
"WHERE wc_id = ?1 " \
" AND local_relpath = ?2 " \
@@ -2212,9 +2226,9 @@
" AND (inherited_props not null) " \
""
-#define STMT_SELECT_IPROPS_RECURSIVE 204
-#define STMT_204_INFO {"STMT_SELECT_IPROPS_RECURSIVE", NULL}
-#define STMT_204 \
+#define STMT_SELECT_IPROPS_RECURSIVE 205
+#define STMT_205_INFO {"STMT_SELECT_IPROPS_RECURSIVE", NULL}
+#define STMT_205 \
"SELECT local_relpath, repos_path FROM nodes " \
"WHERE wc_id = ?1 " \
" AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
@@ -2222,9 +2236,9 @@
" AND (inherited_props not null) " \
""
-#define STMT_SELECT_IPROPS_CHILDREN 205
-#define STMT_205_INFO {"STMT_SELECT_IPROPS_CHILDREN", NULL}
-#define STMT_205 \
+#define STMT_SELECT_IPROPS_CHILDREN 206
+#define STMT_206_INFO {"STMT_SELECT_IPROPS_CHILDREN", NULL}
+#define STMT_206 \
"SELECT local_relpath, repos_path FROM nodes " \
"WHERE wc_id = ?1 " \
" AND parent_relpath = ?2 " \
@@ -2232,16 +2246,16 @@
" AND (inherited_props not null) " \
""
-#define STMT_HAVE_STAT1_TABLE 206
-#define STMT_206_INFO {"STMT_HAVE_STAT1_TABLE", NULL}
-#define STMT_206 \
+#define STMT_HAVE_STAT1_TABLE 207
+#define STMT_207_INFO {"STMT_HAVE_STAT1_TABLE", NULL}
+#define STMT_207 \
"SELECT 1 FROM sqlite_master WHERE name='sqlite_stat1' AND type='table' " \
"LIMIT 1 " \
""
-#define STMT_CREATE_SCHEMA 207
-#define STMT_207_INFO {"STMT_CREATE_SCHEMA", NULL}
-#define STMT_207 \
+#define STMT_CREATE_SCHEMA 208
+#define STMT_208_INFO {"STMT_CREATE_SCHEMA", NULL}
+#define STMT_208 \
"CREATE TABLE REPOSITORY ( " \
" id INTEGER PRIMARY KEY AUTOINCREMENT, " \
" root TEXT UNIQUE NOT NULL, " \
@@ -2382,9 +2396,9 @@
"; " \
""
-#define STMT_INSTALL_SCHEMA_STATISTICS 208
-#define STMT_208_INFO {"STMT_INSTALL_SCHEMA_STATISTICS", NULL}
-#define STMT_208 \
+#define STMT_INSTALL_SCHEMA_STATISTICS 209
+#define STMT_209_INFO {"STMT_INSTALL_SCHEMA_STATISTICS", NULL}
+#define STMT_209 \
"ANALYZE sqlite_master; " \
"DELETE FROM sqlite_stat1 " \
"WHERE tbl in ('NODES', 'ACTUAL_NODE', 'LOCK', 'WC_LOCK', 'EXTERNALS'); " \
@@ -2409,9 +2423,9 @@
"ANALYZE sqlite_master; " \
""
-#define STMT_UPGRADE_TO_30 209
-#define STMT_209_INFO {"STMT_UPGRADE_TO_30", NULL}
-#define STMT_209 \
+#define STMT_UPGRADE_TO_30 210
+#define STMT_210_INFO {"STMT_UPGRADE_TO_30", NULL}
+#define STMT_210 \
"CREATE UNIQUE INDEX IF NOT EXISTS I_NODES_MOVED " \
"ON NODES (wc_id, moved_to, op_depth); " \
"CREATE INDEX IF NOT EXISTS I_PRISTINE_MD5 ON PRISTINE (md5_checksum); " \
@@ -2419,9 +2433,9 @@
"UPDATE nodes SET file_external=1 WHERE file_external IS NOT NULL; " \
""
-#define STMT_UPGRADE_30_SELECT_CONFLICT_SEPARATE 210
-#define STMT_210_INFO {"STMT_UPGRADE_30_SELECT_CONFLICT_SEPARATE", NULL}
-#define STMT_210 \
+#define STMT_UPGRADE_30_SELECT_CONFLICT_SEPARATE 211
+#define STMT_211_INFO {"STMT_UPGRADE_30_SELECT_CONFLICT_SEPARATE", NULL}
+#define STMT_211 \
"SELECT wc_id, local_relpath, " \
" conflict_old, conflict_working, conflict_new, prop_reject, tree_conflict_data " \
"FROM actual_node " \
@@ -2433,18 +2447,18 @@
"ORDER by wc_id, local_relpath " \
""
-#define STMT_UPGRADE_30_SET_CONFLICT 211
-#define STMT_211_INFO {"STMT_UPGRADE_30_SET_CONFLICT", NULL}
-#define STMT_211 \
+#define STMT_UPGRADE_30_SET_CONFLICT 212
+#define STMT_212_INFO {"STMT_UPGRADE_30_SET_CONFLICT", NULL}
+#define STMT_212 \
"UPDATE actual_node SET conflict_data = ?3, conflict_old = NULL, " \
" conflict_working = NULL, conflict_new = NULL, prop_reject = NULL, " \
" tree_conflict_data = NULL " \
"WHERE wc_id = ?1 and local_relpath = ?2 " \
""
-#define STMT_UPGRADE_TO_31 212
-#define STMT_212_INFO {"STMT_UPGRADE_TO_31", NULL}
-#define STMT_212 \
+#define STMT_UPGRADE_TO_31 213
+#define STMT_213_INFO {"STMT_UPGRADE_TO_31", NULL}
+#define STMT_213 \
"ALTER TABLE NODES ADD COLUMN inherited_props BLOB; " \
"DROP INDEX IF EXISTS I_ACTUAL_CHANGELIST; " \
"DROP INDEX IF EXISTS I_EXTERNALS_PARENT; " \
@@ -2457,9 +2471,9 @@
"PRAGMA user_version = 31; " \
""
-#define STMT_UPGRADE_31_SELECT_WCROOT_NODES 213
-#define STMT_213_INFO {"STMT_UPGRADE_31_SELECT_WCROOT_NODES", NULL}
-#define STMT_213 \
+#define STMT_UPGRADE_31_SELECT_WCROOT_NODES 214
+#define STMT_214_INFO {"STMT_UPGRADE_31_SELECT_WCROOT_NODES", NULL}
+#define STMT_214 \
"SELECT l.wc_id, l.local_relpath FROM nodes as l " \
"LEFT OUTER JOIN nodes as r " \
"ON l.wc_id = r.wc_id " \
@@ -2511,9 +2525,9 @@
"DROP TABLE ACTUAL_NODE_BACKUP; " \
""
-#define STMT_VERIFICATION_TRIGGERS 214
-#define STMT_214_INFO {"STMT_VERIFICATION_TRIGGERS", NULL}
-#define STMT_214 \
+#define STMT_VERIFICATION_TRIGGERS 215
+#define STMT_215_INFO {"STMT_VERIFICATION_TRIGGERS", NULL}
+#define STMT_215 \
"CREATE TEMPORARY TRIGGER no_repository_updates BEFORE UPDATE ON repository " \
"BEGIN " \
" SELECT RAISE(FAIL, 'Updates to REPOSITORY are not allowed.'); " \
@@ -2552,9 +2566,9 @@
"END; " \
""
-#define STMT_STATIC_VERIFY 215
-#define STMT_215_INFO {"STMT_STATIC_VERIFY", NULL}
-#define STMT_215 \
+#define STMT_STATIC_VERIFY 216
+#define STMT_216_INFO {"STMT_STATIC_VERIFY", NULL}
+#define STMT_216 \
"SELECT local_relpath, op_depth, 1, 'Invalid parent relpath set in NODES' " \
"FROM nodes n WHERE local_relpath != '' " \
" AND (parent_relpath IS NULL " \
@@ -2943,6 +2957,7 @@
STMT_213, \
STMT_214, \
STMT_215, \
+ STMT_216, \
NULL \
}
@@ -3164,5 +3179,6 @@
STMT_213_INFO, \
STMT_214_INFO, \
STMT_215_INFO, \
+ STMT_216_INFO, \
{NULL, NULL} \
}
diff --git a/subversion/libsvn_wc/wc-queries.sql b/subversion/libsvn_wc/wc-queries.sql
index 86cf921..3632f1e 100644
--- a/subversion/libsvn_wc/wc-queries.sql
+++ b/subversion/libsvn_wc/wc-queries.sql
@@ -117,6 +117,17 @@ WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth < ?3
ORDER BY op_depth DESC
LIMIT 1
+-- STMT_SELECT_PRESENT_HIGHEST_WORKING_NODES_BY_BASENAME_AND_KIND
+SELECT presence, local_relpath
+FROM nodes n
+WHERE wc_id = ?1 AND local_relpath = RELPATH_JOIN(parent_relpath, ?2)
+ AND kind = ?3
+ AND presence in (MAP_NORMAL, MAP_INCOMPLETE)
+ AND op_depth = (SELECT MAX(op_depth)
+ FROM NODES w
+ WHERE w.wc_id = ?1
+ AND w.local_relpath = n.local_relpath)
+
-- STMT_SELECT_ACTUAL_NODE
SELECT changelist, properties, conflict_data
FROM actual_node
diff --git a/subversion/libsvn_wc/wc.h b/subversion/libsvn_wc/wc.h
index f8bbebd..c8da7a9 100644
--- a/subversion/libsvn_wc/wc.h
+++ b/subversion/libsvn_wc/wc.h
@@ -289,6 +289,7 @@ struct svn_wc_traversal_info_t
#define SVN_WC__ADM_TMP "tmp"
#define SVN_WC__ADM_PRISTINE "pristine"
#define SVN_WC__ADM_NONEXISTENT_PATH "nonexistent-path"
+#define SVN_WC__ADM_EXPERIMENTAL "experimental"
/* The basename of the ".prej" file, if a directory ever has property
conflicts. This .prej file will appear *within* the conflicted
diff --git a/subversion/libsvn_wc/wc_db.c b/subversion/libsvn_wc/wc_db.c
index bc87b2f..1241fac 100644
--- a/subversion/libsvn_wc/wc_db.c
+++ b/subversion/libsvn_wc/wc_db.c
@@ -6839,7 +6839,7 @@ revert_maybe_raise_moved_away(svn_wc__db_wcroot_t * wcroot,
}
SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason, &action,
- NULL,
+ NULL, NULL,
db, wcroot->abspath,
conflict,
scratch_pool,
@@ -16525,8 +16525,8 @@ db_process_commit_queue(svn_wc__db_t *db,
iterpool),
iterpool, iterpool));
- lock_remove_txn(queue->wcroot, cqi->local_relpath, work_item,
- iterpool);
+ SVN_ERR(lock_remove_txn(queue->wcroot, cqi->local_relpath,
+ work_item, iterpool));
}
if (cqi->remove_changelist)
SVN_ERR(svn_wc__db_op_set_changelist(db,
@@ -16578,12 +16578,12 @@ svn_wc__db_process_commit_queue(svn_wc__db_t *db,
}
svn_error_t *
-svn_wc__find_repos_node_in_wc(apr_array_header_t **local_abspath_list,
- svn_wc__db_t *db,
- const char *wri_abspath,
- const char *repos_relpath,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool)
+svn_wc__db_find_repos_node_in_wc(apr_array_header_t **local_abspath_list,
+ svn_wc__db_t *db,
+ const char *wri_abspath,
+ const char *repos_relpath,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
{
svn_wc__db_wcroot_t *wcroot;
const char *wri_relpath;
@@ -16620,3 +16620,46 @@ svn_wc__find_repos_node_in_wc(apr_array_header_t **local_abspath_list,
return svn_error_trace(svn_sqlite__reset(stmt));
}
+svn_error_t *
+svn_wc__db_find_working_nodes_with_basename(apr_array_header_t **local_abspaths,
+ svn_wc__db_t *db,
+ const char *wri_abspath,
+ const char *basename,
+ svn_node_kind_t kind,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ svn_wc__db_wcroot_t *wcroot;
+ const char *wri_relpath;
+ svn_sqlite__stmt_t *stmt;
+ svn_boolean_t have_row;
+
+ SVN_ERR_ASSERT(svn_dirent_is_absolute(wri_abspath));
+
+ SVN_ERR(svn_wc__db_wcroot_parse_local_abspath(&wcroot, &wri_relpath, db,
+ wri_abspath, scratch_pool,
+ scratch_pool));
+ VERIFY_USABLE_WCROOT(wcroot);
+
+ SVN_ERR(svn_sqlite__get_statement(&stmt, wcroot->sdb,
+ STMT_SELECT_PRESENT_HIGHEST_WORKING_NODES_BY_BASENAME_AND_KIND));
+ SVN_ERR(svn_sqlite__bindf(stmt, "ist", wcroot->wc_id, basename,
+ kind_map, kind));
+ SVN_ERR(svn_sqlite__step(&have_row, stmt));
+
+ *local_abspaths = apr_array_make(result_pool, 1, sizeof(const char *));
+
+ while (have_row)
+ {
+ const char *local_relpath;
+ const char *local_abspath;
+
+ local_relpath = svn_sqlite__column_text(stmt, 1, NULL);
+ local_abspath = svn_dirent_join(wcroot->abspath, local_relpath,
+ result_pool);
+ APR_ARRAY_PUSH(*local_abspaths, const char *) = local_abspath;
+ SVN_ERR(svn_sqlite__step(&have_row, stmt));
+ }
+
+ return svn_error_trace(svn_sqlite__reset(stmt));
+}
diff --git a/subversion/libsvn_wc/wc_db.h b/subversion/libsvn_wc/wc_db.h
index 0bf6432..fa1ba81 100644
--- a/subversion/libsvn_wc/wc_db.h
+++ b/subversion/libsvn_wc/wc_db.h
@@ -3496,12 +3496,30 @@ svn_wc__required_lock_for_resolve(const char **required_abspath,
* which has been replaced.
*/
svn_error_t *
-svn_wc__find_repos_node_in_wc(apr_array_header_t **local_abspath_list,
- svn_wc__db_t *db,
- const char *wri_abspath,
- const char *repos_relpath,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool);
+svn_wc__db_find_repos_node_in_wc(apr_array_header_t **local_abspath_list,
+ svn_wc__db_t *db,
+ const char *wri_abspath,
+ const char *repos_relpath,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+/* Return an array of const char * elements, which represent local absolute
+ * paths for nodes, within the working copy indicated by WRI_ABSPATH, which
+ * have a basename matching BASENAME and have node kind KIND.
+ * If no such nodes exist, return an empty array.
+ *
+ * This function returns only paths to nodes which are present in the highest
+ * layer of the WC. In other words, paths to deleted and/or excluded nodes are
+ * never returned.
+ */
+svn_error_t *
+svn_wc__db_find_working_nodes_with_basename(apr_array_header_t **local_abspaths,
+ svn_wc__db_t *db,
+ const char *wri_abspath,
+ const char *basename,
+ svn_node_kind_t kind,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
/* @} */
typedef svn_error_t * (*svn_wc__db_verify_cb_t)(void *baton,
diff --git a/subversion/libsvn_wc/wc_db_update_move.c b/subversion/libsvn_wc/wc_db_update_move.c
index ba71175..e7bfab7 100644
--- a/subversion/libsvn_wc/wc_db_update_move.c
+++ b/subversion/libsvn_wc/wc_db_update_move.c
@@ -411,6 +411,11 @@ create_tree_conflict(svn_skel_t **conflict_p,
? svn_dirent_join(wcroot->abspath,
move_src_op_root_relpath, scratch_pool)
: NULL;
+ const char *move_dst_op_root_abspath
+ = dst_op_root_relpath
+ ? svn_dirent_join(wcroot->abspath,
+ dst_op_root_relpath, scratch_pool)
+ : NULL;
const char *old_repos_relpath_part
= old_repos_relpath && old_version
? svn_relpath_skip_ancestor(old_version->path_in_repos,
@@ -468,7 +473,7 @@ create_tree_conflict(svn_skel_t **conflict_p,
SVN_ERR(svn_wc__conflict_read_tree_conflict(&existing_reason,
&existing_action,
- &existing_abspath,
+ &existing_abspath, NULL,
db, wcroot->abspath,
conflict,
scratch_pool,
@@ -500,6 +505,7 @@ create_tree_conflict(svn_skel_t **conflict_p,
reason,
action,
move_src_op_root_abspath,
+ move_dst_op_root_abspath,
result_pool,
scratch_pool));
@@ -4099,7 +4105,7 @@ fetch_conflict_details(int *src_op_depth,
SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason,
action,
- &move_src_op_root_abspath,
+ &move_src_op_root_abspath, NULL,
db, local_abspath,
conflict_skel, result_pool,
scratch_pool));
diff --git a/subversion/libsvn_wc/wc_db_wcroot.c b/subversion/libsvn_wc/wc_db_wcroot.c
index 1cfca3d..c4f8c3b 100644
--- a/subversion/libsvn_wc/wc_db_wcroot.c
+++ b/subversion/libsvn_wc/wc_db_wcroot.c
@@ -528,6 +528,7 @@ svn_wc__db_wcroot_parse_local_abspath(svn_wc__db_wcroot_t **wcroot,
const char *adm_relpath;
/* Non-NULL if WCROOT is found through a symlink: */
const char *symlink_wcroot_abspath = NULL;
+ apr_pool_t *iterpool;
/* ### we need more logic for finding the database (if it is located
### outside of the wcroot) and then managing all of that within DB.
@@ -613,16 +614,20 @@ svn_wc__db_wcroot_parse_local_abspath(svn_wc__db_wcroot_t **wcroot,
database in the right place. If we find it... great! If not, then
peel off some components, and try again. */
+ iterpool = svn_pool_create(scratch_pool);
adm_relpath = svn_wc_get_adm_dir(scratch_pool);
while (TRUE)
{
svn_error_t *err;
svn_node_kind_t adm_subdir_kind;
- const char *adm_subdir = svn_dirent_join(local_abspath, adm_relpath,
- scratch_pool);
+ const char *adm_subdir;
- SVN_ERR(svn_io_check_path(adm_subdir, &adm_subdir_kind, scratch_pool));
+ svn_pool_clear(iterpool);
+
+ adm_subdir = svn_dirent_join(local_abspath, adm_relpath, iterpool);
+
+ SVN_ERR(svn_io_check_path(adm_subdir, &adm_subdir_kind, iterpool));
if (adm_subdir_kind == svn_node_dir)
{
@@ -673,7 +678,7 @@ svn_wc__db_wcroot_parse_local_abspath(svn_wc__db_wcroot_t **wcroot,
if (!moved_upwards || always_check)
{
SVN_ERR(get_old_version(&wc_format, local_abspath,
- scratch_pool));
+ iterpool));
if (wc_format != 0)
break;
}
@@ -697,7 +702,7 @@ svn_wc__db_wcroot_parse_local_abspath(svn_wc__db_wcroot_t **wcroot,
SVN_ERR(svn_io_check_resolved_path(local_abspath,
&resolved_kind,
- scratch_pool));
+ iterpool));
if (resolved_kind == svn_node_dir)
{
/* Is this directory recorded in our hash? */
@@ -973,6 +978,7 @@ try_symlink_as_dir:
}
while (strcmp(scan_abspath, local_abspath) != 0);
+ svn_pool_destroy(iterpool);
return SVN_NO_ERROR;
}
diff --git a/subversion/libsvn_wc/wcroot_anchor.c b/subversion/libsvn_wc/wcroot_anchor.c
index 7400aa5..f9aebb1 100644
--- a/subversion/libsvn_wc/wcroot_anchor.c
+++ b/subversion/libsvn_wc/wcroot_anchor.c
@@ -193,7 +193,10 @@ svn_wc__get_shelves_dir(char **dir,
SVN_ERR(svn_wc__get_wcroot(&wcroot_abspath, wc_ctx, local_abspath,
scratch_pool, scratch_pool));
- *dir = svn_dirent_join(wcroot_abspath, ".svn/shelves", result_pool);
+ *dir = svn_dirent_join(wcroot_abspath,
+ SVN_WC_ADM_DIR_NAME "/" SVN_WC__ADM_EXPERIMENTAL "/"
+ "shelves/v2",
+ result_pool);
/* Ensure the directory exists. (Other versions of svn don't create it.) */
SVN_ERR(svn_io_make_dir_recursively(*dir, scratch_pool));
diff --git a/subversion/mod_dav_svn/reports/file-revs.c b/subversion/mod_dav_svn/reports/file-revs.c
index fcea052..0feace9 100644
--- a/subversion/mod_dav_svn/reports/file-revs.c
+++ b/subversion/mod_dav_svn/reports/file-revs.c
@@ -214,7 +214,7 @@ file_rev_handler(void *baton,
frb->compression_level, pool);
*window_handler = delta_window_handler;
*window_baton = frb;
- /* Start the txdelta element wich will be terminated by the window
+ /* Start the txdelta element which will be terminated by the window
handler together with the file-rev element. */
SVN_ERR(dav_svn__brigade_puts(frb->bb, frb->output, "<S:txdelta>"));
}
diff --git a/subversion/mod_dav_svn/reports/replay.c b/subversion/mod_dav_svn/reports/replay.c
index 3c17670..a1b5b8b 100644
--- a/subversion/mod_dav_svn/reports/replay.c
+++ b/subversion/mod_dav_svn/reports/replay.c
@@ -437,7 +437,7 @@ dav_svn__replay_report(const dav_resource *resource,
URL, and BASE_DIR is embedded in the request body.
The old-school (and incorrect, see issue #4287 --
- http://subversion.tigris.org/issues/show_bug.cgi?id=4287) way was
+ https://issues.apache.org/jira/browse/SVN-4287) way was
to REPORT on the public URL of the BASE_DIR and embed the REV in
the report body.
*/
diff --git a/subversion/mod_dav_svn/repos.c b/subversion/mod_dav_svn/repos.c
index 2cb8805..3d82fb5 100644
--- a/subversion/mod_dav_svn/repos.c
+++ b/subversion/mod_dav_svn/repos.c
@@ -2861,6 +2861,13 @@ open_stream(const dav_resource *resource,
"Resource body changes may only be made to "
"working resources (at this time).");
}
+ if (!resource->info->root.root)
+ {
+ return dav_svn__new_error(resource->pool, HTTP_METHOD_NOT_ALLOWED,
+ 0, 0,
+ "Resource body changes may only be made to "
+ "checked-out resources (at this time).");
+ }
}
/* ### TODO: Can we support range writes someday? */
diff --git a/subversion/po/de.po b/subversion/po/de.po
index 1586fa7..71655b5 100644
--- a/subversion/po/de.po
+++ b/subversion/po/de.po
@@ -96,7 +96,7 @@ msgid ""
msgstr ""
"Project-Id-Version: subversion 1.9\n"
"Report-Msgid-Bugs-To: dev@subversion.apache.org\n"
-"POT-Creation-Date: 2015-04-10 18:54+0200\n"
+"POT-Creation-Date: 2018-03-11 16:08+0100\n"
"PO-Revision-Date: 2015-04-10 18:52+0100\n"
"Last-Translator: Subversion Developers <dev@subversion.apache.org>\n"
"Language-Team: German <dev@subversion.apache.org>\n"
@@ -225,7 +225,7 @@ msgstr "Pfad ist kein direktes Kind des spezifizierten Verzeichnisses"
msgid "Bogus UUID"
msgstr "Ungültige UUID"
-#: ../include/svn_error_codes.h:209 ../include/svn_error_codes.h:1026
+#: ../include/svn_error_codes.h:209 ../include/svn_error_codes.h:1041
msgid "Invalid configuration value"
msgstr "Ungültiger Konfigurationswert"
@@ -257,1253 +257,1314 @@ msgstr "Ungültiges »atomic«"
msgid "Invalid compression method"
msgstr "Ungültige Komprimierungsmethode"
-#: ../include/svn_error_codes.h:247
+#: ../include/svn_error_codes.h:246
+#, fuzzy
+msgid "Unexpected line ending in the property value"
+msgstr "Unerwartete oder unbekannte Eigenschaftsart"
+
+#: ../include/svn_error_codes.h:252
msgid "No such XML tag attribute"
msgstr "Ein solches Attribut des XML-Tags existiert nicht"
-#: ../include/svn_error_codes.h:251
+#: ../include/svn_error_codes.h:256
msgid "<delta-pkg> is missing ancestry"
msgstr "<delta-pkg> fehlt die Herkunft"
-#: ../include/svn_error_codes.h:255
+#: ../include/svn_error_codes.h:260
msgid "Unrecognized binary data encoding; can't decode"
msgstr "Unbekannte binäre Datenkodierung, kann nicht entschlüsseln"
-#: ../include/svn_error_codes.h:259
+#: ../include/svn_error_codes.h:264
msgid "XML data was not well-formed"
msgstr "XML Daten nicht wohlgeformt"
-#: ../include/svn_error_codes.h:263
+#: ../include/svn_error_codes.h:268
msgid "Data cannot be safely XML-escaped"
msgstr "Daten können nicht sicher in XML eingebettet werden"
-#: ../include/svn_error_codes.h:268
+#: ../include/svn_error_codes.h:273
msgid "Unexpected XML element found"
msgstr "Unerwartetes XML-Element gefunden"
-#: ../include/svn_error_codes.h:274
+#: ../include/svn_error_codes.h:279
msgid "Inconsistent line ending style"
msgstr "Stil für Zeilenende ist inkonsistent"
-#: ../include/svn_error_codes.h:278
+#: ../include/svn_error_codes.h:283
msgid "Unrecognized line ending style"
msgstr "Stil für Zeilenende nicht erkannt"
-#: ../include/svn_error_codes.h:283
+#: ../include/svn_error_codes.h:288
msgid "Line endings other than expected"
msgstr "Zeilenende anders als erwartet"
-#: ../include/svn_error_codes.h:287
+#: ../include/svn_error_codes.h:292
msgid "Ran out of unique names"
msgstr "Eindeutige Namen ausgegangen"
-#: ../include/svn_error_codes.h:292
+#: ../include/svn_error_codes.h:297
msgid "Framing error in pipe protocol"
msgstr "Rahmenfehler im »Pipe«-Protokoll"
-#: ../include/svn_error_codes.h:297
+#: ../include/svn_error_codes.h:302
msgid "Read error in pipe"
msgstr "Lesefehler in »Pipe«"
#. is errno on POSIX
-#: ../include/svn_error_codes.h:301 ../libsvn_subr/cmdline.c:417
-#: ../libsvn_subr/cmdline.c:448 ../libsvn_subr/cmdline.c:471 ../svn/util.c:571
-#: ../svnlook/svnlook.c:2025
+#: ../include/svn_error_codes.h:306 ../libsvn_subr/cmdline.c:435
+#: ../libsvn_subr/cmdline.c:466 ../libsvn_subr/cmdline.c:489 ../svn/util.c:571
+#: ../svnlook/svnlook.c:2034
#, c-format
msgid "Write error"
msgstr "Schreibfehler"
-#: ../include/svn_error_codes.h:306
+#: ../include/svn_error_codes.h:311
msgid "Write error in pipe"
msgstr "Schreibfehler in »Pipe«"
-#: ../include/svn_error_codes.h:312
+#: ../include/svn_error_codes.h:317
msgid "Unexpected EOF on stream"
msgstr "Unerwartetes EOF im Datenstrom"
-#: ../include/svn_error_codes.h:316
+#: ../include/svn_error_codes.h:321
msgid "Malformed stream data"
msgstr "Fehlerhafter Datenstrom"
-#: ../include/svn_error_codes.h:320
+#: ../include/svn_error_codes.h:325
msgid "Unrecognized stream data"
msgstr "Unbekannter Datenstrom"
-#: ../include/svn_error_codes.h:325
+#: ../include/svn_error_codes.h:330
msgid "Stream doesn't support seeking"
msgstr "Datenstrom unterstützt das Setzen der Position nicht"
-#: ../include/svn_error_codes.h:330
+#: ../include/svn_error_codes.h:335
msgid "Stream doesn't support this capability"
msgstr "Datenstrom unterstützt diese Funktion nicht"
-#: ../include/svn_error_codes.h:336
+#: ../include/svn_error_codes.h:341
msgid "Unknown svn_node_kind"
msgstr "Unbekannter svn_node_kind"
-#: ../include/svn_error_codes.h:340
+#: ../include/svn_error_codes.h:345
msgid "Unexpected node kind found"
msgstr "Unerwarteter Knotentyp gefunden"
-#: ../include/svn_error_codes.h:346
+#: ../include/svn_error_codes.h:351
msgid "Can't find an entry"
msgstr "Kann keinen Eintrag finden"
-#: ../include/svn_error_codes.h:352
+#: ../include/svn_error_codes.h:357
msgid "Entry already exists"
msgstr "Eintrag existiert bereits"
-#: ../include/svn_error_codes.h:356
+#: ../include/svn_error_codes.h:361
msgid "Entry has no revision"
msgstr "Eintrag hat keine Revision"
-#: ../include/svn_error_codes.h:360
+#: ../include/svn_error_codes.h:365
msgid "Entry has no URL"
msgstr "Eintrag hat keine URL"
-#: ../include/svn_error_codes.h:364
+#: ../include/svn_error_codes.h:369
msgid "Entry has an invalid attribute"
msgstr "Eintrag hat ein ungültiges Attribut"
-#: ../include/svn_error_codes.h:368
+#: ../include/svn_error_codes.h:373
msgid "Can't create an entry for a forbidden name"
msgstr "Kann keinen Eintrag für einen verbotenen Namen erzeugen"
-#: ../include/svn_error_codes.h:374
+#: ../include/svn_error_codes.h:379
msgid "Obstructed update"
msgstr "Aktualisierung behindert"
-#: ../include/svn_error_codes.h:379
+#: ../include/svn_error_codes.h:384
msgid "Mismatch popping the WC unwind stack"
msgstr "Fehler beim Abrufen des Abwicklungsstapels der Arbeitskopie"
-#: ../include/svn_error_codes.h:384
+#: ../include/svn_error_codes.h:389
msgid "Attempt to pop empty WC unwind stack"
msgstr "Versuch, leeren Abwicklungsstapel abzurufen"
-#: ../include/svn_error_codes.h:389
+#: ../include/svn_error_codes.h:394
msgid "Attempt to unlock with non-empty unwind stack"
msgstr "Versuch, mit nicht leerem Abwicklungsstapel zu entsperren"
-#: ../include/svn_error_codes.h:393
+#: ../include/svn_error_codes.h:398
msgid "Attempted to lock an already-locked dir"
msgstr "Versuch, ein bereits gesperrtes Verzeichnis erneut zu sperren"
-#: ../include/svn_error_codes.h:397
+#: ../include/svn_error_codes.h:402
msgid "Working copy not locked; this is probably a bug, please report"
msgstr "Arbeitskopie nicht gesperrt. Dies ist wahrscheinlich ein Fehler. Bitte melden."
-#: ../include/svn_error_codes.h:402
+#: ../include/svn_error_codes.h:407
msgid "Invalid lock"
msgstr "Ungültige Sperre"
-#: ../include/svn_error_codes.h:408 ../include/svn_error_codes.h:414
+#: ../include/svn_error_codes.h:413 ../include/svn_error_codes.h:419
msgid "Path is not a working copy directory"
msgstr "Pfad ist kein Verzeichnis in einer Arbeitskopie"
-#: ../include/svn_error_codes.h:418
+#: ../include/svn_error_codes.h:423
msgid "Path is not a working copy file"
msgstr "Pfad ist keine Datei in einer Arbeitskopie"
-#: ../include/svn_error_codes.h:422
+#: ../include/svn_error_codes.h:427
msgid "Problem running log"
msgstr "Problem während der Ausführung des Logs"
-#: ../include/svn_error_codes.h:426
+#: ../include/svn_error_codes.h:431
msgid "Can't find a working copy path"
msgstr "Kann keinen Arbeitskopiepfad finden"
-#: ../include/svn_error_codes.h:430
+#: ../include/svn_error_codes.h:435
msgid "Working copy is not up-to-date"
msgstr "Arbeitskopie ist nicht aktuell"
-#: ../include/svn_error_codes.h:434
+#: ../include/svn_error_codes.h:439
msgid "Left locally modified or unversioned files"
msgstr "Lokal veränderte oder nicht versionierte Dateien zurück gelassen"
-#: ../include/svn_error_codes.h:438
+#: ../include/svn_error_codes.h:443
msgid "Unmergeable scheduling requested on an entry"
msgstr "Nicht zusammenführbare Planungsanforderung für einen Eintrag"
-#: ../include/svn_error_codes.h:442
+#: ../include/svn_error_codes.h:447
msgid "Found a working copy path"
msgstr "Arbeitskopiepfad gefunden"
-#: ../include/svn_error_codes.h:446
+#: ../include/svn_error_codes.h:451
msgid "A conflict in the working copy obstructs the current operation"
msgstr "Ein Konflikt in der Arbeitskopie behindert die aktuelle Operation"
-#: ../include/svn_error_codes.h:450
+#: ../include/svn_error_codes.h:455
msgid "Working copy is corrupt"
msgstr "Arbeitskopie ist beschädigt"
-#: ../include/svn_error_codes.h:454
+#: ../include/svn_error_codes.h:459
msgid "Working copy text base is corrupt"
msgstr "Textbasis der Arbeitskopie ist beschädigt"
-#: ../include/svn_error_codes.h:458
+#: ../include/svn_error_codes.h:463
msgid "Cannot change node kind"
msgstr "Kann Knotentyp nicht ändern"
-#: ../include/svn_error_codes.h:462
+#: ../include/svn_error_codes.h:467
msgid "Invalid operation on the current working directory"
msgstr "Ungültige Operation auf dem aktuellen Arbeitsverzeichnis"
-#: ../include/svn_error_codes.h:466
+#: ../include/svn_error_codes.h:471
msgid "Problem on first log entry in a working copy"
msgstr "Problem mit dem ersten Log-Eintrag in einer Arbeitskopie"
-#: ../include/svn_error_codes.h:470
+#: ../include/svn_error_codes.h:475
msgid "Unsupported working copy format"
msgstr "Nicht unterstütztes Format der Arbeitskopie"
-#: ../include/svn_error_codes.h:474
+#: ../include/svn_error_codes.h:479
msgid "Path syntax not supported in this context"
msgstr "Pfadsyntax wird in diesem Zusammenhang nicht unterstützt"
-#: ../include/svn_error_codes.h:479
+#: ../include/svn_error_codes.h:484
msgid "Invalid schedule"
msgstr "Ungültiger Plan"
-#: ../include/svn_error_codes.h:484
+#: ../include/svn_error_codes.h:489
msgid "Invalid relocation"
msgstr "Ungültiges Umplatzieren"
-#: ../include/svn_error_codes.h:489
+#: ../include/svn_error_codes.h:494
msgid "Invalid switch"
msgstr "Ungültiges Wechseln"
-#: ../include/svn_error_codes.h:494
+#: ../include/svn_error_codes.h:499
msgid "Changelist doesn't match"
msgstr "Änderungsliste passt nicht"
-#: ../include/svn_error_codes.h:499
+#: ../include/svn_error_codes.h:504
msgid "Conflict resolution failed"
msgstr "Konfliktauflösung schlug fehl"
-#: ../include/svn_error_codes.h:503
+#: ../include/svn_error_codes.h:508
msgid "Failed to locate 'copyfrom' path in working copy"
msgstr "Pfad von »copyfrom« konnte in der Arbeitskopie nicht gefunden werden"
-#: ../include/svn_error_codes.h:511
+#: ../include/svn_error_codes.h:516
msgid "Moving a path from one changelist to another"
msgstr "Verschieben eines Pfades von einer Änderungsliste in eine andere"
-#: ../include/svn_error_codes.h:516
+#: ../include/svn_error_codes.h:521
msgid "Cannot delete a file external"
msgstr "Kann externen Dateiverweis nicht löschen"
-#: ../include/svn_error_codes.h:521
+#: ../include/svn_error_codes.h:526
msgid "Cannot move a file external"
msgstr "Kann externen Dateiverweis nicht verschieben"
-#: ../include/svn_error_codes.h:526
+#: ../include/svn_error_codes.h:531
msgid "Something's amiss with the wc sqlite database"
msgstr "Irgendetwas ist mit der sqlite-Datenbank der Arbeitskopie falsch"
-#: ../include/svn_error_codes.h:531
+#: ../include/svn_error_codes.h:536
msgid "The working copy is missing"
msgstr "Die Arbeitskopie fehlt"
-#: ../include/svn_error_codes.h:536
+#: ../include/svn_error_codes.h:541
msgid "The specified node is not a symlink"
msgstr "Der spezifizierte Knoten ist kein symbolischer Link"
-#: ../include/svn_error_codes.h:541
+#: ../include/svn_error_codes.h:546
msgid "The specified path has an unexpected status"
msgstr "Der angegebene Pfad hat einen unerwarteten Status"
-#: ../include/svn_error_codes.h:546
+#: ../include/svn_error_codes.h:551
msgid "The working copy needs to be upgraded"
msgstr "Die Arbeitskopie muss in ein neueres Format gebracht werden"
-#: ../include/svn_error_codes.h:551
+#: ../include/svn_error_codes.h:556
msgid "Previous operation has not finished; run 'cleanup' if it was interrupted"
msgstr "Die vorhergehende Operation wurde nicht abgeschlossen; Starten Sie »svn cleanup« falls sie unterbrochen wurde"
-#: ../include/svn_error_codes.h:557
+#: ../include/svn_error_codes.h:562
msgid "The operation cannot be performed with the specified depth"
msgstr "Diese Operation kann nicht mit der angegebenen Tiefe durch geführt werden."
-#: ../include/svn_error_codes.h:562
+#: ../include/svn_error_codes.h:567
msgid "Couldn't open a working copy file because access was denied"
msgstr "Konnte eine Datei der Arbeitskopie nicht öffnen, da der Zugriff verweigert wurde"
-#: ../include/svn_error_codes.h:567
+#: ../include/svn_error_codes.h:572
msgid "Mixed-revision working copy was found but not expected"
msgstr "Arbeitskopie mit verschiedenen Revisionen gefunden aber nicht erwartet"
-#: ../include/svn_error_codes.h:572
+#: ../include/svn_error_codes.h:577
msgid "Duplicate targets in svn:externals property"
msgstr "Doppelte Zielangaben in svn:externals Eigenschaft"
-#: ../include/svn_error_codes.h:578
+#: ../include/svn_error_codes.h:583
msgid "General filesystem error"
msgstr "Allgemeiner Dateisystemfehler"
-#: ../include/svn_error_codes.h:582
+#: ../include/svn_error_codes.h:587
msgid "Error closing filesystem"
msgstr "Fehler beim Schließen des Dateisystems"
-#: ../include/svn_error_codes.h:586
+#: ../include/svn_error_codes.h:591
msgid "Filesystem is already open"
msgstr "Dateisystem ist bereits geöffnet"
-#: ../include/svn_error_codes.h:590
+#: ../include/svn_error_codes.h:595
msgid "Filesystem is not open"
msgstr "Dateisystem ist nicht geöffnet"
-#: ../include/svn_error_codes.h:594
+#: ../include/svn_error_codes.h:599
msgid "Filesystem is corrupt"
msgstr "Dateisystem ist beschädigt"
-#: ../include/svn_error_codes.h:598
+#: ../include/svn_error_codes.h:603
msgid "Invalid filesystem path syntax"
msgstr "Ungültige Pfadsyntax des Dateisystems"
-#: ../include/svn_error_codes.h:602
+#: ../include/svn_error_codes.h:607
msgid "Invalid filesystem revision number"
msgstr "Ungültige Revisionsnummer des Dateisystems"
-#: ../include/svn_error_codes.h:606
+#: ../include/svn_error_codes.h:611
msgid "Invalid filesystem transaction name"
msgstr "Ungültiger Transaktionsname des Dateisystems"
-#: ../include/svn_error_codes.h:610
+#: ../include/svn_error_codes.h:615
msgid "Filesystem directory has no such entry"
msgstr "Verzeichnis des Dateisystems hat keinen solchen Eintrag"
-#: ../include/svn_error_codes.h:614
+#: ../include/svn_error_codes.h:619
msgid "Filesystem has no such representation"
msgstr "Dateisystem hat keine solche Darstellung"
-#: ../include/svn_error_codes.h:618
+#: ../include/svn_error_codes.h:623
msgid "Filesystem has no such string"
msgstr "Dateisystem hat keinen solchen String"
-#: ../include/svn_error_codes.h:622
+#: ../include/svn_error_codes.h:627
msgid "Filesystem has no such copy"
msgstr "Dateisystem hat keine solche Kopie"
-#: ../include/svn_error_codes.h:626
+#: ../include/svn_error_codes.h:631
msgid "The specified transaction is not mutable"
msgstr "Die spezifizierte Transaktion ist nicht veränderlich"
-#: ../include/svn_error_codes.h:630
+#: ../include/svn_error_codes.h:635
msgid "Filesystem has no item"
msgstr "Dateisystem hat keinen Eintrag"
-#: ../include/svn_error_codes.h:634
+#: ../include/svn_error_codes.h:639
msgid "Filesystem has no such node-rev-id"
msgstr "Dateisystem hat keine solche Knotenrevisions-Id"
-#: ../include/svn_error_codes.h:638
+#: ../include/svn_error_codes.h:643
msgid "String does not represent a node or node-rev-id"
msgstr "Zeichenkette stellt keinen Knoten oder keine Knotenrevisions-Id dar"
-#: ../include/svn_error_codes.h:642
+#: ../include/svn_error_codes.h:647
msgid "Name does not refer to a filesystem directory"
msgstr "Name bezeichnet kein Verzeichnis des Dateisystems"
-#: ../include/svn_error_codes.h:646
+#: ../include/svn_error_codes.h:651
msgid "Name does not refer to a filesystem file"
msgstr "Name bezeichnet keine Datei des Dateisystems"
-#: ../include/svn_error_codes.h:650
+#: ../include/svn_error_codes.h:655
msgid "Name is not a single path component"
msgstr "Name ist keine einzelne Pfadkomponente"
-#: ../include/svn_error_codes.h:654
+#: ../include/svn_error_codes.h:659
msgid "Attempt to change immutable filesystem node"
msgstr "Versuch, einen nicht-veränderlichen Knoten des Dateisystems zu ändern"
-#: ../include/svn_error_codes.h:658
+#: ../include/svn_error_codes.h:663
msgid "Item already exists in filesystem"
msgstr "Objekt existiert bereits im Dateisystem"
-#: ../include/svn_error_codes.h:662
+#: ../include/svn_error_codes.h:667
msgid "Attempt to remove or recreate fs root dir"
msgstr "Versuch, Basisverzeichnis des Dateisystems zu entfernen oder neu zu erstellen"
-#: ../include/svn_error_codes.h:666
+#: ../include/svn_error_codes.h:671
msgid "Object is not a transaction root"
msgstr "Objekt ist keine Transaktionsbasis"
-#: ../include/svn_error_codes.h:670
+#: ../include/svn_error_codes.h:675
msgid "Object is not a revision root"
msgstr "Objekt ist keine Revisionsbasis"
-#: ../include/svn_error_codes.h:674
+#: ../include/svn_error_codes.h:679
msgid "Merge conflict during commit"
msgstr "Konflikt beim Zusammenführen während der Übertragung"
-#: ../include/svn_error_codes.h:678
+#: ../include/svn_error_codes.h:683
msgid "A representation vanished or changed between reads"
msgstr "Eine Darstellung ist zwischen Lesezugriffen verschwunden oder hat sich verändert"
-#: ../include/svn_error_codes.h:682
+#: ../include/svn_error_codes.h:687
msgid "Tried to change an immutable representation"
msgstr "Versuchte, eine nicht-veränderliche Darstellung zu ändern"
-#: ../include/svn_error_codes.h:686
+#: ../include/svn_error_codes.h:691
msgid "Malformed skeleton data"
msgstr "Fehlerhafte Skeletondaten"
-#: ../include/svn_error_codes.h:690
+#: ../include/svn_error_codes.h:695
msgid "Transaction is out of date"
msgstr "Transaktion ist veraltet"
-#: ../include/svn_error_codes.h:694
+#: ../include/svn_error_codes.h:699
msgid "Berkeley DB error"
msgstr "Berkeley-DB-Fehler"
-#: ../include/svn_error_codes.h:698
+#: ../include/svn_error_codes.h:703
msgid "Berkeley DB deadlock error"
msgstr "Deadlock-Fehler der Berkeley Datenbank"
-#: ../include/svn_error_codes.h:702
+#: ../include/svn_error_codes.h:707
msgid "Transaction is dead"
msgstr "Transaktion ist tot"
-#: ../include/svn_error_codes.h:706
+#: ../include/svn_error_codes.h:711
msgid "Transaction is not dead"
msgstr "Transaktion ist nicht tot"
-#: ../include/svn_error_codes.h:711
+#: ../include/svn_error_codes.h:716
msgid "Unknown FS type"
msgstr "Unbekannter Dateisystemtyp"
-#: ../include/svn_error_codes.h:716
+#: ../include/svn_error_codes.h:721
msgid "No user associated with filesystem"
msgstr "Kein Benutzer mit dem Dateisystem verbunden"
-#: ../include/svn_error_codes.h:721
+#: ../include/svn_error_codes.h:726
msgid "Path is already locked"
msgstr "Pfad ist bereits gesperrt"
-#: ../include/svn_error_codes.h:726 ../include/svn_error_codes.h:963
+#: ../include/svn_error_codes.h:731 ../include/svn_error_codes.h:978
msgid "Path is not locked"
msgstr "Pfad ist nicht gesperrt"
-#: ../include/svn_error_codes.h:731
+#: ../include/svn_error_codes.h:736
msgid "Lock token is incorrect"
msgstr "Sperrmarke ist fehlerhaft"
-#: ../include/svn_error_codes.h:736
+#: ../include/svn_error_codes.h:741
msgid "No lock token provided"
msgstr "Keine Sperrmarke angegeben"
-#: ../include/svn_error_codes.h:741
+#: ../include/svn_error_codes.h:746
msgid "Username does not match lock owner"
msgstr "Benutzername und Sperreigner stimmen nicht überein"
-#: ../include/svn_error_codes.h:746
+#: ../include/svn_error_codes.h:751
msgid "Filesystem has no such lock"
msgstr "Dateisystem hat keine solche Sperre"
-#: ../include/svn_error_codes.h:751
+#: ../include/svn_error_codes.h:756
msgid "Lock has expired"
msgstr "Sperre ist abgelaufen"
-#: ../include/svn_error_codes.h:756 ../include/svn_error_codes.h:950
+#: ../include/svn_error_codes.h:761 ../include/svn_error_codes.h:965
msgid "Item is out of date"
msgstr "Eintrag ist veraltet"
-#: ../include/svn_error_codes.h:768
+#: ../include/svn_error_codes.h:773
msgid "Unsupported FS format"
msgstr "Nicht unterstütztes Dateisystemformat"
-#: ../include/svn_error_codes.h:773
+#: ../include/svn_error_codes.h:778
msgid "Representation is being written"
msgstr "Darstellung wird geschrieben"
-#: ../include/svn_error_codes.h:778
+#: ../include/svn_error_codes.h:783
msgid "The generated transaction name is too long"
msgstr "Der erzeugte Transaktionsname ist zu lang"
-#: ../include/svn_error_codes.h:783
+#: ../include/svn_error_codes.h:788
msgid "Filesystem has no such node origin record"
msgstr "Dateisystem hat keinen solchen Knotenursprungsdatensatz"
-#: ../include/svn_error_codes.h:788
+#: ../include/svn_error_codes.h:793
msgid "Filesystem upgrade is not supported"
msgstr "Dateisystemaktualisierung wird nicht unterstützt"
-#: ../include/svn_error_codes.h:793
+#: ../include/svn_error_codes.h:798
msgid "Filesystem has no such checksum-representation index record"
msgstr "Dateisystem hat keinen solchen Indexdatensatz zur Prüfsummen-Repräsentation"
-#: ../include/svn_error_codes.h:798
+#: ../include/svn_error_codes.h:803
msgid "Property value in filesystem differs from the provided base value"
msgstr "Eigenschaftswert im Dateisystem weicht von dem angegebenen Basiswert ab"
-#: ../include/svn_error_codes.h:804
+#: ../include/svn_error_codes.h:809
msgid "The filesystem editor completion process was not followed"
msgstr "Der Prozess für den Abschluss von Bearbeitungen des Dateisystems wurde nicht befolgt"
-#: ../include/svn_error_codes.h:809
+#: ../include/svn_error_codes.h:814
msgid "A packed revprop could not be read"
msgstr "Eine gepackte Revisionseigenschaft konnte nicht gelesen werden"
-#: ../include/svn_error_codes.h:814
+#: ../include/svn_error_codes.h:819
msgid "Could not initialize the revprop caching infrastructure."
msgstr "Konnte Zwischenspeicher für Revisionseigenschaften nicht initialisieren"
-#: ../include/svn_error_codes.h:819
+#: ../include/svn_error_codes.h:824
msgid "Malformed transaction ID string."
msgstr "Fehlerhafte Zeichenkette für Transaktions-ID."
-#: ../include/svn_error_codes.h:824
+#: ../include/svn_error_codes.h:829
msgid "Corrupt index file."
msgstr "Beschädigte Indexdatei."
-#: ../include/svn_error_codes.h:829
+#: ../include/svn_error_codes.h:834
msgid "Revision not covered by index."
msgstr "Revision ist nicht im Index enthalten."
-#: ../include/svn_error_codes.h:834
+#: ../include/svn_error_codes.h:839
msgid "Item index too large for this revision."
msgstr "Elementindex zu groß für diese Revision."
-#: ../include/svn_error_codes.h:839
+#: ../include/svn_error_codes.h:844
msgid "Container index out of range."
msgstr "Containerindex außerhalb des zulässigen Bereichs."
-#: ../include/svn_error_codes.h:844
+#: ../include/svn_error_codes.h:849
msgid "Index files are inconsistent."
msgstr "Indexdateien sind inkonsistent."
-#: ../include/svn_error_codes.h:849
+#: ../include/svn_error_codes.h:854
msgid "Lock operation failed"
msgstr "Sperrvorgang schlug fehl"
-#: ../include/svn_error_codes.h:854
+#: ../include/svn_error_codes.h:859
msgid "Unsupported FS type"
msgstr "Nicht unterstützter Dateisystemtyp"
-#: ../include/svn_error_codes.h:859
+#: ../include/svn_error_codes.h:864
msgid "Container capacity exceeded."
msgstr "Kapazität des Containerindex überschritten."
-#: ../include/svn_error_codes.h:864
+#: ../include/svn_error_codes.h:869
msgid "Malformed node revision ID string."
msgstr "Fehlerhafte Zeichenkette für Knotenrevisions-ID."
-#: ../include/svn_error_codes.h:869 ../libsvn_fs_x/revprops.c:291
+#: ../include/svn_error_codes.h:874
msgid "Invalid generation number data."
msgstr "Ungültige Daten für Generationsnummer."
-#: ../include/svn_error_codes.h:875
+#: ../include/svn_error_codes.h:879
+#, fuzzy
+msgid "Revprop manifest corrupt."
+msgstr "Projektarchiv ist beschädigt"
+
+#: ../include/svn_error_codes.h:884
+#, fuzzy
+msgid "Property list is corrupt."
+msgstr "Dateisystem ist beschädigt"
+
+#: ../include/svn_error_codes.h:889
+msgid "Content checksums supposedly match but content does not."
+msgstr ""
+
+#: ../include/svn_error_codes.h:895
msgid "The repository is locked, perhaps for db recovery"
msgstr "Das Projektarchiv ist gesperrt, möglicherweise zum Retten der Datenbank"
-#: ../include/svn_error_codes.h:879
+#: ../include/svn_error_codes.h:899
msgid "A repository hook failed"
msgstr "Eine Aktion im Projektarchiv schlug fehl"
-#: ../include/svn_error_codes.h:883
+#: ../include/svn_error_codes.h:903
msgid "Incorrect arguments supplied"
msgstr "Inkorrekte Parameter übergeben"
-#: ../include/svn_error_codes.h:887
+#: ../include/svn_error_codes.h:907
msgid "A report cannot be generated because no data was supplied"
msgstr "Es kann kein Report erzeugt werden, da keine Daten geliefert wurden"
-#: ../include/svn_error_codes.h:891
+#: ../include/svn_error_codes.h:911
msgid "Bogus revision report"
msgstr "Ungültiger Revisionsreport"
-#: ../include/svn_error_codes.h:900
+#: ../include/svn_error_codes.h:920
msgid "Unsupported repository version"
msgstr "Nicht unterstützte Version des Projektarchivs"
-#: ../include/svn_error_codes.h:904
+#: ../include/svn_error_codes.h:924
msgid "Disabled repository feature"
msgstr "Deaktiviertes Merkmal des Projektarchivs"
-#: ../include/svn_error_codes.h:908
+#: ../include/svn_error_codes.h:928
msgid "Error running post-commit hook"
msgstr "Fehler beim Ausführen der Aktion »post-commit«"
-#: ../include/svn_error_codes.h:913
+#: ../include/svn_error_codes.h:933
msgid "Error running post-lock hook"
msgstr "Fehler beim Ausführen der Aktion »post-lock«"
-#: ../include/svn_error_codes.h:918
+#: ../include/svn_error_codes.h:938
msgid "Error running post-unlock hook"
msgstr "Fehler beim Ausführen der Aktion »post-unlock«"
-#: ../include/svn_error_codes.h:923
+#: ../include/svn_error_codes.h:943
msgid "Repository upgrade is not supported"
msgstr "Projektarchivaktualisierung wird nicht unterstützt"
-#: ../include/svn_error_codes.h:928
-msgid "Repository is corrupt"
-msgstr "Projektarchiv ist beschädigt"
-
-#: ../include/svn_error_codes.h:934
+#: ../include/svn_error_codes.h:949
msgid "Bad URL passed to RA layer"
msgstr "Ungültige URL an die ZM-Schicht übergeben"
-#: ../include/svn_error_codes.h:938
+#: ../include/svn_error_codes.h:953
msgid "Authorization failed"
msgstr "Autorisierung schlug fehl"
-#: ../include/svn_error_codes.h:942
+#: ../include/svn_error_codes.h:957
msgid "Unknown authorization method"
msgstr "Unbekannte Autorisierungsmethode"
-#: ../include/svn_error_codes.h:946
+#: ../include/svn_error_codes.h:961
msgid "Repository access method not implemented"
msgstr "Zugriffsmethode zum Projektarchiv nicht implementiert"
-#: ../include/svn_error_codes.h:954
+#: ../include/svn_error_codes.h:969
msgid "Repository has no UUID"
msgstr "Projektarchiv hat keine UUID"
-#: ../include/svn_error_codes.h:958
+#: ../include/svn_error_codes.h:973
msgid "Unsupported RA plugin ABI version"
msgstr "Nicht unterstützte ABI-Version des ZM-Plugins"
-#: ../include/svn_error_codes.h:968
+#: ../include/svn_error_codes.h:983
msgid "Server can only replay from the root of a repository"
msgstr "Der Server kann nur von der Basis des Projektarchivs fortfahren"
-#: ../include/svn_error_codes.h:973
+#: ../include/svn_error_codes.h:988
msgid "Repository UUID does not match expected UUID"
msgstr "Die UUID des Projektarchivs entspricht nicht der erwarteten UUID"
-#: ../include/svn_error_codes.h:978
+#: ../include/svn_error_codes.h:993
msgid "Repository root URL does not match expected root URL"
msgstr "Die URL der Projektarchivwurzel entspricht nicht der erwarteten Wurzel-URL"
-#: ../include/svn_error_codes.h:983
+#: ../include/svn_error_codes.h:998
msgid "Session URL does not match expected session URL"
msgstr "Die Sitzungs-URL entspricht nicht der erwarteten Sitzungs-URL"
-#: ../include/svn_error_codes.h:988 ../libsvn_ra_svn/client.c:503
+#: ../include/svn_error_codes.h:1003 ../libsvn_ra_svn/client.c:506
#, c-format
msgid "Can't create tunnel"
msgstr "Kann Tunnel nicht erzeugen"
-#: ../include/svn_error_codes.h:993
+#: ../include/svn_error_codes.h:1008
msgid "Can't create session"
msgstr "Kann Sitzung nicht erzeugen"
-#: ../include/svn_error_codes.h:999
+#: ../include/svn_error_codes.h:1014
msgid "RA layer failed to init socket layer"
msgstr "ZM-Schicht konnte die Verbindungsschicht nicht initialisieren"
-#: ../include/svn_error_codes.h:1003
+#: ../include/svn_error_codes.h:1018
msgid "RA layer failed to create HTTP request"
msgstr "ZM-Schicht konnte keine HTTP-Anforderung erzeugen"
-#: ../include/svn_error_codes.h:1007
+#: ../include/svn_error_codes.h:1022
msgid "RA layer request failed"
msgstr "ZM-Schicht Anforderung gescheitert"
-#: ../include/svn_error_codes.h:1011
+#: ../include/svn_error_codes.h:1026
msgid "RA layer didn't receive requested OPTIONS info"
msgstr "ZM-Schicht hat die angeforderte OPTIONS-Information nicht erhalten"
-#: ../include/svn_error_codes.h:1015
+#: ../include/svn_error_codes.h:1030
msgid "RA layer failed to fetch properties"
msgstr "ZM-Schicht konnte keine Eigenschaften bestimmen"
-#: ../include/svn_error_codes.h:1019
+#: ../include/svn_error_codes.h:1034
msgid "RA layer file already exists"
msgstr "ZM-Schichtdatei existiert bereits"
-#: ../include/svn_error_codes.h:1033
+#: ../include/svn_error_codes.h:1048
msgid "HTTP Path Not Found"
msgstr "HTTP Pfad nicht gefunden"
-#: ../include/svn_error_codes.h:1037
+#: ../include/svn_error_codes.h:1052
msgid "Failed to execute WebDAV PROPPATCH"
msgstr "Konnte WebDAV PROPPATCH nicht ausführen"
#. If condition COND is not met, return a "malformed network data" error.
#.
-#: ../include/svn_error_codes.h:1042 ../include/svn_error_codes.h:1520
-#: ../libsvn_ra_svn/marshal.c:1129 ../libsvn_ra_svn/marshal.c:1381
-#: ../libsvn_ra_svn/marshal.c:1411 ../libsvn_ra_svn/marshal.c:2495
+#: ../include/svn_error_codes.h:1057 ../include/svn_error_codes.h:1560
+#: ../libsvn_ra_svn/marshal.c:1459 ../libsvn_ra_svn/marshal.c:1716
+#: ../libsvn_ra_svn/marshal.c:1745 ../libsvn_ra_svn/marshal.c:3000
msgid "Malformed network data"
msgstr "Fehlerhafte Netzwerkdaten"
-#: ../include/svn_error_codes.h:1047
+#: ../include/svn_error_codes.h:1062
msgid "Unable to extract data from response header"
msgstr "Kann keine Daten aus dem Antwortkopf extrahieren"
-#: ../include/svn_error_codes.h:1052
+#: ../include/svn_error_codes.h:1067
msgid "Repository has been moved"
msgstr "Projektarchiv wurde verschoben"
-#: ../include/svn_error_codes.h:1057 ../libsvn_ra_serf/util.c:893
+#: ../include/svn_error_codes.h:1072 ../libsvn_ra_serf/util.c:937
msgid "Connection timed out"
msgstr "Die Wartezeit für die Verbindung ist abgelaufen"
-#: ../include/svn_error_codes.h:1062
+#: ../include/svn_error_codes.h:1077
msgid "URL access forbidden for unknown reason"
msgstr "URL-Zugriff wegen unbekannter Ursache verboten"
-#: ../include/svn_error_codes.h:1067
+#: ../include/svn_error_codes.h:1082
msgid "The server state conflicts with the requested preconditions"
msgstr "Der Serverzustand steht im Konflikt mit den angeforderten Vorbedingungen"
-#: ../include/svn_error_codes.h:1072
+#: ../include/svn_error_codes.h:1087
msgid "The URL doesn't allow the requested method"
msgstr "Die URL erlaubt die angeforderte Methode nicht"
-#: ../include/svn_error_codes.h:1078 ../include/svn_error_codes.h:1524
+#: ../include/svn_error_codes.h:1093 ../include/svn_error_codes.h:1564
msgid "Couldn't find a repository"
msgstr "Konnte Projektarchiv nicht finden"
-#: ../include/svn_error_codes.h:1082
+#: ../include/svn_error_codes.h:1097
msgid "Couldn't open a repository"
msgstr "Konnte Projektarchiv nicht öffnen"
-#: ../include/svn_error_codes.h:1088
+#: ../include/svn_error_codes.h:1103
msgid "Svndiff data has invalid header"
msgstr "Svndiff-Daten enthalten ungültigen Kopf"
-#: ../include/svn_error_codes.h:1092
+#: ../include/svn_error_codes.h:1107
msgid "Svndiff data contains corrupt window"
msgstr "Svndiff-Daten enthalten defektes Fenster"
-#: ../include/svn_error_codes.h:1096
+#: ../include/svn_error_codes.h:1111
msgid "Svndiff data contains backward-sliding source view"
msgstr "Svndiff-Daten enthalten rückwärts gleitenden Blick auf Quellen"
-#: ../include/svn_error_codes.h:1100
+#: ../include/svn_error_codes.h:1115
msgid "Svndiff data contains invalid instruction"
msgstr "Svndiff-Daten enthalten ungültige Anweisung"
-#: ../include/svn_error_codes.h:1104
+#: ../include/svn_error_codes.h:1119
msgid "Svndiff data ends unexpectedly"
msgstr "Svndiff-Daten enden unerwartet"
-#: ../include/svn_error_codes.h:1108
+#: ../include/svn_error_codes.h:1123
msgid "Svndiff compressed data is invalid"
msgstr "Komprimierte svndiff-Daten sind ungültig"
-#: ../include/svn_error_codes.h:1114
+#: ../include/svn_error_codes.h:1129
msgid "Apache has no path to an SVN filesystem"
msgstr "Apache besitzt keinen Pfad zu einem SVN Dateisystem"
-#: ../include/svn_error_codes.h:1118
+#: ../include/svn_error_codes.h:1133
msgid "Apache got a malformed URI"
msgstr "Apache hat eine fehlerhafte URI erhalten"
-#: ../include/svn_error_codes.h:1122
+#: ../include/svn_error_codes.h:1137
msgid "Activity not found"
msgstr "Aktivität nicht gefunden"
-#: ../include/svn_error_codes.h:1126
+#: ../include/svn_error_codes.h:1141
msgid "Baseline incorrect"
msgstr "»Baseline« nicht korrekt"
-#: ../include/svn_error_codes.h:1130
+#: ../include/svn_error_codes.h:1145
msgid "Input/output error"
msgstr "Eingabe/Ausgabe Fehler"
-#: ../include/svn_error_codes.h:1136
+#: ../include/svn_error_codes.h:1151
msgid "A path under version control is needed for this operation"
msgstr "Für diese Operation wird ein Pfad unter Versionskontrolle benötigt"
-#: ../include/svn_error_codes.h:1140
+#: ../include/svn_error_codes.h:1155
msgid "Repository access is needed for this operation"
msgstr "Für diese Operation wird Zugang zum Projektarchiv benötigt"
-#: ../include/svn_error_codes.h:1144
+#: ../include/svn_error_codes.h:1159
msgid "Bogus revision information given"
msgstr "Falsche Revisionsinformation angegeben"
-#: ../include/svn_error_codes.h:1148
+#: ../include/svn_error_codes.h:1163
msgid "Attempting to commit to a URL more than once"
msgstr "Versuch, mehrfach zu einer URL zu übertragen"
-#: ../include/svn_error_codes.h:1152
+#: ../include/svn_error_codes.h:1167
msgid "Operation does not apply to binary file"
msgstr "Operation ist nicht auf einer Binärdatei ausführbar"
-#: ../include/svn_error_codes.h:1158
+#: ../include/svn_error_codes.h:1173
msgid "Format of an svn:externals property was invalid"
msgstr "Format einer svn:externals Eigenschaft war ungültig"
-#: ../include/svn_error_codes.h:1162
+#: ../include/svn_error_codes.h:1177
msgid "Attempting restricted operation for modified resource"
msgstr "Versuch, eine beschränkte Operation für veränderte Ressource auszuführen"
-#: ../include/svn_error_codes.h:1166
+#: ../include/svn_error_codes.h:1181
msgid "Operation does not apply to directory"
msgstr "Operation ist nicht auf einem Verzeichnis ausführbar"
-#: ../include/svn_error_codes.h:1170
+#: ../include/svn_error_codes.h:1185 ../svnadmin/svnadmin.c:1810
+#, c-format
msgid "Revision range is not allowed"
msgstr "Revisionsbereich nicht erlaubt"
-#: ../include/svn_error_codes.h:1174
+#: ../include/svn_error_codes.h:1189
msgid "Inter-repository relocation not allowed"
msgstr "Umplatzieren innerhalb des Projektarchivs nicht erlaubt"
-#: ../include/svn_error_codes.h:1178
+#: ../include/svn_error_codes.h:1193
msgid "Author name cannot contain a newline"
msgstr "Autorenname darf keinen Zeilenumbruch enthalten"
-#: ../include/svn_error_codes.h:1182
+#: ../include/svn_error_codes.h:1197
msgid "Bad property name"
msgstr "Fehlerhafter Eigenschaftsname"
-#: ../include/svn_error_codes.h:1187
+#: ../include/svn_error_codes.h:1202
msgid "Two versioned resources are unrelated"
msgstr "Zwei versionierte Ressourcen sind nicht verwandt"
-#: ../include/svn_error_codes.h:1192
+#: ../include/svn_error_codes.h:1207
msgid "Path has no lock token"
msgstr "Pfad hat keine Sperrmarke"
-#: ../include/svn_error_codes.h:1197
+#: ../include/svn_error_codes.h:1212
msgid "Operation does not support multiple sources"
msgstr "Die Operation unterstützt nicht mehrere Quellen"
-#: ../include/svn_error_codes.h:1202
+#: ../include/svn_error_codes.h:1217
msgid "No versioned parent directories"
msgstr "Keine versionierten Elternverzeichnisse"
-#: ../include/svn_error_codes.h:1207 ../include/svn_error_codes.h:1227
+#: ../include/svn_error_codes.h:1222 ../include/svn_error_codes.h:1242
msgid "Working copy and merge source not ready for reintegration"
msgstr "Arbeitskopie und Zusammnführungsquelle sind für eine Reintegration nicht bereit"
-#: ../include/svn_error_codes.h:1212
+#: ../include/svn_error_codes.h:1227
msgid "A file external cannot overwrite an existing versioned item"
msgstr "Ein externer Dateiverweis kann kein existierendes versioniertes Objekt überschreiben"
-#: ../include/svn_error_codes.h:1217
+#: ../include/svn_error_codes.h:1232
msgid "Invalid path component strip count specified"
msgstr "Ungültige Anzahl der vom Pfad zu entfernenden Komponenten angegeben"
-#: ../include/svn_error_codes.h:1222
+#: ../include/svn_error_codes.h:1237
msgid "Detected a cycle while processing the operation"
msgstr "Endlosschleife während der Verarbeitung der Operation entdeckt"
-#: ../include/svn_error_codes.h:1232
+#: ../include/svn_error_codes.h:1247
msgid "Invalid mergeinfo detected in merge target"
msgstr "Ungültige Zusammenführungsinformationen in Zusammenführungsziel entdeckt"
-#: ../include/svn_error_codes.h:1237
+#: ../include/svn_error_codes.h:1252
msgid "Can't perform this operation without a valid lock token"
msgstr "Kann diese Operation nicht ohne eine gültige Sperrmarke ausführen"
-#: ../include/svn_error_codes.h:1242
+#: ../include/svn_error_codes.h:1257
msgid "The operation is forbidden by the server"
msgstr "Die Operation wurde durch den Server nicht zugelassen"
-#: ../include/svn_error_codes.h:1248
+#: ../include/svn_error_codes.h:1262
+#, fuzzy
+msgid "The conflict resolution option is not applicable"
+msgstr "Konfliktauflösung schlug fehl"
+
+#: ../include/svn_error_codes.h:1268
msgid "A problem occurred; see other errors for details"
msgstr "Ein Problem ist aufgetreten, für Details siehe andere Fehlermeldungen"
-#: ../include/svn_error_codes.h:1252
+#: ../include/svn_error_codes.h:1272
msgid "Failure loading plugin"
msgstr "Fehler beim Laden eines Plugins"
-#: ../include/svn_error_codes.h:1256
+#: ../include/svn_error_codes.h:1276
msgid "Malformed file"
msgstr "Fehlerhafte Datei"
-#: ../include/svn_error_codes.h:1260
+#: ../include/svn_error_codes.h:1280
msgid "Incomplete data"
msgstr "Unvollständige Daten"
-#: ../include/svn_error_codes.h:1264
+#: ../include/svn_error_codes.h:1284
msgid "Incorrect parameters given"
msgstr "Inkorrekte Parameter übergeben"
-#: ../include/svn_error_codes.h:1268
+#: ../include/svn_error_codes.h:1288
msgid "Tried a versioning operation on an unversioned resource"
msgstr "Versuchte, eine Versionsoperation auf nicht versionierter Ressource auszuführen"
-#: ../include/svn_error_codes.h:1272
+#: ../include/svn_error_codes.h:1292
msgid "Test failed"
msgstr "Test schlug fehl"
-#: ../include/svn_error_codes.h:1276
+#: ../include/svn_error_codes.h:1296
msgid "Trying to use an unsupported feature"
msgstr "Versuch, ein nicht unterstütztes Merkmal zu benutzen"
-#: ../include/svn_error_codes.h:1280
+#: ../include/svn_error_codes.h:1300
msgid "Unexpected or unknown property kind"
msgstr "Unerwartete oder unbekannte Eigenschaftsart"
-#: ../include/svn_error_codes.h:1284
+#: ../include/svn_error_codes.h:1304
msgid "Illegal target for the requested operation"
msgstr "Ungültiges Ziel für die angeforderte Operation"
-#: ../include/svn_error_codes.h:1288
+#: ../include/svn_error_codes.h:1308
msgid "MD5 checksum is missing"
msgstr "MD5 Prüfsumme fehlt"
-#: ../include/svn_error_codes.h:1292
+#: ../include/svn_error_codes.h:1312
msgid "Directory needs to be empty but is not"
msgstr "Das Verzeichnis muss leer sein, ist es aber nicht"
-#: ../include/svn_error_codes.h:1296
+#: ../include/svn_error_codes.h:1316
msgid "Error calling external program"
msgstr "Fehler beim Aufrufen eines externen Programmes"
-#: ../include/svn_error_codes.h:1300
+#: ../include/svn_error_codes.h:1320
msgid "Python exception has been set with the error"
msgstr "Eine Python-Ausnahme wurde mit dem Fehler gesetzt"
-#: ../include/svn_error_codes.h:1304
+#: ../include/svn_error_codes.h:1324
msgid "A checksum mismatch occurred"
msgstr "Ein Prüfsummenfehler ist aufgetreten"
-#: ../include/svn_error_codes.h:1308
+#: ../include/svn_error_codes.h:1328
msgid "The operation was interrupted"
msgstr "Die Operation wurde unterbrochen"
-#: ../include/svn_error_codes.h:1312
+#: ../include/svn_error_codes.h:1332
msgid "The specified diff option is not supported"
msgstr "Die angegebene Vergleichsoption wird nicht unterstützt"
-#: ../include/svn_error_codes.h:1316
+#: ../include/svn_error_codes.h:1336
msgid "Property not found"
msgstr "Eigenschaft nicht gefunden"
-#: ../include/svn_error_codes.h:1320
+#: ../include/svn_error_codes.h:1340
msgid "No auth file path available"
msgstr "Kein Pfad für die Anmeldedatei verfügbar"
-#: ../include/svn_error_codes.h:1325
+#: ../include/svn_error_codes.h:1345
msgid "Incompatible library version"
msgstr "Inkompatible Bibliotheksversion"
-#: ../include/svn_error_codes.h:1330
+#: ../include/svn_error_codes.h:1350
msgid "Mergeinfo parse error"
msgstr "Einlesefehler für Zusammenführungsinformationen"
-#: ../include/svn_error_codes.h:1335
+#: ../include/svn_error_codes.h:1355
msgid "Cease invocation of this API"
msgstr "Einstellen der Benutzung dieser API"
-#: ../include/svn_error_codes.h:1340
+#: ../include/svn_error_codes.h:1360
msgid "Error parsing revision number"
msgstr "Fehler beim Einlesen der Revisionsnummer"
-#: ../include/svn_error_codes.h:1345
+#: ../include/svn_error_codes.h:1365
msgid "Iteration terminated before completion"
msgstr "Iteration brach vor der Fertigstellung ab"
-#: ../include/svn_error_codes.h:1350
+#: ../include/svn_error_codes.h:1370
msgid "Unknown changelist"
msgstr "Unbekannte Änderungsliste"
-#: ../include/svn_error_codes.h:1355
+#: ../include/svn_error_codes.h:1375
msgid "Reserved directory name in command line arguments"
msgstr "Kommandozeilenparameter enthalten reservierten Verzeichnisnamen"
-#: ../include/svn_error_codes.h:1360
+#: ../include/svn_error_codes.h:1380
msgid "Inquiry about unknown capability"
msgstr "Nachfrage nach unbekannter Eigenschaft"
-#: ../include/svn_error_codes.h:1365
+#: ../include/svn_error_codes.h:1385
msgid "Test skipped"
msgstr "Test übersprungen"
-#: ../include/svn_error_codes.h:1370
+#: ../include/svn_error_codes.h:1390
msgid "APR memcache library not available"
msgstr "Die APR-memcache-Bibliothek ist nicht verfügbar"
-#: ../include/svn_error_codes.h:1375
+#: ../include/svn_error_codes.h:1395
msgid "Couldn't perform atomic initialization"
msgstr "Eine atomare Initialisierung konnte nicht durchgeführt werden"
-#: ../include/svn_error_codes.h:1380
+#: ../include/svn_error_codes.h:1400
msgid "SQLite error"
msgstr "SQLite-Fehler"
-#: ../include/svn_error_codes.h:1385
+#: ../include/svn_error_codes.h:1405
msgid "Attempted to write to readonly SQLite db"
msgstr "Versuch, in eine nur lesbare SQLite-Datenbank zu schreiben"
-#: ../include/svn_error_codes.h:1392
+#: ../include/svn_error_codes.h:1412
msgid "Unsupported schema found in SQLite db"
msgstr "Nicht unterstütztes Schema in SQLite-Datenbank gefunden"
-#: ../include/svn_error_codes.h:1397
+#: ../include/svn_error_codes.h:1417
msgid "The SQLite db is busy"
msgstr "Die SQLite-Datenbank ist beschäftigt"
-#: ../include/svn_error_codes.h:1402
+#: ../include/svn_error_codes.h:1422
msgid "SQLite busy at transaction rollback; resetting all busy SQLite statements to allow rollback"
msgstr "SQLite ist mit dem Rollback einer Transaktion beschäftigt; Alle SQLite-Anweisungen werden für Rollback zurückgesetzt"
-#: ../include/svn_error_codes.h:1408
+#: ../include/svn_error_codes.h:1428
msgid "Constraint error in SQLite db"
msgstr "Constraint-Fehler in SQLite-Datenbank"
-#: ../include/svn_error_codes.h:1413
+#: ../include/svn_error_codes.h:1433
msgid "Too many memcached servers configured"
msgstr "Zu viele memcached-Server konfiguriert"
-#: ../include/svn_error_codes.h:1418
+#: ../include/svn_error_codes.h:1438
msgid "Failed to parse version number string"
msgstr "Konnte Zeichenkette mit Versionsnummer nicht verarbeiten"
-#: ../include/svn_error_codes.h:1423
+#: ../include/svn_error_codes.h:1443
msgid "Atomic data storage is corrupt"
msgstr "Speicherbereich für »atomic« ist beschädigt"
-#: ../include/svn_error_codes.h:1428
+#: ../include/svn_error_codes.h:1448
msgid "utf8proc library error"
msgstr "Fehler in utf8proc-Bibliothek"
-#: ../include/svn_error_codes.h:1433
+#: ../include/svn_error_codes.h:1453
msgid "Bad arguments to SQL operators GLOB or LIKE"
msgstr "Fehlerhafte Parameter für SQL-Operatoren GLOB oder LIKE"
-#: ../include/svn_error_codes.h:1438
+#: ../include/svn_error_codes.h:1458
msgid "Packed data stream is corrupt"
msgstr "Komprimierter Datenstrom ist beschädigt"
-#: ../include/svn_error_codes.h:1443
+#: ../include/svn_error_codes.h:1463
msgid "Additional errors:"
msgstr "Zusätzliche Fehler:"
-#: ../include/svn_error_codes.h:1448
+#: ../include/svn_error_codes.h:1468
msgid "Parser error: invalid input"
msgstr "Formatfehler: ungültige Eingabe"
-#: ../include/svn_error_codes.h:1454
+#: ../include/svn_error_codes.h:1473
+#, fuzzy
+msgid "SQLite transaction rollback failed"
+msgstr "Aufräumen der Transaktion »%s« schlug fehl"
+
+#: ../include/svn_error_codes.h:1478
+#, fuzzy
+msgid "LZ4 compression failed"
+msgstr "XML-Parser schlug fehl"
+
+#: ../include/svn_error_codes.h:1483
+#, fuzzy
+msgid "LZ4 decompression failed"
+msgstr "Sperrvorgang schlug fehl"
+
+#: ../include/svn_error_codes.h:1489
msgid "Error parsing arguments"
msgstr "Fehler beim Einlesen der Parameter"
-#: ../include/svn_error_codes.h:1458
+#: ../include/svn_error_codes.h:1493
msgid "Not enough arguments provided"
msgstr "Nicht genügend Parameter angegeben"
-#: ../include/svn_error_codes.h:1462
+#: ../include/svn_error_codes.h:1497
msgid "Mutually exclusive arguments specified"
msgstr "Die Parameter schließen sich gegenseitig aus"
-#: ../include/svn_error_codes.h:1466
+#: ../include/svn_error_codes.h:1501
msgid "Attempted command in administrative dir"
msgstr "Ausführen einer Operation in einem Verwaltungsverzeichnis versucht"
-#: ../include/svn_error_codes.h:1470
+#: ../include/svn_error_codes.h:1505
msgid "The log message file is under version control"
msgstr "Die Datei für die Logmeldung ist unter Versionskontrolle"
-#: ../include/svn_error_codes.h:1474
+#: ../include/svn_error_codes.h:1509
msgid "The log message is a pathname"
msgstr "Die Logmeldung ist ein Pfadname"
-#: ../include/svn_error_codes.h:1478
+#: ../include/svn_error_codes.h:1513
msgid "Committing in directory scheduled for addition"
msgstr "Übertragung in einem Verzeichnis, das zum Hinzufügen vorgesehen ist"
-#: ../include/svn_error_codes.h:1482
+#: ../include/svn_error_codes.h:1517
msgid "No external editor available"
msgstr "Kein externer Editor verfügbar"
-#: ../include/svn_error_codes.h:1486
+#: ../include/svn_error_codes.h:1521
msgid "Something is wrong with the log message's contents"
msgstr "Mit dem Inhalt der Logmeldung stimmt etwas nicht"
-#: ../include/svn_error_codes.h:1490
+#: ../include/svn_error_codes.h:1525
msgid "A log message was given where none was necessary"
msgstr "Eine Logmeldung wurde angegeben wo keine nötig ist"
-#: ../include/svn_error_codes.h:1494
+#: ../include/svn_error_codes.h:1529
msgid "No external merge tool available"
msgstr "Kein externes Werkzeug zum Zusammenführen verfügbar"
-#: ../include/svn_error_codes.h:1498
+#: ../include/svn_error_codes.h:1533
msgid "Failed processing one or more externals definitions"
msgstr "Verarbeitung einer oder mehrerer »svn:externals«-Definitionen fehlgeschlagen"
-#: ../include/svn_error_codes.h:1504
+#: ../include/svn_error_codes.h:1538
+#, fuzzy
+msgid "Repository verification failed"
+msgstr "Anlegen des Projektarchivs schlug fehl"
+
+#: ../include/svn_error_codes.h:1544
msgid "Special code for wrapping server errors to report to client"
msgstr "Spezieller Fehlerkode, um Serverfehler an den Client zu melden"
-#: ../include/svn_error_codes.h:1508
+#: ../include/svn_error_codes.h:1548
msgid "Unknown svn protocol command"
msgstr "Unbekanntes svn-Protokollkommando"
-#: ../include/svn_error_codes.h:1512
+#: ../include/svn_error_codes.h:1552
msgid "Network connection closed unexpectedly"
msgstr "Netzwerkverbindung wurde unerwartet geschlossen"
-#: ../include/svn_error_codes.h:1516
+#: ../include/svn_error_codes.h:1556
msgid "Network read/write error"
msgstr "Netzwerk-Lese-/-Schreibfehler"
-#: ../include/svn_error_codes.h:1528
+#: ../include/svn_error_codes.h:1568
msgid "Client/server version mismatch"
msgstr "Client- und Serverversion stimmen nicht überein"
-#: ../include/svn_error_codes.h:1533
+#: ../include/svn_error_codes.h:1573
msgid "Cannot negotiate authentication mechanism"
msgstr "Kann Anmeldungsmechanismus nicht aushandeln"
-#: ../include/svn_error_codes.h:1538
+#: ../include/svn_error_codes.h:1578
msgid "Editor drive was aborted"
msgstr "Editor-Steuerung wurde unterbrochen"
-#: ../include/svn_error_codes.h:1546
+#: ../include/svn_error_codes.h:1583
+#, fuzzy
+msgid "Client request too long"
+msgstr "Ganzzahldarstellung zu lang"
+
+#: ../include/svn_error_codes.h:1588
+#, fuzzy
+msgid "Server response too long"
+msgstr "Antwort auf Protokollschritt zu lang"
+
+#: ../include/svn_error_codes.h:1596
msgid "Credential data unavailable"
msgstr "Beglaubigungsdaten nicht verfügbar"
-#: ../include/svn_error_codes.h:1550
+#: ../include/svn_error_codes.h:1600
msgid "No authentication provider available"
msgstr "Kein Anbieter für Anmeldung verfügbar"
-#: ../include/svn_error_codes.h:1554
+#: ../include/svn_error_codes.h:1604
msgid "All authentication providers exhausted"
msgstr "Alle Anmeldemöglichkeiten erschöpft"
-#: ../include/svn_error_codes.h:1558
+#: ../include/svn_error_codes.h:1608
msgid "Credentials not saved"
msgstr "Beglaubigungsdaten nicht gespeichert"
-#: ../include/svn_error_codes.h:1563 ../libsvn_subr/gpg_agent.c:416
+#: ../include/svn_error_codes.h:1613 ../libsvn_subr/gpg_agent.c:512
msgid "Authentication failed"
msgstr "Authentifizierung schlug fehl"
-#: ../include/svn_error_codes.h:1569
+#: ../include/svn_error_codes.h:1619
msgid "Read access denied for root of edit"
msgstr "Lesezugriff verweigert für Basis dieser Änderung"
-#: ../include/svn_error_codes.h:1574
+#: ../include/svn_error_codes.h:1624
msgid "Item is not readable"
msgstr "Eintrag ist nicht lesbar"
-#: ../include/svn_error_codes.h:1579
+#: ../include/svn_error_codes.h:1629
msgid "Item is partially readable"
msgstr "Eintrag ist nur teilweise lesbar"
-#: ../include/svn_error_codes.h:1583
+#: ../include/svn_error_codes.h:1633
msgid "Invalid authz configuration"
msgstr "Ungültige authz Konfiguration"
-#: ../include/svn_error_codes.h:1588
+#: ../include/svn_error_codes.h:1638
msgid "Item is not writable"
msgstr "Eintrag ist nicht schreibbar"
-#: ../include/svn_error_codes.h:1595
+#: ../include/svn_error_codes.h:1645
msgid "Diff data source modified unexpectedly"
msgstr "Diff-Datenquellen wurden unerwarteterweise verändert"
-#: ../include/svn_error_codes.h:1602
+#: ../include/svn_error_codes.h:1650
+#, fuzzy
+msgid "Diff data unexpected"
+msgstr "Svndiff-Daten enden unerwartet"
+
+#: ../include/svn_error_codes.h:1657
msgid "Initialization of SSPI library failed"
msgstr "Initialisierung der SSPI-Bibliothek schlug fehl"
-#: ../include/svn_error_codes.h:1608
+#: ../include/svn_error_codes.h:1663
msgid "Server SSL certificate untrusted"
msgstr "Server-SSL-Zertifikat ist nicht vertrauenswürdig"
-#: ../include/svn_error_codes.h:1613
+#: ../include/svn_error_codes.h:1668
msgid "Initialization of the GSSAPI context failed"
msgstr "Initialisierung des GSSAPI-Kontextes schlug fehl"
-#: ../include/svn_error_codes.h:1618
+#: ../include/svn_error_codes.h:1673
msgid "While handling serf response:"
msgstr "Während der Abwicklung einer serf Antwort:"
-#: ../include/svn_error_codes.h:1624
+#: ../include/svn_error_codes.h:1678
+#, fuzzy
+msgid "Can't read from stream"
+msgstr "Kann nicht aus Datenstrom lesen"
+
+#: ../include/svn_error_codes.h:1684
msgid "Assertion failure"
msgstr "Assert-Anweisung schlug fehl"
-#: ../include/svn_error_codes.h:1628
+#: ../include/svn_error_codes.h:1688
msgid "No non-tracing links found in the error chain"
msgstr "Nur Nicht-Tracing-Einträge in Fehlerkette gefunden"
-#: ../include/svn_error_codes.h:1636
+#: ../include/svn_error_codes.h:1696
msgid "Unexpected end of ASN1 data"
msgstr "Unerwartetes Ende der ASN1-Daten"
-#: ../include/svn_error_codes.h:1640
+#: ../include/svn_error_codes.h:1700
msgid "Unexpected ASN1 tag"
msgstr "Unerwartetes ASN1-Tag"
-#: ../include/svn_error_codes.h:1644
+#: ../include/svn_error_codes.h:1704
msgid "Invalid ASN1 length"
msgstr "Ungültige ASN1-Länge"
-#: ../include/svn_error_codes.h:1648
+#: ../include/svn_error_codes.h:1708
msgid "ASN1 length mismatch"
msgstr "ASN1-Länge stimmt nicht überein"
-#: ../include/svn_error_codes.h:1652
+#: ../include/svn_error_codes.h:1712
msgid "Invalid ASN1 data"
msgstr "Ungültige ASN1-Daten"
-#: ../include/svn_error_codes.h:1656
+#: ../include/svn_error_codes.h:1716
msgid "Unavailable X509 feature"
msgstr "Nicht verfügbare X509-Funktion"
-#: ../include/svn_error_codes.h:1660
+#: ../include/svn_error_codes.h:1720
msgid "Invalid PEM certificate"
msgstr "Ungültiges PEM-Zertifikat"
-#: ../include/svn_error_codes.h:1664
+#: ../include/svn_error_codes.h:1724
msgid "Invalid certificate format"
msgstr "Ungültiges Format des Zertifikats"
-#: ../include/svn_error_codes.h:1668
+#: ../include/svn_error_codes.h:1728
msgid "Invalid certificate version"
msgstr "Ungültige Version des Zertifikats"
-#: ../include/svn_error_codes.h:1672
+#: ../include/svn_error_codes.h:1732
msgid "Invalid certificate serial number"
msgstr "Ungültige Seriennummer des Zertifikats"
-#: ../include/svn_error_codes.h:1676
+#: ../include/svn_error_codes.h:1736
msgid "Found invalid algorithm in certificate"
msgstr "Ungültiger Algorithmus im Zertifikat gefunden"
-#: ../include/svn_error_codes.h:1680
+#: ../include/svn_error_codes.h:1740
msgid "Found invalid name in certificate"
msgstr "Ungültiger Name im Zertifikat gefunden"
-#: ../include/svn_error_codes.h:1684
+#: ../include/svn_error_codes.h:1744
msgid "Found invalid date in certificate"
msgstr "Ungültiges Datum im Zertifikat gefunden"
-#: ../include/svn_error_codes.h:1688
+#: ../include/svn_error_codes.h:1748
msgid "Found invalid public key in certificate"
msgstr "Ungültiger öffentlicher Schlüssel im Zertifikat gefunden"
-#: ../include/svn_error_codes.h:1692
+#: ../include/svn_error_codes.h:1752
msgid "Found invalid signature in certificate"
msgstr "Ungültige Signatur im Zertifikat gefunden"
-#: ../include/svn_error_codes.h:1696
+#: ../include/svn_error_codes.h:1756
msgid "Found invalid extensions in certificate"
msgstr "Ungültige Erweiterungen im Zertifikat gefunden"
-#: ../include/svn_error_codes.h:1700
+#: ../include/svn_error_codes.h:1760
msgid "Unknown certificate version"
msgstr "Unbekannte Version im Zertifikat"
-#: ../include/svn_error_codes.h:1704
+#: ../include/svn_error_codes.h:1764
msgid "Certificate uses unknown public key algorithm"
msgstr "Zertifikat verwendet unbekannten asymmetrischen Algorithmus"
-#: ../include/svn_error_codes.h:1708
+#: ../include/svn_error_codes.h:1768
msgid "Certificate signature mismatch"
msgstr "Signatur des Zertifikats stimmt nicht überein"
-#: ../include/svn_error_codes.h:1712
+#: ../include/svn_error_codes.h:1772
msgid "Certficate verification failed"
msgstr "Überprüfung des Zertifikats fehlgeschlagen"
-#: ../libsvn_auth_gnome_keyring/gnome_keyring.c:152
+#: ../libsvn_auth_gnome_keyring/gnome_keyring.c:290
msgid "GNOME Keyring is locked and we are non-interactive"
msgstr "GNOME-Schlüsselring ist gesperrt und wir sind nicht-interaktiv"
#: ../libsvn_client/add.c:609 ../libsvn_client/cmdline.c:365
-#: ../libsvn_subr/opt.c:932
+#: ../libsvn_subr/opt.c:1234
#, c-format
msgid "'%s' ends in a reserved name"
msgstr "»%s« endet mit einem reservierten Namen"
@@ -1519,7 +1580,7 @@ msgid "'%s' is an existing item in conflict; please mark the conflict as resolve
msgstr "»%s« ist ein vorhandenes Element mit Konflikt; Markieren Sie den Konflikt als aufgelöst bevor Sie hier ein neues Element hinzufügen"
#: ../libsvn_client/add.c:869 ../libsvn_wc/adm_ops.c:400
-#: ../libsvn_wc/workqueue.c:873 ../libsvn_wc/workqueue.c:967
+#: ../libsvn_wc/workqueue.c:874 ../libsvn_wc/workqueue.c:968
#, c-format
msgid "'%s' not found"
msgstr "»%s« nicht gefunden"
@@ -1531,13 +1592,14 @@ msgid "Unsupported node kind for path '%s'"
msgstr "Nicht unterstützter Knotentyp für Pfad »%s«"
#: ../libsvn_client/add.c:908 ../libsvn_client/changelist.c:65
-#: ../libsvn_client/changelist.c:104 ../libsvn_client/deprecated.c:3078
-#: ../libsvn_client/export.c:1394 ../libsvn_client/import.c:831
-#: ../libsvn_client/patch.c:3242 ../libsvn_client/relocate.c:153
-#: ../libsvn_client/resolved.c:119 ../libsvn_client/revert.c:149
-#: ../libsvn_client/status.c:368 ../libsvn_client/switch.c:471
-#: ../libsvn_client/update.c:701 ../libsvn_client/upgrade.c:109
-#: ../svn/util.c:986 ../svnbench/util.c:76
+#: ../libsvn_client/changelist.c:104 ../libsvn_client/deprecated.c:3197
+#: ../libsvn_client/export.c:1389 ../libsvn_client/import.c:861
+#: ../libsvn_client/patch.c:3745 ../libsvn_client/relocate.c:155
+#: ../libsvn_client/resolved.c:120 ../libsvn_client/revert.c:152
+#: ../libsvn_client/shelf.c:378 ../libsvn_client/status.c:368
+#: ../libsvn_client/switch.c:471 ../libsvn_client/update.c:701
+#: ../libsvn_client/upgrade.c:111 ../svn/shelf-cmd.c:1053 ../svn/util.c:990
+#: ../svnbench/util.c:76
#, c-format
msgid "'%s' is not a local path"
msgstr "»%s« ist kein lokaler Pfad"
@@ -1560,11 +1622,11 @@ msgstr "Kann Binärdatei »%s« nicht annotieren"
#: ../libsvn_client/cat.c:77 ../libsvn_client/commit_util.c:612
#: ../libsvn_client/delete.c:81 ../libsvn_client/prop_commands.c:817
-#: ../libsvn_client/prop_commands.c:1398 ../libsvn_client/revisions.c:105
+#: ../libsvn_client/prop_commands.c:1398 ../libsvn_client/revisions.c:107
#: ../libsvn_wc/adm_ops.c:913 ../libsvn_wc/adm_ops.c:967
#: ../libsvn_wc/copy.c:628 ../libsvn_wc/copy.c:689 ../libsvn_wc/entries.c:1407
#: ../libsvn_wc/entries.c:2803 ../libsvn_wc/entries.c:2834
-#: ../svn/notify.c:1026 ../svnbench/notify.c:968
+#: ../svn/notify.c:1157 ../svnbench/notify.c:968
#, c-format
msgid "'%s' is not under version control"
msgstr "»%s« ist nicht unter Versionskontrolle"
@@ -1592,23 +1654,23 @@ msgstr "URL »%s« verweist auf auf ein Verzeichnis"
msgid "Target changelist name must not be empty"
msgstr "Name der Ziel-Änderungsliste darf nicht leer sein"
-#: ../libsvn_client/checkout.c:131 ../libsvn_client/export.c:1447
-#: ../svnbench/null-export-cmd.c:275
+#: ../libsvn_client/checkout.c:133 ../libsvn_client/export.c:1446
+#: ../svnbench/null-export-cmd.c:293
#, c-format
msgid "URL '%s' doesn't exist"
msgstr "Die URL »%s« existiert nicht"
-#: ../libsvn_client/checkout.c:135
+#: ../libsvn_client/checkout.c:137
#, c-format
msgid "URL '%s' refers to a file, not a directory"
msgstr "Die URL »%s« verweist auf eine Datei, nicht auf ein Verzeichnis"
-#: ../libsvn_client/checkout.c:173
+#: ../libsvn_client/checkout.c:175
#, c-format
msgid "'%s' is already a working copy for a different URL"
msgstr "»%s« ist bereits eine Arbeitskopie für eine andere URL"
-#: ../libsvn_client/checkout.c:181
+#: ../libsvn_client/checkout.c:183
#, c-format
msgid "'%s' already exists and is not a directory"
msgstr "»%s« existiert bereits und ist kein Verzeichnis"
@@ -1627,7 +1689,7 @@ msgstr "»%s« ist nur eine Fix-Revision. Meinten Sie stattdessen »%s@«?"
msgid "Resolving '^/': no repository root found in the target arguments or in the current directory"
msgstr "Auflösen von »^/«: Keine Wurzel eines Projektarchivs in den Zielparametern oder im Arbeitsverzeichnis gefunden"
-#: ../libsvn_client/commit.c:157 ../libsvn_client/copy.c:2260
+#: ../libsvn_client/commit.c:157 ../libsvn_client/copy.c:2303
msgid "Commit failed (details follow):"
msgstr "Ãœbertragen schlug fehl (Details folgen):"
@@ -1740,130 +1802,1891 @@ msgstr "Übertragenes Objekt »%s« ist als Kopie markiert, hat aber eine ungül
msgid "Standard properties can't be set explicitly as revision properties"
msgstr "Standardeigenschaften können nicht explizit als Revisionseigenschaften gesetzt werden"
+# FIXME: Grammar depends on usage!!!!!!! (prepanded by "bei")
+#: ../libsvn_client/conflicts.c:734 ../libsvn_client/conflicts.c:1095
+#: ../libsvn_client/conflicts.c:1688 ../libsvn_client/conflicts.c:4625
+#: ../libsvn_client/conflicts.c:5124 ../libsvn_client/conflicts.c:5146
+#: ../libsvn_client/conflicts.c:5197 ../libsvn_client/conflicts.c:5674
+#, fuzzy
+msgid "unknown author"
+msgstr "Unbekannter Fehler"
+
+#: ../libsvn_client/conflicts.c:1126
+msgid "A file containing uncommitted changes was found in the working copy."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:1129
+msgid "A file which differs from the corresponding file on the merge source branch was found in the working copy."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:1134
+msgid "A file which already occupies this path was found in the working copy."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:1138
+#, fuzzy
+msgid "An unversioned file was found in the working copy."
+msgstr "Pfad »%s« ist nicht in der Arbeitskopie enthalten"
+
+#: ../libsvn_client/conflicts.c:1142
+#, fuzzy
+msgid "A deleted file was found in the working copy."
+msgstr "Pfad »%s« ist nicht in der Arbeitskopie enthalten"
+
+#: ../libsvn_client/conflicts.c:1147
+#, fuzzy
+msgid "No such file was found in the working copy."
+msgstr "Pfad »%s« ist nicht in der Arbeitskopie enthalten"
+
+#. ### display deleted revision
+#: ../libsvn_client/conflicts.c:1151
+msgid ""
+"No such file was found in the merge target working copy.\n"
+"Perhaps the file has been deleted or moved away in the repository's history?"
+msgstr ""
+
+#. ### show more details about copies or replacements?
+#: ../libsvn_client/conflicts.c:1161
+msgid "A file scheduled to be added to the repository in the next commit was found in the working copy."
+msgstr ""
+
+#. The move no longer exists.
+#. The move probably happened in branch history.
+#. * This case cannot happen until we detect incoming
+#. * moves, which we currently don't do.
+#. ### find deleted/moved revision?
+#: ../libsvn_client/conflicts.c:1192 ../libsvn_client/conflicts.c:1224
+msgid "The file in the working copy had been moved away at the time this conflict was recorded."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:1207 ../libsvn_client/conflicts.c:1240
+#, fuzzy, c-format
+msgid ""
+"The file in the working copy was moved away to\n"
+"'%s'."
+msgstr "Der Pfad »%s« ist nicht in der Arbeitskopie »%s« "
+
+#. The move no longer exists.
+#. The move probably happened in branch history.
+#. * This case cannot happen until we detect incoming
+#. * moves, which we currently don't do.
+#. ### find deleted/moved revision?
+#: ../libsvn_client/conflicts.c:1266 ../libsvn_client/conflicts.c:1298
+msgid "A file had been moved here in the working copy at the time this conflict was recorded."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:1281 ../libsvn_client/conflicts.c:1314
+#, fuzzy, c-format
+msgid ""
+"A file was moved here in the working copy from\n"
+"'%s'."
+msgstr "»%s« ist nicht die Basis des Projektarchivs »%s«"
+
+#: ../libsvn_client/conflicts.c:1350
+msgid "A directory containing uncommitted changes was found in the working copy."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:1353
+msgid "A directory which differs from the corresponding directory on the merge source branch was found in the working copy."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:1358
+msgid "A directory which already occupies this path was found in the working copy."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:1362
+#, fuzzy
+msgid "An unversioned directory was found in the working copy."
+msgstr "Verzeichnis »%s« ist in einer Arbeitskopie gesperrt"
+
+#: ../libsvn_client/conflicts.c:1366
+#, fuzzy
+msgid "A deleted directory was found in the working copy."
+msgstr "Verzeichnis »%s« ist in einer Arbeitskopie gesperrt"
+
+#: ../libsvn_client/conflicts.c:1372
+#, fuzzy
+msgid "No such directory was found in the working copy."
+msgstr "Verzeichnis »%s« ist in einer Arbeitskopie gesperrt"
+
+#. ### display deleted revision
+#: ../libsvn_client/conflicts.c:1376
+msgid ""
+"No such directory was found in the merge target working copy.\n"
+"Perhaps the directory has been deleted or moved away in the repository's history?"
+msgstr ""
+
+#. ### show more details about copies or replacements?
+#: ../libsvn_client/conflicts.c:1386
+msgid "A directory scheduled to be added to the repository in the next commit was found in the working copy."
+msgstr ""
+
+#. The move no longer exists.
+#: ../libsvn_client/conflicts.c:1418
+msgid "The directory in the working copy had been moved away at the time this conflict was recorded."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:1433
+#, fuzzy, c-format
+msgid ""
+"The directory in the working copy was moved away to\n"
+"'%s'."
+msgstr "Der Pfad »%s« ist nicht in der Arbeitskopie »%s« "
+
+#. The move probably happened in branch history.
+#. * This case cannot happen until we detect incoming
+#. * moves, which we currently don't do.
+#. ### find deleted/moved revision?
+#: ../libsvn_client/conflicts.c:1450
+msgid "The directory had been moved away at the time this conflict was recorded."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:1466
+#, fuzzy, c-format
+msgid ""
+"The directory was moved away to\n"
+"'%s'."
+msgstr "Das Projektarchiv wurde permanent nach »%s« verschoben"
+
+#. The move no longer exists.
+#. The move probably happened in branch history.
+#. * This case cannot happen until we detect incoming
+#. * moves, which we currently don't do.
+#. ### find deleted/moved revision?
+#: ../libsvn_client/conflicts.c:1492 ../libsvn_client/conflicts.c:1524
+msgid "A directory had been moved here at the time this conflict was recorded."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:1507
+#, c-format
+msgid ""
+"A directory was moved here from\n"
+"'%s'."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:1540
+#, fuzzy, c-format
+msgid ""
+"A directory was moved here in the working copy from\n"
+"'%s'."
+msgstr "Verzeichnis »%s« ist in einer Arbeitskopie gesperrt"
+
+#: ../libsvn_client/conflicts.c:2759
+msgid "An item containing uncommitted changes was found in the working copy."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:2763
+msgid "An item which already occupies this path was found in the working copy."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:2767
+#, fuzzy
+msgid "A deleted item was found in the working copy."
+msgstr "Pfad »%s« ist nicht in der Arbeitskopie enthalten"
+
+#: ../libsvn_client/conflicts.c:2772
+#, fuzzy
+msgid "No such file or directory was found in the working copy."
+msgstr "Verzeichnis »%s« ist in einer Arbeitskopie gesperrt"
+
+#. ### display deleted revision
+#: ../libsvn_client/conflicts.c:2777
+msgid ""
+"No such file or directory was found in the merge target working copy.\n"
+"The item may have been deleted or moved away in the repository's history."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:2784
+#, fuzzy
+msgid "An unversioned item was found in the working copy."
+msgstr "Pfad »%s« ist nicht in der Arbeitskopie enthalten"
+
+#: ../libsvn_client/conflicts.c:2789
+msgid "An item scheduled to be added to the repository in the next commit was found in the working copy."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:2794
+msgid "The item in the working copy had been moved away at the time this conflict was recorded."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:2798
+msgid "An item had been moved here in the working copy at the time this conflict was recorded."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:2826
+#, c-format
+msgid ""
+"%s\n"
+"And then moved away to '^/%s' by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:2891
+msgid "No such file or directory was found in the merge target working copy.\n"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:2900
+#, c-format
+msgid "%sThe file was moved to '^/%s' in r%ld by %s."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:2906
+#, c-format
+msgid "%sThe directory was moved to '^/%s' in r%ld by %s."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:2913
+#, c-format
+msgid "%sThe item was moved to '^/%s' in r%ld by %s."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:2929
+#, c-format
+msgid "%sThe file '^/%s' was moved to '^/%s' in r%ld by %s."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:2937
+#, c-format
+msgid "%sThe directory '^/%s' was moved to '^/%s' in r%ld by %s."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:2945
+#, c-format
+msgid "%sThe item '^/%s' was moved to '^/%s' in r%ld by %s."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:2959
+#, c-format
+msgid ""
+"No such file or directory was found in the merge target working copy.\n"
+"'^/%s' was deleted in r%ld by %s."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:2983
+msgid "An update operation tried to edit a file."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:2985
+msgid "An update operation tried to add a file."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:2987
+msgid "An update operation tried to delete or move a file."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:2990
+msgid "An update operation tried to replace a file."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:2998
+msgid "A switch operation tried to edit a file."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3000
+msgid "A switch operation tried to add a file."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3002
+msgid "A switch operation tried to delete or move a file."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3005
+msgid "A switch operation tried to replace a file."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3013
+msgid "A merge operation tried to edit a file."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3015
+msgid "A merge operation tried to add a file."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3017
+msgid "A merge operation tried to delete or move a file."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3020
+msgid "A merge operation tried to replace a file."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3030
+#, fuzzy
+msgid "An update operation tried to change a directory."
+msgstr "Ungültige Operation auf dem aktuellen Arbeitsverzeichnis"
+
+#: ../libsvn_client/conflicts.c:3032
+#, fuzzy
+msgid "An update operation tried to add a directory."
+msgstr "Operation ist nicht auf einem Verzeichnis ausführbar"
+
+#: ../libsvn_client/conflicts.c:3034
+msgid "An update operation tried to delete or move a directory."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3037
+#, fuzzy
+msgid "An update operation tried to replace a directory."
+msgstr "Operation ist nicht auf einem Verzeichnis ausführbar"
+
+#: ../libsvn_client/conflicts.c:3045
+#, fuzzy
+msgid "A switch operation tried to edit a directory."
+msgstr "Operation ist nicht auf einem Verzeichnis ausführbar"
+
+#: ../libsvn_client/conflicts.c:3047
+#, fuzzy
+msgid "A switch operation tried to add a directory."
+msgstr "Operation ist nicht auf einem Verzeichnis ausführbar"
+
+#: ../libsvn_client/conflicts.c:3049
+msgid "A switch operation tried to delete or move a directory."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3052
+#, fuzzy
+msgid "A switch operation tried to replace a directory."
+msgstr "Operation ist nicht auf einem Verzeichnis ausführbar"
+
+#: ../libsvn_client/conflicts.c:3060
+#, fuzzy
+msgid "A merge operation tried to edit a directory."
+msgstr "Operation ist nicht auf einem Verzeichnis ausführbar"
+
+#: ../libsvn_client/conflicts.c:3062
+#, fuzzy
+msgid "A merge operation tried to add a directory."
+msgstr "Operation ist nicht auf einem Verzeichnis ausführbar"
+
+#: ../libsvn_client/conflicts.c:3064
+msgid "A merge operation tried to delete or move a directory."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3067
+#, fuzzy
+msgid "A merge operation tried to replace a directory."
+msgstr "Operation ist nicht auf einem Verzeichnis ausführbar"
+
+#: ../libsvn_client/conflicts.c:3078
+msgid "An update operation tried to edit an item."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3080
+msgid "An update operation tried to add an item."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3082
+msgid "An update operation tried to delete or move an item."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3085
+msgid "An update operation tried to replace an item."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3093
+msgid "A switch operation tried to edit an item."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3095
+msgid "A switch operation tried to add an item."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3097
+msgid "A switch operation tried to delete or move an item."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3100
+msgid "A switch operation tried to replace an item."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3108
+msgid "A merge operation tried to edit an item."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3110
+msgid "A merge operation tried to add an item."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3112
+msgid "A merge operation tried to delete or move an item."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3115
+msgid "A merge operation tried to replace an item."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3131 ../svn/cl-conflicts.c:212
+msgid "upon update"
+msgstr "bei Aktualisierung"
+
+#: ../libsvn_client/conflicts.c:3132 ../svn/cl-conflicts.c:213
+msgid "upon switch"
+msgstr "bei Umstellung"
+
+#: ../libsvn_client/conflicts.c:3133 ../svn/cl-conflicts.c:214
+msgid "upon merge"
+msgstr "bei Zusammenführung"
+
+#: ../libsvn_client/conflicts.c:3134 ../svn/cl-conflicts.c:215
+msgid "upon none"
+msgstr "ohne Operation"
+
+#: ../libsvn_client/conflicts.c:3153 ../svn/cl-conflicts.c:127
+#: ../svn/cl-conflicts.c:234
+msgid "local edit"
+msgstr "lokale geändert"
+
+#: ../libsvn_client/conflicts.c:3156 ../svn/cl-conflicts.c:140
+#: ../svn/cl-conflicts.c:237
+msgid "local add"
+msgstr "lokal hinzugefügt"
+
+#: ../libsvn_client/conflicts.c:3159 ../svn/cl-conflicts.c:131
+#: ../svn/cl-conflicts.c:240
+msgid "local delete"
+msgstr "lokal gelöscht"
+
+#: ../libsvn_client/conflicts.c:3162 ../svn/cl-conflicts.c:129
+#: ../svn/cl-conflicts.c:243
+msgid "local obstruction"
+msgstr "lokal blockiert"
+
+#: ../libsvn_client/conflicts.c:3166 ../svn/cl-conflicts.c:247
+#, c-format
+msgid "local %s"
+msgstr "lokal %s"
+
+#: ../libsvn_client/conflicts.c:3175 ../svn/cl-conflicts.c:192
+#: ../svn/cl-conflicts.c:256
+msgid "incoming edit"
+msgstr "eingehende Änderung"
+
+#: ../libsvn_client/conflicts.c:3178 ../svn/cl-conflicts.c:194
+#: ../svn/cl-conflicts.c:259
+msgid "incoming add"
+msgstr "eingehendes Hinzufügen"
+
+#: ../libsvn_client/conflicts.c:3181 ../svn/cl-conflicts.c:262
+msgid "incoming delete"
+msgstr "eingehendes Löschen"
+
+#: ../libsvn_client/conflicts.c:3185 ../svn/cl-conflicts.c:266
+#, c-format
+msgid "incoming %s"
+msgstr "eingehendes %s"
+
+#: ../libsvn_client/conflicts.c:3193 ../svn/cl-conflicts.c:273
+#: ../svn/cl-conflicts.c:326
+#, c-format
+msgid "%s, %s %s"
+msgstr "%s, %s %s"
+
+#: ../libsvn_client/conflicts.c:3252
+#, fuzzy, c-format
+msgid "incoming %s %s"
+msgstr "eingehendes %s"
+
+#: ../libsvn_client/conflicts.c:3355
+#, c-format
+msgid "Directory updated from r%ld to r%ld was replaced with a file by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3366 ../libsvn_client/conflicts.c:3446
+#: ../libsvn_client/conflicts.c:3700 ../libsvn_client/conflicts.c:3787
+#: ../libsvn_client/conflicts.c:4087 ../libsvn_client/conflicts.c:4155
+#, fuzzy, c-format
+msgid ""
+"%s\n"
+"The replaced directory was moved to '^/%s'."
+msgstr "Löschen schlug fehl: Verzeichnis hat keinen Eintrag »%s«"
+
+#: ../libsvn_client/conflicts.c:3381
+#, c-format
+msgid "File updated from r%ld to r%ld was replaced with a file from another line of history by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3393 ../libsvn_client/conflicts.c:3472
+#: ../libsvn_client/conflicts.c:3729 ../libsvn_client/conflicts.c:3815
+#: ../libsvn_client/conflicts.c:4116 ../libsvn_client/conflicts.c:4183
+#, c-format
+msgid ""
+"%s\n"
+"The replaced file was moved to '^/%s'."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3407
+#, c-format
+msgid "Item updated from r%ld to r%ld was replaced with a file by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3417 ../libsvn_client/conflicts.c:3496
+#: ../libsvn_client/conflicts.c:3756 ../libsvn_client/conflicts.c:3842
+#: ../libsvn_client/conflicts.c:4210
+#, c-format
+msgid ""
+"%s\n"
+"The replaced item was moved to '^/%s'."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3434
+#, c-format
+msgid "Directory updated from r%ld to r%ld was replaced with a directory from another line of history by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3461
+#, c-format
+msgid "File updated from r%ld to r%ld was replaced with a directory by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3486
+#, c-format
+msgid "Item updated from r%ld to r%ld was replaced by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3519
+#, c-format
+msgid "Directory updated from r%ld to r%ld was moved to '^/%s' by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3531
+#, c-format
+msgid "Directory updated from r%ld to r%ld was deleted by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3547
+#, c-format
+msgid "File updated from r%ld to r%ld was moved to '^/%s' by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3558
+#, c-format
+msgid "File updated from r%ld to r%ld was deleted by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3572
+#, c-format
+msgid "Item updated from r%ld to r%ld was moved to '^/%s' by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3583
+#, c-format
+msgid "Item updated from r%ld to r%ld was deleted by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3603
+#, c-format
+msgid "Directory updated backwards from r%ld to r%ld was a file before the replacement made by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3610
+#, c-format
+msgid "File updated backwards from r%ld to r%ld was a file from another line of history before the replacement made by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3617
+#, c-format
+msgid "Item updated backwards from r%ld to r%ld was replaced with a file by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3626
+#, c-format
+msgid "Directory updated backwards from r%ld to r%ld was a directory from another line of history before the replacement made by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3634
+#, c-format
+msgid "File updated backwards from r%ld to r%ld was a directory before the replacement made by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3640
+#, c-format
+msgid "Item updated backwards from r%ld to r%ld was replaced with a directory by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3649
+#, c-format
+msgid "Directory updated backwards from r%ld to r%ld did not exist before it was added by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3656
+#, c-format
+msgid "File updated backwards from r%ld to r%ld did not exist before it was added by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3662
+#, c-format
+msgid "Item updated backwards from r%ld to r%ld did not exist before it was added by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3687
+#, c-format
+msgid ""
+"Directory switched from\n"
+"'^/%s@%ld'\n"
+"to\n"
+"'^/%s@%ld'\n"
+"was replaced with a file by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3715
+#, c-format
+msgid ""
+"File switched from\n"
+"'^/%s@%ld'\n"
+"to\n"
+"'^/%s@%ld'\n"
+"was replaced with a file from another line of history by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3743 ../libsvn_client/conflicts.c:3986
+#, c-format
+msgid ""
+"Item switched from\n"
+"'^/%s@%ld'\n"
+"to\n"
+"'^/%s@%ld'\n"
+"was replaced with a file by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3773
+#, c-format
+msgid ""
+"Directory switched from\n"
+"'^/%s@%ld'\n"
+"to\n"
+"'^/%s@%ld'\n"
+"was replaced with a directory from another line of history by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3802
+#, c-format
+msgid ""
+"File switched from\n"
+"'^/%s@%ld'\n"
+"to\n"
+"'^/%s@%ld'\n"
+"was replaced with a directory by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3829 ../libsvn_client/conflicts.c:4016
+#, c-format
+msgid ""
+"Item switched from\n"
+"'^/%s@%ld'\n"
+"to\n"
+"'^/%s@%ld'\n"
+"was replaced with a directory by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3865
+#, c-format
+msgid ""
+"Directory switched from\n"
+"'^/%s@%ld'\n"
+"to\n"
+"'^/%s@%ld'\n"
+"was moved to '^/%s' by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3879
+#, c-format
+msgid ""
+"Directory switched from\n"
+"'^/%s@%ld'\n"
+"to\n"
+"'^/%s@%ld'\n"
+"was deleted by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3897
+#, c-format
+msgid ""
+"File switched from\n"
+"'^/%s@%ld'\n"
+"to\n"
+"'^/%s@%ld'\n"
+"was moved to '^/%s' by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3911
+#, c-format
+msgid ""
+"File switched from\n"
+"'^/%s@%ld'\n"
+"to\n"
+"'^/%s@%ld'\n"
+"was deleted by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3928
+#, c-format
+msgid ""
+"Item switched from\n"
+"'^/%s@%ld'\n"
+"to\n"
+"'^/%s@%ld'\n"
+"was moved to '^/%s' by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3942
+#, c-format
+msgid ""
+"Item switched from\n"
+"'^/%s@%ld'\n"
+"to\n"
+"'^/%s@%ld'\n"
+"was deleted by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3967 ../libsvn_client/conflicts.c:4007
+#, c-format
+msgid ""
+"Directory switched from\n"
+"'^/%s@%ld'\n"
+"to\n"
+"'^/%s@%ld'\n"
+"was a file before the replacement made by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3977
+#, c-format
+msgid ""
+"File switched from\n"
+"'^/%s@%ld'\n"
+"to\n"
+"'^/%s@%ld'\n"
+"was a file from another line of history before the replacement made by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:3997
+#, c-format
+msgid ""
+"Directory switched from\n"
+"'^/%s@%ld'\n"
+"to\n"
+"'^/%s@%ld'\n"
+"was a directory from another line of history before the replacement made by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:4027
+#, c-format
+msgid ""
+"Directory switched from\n"
+"'^/%s@%ld'\n"
+"to\n"
+"'^/%s@%ld'\n"
+"did not exist before it was added by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:4037
+#, c-format
+msgid ""
+"File switched from\n"
+"'^/%s@%ld'\n"
+"to\n"
+"'^/%s@%ld'\n"
+"did not exist before it was added by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:4046
+#, c-format
+msgid ""
+"Item switched from\n"
+"'^/%s@%ld'\n"
+"to\n"
+"'^/%s@%ld'\n"
+"did not exist before it was added by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:4074
+#, c-format
+msgid ""
+"Directory merged from\n"
+"'^/%s@%ld'\n"
+"to\n"
+"'^/%s@%ld'\n"
+"was replaced with a file by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:4102
+#, c-format
+msgid ""
+"File merged from\n"
+"'^/%s@%ld'\n"
+"to\n"
+"'^/%s@%ld'\n"
+"was replaced with a file from another line of history by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:4128
+#, c-format
+msgid ""
+"Item merged from\n"
+"'^/%s@%ld'\n"
+"to\n"
+"'^/%s@%ld'\n"
+"was replaced with a file by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:4141
+#, c-format
+msgid ""
+"Directory merged from\n"
+"'^/%s@%ld'\n"
+"to\n"
+"'^/%s@%ld'\n"
+"was replaced with a directory from another line of history by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:4170
+#, c-format
+msgid ""
+"File merged from\n"
+"'^/%s@%ld'\n"
+"to\n"
+"'^/%s@%ld'\n"
+"was replaced with a directory by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:4197
+#, c-format
+msgid ""
+"Item merged from\n"
+"'^/%s@%ld'\n"
+"to\n"
+"'^/%s@%ld'\n"
+"was replaced with a directory by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:4233
+#, c-format
+msgid ""
+"Directory merged from\n"
+"'^/%s@%ld'\n"
+"to\n"
+"'^/%s@%ld'\n"
+"was moved to '^/%s' by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:4247
+#, c-format
+msgid ""
+"Directory merged from\n"
+"'^/%s@%ld'\n"
+"to\n"
+"'^/%s@%ld'\n"
+"was deleted by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:4265
+#, c-format
+msgid ""
+"File merged from\n"
+"'^/%s@%ld'\n"
+"to\n"
+"'^/%s@%ld'\n"
+"was moved to '^/%s' by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:4279
+#, c-format
+msgid ""
+"File merged from\n"
+"'^/%s@%ld'\n"
+"to\n"
+"'^/%s@%ld'\n"
+"was deleted by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:4296
+#, c-format
+msgid ""
+"Item merged from\n"
+"'^/%s@%ld'\n"
+"to\n"
+"'^/%s@%ld'\n"
+"was moved to '^/%s' by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:4310
+#, c-format
+msgid ""
+"Item merged from\n"
+"'^/%s@%ld'\n"
+"to\n"
+"'^/%s@%ld'\n"
+"was deleted by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:4335 ../libsvn_client/conflicts.c:4374
+#, c-format
+msgid ""
+"Directory reverse-merged from\n"
+"'^/%s@%ld'\n"
+"to ^/%s@%ld was a file before the replacement made by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:4344
+#, c-format
+msgid ""
+"File reverse-merged from\n"
+"'^/%s@%ld'\n"
+"to\n"
+"'^/%s@%ld'\n"
+"was a file from another line of history before the replacement made by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:4353
+#, c-format
+msgid ""
+"Item reverse-merged from\n"
+"'^/%s@%ld'\n"
+"to\n"
+"'^/%s@%ld'\n"
+"was replaced with a file by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:4364
+#, c-format
+msgid ""
+"Directory reverse-merged from\n"
+"'^/%s@%ld'\n"
+"to ^/%s@%ld was a directory from another line of history before the replacement made by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:4382
+#, c-format
+msgid ""
+"Item reverse-merged from\n"
+"'^/%s@%ld'\n"
+"to\n"
+"'^/%s@%ld'\n"
+"was replaced with a directory by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:4393
+#, c-format
+msgid ""
+"Directory reverse-merged from\n"
+"'^/%s@%ld'\n"
+"to ^/%s@%ld did not exist before it was added by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:4402
+#, c-format
+msgid ""
+"File reverse-merged from\n"
+"'^/%s@%ld'\n"
+"to\n"
+"'^/%s@%ld'\n"
+"did not exist before it was added by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:4411
+#, c-format
+msgid ""
+"Item reverse-merged from\n"
+"'^/%s@%ld'\n"
+"to\n"
+"'^/%s@%ld'\n"
+"did not exist before it was added by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:5263
+#, c-format
+msgid "A new directory appeared during update to r%ld; it was added by %s in r%ld and later deleted by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:5270
+#, c-format
+msgid "A new directory appeared during update to r%ld; it was added by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:5275
+#, c-format
+msgid "A new directory appeared during update to r%ld; it was deleted by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:5285
+#, c-format
+msgid "A new file appeared during update to r%ld; it was added by %s in r%ld and later deleted by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:5292
+#, c-format
+msgid "A new file appeared during update to r%ld; it was added by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:5297
+#, c-format
+msgid "A new file appeared during update to r%ld; it was deleted by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:5306
+#, c-format
+msgid "A new item appeared during update to r%ld; it was added by %s in r%ld and later deleted by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:5313
+#, c-format
+msgid "A new item appeared during update to r%ld; it was added by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:5318
+#, c-format
+msgid "A new item appeared during update to r%ld; it was deleted by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:5337
+#, c-format
+msgid ""
+"A new directory appeared during switch to\n"
+"'^/%s@%ld'.\n"
+"It was added by %s in r%ld and later deleted by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:5345
+#, c-format
+msgid ""
+"A new directory appeared during switch to\n"
+"'^/%s@%ld'.\n"
+"It was added by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:5351
+#, c-format
+msgid ""
+"A new directory appeared during switch to\n"
+"'^/%s@%ld'.\n"
+"It was deleted by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:5362
+#, c-format
+msgid ""
+"A new file appeared during switch to\n"
+"'^/%s@%ld'.\n"
+"It was added by %s in r%ld and later deleted by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:5370
+#, c-format
+msgid ""
+"A new file appeared during switch to\n"
+"'^/%s@%ld'.\n"
+"It was added by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:5377
+#, c-format
+msgid ""
+"A new file appeared during switch to\n"
+"'^/%s@%ld'.\n"
+"It was deleted by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:5388
+#, c-format
+msgid ""
+"A new item appeared during switch to\n"
+"'^/%s@%ld'.\n"
+"It was added by %s in r%ld and later deleted by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:5396
+#, c-format
+msgid ""
+"A new item appeared during switch to\n"
+"'^/%s@%ld'.\n"
+"It was added by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:5403
+#, c-format
+msgid ""
+"A new item appeared during switch to\n"
+"'^/%s@%ld'.\n"
+"It was deleted by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:5424
+#, c-format
+msgid ""
+"A new directory appeared during merge of\n"
+"'^/%s:%ld'.\n"
+"It was added by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:5430
+#, c-format
+msgid ""
+"A new directory appeared during merge of\n"
+"'^/%s:%ld-%ld'.\n"
+"It was added by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:5440
+#, c-format
+msgid ""
+"A new file appeared during merge of\n"
+"'^/%s:%ld'.\n"
+"It was added by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:5446
+#, c-format
+msgid ""
+"A new file appeared during merge of\n"
+"'^/%s:%ld-%ld'.\n"
+"It was added by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:5455
+#, c-format
+msgid ""
+"A new item appeared during merge of\n"
+"'^/%s:%ld'.\n"
+"It was added by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:5461
+#, c-format
+msgid ""
+"A new item appeared during merge of\n"
+"'^/%s:%ld-%ld'.\n"
+"It was added by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:5481
+#, c-format
+msgid ""
+"A new directory appeared during reverse-merge of\n"
+"'^/%s:%ld'.\n"
+"It was deleted by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:5488
+#, c-format
+msgid ""
+"A new directory appeared during reverse-merge of\n"
+"'^/%s:%ld-%ld'.\n"
+"It was deleted by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:5500
+#, c-format
+msgid ""
+"A new file appeared during reverse-merge of\n"
+"'^/%s:%ld'.\n"
+"It was deleted by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:5507
+#, c-format
+msgid ""
+"A new file appeared during reverse-merge of\n"
+"'^/%s:%ld-%ld'.\n"
+"It was deleted by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:5517
+#, c-format
+msgid ""
+"A new item appeared during reverse-merge of\n"
+"'^/%s:%ld'.\n"
+"It was deleted by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:5524
+#, c-format
+msgid ""
+"A new item appeared during reverse-merge of\n"
+"'^/%s:%ld-%ld'.\n"
+"It was deleted by %s in r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:5835
+#, c-format
+msgid "Changes destined for a directory arrived via the following revisions during update from r%ld to r%ld."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:5841
+#, c-format
+msgid "Changes destined for a file arrived via the following revisions during update from r%ld to r%ld"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:5846
+#, c-format
+msgid "Changes from the following revisions arrived during update from r%ld to r%ld"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:5854
+#, c-format
+msgid "Changes destined for a directory arrived via the following revisions during backwards update from r%ld to r%ld"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:5861
+#, c-format
+msgid "Changes destined for a file arrived via the following revisions during backwards update from r%ld to r%ld"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:5867
+#, c-format
+msgid "Changes from the following revisions arrived during backwards update from r%ld to r%ld"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:5881 ../libsvn_client/conflicts.c:5888
+#, c-format
+msgid ""
+"Changes destined for a directory arrived via the following revisions during switch to\n"
+"'^/%s@r%ld'"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:5894
+#, c-format
+msgid ""
+"Changes from the following revisions arrived during switch to\n"
+"'^/%s@r%ld'"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:5937 ../libsvn_client/conflicts.c:5951
+#: ../libsvn_client/conflicts.c:5957
+#, fuzzy, c-format
+msgid "%s r%ld by %s%s"
+msgstr "%12s r%-8ld %s\n"
+
+#: ../libsvn_client/conflicts.c:5947
+#, c-format
+msgid ""
+"%s\n"
+" [%d revisions omitted for brevity],\n"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:6016
+#, c-format
+msgid ""
+"Changes destined for a directory arrived during merge of\n"
+"'^/%s:%ld'."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:6023
+#, c-format
+msgid ""
+"Changes destined for a file arrived during merge of\n"
+"'^/%s:%ld'."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:6029
+#, c-format
+msgid ""
+"Changes arrived during merge of\n"
+"'^/%s:%ld'."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:6041
+#, c-format
+msgid ""
+"Changes destined for a directory arrived via the following revisions during merge of\n"
+"'^/%s:%ld-%ld'"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:6048
+#, c-format
+msgid ""
+"Changes destined for a file arrived via the following revisions during merge of\n"
+"'^/%s:%ld-%ld'"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:6054
+#, c-format
+msgid ""
+"Changes from the following revisions arrived during merge of\n"
+"'^/%s:%ld-%ld'"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:6066
+#, c-format
+msgid ""
+"Changes destined for a directory arrived during reverse-merge of\n"
+"'^/%s:%ld'."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:6073
+#, c-format
+msgid ""
+"Changes destined for a file arrived during reverse-merge of\n"
+"'^/%s:%ld'."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:6079
+#, c-format
+msgid ""
+"Changes arrived during reverse-merge of\n"
+"'^/%s:%ld'."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:6091
+#, c-format
+msgid ""
+"Changes destined for a directory arrived via the following revisions during reverse-merge of\n"
+"'^/%s:%ld-%ld'"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:6099
+#, c-format
+msgid ""
+"Changes destined for a file arrived via the following revisions during reverse-merge of\n"
+"'^/%s:%ld-%ld'"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:6107
+#, c-format
+msgid ""
+"Changes from the following revisions arrived during reverse-merge of\n"
+"'^/%s:%ld-%ld'"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:6296
+#, fuzzy, c-format
+msgid "Tree conflict on '%s' can only be resolved to the current working copy state"
+msgstr "Baumkonflikt kann nur zum Zustand »working« aufgelöst werden; Konflikt in »%s« nicht aufgelöst"
+
+#: ../libsvn_client/conflicts.c:6480 ../libsvn_client/conflicts.c:6486
+#, fuzzy, c-format
+msgid "Cannot resolve tree conflict on '%s' (expected a base node but found none)"
+msgstr "Kann Baumkonflikt in »%s« nicht automatisch auflösen"
+
+#: ../libsvn_client/conflicts.c:6491 ../libsvn_client/conflicts.c:6517
+#: ../libsvn_client/conflicts.c:6544 ../libsvn_client/conflicts.c:6567
+#, fuzzy, c-format
+msgid "Unexpected option id '%d'"
+msgstr "Unerwartete Knotenart %d für »%s«"
+
+#: ../libsvn_client/conflicts.c:6500 ../libsvn_client/conflicts.c:6509
+#, c-format
+msgid "Cannot resolve tree conflict on '%s' (expected base node kind '%s', but found '%s')"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:6525 ../libsvn_client/conflicts.c:6535
+#, c-format
+msgid "Cannot resolve tree conflict on '%s' (expected base node from '^/%s@%ld', but found '^/%s@%ld')"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:6553 ../libsvn_client/conflicts.c:6561
+#, c-format
+msgid "Cannot resolve tree conflict on '%s' (expected an added item, but the item is not added)"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:6732 ../libsvn_client/conflicts.c:8547
+#, c-format
+msgid "If needed, a backup copy of '%s' can be found at '%s'"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:7595
+#, c-format
+msgid "Conflict resolution option '%d' requires details for tree conflict at '%s' to be fetched from the repository"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:7619
+#, c-format
+msgid "Could not determine when '%s' was added the repository"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:7634
+#, c-format
+msgid "Could not determine when '%s' was deleted from the repository"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:7923
+#, c-format
+msgid "Could not determine the revision in which '^/%s' was added to the repository.\n"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:8027
+#, c-format
+msgid "Conflict resolution option '%d' requires details for tree conflict at '%s' to be fetched from the repository."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:8044
+#, c-format
+msgid "Cannot resolve tree conflict on '%s' (expected a copied item, but the item is not a copy)"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:8055
+#, c-format
+msgid "Could not find the revision in which '%s' was deleted from the repository"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:8065
+#, c-format
+msgid "Cannot resolve tree conflict on '%s' (expected an item copied from a revision smaller than r%ld, but the item was copied from r%ld)"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:8078
+#, c-format
+msgid "Cannot resolve tree conflict on '%s' (expected an item copied from a revision larger than r%ld, but the item was copied from r%ld)"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:8097
+#, c-format
+msgid "Cannot resolve tree conflict on '%s' (expected an item copied from '^/%s' or from '^/%s' but the item was copied from '^/%s@%ld')"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:8119
+#, c-format
+msgid "Cannot resolve tree conflict on '%s' (expected an item copied from '^/%s', but the item was copied from '^/%s@%ld')"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:8144
+#, c-format
+msgid "Cannot resolve tree conflict on '%s' (expected node kind '%s' but found '%s')"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:8311 ../libsvn_client/conflicts.c:8594
+#, c-format
+msgid "The specified conflict resolution option requires details for tree conflict at '%s' to be fetched from the repository first."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:8318
+#, fuzzy, c-format
+msgid "Invalid operation code '%d' recorded for conflict at '%s'"
+msgstr "Ungültiges Feld »operation« in Baumkonfliktbeschreibung"
+
+#: ../libsvn_client/conflicts.c:8655
+#, c-format
+msgid "Cannot resolve tree conflict on '%s' (expected a copied item at '%s', but the item is not a copy)"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:8668
+#, fuzzy, c-format
+msgid "Cannot resolve tree conflict on '%s' (could not determine origin of '%s')"
+msgstr "Kann Baumkonflikt in »%s« nicht automatisch auflösen"
+
+#: ../libsvn_client/conflicts.c:8688
+#, c-format
+msgid "Cannot resolve tree conflict on '%s' (could not find common ancestor of '^/%s@%ld' and '^/%s@%ld')"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:9044 ../libsvn_client/conflicts.c:9127
+#: ../libsvn_client/conflicts.c:10293
+#, fuzzy
+msgid "Postpone"
+msgstr "später auflösen"
+
+#: ../libsvn_client/conflicts.c:9045 ../libsvn_client/conflicts.c:9128
+#: ../libsvn_client/conflicts.c:10294
+msgid "skip this conflict and leave it unresolved"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:9054 ../libsvn_client/conflicts.c:9075
+#: ../libsvn_client/conflicts.c:9133
+msgid "Accept base"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:9055
+msgid "discard local and incoming changes for this binary file"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:9060 ../libsvn_client/conflicts.c:9081
+#: ../libsvn_client/conflicts.c:9139
+#, fuzzy
+msgid "Accept incoming"
+msgstr "eingehendes %s"
+
+#: ../libsvn_client/conflicts.c:9061
+#, fuzzy
+msgid "accept incoming version of binary file"
+msgstr "Akzeptiert fremde Version der Datei [theirs-full]"
+
+#: ../libsvn_client/conflicts.c:9066 ../libsvn_client/conflicts.c:9105
+#: ../libsvn_client/conflicts.c:9145 ../libsvn_client/conflicts.c:9202
+#, fuzzy
+msgid "Mark as resolved"
+msgstr "als aufgelöst markieren"
+
+#: ../libsvn_client/conflicts.c:9067
+#, fuzzy
+msgid "accept binary file as it appears in the working copy"
+msgstr "Pfad »%s« ist nicht in der Arbeitskopie enthalten"
+
+#: ../libsvn_client/conflicts.c:9076
+msgid "discard local and incoming changes for this file"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:9082
+#, fuzzy
+msgid "accept incoming version of entire file"
+msgstr "Akzeptiert fremde Version der Datei [theirs-full]"
+
+#: ../libsvn_client/conflicts.c:9087
+#, fuzzy
+msgid "Reject incoming"
+msgstr "eingehendes %s"
+
+#: ../libsvn_client/conflicts.c:9088
+#, fuzzy
+msgid "reject all incoming changes for this file"
+msgstr "Bevorzugt empfangene Änderungen "
+
+#: ../libsvn_client/conflicts.c:9093 ../libsvn_client/conflicts.c:9151
+msgid "Accept incoming for conflicts"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:9094
+msgid "accept changes only where they conflict"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:9099 ../libsvn_client/conflicts.c:9157
+#, fuzzy
+msgid "Reject conflicts"
+msgstr "Baumkonflikt"
+
+#: ../libsvn_client/conflicts.c:9100 ../libsvn_client/conflicts.c:9158
+msgid "reject changes which conflict and accept the rest"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:9106
+#, fuzzy
+msgid "accept the file as it appears in the working copy"
+msgstr "Pfad »%s« ist nicht in der Arbeitskopie enthalten"
+
+#: ../libsvn_client/conflicts.c:9134
+msgid "discard local and incoming changes for this property"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:9140
+#, fuzzy
+msgid "accept incoming version of entire property value"
+msgstr "Akzeptiert fremde Version für ganze Eigenschaft (ebenso) [theirs-full]"
+
+#: ../libsvn_client/conflicts.c:9146
+#, fuzzy
+msgid "accept working copy version of entire property value"
+msgstr "Akzeptiert die Arbeitskopieversion der Datei [working]"
+
+#: ../libsvn_client/conflicts.c:9152
+msgid "accept incoming changes only where they conflict"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:9163
+#, fuzzy
+msgid "Accept merged"
+msgstr "Zusammenführungsinformationen sind leer\n"
+
+#: ../libsvn_client/conflicts.c:9164
+#, fuzzy
+msgid "accept merged version of property value"
+msgstr "Akzeptiert die bearbeitete Version der Eigenschaft"
+
+#: ../libsvn_client/conflicts.c:9203
+msgid "accept current working copy state"
+msgstr "Akzeptiert aktuellen Zustand in der Arbeitskopie"
+
+#: ../libsvn_client/conflicts.c:9230
+#, fuzzy
+msgid "Update move destination"
+msgstr "Wendet die Aktualisierung auf das verschobene Ziel an (empfohlen)"
+
+#: ../libsvn_client/conflicts.c:9231
+#, fuzzy
+msgid "apply incoming changes to move destination"
+msgstr "Wendet empfangene Aktualisierung auf das verschobene Ziel an [mine-conflict]"
+
+#: ../libsvn_client/conflicts.c:9265
+msgid "Update any moved-away children"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:9266
+#, fuzzy
+msgid "prepare for updating moved-away children, if any"
+msgstr "Bereitet die Aktualisierung von ggf. verschobenen Kindelementen vor (empfohlen)"
+
+#: ../libsvn_client/conflicts.c:9311
+#, c-format
+msgid "ignore and do not add '^/%s@%ld' here"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:9319
+#, c-format
+msgid "replace '^/%s@%ld' with the locally added file"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:9324
+#, c-format
+msgid "replace '^/%s@%ld' with the locally added directory"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:9330
+#, c-format
+msgid "replace '^/%s@%ld' with the locally added item"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:9335
+#, fuzzy, c-format
+msgid "unexpected operation code '%d'"
+msgstr "Unerwartete Knotenart %d für »%s«"
+
+#: ../libsvn_client/conflicts.c:9339
+#, fuzzy
+msgid "Ignore incoming addition"
+msgstr "eingehendes Hinzufügen"
+
+#: ../libsvn_client/conflicts.c:9385 ../libsvn_client/conflicts.c:9510
+#, fuzzy, c-format
+msgid "merge '^/%s@%ld' into '%s'"
+msgstr "-- Zusammenführen von r%ld in »%s«:\n"
+
+#: ../libsvn_client/conflicts.c:9393 ../libsvn_client/conflicts.c:9518
+#, fuzzy, c-format
+msgid "merge local '%s' and '^/%s@%ld'"
+msgstr "Fehler beim Vergleichen von »%s« und »%s«"
+
+#: ../libsvn_client/conflicts.c:9403
+#, fuzzy
+msgid "Merge the files"
+msgstr "Tiefe: »files«\n"
+
+#: ../libsvn_client/conflicts.c:9452
+#, c-format
+msgid "delete '%s', copy '^/%s@%ld' here, and merge the files"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:9462 ../libsvn_client/conflicts.c:9640
+msgid "Replace and merge"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:9527
+#, fuzzy
+msgid "Merge the directories"
+msgstr "Zwischenverzeichnisse erzeugen"
+
+#: ../libsvn_client/conflicts.c:9574
+#, c-format
+msgid "delete '%s' and copy '^/%s@%ld' here"
+msgstr ""
+
+# FIXME: inkonsistent zu obigen Meldungen: open_directory statt opening a directory
+# (Wird Bezug zu Elementen in Dump hergestellt oder nicht?)
+#: ../libsvn_client/conflicts.c:9583
+#, fuzzy
+msgid "Delete my directory and replace it with incoming directory"
+msgstr "Fand Element »close-directory« ohne vorhergehendes Öffnen eines Verzeichnisses"
+
+#: ../libsvn_client/conflicts.c:9630
+#, c-format
+msgid "delete '%s', copy '^/%s@%ld' here, and merge the directories"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:9710
+#, c-format
+msgid "ignore the deletion of '^/%s@%ld'"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:9715
+#, fuzzy
+msgid "Ignore incoming deletion"
+msgstr "eingehendes Löschen"
+
+#: ../libsvn_client/conflicts.c:9768
+#, fuzzy, c-format
+msgid "accept the deletion of '%s'"
+msgstr "Konnte mmap »%s« nicht löschen"
+
+#: ../libsvn_client/conflicts.c:9775
+#, fuzzy
+msgid "Accept incoming deletion"
+msgstr "eingehendes Löschen"
+
+#: ../libsvn_client/conflicts.c:9814
+#, fuzzy, c-format
+msgid "move '%s' to '%s' and merge"
+msgstr "Kann »%s« nicht nach »%s« verschieben"
+
+#: ../libsvn_client/conflicts.c:9824
+#, fuzzy, c-format
+msgid "move and merge local changes from '%s' into '%s'"
+msgstr "Kann keinen Zeichenkonverter von »%s« nach »%s« erzeugen"
+
+#: ../libsvn_client/conflicts.c:9885 ../libsvn_client/conflicts.c:9945
+#, fuzzy
+msgid "Move and merge"
+msgstr "bei Zusammenführung"
+
+#: ../libsvn_client/conflicts.c:10029
+#, fuzzy, c-format
+msgid "apply changes to move destination '%s'"
+msgstr "Wendet die Aktualisierung auf das verschobene Ziel an (empfohlen)"
+
+#: ../libsvn_client/conflicts.c:10038
+#, fuzzy
+msgid "Apply to move destination"
+msgstr "Wendet die Aktualisierung auf das verschobene Ziel an (empfohlen)"
+
+#: ../libsvn_client/conflicts.c:10071 ../libsvn_client/conflicts.c:10199
+#, c-format
+msgid "Getting a list of possible move targets requires details for tree conflict at '%s' to be fetched from the repository first"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:10124 ../libsvn_client/conflicts.c:10247
+#, c-format
+msgid "Setting a move target requires details for tree conflict at '%s' to be fetched from the repository first"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:10133 ../libsvn_client/conflicts.c:10260
+#, c-format
+msgid "Index '%d' is out of bounds of the possible move target list for '%s'"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:10170
+#, fuzzy, c-format
+msgid "Repository path '%s' not found in list of possible move targets for '%s'"
+msgstr "Projektverzeichnis »%s« nicht in der Datenbank gefunden"
+
+#: ../libsvn_client/conflicts.c:10477 ../libsvn_client/conflicts.c:10526
+#: ../libsvn_client/conflicts.c:10579
+#, c-format
+msgid "Inapplicable conflict resolution option given for conflicted path '%s'"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:10799
+#, fuzzy, c-format
+msgid "Property '%s' is not in conflict."
+msgstr "»%s« ist nicht von einem Konflikt betroffen"
+
+#: ../libsvn_client/conflicts.c:11189 ../libsvn_wc/conflicts.c:3327
+#, c-format
+msgid "Unable to resolve pending conflict on '%s'"
+msgstr "Kann ausstehenden Konflikt in »%s« nicht auflösen"
+
#: ../libsvn_client/copy.c:295
#, c-format
msgid "%s property defined at '%s' is using an unsupported syntax"
msgstr "Eigenschaft %s definiert auf »%s« verwendet einen nicht unterstützen Syntax"
-#: ../libsvn_client/copy.c:443
+#: ../libsvn_client/copy.c:460
#, c-format
msgid "Cannot pin external '%s' defined in %s at '%s' because it is not checked out in the working copy at '%s'"
msgstr "Kann externen Verweis »%s« definiert durch Eigenschaft »%s« von »%s« nicht auf eine Revision festlegen, da er in der Arbeitskopie »%s« nicht ausgecheckt ist"
-#: ../libsvn_client/copy.c:468
+#: ../libsvn_client/copy.c:485
#, c-format
msgid "Cannot pin external '%s' defined in %s at '%s' because '%s' has switched subtrees (switches cannot be represented in %s)"
msgstr "Kann externen Verweis »%s« definiert durch Eigenschaft »%s« von »%s« nicht auf eine Revision festlegen, da »%s« umgestellte Unterbäume enthält (Umstellungen können in »%s« nicht abgebildet werden)"
-#: ../libsvn_client/copy.c:487
+#: ../libsvn_client/copy.c:504
#, c-format
msgid "Cannot pin external '%s' defined in %s at '%s' because '%s' has local modifications (local modifications cannot be represented in %s)"
msgstr "Kann externen Verweis »%s« definiert durch Eigenschaft »%s« von »%s« nicht auf eine Revision festlegen, da »%s« lokale Änderungen enthält (lokale Änderungen können in »%s« nicht abgebildet werden)"
-#: ../libsvn_client/copy.c:505
+#: ../libsvn_client/copy.c:522
#, c-format
msgid "Cannot pin external '%s' defined in %s at '%s' because '%s' is a mixed-revision working copy (mixed-revisions cannot be represented in %s)"
msgstr "Kann externen Verweis »%s« definiert durch Eigenschaft »%s« von »%s« nicht auf eine Revision festlegen, da »%s« eine Arbeitskopie mit verschiedenen Revisionen ist (verschiedene Revisionen können in »%s« nicht abgebildet werden)"
-#: ../libsvn_client/copy.c:959
+#: ../libsvn_client/copy.c:985
#, c-format
msgid "Path '%s' exists, but is excluded"
msgstr "Pfad »%s« existiert, ist aber ausgeschlossen"
-#: ../libsvn_client/copy.c:965 ../libsvn_client/copy.c:1672
-#: ../libsvn_client/copy.c:2047 ../libsvn_client/copy.c:2703
-#: ../libsvn_client/import.c:881 ../libsvn_client/mtcc.c:456
-#: ../libsvn_client/mtcc.c:473 ../libsvn_ra_serf/util.c:1852
+#: ../libsvn_client/copy.c:991 ../libsvn_client/copy.c:1715
+#: ../libsvn_client/copy.c:2090 ../libsvn_client/copy.c:2732
+#: ../libsvn_client/import.c:911 ../libsvn_client/mtcc.c:456
+#: ../libsvn_client/mtcc.c:473 ../libsvn_ra_serf/util.c:1900
#, c-format
msgid "Path '%s' already exists"
msgstr "Pfad »%s« existiert bereits"
-#: ../libsvn_client/copy.c:1020
+#: ../libsvn_client/copy.c:1046
#, c-format
msgid "Path '%s' already exists as unversioned node"
msgstr "Pfad »%s« existiert als nicht versionierter Knoten"
-#: ../libsvn_client/copy.c:1042 ../libsvn_client/copy.c:1052
-#: ../libsvn_client/copy.c:2719
+#: ../libsvn_client/copy.c:1071
+#, fuzzy, c-format
+msgid "Directory '%s' is not under version control"
+msgstr "»%s« ist nicht unter Versionskontrolle"
+
+#: ../libsvn_client/copy.c:1073 ../libsvn_client/copy.c:1082
+#: ../libsvn_client/copy.c:1092 ../libsvn_client/copy.c:2748
#, c-format
msgid "Path '%s' is not a directory"
msgstr "Pfad »%s« ist kein Verzeichnis"
-#: ../libsvn_client/copy.c:1091 ../libsvn_client/merge.c:10227
-#: ../svnlook/svnlook.c:1435
+#: ../libsvn_client/copy.c:1131 ../libsvn_client/merge.c:10252
+#: ../svnlook/svnlook.c:1445
#, c-format
msgid "Path '%s' does not exist"
msgstr "Pfad »%s« existiert nicht"
-#: ../libsvn_client/copy.c:1275 ../libsvn_client/copy.c:1316
+#: ../libsvn_client/copy.c:1315 ../libsvn_client/copy.c:1356
#, c-format
msgid "Path '%s' already exists, but is not a directory"
msgstr "Pfad »%s« existiert bereits, ist aber kein Verzeichnis"
-#: ../libsvn_client/copy.c:1453
+#: ../libsvn_client/copy.c:1493
msgid "Source and destination URLs appear not to point to the same repository."
msgstr "Quellen- und Ziel-URL scheinen nicht auf das selbe Projektarchiv zu zeigen."
-#: ../libsvn_client/copy.c:1662 ../libsvn_client/prop_commands.c:167
+#: ../libsvn_client/copy.c:1705 ../libsvn_client/prop_commands.c:167
#, c-format
msgid "Path '%s' does not exist in revision %ld"
msgstr "Pfad »%s« existiert nicht in Revision %ld"
-#: ../libsvn_client/copy.c:2687 ../libsvn_client/mtcc.c:550
+#: ../libsvn_client/copy.c:2716 ../libsvn_client/mtcc.c:550
#, c-format
msgid "Path '%s' not found in revision %ld"
msgstr "Pfad »%s« wurde in Revision %ld nicht gefunden"
-#: ../libsvn_client/copy.c:2692
+#: ../libsvn_client/copy.c:2721
#, c-format
msgid "Path '%s' not found in head revision"
msgstr "Pfad »%s« wurde in der HEAD-Revision nicht gefunden"
-#: ../libsvn_client/copy.c:2827
+#: ../libsvn_client/copy.c:2856
msgid "Cannot mix repository and working copy sources"
msgstr "Quellen aus dem Projektarchiv und einer Arbeitskopie können nicht gemischt werden"
-#: ../libsvn_client/copy.c:2880
+#: ../libsvn_client/copy.c:2909
#, c-format
msgid "Cannot copy path '%s' into its own child '%s'"
msgstr "Kann Pfad »%s« nicht in sein eigenes Kind »%s« kopieren"
-#: ../libsvn_client/copy.c:2916
+#: ../libsvn_client/copy.c:2945
#, c-format
msgid "Cannot move the external at '%s'; please edit the svn:externals property on '%s'."
msgstr "Externer Verweis »%s« kann nicht verschoben werden; bitte bearbeiten Sie die Eigenschaft »svn:externals« von »%s«"
-#: ../libsvn_client/copy.c:2931
+#: ../libsvn_client/copy.c:2960
msgid "Moves between the working copy and the repository are not supported"
msgstr "Verschiebungen zwischen der Arbeitskopie und dem Projektarchiv sind nicht unterstützt"
-#: ../libsvn_client/copy.c:2946
+#: ../libsvn_client/copy.c:2975
#, c-format
msgid "Cannot move URL '%s' into itself"
msgstr "Kann URL »%s« nicht auf sich selbst verschieben"
-#: ../libsvn_client/copy.c:2947
+#: ../libsvn_client/copy.c:2976
#, c-format
msgid "Cannot move path '%s' into itself"
msgstr "Kann »%s« nicht auf sich selbst verschieben"
-#: ../libsvn_client/copy.c:3014
+#: ../libsvn_client/copy.c:3043
#, c-format
msgid "'%s' does not have a URL associated with it"
msgstr "»%s« hat keine zugehörige URL"
#: ../libsvn_client/copy_foreign.c:131 ../libsvn_client/copy_foreign.c:283
-#: ../libsvn_client/externals.c:985 ../libsvn_client/externals.c:1196
+#: ../libsvn_client/externals.c:1023 ../libsvn_client/externals.c:1234
#: ../libsvn_wc/update_editor.c:1119
#, c-format
msgid "Path '%s' is not in the working copy"
msgstr "Pfad »%s« ist nicht in der Arbeitskopie enthalten"
#: ../libsvn_client/copy_foreign.c:373 ../libsvn_client/export.c:814
-#: ../libsvn_client/repos_diff.c:1002 ../libsvn_fs_fs/dag.c:1074
-#: ../libsvn_fs_x/dag.c:1074 ../libsvn_ra_svn/client.c:1324
-#: ../libsvn_wc/diff_editor.c:1987 ../libsvn_wc/diff_editor.c:2073
-#: ../libsvn_wc/externals.c:707 ../libsvn_wc/update_editor.c:4196
+#: ../libsvn_client/repos_diff.c:1002 ../libsvn_fs_fs/dag.c:1107
+#: ../libsvn_fs_x/dag.c:904 ../libsvn_ra_serf/commit.c:2229
+#: ../libsvn_ra_svn/client.c:1506 ../libsvn_wc/diff_editor.c:2109
+#: ../libsvn_wc/diff_editor.c:2195 ../libsvn_wc/externals.c:711
+#: ../libsvn_wc/update_editor.c:4239
#, c-format
msgid "Checksum mismatch for '%s'"
msgstr "Prüfsummenfehler für »%s«"
@@ -1907,11 +3730,11 @@ msgstr "URL »%s« existiert nicht"
msgid "Cannot specify revisions (except HEAD) with move operations"
msgstr "Andere Revisionen (als HEAD) sind bei Verschiebeoperationen nicht zugelassen"
-#: ../libsvn_client/deprecated.c:1647
+#: ../libsvn_client/deprecated.c:1750
msgid "No commits in repository"
msgstr "Keine Ãœbertragungen im Projektarchiv"
-#: ../libsvn_client/deprecated.c:3032 ../libsvn_wc/deprecated.c:4172
+#: ../libsvn_client/deprecated.c:3151 ../libsvn_wc/deprecated.c:4229
msgid "Non-recursive relocation not supported"
msgstr "Nicht-rekursives Umplatzieren nicht unterstützt"
@@ -1936,58 +3759,54 @@ msgstr "%s\t(nicht existent)"
msgid "%s\t(working copy)"
msgstr "%s\t(Arbeitskopie)"
-#: ../libsvn_client/diff.c:499 ../svnlook/svnlook.c:802
-#, c-format
-msgid "%sProperty changes on: %s%s"
-msgstr "%sEigenschaftsänderungen: %s%s"
-
-#: ../libsvn_client/diff.c:754
+#: ../libsvn_client/diff.c:944
#, c-format
msgid "Cannot display: file marked as a binary type.%s"
msgstr "Kann nicht anzeigen: Dateityp ist als binär angegeben.%s"
-#: ../libsvn_client/diff.c:1285 ../libsvn_client/merge.c:7277
-#: ../libsvn_client/merge.c:10629
+#: ../libsvn_client/diff.c:1481 ../libsvn_client/merge.c:7301
+#: ../libsvn_client/merge.c:10654
msgid "Not all required revisions are specified"
msgstr "Es sind nicht alle erforderlichen Revisionen angegeben"
-#: ../libsvn_client/diff.c:1299
+#: ../libsvn_client/diff.c:1495
msgid "At least one revision must be something other than BASE or WORKING when diffing a URL"
msgstr "Beim Vergleichen einer URL muss mindestens eine Revision etwas anderes sein als »BASE« oder »WORKING«"
-#: ../libsvn_client/diff.c:1336
+#: ../libsvn_client/diff.c:1532
#, c-format
msgid "Diff target '%s' was not found in the repository at revision '%ld'"
msgstr "Ziel für Vergleich »%s« wurde im Projektarchiv in Revision »%ld« nicht gefunden"
-#: ../libsvn_client/diff.c:1341
+#: ../libsvn_client/diff.c:1537
#, c-format
msgid "Diff target '%s' was not found in the repository at revision '%ld' or '%ld'"
msgstr "Ziel für Vergleich »%s« wurde im Projektarchiv in Revision »%ld« oder »%ld« nicht gefunden"
-#: ../libsvn_client/diff.c:1517
+#: ../libsvn_client/diff.c:1713
#, c-format
msgid "Diff target '%s' was not found in the repository at revisions '%ld' and '%ld'"
msgstr "Ziel für Vergleich »%s« wurde im Projektarchiv in Revisionen »%ld« und »%ld« nicht gefunden"
-#: ../libsvn_client/diff.c:1522
+#: ../libsvn_client/diff.c:1718
#, c-format
msgid "Diff targets '%s' and '%s' were not found in the repository at revisions '%ld' and '%ld'"
msgstr "Ziele für Vergleich »%s« und »%s« wurden im Projektarchiv in Revisionen »%ld« und »%ld« nicht gefunden"
-#: ../libsvn_client/diff.c:1621
-msgid "Sorry, svn_client_diff6 was called in a way that is not yet supported"
+#: ../libsvn_client/diff.c:1817
+#, fuzzy
+msgid "Sorry, svn_client_diff7 was called in a way that is not yet supported"
msgstr "Leider wurde svn_client_diff6 in einer Art aufgerufen, die noch nicht unterstützt wird"
-#: ../libsvn_client/diff.c:1661
-msgid "Only diffs between a path's text-base and its working files are supported at this time"
-msgstr "Derzeit werden nur Vergleiche zwischen der Textbasis und den Arbeitsdateien eines Pfades unterstützt"
+#: ../libsvn_client/diff.c:1857
+msgid "A non-URL diff at this time must be either from a path's base to the same path's working version or between the working versions of two paths"
+msgstr ""
-#: ../libsvn_client/diff.c:2367 ../libsvn_client/diff.c:2453
+#: ../libsvn_client/diff.c:2632 ../libsvn_client/diff.c:2696
msgid "Cannot ignore properties and show only properties at the same time"
msgstr "Kann nicht gleichzeitig Eigenschaften ignorieren und nur Eigenschaften anzeigen"
-#: ../libsvn_client/diff_local.c:792 ../libsvn_wc/props.c:1675
+#: ../libsvn_client/diff_local.c:789 ../libsvn_wc/props.c:1675
#, c-format
msgid "'%s' is not a file or directory"
msgstr "»%s« ist weder eine Datei noch ein Verzeichnis"
@@ -2001,35 +3820,35 @@ msgstr "»%s« ist kein gültiger EOL Wert"
msgid "Destination directory exists, and will not be overwritten unless forced"
msgstr "Zielverzeichnis existiert und kann nur mittels »--force« überschrieben werden"
-#: ../libsvn_client/export.c:265 ../libsvn_client/export.c:1527
-#: ../libsvn_wc/adm_crawler.c:1219 ../libsvn_wc/copy.c:651
-#: ../libsvn_wc/crop.c:234 ../libsvn_wc/crop.c:337 ../libsvn_wc/info.c:377
+#: ../libsvn_client/export.c:265 ../libsvn_client/export.c:1526
+#: ../libsvn_wc/adm_crawler.c:1270 ../libsvn_wc/copy.c:651
+#: ../libsvn_wc/crop.c:239 ../libsvn_wc/crop.c:342 ../libsvn_wc/info.c:377
#: ../libsvn_wc/node.c:529 ../libsvn_wc/props.c:202 ../libsvn_wc/status.c:2728
-#: ../libsvn_wc/wc_db.c:2066 ../libsvn_wc/wc_db.c:2607
-#: ../libsvn_wc/wc_db.c:2846 ../libsvn_wc/wc_db.c:2879
-#: ../libsvn_wc/wc_db.c:3037 ../libsvn_wc/wc_db.c:4050
-#: ../libsvn_wc/wc_db.c:6373 ../libsvn_wc/wc_db.c:6693
-#: ../libsvn_wc/wc_db.c:6866 ../libsvn_wc/wc_db.c:7053
-#: ../libsvn_wc/wc_db.c:8092 ../libsvn_wc/wc_db.c:9056
-#: ../libsvn_wc/wc_db.c:9788 ../libsvn_wc/wc_db.c:10433
-#: ../libsvn_wc/wc_db.c:10580 ../libsvn_wc/wc_db.c:10720
-#: ../libsvn_wc/wc_db.c:11096 ../libsvn_wc/wc_db.c:11429
-#: ../libsvn_wc/wc_db.c:12669 ../libsvn_wc/wc_db.c:12737
-#: ../libsvn_wc/wc_db.c:14066 ../libsvn_wc/wc_db.c:14115
-#: ../libsvn_wc/wc_db.c:14236 ../libsvn_wc/wc_db.c:14395
-#: ../libsvn_wc/wc_db.c:14836 ../libsvn_wc/wc_db.c:15700
+#: ../libsvn_wc/wc_db.c:2063 ../libsvn_wc/wc_db.c:2604
+#: ../libsvn_wc/wc_db.c:2843 ../libsvn_wc/wc_db.c:2876
+#: ../libsvn_wc/wc_db.c:3034 ../libsvn_wc/wc_db.c:4047
+#: ../libsvn_wc/wc_db.c:6370 ../libsvn_wc/wc_db.c:6690
+#: ../libsvn_wc/wc_db.c:6934 ../libsvn_wc/wc_db.c:7074
+#: ../libsvn_wc/wc_db.c:8113 ../libsvn_wc/wc_db.c:9113
+#: ../libsvn_wc/wc_db.c:9845 ../libsvn_wc/wc_db.c:10492
+#: ../libsvn_wc/wc_db.c:10717 ../libsvn_wc/wc_db.c:11093
+#: ../libsvn_wc/wc_db.c:11433 ../libsvn_wc/wc_db.c:12673
+#: ../libsvn_wc/wc_db.c:12742 ../libsvn_wc/wc_db.c:14071
+#: ../libsvn_wc/wc_db.c:14120 ../libsvn_wc/wc_db.c:14241
+#: ../libsvn_wc/wc_db.c:14400 ../libsvn_wc/wc_db.c:14841
+#: ../libsvn_wc/wc_db.c:15705
#, c-format
msgid "The node '%s' was not found."
msgstr "Der Knoten »%s« wurde nicht gefunden."
-#: ../libsvn_client/export.c:285 ../libsvn_client/export.c:1184
-#: ../libsvn_client/export.c:1241
+#: ../libsvn_client/export.c:285 ../libsvn_client/export.c:1181
+#: ../libsvn_client/export.c:1235
#, c-format
msgid "Destination file '%s' exists, and will not be overwritten unless forced"
msgstr "Zieldatei »%s« existiert und kann nur mittels »--force« überschrieben werden"
-#: ../libsvn_client/export.c:291 ../libsvn_client/export.c:1189
-#: ../libsvn_client/export.c:1246
+#: ../libsvn_client/export.c:291 ../libsvn_client/export.c:1186
+#: ../libsvn_client/export.c:1240
#, c-format
msgid "Destination '%s' exists. Cannot overwrite directory with non-directory"
msgstr "Ziel »%s« existiert. Kann Verzeichnis nicht mit etwas überschreiben, was kein Verzeichnis ist"
@@ -2046,73 +3865,73 @@ msgstr "»%s« existiert und ist kein Verzeichnis"
msgid "'%s' already exists"
msgstr "»%s« existiert bereits"
-#: ../libsvn_client/externals.c:202
+#: ../libsvn_client/externals.c:202 ../libsvn_client/externals.c:259
#, c-format
msgid "The external '%s' defined in %s at '%s' cannot be checked out because '%s' is already a versioned path."
msgstr "Der externe Verweis »%s« definiert durch Eigenschaft »%s« von »%s« kann nicht ausgecheckt werden, da »%s« schon ein versionierter Pfad ist."
-#: ../libsvn_client/externals.c:464
+#: ../libsvn_client/externals.c:500
#, c-format
msgid "Cannot insert a file external defined on '%s' into the working copy '%s'."
msgstr "Kann externen Dateiverweis von »%s« nicht in die Arbeitskopie »%s« einfügen."
-#: ../libsvn_client/externals.c:489
+#: ../libsvn_client/externals.c:525
#, c-format
msgid "The file external from '%s' cannot overwrite the existing versioned item at '%s'"
msgstr "Der externe Dateiverweis von »%s« kann nicht das existierende versionierte Objekt bei »%s« überschreiben"
-#: ../libsvn_client/externals.c:503
+#: ../libsvn_client/externals.c:539
#, c-format
msgid "The file external '%s' can not be created because the node exists."
msgstr "Der externe Dateiverweis auf »%s« kann nicht erstellt werden, da schon ein Knoten existiert"
-#: ../libsvn_client/externals.c:781
+#: ../libsvn_client/externals.c:819
#, c-format
msgid "URL '%s' at revision %ld doesn't exist"
msgstr "URL »%s« existiert nicht in Revision %ld"
-#: ../libsvn_client/externals.c:786
+#: ../libsvn_client/externals.c:824
#, c-format
msgid "URL '%s' at revision %ld is not a file or a directory"
msgstr "URL »%s« in Revision %ld ist weder eine Datei noch ein Verzeichnis"
-#: ../libsvn_client/externals.c:865
+#: ../libsvn_client/externals.c:903
#, c-format
msgid "Unsupported external: URL of file external '%s' is not in repository '%s'"
msgstr "Nicht unterstützter externer Verweis: URL von Dateiverweis »%s« gehört nicht zum Projektarchiv »%s«"
-#: ../libsvn_client/externals.c:1061
+#: ../libsvn_client/externals.c:1099
#, c-format
msgid "Traversal of '%s' found no ambient depth"
msgstr "Durchlauf von »%s« fand keine äußere Tiefe"
-#: ../libsvn_client/import.c:149
+#: ../libsvn_client/import.c:172
#, c-format
msgid "%s property on '%s' contains unrecognized EOL-style '%s'"
msgstr "Eigenschaft »%s« von »%s« enthält nicht erkannten Zeilenendstil »%s«"
-#: ../libsvn_client/import.c:479
+#: ../libsvn_client/import.c:507
#, c-format
msgid "Unknown or unversionable type for '%s'"
msgstr "Unbekannter oder unerwarteter Typ für »%s«"
-#: ../libsvn_client/import.c:706
+#: ../libsvn_client/import.c:736
msgid "New entry name required when importing a file"
msgstr "Neuer Eintragsname erforderlich, wenn eine Datei importiert wird"
-#: ../libsvn_client/import.c:757 ../libsvn_client/patch.c:3249
-#: ../libsvn_client/patch.c:3261 ../libsvn_wc/delete.c:93
+#: ../libsvn_client/import.c:787 ../libsvn_client/patch.c:3752
+#: ../libsvn_client/patch.c:3764 ../libsvn_wc/delete.c:93
#: ../libsvn_wc/lock.c:121 ../libsvn_wc/wc_db_wcroot.c:78
#, c-format
msgid "'%s' does not exist"
msgstr "»%s« ist nicht vorhanden"
-#: ../libsvn_client/import.c:909
+#: ../libsvn_client/import.c:939
#, c-format
msgid "'%s' is a reserved name and cannot be imported"
msgstr "»%s« ist ein reservierter Name und kann nicht importiert werden "
-#: ../libsvn_client/info.c:398 ../libsvn_client/list.c:272
+#: ../libsvn_client/info.c:398 ../libsvn_client/list.c:389
#: ../svnbench/null-info-cmd.c:148
#, c-format
msgid "URL '%s' non-existent in revision %ld"
@@ -2141,8 +3960,8 @@ msgstr "»%s« ist in dieser Arbeitskopie nicht gesperrt"
msgid "'%s' is not locked"
msgstr "»%s« ist nicht gesperrt"
-#: ../libsvn_client/locking_commands.c:529 ../libsvn_fs/fs-loader.c:1630
-#: ../libsvn_ra/ra_loader.c:1059
+#: ../libsvn_client/locking_commands.c:529 ../libsvn_fs/fs-loader.c:1835
+#: ../libsvn_ra/ra_loader.c:1088
msgid "Lock comment contains illegal characters"
msgstr "Sperrkommentar enthält illegale Zeichen"
@@ -2165,7 +3984,8 @@ msgstr "»%s« ist kein relativer Pfad"
msgid "When specifying working copy paths, only one target may be given"
msgstr "Bei der Angabe von Arbeitskopiepfaden darf nur ein Ziel angegeben werden"
-#: ../libsvn_client/log.c:428 ../libsvn_client/revisions.c:190
+#: ../libsvn_client/log.c:428 ../libsvn_client/revisions.c:93
+#: ../libsvn_client/revisions.c:135
msgid "PREV, BASE, or COMMITTED revision keywords are invalid for URL"
msgstr "PREV, BASE oder COMMITTED Revisions-Schlüsselwörter sind für die URL ungültig"
@@ -2173,12 +3993,12 @@ msgstr "PREV, BASE oder COMMITTED Revisions-Schlüsselwörter sind für die URL
msgid "Missing required revision specification"
msgstr "Es wurde keine Revision angegeben"
-#: ../libsvn_client/merge.c:442
+#: ../libsvn_client/merge.c:416
#, c-format
msgid "URL '%s' of '%s' is not in repository '%s'"
msgstr "URL »%s« von »%s« ist nicht im Projektarchiv »%s«"
-#: ../libsvn_client/merge.c:479
+#: ../libsvn_client/merge.c:453
#, c-format
msgid "'%s' must be from the same repository as '%s'"
msgstr "»%s« muss aus dem selben Projektarchiv wie »%s« stammen"
@@ -2187,28 +4007,28 @@ msgstr "»%s« muss aus dem selben Projektarchiv wie »%s« stammen"
#. xgettext: the '.working', '.merge-left.r%ld' and
#. '.merge-right.r%ld' strings are used to tag onto a file
#. name in case of a merge conflict
-#: ../libsvn_client/merge.c:2094
+#: ../libsvn_client/merge.c:2111
#, c-format
msgid ".working%s%s"
msgstr ".working%s%s"
# File names not translated
-#: ../libsvn_client/merge.c:2097
+#: ../libsvn_client/merge.c:2114
#, c-format
msgid ".merge-left.r%ld%s%s"
msgstr ".merge-left.r%ld%s%s"
# File names not translated
-#: ../libsvn_client/merge.c:2101
+#: ../libsvn_client/merge.c:2118
#, c-format
msgid ".merge-right.r%ld%s%s"
msgstr ".merge-right.r%ld%s%s"
-#: ../libsvn_client/merge.c:4779
+#: ../libsvn_client/merge.c:4816
msgid "Cannot reverse-merge a range from a path's own future history; try updating first"
msgstr "Kann keinen Bereich aus der zukünftigen Geschichte des Pfades rückwärts zusammenführen; versuchen Sie zuerst zu aktualisieren"
-#: ../libsvn_client/merge.c:5514
+#: ../libsvn_client/merge.c:5537
#, c-format
msgid ""
"One or more conflicts were produced while merging r%ld:%ld into\n"
@@ -2221,79 +4041,79 @@ msgstr ""
"Lösen Sie alle Konflikte auf und starten Sie die Zusammenführung\n"
"erneut, um die fehlenden Revisionen zusammenzuführen"
-#: ../libsvn_client/merge.c:6330
+#: ../libsvn_client/merge.c:6353
#, c-format
msgid "Invalid mergeinfo detected on '%s', merge tracking not possible"
msgstr "Ungültige Zusammenführungsinformationen in »%s« entdeckt, Zusammenführungsverfolgung nicht möglich"
-#: ../libsvn_client/merge.c:6479
+#: ../libsvn_client/merge.c:6504
msgid "Merge tracking not allowed with missing subtrees; try restoring these items first:\n"
msgstr "Zusammenführungsverfolgung nicht erlaubt bei fehlenden Unterbäumen; versuchen Sie diese Elemente erst wiederherzustellen:\n"
-#: ../libsvn_client/merge.c:7481
+#: ../libsvn_client/merge.c:7505
#, c-format
msgid "Invalid mergeinfo detected on merge target '%s', merge tracking not possible"
msgstr "Ungültige Zusammenführungsinformationen im Zusammenführungsziel »%s« entdeckt, Zusammenführungsverfolgung nicht möglich"
-#: ../libsvn_client/merge.c:9799
+#: ../libsvn_client/merge.c:9823
msgid "Use of two URLs is not compatible with mergeinfo modification"
msgstr "Die Verwendung zweier URLs ist nicht kompatibel mit Änderungen der Zusammenführungsinformationen"
-#: ../libsvn_client/merge.c:9806 ../libsvn_client/merge.c:10141
+#: ../libsvn_client/merge.c:9830 ../libsvn_client/merge.c:10166
msgid "Merge from foreign repository is not compatible with mergeinfo modification"
msgstr "Die Zusammenführung aus fremdem Projektarchiv ist nicht kompatibel mit Änderungen der Zusammenführungsinformationen"
-#: ../libsvn_client/merge.c:10234 ../libsvn_client/merge.c:10377
+#: ../libsvn_client/merge.c:10259 ../libsvn_client/merge.c:10402
#, c-format
msgid "Merge target '%s' does not exist in the working copy"
msgstr "Zusammenführungsziel »%s« ist nicht in der Arbeitskopie enthalten"
-#: ../libsvn_client/merge.c:10257
+#: ../libsvn_client/merge.c:10282
msgid "Cannot determine revision of working copy"
msgstr "Die Revision der Arbeitskopie kann nicht bestimmt werden"
-#: ../libsvn_client/merge.c:10263
+#: ../libsvn_client/merge.c:10288
#, c-format
msgid "Cannot merge into mixed-revision working copy [%ld:%ld]; try updating first"
msgstr "Kann nicht in eine Arbeitskopie mit verschiedenen Revisionen zusammenführen [%ld:%ld], versuchen Sie erst zu aktualisieren"
-#: ../libsvn_client/merge.c:10278
+#: ../libsvn_client/merge.c:10303
msgid "Cannot merge into a working copy with a switched subtree"
msgstr "Kann nicht in eine Arbeitskopie mit umgestelltem Unterbaum zusammenführen"
-#: ../libsvn_client/merge.c:10294
+#: ../libsvn_client/merge.c:10319
msgid "Cannot merge into a working copy that has local modifications"
msgstr "Kann nicht in eine Arbeitskopie mit lokalen Änderungen zusammenführen"
-#: ../libsvn_client/merge.c:10314 ../svn/merge-cmd.c:56
+#: ../libsvn_client/merge.c:10339 ../svn/merge-cmd.c:56
#, c-format
msgid "Invalid merge source '%s'; a working copy path can only be used with a repository revision (a number, a date, or head)"
msgstr "Ungültige Quelle für Zusammenführung »%s«; ein Arbeitskopiepfad kann nur mit einer Revision im Projektarchiv verwendet werden (eine Zahl, ein Datum oder »HEAD«)"
-#: ../libsvn_client/merge.c:10632 ../svn/merge-cmd.c:123
+#: ../libsvn_client/merge.c:10657 ../svn/merge-cmd.c:123
msgid "Merge sources must both be either paths or URLs"
msgstr "Zusammenführungsquellen müssen beide Pfade oder URLs sein"
-#: ../libsvn_client/merge.c:11393 ../libsvn_client/merge.c:11555
-#: ../libsvn_client/merge.c:12451
+#: ../libsvn_client/merge.c:11427 ../libsvn_client/merge.c:11589
+#: ../libsvn_client/merge.c:12507
#, c-format
msgid "'%s@%ld' must be ancestrally related to '%s@%ld'"
msgstr "»%s@%ld« muss eine Vorgängerbeziehung zu »%s@%ld« haben"
-#: ../libsvn_client/merge.c:11505
+#: ../libsvn_client/merge.c:11539
#, c-format
msgid "Neither the reintegrate source nor target can be the root of the repository"
msgstr "Weder die Quelle noch das Ziel der Reintegration darf Wurzel des Projektarchivs sein"
-#: ../libsvn_client/merge.c:11515
+#: ../libsvn_client/merge.c:11549
msgid "Reintegrate merge not possible"
msgstr "Zusammenführung zur Reintegration nicht möglich"
-#: ../libsvn_client/merge.c:11585
+#: ../libsvn_client/merge.c:11619
msgid " Missing ranges: "
msgstr " Fehlende Bereiche: "
-#: ../libsvn_client/merge.c:11588
+#: ../libsvn_client/merge.c:11622
#, c-format
msgid ""
"Reintegrate can only be used if revisions %ld through %ld were previously merged from %s to the reintegrate source, but this is not the case:\n"
@@ -2302,27 +4122,37 @@ msgstr ""
"Reintegration kann nur genutzt werden, falls die Revisionen %ld bis %ld vorher von %s in die zu reintegrierende Quelle zusammengeführt wurden, aber dies ist nicht der Fall:\n"
"%s"
-#: ../libsvn_client/merge.c:11650
+#: ../libsvn_client/merge.c:11681
#, c-format
msgid "Can't reintegrate into '%s' because it is locally added and therefore not related to the merge source"
msgstr "Kann nicht nach »%s« reintegrieren, da es lokal hinzugefügt wurde und daher keine Herkunftsbeziehung zur Quelle der Zusammenführung hat"
-#: ../libsvn_client/merge.c:11918
+#: ../libsvn_client/merge.c:11969
msgid "Cannot merge automatically while ignoring mergeinfo"
msgstr "Kann nicht automatisch zusammenführen und dabei Zusammenführungsinformationen ignorieren"
-#: ../libsvn_client/merge.c:12673
+#: ../libsvn_client/merge.c:12637
+#, fuzzy, c-format
+msgid "Can't perform automatic merge into '%s' because it is locally added and therefore not related to the merge source"
+msgstr "Kann nicht nach »%s« reintegrieren, da es lokal hinzugefügt wurde und daher keine Herkunftsbeziehung zur Quelle der Zusammenführung hat"
+
+#: ../libsvn_client/merge.c:12736
msgid "The required merge is reintegrate-like, and the record-only option cannot be used with this kind of merge"
msgstr "Die benötigte Zusammenführung ist eine Reintegration, die Option »record-only« kann aber mit dieser Art der Zusammenführung nicht verwendet werden"
-#: ../libsvn_client/merge.c:12679
+#: ../libsvn_client/merge.c:12742
msgid "The required merge is reintegrate-like, and the depth option cannot be used with this kind of merge"
msgstr "Die benötigte Zusammenführung ist eine Reintegration, die Option zur Angabe der Tiefe kann aber mit dieser Art der Zusammenführung nicht verwendet werden"
-#: ../libsvn_client/merge.c:12685
+#: ../libsvn_client/merge.c:12748
msgid "The required merge is reintegrate-like, and the force_delete option cannot be used with this kind of merge"
msgstr "Die benötigte Zusammenführung ist eine Reintegration, die Option »force_delete« kann aber mit dieser Art der Zusammenführung nicht verwendet werden"
+#: ../libsvn_client/merge_elements.c:193
+#, fuzzy
+msgid "Merge had conflicts; this is not yet supported"
+msgstr "Das Verringern der Arbeitskopietiefen wird nicht unterstützt"
+
#: ../libsvn_client/mergeinfo.c:1715
msgid "Only depths 'infinity' and 'empty' are currently supported"
msgstr "Nur Tiefenangaben von »infinity« und »empty« werden momentan unterstützt"
@@ -2337,7 +4167,7 @@ msgstr "Kann »%s« nicht bearbeiten da »%s« kein Verzeichnis ist"
msgid "No origin found for node at '%s'"
msgstr "Kein Herkunftsknoten gefunden für Knoten in »%s«"
-#: ../libsvn_client/mtcc.c:359 ../libsvn_repos/commit.c:432
+#: ../libsvn_client/mtcc.c:359 ../libsvn_repos/commit.c:430
#, c-format
msgid "No such revision %ld (HEAD is %ld)"
msgstr "Keine Revision %ld (HEAD ist %ld)"
@@ -2353,13 +4183,14 @@ msgid "Can't add file at '%s'"
msgstr "Kann Datei »%s« nicht hinzufügen"
#: ../libsvn_client/mtcc.c:538 ../libsvn_client/ra.c:708
-#: ../libsvn_fs_base/lock.c:274 ../libsvn_fs_fs/fs_fs.c:1366
-#: ../libsvn_fs_fs/lock.c:759 ../libsvn_fs_fs/rev_file.c:177
-#: ../libsvn_fs_fs/rev_file.c:189 ../libsvn_fs_x/fs_x.c:690
-#: ../libsvn_fs_x/lock.c:799 ../libsvn_fs_x/rev_file.c:190
-#: ../libsvn_repos/commit.c:193 ../libsvn_repos/log.c:2357
-#: ../libsvn_repos/log.c:2361 ../libsvn_repos/rev_hunt.c:851
-#: ../libsvn_repos/rev_hunt.c:858 ../libsvn_repos/rev_hunt.c:865
+#: ../libsvn_delta/branch_repos.c:91 ../libsvn_fs_base/lock.c:274
+#: ../libsvn_fs_fs/fs_fs.c:1506 ../libsvn_fs_fs/lock.c:759
+#: ../libsvn_fs_fs/rev_file.c:177 ../libsvn_fs_fs/rev_file.c:189
+#: ../libsvn_fs_x/fs_x.c:724 ../libsvn_fs_x/lock.c:779
+#: ../libsvn_fs_x/rev_file.c:245 ../libsvn_repos/commit.c:193
+#: ../libsvn_repos/log.c:2368 ../libsvn_repos/log.c:2372
+#: ../libsvn_repos/rev_hunt.c:850 ../libsvn_repos/rev_hunt.c:857
+#: ../libsvn_repos/rev_hunt.c:864
#, c-format
msgid "No such revision %ld"
msgstr "Keine Revision %ld"
@@ -2369,99 +4200,100 @@ msgstr "Keine Revision %ld"
msgid "Can't add node at '%s'"
msgstr "Kann Knoten »%s« nicht hinzufügen"
-#: ../libsvn_client/mtcc.c:587
+#: ../libsvn_client/mtcc.c:621
#, c-format
msgid "Can't delete node at '%s' as it does not exist"
msgstr "Kann Knoten »%s« nicht löschen da er nicht existiert"
-#: ../libsvn_client/mtcc.c:604
+#: ../libsvn_client/mtcc.c:652
#, c-format
msgid "Can't delete node at '%s'"
msgstr "Kann Knoten »%s« nicht löschen"
-#: ../libsvn_client/mtcc.c:641
+#: ../libsvn_client/mtcc.c:697
#, c-format
msgid "Can't create directory at '%s'"
msgstr "Kann Verzeichnis »%s« nicht erstellen"
-#: ../libsvn_client/mtcc.c:779 ../libsvn_client/prop_commands.c:282
+#: ../libsvn_client/mtcc.c:836 ../libsvn_client/prop_commands.c:282
#: ../libsvn_client/prop_commands.c:477
#, c-format
msgid "Bad property name: '%s'"
msgstr "Ungültiger Name für Eigenschaft: »%s«"
-#: ../libsvn_client/mtcc.c:783 ../libsvn_client/prop_commands.c:275
+#: ../libsvn_client/mtcc.c:840 ../libsvn_client/prop_commands.c:275
#, c-format
msgid "Revision property '%s' not allowed in this context"
msgstr "Revisionseigenschaft »%s« ist in diesem Kontext nicht erlaubt"
-#: ../libsvn_client/mtcc.c:788 ../libsvn_client/prop_commands.c:60
+#: ../libsvn_client/mtcc.c:845 ../libsvn_client/prop_commands.c:60
#, c-format
msgid "'%s' is a wcprop, thus not accessible to clients"
msgstr "»%s« ist eine AK-Eigenschaft und damit den Clients nicht zugänglich"
-#: ../libsvn_client/mtcc.c:798
+#: ../libsvn_client/mtcc.c:855
msgid "Error normalizing property value"
msgstr "Fehler beim Normalisieren des Eigenschaftswertes"
-#: ../libsvn_client/mtcc.c:833 ../libsvn_client/mtcc.c:856
+#: ../libsvn_client/mtcc.c:890 ../libsvn_client/mtcc.c:913
#, c-format
msgid "Can't set properties at not existing '%s'"
msgstr "Kann Eigenschaften nicht für nicht vorhandenes »%s« setzen"
-#: ../libsvn_client/mtcc.c:904
+#: ../libsvn_client/mtcc.c:961
#, c-format
msgid "Can't update '%s' because it is not a file"
msgstr "Kann »%s« nicht aktualisieren, da es keine Datei ist"
-#: ../libsvn_client/mtcc.c:915
+#: ../libsvn_client/mtcc.c:972
#, c-format
msgid "Can't update file at '%s'"
msgstr "Kann Datei in »%s« nicht aktualisieren"
-#: ../libsvn_client/mtcc.c:980
-#, c-format
-msgid "Can't perform directory operation on '%s' as it is not a directory"
-msgstr "Kann Verzeichnisoperation auf »%s« nicht ausführen, das es kein Verzeichnis ist"
-
-#: ../libsvn_client/mtcc.c:990
+#: ../libsvn_client/mtcc.c:1037
#, c-format
msgid "Can't perform file operation on '%s' as it is not a file"
msgstr "Kann Dateioperation auf »%s« nicht ausführen, das es keine Datei ist"
-#: ../libsvn_client/mtcc.c:997
+#: ../libsvn_client/mtcc.c:1047
+#, c-format
+msgid "Can't perform directory operation on '%s' as it is not a directory"
+msgstr "Kann Verzeichnisoperation auf »%s« nicht ausführen, das es kein Verzeichnis ist"
+
+#: ../libsvn_client/mtcc.c:1054
#, c-format
msgid "Can't open '%s' as it does not exist"
msgstr "Kann »%s« nicht öffnen, da es nicht existiert"
-#: ../libsvn_client/mtcc.c:1389
+#: ../libsvn_client/mtcc.c:1446
#, c-format
msgid "Can't commit to '%s' because it is not a directory"
msgstr "Kann nicht nach »%s« übertragen, da es kein Verzeichnis ist"
-#: ../libsvn_client/patch.c:284
+#: ../libsvn_client/patch.c:346
#, c-format
msgid "Cannot strip %u components from '%s'"
msgstr "Kann nicht %u Komponenten von »%s« entfernen"
-#: ../libsvn_client/patch.c:918
-msgid "Invalid link representation"
-msgstr "Ungültige Darstellung für symbolischen Link"
+#: ../libsvn_client/patch.c:1296 ../libsvn_client/patch.c:1342
+#, c-format
+msgid "Invalid patch: specifies contradicting mode changes and %s changes (for '%s')"
+msgstr ""
-#: ../libsvn_client/patch.c:3238
+#: ../libsvn_client/patch.c:3741
msgid "strip count must be positive"
msgstr "Anzahl der zu entfernenden Komponenten muss positiv sein"
-#: ../libsvn_client/patch.c:3254 ../libsvn_fs_base/tree.c:4084
-#: ../libsvn_fs_base/tree.c:4089 ../libsvn_fs_fs/tree.c:3185
-#: ../libsvn_fs_fs/tree.c:3190 ../libsvn_fs_x/tree.c:3219
-#: ../libsvn_fs_x/tree.c:3224 ../libsvn_ra/compat.c:677
-#: ../libsvn_ra_local/ra_plugin.c:1260
+#: ../libsvn_client/patch.c:3757 ../libsvn_fs_base/tree.c:4112
+#: ../libsvn_fs_base/tree.c:4117 ../libsvn_fs_fs/tree.c:3245
+#: ../libsvn_fs_fs/tree.c:3251 ../libsvn_fs_x/tree.c:2188
+#: ../libsvn_fs_x/tree.c:2194 ../libsvn_ra/compat.c:677
+#: ../libsvn_ra_local/ra_plugin.c:1290
#, c-format
msgid "'%s' is not a file"
msgstr "»%s« ist keine Datei"
-#: ../libsvn_client/patch.c:3266 ../libsvn_wc/util.c:59
+#: ../libsvn_client/patch.c:3769 ../libsvn_wc/util.c:59
#, c-format
msgid "'%s' is not a directory"
msgstr "»%s« ist kein Verzeichnis"
@@ -2547,24 +4379,48 @@ msgstr "»%s« ist nicht die Basis des Projektarchivs"
msgid "The repository at '%s' has uuid '%s', but the WC has '%s'"
msgstr "Das Projektarchiv in »%s« hat die UUID »%s«, aber die Arbeitskopie hat »%s«"
-#: ../libsvn_client/repos_diff.c:935 ../libsvn_wc/externals.c:625
+#: ../libsvn_client/repos_diff.c:935 ../libsvn_wc/externals.c:629
#, c-format
msgid "Base checksum mismatch for '%s'"
msgstr "Basis-Prüfsummenfehler bei »%s«"
-#: ../libsvn_client/revisions.c:114 ../libsvn_client/revisions.c:139
+#: ../libsvn_client/revisions.c:116 ../libsvn_client/revisions.c:143
#, c-format
msgid "Path '%s' has no committed revision"
msgstr "Pfad »%s« hat keine übertragene Revision"
-#: ../libsvn_client/revisions.c:167
+#: ../libsvn_client/revisions.c:171
#, c-format
msgid "Unrecognized revision type requested for '%s'"
msgstr "Unbekannter Revisionstyp für »%s« angefragt"
+#: ../libsvn_client/shelf.c:58
+msgid "Shelf name cannot be the empty string"
+msgstr ""
+
+#: ../libsvn_client/shelf.c:86
+#, fuzzy, c-format
+msgid "Shelve: Bad encoded name '%s'"
+msgstr "Ungültiger Name für Eigenschaft: »%s«"
+
+#: ../libsvn_client/shelf.c:148
+#, fuzzy, c-format
+msgid "shelf '%s': no versions available"
+msgstr "»%s«: Keine Sperrmarke verfügbar"
+
+#: ../libsvn_client/shelf.c:152
+#, c-format
+msgid "shelf '%s' has no version %d: max version is %d"
+msgstr ""
+
+#: ../libsvn_client/shelf.c:455
+#, fuzzy, c-format
+msgid "Shelf '%s' not found"
+msgstr "»%s« nicht gefunden"
+
#: ../libsvn_client/status.c:422 ../libsvn_client/status.c:601
#: ../libsvn_wc/lock.c:564 ../libsvn_wc/lock.c:856 ../libsvn_wc/lock.c:1542
-#: ../libsvn_wc/wc_db.c:13624 ../libsvn_wc/wc_db_wcroot.c:722
+#: ../libsvn_wc/wc_db.c:13629 ../libsvn_wc/wc_db_wcroot.c:722
#, c-format
msgid "'%s' is not a working copy"
msgstr "»%s« ist keine Arbeitskopie"
@@ -2589,8 +4445,8 @@ msgstr "Kann »%s« nicht umplatzieren da es noch nicht im Projektarchiv ist"
msgid "Directory '%s' has no URL"
msgstr "Verzeichnis »%s« hat keine URL"
-#: ../libsvn_client/switch.c:215 ../libsvn_ra_local/ra_plugin.c:235
-#: ../libsvn_ra_local/ra_plugin.c:325 ../libsvn_wc/update_editor.c:4889
+#: ../libsvn_client/switch.c:215 ../libsvn_ra_local/ra_plugin.c:236
+#: ../libsvn_ra_local/ra_plugin.c:326 ../libsvn_wc/update_editor.c:4932
#, c-format
msgid ""
"'%s'\n"
@@ -2615,99 +4471,152 @@ msgstr "Keines der Ziele ist eine Arbeitskopie"
msgid "Cannot mix repository and working copy targets"
msgstr "Ziele aus dem Projektarchiv und einer Arbeitskopie können nicht gemischt werden"
-#: ../libsvn_delta/svndiff.c:436
+#: ../libsvn_delta/branch.c:230
+#, c-format
+msgid "Cannot branch from r%ld %s e%d: branch does not exist"
+msgstr ""
+
+#: ../libsvn_delta/branch.c:245
+#, fuzzy, c-format
+msgid "Cannot branch from r%ld %s e%d: element does not exist"
+msgstr "Kann »%s« nicht öffnen, da es nicht existiert"
+
+#: ../libsvn_delta/branch.c:1003
+#, c-format
+msgid "Cannot set e%d to (parent=e%d, name='%s'): branch root is e%d"
+msgstr ""
+
+#: ../libsvn_delta/branch_nested.c:439
+#, fuzzy, c-format
+msgid "Branch %s not found"
+msgstr "Pfad »%s« nicht gefunden"
+
+#: ../libsvn_delta/branch_repos.c:98
+#, fuzzy, c-format
+msgid "Branch %s not found in r%ld"
+msgstr "Pfad »%s« wurde in r%ld nicht gefunden."
+
+#: ../libsvn_delta/svndiff.c:495
#, c-format
msgid "Invalid diff stream: insn %d cannot be decoded"
msgstr "Ungültiger Diff-Strom: insn %d kann nicht dekodiert werden"
-#: ../libsvn_delta/svndiff.c:440
+#: ../libsvn_delta/svndiff.c:499
#, c-format
msgid "Invalid diff stream: insn %d has length zero"
msgstr "Ungültiger Diff-Strom: insn %d hat Länge Null"
-#: ../libsvn_delta/svndiff.c:444
+#: ../libsvn_delta/svndiff.c:503
#, c-format
msgid "Invalid diff stream: insn %d overflows the target view"
msgstr "Ungültiger Diff-Strom: insn %d läuft in die Zielansicht über"
-#: ../libsvn_delta/svndiff.c:453
+#: ../libsvn_delta/svndiff.c:512
#, c-format
msgid "Invalid diff stream: [src] insn %d overflows the source view"
msgstr "Ungültiger Diff-Strom: [Quelle] insn %d läuft in die Quellansicht über"
-#: ../libsvn_delta/svndiff.c:460
+#: ../libsvn_delta/svndiff.c:519
#, c-format
msgid "Invalid diff stream: [tgt] insn %d starts beyond the target view position"
msgstr "Ungültiger Diff-Strom: [Ziel] insn %d startet hinter der Zielposition"
-#: ../libsvn_delta/svndiff.c:467
+#: ../libsvn_delta/svndiff.c:526
#, c-format
msgid "Invalid diff stream: [new] insn %d overflows the new data section"
msgstr "Ungültiger Diff-Strom: [Neu] insn %d läuft in die neue Datensektion über"
-#: ../libsvn_delta/svndiff.c:477
+#: ../libsvn_delta/svndiff.c:536
msgid "Delta does not fill the target window"
msgstr "Delta füllt das Zielfenster nicht"
-#: ../libsvn_delta/svndiff.c:480
+#: ../libsvn_delta/svndiff.c:539
msgid "Delta does not contain enough new data"
msgstr "Delta enthält nicht genügend neue Daten"
-#: ../libsvn_delta/svndiff.c:608
+#: ../libsvn_delta/svndiff.c:658
msgid "Svndiff has invalid header"
msgstr "Svndiff-Daten enthalten ungültigen Kopf"
-#: ../libsvn_delta/svndiff.c:664 ../libsvn_delta/svndiff.c:853
+#: ../libsvn_delta/svndiff.c:720 ../libsvn_delta/svndiff.c:930
msgid "Svndiff contains a too-large window"
msgstr "Svndiff-Daten enthalten ein zu großes Fenster"
-#: ../libsvn_delta/svndiff.c:671 ../libsvn_delta/svndiff.c:860
+#: ../libsvn_delta/svndiff.c:728 ../libsvn_delta/svndiff.c:937
msgid "Svndiff contains corrupt window header"
msgstr "Svndiff-Daten enthalten defekte Fenster-Kopfdaten"
-#: ../libsvn_delta/svndiff.c:680
+#: ../libsvn_delta/svndiff.c:737
msgid "Svndiff has backwards-sliding source views"
msgstr "Svndiff-Daten enthalten rückwärts gleitenden Blick auf Quellen"
-#: ../libsvn_delta/svndiff.c:737 ../libsvn_delta/svndiff.c:794
-#: ../libsvn_delta/svndiff.c:882
+#: ../libsvn_delta/svndiff.c:786
+#, fuzzy
+msgid "Svndiff contains a too-large window header"
+msgstr "Svndiff-Daten enthalten ein zu großes Fenster"
+
+#: ../libsvn_delta/svndiff.c:811 ../libsvn_delta/svndiff.c:871
+#: ../libsvn_delta/svndiff.c:959
msgid "Unexpected end of svndiff input"
msgstr "Unerwartetes Ende der Svndiff-Eingangsdaten"
+#: ../libsvn_diff/binary_diff.c:104
+#, fuzzy
+msgid "Invalid base85 value"
+msgstr "Ungültiger Wert für svn:mergeinfo"
+
+#: ../libsvn_diff/binary_diff.c:124
+#, fuzzy
+msgid "Unexpected base85 line length"
+msgstr "Unerwartetes Ende des Eintrags"
+
#: ../libsvn_diff/diff_file.c:186
#, c-format
msgid "File '%s' is too large to be read in to memory"
msgstr "Datei »%s« ist zu groß um in den Speicher gelesen zu werden"
-#: ../libsvn_diff/diff_file.c:1104
+#: ../libsvn_diff/diff_file.c:1103
#, c-format
msgid "The file '%s' changed unexpectedly during diff"
msgstr "Die Datei »%s« veränderte sich unerwartet während des Vergleichs"
-#: ../libsvn_diff/diff_file.c:1278
+#: ../libsvn_diff/diff_file.c:1280
msgid "Error in options to internal diff"
msgstr "Fehler in Optionen für internes Vergleichsprogramm"
-#: ../libsvn_diff/diff_file.c:1307
+#: ../libsvn_diff/diff_file.c:1309
#, c-format
msgid "Invalid argument '%s' in diff options"
msgstr "Ungültiges Argument »%s« in Vergleichsoptionen"
#. Order of date components can be different in different languages
-#: ../libsvn_diff/diff_file.c:1806
+#: ../libsvn_diff/diff_file.c:1830
msgid "%a %b %e %H:%M:%S %Y"
msgstr "%a %e. %b %H:%M:%S %Y"
-#: ../libsvn_diff/diff_file.c:1887 ../libsvn_diff/diff_file.c:1903
+#: ../libsvn_diff/diff_file.c:1913 ../libsvn_diff/diff_file.c:1929
#, c-format
msgid "Path '%s' must be inside the directory '%s'"
msgstr "Pfad »%s« muss innerhalb des Verzeichnisses »%s« sein"
-#: ../libsvn_diff/diff_file.c:2449
+#: ../libsvn_diff/diff_file.c:2475
#, c-format
msgid "Failed to delete mmap '%s'"
msgstr "Konnte mmap »%s« nicht löschen"
+#: ../libsvn_diff/parse-diff.c:373
+#, fuzzy
+msgid "Unexpected data in base85 section"
+msgstr "Unerwarteter Knotentyp gefunden"
+
+#: ../libsvn_diff/parse-diff.c:442
+msgid "Base85 data expands to longer than declared filesize"
+msgstr ""
+
+#: ../libsvn_diff/parse-diff.c:446
+msgid "Base85 data expands to smaller than declared filesize"
+msgstr ""
+
#: ../libsvn_diff/util.c:477
#, c-format
msgid " Reverse-merged %s:r%s%s"
@@ -2742,92 +4651,92 @@ msgstr "»%s« existiert schon, kann also veraltet sein; versuchen Sie zu aktual
msgid "The filesystem does not support 'absent' nodes"
msgstr "Das Dateisystem unterstützt keine »absent« Knoten"
-#: ../libsvn_fs/fs-loader.c:139
+#: ../libsvn_fs/fs-loader.c:155
#, c-format
msgid "Invalid name for FS type '%s'"
msgstr "Ungültiger Name für Dateisystemtyp »%s«"
-#: ../libsvn_fs/fs-loader.c:156 ../libsvn_ra/ra_loader.c:163
+#: ../libsvn_fs/fs-loader.c:172 ../libsvn_ra/ra_loader.c:163
#: ../libsvn_ra/ra_loader.c:176
#, c-format
msgid "'%s' does not define '%s()'"
msgstr "»%s« definiert »%s()« nicht"
-#: ../libsvn_fs/fs-loader.c:189
+#: ../libsvn_fs/fs-loader.c:205
#, c-format
msgid "Failed to load module for FS type '%s'"
msgstr "Konnte Modul für Dateisystemtyp »%s« nicht laden"
-#: ../libsvn_fs/fs-loader.c:210
+#: ../libsvn_fs/fs-loader.c:226
#, c-format
msgid "Mismatched FS module version for '%s': found %d.%d.%d%s, expected %d.%d.%d%s"
msgstr "Versionen in Dateisystemmodul »%s« stimmen nicht überein: gefunden %d.%d.%d%s, erwartet %d.%d.%d%s"
-#: ../libsvn_fs/fs-loader.c:300
+#: ../libsvn_fs/fs-loader.c:316
#, c-format
msgid "Unknown FS type '%s'"
msgstr "Unbekannter Dateisystemtyp »%s«"
-#: ../libsvn_fs/fs-loader.c:449
+#: ../libsvn_fs/fs-loader.c:465
#, c-format
msgid "Path '%s' is not in UTF-8"
msgstr "Pfad »%s« ist kein UTF-8"
-#: ../libsvn_fs/fs-loader.c:457
+#: ../libsvn_fs/fs-loader.c:473
#, c-format
msgid "Path '%s' contains '.' or '..' element"
msgstr "Pfad »%s« enthält ein Element ».« oder »..«"
-#: ../libsvn_fs/fs-loader.c:469 ../libsvn_fs_fs/tree.c:2413
-#: ../libsvn_subr/path.c:1229
+#: ../libsvn_fs/fs-loader.c:485 ../libsvn_fs_fs/tree.c:2476
+#: ../libsvn_subr/path.c:1240
#, c-format
msgid "Invalid control character '0x%02x' in path '%s'"
msgstr "Ungültiges Steuerzeichen »0x%02x« in Pfad »%s«"
-#: ../libsvn_fs/fs-loader.c:654 ../libsvn_repos/repos.c:1976
+#: ../libsvn_fs/fs-loader.c:665 ../libsvn_repos/repos.c:1990
msgid "Hotcopy source and destination are equal"
msgstr "Quelle und Ziel für Kopie im laufenden Betrieb sind gleich"
-#: ../libsvn_fs/fs-loader.c:664
+#: ../libsvn_fs/fs-loader.c:675
#, c-format
msgid "'%s' already exists and is a file"
msgstr "»%s« existiert bereits und ist eine Datei"
-#: ../libsvn_fs/fs-loader.c:669
+#: ../libsvn_fs/fs-loader.c:680
#, c-format
msgid "'%s' already exists and has an unknown node kind"
msgstr "»%s« existiert bereits und hat einen unbekannten Knotentyp"
-#: ../libsvn_fs/fs-loader.c:687
+#: ../libsvn_fs/fs-loader.c:698
#, c-format
msgid "The filesystem type of the hotcopy source ('%s') does not match the filesystem type of the hotcopy destination ('%s')"
msgstr "Der Dateisystemtyp der Quelle für die Kopie im laufenden Betrieb (»%s«) stimmt nicht mit dem Dateisystemtyp des Ziels der Kopie im laufenden Betrieb (»%s«) überein"
-#: ../libsvn_fs/fs-loader.c:958 ../libsvn_fs/fs-loader.c:976
+#: ../libsvn_fs/fs-loader.c:969 ../libsvn_fs/fs-loader.c:987
#, c-format
msgid "Attempt to modify internal transaction property '%s'"
msgstr "Versuch, eine interne Transaktionseigenschaft »%s« zu schreiben"
-#: ../libsvn_fs/fs-loader.c:1605
+#: ../libsvn_fs/fs-loader.c:1810
#, c-format
msgid "Malformed UUID '%s'"
msgstr "Fehlerhafte UUID »%s«"
-#: ../libsvn_fs/fs-loader.c:1634
+#: ../libsvn_fs/fs-loader.c:1839
msgid "Negative expiration date passed to svn_fs_lock"
msgstr "Negatives Ablaufdatum an svn_fs_lock übergeben"
-#: ../libsvn_fs/fs-loader.c:1649
+#: ../libsvn_fs/fs-loader.c:1854
#, c-format
msgid "Lock token URI '%s' has bad scheme; expected '%s'"
msgstr "URI der Sperrmarke »%s« hat fehlerhaften Schema, erwartete »%s«"
-#: ../libsvn_fs/fs-loader.c:1659
+#: ../libsvn_fs/fs-loader.c:1864
#, c-format
msgid "Lock token '%s' is not ASCII or is a control character at byte %u"
msgstr "Sperrmarke »%s« besteht nicht aus ASCII oder hat ein Steuerzeichen bei Byte %u"
-#: ../libsvn_fs/fs-loader.c:1669
+#: ../libsvn_fs/fs-loader.c:1874
#, c-format
msgid "Lock token URI '%s' is not XML-safe"
msgstr "URI der Sperrmarke »%s« ist nicht sicher für XML"
@@ -2845,23 +4754,21 @@ msgstr "Erzeuge Änderungen"
msgid "deleting changes"
msgstr "Lösche Änderungen"
-#: ../libsvn_fs_base/bdb/changes-table.c:170 ../libsvn_fs_fs/transaction.c:665
-#: ../libsvn_fs_x/transaction.c:941
+#: ../libsvn_fs_base/bdb/changes-table.c:170 ../libsvn_fs_fs/transaction.c:703
msgid "Missing required node revision ID"
msgstr "Für den Knoten fehlt eine erforderliche Revisions ID"
-#: ../libsvn_fs_base/bdb/changes-table.c:181 ../libsvn_fs_fs/transaction.c:675
-#: ../libsvn_fs_x/transaction.c:951
+#: ../libsvn_fs_base/bdb/changes-table.c:181 ../libsvn_fs_fs/transaction.c:713
msgid "Invalid change ordering: new node revision ID without delete"
msgstr "Ungültige Reihenfolge bei Änderung: Neue Knoten Revisions ID ohne Löschen"
-#: ../libsvn_fs_base/bdb/changes-table.c:191 ../libsvn_fs_fs/transaction.c:686
-#: ../libsvn_fs_x/transaction.c:962
+#: ../libsvn_fs_base/bdb/changes-table.c:191 ../libsvn_fs_fs/transaction.c:724
+#: ../libsvn_fs_x/transaction.c:985
msgid "Invalid change ordering: non-add change on deleted path"
msgstr "Ungültige Reihenfolge bei Änderung: Nicht-hinzufügende Änderung auf gelöschtem Pfad"
-#: ../libsvn_fs_base/bdb/changes-table.c:200 ../libsvn_fs_fs/transaction.c:695
-#: ../libsvn_fs_x/transaction.c:971
+#: ../libsvn_fs_base/bdb/changes-table.c:200 ../libsvn_fs_fs/transaction.c:733
+#: ../libsvn_fs_x/transaction.c:993
msgid "Invalid change ordering: add change on preexisting path"
msgstr "Ungültige Reihenfolge bei Änderung: Hinzufügende Änderung auf schon vorhandenem Pfad"
@@ -3207,18 +5114,18 @@ msgid "Attempted to get entries of a non-directory node"
msgstr "Versuchte, Einträge eines *nicht* Verzeichnisknotens zu holen"
#: ../libsvn_fs_base/dag.c:461 ../libsvn_fs_fs/dag.c:377
-#: ../libsvn_fs_x/dag.c:448
+#: ../libsvn_fs_x/dag.c:331
#, c-format
msgid "Attempted to create a node with an illegal name '%s'"
msgstr "Versuchte, Knoten mit illegalem Namen »%s« anzulegen"
#: ../libsvn_fs_base/dag.c:467 ../libsvn_fs_fs/dag.c:383
-#: ../libsvn_fs_x/dag.c:454
+#: ../libsvn_fs_x/dag.c:337
msgid "Attempted to create entry in non-directory parent"
msgstr "Versuchte, Eintrag in einem *nicht* Verzeichnisknoten anzulegen"
#: ../libsvn_fs_base/dag.c:473 ../libsvn_fs_base/dag.c:737
-#: ../libsvn_fs_fs/dag.c:389 ../libsvn_fs_x/dag.c:460
+#: ../libsvn_fs_fs/dag.c:389 ../libsvn_fs_x/dag.c:343
#, c-format
msgid "Attempted to clone child of non-mutable node"
msgstr "Versuchte, Unterknoten eines nicht-veränderlichen Knotens zu klonen"
@@ -3229,12 +5136,12 @@ msgid "Attempted to create entry that already exists"
msgstr "Versuchte, Eintrag anzulegen, der bereits existiert"
#: ../libsvn_fs_base/dag.c:529 ../libsvn_fs_fs/dag.c:468
-#: ../libsvn_fs_x/dag.c:523
+#: ../libsvn_fs_x/dag.c:403
msgid "Attempted to set entry in non-directory node"
msgstr "Versuchte, Eintrag in einem *nicht* Verzeichnisknoten zu setzen"
#: ../libsvn_fs_base/dag.c:535 ../libsvn_fs_fs/dag.c:474
-#: ../libsvn_fs_x/dag.c:529
+#: ../libsvn_fs_x/dag.c:409
msgid "Attempted to set entry in immutable node"
msgstr "Versuchte, Eintrag in einem nicht-veränderlichen Knoten zu setzen"
@@ -3314,17 +5221,17 @@ msgstr "Versuchte, nicht existierenden Unterknoten »%s« zu öffnen"
msgid "Attempted to open node with an illegal name '%s'"
msgstr "Versuchte, einen Knoten mit illegalem Namen »%s« zu öffnen"
-#: ../libsvn_fs_base/dag.c:1707
+#: ../libsvn_fs_base/dag.c:1713
#, c-format
msgid "Attempted merge tracking info change on immutable node"
msgstr "Versuchte, die Informationen zur Zusammenführungsverfolgung eines nicht-veränderlichen Knotens zu ändern"
-#: ../libsvn_fs_base/dag.c:1747
+#: ../libsvn_fs_base/dag.c:1753
#, c-format
msgid "Attempted mergeinfo count change on immutable node"
msgstr "Versuchte, die Anzahl der Zusammenführungsinformationen eines nicht-veränderlichen Knoten zu ändern"
-#: ../libsvn_fs_base/dag.c:1759
+#: ../libsvn_fs_base/dag.c:1765
#, c-format
msgid "Invalid value (%%%s) for node revision mergeinfo count"
msgstr "Ungültiger Wert (%%%s) für Knotenrevisions-Zusammenführungszähler"
@@ -3334,8 +5241,8 @@ msgstr "Ungültiger Wert (%%%s) für Knotenrevisions-Zusammenführungszähler"
msgid "Corrupt filesystem revision %ld in filesystem '%s'"
msgstr "Beschädigte Dateisystemrevision %ld in Dateisystem »%s«"
-#: ../libsvn_fs_base/err.c:57 ../libsvn_fs_fs/cached_data.c:276
-#: ../libsvn_fs_x/cached_data.c:275
+#: ../libsvn_fs_base/err.c:57 ../libsvn_fs_fs/cached_data.c:281
+#: ../libsvn_fs_x/cached_data.c:261
#, c-format
msgid "Reference to non-existent node '%s' in filesystem '%s'"
msgstr "Verweis auf einen nicht existierenden Knoten »%s« in Dateisystem »%s«"
@@ -3410,136 +5317,136 @@ msgstr "Falsche Datenbankversion: Übersetzt mit %d.%d.%d, läuft mit %d.%d.%d"
msgid "Berkeley DB error for filesystem '%s' while closing environment:\n"
msgstr "Berkeley-DB-Fehler für Dateisystem »%s« beim Schließen der Umgebung:\n"
-#: ../libsvn_fs_base/fs.c:607
+#: ../libsvn_fs_base/fs.c:614
#, c-format
msgid "Berkeley DB error for filesystem '%s' while creating environment:\n"
msgstr "Berkeley-DB-Fehler für Dateisystem »%s« beim Erzeugen der Umgebung:\n"
-#: ../libsvn_fs_base/fs.c:613
+#: ../libsvn_fs_base/fs.c:620
#, c-format
msgid "Berkeley DB error for filesystem '%s' while opening environment:\n"
msgstr "Berkeley-DB-Fehler für Dateisystem »%s« beim Öffnen der Umgebung:\n"
-#: ../libsvn_fs_base/fs.c:628
+#: ../libsvn_fs_base/fs.c:635
msgid "creating 'nodes' table"
msgstr "Erzeuge Tabelle »nodes« "
-#: ../libsvn_fs_base/fs.c:629
+#: ../libsvn_fs_base/fs.c:636
msgid "opening 'nodes' table"
msgstr "Öffne Tabelle »nodes«"
-#: ../libsvn_fs_base/fs.c:634
+#: ../libsvn_fs_base/fs.c:641
msgid "creating 'revisions' table"
msgstr "Erzeuge Tabelle »revisions«"
-#: ../libsvn_fs_base/fs.c:635
+#: ../libsvn_fs_base/fs.c:642
msgid "opening 'revisions' table"
msgstr "Öffne Tabelle »revisions«"
-#: ../libsvn_fs_base/fs.c:640
+#: ../libsvn_fs_base/fs.c:647
msgid "creating 'transactions' table"
msgstr "Erzeuge Tabelle »transactions«"
-#: ../libsvn_fs_base/fs.c:641
+#: ../libsvn_fs_base/fs.c:648
msgid "opening 'transactions' table"
msgstr "Öffne Tabelle »transactions«"
-#: ../libsvn_fs_base/fs.c:646
+#: ../libsvn_fs_base/fs.c:653
msgid "creating 'copies' table"
msgstr "Erzeuge Tabelle »copies«"
-#: ../libsvn_fs_base/fs.c:647
+#: ../libsvn_fs_base/fs.c:654
msgid "opening 'copies' table"
msgstr "Öffne Tabelle »copies«"
-#: ../libsvn_fs_base/fs.c:652
+#: ../libsvn_fs_base/fs.c:659
msgid "creating 'changes' table"
msgstr "Erzeuge Tabelle »changes«"
-#: ../libsvn_fs_base/fs.c:653
+#: ../libsvn_fs_base/fs.c:660
msgid "opening 'changes' table"
msgstr "Öffne Tabelle »changes«"
-#: ../libsvn_fs_base/fs.c:658
+#: ../libsvn_fs_base/fs.c:665
msgid "creating 'representations' table"
msgstr "Erzeuge Tabelle »representations«"
-#: ../libsvn_fs_base/fs.c:659
+#: ../libsvn_fs_base/fs.c:666
msgid "opening 'representations' table"
msgstr "Öffne Tabelle »representations«"
-#: ../libsvn_fs_base/fs.c:664
+#: ../libsvn_fs_base/fs.c:671
msgid "creating 'strings' table"
msgstr "Erzeuge Tabelle »strings«"
-#: ../libsvn_fs_base/fs.c:665
+#: ../libsvn_fs_base/fs.c:672
msgid "opening 'strings' table"
msgstr "Öffne Tabelle »strings«"
-#: ../libsvn_fs_base/fs.c:670
+#: ../libsvn_fs_base/fs.c:677
msgid "creating 'uuids' table"
msgstr "Erzeuge Tabelle »uuids«"
-#: ../libsvn_fs_base/fs.c:671
+#: ../libsvn_fs_base/fs.c:678
msgid "opening 'uuids' table"
msgstr "Öffne Tabelle »uuids«"
-#: ../libsvn_fs_base/fs.c:676
+#: ../libsvn_fs_base/fs.c:683
msgid "creating 'locks' table"
msgstr "Erzeuge Tabelle »locks«"
-#: ../libsvn_fs_base/fs.c:677
+#: ../libsvn_fs_base/fs.c:684
msgid "opening 'locks' table"
msgstr "Öffne Tabelle »locks«"
-#: ../libsvn_fs_base/fs.c:682
+#: ../libsvn_fs_base/fs.c:689
msgid "creating 'lock-tokens' table"
msgstr "Erzeuge Tabelle »lock-tokens«"
-#: ../libsvn_fs_base/fs.c:683
+#: ../libsvn_fs_base/fs.c:690
msgid "opening 'lock-tokens' table"
msgstr "Öffne Tabelle »lock-tokens«"
-#: ../libsvn_fs_base/fs.c:691
+#: ../libsvn_fs_base/fs.c:698
msgid "creating 'node-origins' table"
msgstr "Erzeuge Tabelle »node-origins«"
-#: ../libsvn_fs_base/fs.c:692
+#: ../libsvn_fs_base/fs.c:699
msgid "opening 'node-origins' table"
msgstr "Öffne Tabelle »node-origin«"
-#: ../libsvn_fs_base/fs.c:701
+#: ../libsvn_fs_base/fs.c:708
msgid "creating 'miscellaneous' table"
msgstr "Erzeuge Tabelle »miscellaneous«"
-#: ../libsvn_fs_base/fs.c:702
+#: ../libsvn_fs_base/fs.c:709
msgid "opening 'miscellaneous' table"
msgstr "Öffne Tabelle »miscellaneous«"
-#: ../libsvn_fs_base/fs.c:711
+#: ../libsvn_fs_base/fs.c:718
msgid "creating 'checksum-reps' table"
msgstr "Erzeuge Tabelle »checksum-reps«"
-#: ../libsvn_fs_base/fs.c:712
+#: ../libsvn_fs_base/fs.c:719
msgid "opening 'checksum-reps' table"
msgstr "Öffne Tabelle »checksum-reps«"
-#: ../libsvn_fs_base/fs.c:802
+#: ../libsvn_fs_base/fs.c:810
#, c-format
msgid "The '%s' feature requires version %d of the filesystem schema; filesystem '%s' uses only version %d"
msgstr "Das Merkmal »%s« erfordert Version %d des Dateisystemschemas; Dateisystem »%s« verwendet nur Version %d"
-#: ../libsvn_fs_base/fs.c:821
+#: ../libsvn_fs_base/fs.c:829
#, c-format
msgid "Expected FS format '%d'; found format '%d'"
msgstr "Erwartetes Dateisystemformat »%d«; gefunden »%d«"
-#: ../libsvn_fs_base/fs.c:1309
+#: ../libsvn_fs_base/fs.c:1319
#, c-format
msgid "BDB repositories do not support incremental hotcopy"
msgstr "BDB-Projektarchive unterstützen inkrementelle Kopien im laufenden Betrieb nicht"
-#: ../libsvn_fs_base/fs.c:1413
+#: ../libsvn_fs_base/fs.c:1423
msgid ""
"Error copying logfile; the DB_LOG_AUTOREMOVE feature\n"
"may be interfering with the hotcopy algorithm. If\n"
@@ -3550,7 +5457,7 @@ msgstr ""
"könnte den Hotcopy-Algorithmus stören. Falls das Problem weiterhin\n"
"besteht, versuchen Sie diese Funktion in DB_CONFIG abzuschalten"
-#: ../libsvn_fs_base/fs.c:1432
+#: ../libsvn_fs_base/fs.c:1442
msgid ""
"Error running catastrophic recovery on hotcopy; the\n"
"DB_LOG_AUTOREMOVE feature may be interfering with the\n"
@@ -3562,37 +5469,37 @@ msgstr ""
"könnte den Hotcopy-Algorithmus stören. Wenn das Problem weiterhin\n"
"besteht, versuchen Sie diese Funktion in DB_CONFIG abzuschalten"
-#: ../libsvn_fs_base/fs.c:1477
+#: ../libsvn_fs_base/fs.c:1487
msgid "Module for working with a Berkeley DB repository."
msgstr "Modul zum Zugriff auf ein Berkeley-DB-Projektarchiv."
-#: ../libsvn_fs_base/fs.c:1527
+#: ../libsvn_fs_base/fs.c:1537
#, c-format
msgid "Unsupported FS loader version (%d) for bdb"
msgstr "Nicht unterstützte Dateisystem-Laderversion (%d) für bdb"
#: ../libsvn_fs_base/lock.c:122 ../libsvn_fs_base/lock.c:127
#: ../libsvn_fs_fs/lock.c:740 ../libsvn_fs_fs/lock.c:745
-#: ../libsvn_fs_fs/lock.c:775 ../libsvn_fs_x/lock.c:780
-#: ../libsvn_fs_x/lock.c:785 ../libsvn_fs_x/lock.c:815
+#: ../libsvn_fs_fs/lock.c:775 ../libsvn_fs_x/lock.c:760
+#: ../libsvn_fs_x/lock.c:765 ../libsvn_fs_x/lock.c:795
#, c-format
msgid "Path '%s' doesn't exist in HEAD revision"
msgstr "Pfad »%s« existiert nicht in HEAD-Revision"
#: ../libsvn_fs_base/lock.c:616 ../libsvn_fs_fs/lock.c:613
-#: ../libsvn_fs_x/lock.c:680
+#: ../libsvn_fs_x/lock.c:631
#, c-format
msgid "Cannot verify lock on path '%s'; no username available"
msgstr "Kann Sperre für Pfad »%s« nicht prüfen; keine Benutzername verfügbar"
#: ../libsvn_fs_base/lock.c:622 ../libsvn_fs_fs/lock.c:619
-#: ../libsvn_fs_x/lock.c:686
+#: ../libsvn_fs_x/lock.c:637
#, c-format
msgid "User '%s' does not own lock on path '%s' (currently locked by '%s')"
msgstr "Benutzer »%s« besitzt die Sperre für Pfad »%s« nicht (derzeit gesperrt durch »%s«)"
#: ../libsvn_fs_base/lock.c:628 ../libsvn_fs_fs/lock.c:625
-#: ../libsvn_fs_x/lock.c:692
+#: ../libsvn_fs_x/lock.c:643
#, c-format
msgid "Cannot verify lock on path '%s'; no matching lock-token available"
msgstr "Kann Sperre für Pfad »%s« nicht prüfen; keine entsprechende Sperrmarke verfügbar"
@@ -3680,13 +5587,13 @@ msgstr "Transaktion ist nicht tot: »%s«"
msgid "Transaction is dead: '%s'"
msgstr "Transaktion ist tot: »%s«"
-#: ../libsvn_fs_base/revs-txns.c:272 ../libsvn_fs_fs/fs_fs.c:2115
-#: ../libsvn_fs_x/fs_x.c:1153
+#: ../libsvn_fs_base/revs-txns.c:277 ../libsvn_fs_fs/fs_fs.c:2247
+#: ../libsvn_fs_x/fs_x.c:1210
#, c-format
msgid "revprop '%s' has unexpected value in filesystem"
msgstr "Revisionseigenschaft »%s« hat einen unerwarteten Wert im Dateisystem"
-#: ../libsvn_fs_base/revs-txns.c:1053
+#: ../libsvn_fs_base/revs-txns.c:1065
msgid "Transaction aborted, but cleanup failed"
msgstr "Transaktion abgebrochen, aber Aufräumen schlug fehl"
@@ -3702,122 +5609,135 @@ msgstr "Breche Berkeley DB Transaktion ab"
msgid "committing Berkeley DB transaction"
msgstr "Schließe Berkeley DB Transaktion ab"
-#: ../libsvn_fs_base/tree.c:773 ../libsvn_fs_fs/tree.c:1104
-#: ../libsvn_fs_x/tree.c:1090
+#: ../libsvn_fs_base/tree.c:774
#, c-format
msgid "Failure opening '%s'"
msgstr "Fehler beim Öffnen von »%s«"
-#: ../libsvn_fs_base/tree.c:1445 ../libsvn_fs_fs/tree.c:1630
-#: ../libsvn_fs_x/tree.c:1626
+#: ../libsvn_fs_base/tree.c:1461 ../libsvn_fs_fs/tree.c:1693
+#: ../libsvn_fs_x/tree.c:602
msgid "Cannot compare property value between two different filesystems"
msgstr "Kann Eigenschaftswert nicht zwischen verschiedenen Dateisystemen vergleichen"
-#: ../libsvn_fs_base/tree.c:1911 ../libsvn_fs_base/tree.c:1981
+#: ../libsvn_fs_base/tree.c:1927 ../libsvn_fs_base/tree.c:1997
msgid "Corrupt DB: faulty predecessor count"
msgstr "DB beschädigt: Fehlerhafte Vorgängeranzahl"
-#: ../libsvn_fs_base/tree.c:2038
+#: ../libsvn_fs_base/tree.c:2054
#, c-format
msgid "Unexpected immutable node at '%s'"
msgstr "Unerwarteter unveränderlicher Knoten bei »%s«"
-#: ../libsvn_fs_base/tree.c:2059 ../libsvn_fs_fs/tree.c:1660
-#: ../libsvn_fs_x/tree.c:1659 ../libsvn_repos/commit.c:1305
+#: ../libsvn_fs_base/tree.c:2075 ../libsvn_fs_fs/tree.c:1723
+#: ../libsvn_fs_x/tree.c:638 ../libsvn_repos/commit.c:1303
#, c-format
msgid "Conflict at '%s'"
msgstr "Konflikt bei »%s«"
-#: ../libsvn_fs_base/tree.c:2112 ../libsvn_fs_base/tree.c:2864
-#: ../libsvn_fs_fs/tree.c:1758 ../libsvn_fs_fs/tree.c:2312
-#: ../libsvn_fs_x/tree.c:1772 ../libsvn_fs_x/tree.c:2315
+#: ../libsvn_fs_base/tree.c:2128 ../libsvn_fs_base/tree.c:2892
+#: ../libsvn_fs_fs/tree.c:1821 ../libsvn_fs_fs/tree.c:2375
+#: ../libsvn_fs_x/tree.c:759 ../libsvn_fs_x/tree.c:1292
msgid "Bad merge; ancestor, source, and target not all in same fs"
msgstr "Fehlerhaftes Zusammenführen: Vorgänger, Quelle und Ziel nicht im gleichen Dateisystem"
-#: ../libsvn_fs_base/tree.c:2128 ../libsvn_fs_fs/tree.c:1774
-#: ../libsvn_fs_x/tree.c:1788
+#: ../libsvn_fs_base/tree.c:2144 ../libsvn_fs_fs/tree.c:1837
+#: ../libsvn_fs_x/tree.c:775
#, c-format
msgid "Bad merge; target '%s' has id '%s', same as ancestor"
msgstr "Fehlerhaftes Zusammenführen: Ziel »%s« hat die gleiche ID »%s« wie der Vorgänger."
-#: ../libsvn_fs_base/tree.c:2672
+#: ../libsvn_fs_base/tree.c:2687
#, c-format
msgid "Transaction '%s' out-of-date with respect to revision '%s'"
msgstr "Transaktion »%s« ist in Bezug auf Revision »%s« veraltet"
-#: ../libsvn_fs_base/tree.c:2948
+#: ../libsvn_fs_base/tree.c:2976
#, c-format
msgid "Cannot deltify revisions prior to r%ld"
msgstr "Die Erstellung von Deltas für Revisionen vor r%ld ist nicht möglich"
-#: ../libsvn_fs_base/tree.c:3066 ../libsvn_fs_fs/tree.c:2494
-#: ../libsvn_fs_x/tree.c:2502
+#: ../libsvn_fs_base/tree.c:3094 ../libsvn_fs_fs/tree.c:2557
+#: ../libsvn_fs_x/tree.c:1478
msgid "The root directory cannot be deleted"
msgstr "Das Basisverzeichnis kann nicht gelöscht werden"
-#: ../libsvn_fs_base/tree.c:3280 ../libsvn_fs_fs/tree.c:2564
-#: ../libsvn_fs_x/tree.c:2576
+#: ../libsvn_fs_base/tree.c:3308 ../libsvn_fs_fs/tree.c:2627
+#: ../libsvn_fs_x/tree.c:1548
#, c-format
msgid "Cannot copy between two different filesystems ('%s' and '%s')"
msgstr "Kann nicht zwischen zwei verschiedenen Dateisystemen (»%s« und »%s«) kopieren"
-#: ../libsvn_fs_base/tree.c:3289 ../libsvn_fs_fs/tree.c:2571
-#: ../libsvn_fs_x/tree.c:2583
+#: ../libsvn_fs_base/tree.c:3317 ../libsvn_fs_fs/tree.c:2634
+#: ../libsvn_fs_x/tree.c:1555
msgid "Copy from mutable tree not currently supported"
msgstr "Kopieren eines veränderlichen Baumes wird derzeit nicht unterstützt"
-#: ../libsvn_fs_base/tree.c:3799 ../libsvn_fs_fs/tree.c:2966
-#: ../libsvn_fs_x/tree.c:2991
+#: ../libsvn_fs_base/tree.c:3827 ../libsvn_fs_fs/tree.c:3029
+#: ../libsvn_fs_x/tree.c:1964
#, c-format
msgid "Base checksum mismatch on '%s'"
msgstr "Basis-Prüfsummenfehler bei »%s«"
-#: ../libsvn_fs_base/tree.c:4075 ../libsvn_fs_fs/tree.c:3176
-#: ../libsvn_fs_x/tree.c:3210
+#: ../libsvn_fs_base/tree.c:4103 ../libsvn_fs_fs/tree.c:3239
+#: ../libsvn_fs_x/tree.c:2182
msgid "Cannot compare file contents between two different filesystems"
msgstr "Kann Dateiinhalte nicht zwischen verschiedenen Dateisystemen vergleichen"
-#: ../libsvn_fs_base/tree.c:5124 ../libsvn_fs_base/tree.c:5299
+#: ../libsvn_fs_base/tree.c:5152 ../libsvn_fs_base/tree.c:5331
#, c-format
msgid "Node-revision '%s' claims to have mergeinfo but doesn't"
msgstr "Knotenrevision »%s« behauptet, Zusammenführungsinformationen zu haben, hat aber keine"
-#: ../libsvn_fs_base/tree.c:5160
+#: ../libsvn_fs_base/tree.c:5190
#, c-format
msgid "Node-revision '%s' claims to sit atop a tree containing mergeinfo but is not a directory"
msgstr "Knotenrevision »%s« behauptet, über einem Baum, der Zusammenführungsinformationen enthält, zu sitzen, ist aber kein Verzeichnis"
-#: ../libsvn_fs_fs/cached_data.c:709 ../libsvn_fs_x/cached_data.c:582
+#: ../libsvn_fs_fs/cached_data.c:819 ../libsvn_fs_x/cached_data.c:538
msgid "Malformed svndiff data in representation"
msgstr "Fehlerhafte svndiff-Daten in Darstellung"
-#: ../libsvn_fs_fs/cached_data.c:956 ../libsvn_fs_x/cached_data.c:842
+#: ../libsvn_fs_fs/cached_data.c:1064 ../libsvn_fs_x/cached_data.c:799
#, c-format
msgid "No representation found at offset %s for item %s in revision %ld"
msgstr "Keine Darstellung gefunden bei Offset %s für Element %s in Revision %ld"
-#: ../libsvn_fs_fs/cached_data.c:1522 ../libsvn_fs_fs/cached_data.c:1535
-#: ../libsvn_fs_fs/cached_data.c:2930 ../libsvn_fs_x/cached_data.c:1424
-#: ../libsvn_fs_x/cached_data.c:1437 ../libsvn_fs_x/cached_data.c:1713
+#: ../libsvn_fs_fs/cached_data.c:1612 ../libsvn_fs_fs/cached_data.c:1625
+#: ../libsvn_fs_fs/cached_data.c:3335 ../libsvn_fs_x/cached_data.c:1356
+#: ../libsvn_fs_x/cached_data.c:1370 ../libsvn_fs_x/cached_data.c:1645
msgid "Reading one svndiff window read beyond the end of the representation"
msgstr "Lesen eines svndiff-Fensters las über Ende der Darstellung hinaus"
-#: ../libsvn_fs_fs/cached_data.c:1642 ../libsvn_fs_x/cached_data.c:1565
+#: ../libsvn_fs_fs/cached_data.c:1754 ../libsvn_fs_x/cached_data.c:1496
msgid "svndiff window length is corrupt"
msgstr "Svndiff Fensterlänge ist beschädigt"
-#: ../libsvn_fs_fs/cached_data.c:2038 ../libsvn_fs_x/cached_data.c:2143
+#: ../libsvn_fs_fs/cached_data.c:2175 ../libsvn_fs_x/cached_data.c:2095
msgid "Checksum mismatch while reading representation"
msgstr "Prüfsummenfehler beim Lesen der Darstellung"
-#: ../libsvn_fs_fs/cached_data.c:2389 ../libsvn_fs_fs/cached_data.c:2403
-#: ../libsvn_fs_fs/cached_data.c:2410 ../libsvn_fs_x/cached_data.c:2508
-#: ../libsvn_fs_x/cached_data.c:2522 ../libsvn_fs_x/cached_data.c:2529
+#: ../libsvn_fs_fs/cached_data.c:2594
+#, fuzzy, c-format
+msgid "Directory representation corrupt in '%s'"
+msgstr "Verzeichniseintrag beschädigt in »%s«"
+
+#: ../libsvn_fs_fs/cached_data.c:2624 ../libsvn_fs_fs/cached_data.c:2638
+#: ../libsvn_fs_fs/cached_data.c:2645
#, c-format
msgid "Directory entry corrupt in '%s'"
msgstr "Verzeichniseintrag beschädigt in »%s«"
-#: ../libsvn_fs_fs/cached_data.c:3111
+#: ../libsvn_fs_fs/cached_data.c:2969
+#, fuzzy, c-format
+msgid "malformed property list for node-revision '%s' in '%s'"
+msgstr "Fehlerhafte »copyroot«-Zeile in Knotenrevision »%s«"
+
+#: ../libsvn_fs_fs/cached_data.c:3002
+#, fuzzy, c-format
+msgid "malformed property list for node-revision '%s'"
+msgstr "Fehlerhafte »copyroot«-Zeile in Knotenrevision »%s«"
+
+#: ../libsvn_fs_fs/cached_data.c:3514
#, c-format
msgid ""
"Low-level checksum mismatch while reading\n"
@@ -3827,27 +5747,27 @@ msgstr ""
"%s Byte von Metadaten bei Offset %s für Element »%s« in Revision »%ld«"
#: ../libsvn_fs_fs/dag.c:431 ../libsvn_fs_fs/dag.c:448
-#: ../libsvn_fs_x/dag.c:377 ../libsvn_fs_x/dag.c:504
-#: ../libsvn_ra_serf/stat.c:606
+#: ../libsvn_fs_x/dag.c:257 ../libsvn_fs_x/dag.c:384
+#: ../libsvn_ra_serf/stat.c:553
msgid "Can't get entries of non-directory"
msgstr "Kann keine Einträge aus einem nicht-Verzeichnis lesen"
-#: ../libsvn_fs_fs/dag.c:557 ../libsvn_fs_x/dag.c:613
+#: ../libsvn_fs_fs/dag.c:591 ../libsvn_fs_x/dag.c:497
#, c-format
msgid "Can't increment mergeinfo count on node-revision %%s to negative value %%%s"
msgstr "Kann Zusammenführungsinformationszähler für Knotenrevision %%s nicht auf negativen Wert %%%s erhöhen"
# FIXME: node-revision or node-rev (wie überall)?
-#: ../libsvn_fs_fs/dag.c:568 ../libsvn_fs_x/dag.c:624
+#: ../libsvn_fs_fs/dag.c:602 ../libsvn_fs_x/dag.c:509
#, c-format
msgid "Can't increment mergeinfo count on *file* node-revision %%s to %%%s (> 1)"
msgstr "Kann Zusammenführungsinformationszähler für Datei-Knotenrevision %%s nicht auf %%%s (> 1) erhöhen"
-#: ../libsvn_fs_fs/dag.c:1157 ../libsvn_fs_x/dag.c:1165
+#: ../libsvn_fs_fs/dag.c:1190
msgid "Empty noderev in cache"
msgstr "Leere Knotenrevision im Zwischenspeicher"
-#: ../libsvn_fs_fs/dag.c:1361 ../libsvn_fs_x/dag.c:1357
+#: ../libsvn_fs_fs/dag.c:1417 ../libsvn_fs_x/dag.c:1076
#, c-format
msgid "Attempted to update ancestry of non-mutable node"
msgstr "Versuchte, die Herkunft eines unveränderlichen Knotens zu ändern"
@@ -3862,11 +5782,11 @@ msgstr "Kann gemeinsame FSFS-Daten nicht holen"
msgid "Can't store FSFS shared data"
msgstr "Kann gemeinsame FSFS-Daten nicht speichern"
-#: ../libsvn_fs_fs/fs.c:545
+#: ../libsvn_fs_fs/fs.c:562
msgid "Module for working with a plain file (FSFS) repository."
msgstr "Modul zum Zugriff auf ein dateibasiertes (FSFS) Projektarchiv."
-#: ../libsvn_fs_fs/fs.c:607
+#: ../libsvn_fs_fs/fs.c:624
#, c-format
msgid "Unsupported FS loader version (%d) for fsfs"
msgstr "Nicht unterstützte Dateisystem-Laderversion (%d) für fsfs"
@@ -3876,86 +5796,105 @@ msgstr "Nicht unterstützte Dateisystem-Laderversion (%d) für fsfs"
msgid "Found format '%d', only created by unreleased dev builds; see http://subversion.apache.org/docs/release-notes/1.7#revprop-packing"
msgstr "Format »%d« gefunden, das nur durch nicht veröffentlichte Entwicklungsversionen erstellt wurde; siehe http://subversion.apache.org/docs/release-notes/1.7#revprop-packing"
-#: ../libsvn_fs_fs/fs_fs.c:455 ../libsvn_fs_x/fs_x.c:103
+#: ../libsvn_fs_fs/fs_fs.c:455
#, c-format
msgid "Expected FS format between '1' and '%d'; found format '%d'"
msgstr "Erwartete Dateisystemformat zwischen 1 und %d; fand %d"
-#: ../libsvn_fs_fs/fs_fs.c:506 ../libsvn_fs_x/fs_x.c:128
+#: ../libsvn_fs_fs/fs_fs.c:507 ../libsvn_fs_x/fs_x.c:143
#, c-format
msgid "Can't read first line of format file '%s'"
msgstr "Die erste Zeile der Formatdatei »%s« kann nicht gelesen werden"
-#: ../libsvn_fs_fs/fs_fs.c:563 ../libsvn_fs_x/fs_x.c:150
+#: ../libsvn_fs_fs/fs_fs.c:564 ../libsvn_fs_x/fs_x.c:165
#, c-format
msgid "'%s' contains invalid filesystem format option '%s'"
msgstr "»%s« enthält eine ungültige Dateisystemformat-Option »%s«"
-#: ../libsvn_fs_fs/fs_fs.c:573
+#: ../libsvn_fs_fs/fs_fs.c:574
#, c-format
msgid "'%s' specifies logical addressing for a non-sharded repository"
msgstr "»%s« bestimmt logische Adressierung für ein nicht fragmentiertes Projektarchiv"
-#: ../libsvn_fs_fs/fs_fs.c:655 ../libsvn_fs_x/fs_x.c:209
+#: ../libsvn_fs_fs/fs_fs.c:657 ../libsvn_fs_x/fs_x.c:225
#, c-format
msgid "%s is too small for fsfs.conf setting '%s'."
msgstr "»%s« ist zu klein für die Einstellung »%s« in fsfs.conf."
-#: ../libsvn_fs_fs/fs_fs.c:663 ../libsvn_fs_x/fs_x.c:217
+#: ../libsvn_fs_fs/fs_fs.c:665 ../libsvn_fs_x/fs_x.c:233
#, c-format
msgid "%s is too large for fsfs.conf setting '%s'."
msgstr "»%s« ist zu groß für die Einstellung »%s« in fsfs.conf."
-#: ../libsvn_fs_fs/fs_fs.c:674 ../libsvn_fs_x/fs_x.c:228
+#: ../libsvn_fs_fs/fs_fs.c:676 ../libsvn_fs_x/fs_x.c:244
#, c-format
msgid "%s is invalid for fsfs.conf setting '%s' because it is not a power of 2."
msgstr "»%s« ist ungültig für die Einstellung »%s« in fsfs.conf, da es keine Zweierpotenz ist."
-#: ../libsvn_fs_fs/fs_fs.c:1186
+#: ../libsvn_fs_fs/fs_fs.c:732
+#, fuzzy, c-format
+msgid "Invalid 'compression' value '%s' in the config"
+msgstr "Ungültige Komprimierungsmethode"
+
+#: ../libsvn_fs_fs/fs_fs.c:878
+#, fuzzy
+msgid "The 'compression' and 'compression-level' config options are mutually exclusive"
+msgstr "»quiet« und »diff« schließen sich gegenseitig aus"
+
+#: ../libsvn_fs_fs/fs_fs.c:890
+msgid "Compression type 'lz4' requires filesystem format 8 or higher"
+msgstr ""
+
+#: ../libsvn_fs_fs/fs_fs.c:1323
#, c-format
msgid "'%s' is not a regular file. Please move it out of the way and try again"
msgstr "»%s« ist keine reguläre Datei. Bitte aus dem Weg bewegen und noch einmal versuchen."
-#: ../libsvn_fs_fs/fs_fs.c:1351 ../libsvn_fs_x/fs_x.c:675
+#: ../libsvn_fs_fs/fs_fs.c:1491 ../libsvn_fs_x/fs_x.c:709
#, c-format
msgid "Invalid revision number '%ld'"
msgstr "Ungültige Revisionsnummer »%ld«"
-#: ../libsvn_fs_fs/fs_fs.c:1812
+#: ../libsvn_fs_fs/fs_fs.c:1932
msgid "FSFS is not compatible with Subversion prior to 1.1"
msgstr "FSFS ist nicht kompatibel mit Subversion älter als 1.1"
-#: ../libsvn_fs_fs/fs_fs.c:2014
+#: ../libsvn_fs_fs/fs_fs.c:2071
+#, fuzzy, c-format
+msgid "malformed node origin data in '%s'"
+msgstr "Fehlerhafte Zeichenkette für Knotenrevisions-ID."
+
+#: ../libsvn_fs_fs/fs_fs.c:2139
#, c-format
msgid "Node origin for '%s' exists with a different value (%s) than what we were about to store (%s)"
msgstr "Knotenursprung für »%s« existiert mit einem anderen Wert (%s) als der, der gespeichert werden soll (%s)"
#: ../libsvn_fs_fs/hotcopy.c:107 ../libsvn_fs_x/hotcopy.c:108
-#: ../libsvn_subr/io.c:270
+#: ../libsvn_subr/io.c:293
#, c-format
msgid "Error converting entry in directory '%s' to UTF-8"
msgstr "Fehler beim Konvertieren eines Eintrags im Verzeichnis »%s« nach UTF-8"
#: ../libsvn_fs_fs/hotcopy.c:147 ../libsvn_fs_x/hotcopy.c:148
-#: ../libsvn_subr/io.c:1063
+#: ../libsvn_subr/io.c:1084
#, c-format
msgid "Source '%s' is not a directory"
msgstr "Quelle »%s« ist kein Verzeichnis"
#: ../libsvn_fs_fs/hotcopy.c:153 ../libsvn_fs_x/hotcopy.c:154
-#: ../libsvn_subr/io.c:1069
+#: ../libsvn_subr/io.c:1090
#, c-format
msgid "Destination '%s' is not a directory"
msgstr "Ziel »%s« ist kein Verzeichnis"
#: ../libsvn_fs_fs/hotcopy.c:226 ../libsvn_fs_x/hotcopy.c:228
-#: ../libsvn_subr/io.c:1146 ../libsvn_subr/io.c:2701
+#: ../libsvn_subr/io.c:1167 ../libsvn_subr/io.c:2863
#, c-format
msgid "Can't read directory '%s'"
msgstr "Kann Verzeichnis »%s« nicht lesen"
#: ../libsvn_fs_fs/hotcopy.c:231 ../libsvn_fs_x/hotcopy.c:233
-#: ../libsvn_subr/io.c:1151 ../libsvn_subr/io.c:2706 ../libsvn_subr/io.c:4402
+#: ../libsvn_subr/io.c:1172 ../libsvn_subr/io.c:2868 ../libsvn_subr/io.c:4654
#, c-format
msgid "Error closing directory '%s'"
msgstr "Fehler beim Schließen des Verzeichnisses »%s«"
@@ -3965,15 +5904,15 @@ msgstr "Fehler beim Schließen des Verzeichnisses »%s«"
msgid "The FSFS format (%d) of the hotcopy source does not match the FSFS format (%d) of the hotcopy destination; please upgrade both repositories to the same format"
msgstr "Das FSFS-Format (%d) der Quelle für die Kopie im laufenden Betrieb entspricht nicht dem FSFS-Format (%d) des Ziels; Verwenden Sie auf beiden Seiten das gleiche Format"
-#: ../libsvn_fs_fs/hotcopy.c:499 ../libsvn_fs_x/hotcopy.c:495
+#: ../libsvn_fs_fs/hotcopy.c:499 ../libsvn_fs_x/hotcopy.c:363
msgid "The UUID of the hotcopy source does not match the UUID of the hotcopy destination"
msgstr "Die UUID der Quelle für die Kopie im laufenden Betrieb entspricht nicht der UUID des Ziels"
-#: ../libsvn_fs_fs/hotcopy.c:506 ../libsvn_fs_x/hotcopy.c:502
+#: ../libsvn_fs_fs/hotcopy.c:506 ../libsvn_fs_x/hotcopy.c:370
msgid "The sharding layout configuration of the hotcopy source does not match the sharding layout configuration of the hotcopy destination"
msgstr "Die Einstellungen zur Fragmentierung der Quelle der Kopie im laufenden Betrieb entspricht nicht den Einstellungen zur Fragmentierung des Ziels"
-#: ../libsvn_fs_fs/hotcopy.c:581 ../libsvn_fs_x/hotcopy.c:575
+#: ../libsvn_fs_fs/hotcopy.c:581 ../libsvn_fs_x/hotcopy.c:418
#, c-format
msgid "The hotcopy destination already contains more packed revisions (%lu) than the hotcopy source contains (%lu)"
msgstr "Das Ziel der Kopie im laufenden Betrieb enthält bereits mehr gepackte Revisionen (%lu) als die Quelle (%lu)"
@@ -3983,27 +5922,27 @@ msgstr "Das Ziel der Kopie im laufenden Betrieb enthält bereits mehr gepackte R
msgid "Failed to create hotcopy at '%s'. The file '%s' is missing from the source repository. Please create this file, for instance by running 'svnadmin upgrade %s'"
msgstr "Erstellen der hotcopy auf »%s« fehlgeschlagen. Die Datei »%s« fehlt im Quellprojektarchiv. Bitte diese Datei erstellen, z.B. durch die Ausführung von »svnadmin upgrade %s«"
-#: ../libsvn_fs_fs/hotcopy.c:903 ../libsvn_fs_x/hotcopy.c:786
+#: ../libsvn_fs_fs/hotcopy.c:903 ../libsvn_fs_x/hotcopy.c:610
#, c-format
msgid "The hotcopy destination already contains more revisions (%lu) than the hotcopy source contains (%lu); are source and destination swapped?"
msgstr "Das Ziel der Kopie im laufenden Betrieb enthält bereits mehr Revisionen (%lu) als die Quelle (%lu); Wurden Quelle und Ziel vertauscht?"
-#: ../libsvn_fs_fs/index.c:288
+#: ../libsvn_fs_fs/index.c:289
#, c-format
msgid "Can't read index file '%s' at offset 0x%s"
msgstr "Kann Indexdatei »%s« bei Offset 0x%s nicht lesen"
-#: ../libsvn_fs_fs/index.c:298
+#: ../libsvn_fs_fs/index.c:299
#, c-format
msgid "Unexpected end of index file %s at offset 0x%s"
msgstr "Unerwartetes Ende der Indexdatei %s bei Offset 0x%s"
-#: ../libsvn_fs_fs/index.c:333 ../libsvn_fs_x/index.c:339
+#: ../libsvn_fs_fs/index.c:334 ../libsvn_fs_x/index.c:334
#, c-format
msgid "Corrupt index: number too large"
msgstr "Index beschädigt: Zahl ist zu groß"
-#: ../libsvn_fs_fs/index.c:376 ../libsvn_fs_x/index.c:382
+#: ../libsvn_fs_fs/index.c:377 ../libsvn_fs_x/index.c:372
#, c-format
msgid ""
"Index stream header prefix mismatch.\n"
@@ -4012,174 +5951,179 @@ msgstr ""
"Fehler im Präfix der Kopfdaten des Indexstroms.\n"
" erwartet: %s tatsächlich: %s"
-#: ../libsvn_fs_fs/index.c:603 ../libsvn_fs_x/index.c:561
+#: ../libsvn_fs_fs/index.c:604 ../libsvn_fs_x/index.c:551
#, c-format
msgid "UINT32 0x%s too large, max = 0x%s"
msgstr "UINT32 0x%s ist zu groß, max. 0x%s"
-#: ../libsvn_fs_fs/index.c:635 ../libsvn_fs_x/index.c:593
+#: ../libsvn_fs_fs/index.c:636 ../libsvn_fs_x/index.c:583
#, c-format
msgid "File offset 0x%s too large, max = 0x%s"
msgstr "Dateioffset 0x%s ist zu groß, max. 0x%s"
-#: ../libsvn_fs_fs/index.c:809 ../libsvn_fs_x/index.c:942
+#: ../libsvn_fs_fs/index.c:810 ../libsvn_fs_x/index.c:936
#, c-format
msgid "L2P index page size %s exceeds current limit of 2G entries"
msgstr "Seitengröße %s des L2P-Index überschreitet die gegenwärtige Grenze von 2G Einträgen"
-#: ../libsvn_fs_fs/index.c:870 ../libsvn_fs_x/index.c:1005
+#: ../libsvn_fs_fs/index.c:871 ../libsvn_fs_x/index.c:999
#, c-format
msgid "Item index %s too large in l2p proto index for revision %ld"
msgstr "Elementindex %s zu groß in l2p-Proto-Index für Revision %ld"
-#: ../libsvn_fs_fs/index.c:891 ../libsvn_fs_x/index.c:1029
+#: ../libsvn_fs_fs/index.c:892 ../libsvn_fs_x/index.c:1023
#, c-format
msgid "L2P index page count %d exceeds current limit of 2G pages"
msgstr "Seitenanzahl %d des L2P-Index überschreitet die gegenwärtige Grenze von 2G Seiten"
-#: ../libsvn_fs_fs/index.c:994 ../libsvn_fs_fs/index.c:2197
-#: ../libsvn_fs_x/index.c:1296 ../libsvn_fs_x/index.c:2542
+#: ../libsvn_fs_fs/index.c:995 ../libsvn_fs_fs/index.c:2198
+#: ../libsvn_fs_x/index.c:1272 ../libsvn_fs_x/index.c:2489
msgid "Index rev / pack file revision numbers do not match"
msgstr "Revisionsnummern in der REV/PACK Dateien des Index stimmen nicht überein"
-#: ../libsvn_fs_fs/index.c:1000 ../libsvn_fs_x/index.c:1309
+#: ../libsvn_fs_fs/index.c:1001 ../libsvn_fs_x/index.c:1285
msgid "L2P index page size is not a power of two"
msgstr "Seitengröße des L2P-Index ist keine Zweierpotenz"
-#: ../libsvn_fs_fs/index.c:1007 ../libsvn_fs_x/index.c:1303
+#: ../libsvn_fs_fs/index.c:1008 ../libsvn_fs_x/index.c:1279
msgid "Invalid number of revisions in L2P index"
msgstr "Ungültige Anzahl von Revisionen im L2P-Index"
-#: ../libsvn_fs_fs/index.c:1013 ../libsvn_fs_x/index.c:1315
+#: ../libsvn_fs_fs/index.c:1014 ../libsvn_fs_x/index.c:1291
msgid "Fewer L2P index pages than revisions"
msgstr "Weniger Seiten im L2P-Index als Revisionen"
-#: ../libsvn_fs_fs/index.c:1016 ../libsvn_fs_x/index.c:1318
+#: ../libsvn_fs_fs/index.c:1017 ../libsvn_fs_x/index.c:1294
msgid "L2P index page count implausibly large"
msgstr "Anzahl der Seiten im L2P-Index ist unplausibel groß"
-#: ../libsvn_fs_fs/index.c:1021 ../libsvn_fs_x/index.c:1323
+#: ../libsvn_fs_fs/index.c:1022 ../libsvn_fs_x/index.c:1299
#, c-format
msgid "Corrupt L2P index for r%ld only covers r%ld:%ld"
msgstr "Beschädigter L2P-Index für r%ld deckt nur r%ld:%ld ab"
-#: ../libsvn_fs_fs/index.c:1040 ../libsvn_fs_x/index.c:1343
+#: ../libsvn_fs_fs/index.c:1041 ../libsvn_fs_x/index.c:1318
msgid "Revision with no L2P index pages"
msgstr "Revision ohne Seiten im L2P-Index"
-#: ../libsvn_fs_fs/index.c:1045 ../libsvn_fs_x/index.c:1348
+#: ../libsvn_fs_fs/index.c:1046 ../libsvn_fs_x/index.c:1323
msgid "L2P page table exceeded"
msgstr "Größenüberschreitung der Seitentablelle des L2P-Index"
-#: ../libsvn_fs_fs/index.c:1052 ../libsvn_fs_x/index.c:1355
+#: ../libsvn_fs_fs/index.c:1053 ../libsvn_fs_x/index.c:1330
msgid "Revisions do not cover the full L2P index page table"
msgstr "Revisionen decken nicht die gesamte Seitentabelle im L2P-Indexab"
-#: ../libsvn_fs_fs/index.c:1060 ../libsvn_fs_x/index.c:1363
+#: ../libsvn_fs_fs/index.c:1061 ../libsvn_fs_x/index.c:1338
msgid "Empty L2P index page"
msgstr "Leere Seite im L2P-Index"
-#: ../libsvn_fs_fs/index.c:1066 ../libsvn_fs_x/index.c:1369
+#: ../libsvn_fs_fs/index.c:1067 ../libsvn_fs_x/index.c:1344
msgid "Page exceeds L2P index page size"
msgstr "Seite überschreitet Seitengröße im L2P-Index"
-#: ../libsvn_fs_fs/index.c:1125 ../libsvn_fs_x/index.c:1124
+#: ../libsvn_fs_fs/index.c:1126 ../libsvn_fs_x/index.c:1119
#, c-format
msgid "Revision %ld not covered by item index"
msgstr "Revision %ld nicht vom Elementindex abgedeckt"
-#: ../libsvn_fs_fs/index.c:1151 ../libsvn_fs_x/index.c:1150
+#: ../libsvn_fs_fs/index.c:1152 ../libsvn_fs_x/index.c:1145
#, c-format
msgid "Item index %s exceeds l2p limit of %s for revision %ld"
msgstr "Elementindex %s überschreitet l2p-Grenze von %s für Revision %ld"
-#: ../libsvn_fs_fs/index.c:1358 ../libsvn_fs_x/index.c:1527
+#: ../libsvn_fs_fs/index.c:1359 ../libsvn_fs_x/index.c:1501
msgid "L2P actual page size does not match page table value."
msgstr "Tatsächliche Seitengröße im L2P-Index stimmt nicht mit dem Wert in der Seitentabelle überein."
-#: ../libsvn_fs_fs/index.c:1491 ../libsvn_fs_x/index.c:1571
+#: ../libsvn_fs_fs/index.c:1492 ../libsvn_fs_x/index.c:1545
#, c-format
msgid "Item index %s too large in revision %ld"
msgstr "Elementindex %s ist zu groß in Revision %ld"
-#: ../libsvn_fs_fs/index.c:1910 ../libsvn_fs_x/index.c:2148
+#: ../libsvn_fs_fs/index.c:1911 ../libsvn_fs_x/index.c:2115
#, c-format
msgid "Revision 0x%s too large, max = 0x%s"
msgstr "Revision 0x%s ist zu groß, max. 0x%s"
-#: ../libsvn_fs_fs/index.c:2203 ../libsvn_fs_x/index.c:2548
+#: ../libsvn_fs_fs/index.c:2204 ../libsvn_fs_x/index.c:2495
msgid "Index offset and rev / pack file size do not match"
msgstr "Index-Offset und Größe der REV/PACK-Datei stimmen nicht überein"
-#: ../libsvn_fs_fs/index.c:2209 ../libsvn_fs_x/index.c:2554
+#: ../libsvn_fs_fs/index.c:2210 ../libsvn_fs_x/index.c:2501
msgid "P2L index page size is not a power of two"
msgstr "Seitengröße des P2L-Index ist keine Zweierpotenz"
-#: ../libsvn_fs_fs/index.c:2215 ../libsvn_fs_x/index.c:2560
+#: ../libsvn_fs_fs/index.c:2216 ../libsvn_fs_x/index.c:2507
msgid "P2L page count does not match rev / pack file size"
msgstr "Seitenanzahl im P2L-Index stimmt nicht mit der Größe der REV/PACK Datei überein"
-#: ../libsvn_fs_fs/index.c:2395 ../libsvn_fs_x/index.c:2649
+#: ../libsvn_fs_fs/index.c:2396 ../libsvn_fs_x/index.c:2596
msgid "Invalid item type in P2L index"
msgstr "Ungültiger Elementtyp im P2L-Index"
-#: ../libsvn_fs_fs/index.c:2399 ../libsvn_fs_x/index.c:2702
+#: ../libsvn_fs_fs/index.c:2400 ../libsvn_fs_x/index.c:2649
msgid "Changed path list must have item number 1"
msgstr "Liste der geänderten Pfade muss Elementnummer 1 tragen"
-#: ../libsvn_fs_fs/index.c:2413 ../libsvn_fs_x/index.c:2659
+#: ../libsvn_fs_fs/index.c:2414 ../libsvn_fs_x/index.c:2606
msgid "Invalid FNV1 checksum in P2L index"
msgstr "Ungültige FNV1-Prüfsumme im P2L-Index"
-#: ../libsvn_fs_fs/index.c:2422
+#: ../libsvn_fs_fs/index.c:2423
msgid "Empty regions must have item number 0 and checksum 0"
msgstr "Leere Bereiche müssen eine Elementnummer 0 und Prüfsumme 0 aufweisen"
-#: ../libsvn_fs_fs/index.c:2492 ../libsvn_fs_x/index.c:2768
+#: ../libsvn_fs_fs/index.c:2430 ../libsvn_fs_x/index.c:2658
+#, fuzzy
+msgid "P2L index entry size overflow."
+msgstr "Seitengröße des P2L-Index ist keine Zweierpotenz"
+
+#: ../libsvn_fs_fs/index.c:2500 ../libsvn_fs_x/index.c:2721
msgid "P2L page description overlaps with next page description"
msgstr "P2L-Seitenbeschreibung überlappt mit der Beschreibung der nächsten Seite"
-#: ../libsvn_fs_fs/index.c:2608 ../libsvn_fs_x/index.c:2883
+#: ../libsvn_fs_fs/index.c:2616 ../libsvn_fs_x/index.c:2836
#, c-format
msgid "Offset %s too large in revision %ld"
msgstr "Offset %s ist zu groß in Revision %ld"
-#: ../libsvn_fs_fs/index.c:2798 ../libsvn_fs_x/index.c:3086
+#: ../libsvn_fs_fs/index.c:2806 ../libsvn_fs_x/index.c:3039
#, c-format
msgid "Last P2L index entry extends beyond the last page in revision %ld."
msgstr "Letzter Eintrag im P2L-Index geht über die letzte Seite in der Revision %ld hinaus."
-#: ../libsvn_fs_fs/lock.c:120 ../libsvn_fs_x/lock.c:121
+#: ../libsvn_fs_fs/lock.c:120 ../libsvn_fs_x/lock.c:122
#, c-format
msgid "Corrupt lockfile for path '%s' in filesystem '%s'"
msgstr "Beschädigte Sperrdatei für Pfad »%s« in Dateisystem »%s«"
-#: ../libsvn_fs_fs/lock.c:228 ../libsvn_fs_x/lock.c:240
+#: ../libsvn_fs_fs/lock.c:228 ../libsvn_fs_x/lock.c:241
#, c-format
msgid "Cannot write lock/entries hashfile '%s'"
msgstr "Kann »lock/entries« Hashdatei »%s« nicht schreiben"
-#: ../libsvn_fs_fs/lock.c:279 ../libsvn_fs_x/lock.c:292
+#: ../libsvn_fs_fs/lock.c:279 ../libsvn_fs_x/lock.c:293
#, c-format
msgid "Can't parse lock/entries hashfile '%s'"
msgstr "Kann »lock/entries« Hashdatei »%s« nicht zerlegen"
-#: ../libsvn_fs_fs/lock.c:784 ../libsvn_fs_x/lock.c:824
+#: ../libsvn_fs_fs/lock.c:784 ../libsvn_fs_x/lock.c:804
#, c-format
msgid "Lock failed: newer version of '%s' exists"
msgstr "Sperren schlug fehl: eine neuere Version von »%s« existiert"
-#: ../libsvn_fs_fs/lock.c:1164 ../libsvn_fs_x/lock.c:1292
+#: ../libsvn_fs_fs/lock.c:1164 ../libsvn_fs_x/lock.c:1186
#, c-format
msgid "Failed to lock '%s'"
msgstr "Konnte »%s« nicht sperren"
-#: ../libsvn_fs_fs/lock.c:1258 ../libsvn_fs_x/lock.c:1383
+#: ../libsvn_fs_fs/lock.c:1258 ../libsvn_fs_x/lock.c:1279
#, c-format
msgid "Failed to unlock '%s'"
msgstr "Konnte »%s« nicht entsperren"
-#: ../libsvn_fs_fs/low_level.c:97 ../libsvn_fs_x/low_level.c:100
+#: ../libsvn_fs_fs/low_level.c:97 ../libsvn_fs_x/low_level.c:99
msgid "Invalid character in revision number"
msgstr "Ungültiges Zeichen in Revisionsnummer"
@@ -4198,400 +6142,429 @@ msgstr "Letzte Zeile in der Revisionsdatei (r%ld) ist länger als 64 Zeichen"
msgid "Final line in revision file r%ld missing space"
msgstr "Letzte Zeile in der Revisionsdatei r%ld hat nicht genug Leerzeichen"
-#: ../libsvn_fs_fs/low_level.c:208 ../libsvn_fs_fs/low_level.c:217
-#: ../libsvn_fs_fs/low_level.c:226 ../libsvn_fs_fs/low_level.c:235
-#: ../libsvn_fs_x/low_level.c:122 ../libsvn_fs_x/low_level.c:131
-#: ../libsvn_fs_x/low_level.c:140 ../libsvn_fs_x/low_level.c:149
-msgid "Invalid revision footer"
-msgstr "Ungültige Fußdaten für Revision"
-
-#: ../libsvn_fs_fs/low_level.c:293 ../libsvn_fs_fs/low_level.c:298
-#: ../libsvn_fs_fs/low_level.c:304 ../libsvn_fs_fs/low_level.c:321
-#: ../libsvn_fs_fs/low_level.c:354 ../libsvn_fs_fs/low_level.c:374
-#: ../libsvn_fs_fs/low_level.c:399 ../libsvn_fs_x/low_level.c:804
-#: ../libsvn_fs_x/low_level.c:812 ../libsvn_fs_x/low_level.c:829
-#: ../libsvn_fs_x/low_level.c:862 ../libsvn_fs_x/low_level.c:882
-#: ../libsvn_fs_x/low_level.c:902
+#: ../libsvn_fs_fs/low_level.c:326 ../libsvn_fs_fs/low_level.c:331
+#: ../libsvn_fs_fs/low_level.c:337 ../libsvn_fs_fs/low_level.c:354
+#: ../libsvn_fs_fs/low_level.c:387 ../libsvn_fs_fs/low_level.c:407
+#: ../libsvn_fs_fs/low_level.c:432 ../libsvn_fs_x/low_level.c:836
+#: ../libsvn_fs_x/low_level.c:853 ../libsvn_fs_x/low_level.c:882
+#: ../libsvn_fs_x/low_level.c:902 ../libsvn_fs_x/low_level.c:922
msgid "Invalid changes line in rev-file"
msgstr "Ungültige »changes« Zeile in Rev Datei"
-#: ../libsvn_fs_fs/low_level.c:347 ../libsvn_fs_x/low_level.c:855
+#: ../libsvn_fs_fs/low_level.c:380 ../libsvn_fs_x/low_level.c:875
msgid "Invalid change kind in rev file"
msgstr "Ungültiger Änderungstyp in Rev Datei"
-#: ../libsvn_fs_fs/low_level.c:367 ../libsvn_fs_x/low_level.c:875
+#: ../libsvn_fs_fs/low_level.c:400 ../libsvn_fs_x/low_level.c:895
msgid "Invalid text-mod flag in rev-file"
msgstr "Ungültiges »text-mod« Flag in Rev Datei"
-#: ../libsvn_fs_fs/low_level.c:387 ../libsvn_fs_x/low_level.c:895
+#: ../libsvn_fs_fs/low_level.c:420 ../libsvn_fs_x/low_level.c:915
msgid "Invalid prop-mod flag in rev-file"
msgstr "Ungültiges »prop-mod« Flag in Rev Datei"
-#: ../libsvn_fs_fs/low_level.c:412 ../libsvn_fs_x/low_level.c:915
+#: ../libsvn_fs_fs/low_level.c:445 ../libsvn_fs_x/low_level.c:935
msgid "Invalid mergeinfo-mod flag in rev-file"
msgstr "Ungültiges »mergeinfo-mod« Flag in Rev Datei"
-#: ../libsvn_fs_fs/low_level.c:419 ../libsvn_fs_x/low_level.c:921
+#: ../libsvn_fs_fs/low_level.c:452 ../libsvn_fs_x/low_level.c:941
msgid "Invalid path in changes line"
msgstr "Ungültiger Pfad in Zeile »changes«"
-#: ../libsvn_fs_fs/low_level.c:439 ../libsvn_fs_x/low_level.c:944
+#: ../libsvn_fs_fs/low_level.c:472 ../libsvn_fs_x/low_level.c:964
msgid "Invalid copy-from path in changes line"
msgstr "Ungültiger Pfad »copy-from« in Zeile »changes«"
-#: ../libsvn_fs_fs/low_level.c:545 ../libsvn_fs_x/low_level.c:1044
+#: ../libsvn_fs_fs/low_level.c:581 ../libsvn_fs_x/low_level.c:1063
#, c-format
msgid "Invalid change type %d"
msgstr "Ungültiger Änderungstyp %d"
-#: ../libsvn_fs_fs/low_level.c:673 ../libsvn_fs_fs/low_level.c:690
-#: ../libsvn_fs_x/low_level.c:204 ../libsvn_fs_x/low_level.c:221
+#: ../libsvn_fs_fs/low_level.c:709 ../libsvn_fs_fs/low_level.c:726
+#: ../libsvn_fs_x/low_level.c:236 ../libsvn_fs_x/low_level.c:253
#, c-format
msgid "Found malformed header '%s' in revision file"
msgstr "Fehlerhafte Kopfdaten »%s« in Revisionsdatei gefunden"
-#: ../libsvn_fs_fs/low_level.c:737 ../libsvn_fs_fs/low_level.c:746
-#: ../libsvn_fs_fs/low_level.c:754 ../libsvn_fs_fs/low_level.c:763
-#: ../libsvn_fs_fs/low_level.c:777 ../libsvn_fs_fs/low_level.c:788
-#: ../libsvn_fs_fs/low_level.c:795 ../libsvn_fs_fs/low_level.c:802
-#: ../libsvn_fs_x/low_level.c:257 ../libsvn_fs_x/low_level.c:272
-#: ../libsvn_fs_x/low_level.c:281 ../libsvn_fs_x/low_level.c:289
-#: ../libsvn_fs_x/low_level.c:298 ../libsvn_fs_x/low_level.c:313
+#: ../libsvn_fs_fs/low_level.c:776 ../libsvn_fs_fs/low_level.c:785
+#: ../libsvn_fs_fs/low_level.c:793 ../libsvn_fs_fs/low_level.c:802
+#: ../libsvn_fs_fs/low_level.c:827 ../libsvn_fs_fs/low_level.c:846
+#: ../libsvn_fs_fs/low_level.c:861 ../libsvn_fs_fs/low_level.c:868
+#: ../libsvn_fs_fs/low_level.c:876 ../libsvn_fs_x/low_level.c:289
+#: ../libsvn_fs_x/low_level.c:304 ../libsvn_fs_x/low_level.c:313
+#: ../libsvn_fs_x/low_level.c:321 ../libsvn_fs_x/low_level.c:330
+#: ../libsvn_fs_x/low_level.c:345
msgid "Malformed text representation offset line in node-rev"
msgstr "Fehlerhafte »text representation offset«-Zeile in Knotenrevision"
-#: ../libsvn_fs_fs/low_level.c:829 ../libsvn_fs_x/low_level.c:346
+#: ../libsvn_fs_fs/low_level.c:903 ../libsvn_fs_x/low_level.c:378
#, c-format
msgid "While reading representation offsets for node-revision '%s':"
msgstr "Beim Lesen der Darstellungsoffsets für Knotenrevision »%s«"
-#: ../libsvn_fs_fs/low_level.c:863
+#: ../libsvn_fs_fs/low_level.c:937
msgid "Missing id field in node-rev"
msgstr "Fehlendes ID-Feld in Knotenrevision"
-#: ../libsvn_fs_fs/low_level.c:878 ../libsvn_fs_x/low_level.c:462
+#: ../libsvn_fs_fs/low_level.c:952 ../libsvn_fs_x/low_level.c:494
#, c-format
msgid "Missing kind field in node-rev '%s'"
msgstr "Fehlendes Feld »kind« in Knotenrevision »%s«"
-#: ../libsvn_fs_fs/low_level.c:913 ../libsvn_fs_x/low_level.c:499
+#: ../libsvn_fs_fs/low_level.c:987 ../libsvn_fs_x/low_level.c:531
#, c-format
msgid "Missing cpath field in node-rev '%s'"
msgstr "Fehlendes Feld »cpath« in Knotenrevision »%s«"
-#: ../libsvn_fs_fs/low_level.c:920 ../libsvn_fs_x/low_level.c:506
+#: ../libsvn_fs_fs/low_level.c:994 ../libsvn_fs_x/low_level.c:538
#, c-format
msgid "Non-canonical cpath field in node-rev '%s'"
msgstr "Nicht-kanonischer »cpath« in Knotenrevision »%s«"
-#: ../libsvn_fs_fs/low_level.c:945 ../libsvn_fs_x/low_level.c:535
+#: ../libsvn_fs_fs/low_level.c:1019 ../libsvn_fs_x/low_level.c:567
#, c-format
msgid "Malformed copyroot line in node-rev '%s'"
msgstr "Fehlerhafte »copyroot«-Zeile in Knotenrevision »%s«"
-#: ../libsvn_fs_fs/low_level.c:963 ../libsvn_fs_x/low_level.c:555
+#: ../libsvn_fs_fs/low_level.c:1037 ../libsvn_fs_x/low_level.c:587
#, c-format
msgid "Malformed copyfrom line in node-rev '%s'"
msgstr "Fehlerhafte »copyfrom«-Zeile in Knotenrevision »%s«"
-#: ../libsvn_fs_fs/low_level.c:1168 ../libsvn_fs_x/low_level.c:748
+#: ../libsvn_fs_fs/low_level.c:1302 ../libsvn_fs_x/low_level.c:780
#, c-format
msgid "Malformed representation header"
msgstr "Fehlerhafter Darstellungskopf"
-#: ../libsvn_fs_fs/pack.c:1947
+#: ../libsvn_fs_fs/pack.c:2118
#, c-format
msgid "FSFS format (%d) too old to pack; please upgrade the filesystem."
msgstr "Das FSFS-Format (%d) ist zum Packen zu alt, bitte verwenden Sie ein neueres Format"
-#: ../libsvn_fs_fs/recovery.c:171
+#: ../libsvn_fs_fs/recovery.c:172
msgid "Recovery encountered a non-directory node"
msgstr "Wiederherstellung fand einen Nicht-Verzeichnisknoten"
-#: ../libsvn_fs_fs/recovery.c:192
+#: ../libsvn_fs_fs/recovery.c:193
msgid "Recovery encountered a deltified directory representation"
msgstr "Wiederherstellung fand eine deltifizierte Verzeichnisrepräsentation"
-#: ../libsvn_fs_fs/recovery.c:232 ../libsvn_fs_fs/recovery.c:241
-#: ../libsvn_fs_fs/recovery.c:247
+#: ../libsvn_fs_fs/recovery.c:214
+#, fuzzy, c-format
+msgid "malformed representation for node-revision '%s'"
+msgstr "Beim Lesen der Darstellungsoffsets für Knotenrevision »%s«"
+
+#: ../libsvn_fs_fs/recovery.c:240 ../libsvn_fs_fs/recovery.c:249
+#: ../libsvn_fs_fs/recovery.c:255
msgid "Directory entry corrupt"
msgstr "Verzeichniseintrag beschädigt"
# FIXME: rev ==> revision
-#: ../libsvn_fs_fs/recovery.c:393 ../libsvn_fs_x/recovery.c:178
+#: ../libsvn_fs_fs/recovery.c:401 ../libsvn_fs_x/recovery.c:266
#, c-format
msgid "Expected current rev to be <= %ld but found %ld"
msgstr "Erwartete, dass aktuelle Revision <= %ld gilt, fand aber %ld"
-#: ../libsvn_fs_fs/recovery.c:444 ../libsvn_fs_x/recovery.c:215
+#: ../libsvn_fs_fs/recovery.c:452 ../libsvn_fs_x/recovery.c:303
#, c-format
msgid "Revision %ld has a revs file but no revprops file"
msgstr "Revision %ld hat eine Revisions-Datei aber keine Revisionseigenschafts-Datei"
-#: ../libsvn_fs_fs/recovery.c:451 ../libsvn_fs_x/recovery.c:222
+#: ../libsvn_fs_fs/recovery.c:459 ../libsvn_fs_x/recovery.c:310
#, c-format
msgid "Revision %ld has a revs file but the revprops file is inaccessible"
msgstr "Revision %ld hat eine Revisions-Datei aber die Revisionseigenschafts-Datei ist nicht verfügbar"
-#: ../libsvn_fs_fs/recovery.c:460 ../libsvn_fs_x/recovery.c:204
+#: ../libsvn_fs_fs/recovery.c:468 ../libsvn_fs_x/recovery.c:292
#, c-format
msgid "Revision %ld has a non-file where its revprops file should be"
msgstr "Revision %ld hat eine Nicht-Datei, wo seine Revisionseigenschafts-Datei sein sollte"
-#: ../libsvn_fs_fs/rep-cache.c:124 ../libsvn_fs_x/rep-cache.c:125
-msgid "Couldn't open rep-cache database"
+#: ../libsvn_fs_fs/rep-cache.c:130 ../libsvn_fs_x/rep-cache.c:130
+#, fuzzy, c-format
+msgid "Couldn't open rep-cache database '%s'"
msgstr "Konnte »rep-cache«-Datenbank des Projektarchivs nicht öffnen"
# TODO: Same strings can be shared with another table!
-#: ../libsvn_fs_fs/rep-cache.c:257 ../libsvn_fs_fs/rep-cache.c:316
-#: ../libsvn_fs_x/rep-cache.c:256 ../libsvn_fs_x/rep-cache.c:314
+#: ../libsvn_fs_fs/rep-cache.c:281 ../libsvn_fs_fs/rep-cache.c:343
+#: ../libsvn_fs_x/rep-cache.c:280 ../libsvn_fs_x/rep-cache.c:338
msgid "Only SHA1 checksums can be used as keys in the rep_cache table.\n"
msgstr "Nur SHA1-Prüfsummen können als Schlüssel in der Tabelle rep_cache verwendet werden.\n"
-#: ../libsvn_fs_fs/revprops.c:321 ../libsvn_fs_x/revprops.c:800
+#: ../libsvn_fs_fs/revprops.c:372
#, c-format
msgid "Packed revprop manifest for r%ld not properly terminated"
msgstr "Verzeichnis für gepackte Revisionseigenschaften für r%ld ist nicht korrekt abgeschlossen"
-#: ../libsvn_fs_fs/revprops.c:363 ../libsvn_fs_x/revprops.c:842
+#: ../libsvn_fs_fs/revprops.c:414
#, c-format
msgid "Packed revprop manifest for r%ld has too many entries"
msgstr "Verzeichnis für gepackte Revisionseigenschaften für r%ld hat zu viele Einträge"
-#: ../libsvn_fs_fs/revprops.c:368 ../libsvn_fs_x/revprops.c:847
+#: ../libsvn_fs_fs/revprops.c:419
#, c-format
msgid "Packed revprop manifest for r%ld has too few entries"
msgstr "Verzeichnis für gepackte Revisionseigenschaften für r%ld hat zu wenig Einträge"
-#: ../libsvn_fs_fs/revprops.c:432 ../libsvn_fs_x/revprops.c:911
+#: ../libsvn_fs_fs/revprops.c:489 ../libsvn_fs_x/revprops.c:798
#, c-format
msgid "Revprop pack for revision r%ld contains revprops for r%ld .. r%ld"
msgstr "Datei mit gepackten Revisionseigenschaften für Revision r%ld enthält Revisionseigenschaften für r%ld .. %ld"
-#: ../libsvn_fs_fs/revprops.c:443 ../libsvn_fs_x/revprops.c:922
+#: ../libsvn_fs_fs/revprops.c:500 ../libsvn_fs_x/revprops.c:809
#, c-format
msgid "Revprop pack for revision r%ld starts at non-packed revisions r%ld"
msgstr "Datei mit gepackten Revisionseigenschaften für Revision r%ld beginnt mit nicht gepackter Revision r%ld"
-#: ../libsvn_fs_fs/revprops.c:452 ../libsvn_fs_x/revprops.c:931
+#: ../libsvn_fs_fs/revprops.c:509
msgid "Header end not found"
msgstr "Ende der Kopfdaten nicht gefunden"
-#: ../libsvn_fs_fs/revprops.c:484 ../libsvn_fs_x/revprops.c:965
+#: ../libsvn_fs_fs/revprops.c:544
msgid "Packed revprop size exceeds pack file size"
msgstr "Größe der gepackten Revisionseigenschaften überschreitet die größe der gepackten Datei"
-#: ../libsvn_fs_fs/revprops.c:542 ../libsvn_fs_x/revprops.c:1034
+#: ../libsvn_fs_fs/revprops.c:628 ../libsvn_fs_x/revprops.c:887
#, c-format
msgid "No such packed revision %ld"
msgstr "Keine gepackte Revision %ld"
-#: ../libsvn_fs_fs/revprops.c:575 ../libsvn_fs_x/revprops.c:1075
+#: ../libsvn_fs_fs/revprops.c:660 ../libsvn_fs_x/revprops.c:936
#, c-format
msgid "Failed to read revprop pack file for r%ld"
msgstr "Konnte gepackte Revisionseigenschaften-Datei für r%ld nicht lesen"
-#: ../libsvn_fs_fs/revprops.c:582 ../libsvn_fs_x/revprops.c:1082
+#: ../libsvn_fs_fs/revprops.c:668
#, c-format
msgid "Revprop pack file for r%ld is corrupt"
msgstr "Daten mit gepackten Revisionseigenschaften für r%ld ist beschädigt"
-#: ../libsvn_fs_fs/revprops.c:639 ../libsvn_fs_x/revprops.c:1158
+#: ../libsvn_fs_fs/revprops.c:758 ../libsvn_fs_x/revprops.c:1009
#, c-format
msgid "Could not read revprops for revision %ld"
msgstr "Konnte Revisionseigenschaften für Revision %ld nicht lesen"
-#: ../libsvn_fs_fs/revprops.c:864 ../libsvn_fs_x/revprops.c:1407
+#: ../libsvn_fs_fs/revprops.c:993
#, c-format
msgid "Packed file '%s' misses a tag"
msgstr "Der gepackten Datei »%s« fehlt ein Tag"
-#: ../libsvn_fs_fs/transaction.c:258 ../libsvn_fs_x/transaction.c:510
+#: ../libsvn_fs_fs/transaction.c:250 ../libsvn_fs_x/transaction.c:529
#, c-format
msgid "Can't unlock unknown transaction '%s'"
msgstr "Kann unbekannte Transaktion »%s« nicht freigeben"
-#: ../libsvn_fs_fs/transaction.c:262 ../libsvn_fs_x/transaction.c:514
+#: ../libsvn_fs_fs/transaction.c:254 ../libsvn_fs_x/transaction.c:533
#, c-format
msgid "Can't unlock nonlocked transaction '%s'"
msgstr "Nicht gesperrte Transaktion »%s« kann nicht freigeben werden"
# FIXME: Dies ist aber nicht infinitisch übersetzt (siehe umliegenden Meldungen)
-#: ../libsvn_fs_fs/transaction.c:269 ../libsvn_fs_x/transaction.c:521
+#: ../libsvn_fs_fs/transaction.c:261 ../libsvn_fs_x/transaction.c:540
#, c-format
msgid "Can't unlock prototype revision lockfile for transaction '%s'"
msgstr "Kann Prototyp-Revisionssperrdatei für Transaktion »%s« nicht entsperren"
-#: ../libsvn_fs_fs/transaction.c:275 ../libsvn_fs_x/transaction.c:527
+#: ../libsvn_fs_fs/transaction.c:267 ../libsvn_fs_x/transaction.c:546
#, c-format
msgid "Can't close prototype revision lockfile for transaction '%s'"
msgstr "Kann Prototyp-Revisionssperrdatei für Transaktion »%s« nicht schließen"
-#: ../libsvn_fs_fs/transaction.c:321 ../libsvn_fs_x/transaction.c:575
+#: ../libsvn_fs_fs/transaction.c:313 ../libsvn_fs_x/transaction.c:594
#, c-format
msgid "Cannot write to the prototype revision file of transaction '%s' because a previous representation is currently being written by this process"
msgstr "Kann nicht in die Prototyp-Revisionsdatei der Transaktion »%s« schreiben, da eine frühere Darstellung zurzeit von diesem Prozess geschrieben wird"
-#: ../libsvn_fs_fs/transaction.c:358 ../libsvn_fs_x/transaction.c:613
+#: ../libsvn_fs_fs/transaction.c:350 ../libsvn_fs_x/transaction.c:632
#, c-format
msgid "Cannot write to the prototype revision file of transaction '%s' because a previous representation is currently being written by another process"
msgstr "Kann nicht in die Prototyp-Revisionsdatei der Transaktion »%s« schreiben, da eine frühere Darstellung zurzeit von einem anderen Prozess geschrieben wird"
-#: ../libsvn_fs_fs/transaction.c:366 ../libsvn_fs_x/transaction.c:621
-#: ../libsvn_subr/io.c:2189
+#: ../libsvn_fs_fs/transaction.c:358 ../libsvn_fs_x/transaction.c:640
+#: ../libsvn_subr/io.c:2347
#, c-format
msgid "Can't get exclusive lock on file '%s'"
msgstr "Kann keinen exklusiven Zugriff auf Datei »%s« erlangen"
-#: ../libsvn_fs_fs/transaction.c:414 ../libsvn_fs_x/transaction.c:667
+#: ../libsvn_fs_fs/transaction.c:406 ../libsvn_fs_x/transaction.c:686
#, c-format
msgid "p2l proto index offset %s beyond protorev file size %s for TXN %s"
msgstr "Offset %s im p2l-Proto-Index überschreitet die Größe %s der protorev-Datei in Transaktion %s"
-#: ../libsvn_fs_fs/transaction.c:523 ../libsvn_fs_fs/transaction.c:2360
-#: ../libsvn_fs_x/transaction.c:796 ../libsvn_fs_x/transaction.c:2455
+#: ../libsvn_fs_fs/transaction.c:515 ../libsvn_fs_fs/transaction.c:2618
+#: ../libsvn_fs_x/transaction.c:816 ../libsvn_fs_x/transaction.c:2686
#, c-format
msgid "Attempted to write to non-transaction '%s'"
msgstr "Versuch, in eine Nicht-Transaktion zu schreiben »%s«"
-#: ../libsvn_fs_fs/transaction.c:932 ../libsvn_fs_x/transaction.c:1182
+#: ../libsvn_fs_fs/transaction.c:986 ../libsvn_fs_x/transaction.c:1198
msgid "Copying from transactions not allowed"
msgstr "Kopieren aus Transaktionen ist nicht erlaubt."
-#: ../libsvn_fs_fs/transaction.c:1065
+#: ../libsvn_fs_fs/transaction.c:1120
#, c-format
msgid "Unable to create transaction directory in '%s' for revision %ld"
msgstr "Kann Transaktionsverzeichnis in »%s« in Revision %ld nicht anlegen"
-#: ../libsvn_fs_fs/transaction.c:1135 ../libsvn_fs_x/transaction.c:1338
+#: ../libsvn_fs_fs/transaction.c:1191 ../libsvn_fs_x/transaction.c:1383
msgid "Internal error: a null transaction id was passed to get_txn_proplist()"
msgstr "Interner Fehler: eine Transaktionskennung von Null wurde übergeben um get_txn_proplist() zu erhalten"
-#: ../libsvn_fs_fs/transaction.c:1312 ../libsvn_fs_fs/transaction.c:1318
-#: ../libsvn_fs_x/transaction.c:1603 ../libsvn_fs_x/transaction.c:1609
+#: ../libsvn_fs_fs/transaction.c:1204 ../libsvn_fs_x/transaction.c:1397
+#, fuzzy, c-format
+msgid "malformed property list in transaction '%s'"
+msgstr "Fehlerhafte »copyroot«-Zeile in Knotenrevision »%s«"
+
+#: ../libsvn_fs_fs/transaction.c:1372 ../libsvn_fs_fs/transaction.c:1378
+#: ../libsvn_fs_x/transaction.c:1657 ../libsvn_fs_x/transaction.c:1663
msgid "next-id file corrupt"
msgstr "»next-id« Datei beschädigt"
-#: ../libsvn_fs_fs/transaction.c:1431 ../libsvn_fs_x/transaction.c:1717
+#: ../libsvn_fs_fs/transaction.c:1491 ../libsvn_fs_x/transaction.c:1776
#, c-format
msgid "Transaction '%s' cleanup failed"
msgstr "Aufräumen der Transaktion »%s« schlug fehl"
-#: ../libsvn_fs_fs/transaction.c:2380 ../libsvn_fs_x/transaction.c:2476
+#: ../libsvn_fs_fs/transaction.c:1819 ../libsvn_fs_x/transaction.c:1583
+#, fuzzy
+msgid "Unexpected itemidx file length"
+msgstr "Unerwartetes Ende des Eintrags"
+
+#: ../libsvn_fs_fs/transaction.c:2638 ../libsvn_fs_x/transaction.c:2707
msgid "Can't set text contents of a directory"
msgstr "Kann Textinhalt im Verzeichnis nicht erzeugen"
-#: ../libsvn_fs_fs/transaction.c:2786 ../libsvn_fs_x/transaction.c:2802
+#: ../libsvn_fs_fs/transaction.c:3067 ../libsvn_fs_x/transaction.c:3046
#, c-format
msgid "predecessor count for the root node-revision is wrong: found (%d+%ld != %d), committing r%ld"
msgstr "Anzahl der Vorgänger für die Revision des Wurzelknotens ist falsch: Gefunden (%d+%ld != %d) bei Übertragung von r%ld"
-#: ../libsvn_fs_fs/transaction.c:2943
+#: ../libsvn_fs_fs/transaction.c:3249
msgid "Truncated protorev file detected"
msgstr "Abgeschnittene Datei »protorev« entdeckt"
-#: ../libsvn_fs_fs/transaction.c:3427 ../libsvn_fs_x/transaction.c:3357
+#: ../libsvn_fs_fs/transaction.c:3786 ../libsvn_fs_x/transaction.c:3806
msgid "Transaction out of date"
msgstr "Transaktion ist veraltet"
-#: ../libsvn_fs_fs/transaction.c:3702 ../libsvn_fs_x/transaction.c:3626
+#: ../libsvn_fs_fs/transaction.c:4085 ../libsvn_fs_x/transaction.c:4053
#, c-format
msgid "No such transaction '%s'"
msgstr "Keine solche Transaktion »%s«"
-#: ../libsvn_fs_fs/tree.c:2576 ../libsvn_fs_x/tree.c:2588
+#: ../libsvn_fs_fs/tree.c:1161
+#, fuzzy, c-format
+msgid "Failure opening '%s' in transaction '%s'"
+msgstr "Fehler beim Lesen der Darstellung »%s«"
+
+#: ../libsvn_fs_fs/tree.c:1164
+#, fuzzy, c-format
+msgid "Failure opening '%s' in revision %ld"
+msgstr "Fehler beim Öffnen von »%s«"
+
+#: ../libsvn_fs_fs/tree.c:2639 ../libsvn_fs_x/tree.c:1560
msgid "Copy immutable tree not supported"
msgstr "Kopieren eines unveränderlichen Baumes nicht unterstützt"
-#: ../libsvn_fs_fs/tree.c:3895 ../libsvn_fs_x/tree.c:3881
+#: ../libsvn_fs_fs/tree.c:4195 ../libsvn_fs_x/tree.c:2958
#, c-format
msgid "Node-revision #'%s' claims to have mergeinfo but doesn't"
msgstr "Knotenrevision #»%s« behauptet, Zusammenführungsinformationen zu haben, hat aber keine"
-#: ../libsvn_fs_fs/tree.c:4011 ../libsvn_fs_x/tree.c:3997
+#: ../libsvn_fs_fs/tree.c:4310 ../libsvn_fs_x/tree.c:3050
#, c-format
msgid "Node-revision '%s@%ld' claims to have mergeinfo but doesn't"
msgstr "Knotenrevision »%s@%ld« behauptet, Zusammenführungsinformationen zu haben, hat aber keine"
-#: ../libsvn_fs_fs/tree.c:4211
+#: ../libsvn_fs_fs/tree.c:4509
#, c-format
msgid "Querying mergeinfo requires version %d of the FSFS filesystem schema; filesystem '%s' uses only version %d"
msgstr "Abfrage der Zusammenführungsinformationen erfordert Version %d des FSFS-Dateisystem-Schemas; Dateisystem »%s« verwendet nur Version %d"
-#: ../libsvn_fs_fs/util.c:387 ../libsvn_fs_x/util.c:499
+#: ../libsvn_fs_fs/util.c:387 ../libsvn_fs_x/util.c:491
#, c-format
msgid "%s file '%s' contains unexpected non-digit '%c' within '%s'"
msgstr "Die Datei %s (»%s«) enthält eine unerwartete Nicht-Ziffer »%c« innerhalb »%s«"
-#: ../libsvn_fs_fs/util.c:477 ../libsvn_fs_fs/util.c:482
-#: ../libsvn_fs_fs/util.c:487 ../libsvn_fs_x/util.c:572
+#: ../libsvn_fs_fs/util.c:479 ../libsvn_fs_fs/util.c:484
+#: ../libsvn_fs_fs/util.c:489 ../libsvn_fs_x/util.c:566
msgid "Corrupt 'current' file"
msgstr "Beschädigte Datei »current«"
-#: ../libsvn_fs_fs/util.c:598 ../libsvn_fs_x/util.c:673
+#: ../libsvn_fs_fs/util.c:585 ../libsvn_fs_x/util.c:662
#, c-format
msgid "Can't read '%s'"
msgstr "Kann »%s« nicht lesen"
-#: ../libsvn_fs_fs/util.c:619 ../libsvn_fs_x/util.c:700
+#: ../libsvn_fs_fs/util.c:606 ../libsvn_fs_x/util.c:689
msgid "Unexpected EOF"
msgstr "Unerwartetes Dateiende (EOF)"
-#: ../libsvn_fs_fs/util.c:626 ../libsvn_fs_x/util.c:707
+#: ../libsvn_fs_fs/util.c:613 ../libsvn_fs_x/util.c:696
#, c-format
msgid "Number '%s' invalid or too large"
msgstr "Zahl »%s« ist ungültig oder zu groß"
-#: ../libsvn_fs_fs/verify.c:208 ../libsvn_fs_x/verify.c:184
+#: ../libsvn_fs_fs/verify.c:209 ../libsvn_fs_x/verify.c:183
#, c-format
msgid "%s checksum mismatch in file %s"
msgstr "%s Prüfsummenfehler in Datei %s"
-#: ../libsvn_fs_fs/verify.c:303
+#: ../libsvn_fs_fs/verify.c:304
#, c-format
msgid "p2l index entry not found for PHYS %s returned by l2p index for LOG r%ld:i%ld"
msgstr "P2L-Indexeintrag nicht gefunden für PHYS %s zurückgegeben von L2P-Index für LOG r%ld:i%ld"
-#: ../libsvn_fs_fs/verify.c:313 ../libsvn_fs_x/verify.c:292
+#: ../libsvn_fs_fs/verify.c:314 ../libsvn_fs_x/verify.c:288
#, c-format
msgid "p2l index info LOG r%ld:i%ld does not match l2p index for LOG r%ld:i%ld"
msgstr "P2L-Indexinformation LOG r%ld:i%ld stimmt nicht mit dem L2P-Index für LOG r%ld:i%ld überein"
-#: ../libsvn_fs_fs/verify.c:379 ../libsvn_fs_x/verify.c:361
+#: ../libsvn_fs_fs/verify.c:380 ../libsvn_fs_x/verify.c:356
#, c-format
msgid "p2l does not cover offset %s for revision %ld"
msgstr "P2L-Index deckt Offset %s für Revision %ld nicht ab"
-#: ../libsvn_fs_fs/verify.c:404
+#: ../libsvn_fs_fs/verify.c:405
#, c-format
msgid "Empty P2L entry for PHYS %s refers to revision %ld outside the rev / pack file (%ld-%ld)"
msgstr "Leerer P2L-Eintrag für PHYS %s bezieht sich auf Revision %ld außerhalb der REV/PACK-Datei (%ld-%ld)"
-#: ../libsvn_fs_fs/verify.c:421
+#: ../libsvn_fs_fs/verify.c:422
#, c-format
msgid "l2p index entry PHYS %sdoes not match p2l index value LOG r%ld:i%ld for PHYS %s"
msgstr "L2P-Indexeintrag PHYS %sstimmt nicht mit dem P2L-Indexwert LOG r%ld:i%ld für PHYS %s überein"
-#: ../libsvn_fs_fs/verify.c:486 ../libsvn_fs_x/verify.c:462
+#: ../libsvn_fs_fs/verify.c:487 ../libsvn_fs_x/verify.c:456
#, c-format
msgid "Empty section in file %s contains non-NUL data at offset %s"
msgstr "Leerer Abschnitt in Datei %s enthält Daten verschieden von NUL bei Offset %s"
-#: ../libsvn_fs_fs/verify.c:527 ../libsvn_fs_x/verify.c:505
+#: ../libsvn_fs_fs/verify.c:528 ../libsvn_fs_x/verify.c:498
#, c-format
msgid "Checksum mismatch in item at offset %s of length %s bytes in file %s"
msgstr "Prüfsummenfehler in Element bei Offset %s der Länge %s Byte in Datei %s"
-#: ../libsvn_fs_fs/verify.c:623 ../libsvn_fs_x/verify.c:603
+#: ../libsvn_fs_fs/verify.c:624 ../libsvn_fs_x/verify.c:594
#, c-format
msgid "File size of %s for revision r%ld does not match p2l index size of %s"
msgstr "Dateigröße von %s für Revision r%ld stimmt nicht mit der Größe des P2L-Index %s überein"
-#: ../libsvn_fs_fs/verify.c:668 ../libsvn_fs_x/verify.c:651
+#: ../libsvn_fs_fs/verify.c:669 ../libsvn_fs_x/verify.c:640
#, c-format
msgid "p2l index entry for revision r%ld is non-contiguous between offsets %s and %s"
msgstr "P2L-Indexeintrag für Revision r%ld ist nicht zusammenhängend zwischen Offsets %s und %s"
+#: ../libsvn_fs_fs/verify.c:682
+#, fuzzy, c-format
+msgid "p2l index entry for revision r%ld at offset %s contains invalid item type %d"
+msgstr "P2L-Indexeintrag für Revision r%ld ist nicht zusammenhängend zwischen Offsets %s und %s"
+
+#: ../libsvn_fs_fs/verify.c:696
+#, fuzzy, c-format
+msgid "p2l index entry for changes in revision r%ld is item %ld of type %d at offset %s"
+msgstr "P2L-Indexeintrag für Revision r%ld ist nicht zusammenhängend zwischen Offsets %s und %s"
+
#: ../libsvn_fs_util/fs-util.c:164
msgid "Filesystem object has not been opened yet"
msgstr "Dateisystemobjekt ist noch nicht geöffnet"
@@ -4600,7 +6573,51 @@ msgstr "Dateisystemobjekt ist noch nicht geöffnet"
msgid "Filesystem object already open"
msgstr "Dateisystemobjekt ist bereits geöffnet"
-#: ../libsvn_fs_x/cached_data.c:2955
+#: ../libsvn_fs_x/batch_fsync.c:61
+#, fuzzy
+msgid "Can't create condition variable"
+msgstr "Kann Tunnel nicht erzeugen"
+
+#: ../libsvn_fs_x/batch_fsync.c:78 ../libsvn_fs_x/batch_fsync.c:92
+msgid "Can't broadcast condition variable"
+msgstr ""
+
+#: ../libsvn_fs_x/batch_fsync.c:275
+#, fuzzy
+msgid "Can't create fsync thread pool in FSX"
+msgstr "Kann Thread-Pool nicht erzeugen"
+
+#: ../libsvn_fs_x/batch_fsync.c:547 ../svnserve/svnserve.c:1380
+#, c-format
+msgid "Can't push task"
+msgstr "Kann Abarbeitung einer Anfrage nicht initiieren"
+
+#: ../libsvn_fs_x/cached_data.c:2508
+#, fuzzy, c-format
+msgid "Directory for '%s' is too large"
+msgstr "Verzeichnis »%s« ist veraltet"
+
+#: ../libsvn_fs_x/cached_data.c:2530
+#, fuzzy, c-format
+msgid "Directory entry missing kind in '%s'"
+msgstr "Verzeichniseintrag beschädigt in »%s«"
+
+#: ../libsvn_fs_x/cached_data.c:2536
+#, fuzzy, c-format
+msgid "Directory entry missing change set in '%s'"
+msgstr "Verzeichniseintrag beschädigt in »%s«"
+
+#: ../libsvn_fs_x/cached_data.c:2542
+#, fuzzy, c-format
+msgid "Directory entry missing item number in '%s'"
+msgstr "Verzeichniseintrag beschädigt in »%s«"
+
+#: ../libsvn_fs_x/cached_data.c:2578
+#, fuzzy, c-format
+msgid "Directory length mismatch in '%s'"
+msgstr "Verzeichniseintrag beschädigt in »%s«"
+
+#: ../libsvn_fs_x/cached_data.c:3083
#, c-format
msgid ""
"Low-level checksum mismatch while reading\n"
@@ -4609,61 +6626,71 @@ msgstr ""
"Interner Prüfsummenfehler beim Lesen von\n"
"%s Byte von Metadaten bei Offset %s"
-#: ../libsvn_fs_x/changes.c:239
+#: ../libsvn_fs_x/changes.c:232
#, c-format
msgid "Changes list index %%%s exceeds container size %%d"
msgstr "Index für Änderungslisten %%%s überschreitet Größe des Containers %%d"
-#: ../libsvn_fs_x/changes.c:490
+#: ../libsvn_fs_x/changes.c:485
#, c-format
msgid "Changes list index %u exceeds container size %d"
msgstr "Index für Änderungslisten %u überschreitet Größe des Containers %d"
-#: ../libsvn_fs_x/fs.c:102
+#: ../libsvn_fs_x/fs.c:103
#, c-format
msgid "Can't fetch FSX shared data"
msgstr "Kann gemeinsame FSX-Daten nicht holen"
-#: ../libsvn_fs_x/fs.c:131
+#: ../libsvn_fs_x/fs.c:132
#, c-format
msgid "Can't store FSX shared data"
msgstr "Kann gemeinsame FSX-Daten nicht speichern"
-#: ../libsvn_fs_x/fs.c:597
+#: ../libsvn_fs_x/fs.c:601
msgid "Module for working with an experimental (FSX) repository."
msgstr "Modul zum Zugriff auf ein experimentelles (FSX) Projektarchiv."
-#: ../libsvn_fs_x/fs.c:660
+#: ../libsvn_fs_x/fs.c:664
#, c-format
msgid "Unsupported FS loader version (%d) for fsx"
msgstr "Nicht unterstützte Dateisystem-Laderversion (%d) für fsx"
-#: ../libsvn_fs_x/fs_x.c:1021
+#: ../libsvn_fs_x/fs_x.c:108
+#, fuzzy, c-format
+msgid "Unsupported experimental FSX format '%d' found; current format is '%d'"
+msgstr "Erwartetes Dateisystemformat »%d«; gefunden »%d«"
+
+#: ../libsvn_fs_x/fs_x.c:117
+#, fuzzy, c-format
+msgid "Expected FSX format between '%d' and '%d'; found format '%d'"
+msgstr "Erwartete Dateisystemformat zwischen 1 und %d; fand %d"
+
+#: ../libsvn_fs_x/fs_x.c:1063
msgid "FSX is not compatible with Subversion prior to 1.9"
msgstr "FSX ist inkompatibel mit Subversion älter als 1.9"
-#: ../libsvn_fs_x/hotcopy.c:486
+#: ../libsvn_fs_x/hotcopy.c:354
#, c-format
msgid "The FSX format (%d) of the hotcopy source does not match the FSX format (%d) of the hotcopy destination; please upgrade both repositories to the same format"
msgstr "Das FSX-Format (%d) der Quelle für die Kopie im laufenden Betrieb entspricht nicht dem FSX-Format (%d) des Ziels; Verwenden Sie auf beiden Seiten das gleiche Format"
-#: ../libsvn_fs_x/index.c:294
+#: ../libsvn_fs_x/index.c:289
msgid "Can't read index file '%s' at offset 0x%"
msgstr "Kann Indexdatei »%s« nicht lesen bei Offset 0x%"
-#: ../libsvn_fs_x/index.c:304
+#: ../libsvn_fs_x/index.c:299
msgid "Unexpected end of index file %s at offset 0x%"
msgstr "Unerwartetes Ende der Indexdatei %s bei Offset 0x%"
-#: ../libsvn_fs_x/index.c:2668
+#: ../libsvn_fs_x/index.c:2615
msgid "Unused regions must be empty and have checksum 0"
msgstr "Nicht verwendete Regionen müssen leer sein und eine Prüfsumme von 0 haben"
-#: ../libsvn_fs_x/index.c:2682
+#: ../libsvn_fs_x/index.c:2629
msgid "Only containers may have more than one sub-item"
msgstr "Nur Container dürfen mehr als ein Unterelement haben"
-#: ../libsvn_fs_x/low_level.c:423
+#: ../libsvn_fs_x/low_level.c:455
#, c-format
msgid "Missing %s field in node-rev"
msgstr "Fehlendes Feld %s in Knotenrevision"
@@ -4683,12 +6710,12 @@ msgstr "Index für Knotenrevisions-IDs %d überschreitet Größe des Containers
msgid "Node revision index %%%s exceeds container size %%d"
msgstr "Index für Knotenrevisions-IDs %%%s überschreitet Größe des Containers %%d"
-#: ../libsvn_fs_x/noderevs.c:617
+#: ../libsvn_fs_x/noderevs.c:618
#, c-format
msgid "Unexpected MD5 digest size %%%s"
msgstr "Unerwartete Länge für MD5-Prüfsumme %%%s"
-#: ../libsvn_fs_x/noderevs.c:629
+#: ../libsvn_fs_x/noderevs.c:630
#, c-format
msgid "Unexpected SHA1 digest size %%%s"
msgstr "Unerwartete Länge für SHA1-Prüfsumme %%%s"
@@ -4701,12 +6728,12 @@ msgstr "Textkörper überschreitet Kapazität des Star Delta Containers"
msgid "Instruction count exceeds star delta container capacity"
msgstr "Anzahl der Instruktionen überschreitet Kapazität des Star Delta Containers"
-#: ../libsvn_fs_x/verify.c:283
+#: ../libsvn_fs_x/verify.c:279
#, c-format
msgid "p2l index entry not found for PHYS o%s:s%ld returned by l2p index for LOG r%ld:i%ld"
msgstr "P2L-Indexeintrag nicht gefunden für PHYS o%s:s%ld zurückgegeben von L2P-Index für LOG r%ld:i%ld"
-#: ../libsvn_fs_x/verify.c:392
+#: ../libsvn_fs_x/verify.c:387
#, c-format
msgid "l2p index entry PHYS o%s:s%ld does not match p2l index value LOG r%ld:i%ld for PHYS o%s:s%ld"
msgstr "L2P-Indexeintrag PHYS o%s:s%ld stimmt nicht mit dem P2L-Indexwert LOG r%ld:i%ld für PHYS o%s:s%ld überein"
@@ -4726,18 +6753,18 @@ msgstr "Pfad »%s« existiert nicht in Revision %ld"
msgid "'%s' in revision %ld is an unrelated object"
msgstr "»%s« in Revision %ld hat keinen Bezug zur Arbeitskopie"
-#: ../libsvn_ra/compat.c:845 ../libsvn_ra/ra_loader.c:1285
+#: ../libsvn_ra/compat.c:845 ../libsvn_ra/ra_loader.c:1314
#, c-format
msgid "Invalid peg revision %ld"
msgstr "Ungültige Fix-Revision %ld"
-#: ../libsvn_ra/compat.c:848 ../libsvn_ra/ra_loader.c:1288
-#: ../libsvn_repos/rev_hunt.c:212 ../libsvn_repos/rev_hunt.c:327
+#: ../libsvn_ra/compat.c:848 ../libsvn_ra/ra_loader.c:1317
+#: ../libsvn_repos/rev_hunt.c:214 ../libsvn_repos/rev_hunt.c:329
#, c-format
msgid "Invalid end revision %ld"
msgstr "Ungültige Endrevision %ld"
-#: ../libsvn_ra/compat.c:851 ../libsvn_ra/ra_loader.c:1291
+#: ../libsvn_ra/compat.c:851 ../libsvn_ra/ra_loader.c:1320
msgid "Peg revision must precede end revision"
msgstr "Fix-Revision muss vor der Endrevision liegen"
@@ -4746,7 +6773,7 @@ msgstr "Fix-Revision muss vor der Endrevision liegen"
msgid "Mismatched RA version for '%s': found %d.%d.%d%s, expected %d.%d.%d%s"
msgstr "Version des ZM »%s« stimmt nicht überein: gefunden %d.%d.%d%s, erwartet %d.%d.%d%s"
-#: ../libsvn_ra/ra_loader.c:291 ../libsvn_ra_serf/serf.c:830
+#: ../libsvn_ra/ra_loader.c:291
#, c-format
msgid "Illegal repository URL '%s'"
msgstr "Illegale Projektarchiv-URL »%s«"
@@ -4766,37 +6793,37 @@ msgstr "Unbekanntes URL-Schema für »%s«"
msgid "Unable to connect to a repository at URL '%s'"
msgstr "Konnte nicht mit Projektarchiv bei URL »%s« verbinden"
-#: ../libsvn_ra/ra_loader.c:425
+#: ../libsvn_ra/ra_loader.c:428
#, c-format
msgid "Repository UUID '%s' doesn't match expected UUID '%s'"
msgstr "UUID des Projektarchivs »%s« entspricht nicht der erwarteten UUID »%s«"
-#: ../libsvn_ra/ra_loader.c:486
+#: ../libsvn_ra/ra_loader.c:492
#, c-format
msgid "'%s' isn't in the same repository as '%s'"
msgstr "»%s« ist nicht im selben Projektarchiv wie »%s«"
-#: ../libsvn_ra/ra_loader.c:510
+#: ../libsvn_ra/ra_loader.c:516
#, c-format
msgid "'%s' isn't a child of session URL '%s'"
msgstr "»%s« ist kein Kind der Sitzungs-URL »%s«"
-#: ../libsvn_ra/ra_loader.c:526 ../libsvn_ra_svn/client.c:2623
+#: ../libsvn_ra/ra_loader.c:532 ../libsvn_ra_svn/client.c:2878
#, c-format
msgid "'%s' isn't a child of repository root URL '%s'"
msgstr "»%s« ist kein Kind der Projektarchivwurzel-URL »%s«"
-#: ../libsvn_ra/ra_loader.c:570
+#: ../libsvn_ra/ra_loader.c:576
#, c-format
msgid "Specifying 'old_value_p' is not allowed when the '%s' capability is not advertised, and could indicate a bug in your client"
msgstr "Die Angabe von »old_value_p« is nicht erlaubt, wenn die Fähigkeit »%s« nicht bekanntgemacht wurde, und könnte auf einen Bug in Ihrem Client hindeuten"
-#: ../libsvn_ra/ra_loader.c:1431
+#: ../libsvn_ra/ra_loader.c:1460
#, c-format
msgid " - handles '%s' scheme\n"
msgstr " - behandelt Schema »%s«\n"
-#: ../libsvn_ra/ra_loader.c:1524
+#: ../libsvn_ra/ra_loader.c:1553
#, c-format
msgid "Unrecognized URL scheme '%s'"
msgstr "Unbekanntes URL-Schema »%s«"
@@ -4830,34 +6857,34 @@ msgstr "Kann den lokalen Hostnamen nicht ermitteln"
msgid "Couldn't get lock on destination repos after %d attempts"
msgstr "Konnte Sperre für Zielprojektarchiv nach %d Versuchen nicht erhalten"
-#: ../libsvn_ra_local/ra_plugin.c:161
+#: ../libsvn_ra_local/ra_plugin.c:162
msgid "memory-cache-size invalid"
msgstr "Ungültige »memory-cache-size«"
#. ----------------------------------------------------------------
#. ** The RA vtable routines **
-#: ../libsvn_ra_local/ra_plugin.c:503
+#: ../libsvn_ra_local/ra_plugin.c:509
msgid "Module for accessing a repository on local disk."
msgstr "Modul zum Zugriff auf ein Projektarchiv auf der lokalen Festplatte"
-#: ../libsvn_ra_local/ra_plugin.c:679 ../libsvn_ra_serf/serf.c:822
+#: ../libsvn_ra_local/ra_plugin.c:685 ../libsvn_ra_serf/serf.c:824
#, c-format
msgid "URL '%s' is not a child of the session's repository root URL '%s'"
msgstr "URL »%s« ist kein Kind der Projektarchivwurzel-URL »%s« der Sitzung"
-#: ../libsvn_ra_local/ra_plugin.c:1255 ../libsvn_ra_local/ra_plugin.c:1711
-#: ../libsvn_ra_serf/util.c:1796 ../svnserve/serve.c:3348
+#: ../libsvn_ra_local/ra_plugin.c:1285 ../libsvn_ra_local/ra_plugin.c:1740
+#: ../libsvn_ra_serf/util.c:1844 ../svnserve/serve.c:3554
#, c-format
msgid "'%s' path not found"
msgstr "»%s« Pfad nicht gefunden"
-#: ../libsvn_ra_local/ra_plugin.c:1663 ../libsvn_ra_serf/options.c:732
-#: ../libsvn_ra_svn/client.c:2830
+#: ../libsvn_ra_local/ra_plugin.c:1692 ../libsvn_ra_serf/options.c:777
+#: ../libsvn_ra_svn/client.c:3093
#, c-format
msgid "Don't know anything about capability '%s'"
msgstr "Es ist nichts über die Eigenschaft »%s« bekannt"
-#: ../libsvn_ra_local/ra_plugin.c:1866
+#: ../libsvn_ra_local/ra_plugin.c:1946
#, c-format
msgid "Unsupported RA loader version (%d) for ra_local"
msgstr "Nicht unterstützte Zugriffsmodul-Laderversion (%d) für ra_local"
@@ -4867,35 +6894,35 @@ msgstr "Nicht unterstützte Zugriffsmodul-Laderversion (%d) für ra_local"
msgid "Unable to open repository '%s'"
msgstr "Projektarchiv »%s« kann nicht geöffnet werden"
-#: ../libsvn_ra_serf/commit.c:285
+#: ../libsvn_ra_serf/commit.c:291
msgid "No Location header received"
msgstr "Kein »Location« Kopf empfangen"
-#: ../libsvn_ra_serf/commit.c:295
+#: ../libsvn_ra_serf/commit.c:301
msgid "Error parsing Location header value"
msgstr "Fehler beim Auslesen des Wertes aus dem »Location« Kopf"
-#: ../libsvn_ra_serf/commit.c:481 ../libsvn_repos/commit.c:553
+#: ../libsvn_ra_serf/commit.c:487 ../libsvn_repos/commit.c:551
#, c-format
msgid "Path '%s' not present"
msgstr "Pfad »%s« existiert nicht"
-#: ../libsvn_ra_serf/commit.c:1297
+#: ../libsvn_ra_serf/commit.c:1275
#, c-format
msgid "POST request did not return transaction information"
msgstr "POST-Anfrage lieferte keine Transaktionsinformationen zurück"
-#: ../libsvn_ra_serf/commit.c:1577 ../libsvn_ra_serf/update.c:2263
+#: ../libsvn_ra_serf/commit.c:1566 ../libsvn_ra_serf/update.c:2126
#, c-format
msgid "Unable to parse URL '%s'"
msgstr "Konnte die URL »%s« nicht zerlegen"
-#: ../libsvn_ra_serf/commit.c:1829
+#: ../libsvn_ra_serf/commit.c:1818
#, c-format
msgid "File '%s' already exists"
msgstr "Datei »%s« existiert bereits"
-#: ../libsvn_ra_serf/commit.c:2041 ../libsvn_ra_svn/editorp.c:852
+#: ../libsvn_ra_serf/commit.c:2252 ../libsvn_ra_svn/editorp.c:901
msgid "Closing editor with directories or files open"
msgstr "Schließen des Editors mit geöffneten Verzeichnissen oder Dateien"
@@ -4921,52 +6948,52 @@ msgstr "Server unterstützt keine Sperroperationen"
msgid "The REPORT response did not include the requested properties"
msgstr "Die REPORT-Antwort enthielt nicht den angeforderten Eigenschaften"
-#: ../libsvn_ra_serf/inherited_props.c:173 ../libsvn_ra_serf/property.c:264
-#: ../libsvn_ra_serf/update.c:1886
+#: ../libsvn_ra_serf/inherited_props.c:171 ../libsvn_ra_serf/property.c:264
+#: ../libsvn_ra_serf/update.c:1749
#, c-format
msgid "Got unrecognized encoding '%s'"
msgstr "Unbekannte Codierung »%s«"
+#: ../libsvn_ra_serf/list.c:113 ../libsvn_ra_serf/log.c:172
+#, c-format
+msgid "Unsupported encoding '%s'"
+msgstr "Nicht unterstützte Kodierung »%s«"
+
#: ../libsvn_ra_serf/lock.c:261
#, c-format
msgid "No lock on path '%s' (%d %s)"
msgstr "Keine Sperre für Pfad »%s« (%d %s)"
#: ../libsvn_ra_serf/lock.c:270
-#, c-format
-msgid "Unlock of '%s' failed (%d %s)"
-msgstr "Freigabe der Sperre von »%s« gescheitert (%d %s)"
+#, fuzzy, c-format
+msgid "Not authorized to perform lock operation on '%s'"
+msgstr "Keine Berechtigung die Basis der Änderung zu öffnen"
-#: ../libsvn_ra_serf/lock.c:278
+#: ../libsvn_ra_serf/lock.c:277
#, c-format
msgid "Path '%s' doesn't exist in HEAD revision (%d %s)"
msgstr "Pfad »%s« existiert nicht in HEAD-Revision (%d %s)"
-#: ../libsvn_ra_serf/lock.c:287
+#: ../libsvn_ra_serf/lock.c:293
#, c-format
msgid "Path '%s' already locked (%d %s)"
msgstr "Pfad »%s« bereits gesperrt (%d %s)"
-#: ../libsvn_ra_serf/lock.c:603
+#: ../libsvn_ra_serf/lock.c:609
#, c-format
msgid "'%s' is not locked in the repository"
msgstr "»%s« ist im Projektarchiv nicht gesperrt"
-#: ../libsvn_ra_serf/log.c:172
-#, c-format
-msgid "Unsupported encoding '%s'"
-msgstr "Nicht unterstützte Kodierung »%s«"
-
-#: ../libsvn_ra_serf/log.c:574 ../libsvn_ra_svn/client.c:1714
+#: ../libsvn_ra_serf/log.c:574 ../libsvn_ra_svn/client.c:1946
msgid "Server does not support custom revprops via log"
msgstr "Server unterstützt benutzerdefinierte Revisionseigenschaften mittels log nicht"
-#: ../libsvn_ra_serf/merge.c:205
+#: ../libsvn_ra_serf/merge.c:206
#, c-format
msgid "A MERGE response for '%s' is not a child of the destination ('%s')"
msgstr "Eine MERGE-Antwort für »%s« ist kein Kind des Ziels (»%s«)"
-#: ../libsvn_ra_serf/merge.c:447
+#: ../libsvn_ra_serf/merge.c:461
msgid "The MERGE response did not include a new revision"
msgstr "Die MERGE-Antwort enthielt keine neue Revision"
@@ -4975,74 +7002,79 @@ msgstr "Die MERGE-Antwort enthielt keine neue Revision"
msgid "Malformed DAV:status '%s'"
msgstr "Fehlerhaftes Format in »DAV:status«: »%s«"
-#: ../libsvn_ra_serf/multistatus.c:536
+#: ../libsvn_ra_serf/multistatus.c:534
#, c-format
msgid "Property operation on '%s' failed"
msgstr "Operation auf Eigenschaft von »%s« fehlgeschlagen"
-#: ../libsvn_ra_serf/multistatus.c:555
+#: ../libsvn_ra_serf/multistatus.c:553
msgid "<blank error>"
msgstr "<kein Fehlertext>"
-#: ../libsvn_ra_serf/multistatus.c:564
+#: ../libsvn_ra_serf/multistatus.c:562
#, c-format
msgid "While handling the '%s' property on '%s':"
msgstr "Während der Abwicklung der Eigenschaft »%s« von »%s«:"
-#: ../libsvn_ra_serf/multistatus.c:568
+#: ../libsvn_ra_serf/multistatus.c:566
#, c-format
msgid "While handling the '%s' path:"
msgstr "Während der Abwicklung des Pfades »%s«:"
-#: ../libsvn_ra_serf/options.c:446
+#: ../libsvn_ra_serf/options.c:413
+#, c-format
+msgid "The server at '%s' does not support the HTTP/DAV protocol"
+msgstr ""
+
+#: ../libsvn_ra_serf/options.c:491
msgid "The OPTIONS response did not include the youngest revision"
msgstr "Die OPTIONS-Antwort enthielt nicht die jüngste Revision"
-#: ../libsvn_ra_serf/options.c:487
+#: ../libsvn_ra_serf/options.c:532
msgid "The OPTIONS response did not include the requested activity-collection-set value"
msgstr "Die OPTIONS-Antwort enthielt nicht den angeforderten Wert »activity-collection-set«"
-#: ../libsvn_ra_serf/options.c:529
+#: ../libsvn_ra_serf/options.c:574
msgid "Location header not set on redirect response"
msgstr "Location-Kopfzeile in der Umleitungsantwort nicht gesetzt"
-#: ../libsvn_ra_serf/options.c:559 ../libsvn_ra_serf/util.c:1787
+#: ../libsvn_ra_serf/options.c:604 ../libsvn_ra_serf/util.c:1835
#, c-format
msgid "Repository moved permanently to '%s'"
msgstr "Das Projektarchiv wurde permanent nach »%s« verschoben"
-#: ../libsvn_ra_serf/options.c:560 ../libsvn_ra_serf/util.c:1788
+#: ../libsvn_ra_serf/options.c:605 ../libsvn_ra_serf/util.c:1836
#, c-format
msgid "Repository moved temporarily to '%s'"
msgstr "Das Projektarchiv wurde zeitweilig nach »%s« verschoben"
-#: ../libsvn_ra_serf/options.c:715
+#: ../libsvn_ra_serf/options.c:760
#, c-format
msgid "Don't know how to handle '%s' for capability '%s'"
msgstr "Es ist unklar, wie mit »%s« für Eigenschaft »%s« verfahren werden soll"
-#: ../libsvn_ra_serf/options.c:739
+#: ../libsvn_ra_serf/options.c:784
#, c-format
msgid "Attempt to fetch capability '%s' resulted in '%s'"
msgstr "Der Versuch, die Eigenschaft »%s« abzufragen, führte zu »%s«"
-#: ../libsvn_ra_serf/property.c:663
+#: ../libsvn_ra_serf/property.c:668
msgid "The PROPFIND response did not include the requested baseline-collection value"
msgstr "Die PROPFIND-Antwort enthielt nicht den angeforderten Wert »baseline-collection«"
-#: ../libsvn_ra_serf/property.c:683
+#: ../libsvn_ra_serf/property.c:688
msgid "The PROPFIND response did not include the requested version-name value"
msgstr "Die PROPFIND-Antwort enthielt nicht den angeforderten Wert »version-name«"
-#: ../libsvn_ra_serf/property.c:719
+#: ../libsvn_ra_serf/property.c:724
msgid "The OPTIONS response did not include the requested checked-in value"
msgstr "Die OPTIONS-Antwort enthielt nicht den angeforderten Wert »checked-in«"
-#: ../libsvn_ra_serf/property.c:891
+#: ../libsvn_ra_serf/property.c:896
msgid "The PROPFIND response did not include the requested 'DAV:' properties"
msgstr "Die PROPFIND-Antwort enthielt nicht die angeforderten »DAV:«-Eigenschaften"
-#: ../libsvn_ra_serf/replay.c:466
+#: ../libsvn_ra_serf/replay.c:468
msgid "Error writing stream: unexpected EOF"
msgstr "Fehler beim Schreiben in Datenstrom: unerwartetes EOF"
@@ -5055,65 +7087,58 @@ msgid "Module for accessing a repository via WebDAV protocol using serf."
msgstr "Modul zum Zugriff auf ein Projektarchiv über das Protokoll WebDAV mittels serf."
#: ../libsvn_ra_serf/serf.c:66
-#, c-format
+#, fuzzy, c-format
msgid ""
"Module for accessing a repository via WebDAV protocol using serf.\n"
-" - using serf %d.%d.%d"
+" - using serf %d.%d.%d (compiled with %d.%d.%d)"
msgstr ""
"Modul zum Zugriff auf ein Projektarchiv über das Protokoll WebDAV mittels serf.\n"
" - verwendet serf %d.%d.%d"
# password store: kwallet, ...
-#: ../libsvn_ra_serf/serf.c:130
+#: ../libsvn_ra_serf/serf.c:135
#, c-format
msgid "Invalid config: unknown %s '%s'"
msgstr "Ungültige Konfiguration: Unbekanntes %s »%s«"
-#: ../libsvn_ra_serf/serf.c:363
-msgid "Invalid config: illegal character in timeout value"
-msgstr "Ungültige Konfiguration: Illegales Zeichen im Timeout-Wert"
-
-#: ../libsvn_ra_serf/serf.c:367
-msgid "Invalid config: negative timeout value"
-msgstr "Ungültige Konfiguration: Negativer Timeout-Wert"
+# password store: kwallet, ...
+#: ../libsvn_ra_serf/serf.c:370
+#, fuzzy, c-format
+msgid "invalid config: bad value for '%s' option"
+msgstr "Ungültige Konfiguration: Unbekanntes %s »%s«"
-#: ../libsvn_ra_serf/serf.c:380
+#: ../libsvn_ra_serf/serf.c:383
msgid "Invalid URL: illegal character in proxy port number"
msgstr "Ungültige URL: Illegales Zeichen in Proxy Portnummer"
-#: ../libsvn_ra_serf/serf.c:384
+#: ../libsvn_ra_serf/serf.c:387
msgid "Invalid URL: negative proxy port number"
msgstr "Ungültige URL: Negative Proxy Portnummer"
-#: ../libsvn_ra_serf/serf.c:387
+#: ../libsvn_ra_serf/serf.c:390
msgid "Invalid URL: proxy port number greater than maximum TCP port number 65535"
msgstr "Ungültige URL: Proxy Portnummer ist größer als die maximale TCP Portnummer 65535"
-#: ../libsvn_ra_serf/serf.c:407
+#: ../libsvn_ra_serf/serf.c:410
#, c-format
msgid "Could not resolve proxy server '%s'"
msgstr "Konnte Proxy-Server »%s« nicht auflösen"
-#: ../libsvn_ra_serf/serf.c:517
-#, c-format
-msgid "Illegal URL '%s'"
-msgstr "Ungültige URL »%s«"
-
-#: ../libsvn_ra_serf/serf.c:609
+#: ../libsvn_ra_serf/serf.c:607
#, c-format
msgid "Connection to '%s' failed"
msgstr "Verbindung zu »%s« fehlgeschlagen"
-#: ../libsvn_ra_serf/serf.c:1028
+#: ../libsvn_ra_serf/serf.c:1016
msgid "The UUID property was not found on the resource or any of its parents"
msgstr "Die UUID-Eigenschaft wurde weder auf der Ressource noch ihren Eltern gefunden."
-#: ../libsvn_ra_serf/serf.c:1103
+#: ../libsvn_ra_serf/serf.c:1095
#, c-format
msgid "Unsupported RA loader version (%d) for ra_serf"
msgstr "Nicht unterstützte Zugriffsmodul-Laderversion (%d) für ra_serf"
-#: ../libsvn_ra_serf/serf.c:1117
+#: ../libsvn_ra_serf/serf.c:1109
#, c-format
msgid "ra_serf was compiled for serf %d.%d.%d but loaded an incompatible %d.%d.%d library"
msgstr "ra_serv wurde für serf %d.%d.%d übersetzt, lud aber die nicht kompatible Version %d.%d.%d der Bibliothek"
@@ -5122,70 +7147,70 @@ msgstr "ra_serv wurde für serf %d.%d.%d übersetzt, lud aber die nicht kompatib
msgid "The PROPFIND response did not include the requested resourcetype value"
msgstr "Die PROPFIND-Antwort enthielt nicht den angeforderten Wert »resourcetype«"
-#: ../libsvn_ra_serf/stat.c:410 ../libsvn_ra_serf/stat.c:448
+#: ../libsvn_ra_serf/stat.c:357 ../libsvn_ra_serf/stat.c:395
msgid "Can't get properties of non-directory"
msgstr "Kann keine Eigenschaften eines nicht-Verzeichnises lesen"
-#: ../libsvn_ra_serf/update.c:1135
+#: ../libsvn_ra_serf/update.c:992 ../libsvn_ra_serf/update.c:998
#, c-format
msgid "GET request returned unexpected delta base: %s"
msgstr "GET-Anfrage gab eine nicht erwartete Delta-Basis zurück: %s"
-#: ../libsvn_ra_serf/update.c:1692 ../libsvn_ra_serf/update.c:1742
+#: ../libsvn_ra_serf/update.c:1555 ../libsvn_ra_serf/update.c:1605
#, c-format
msgid "Missing '%s' attribute"
msgstr "Fehlendes Attribut »%s«"
-#: ../libsvn_ra_serf/update.c:1956 ../libsvn_ra_serf/update.c:1986
+#: ../libsvn_ra_serf/update.c:1819 ../libsvn_ra_serf/update.c:1849
msgid "The REPORT response did not include the requested checked-in value"
msgstr "Die REPORT-Antwort enthielt nicht den angeforderten Wert »checked-in«"
-#: ../libsvn_ra_serf/update.c:2636
+#: ../libsvn_ra_serf/update.c:2459
msgid "Missing update-report close tag"
msgstr "Abschließendes Tag »update-report« fehlt"
-#: ../libsvn_ra_serf/util.c:195
+#: ../libsvn_ra_serf/util.c:197
msgid ": "
msgstr ": "
-#: ../libsvn_ra_serf/util.c:197
+#: ../libsvn_ra_serf/util.c:199
msgid ", "
msgstr ", "
-#: ../libsvn_ra_serf/util.c:407
+#: ../libsvn_ra_serf/util.c:409
msgid "Server SSL certificate verification failed"
msgstr "Überprüfung des Server-SSL-Zertifikats fehlgeschlagen"
-#: ../libsvn_ra_serf/util.c:412
+#: ../libsvn_ra_serf/util.c:414
msgid "certificate is not yet valid"
msgstr "Das Zertifikat ist noch nicht gültig"
-#: ../libsvn_ra_serf/util.c:415
+#: ../libsvn_ra_serf/util.c:417
msgid "certificate has expired"
msgstr "Das Zertifikat ist abgelaufen"
-#: ../libsvn_ra_serf/util.c:419
+#: ../libsvn_ra_serf/util.c:421
msgid "certificate issued for a different hostname"
msgstr "Zertifikat wurde für einen anderen Hostnamen ausgestellt"
-#: ../libsvn_ra_serf/util.c:423
+#: ../libsvn_ra_serf/util.c:425
msgid "issuer is not trusted"
msgstr "Herausgeber wird nicht vertraut"
-#: ../libsvn_ra_serf/util.c:426
+#: ../libsvn_ra_serf/util.c:428
msgid "and other reason(s)"
msgstr "und weitere Gründe"
-#: ../libsvn_ra_serf/util.c:473
+#: ../libsvn_ra_serf/util.c:475
#, c-format
msgid "Invalid config: unable to load certificate file '%s'"
msgstr "Ungültige Konfiguration: Zertifikatsdatei »%s« kann nicht geladen werden"
-#: ../libsvn_ra_serf/util.c:911 ../libsvn_ra_serf/util.c:914
+#: ../libsvn_ra_serf/util.c:955 ../libsvn_ra_serf/util.c:958
msgid "Error running context"
msgstr "Fehler beim Ausführen des Kontextes"
-#: ../libsvn_ra_serf/util.c:1186
+#: ../libsvn_ra_serf/util.c:1230
msgid ""
"No more credentials or we tried too many times.\n"
"Authentication failed"
@@ -5193,179 +7218,179 @@ msgstr ""
"Keine weiteren Zugangsdaten oder zu viele Versuche.\n"
"Anmeldung fehlgeschlagen"
-#: ../libsvn_ra_serf/util.c:1208
+#: ../libsvn_ra_serf/util.c:1252
msgid "Proxy authentication failed"
msgstr "Proxy-Anmeldung schlug fehl"
-#: ../libsvn_ra_serf/util.c:1263
+#: ../libsvn_ra_serf/util.c:1307
#, c-format
msgid "%s request on '%s' failed"
msgstr "%s-Anfrage auf »%s« schlug fehl"
-#: ../libsvn_ra_serf/util.c:1335
+#: ../libsvn_ra_serf/util.c:1383
#, c-format
msgid "Premature EOF seen from server (http status=%d)"
msgstr "Vorzeitiges EOF vom Server (http Status=%d)"
-#: ../libsvn_ra_serf/util.c:1686
+#: ../libsvn_ra_serf/util.c:1734
msgid "The PROPFIND response did not include the requested version-controlled-configuration value"
msgstr "Die PROPFIND-Antwort enthielt nicht den angeforderten Wert »version-controlled-configuration«"
-#: ../libsvn_ra_serf/util.c:1792
+#: ../libsvn_ra_serf/util.c:1840
#, c-format
msgid "Access to '%s' forbidden"
msgstr "Zugriff auf »%s« verboten"
-#: ../libsvn_ra_serf/util.c:1799
+#: ../libsvn_ra_serf/util.c:1847
#, c-format
msgid "HTTP method is not allowed on '%s'"
msgstr "HTTP-Methode ist auf »%s« nicht erlaubt"
-#: ../libsvn_ra_serf/util.c:1803
+#: ../libsvn_ra_serf/util.c:1851
#, c-format
msgid "'%s' conflicts"
msgstr "»%s« ist von einem Konflikt betroffen"
-#: ../libsvn_ra_serf/util.c:1806
+#: ../libsvn_ra_serf/util.c:1854
#, c-format
msgid "Precondition on '%s' failed"
msgstr "Vorbedingung von »%s« fehlgeschlagen"
-#: ../libsvn_ra_serf/util.c:1809
+#: ../libsvn_ra_serf/util.c:1857
#, c-format
msgid "'%s': no lock token available"
msgstr "»%s«: Keine Sperrmarke verfügbar"
-#: ../libsvn_ra_serf/util.c:1813
+#: ../libsvn_ra_serf/util.c:1861
#, c-format
msgid "DAV request failed: 411 Content length required. The server or an intermediate proxy does not accept chunked encoding. Try setting 'http-chunked-requests' to 'auto' or 'no' in your client configuration."
msgstr "DAV-Anfrage fehlgeschlagen: 411 Angabe zur Länge des Inhalts erforderlich. Der Server oder ein dazwischengeschalteter Proxy-Server akzeptiert Kodierung in Teilstücken nicht. Versuchen Sie »http-chunked-requests« auf »auto« oder »no« in der Konfiguration des Clients."
-#: ../libsvn_ra_serf/util.c:1819
+#: ../libsvn_ra_serf/util.c:1867
#, c-format
msgid "Unexpected server error %d '%s' on '%s'"
msgstr "Unerwarteter Serverfehler %d »%s« auf »%s«"
-#: ../libsvn_ra_serf/util.c:1823
+#: ../libsvn_ra_serf/util.c:1871
#, c-format
msgid "The requested feature is not supported by '%s'"
msgstr "Die angeforderte Funktion wird von »%s« nicht unterstützt"
-#: ../libsvn_ra_serf/util.c:1829
+#: ../libsvn_ra_serf/util.c:1877
#, c-format
msgid "Unexpected HTTP status %d '%s' on '%s'"
msgstr "Unerwarteter HTTP-Status %d »%s« auf »%s«"
-#: ../libsvn_ra_serf/util.c:1848
+#: ../libsvn_ra_serf/util.c:1896
#, c-format
msgid "Path '%s' unexpectedly created"
msgstr "Pfad »%s« wurde unerwartet erstellt"
-#: ../libsvn_ra_serf/util.c:1857
+#: ../libsvn_ra_serf/util.c:1905
#, c-format
msgid "The HTTP method '%s' is not allowed on '%s'"
msgstr "Die HTTP-Methode »%s« ist auf »%s« nicht erlaubt"
-#: ../libsvn_ra_serf/util.c:1862
+#: ../libsvn_ra_serf/util.c:1910
#, c-format
msgid "Unexpected HTTP status %d '%s' on '%s' request to '%s'"
msgstr "Unerwarteter HTTP-Status %d »%s« auf »%s« bei Anfrage an »%s«"
-#: ../libsvn_ra_serf/xml.c:502
+#: ../libsvn_ra_serf/util.c:2013
+#, c-format
+msgid "Illegal URL '%s'"
+msgstr "Ungültige URL »%s«"
+
+#: ../libsvn_ra_serf/xml.c:483
#, c-format
msgid "XML stream truncated: closing '%s' missing"
msgstr "XML-Strom abgeschnitten: Abschließendes »%s« fehlt"
-#: ../libsvn_ra_serf/xml.c:530
+#: ../libsvn_ra_serf/xml.c:511
msgid "document element not found"
msgstr "Dokumenten-Element nicht gefunden"
-#: ../libsvn_ra_serf/xml.c:533
+#: ../libsvn_ra_serf/xml.c:514
#, c-format
msgid "XML stream truncated: %s"
msgstr "XML-Strom abgeschnitten: %s"
-#: ../libsvn_ra_serf/xml.c:698
+#: ../libsvn_ra_serf/xml.c:679
#, c-format
msgid "XML Parsing failed: Unexpected root element '%s'"
msgstr "XML-Parser schlug fehl: Nicht erwartetes Wurzelelement »%s«"
-#: ../libsvn_ra_serf/xml.c:758
+#: ../libsvn_ra_serf/xml.c:739
#, c-format
msgid "Missing XML attribute '%s' on '%s' element"
msgstr "Fehlendes XML-Attribut: »%s« in Element »%s«"
-#: ../libsvn_ra_serf/xml.c:916
-#, c-format
-msgid "Malformed XML: %s"
-msgstr "Fehlerhaftes XML: %s"
-
-#: ../libsvn_ra_serf/xml.c:918
+#: ../libsvn_ra_serf/xml.c:878
msgid "The XML response contains invalid XML"
msgstr "Die XML-Antwort enthält ungültiges XML"
-#: ../libsvn_ra_svn/client.c:142
+#: ../libsvn_ra_svn/client.c:144
#, c-format
msgid "Unknown hostname '%s'"
msgstr "Unbekannter Hostname »%s«"
-#: ../libsvn_ra_svn/client.c:167
+#: ../libsvn_ra_svn/client.c:169
#, c-format
msgid "Can't connect to host '%s'"
msgstr "Kann nicht mit Host »%s« verbinden"
-#: ../libsvn_ra_svn/client.c:205
+#: ../libsvn_ra_svn/client.c:207
msgid "Prop diffs element not a list"
msgstr "Eigenschafts-Diff Element ist keine Liste"
-#: ../libsvn_ra_svn/client.c:404
+#: ../libsvn_ra_svn/client.c:407
#, c-format
msgid "Undefined tunnel scheme '%s'"
msgstr "Undefiniertes Tunnelschema »%s«"
-#: ../libsvn_ra_svn/client.c:421
+#: ../libsvn_ra_svn/client.c:424
#, c-format
msgid "Tunnel scheme %s requires environment variable %s to be defined"
msgstr "Für Tunnelschema %s muss die Umgebungsvariable %s definiert sein"
-#: ../libsvn_ra_svn/client.c:432
+#: ../libsvn_ra_svn/client.c:435
#, c-format
msgid "Can't tokenize command '%s'"
msgstr "Kann Anweisung »%s« nicht zerlegen"
-#: ../libsvn_ra_svn/client.c:475
+#: ../libsvn_ra_svn/client.c:478
#, c-format
msgid "Error in child process: %s"
msgstr "Fehler in Kindprozess: %s"
-#: ../libsvn_ra_svn/client.c:554
+#: ../libsvn_ra_svn/client.c:557
msgid "To better debug SSH connection problems, remove the -q option from 'ssh' in the [tunnels] section of your Subversion configuration file."
msgstr "Um Probleme mit der Konfiguration von SSH zu untersuchen, entfernen Sie die Option »-q« von »ssh« im Abschnitt »[tunnels]« Ihrer Konfigurationsdatei für Subversion."
-#: ../libsvn_ra_svn/client.c:572
+#: ../libsvn_ra_svn/client.c:575
#, c-format
msgid "Illegal svn repository URL '%s'"
msgstr "Illegale svn Projektarchiv URL »%s«"
-#: ../libsvn_ra_svn/client.c:723
+#: ../libsvn_ra_svn/client.c:732
#, c-format
msgid "Server requires minimum version %d"
msgstr "Server erfordert mindestens Version %d"
-#: ../libsvn_ra_svn/client.c:727
+#: ../libsvn_ra_svn/client.c:736
#, c-format
msgid "Server only supports versions up to %d"
msgstr "Server unterstützt nur Versionen bis zu %d"
-#: ../libsvn_ra_svn/client.c:735
+#: ../libsvn_ra_svn/client.c:744
msgid "Server does not support edit pipelining"
msgstr "Server unterstützt »edit pipelining« nicht"
-#: ../libsvn_ra_svn/client.c:772
+#: ../libsvn_ra_svn/client.c:782
msgid "Impossibly long repository root from server"
msgstr "Unmöglich lange Projektarchivbasis vom Server"
-#: ../libsvn_ra_svn/client.c:784
+#: ../libsvn_ra_svn/client.c:794
msgid ""
"Module for accessing a repository using the svn network protocol.\n"
" - with Cyrus SASL authentication"
@@ -5373,154 +7398,164 @@ msgstr ""
"Modul zum Zugriff auf ein Projektarchiv über das svn-Netzwerkprotokoll.\n"
" - mit Cyrus-SASL-Authentifizierung"
-#: ../libsvn_ra_svn/client.c:788
+#: ../libsvn_ra_svn/client.c:798
msgid "Module for accessing a repository using the svn network protocol."
msgstr "Modul zum Zugriff auf ein Projektarchiv über das svn-Netzwerkprotokoll"
-#: ../libsvn_ra_svn/client.c:1025
+#: ../libsvn_ra_svn/client.c:880
+#, fuzzy, c-format
+msgid "Invalid host '%s'"
+msgstr "Ungültiger Port »%s«"
+
+#: ../libsvn_ra_svn/client.c:1209
msgid "Server did not send repository root"
msgstr "Server gab keine Projektarchivbasis zurück"
-#: ../libsvn_ra_svn/client.c:1101
+#: ../libsvn_ra_svn/client.c:1285
#, c-format
msgid "ra_svn does not support not specifying a log message with pre-1.5 servers; consider passing an empty one, or upgrading the server"
msgstr "ra_svn unterstützt die Angabe einer Logmeldung mit Servern älter als 1.5 nicht; Versuchen Sie, eine leere Logmeldung zu übergeben oder verwenden Sie eine neuere Version auf dem Server"
-#: ../libsvn_ra_svn/client.c:1124
+#: ../libsvn_ra_svn/client.c:1308
msgid "Server doesn't support setting arbitrary revision properties during commit"
msgstr "Der Server unterstützt das Setzen beliebiger Revisionseigenschaften während eines Commits nicht"
-#: ../libsvn_ra_svn/client.c:1227
+#: ../libsvn_ra_svn/client.c:1410
msgid "Inherited proplist element not a list"
msgstr "Element für geerbte Eigenschaften ist keine Liste"
-#: ../libsvn_ra_svn/client.c:1302
+#: ../libsvn_ra_svn/client.c:1484
msgid "Non-string as part of file contents"
msgstr "Ein Teil des Dateiinhaltes ist keine Zeichenkette"
-#: ../libsvn_ra_svn/client.c:1391
+#: ../libsvn_ra_svn/client.c:1592
msgid "Dirlist element not a list"
msgstr "Verzeichniseintrag ist keine Liste"
-#: ../libsvn_ra_svn/client.c:1400
+#: ../libsvn_ra_svn/client.c:1601
#, c-format
msgid "Invalid directory entry name '%s'"
msgstr "Ungültiger Name für Verzeichniseintrag »%s«"
-#: ../libsvn_ra_svn/client.c:1483
+#: ../libsvn_ra_svn/client.c:1686
msgid "Mergeinfo element is not a list"
msgstr "Zusammenführungsinfo-Element ist keine Liste"
-#: ../libsvn_ra_svn/client.c:1702
+#: ../libsvn_ra_svn/client.c:1934
msgid "Log entry not a list"
msgstr "Logeintrag ist keine Liste"
-#: ../libsvn_ra_svn/client.c:1750
+#: ../libsvn_ra_svn/client.c:1981
msgid "Changed-path entry not a list"
msgstr "Eintrag für geänderte Pfade ist keine Liste"
-#: ../libsvn_ra_svn/client.c:1905
+#: ../libsvn_ra_svn/client.c:2148
msgid "'stat' not implemented"
msgstr "»stat« nicht implementiert"
-#: ../libsvn_ra_svn/client.c:1964
+#: ../libsvn_ra_svn/client.c:2210
msgid "'get-locations' not implemented"
msgstr "»get-locations« nicht implementiert"
-#: ../libsvn_ra_svn/client.c:1979
+#: ../libsvn_ra_svn/client.c:2227
msgid "Location entry not a list"
msgstr "Ortseintrag ist keine Liste"
-#: ../libsvn_ra_svn/client.c:2019
+#: ../libsvn_ra_svn/client.c:2271
msgid "'get-location-segments' not implemented"
msgstr "»get-location-segments« nicht implementiert"
-#: ../libsvn_ra_svn/client.c:2036
+#: ../libsvn_ra_svn/client.c:2288
msgid "Location segment entry not a list"
msgstr "Ortssegmenteintrag ist keine Liste"
-#: ../libsvn_ra_svn/client.c:2046
+#: ../libsvn_ra_svn/client.c:2298
msgid "Expected valid revision range"
msgstr "Erwartete einen gültigen Revisionsbereich"
-#: ../libsvn_ra_svn/client.c:2117
+#: ../libsvn_ra_svn/client.c:2371
msgid "'get-file-revs' not implemented"
msgstr "»get-file-revs« nicht implementiert"
-#: ../libsvn_ra_svn/client.c:2141
+#: ../libsvn_ra_svn/client.c:2395
msgid "Revision entry not a list"
msgstr "Revisionseintrag ist keine Liste"
-#: ../libsvn_ra_svn/client.c:2158 ../libsvn_ra_svn/client.c:2188
+#: ../libsvn_ra_svn/client.c:2412 ../libsvn_ra_svn/client.c:2442
msgid "Text delta chunk not a string"
msgstr "Text-Deltastück ist kein String"
-#: ../libsvn_ra_svn/client.c:2200
+#: ../libsvn_ra_svn/client.c:2454
msgid "The get-file-revs command didn't return any revisions"
msgstr "Der »get-file-revs« Befehl gab keine Revisionen zurück"
-#: ../libsvn_ra_svn/client.c:2247
+#: ../libsvn_ra_svn/client.c:2501
msgid "Server doesn't support the lock command"
msgstr "Server unterstützt das Kommando »lock« nicht"
-#: ../libsvn_ra_svn/client.c:2311
+#: ../libsvn_ra_svn/client.c:2565
msgid "Server doesn't support the unlock command"
msgstr "Server unterstützt das Kommando »unlock« nicht"
-#: ../libsvn_ra_svn/client.c:2409
+#: ../libsvn_ra_svn/client.c:2664
msgid "Lock response not a list"
msgstr "Antwort beim Sperren ist keine Liste"
-#: ../libsvn_ra_svn/client.c:2423
+#: ../libsvn_ra_svn/client.c:2677
msgid "Unknown status for lock command"
msgstr "Unbekannter Status für Sperrbefehl"
-#: ../libsvn_ra_svn/client.c:2447
+#: ../libsvn_ra_svn/client.c:2701
msgid "Didn't receive end marker for lock responses"
msgstr "Keine Endemarke für Sperrantworten erhalten"
-#: ../libsvn_ra_svn/client.c:2537
+#: ../libsvn_ra_svn/client.c:2792
msgid "Unlock response not a list"
msgstr "Antwort beim Entsperren ist keine Liste"
-#: ../libsvn_ra_svn/client.c:2551
+#: ../libsvn_ra_svn/client.c:2805
msgid "Unknown status for unlock command"
msgstr "Unbekannter Status für Entsperrbefehl"
-#: ../libsvn_ra_svn/client.c:2574
+#: ../libsvn_ra_svn/client.c:2828
msgid "Didn't receive end marker for unlock responses"
msgstr "Keine Endemarke für Entsperrantworten erhalten"
-#: ../libsvn_ra_svn/client.c:2598 ../libsvn_ra_svn/client.c:2650
+#: ../libsvn_ra_svn/client.c:2853 ../libsvn_ra_svn/client.c:2906
msgid "Server doesn't support the get-lock command"
msgstr "Server unterstützt das Kommando »get-lock« nicht"
-#: ../libsvn_ra_svn/client.c:2664
+#: ../libsvn_ra_svn/client.c:2920
msgid "Lock element not a list"
msgstr "Sperrelement ist keine Liste"
-#: ../libsvn_ra_svn/client.c:2707
+#: ../libsvn_ra_svn/client.c:2966
msgid "Server doesn't support the replay command"
msgstr "Server unterstützt das Kommando »replay« nicht"
-#: ../libsvn_ra_svn/client.c:2738
+#: ../libsvn_ra_svn/client.c:3000
msgid "Server doesn't support the replay-range command"
msgstr "Server unterstützt das Kommando »replay-range« nicht"
-#: ../libsvn_ra_svn/client.c:2761
+#: ../libsvn_ra_svn/client.c:3023
#, c-format
msgid "Expected 'revprops', found '%s'"
msgstr "Erwartete »revprops«, fand »%s«"
-#: ../libsvn_ra_svn/client.c:2779
+#: ../libsvn_ra_svn/client.c:3041
msgid "Error while replaying commit"
msgstr "Fehler beim Wiederholen der Ãœbertragung"
-#: ../libsvn_ra_svn/client.c:2852
+#: ../libsvn_ra_svn/client.c:3117
msgid "'get-deleted-rev' not implemented"
msgstr "»get-deleted-rev« nicht implementiert"
-#: ../libsvn_ra_svn/client.c:2963
+#: ../libsvn_ra_svn/client.c:3223
+#, fuzzy
+msgid "List entry not a list"
+msgstr "Logeintrag ist keine Liste"
+
+#: ../libsvn_ra_svn/client.c:3310
#, c-format
msgid "Unsupported RA loader version (%d) for ra_svn"
msgstr "Nicht unterstützte Zugriffsmodul-Laderversion (%d) für ra_svn"
@@ -5546,38 +7581,38 @@ msgstr "Konnte die SASL-Bibliothek nicht initialisieren: %s%s"
msgid "Could not create SASL context: %s%s"
msgstr "Konnte SASL-Kontext nicht erstellen: %s%s"
-#: ../libsvn_ra_svn/cyrus_auth.c:932 ../libsvn_ra_svn/internal_auth.c:63
+#: ../libsvn_ra_svn/cyrus_auth.c:933 ../libsvn_ra_svn/internal_auth.c:63
#: ../libsvn_ra_svn/internal_auth.c:114
#, c-format
msgid "Authentication error from server: %s"
msgstr "Anmeldefehler von Server: %s"
-#: ../libsvn_ra_svn/cyrus_auth.c:936
+#: ../libsvn_ra_svn/cyrus_auth.c:937
msgid "Can't get username or password"
msgstr "Kann Benutzername oder Passwort nicht erhalten"
-#: ../libsvn_ra_svn/editorp.c:147
+#: ../libsvn_ra_svn/editorp.c:163
msgid "Successful edit status returned too soon"
msgstr "Status für erfolgreiche Bearbeitung wurde zu früh zurückgegeben"
-#: ../libsvn_ra_svn/editorp.c:495
+#: ../libsvn_ra_svn/editorp.c:515
msgid "Invalid file or dir token during edit"
msgstr "Ungültige Datei- oder Verzeichnismarke während der Bearbeitung"
-#: ../libsvn_ra_svn/editorp.c:736
+#: ../libsvn_ra_svn/editorp.c:779
msgid "Apply-textdelta already active"
msgstr "Text-Delta Anwendung bereits aktiv"
-#: ../libsvn_ra_svn/editorp.c:758 ../libsvn_ra_svn/editorp.c:776
+#: ../libsvn_ra_svn/editorp.c:802 ../libsvn_ra_svn/editorp.c:821
msgid "Apply-textdelta not active"
msgstr "Text-Delta Anwendung nicht aktiv"
-#: ../libsvn_ra_svn/editorp.c:879
+#: ../libsvn_ra_svn/editorp.c:930
#, c-format
msgid "Command 'finish-replay' invalid outside of replays"
msgstr "Das Kommando »finish-replay« ist außerhalb von »replay«s ungültig"
-#: ../libsvn_ra_svn/editorp.c:983 ../libsvn_ra_svn/marshal.c:1608
+#: ../libsvn_ra_svn/editorp.c:1130 ../libsvn_ra_svn/marshal.c:1967
#, c-format
msgid "Unknown editor command '%s'"
msgstr "Unbekannter Editorbefehl »%s«"
@@ -5586,43 +7621,43 @@ msgstr "Unbekannter Editorbefehl »%s«"
msgid "Can't get password"
msgstr "Kein Passwort erhalten"
-#: ../libsvn_ra_svn/marshal.c:147
+#: ../libsvn_ra_svn/marshal.c:261
msgid "Capability entry is not a word"
msgstr "Eigenschaftseintrag ist kein Wort"
-#: ../libsvn_ra_svn/marshal.c:952
+#: ../libsvn_ra_svn/marshal.c:1228
msgid "String length larger than maximum"
msgstr "Stringlänge größer als Maximum"
-#: ../libsvn_ra_svn/marshal.c:1019
+#: ../libsvn_ra_svn/marshal.c:1308
msgid "Items are nested too deeply"
msgstr "Elemente sind zu tief verschachtelt"
-#: ../libsvn_ra_svn/marshal.c:1040 ../libsvn_ra_svn/marshal.c:1159
+#: ../libsvn_ra_svn/marshal.c:1329 ../libsvn_ra_svn/marshal.c:1489
msgid "Number is larger than maximum"
msgstr "Zahl ist größer als Maximum"
-#: ../libsvn_ra_svn/marshal.c:1071
+#: ../libsvn_ra_svn/marshal.c:1384
msgid "Word is too long"
msgstr "Wort ist zu lang"
-#: ../libsvn_ra_svn/marshal.c:1187
+#: ../libsvn_ra_svn/marshal.c:1517
msgid "Word too long"
msgstr "Wort zu lang"
-#: ../libsvn_ra_svn/marshal.c:1447
+#: ../libsvn_ra_svn/marshal.c:1781
msgid "Proplist element not a list"
msgstr "Eigenschaftselement ist keine Liste"
-#: ../libsvn_ra_svn/marshal.c:1486
+#: ../libsvn_ra_svn/marshal.c:1818
msgid "Empty error list"
msgstr "Leere Fehlerliste"
-#: ../libsvn_ra_svn/marshal.c:1495 ../libsvn_ra_svn/marshal.c:1521
+#: ../libsvn_ra_svn/marshal.c:1826 ../libsvn_ra_svn/marshal.c:1850
msgid "Malformed error list"
msgstr "Fehlerhafte Fehlerliste"
-#: ../libsvn_ra_svn/marshal.c:1550
+#: ../libsvn_ra_svn/marshal.c:1879
#, c-format
msgid "Unknown status '%s' in command response"
msgstr "Unbekannter Status »%s« in Antwort auf Befehl"
@@ -5642,12 +7677,146 @@ msgstr "Kann nicht aus Verbindung lesen"
msgid "Can't write to connection"
msgstr "Kann nicht in Verbindung schreiben"
+#: ../libsvn_repos/authz_parse.c:285
+#, c-format
+msgid "Section appears more than once in the global groups file: [%s]"
+msgstr ""
+
+#: ../libsvn_repos/authz_parse.c:291
+#, c-format
+msgid "Section appears more than once in the authz file: [%s]"
+msgstr ""
+
+#: ../libsvn_repos/authz_parse.c:320
+#, c-format
+msgid "Section is not valid in the global group file: [%s]"
+msgstr ""
+
+#: ../libsvn_repos/authz_parse.c:321
+#, c-format
+msgid "Section is not valid in the authz file: [%s]"
+msgstr ""
+
+#: ../libsvn_repos/authz_parse.c:342
+#, fuzzy, c-format
+msgid "Global group name '%s' may not begin with '%c'"
+msgstr "Eigenschaft »%s« darf nicht nach »%s« zusammengeführt werden."
+
+#: ../libsvn_repos/authz_parse.c:347
+#, fuzzy, c-format
+msgid "Group name '%s' may not begin with '%c'"
+msgstr "Eigenschaft »%s« darf nicht nach »%s« zusammengeführt werden."
+
+#: ../libsvn_repos/authz_parse.c:358
+#, fuzzy, c-format
+msgid "Can't override definition of global group '%s'"
+msgstr "Kann nicht in Knoten mit Konflikt »%s« zusammenführen"
+
+#: ../libsvn_repos/authz_parse.c:363
+#, fuzzy, c-format
+msgid "Can't override definition of group '%s'"
+msgstr "Kann nicht in Knoten mit Konflikt »%s« zusammenführen"
+
+#: ../libsvn_repos/authz_parse.c:486
+msgid "Found empty name in authz rule path"
+msgstr ""
+
+#: ../libsvn_repos/authz_parse.c:487 ../libsvn_repos/authz_parse.c:502
+#, fuzzy, c-format
+msgid "Non-canonical path '%s' in authz rule [%s]"
+msgstr "Nicht-kanonischer »cpath« in Knotenrevision »%s«"
+
+#: ../libsvn_repos/authz_parse.c:499
+#, fuzzy
+msgid "Found '.' in authz rule path"
+msgstr "Pfad nicht ausgeben"
+
+#: ../libsvn_repos/authz_parse.c:501
+#, fuzzy
+msgid "Found '..' in authz rule path"
+msgstr "Pfad nicht ausgeben"
+
+#: ../libsvn_repos/authz_parse.c:661
+#, c-format
+msgid "Section [%s] describes the same rule as section [%s]"
+msgstr ""
+
+#: ../libsvn_repos/authz_parse.c:700 ../libsvn_repos/authz_parse.c:730
+#, c-format
+msgid "Empty repository name in authz rule [%s]"
+msgstr ""
+
+#: ../libsvn_repos/authz_parse.c:709
+#, c-format
+msgid "Invalid type token '%s' in authz rule [%s]"
+msgstr ""
+
+#: ../libsvn_repos/authz_parse.c:785
+#, fuzzy, c-format
+msgid "Alias name '%s' may not begin with '%c'"
+msgstr "Eigenschaft »%s« darf nicht nach »%s« zusammengeführt werden."
+
+#: ../libsvn_repos/authz_parse.c:794
+#, fuzzy, c-format
+msgid "Can't override definition of alias '%s'"
+msgstr "Kann nicht in Datei »%s« schreiben"
+
+#: ../libsvn_repos/authz_parse.c:835
+#, c-format
+msgid "Access entry '%s' has more than one inversion; double negatives are not permitted"
+msgstr ""
+
+#: ../libsvn_repos/authz_parse.c:844
+#, c-format
+msgid "Access entry '%s' is not valid; it must be a single '*'"
+msgstr ""
+
+#: ../libsvn_repos/authz_parse.c:851
+#, c-format
+msgid "Access entry '~*' will never match"
+msgstr ""
+
+#: ../libsvn_repos/authz_parse.c:875
+#, c-format
+msgid "Access entry token '%s' is not valid; should be '%s' or '%s'"
+msgstr ""
+
+#: ../libsvn_repos/authz_parse.c:902
+#, c-format
+msgid "The access mode '%c' in access entry '%s' of rule [%s] is not valid"
+msgstr ""
+
+#: ../libsvn_repos/authz_parse.c:912
+#, c-format
+msgid "Write-only access entry '%s' of rule [%s] is not valid"
+msgstr ""
+
+#: ../libsvn_repos/authz_parse.c:1033
+#, c-format
+msgid "Recursive definition of group '%s'"
+msgstr ""
+
+#: ../libsvn_repos/authz_parse.c:1044 ../libsvn_repos/authz_parse.c:1102
+#, fuzzy, c-format
+msgid "Alias '%s' was never defined"
+msgstr "Pfad »%s« wurde nicht hierhin verschoben"
+
+#: ../libsvn_repos/authz_parse.c:1065
+#, fuzzy, c-format
+msgid "Undefined group '%s'"
+msgstr "Undefiniertes Tunnelschema »%s«"
+
+#: ../libsvn_repos/authz_parse.c:1158
+#, c-format
+msgid "Access entry refers to undefined group '%s'"
+msgstr ""
+
#: ../libsvn_repos/commit.c:172
#, c-format
msgid "'%s' is out of date"
msgstr "»%s« ist veraltet"
-#: ../libsvn_repos/commit.c:320
+#: ../libsvn_repos/commit.c:321
#, c-format
msgid "Got source path but no source revision for '%s'"
msgstr "Quellpfad, aber keine Quellrevision für »%s« erhalten"
@@ -5657,7 +7826,7 @@ msgstr "Quellpfad, aber keine Quellrevision für »%s« erhalten"
msgid "Source url '%s' is from different repository"
msgstr "Quell URL »%s« stammt aus einem fremden Projektarchiv"
-#: ../libsvn_repos/commit.c:691
+#: ../libsvn_repos/commit.c:689
#, c-format
msgid ""
"Checksum mismatch for resulting fulltext\n"
@@ -5666,15 +7835,15 @@ msgstr ""
"Prüfsummenfehler für Volltextergebnis\n"
"(%s)"
-#: ../libsvn_repos/commit.c:741
+#: ../libsvn_repos/commit.c:739
msgid "(no error)"
msgstr "(kein Fehler)"
-#: ../libsvn_repos/commit.c:772 ../libsvn_repos/commit.c:778
+#: ../libsvn_repos/commit.c:770 ../libsvn_repos/commit.c:776
msgid "post-commit hook failed with no error message."
msgstr "Aktion »post-commit« schlug ohne Fehlermeldung fehl"
-#: ../libsvn_repos/commit.c:781
+#: ../libsvn_repos/commit.c:779
#, c-format
msgid ""
"post commit FS processing had error:\n"
@@ -5685,11 +7854,11 @@ msgstr ""
"%s\n"
"%s"
-#: ../libsvn_repos/commit.c:782 ../libsvn_repos/commit.c:791
+#: ../libsvn_repos/commit.c:780 ../libsvn_repos/commit.c:789
msgid "(no error message)"
msgstr "(keine Fehlermeldung)"
-#: ../libsvn_repos/commit.c:789
+#: ../libsvn_repos/commit.c:787
#, c-format
msgid ""
"post commit FS processing had error:\n"
@@ -5698,8 +7867,8 @@ msgstr ""
"Aktion »post-commit« meldete einen Fehler:\n"
"%s"
-#: ../libsvn_repos/commit.c:1316 ../libsvn_repos/fs-wrap.c:117
-#: ../libsvn_repos/load-fs-vtable.c:1113
+#: ../libsvn_repos/commit.c:1314 ../libsvn_repos/fs-wrap.c:120
+#: ../libsvn_repos/load-fs-vtable.c:1129
msgid "Commit succeeded, but post-commit hook failed"
msgstr "Übertragen erfolgreich, aber die »post-commit«-Aktion schlug fehl"
@@ -5719,17 +7888,17 @@ msgstr "Delta-Tiefe »exclude« wird nicht unterstützt"
msgid "Invalid editor anchoring; at least one of the input paths is not a directory and there was no source entry"
msgstr "Ungültiger Editoranker; zumindest einer der Eingabepfade ist kein Verzeichnis und es gab keinen Quelleintrag"
-#: ../libsvn_repos/deprecated.c:647 ../svnadmin/svnadmin.c:923
+#: ../libsvn_repos/deprecated.c:715 ../svnadmin/svnadmin.c:1051
#, c-format
msgid "* Dumped revision %ld.\n"
msgstr "* Revision %ld ausgegeben.\n"
-#: ../libsvn_repos/deprecated.c:653 ../svnadmin/svnadmin.c:929
+#: ../libsvn_repos/deprecated.c:721 ../svnadmin/svnadmin.c:1057
#, c-format
msgid "* Verified revision %ld.\n"
msgstr "* Revision %ld verifiziert.\n"
-#: ../libsvn_repos/deprecated.c:661 ../svnadmin/svnadmin.c:977
+#: ../libsvn_repos/deprecated.c:729 ../svnadmin/svnadmin.c:1105
#, c-format
msgid ""
"\n"
@@ -5740,7 +7909,7 @@ msgstr ""
"------- Ãœbertrage Revision %ld >>>\n"
"\n"
-#: ../libsvn_repos/deprecated.c:667 ../svnadmin/svnadmin.c:983
+#: ../libsvn_repos/deprecated.c:735 ../svnadmin/svnadmin.c:1111
#, c-format
msgid ""
"\n"
@@ -5751,184 +7920,184 @@ msgstr ""
"------- Neue Revision %ld übertragen (geladen aus Original %ld) >>>\n"
"\n"
-#: ../libsvn_repos/deprecated.c:680 ../svnadmin/svnadmin.c:996
+#: ../libsvn_repos/deprecated.c:748 ../svnadmin/svnadmin.c:1124
#, c-format
msgid " * editing path : %s ..."
msgstr " * Bearbeite Pfad: %s ..."
-#: ../libsvn_repos/deprecated.c:686 ../svnadmin/svnadmin.c:1002
+#: ../libsvn_repos/deprecated.c:754 ../svnadmin/svnadmin.c:1130
#, c-format
msgid " * deleting path : %s ..."
msgstr " * Lösche Pfad: %s ..."
-#: ../libsvn_repos/deprecated.c:692 ../svnadmin/svnadmin.c:1008
+#: ../libsvn_repos/deprecated.c:760 ../svnadmin/svnadmin.c:1136
#, c-format
msgid " * adding path : %s ..."
msgstr " * Füge Pfad hinzu: %s ..."
-#: ../libsvn_repos/deprecated.c:698 ../svnadmin/svnadmin.c:1014
+#: ../libsvn_repos/deprecated.c:766 ../svnadmin/svnadmin.c:1142
#, c-format
msgid " * replacing path : %s ..."
msgstr " * Ersetze Pfad: %s ..."
-#: ../libsvn_repos/deprecated.c:708 ../svnadmin/svnadmin.c:1023
+#: ../libsvn_repos/deprecated.c:776 ../svnadmin/svnadmin.c:1151
msgid " done.\n"
msgstr " erledigt.\n"
-#: ../libsvn_repos/deprecated.c:718 ../svnadmin/svnadmin.c:1032
+#: ../libsvn_repos/deprecated.c:786 ../svnadmin/svnadmin.c:1160
#, c-format
msgid "<<< Started new transaction, based on original revision %ld\n"
msgstr "<<< Neue Transaktion basierend auf Originalrevision %ld gestartet\n"
-#: ../libsvn_repos/deprecated.c:725 ../svnadmin/svnadmin.c:1045
+#: ../libsvn_repos/deprecated.c:793 ../svnadmin/svnadmin.c:1173
#, c-format
msgid " removing '\\r' from %s ..."
msgstr " Entferne »\\r« aus %s ..."
-#: ../libsvn_repos/dump.c:790
+#: ../libsvn_repos/dump.c:794
#, c-format
msgid "Path '%s' not found in r%ld."
msgstr "Pfad »%s« wurde in r%ld nicht gefunden."
-#: ../libsvn_repos/dump.c:795
+#: ../libsvn_repos/dump.c:799
#, c-format
msgid "Unexpected node kind %d for '%s' at r%ld. Expected kind was %d."
msgstr "Unerwartete Knotenart %d für »%s« in r%ld. Erwartete Knotenart war %d."
-#: ../libsvn_repos/dump.c:833
+#: ../libsvn_repos/dump.c:837
#, c-format
msgid "Path '%s' exists in r%ld."
msgstr "Pfad »%s« existiert in r%ld."
-#: ../libsvn_repos/dump.c:863
+#: ../libsvn_repos/dump.c:867
#, c-format
msgid "Mergeinfo referencing revision(s) prior to the oldest dumped revision (r%ld). Loading this dump may result in invalid mergeinfo."
msgstr "Zusammenführungsinformationen verweisen auf Revision(en) vor der ältesten ausgegebene Revision (r%ld). Das Laden dieser Datei kann ungültige Zusammenführungsinformationen zur Folge haben."
-#: ../libsvn_repos/dump.c:971
+#: ../libsvn_repos/dump.c:975
#, c-format
msgid "Duplicate representation of path '%s' in %s property of '%s'"
msgstr "Doppelte Darstellung von Pfad »%s« in Eigenschaft %s von »%s«"
-#: ../libsvn_repos/dump.c:1117
+#: ../libsvn_repos/dump.c:1121
#, c-format
msgid "E%06d: While validating fspath '%s': %s"
msgstr "E%06d: Fehler bei Überprüfung von »fspath« »%s«: %s"
-#: ../libsvn_repos/dump.c:1156
+#: ../libsvn_repos/dump.c:1160
#, c-format
msgid "Change invalid path '%s' in r%ld"
msgstr "Änderung eines ungültigen Pfades »%s« in r%ld"
-#: ../libsvn_repos/dump.c:1180
+#: ../libsvn_repos/dump.c:1184
#, c-format
msgid "Deleting invalid path '%s' in r%ld"
msgstr "Löschen eines ungültigen Pfades »%s« in r%ld"
# TODO: Compare msgid "Attempted to open non-existent child node '%s'"
# (non-, vs. non; Attempted vs. Attempting)
-#: ../libsvn_repos/dump.c:1199
+#: ../libsvn_repos/dump.c:1203
#, c-format
msgid "Replacing non-existent path '%s' in r%ld"
msgstr "Ersetzen eines nicht existierenden Pfades »%s« in r%ld"
-#: ../libsvn_repos/dump.c:1240
+#: ../libsvn_repos/dump.c:1244
#, c-format
msgid "Adding already existing path '%s' in r%ld"
msgstr "Hinzufügen eines schon vorhandenen Pfades »%s« in r%ld"
-#: ../libsvn_repos/dump.c:1263
+#: ../libsvn_repos/dump.c:1267
#, c-format
msgid "Copying from invalid path to '%s' in r%ld"
msgstr "Kopieren eines ungültigen Pfades »%s« in r%ld"
-#: ../libsvn_repos/dump.c:1275
+#: ../libsvn_repos/dump.c:1279
#, c-format
msgid "Referencing data in revision %ld, which is older than the oldest dumped revision (r%ld). Loading this dump into an empty repository will fail."
msgstr "Verweis auf Daten in Revision %ld, welche älter als die älteste ausgegebene Revision (r%ld) ist. Das Laden dieser Datei in ein leeres Projektarchiv wird fehlschlagen."
-#: ../libsvn_repos/dump.c:1995 ../libsvn_repos/dump.c:2397
+#: ../libsvn_repos/dump.c:2045 ../libsvn_repos/dump.c:2475
#, c-format
msgid "Start revision %ld is greater than end revision %ld"
msgstr "Startrevision %ld ist größer als Endrevision %ld"
-#: ../libsvn_repos/dump.c:2000 ../libsvn_repos/dump.c:2402
+#: ../libsvn_repos/dump.c:2050 ../libsvn_repos/dump.c:2480
#, c-format
msgid "End revision %ld is invalid (youngest revision is %ld)"
msgstr "Endrevision %ld ist ungültig (neueste Revision ist %ld)"
-#: ../libsvn_repos/dump.c:2113
+#: ../libsvn_repos/dump.c:2178
msgid "The range of revisions dumped contained references to copy sources outside that range."
msgstr "Der ausgegebene Revisionsbereich enthält Verweise für Kopien auf Quellpfade außerhalb dieses Bereichs."
-#: ../libsvn_repos/dump.c:2125
+#: ../libsvn_repos/dump.c:2190
msgid "The range of revisions dumped contained mergeinfo which reference revisions outside that range."
msgstr "Der ausgegebene Revisionsbereich enthielt Zusammenführungsinformationen die auf Revisionen außerhalb dieses Bereichs verweisen."
-#: ../libsvn_repos/dump.c:2179
+#: ../libsvn_repos/dump.c:2244
#, c-format
msgid "Node '%s' is not a directory."
msgstr "Knoten »%s« ist kein Verzeichnis."
-#: ../libsvn_repos/dump.c:2187
+#: ../libsvn_repos/dump.c:2252
#, c-format
msgid "Node '%s' is not a file."
msgstr "Knoten »%s« ist keine Datei."
-#: ../libsvn_repos/dump.c:2192
+#: ../libsvn_repos/dump.c:2257
#, c-format
msgid "Unexpected node kind %d for '%s'"
msgstr "Unerwartete Knotenart %d für »%s«"
-#: ../libsvn_repos/dump.c:2239
+#: ../libsvn_repos/dump.c:2304
#, c-format
msgid "Duplicate representation of path '%s'"
msgstr "Doppelte Darstellung von Pfad »%s«"
-#: ../libsvn_repos/dump.c:2448 ../libsvn_repos/dump.c:2501
-#, c-format
-msgid "Repository '%s' failed to verify"
-msgstr "Überprüfung des Projektarchivs »%s« fehlgeschlagen"
-
-#: ../libsvn_repos/fs-wrap.c:213
+#: ../libsvn_repos/fs-wrap.c:216
#, c-format
msgid "Storage of non-regular property '%s' is disallowed through the repository interface, and could indicate a bug in your client"
msgstr "Das Speichern der speziellen Eigenschaft »%s« wird vom Projektarchiv verhindert und könnte auf einen Bug in Ihrem Client hindeuten"
-#: ../libsvn_repos/fs-wrap.c:228
+#: ../libsvn_repos/fs-wrap.c:231
#, c-format
msgid "Cannot accept '%s' property because it is not encoded in UTF-8"
msgstr "Kann Eigenschaft »%s« nicht akzeptieren, da sie nicht in UTF-8 kodiert ist"
-#: ../libsvn_repos/fs-wrap.c:238
+#: ../libsvn_repos/fs-wrap.c:241
#, c-format
msgid "Cannot accept non-LF line endings in '%s' property"
msgstr "Kann nicht-»LF« (LF = Unix-artige) Zeilenumbrüche in Eigenschaft »%s« nicht akzeptieren"
-#: ../libsvn_repos/fs-wrap.c:279
+#: ../libsvn_repos/fs-wrap.c:245
+#, fuzzy
+msgid "Invalid property value"
+msgstr "Lokaler Eigenschaftswert:\n"
+
+#: ../libsvn_repos/fs-wrap.c:313
#, c-format
msgid "Commit rejected because mergeinfo on '%s' contains unexpected string terminator"
msgstr "Übertragung abgewiesen, da die Zusammenführungsinformationen von »%s« nicht erwartete Zeichenkettenendmarken enthalten"
-#: ../libsvn_repos/fs-wrap.c:286
+#: ../libsvn_repos/fs-wrap.c:320
#, c-format
msgid "Commit rejected because mergeinfo on '%s' is syntactically invalid"
msgstr "Übertragung abgewiesen, da die Zusammenführungsinformationen von »%s« nicht syntaktisch korrekt sind"
-#: ../libsvn_repos/fs-wrap.c:416
+#: ../libsvn_repos/fs-wrap.c:451
#, c-format
msgid "Write denied: not authorized to read all of revision %ld"
msgstr "Schreiben abgelehnt: Keine Berechtigung, alles von Revision %ld einzulesen."
-#: ../libsvn_repos/fs-wrap.c:629
+#: ../libsvn_repos/fs-wrap.c:667
msgid "Locking succeeded, but post-lock hook failed"
msgstr "Sperrung erfolgreich, aber die Aktion »post-ock« schlug fehl"
-#: ../libsvn_repos/fs-wrap.c:735
+#: ../libsvn_repos/fs-wrap.c:773
msgid "Cannot unlock, no authenticated username available"
msgstr "Kann nicht freigeben, kein angemeldeter Benutzername verfügbar"
-#: ../libsvn_repos/fs-wrap.c:783
+#: ../libsvn_repos/fs-wrap.c:821
msgid "Unlock succeeded, but post-unlock hook failed"
msgstr "Entsperren erfolgreich, aber die Aktion »post-unlock« schlug fehl"
@@ -6005,7 +8174,7 @@ msgstr "Fehler beim Schließen der leeren Standardausgabe"
msgid "Failed to run '%s' hook; broken symlink"
msgstr "Ausführen der Aktion »%s« gescheitert; defekter »Symlink«"
-#: ../libsvn_repos/hooks.c:679
+#: ../libsvn_repos/hooks.c:676
msgid ""
"Repository has not been enabled to accept revision propchanges;\n"
"ask the administrator to create a pre-revprop-change hook"
@@ -6014,13 +8183,18 @@ msgstr ""
"Bitten Sie den Administrator darum, eine Aktion »pre-revprop-change«\n"
"einzurichten."
-#: ../libsvn_repos/load-fs-vtable.c:589 ../svnrdump/load_editor.c:638
+#: ../libsvn_repos/list.c:314 ../libsvn_subr/io.c:2972
+#, c-format
+msgid "Path '%s' not found"
+msgstr "Pfad »%s« nicht gefunden"
+
+#: ../libsvn_repos/load-fs-vtable.c:594 ../svnrdump/load_editor.c:637
#, c-format
msgid "Relative source revision %ld is not available in current repository"
msgstr "Relative Quellrevision %ld ist im aktuellen Projektarchiv nicht verfügbar."
# CHECKME: Check quotes, s/rev/revision/
-#: ../libsvn_repos/load-fs-vtable.c:603
+#: ../libsvn_repos/load-fs-vtable.c:608
#, c-format
msgid ""
"Copy source checksum mismatch on copy from '%s'@%ld\n"
@@ -6029,20 +8203,20 @@ msgstr ""
"Prüfsummenfehler beim Kopieren von »%s«@%ld\n"
"nach »%s« in der auf r%ld basierten Revision"
-#: ../libsvn_repos/load-fs-vtable.c:667
+#: ../libsvn_repos/load-fs-vtable.c:664
msgid "Malformed dumpstream: Revision 0 must not contain node records"
msgstr "Fehlerhafter Dateiabzug: Revision 0 darf keine Knoteneinträge enthalten"
-#: ../libsvn_repos/load-fs-vtable.c:683
+#: ../libsvn_repos/load-fs-vtable.c:680
#, c-format
msgid "Unrecognized node-action on node '%s'"
msgstr "Unerkannte Knotenaktion auf Knoten »%s«"
-#: ../libsvn_repos/load-fs-vtable.c:852 ../svnrdump/load_editor.c:774
+#: ../libsvn_repos/load-fs-vtable.c:849 ../svnrdump/load_editor.c:772
msgid "Invalid svn:mergeinfo value"
msgstr "Ungültiger Wert für svn:mergeinfo"
-#: ../libsvn_repos/load-fs-vtable.c:861
+#: ../libsvn_repos/load-fs-vtable.c:858
msgid "Invalid svn:mergeinfo value; leaving unchanged"
msgstr "Ungültiger Wert für svn:mergeinfo; keine Änderungen angewandt"
@@ -6082,11 +8256,11 @@ msgstr "Dateiabzug enthält ungültigen Kopf »%s«"
msgid "Unsupported dumpfile version: %d"
msgstr "Dateiabzug Version %d wird nicht unterstützt"
-#: ../libsvn_repos/load.c:522
+#: ../libsvn_repos/load.c:654
msgid "Unrecognized record type in stream"
msgstr "Unerkannter Datensatz im Datenstrom"
-#: ../libsvn_repos/load.c:629
+#: ../libsvn_repos/load.c:761
msgid "Sum of subblock sizes larger than total block content length"
msgstr "Die Summe der Größen der Unterblöcke überschreitet die gesamte Blocklänge"
@@ -6095,7 +8269,7 @@ msgstr "Die Summe der Größen der Unterblöcke überschreitet die gesamte Block
msgid "'%s' not found in filesystem"
msgstr "»%s« nicht im Dateisystem gefunden"
-#: ../libsvn_repos/replay.c:541 ../libsvn_repos/replay.c:1268
+#: ../libsvn_repos/replay.c:541 ../libsvn_repos/replay.c:1301
#, c-format
msgid "Filesystem path '%s' is neither a file nor a directory"
msgstr "Pfad »%s« ist weder eine Datei noch ein Verzeichnis"
@@ -6114,42 +8288,42 @@ msgstr "Ungültige Länge (%%%s) beim Lesen einer Zeichenkette"
msgid "Invalid depth (%c) for path '%s'"
msgstr "Ungültige Tiefe (%c) für Pfad »%s«"
-#: ../libsvn_repos/reporter.c:950
+#: ../libsvn_repos/reporter.c:952
#, c-format
msgid "Working copy path '%s' does not exist in repository"
msgstr "Arbeitskopiepfad »%s« existiert nicht im Projektarchiv"
-#: ../libsvn_repos/reporter.c:1357
+#: ../libsvn_repos/reporter.c:1378
msgid "Not authorized to open root of edit operation"
msgstr "Keine Berechtigung die Basis der Änderung zu öffnen"
-#: ../libsvn_repos/reporter.c:1374
+#: ../libsvn_repos/reporter.c:1395
#, c-format
msgid "Target path '%s' does not exist"
msgstr "Zielpfad »%s« existiert nicht"
-#: ../libsvn_repos/reporter.c:1382
+#: ../libsvn_repos/reporter.c:1403
msgid "Cannot replace a directory from within"
msgstr "Kann ein Verzeichnis nicht innerhalb sich selbst ersetzen"
-#: ../libsvn_repos/reporter.c:1422
+#: ../libsvn_repos/reporter.c:1443
msgid "Invalid report for top level of working copy"
msgstr "Ungültiger Report für oberste Ebene der Arbeitskopie"
-#: ../libsvn_repos/reporter.c:1437
+#: ../libsvn_repos/reporter.c:1458
msgid "Two top-level reports with no target"
msgstr "Zwei oberste Reports ohne Zielangabe"
-#: ../libsvn_repos/reporter.c:1499
+#: ../libsvn_repos/reporter.c:1520
#, c-format
msgid "Unsupported report depth '%s'"
msgstr "Nicht unterstützte Reporttiefe »%s«"
-#: ../libsvn_repos/reporter.c:1529
+#: ../libsvn_repos/reporter.c:1550
msgid "Depth 'exclude' not supported for link"
msgstr "Tiefe »exclude« wird für Links nicht unterstützt"
-#: ../libsvn_repos/reporter.c:1586
+#: ../libsvn_repos/reporter.c:1608
msgid "Request depth 'exclude' not supported"
msgstr "Angefragte Tiefe »exclude« wird nicht unterstützt"
@@ -6214,54 +8388,54 @@ msgstr "Erzeuge Aktion »post-revprop-change«"
msgid "Creating conf directory"
msgstr "Erzeuge Konfigurationsverzeichnis"
-#: ../libsvn_repos/repos.c:894
+#: ../libsvn_repos/repos.c:899
msgid "Creating svnserve.conf file"
msgstr "Erzeuge Datei »svnserve.conf«"
-#: ../libsvn_repos/repos.c:912
+#: ../libsvn_repos/repos.c:917
msgid "Creating passwd file"
msgstr "Erzeuge Datei »passwd«"
-#: ../libsvn_repos/repos.c:954
+#: ../libsvn_repos/repos.c:959
msgid "Creating authz file"
msgstr "Erzeuge Datei »authz«"
-#: ../libsvn_repos/repos.c:984
+#: ../libsvn_repos/repos.c:989
msgid "Creating hooks-env file"
msgstr "Erzeuge Datei »hooks-env«"
-#: ../libsvn_repos/repos.c:1040
+#: ../libsvn_repos/repos.c:1045
msgid "Could not create top-level directory"
msgstr "Konnte oberstes Verzeichnis nicht erzeugen"
-#: ../libsvn_repos/repos.c:1050
+#: ../libsvn_repos/repos.c:1055
msgid "Creating DAV sandbox dir"
msgstr "Erzeuge Verzeichnis für DAV-Sandkasten"
-#: ../libsvn_repos/repos.c:1119
+#: ../libsvn_repos/repos.c:1124
msgid "Error opening db lockfile"
msgstr "Fehler beim Öffnen der Datenbank-Sperrdatei"
-#: ../libsvn_repos/repos.c:1157
+#: ../libsvn_repos/repos.c:1162
#, c-format
msgid "'%s' is an existing repository"
msgstr "»%s« ist ein vorhandenes Projektarchiv"
-#: ../libsvn_repos/repos.c:1162
+#: ../libsvn_repos/repos.c:1167
#, c-format
msgid "'%s' is a subdirectory of an existing repository rooted at '%s'"
msgstr "»%s« ist ein Unterverzeichnis eines existierenden Projektarchivs mit der Wurzel-URL »%s«"
-#: ../libsvn_repos/repos.c:1172
+#: ../libsvn_repos/repos.c:1177
msgid "Repository creation failed"
msgstr "Anlegen des Projektarchivs schlug fehl"
-#: ../libsvn_repos/repos.c:1262
+#: ../libsvn_repos/repos.c:1267
#, c-format
msgid "Expected repository format '%d' or '%d'; found format '%d'"
msgstr "Erwartetes Format des Projektarchivs »%d« oder »%d«; gefunden »%d«"
-#: ../libsvn_repos/repos.c:1566
+#: ../libsvn_repos/repos.c:1580
#, c-format
msgid "unknown capability '%s'"
msgstr "unbekannte Eigenschaft »%s«"
@@ -6271,16 +8445,16 @@ msgstr "unbekannte Eigenschaft »%s«"
msgid "Failed to find time on revision %ld"
msgstr "Konnte Zeit für Revision %ld nicht ermitteln"
-#: ../libsvn_repos/rev_hunt.c:208 ../libsvn_repos/rev_hunt.c:323
+#: ../libsvn_repos/rev_hunt.c:210 ../libsvn_repos/rev_hunt.c:325
#, c-format
msgid "Invalid start revision %ld"
msgstr "Ungültige Startrevision %ld"
-#: ../libsvn_repos/rev_hunt.c:503
+#: ../libsvn_repos/rev_hunt.c:505
msgid "Unreadable path encountered; access denied"
msgstr "Nichtlesbarer Pfad angetroffen; Zugriff verweigert"
-#: ../libsvn_repos/rev_hunt.c:1127 ../libsvn_repos/rev_hunt.c:1466
+#: ../libsvn_repos/rev_hunt.c:1139 ../libsvn_repos/rev_hunt.c:1523
#, c-format
msgid "'%s' is not a file in revision %ld"
msgstr "»%s« ist in Revision %ld keine Datei"
@@ -6294,30 +8468,35 @@ msgstr "Keine Anmeldemöglichkeiten registriert"
msgid "No provider registered for '%s' credentials"
msgstr "Kein Anbieter für Zugangsdaten vom Typ »%s« registriert"
-#: ../libsvn_subr/cache-membuffer.c:628
+#: ../libsvn_subr/cache-membuffer.c:838
#, c-format
msgid "Can't lock cache mutex"
msgstr "Kann Zwischenspeicher-Mutex nicht sperren"
-#: ../libsvn_subr/cache-membuffer.c:666 ../libsvn_subr/cache-membuffer.c:687
+#: ../libsvn_subr/cache-membuffer.c:876 ../libsvn_subr/cache-membuffer.c:897
#, c-format
msgid "Can't write-lock cache mutex"
msgstr "Kann Zwischenspeicher-Mutex nicht für das Schreiben sperren"
-#: ../libsvn_subr/cache-membuffer.c:711
+#: ../libsvn_subr/cache-membuffer.c:921
#, c-format
msgid "Can't unlock cache mutex"
msgstr "Kann Zwischenspeicher-Mutex nicht entsperren"
-#: ../libsvn_subr/cache-membuffer.c:1807
+#: ../libsvn_subr/cache-membuffer.c:2040
#, c-format
msgid "Can't create cache mutex"
msgstr "Kann Zwischenspeicher-Mutex nicht anlegen"
-#: ../libsvn_subr/cache-membuffer.c:2811
+#: ../libsvn_subr/cache-membuffer.c:3036
msgid "Can't iterate a membuffer-based cache"
msgstr "Kann einen »memcached«-Zwischenspeicher nicht durchlaufen"
+#: ../libsvn_subr/cache-membuffer.c:3387
+#, fuzzy
+msgid "Prefix too long"
+msgstr "Wort zu lang"
+
# memcached is an APR library
#: ../libsvn_subr/cache-memcache.c:170
#, c-format
@@ -6363,7 +8542,12 @@ msgstr "Unbekannter Fehler beim Hinzufügen des Servers zu »memcache«"
msgid "Unknown error creating apr_memcache_t"
msgstr "Unbekannter Fehler beim Anlegen von apr_memcache_t"
-#: ../libsvn_subr/checksum.c:626
+#: ../libsvn_subr/checksum.c:353
+#, fuzzy, c-format
+msgid "Invalid prefix in checksum '%s'"
+msgstr "Ungültige Revisionsnummer »%s«"
+
+#: ../libsvn_subr/checksum.c:689
#, c-format
msgid ""
"%s:\n"
@@ -6374,90 +8558,122 @@ msgstr ""
" Erwartet: %s\n"
" Tatsächlich: %s\n"
-#: ../libsvn_subr/cmdline.c:760
+#: ../libsvn_subr/cmdline.c:779
#, c-format
msgid "Error initializing command line arguments"
msgstr "Fehler beim Initialisieren der Kommandozeilenparameter"
-#: ../libsvn_subr/cmdline.c:849
+#: ../libsvn_subr/cmdline.c:889
+#, fuzzy, c-format
+msgid "Ignoring unknown value '%s'; did you mean '%s'?"
+msgstr "Syntaxfehler bei der Analyse der Fix-Revision »%s«; Meinten Sie '%s@'?"
+
+# password store: kwallet, ...
+#: ../libsvn_subr/cmdline.c:894
+#, fuzzy, c-format
+msgid "Ignoring unknown value '%s'"
+msgstr "Ungültige Konfiguration: Unbekanntes %s »%s«"
+
+#: ../libsvn_subr/cmdline.c:989
msgid "Invalid syntax of argument of --config-option"
msgstr "Ungültige Syntax im Argument von --config-option"
-#: ../libsvn_subr/cmdline.c:876
+#: ../libsvn_subr/cmdline.c:1016
#, c-format
msgid "Unrecognized file in argument of %s"
msgstr "Unbekannte Datei im Parameter von %s"
# FIXME: s/whitespace/whitespaceS/?
-#: ../libsvn_subr/cmdline.c:1122
+#: ../libsvn_subr/cmdline.c:1288
msgid "The EDITOR, SVN_EDITOR or VISUAL environment variable or 'editor-cmd' run-time configuration option is empty or consists solely of whitespace. Expected a shell command."
msgstr "Die Umgebungsvariable EDITOR, SVN_EDITOR oder VISUAL oder die Laufzeitkonfigurationsoption »editor-cmd« ist leer oder besteht nur aus Leerzeichen. Erwartete ein Shell-Kommando."
-#: ../libsvn_subr/cmdline.c:1129
+#: ../libsvn_subr/cmdline.c:1295
msgid "None of the environment variables SVN_EDITOR, VISUAL or EDITOR are set, and no 'editor-cmd' run-time configuration option was found"
msgstr "Keine der Umgebungsvariablen SVN_EDITOR, VISUAL oder EDITOR ist gesetzt und keine Laufzeitkonfigurationsoption »editor-cmd« wurde gefunden"
-#: ../libsvn_subr/cmdline.c:1154 ../libsvn_subr/cmdline.c:1238
+#: ../libsvn_subr/cmdline.c:1320 ../libsvn_subr/cmdline.c:1404
#, c-format
msgid "Can't get working directory"
msgstr "Kann Arbeitsverzeichnis nicht ermitteln"
-#: ../libsvn_subr/cmdline.c:1165 ../libsvn_subr/cmdline.c:1249
-#: ../libsvn_subr/cmdline.c:1274
+#: ../libsvn_subr/cmdline.c:1331 ../libsvn_subr/cmdline.c:1415
+#: ../libsvn_subr/cmdline.c:1440
#, c-format
msgid "Can't change working directory to '%s'"
msgstr "Kann Arbeitsverzeichnis nicht nach »%s« wechseln"
-#: ../libsvn_subr/cmdline.c:1173 ../libsvn_subr/cmdline.c:1401
+#: ../libsvn_subr/cmdline.c:1339 ../libsvn_subr/cmdline.c:1567
#, c-format
msgid "Can't restore working directory"
msgstr "Kann nicht in das Arbeitsverzeichnis zurückwechseln"
-#: ../libsvn_subr/cmdline.c:1180 ../libsvn_subr/cmdline.c:1343
+#: ../libsvn_subr/cmdline.c:1346 ../libsvn_subr/cmdline.c:1509
#, c-format
msgid "system('%s') returned %d"
msgstr "Aufruf des Editors »%s« gab Fehler %d zurück"
-#: ../libsvn_subr/cmdline.c:1374
+#: ../libsvn_subr/cmdline.c:1540
msgid "Error normalizing edited contents to internal format"
msgstr "Fehler beim Normalisieren des bearbeiteten Inhalts ins interne Format"
-#: ../libsvn_subr/compress.c:143
+#: ../libsvn_subr/cmdline.c:1610
+#, c-format
+msgid ""
+"Unknown value '%s' for %s.\n"
+"Supported values: %s"
+msgstr ""
+
+#: ../libsvn_subr/cmdline.c:1663
+msgid "Caught signal"
+msgstr "Abbruchsignal empfangen"
+
+#: ../libsvn_subr/compress_lz4.c:92
+#, fuzzy
+msgid "Decompression of compressed data failed: no size"
+msgstr "Dekomprimierung der mit zlib komprimierten Daten schlug fehl: Größe nicht angegeben"
+
+#: ../libsvn_subr/compress_lz4.c:96
+#, fuzzy
+msgid "Decompression of compressed data failed: size too large"
+msgstr "Dekomprimierung der mit zlib komprimierten Daten schlug fehl: Größe zu groß"
+
+#: ../libsvn_subr/compress_lz4.c:120 ../libsvn_subr/compress_zlib.c:173
+msgid "Size of uncompressed data does not match stored original length"
+msgstr "Die Größe der unkomprimierten Daten entspricht nicht der gespeicherten Originallänge"
+
+#: ../libsvn_subr/compress_zlib.c:102
msgid "Compression of svndiff data failed"
msgstr "Komprimierung der svndiff-Daten schlug fehl"
-#: ../libsvn_subr/compress.c:179
+#: ../libsvn_subr/compress_zlib.c:138
msgid "Decompression of zlib compressed data failed: no size"
msgstr "Dekomprimierung der mit zlib komprimierten Daten schlug fehl: Größe nicht angegeben"
-#: ../libsvn_subr/compress.c:182
+#: ../libsvn_subr/compress_zlib.c:141
msgid "Decompression of zlib compressed data failed: size too large"
msgstr "Dekomprimierung der mit zlib komprimierten Daten schlug fehl: Größe zu groß"
-#: ../libsvn_subr/compress.c:207
+#: ../libsvn_subr/compress_zlib.c:166
msgid "Decompression of svndiff data failed"
msgstr "Dekomprimierung der svndiff-Daten schlug fehl"
-#: ../libsvn_subr/compress.c:214
-msgid "Size of uncompressed data does not match stored original length"
-msgstr "Die Größe der unkomprimierten Daten entspricht nicht der gespeicherten Originallänge"
-
-#: ../libsvn_subr/compress.c:230
+#: ../libsvn_subr/compress_zlib.c:189
#, c-format
msgid "Unsupported compression method %d"
msgstr "Nicht unterstützte Komprimierungsmethode %d"
-#: ../libsvn_subr/config.c:805
+#: ../libsvn_subr/config.c:883
#, c-format
msgid "Config error: invalid boolean value '%s' for '[%s] %s'"
msgstr "Konfigurationsfehler: Ungültiger logischer Wert »%s« für »[%s] %s«"
-#: ../libsvn_subr/config.c:810
+#: ../libsvn_subr/config.c:888
#, c-format
msgid "Config error: invalid boolean value '%s' for '%s'"
msgstr "Konfigurationsfehler: Ungültiger logischer Wert »%s« für »%s«"
-#: ../libsvn_subr/config.c:1239
+#: ../libsvn_subr/config.c:1306
#, c-format
msgid "Config error: invalid integer value '%s'"
msgstr "Konfigurationsfehler: Ungültige Ganzzahl »%s«"
@@ -6485,37 +8701,37 @@ msgstr "Kann »Auth« Datei nicht zum Schreiben öffnen"
msgid "Error writing hash to '%s'"
msgstr "Fehler beim Schreiben des Hashwerts nach »%s«"
-#: ../libsvn_subr/config_file.c:344
+#: ../libsvn_subr/config_file.c:524
#, c-format
msgid "line %d: Option must end with ':' or '='"
msgstr "Zeile %d: Option muss mit »:« oder »=« enden"
-#: ../libsvn_subr/config_file.c:387
+#: ../libsvn_subr/config_file.c:576
#, c-format
msgid "line %d: Section header must end with ']'"
msgstr "Zeile %d: Abschnittskopf muss mit »]« enden"
-#: ../libsvn_subr/config_file.c:554
+#: ../libsvn_subr/config_file.c:748
#, c-format
msgid "Error while parsing config file: %s:"
msgstr "Fehler beim Auswerten der Konfigurationsdatei: %s:"
-#: ../libsvn_subr/config_file.c:596
+#: ../libsvn_subr/config_file.c:795
#, c-format
msgid "line %d: Section header must start in the first column"
msgstr "Zeile %d: Abschnittskopf muss in der ersten Spalte beginnen"
-#: ../libsvn_subr/config_file.c:609
+#: ../libsvn_subr/config_file.c:820
#, c-format
msgid "line %d: Comment must start in the first column"
msgstr "Zeile %d: Kommentar muss in der ersten Spalte beginnen"
-#: ../libsvn_subr/config_file.c:624
+#: ../libsvn_subr/config_file.c:835
#, c-format
msgid "line %d: Section header expected"
msgstr "Zeile %d: Abschnittskopf erwartet"
-#: ../libsvn_subr/config_file.c:628
+#: ../libsvn_subr/config_file.c:839
#, c-format
msgid "line %d: Option expected"
msgstr "Zeile %d: Option erwartet"
@@ -6541,16 +8757,16 @@ msgstr "Kann Daten für Werte in der Registrierungsdatenbank nicht lesen"
msgid "Unrecognised registry path '%s'"
msgstr "Unbekannter Pfad in Registrierungsdatenbank »%s«"
-#: ../libsvn_subr/config_win.c:208
+#: ../libsvn_subr/config_win.c:207 ../libsvn_subr/config_win.c:212
#, c-format
msgid "Can't open registry key '%s'"
msgstr "Kann Schlüssel »%s« in Registrierungsdatenbank nicht öffnen"
-#: ../libsvn_subr/config_win.c:246
+#: ../libsvn_subr/config_win.c:250
msgid "Can't enumerate registry keys"
msgstr "Kann Schlüssel in der Registrierungsdatenbank nicht aufzählen"
-#: ../libsvn_subr/config_win.c:256
+#: ../libsvn_subr/config_win.c:260
msgid "Can't open existing subkey"
msgstr "Kann vorhandenen Unterschlüssel nicht öffnen"
@@ -6646,7 +8862,8 @@ msgstr "Kann die das angeforderte Datum nicht berechnen"
msgid "Can't expand time"
msgstr "Kann Zeitangabe nicht expandieren"
-#: ../libsvn_subr/deprecated.c:364 ../libsvn_subr/opt.c:302
+#: ../libsvn_subr/deprecated.c:365 ../libsvn_subr/opt.c:410
+#: ../libsvn_subr/opt.c:513
msgid ""
"\n"
"Valid options:\n"
@@ -6654,7 +8871,8 @@ msgstr ""
"\n"
"Gültige Optionen:\n"
-#: ../libsvn_subr/deprecated.c:440 ../libsvn_subr/opt.c:417
+#: ../libsvn_subr/deprecated.c:441 ../libsvn_subr/opt.c:693
+#: ../libsvn_subr/opt.c:719
#, c-format
msgid ""
"\"%s\": unknown command.\n"
@@ -6663,33 +8881,33 @@ msgstr ""
"»%s«: unbekannter Befehl.\n"
"\n"
-#: ../libsvn_subr/deprecated.c:618 ../libsvn_subr/opt.c:1232
-#: ../svnrdump/svnrdump.c:615
+#: ../libsvn_subr/deprecated.c:619 ../libsvn_subr/opt.c:1534
+#: ../libsvn_subr/opt.c:1584 ../svnrdump/svnrdump.c:603
#, c-format
msgid "Type '%s help' for usage.\n"
msgstr "Geben Sie »%s help« für weitere Hilfe ein.\n"
-#: ../libsvn_subr/deprecated.c:1026
+#: ../libsvn_subr/deprecated.c:1047
#, c-format
msgid "'%s' is neither a file nor a directory name"
msgstr "»%s« ist weder ein Datei- noch ein Verzeichnisname"
-#: ../libsvn_subr/dirent_uri.c:1628
+#: ../libsvn_subr/dirent_uri.c:1634
#, c-format
msgid "Couldn't determine absolute path of '%s'"
msgstr "Konnte den absoluten Pfad von »%s« nicht ermitteln"
-#: ../libsvn_subr/dirent_uri.c:2342
+#: ../libsvn_subr/dirent_uri.c:2348
#, c-format
msgid "Local URL '%s' does not contain 'file://' prefix"
msgstr "Lokale URL »%s« enthält keinen »file://« Präfix"
-#: ../libsvn_subr/dirent_uri.c:2421
+#: ../libsvn_subr/dirent_uri.c:2432
#, c-format
msgid "Local URL '%s' contains only a hostname, no path"
msgstr "Lokale URL »%s« enthält nur einen Rechnernamen aber keinen Pfad"
-#: ../libsvn_subr/dirent_uri.c:2435
+#: ../libsvn_subr/dirent_uri.c:2446
#, c-format
msgid "Local URL '%s' contains unsupported hostname"
msgstr "Lokale URL »%s« enthält einen nicht unterstützten Rechnernamen"
@@ -6738,12 +8956,12 @@ msgstr "Fehlerhafte Daten"
msgid "unknown error"
msgstr "Unbekannter Fehler"
-#: ../libsvn_subr/gpg_agent.c:409 ../libsvn_subr/prompt.c:627
+#: ../libsvn_subr/gpg_agent.c:505 ../libsvn_subr/prompt.c:627
#, c-format
msgid "Password for '%s': "
msgstr "Passwort für »%s«: "
-#: ../libsvn_subr/gpg_agent.c:410
+#: ../libsvn_subr/gpg_agent.c:506
#, c-format
msgid "Enter your Subversion password for %s"
msgstr "Geben Sie Ihr Subversion-Passwort für %s ein"
@@ -6752,10 +8970,27 @@ msgstr "Geben Sie Ihr Subversion-Passwort für %s ein"
msgid "Serialized hash missing terminator"
msgstr "Serialisierte Prüfsumme hat kein Endzeichen"
-#: ../libsvn_subr/hash.c:138 ../libsvn_subr/hash.c:151
-#: ../libsvn_subr/hash.c:163 ../libsvn_subr/hash.c:175
-#: ../libsvn_subr/hash.c:179 ../libsvn_subr/hash.c:189
-#: ../libsvn_subr/hash.c:202 ../libsvn_subr/hash.c:211
+#: ../libsvn_subr/hash.c:138 ../libsvn_subr/hash.c:189
+#, fuzzy
+msgid "Serialized hash malformed key length"
+msgstr "Fehlerhafte serialisierte Prüfsumme"
+
+#: ../libsvn_subr/hash.c:151 ../libsvn_subr/hash.c:202
+#, fuzzy
+msgid "Serialized hash malformed key data"
+msgstr "Fehlerhafte serialisierte Prüfsumme"
+
+#: ../libsvn_subr/hash.c:163
+#, fuzzy
+msgid "Serialized hash malformed value length"
+msgstr "Fehlerhafte serialisierte Prüfsumme"
+
+#: ../libsvn_subr/hash.c:175
+#, fuzzy
+msgid "Serialized hash malformed value data"
+msgstr "Fehlerhafte serialisierte Prüfsumme"
+
+#: ../libsvn_subr/hash.c:179 ../libsvn_subr/hash.c:211
msgid "Serialized hash malformed"
msgstr "Fehlerhafte serialisierte Prüfsumme"
@@ -6763,173 +8998,173 @@ msgstr "Fehlerhafte serialisierte Prüfsumme"
msgid "Cannot serialize negative length"
msgstr "Kann negative Länge nicht serialisieren"
-#: ../libsvn_subr/io.c:331
+#: ../libsvn_subr/io.c:354
#, c-format
msgid "Can't check path '%s'"
msgstr "Kann Pfad »%s« nicht prüfen"
-#: ../libsvn_subr/io.c:578 ../libsvn_subr/io.c:4958
+#: ../libsvn_subr/io.c:599 ../libsvn_subr/io.c:5208
#, c-format
msgid "Can't open '%s'"
msgstr "Kann »%s« nicht öffnen"
-#: ../libsvn_subr/io.c:604 ../libsvn_subr/io.c:690
+#: ../libsvn_subr/io.c:625 ../libsvn_subr/io.c:711
#, c-format
msgid "Unable to make name for '%s'"
msgstr "Kann Namen für »%s« nicht erstellen"
-#: ../libsvn_subr/io.c:677
+#: ../libsvn_subr/io.c:698
#, c-format
msgid "Can't create symbolic link '%s'"
msgstr "Kann symbolischen Link »%s« nicht anlegen"
-#: ../libsvn_subr/io.c:694 ../libsvn_subr/io.c:729 ../libsvn_subr/io.c:757
-#: ../libsvn_subr/io.c:1935
+#: ../libsvn_subr/io.c:715 ../libsvn_subr/io.c:750 ../libsvn_subr/io.c:778
+#: ../libsvn_subr/io.c:1971
msgid "Symbolic links are not supported on this platform"
msgstr "Symbolische Verweise werden auf dieser Plattform nicht unterstützt"
-#: ../libsvn_subr/io.c:717 ../libsvn_subr/io.c:1894 ../libsvn_subr/io.c:1914
+#: ../libsvn_subr/io.c:738 ../libsvn_subr/io.c:1930 ../libsvn_subr/io.c:1950
#, c-format
msgid "Can't read contents of link"
msgstr "Kann Inhalt des Verweises nicht lesen"
-#: ../libsvn_subr/io.c:777
+#: ../libsvn_subr/io.c:798
#, c-format
msgid "Can't find a temporary directory"
msgstr "Kann temporäres Verzeichnis nicht finden"
-#: ../libsvn_subr/io.c:895
+#: ../libsvn_subr/io.c:916
#, c-format
msgid "Can't copy '%s' to '%s'"
msgstr "Kann »%s« nicht nach »%s« kopieren"
-#: ../libsvn_subr/io.c:938 ../libsvn_subr/io.c:960 ../libsvn_subr/io.c:1006
-#: ../libsvn_subr/io.c:5090
+#: ../libsvn_subr/io.c:959 ../libsvn_subr/io.c:981 ../libsvn_subr/io.c:1027
+#: ../libsvn_subr/io.c:5341
#, c-format
msgid "Can't set permissions on '%s'"
msgstr "Kann Berechtigungen auf »%s« nicht setzen"
-#: ../libsvn_subr/io.c:956 ../libsvn_subr/io.c:2159 ../libsvn_subr/io.c:2218
-#: ../libsvn_subr/io.c:4996
+#: ../libsvn_subr/io.c:977 ../libsvn_subr/io.c:2317 ../libsvn_subr/io.c:2377
+#: ../libsvn_subr/io.c:2466 ../libsvn_subr/io.c:5246
#, c-format
msgid "Can't get file name"
msgstr "Kann keinen Dateinamen holen"
-#: ../libsvn_subr/io.c:1029
+#: ../libsvn_subr/io.c:1050
#, c-format
msgid "Can't append '%s' to '%s'"
msgstr "Kann »%s« nicht an »%s« anhängen"
-#: ../libsvn_subr/io.c:1075
+#: ../libsvn_subr/io.c:1096
#, c-format
msgid "Destination '%s' already exists"
msgstr "Ziel »%s« existiert bereits"
-#: ../libsvn_subr/io.c:1184
+#: ../libsvn_subr/io.c:1205
#, c-format
msgid "Can't make directory '%s'"
msgstr "Kann Verzeichnis »%s« nicht anlegen"
-#: ../libsvn_subr/io.c:1288
+#: ../libsvn_subr/io.c:1309
#, c-format
msgid "Can't set access time of '%s'"
msgstr "Kann Zugriffszeit von »%s« nicht setzen"
-#: ../libsvn_subr/io.c:1618 ../libsvn_subr/io.c:1720
+#: ../libsvn_subr/io.c:1647 ../libsvn_subr/io.c:1749
#, c-format
msgid "Can't change perms of file '%s'"
msgstr "Kann die Zugriffsrechte der Datei »%s« nicht ändern"
-#: ../libsvn_subr/io.c:1848
+#: ../libsvn_subr/io.c:1877
#, c-format
msgid "Can't get attributes of file '%s'"
msgstr "Kann Attributinformationen der Datei »%s« nicht lesen"
-#: ../libsvn_subr/io.c:1856
+#: ../libsvn_subr/io.c:1885
#, c-format
msgid "Can't set attributes of file '%s'"
msgstr "Kann Attributinformationen der Datei »%s« nicht setzen"
-#: ../libsvn_subr/io.c:1978
+#: ../libsvn_subr/io.c:2022 ../libsvn_subr/io.c:2683
+#, c-format
+msgid "Can't remove file '%s'"
+msgstr "Kann Datei »%s« nicht löschen"
+
+#: ../libsvn_subr/io.c:2092 ../libsvn_subr/io.c:4286
+#, c-format
+msgid "Can't move '%s' to '%s'"
+msgstr "Kann »%s« nicht nach »%s« verschieben"
+
+#: ../libsvn_subr/io.c:2138
#, c-format
msgid "Can't set file '%s' read-only"
msgstr "Kann den Schreibschutz der Datei »%s« nicht setzen"
-#: ../libsvn_subr/io.c:2010
+#: ../libsvn_subr/io.c:2170
#, c-format
msgid "Can't set file '%s' read-write"
msgstr "Kann den Schreibschutz der Datei »%s« nicht aufheben"
-#: ../libsvn_subr/io.c:2049 ../libsvn_subr/io.c:2083
+#: ../libsvn_subr/io.c:2209 ../libsvn_subr/io.c:2243
#, c-format
msgid "Error getting UID of process"
msgstr "Fehler beim Ermitteln der Prozess-UID"
-#: ../libsvn_subr/io.c:2185
+#: ../libsvn_subr/io.c:2343
#, c-format
msgid "Can't get shared lock on file '%s'"
msgstr "Kann keine gemeinsame Sperre für Datei »%s« erhalten"
-#: ../libsvn_subr/io.c:2223
+#: ../libsvn_subr/io.c:2382
#, c-format
msgid "Can't unlock file '%s'"
msgstr "Kann Datei »%s« nicht entsprerren"
-#: ../libsvn_subr/io.c:2321 ../libsvn_subr/io.c:2342
-#, c-format
-msgid "Can't flush file to disk"
+#: ../libsvn_subr/io.c:2484 ../libsvn_subr/io.c:2506
+#, fuzzy, c-format
+msgid "Can't flush file '%s' to disk"
msgstr "Kann Datei nicht auf Festplatte leeren"
-#: ../libsvn_subr/io.c:2432 ../libsvn_subr/prompt.c:197
+#: ../libsvn_subr/io.c:2597 ../libsvn_subr/prompt.c:197
#, c-format
msgid "Can't open stdin"
msgstr "Kann Standardeingabe nicht öffnen"
-#: ../libsvn_subr/io.c:2452
+#: ../libsvn_subr/io.c:2617
msgid "Reading from stdin is disallowed"
msgstr "Lesen von der Standardeingabe ist nicht erlaubt"
-#: ../libsvn_subr/io.c:2521
-#, c-format
-msgid "Can't remove file '%s'"
-msgstr "Kann Datei »%s« nicht löschen"
-
-#: ../libsvn_subr/io.c:2608
+#: ../libsvn_subr/io.c:2770
#, c-format
msgid "Can't remove '%s'"
msgstr "Kann »%s« nicht löschen"
-#: ../libsvn_subr/io.c:2771
+#: ../libsvn_subr/io.c:2933
#, c-format
msgid "Path '%s' not found, case obstructed by '%s'"
msgstr "Pfad »%s« nicht gefunden, Groß- und Kleinschreibung durch »%s« blockiert"
-#: ../libsvn_subr/io.c:2810
-#, c-format
-msgid "Path '%s' not found"
-msgstr "Pfad »%s« nicht gefunden"
-
-#: ../libsvn_subr/io.c:2884
+#: ../libsvn_subr/io.c:3046
#, c-format
msgid "Can't create process '%s' attributes"
msgstr "Kann Attribute von Prozess »%s« nicht erzeugen"
-#: ../libsvn_subr/io.c:2891
+#: ../libsvn_subr/io.c:3053
#, c-format
msgid "Can't set process '%s' cmdtype"
msgstr "Kann Kommandotyp von Prozess »%s« nicht setzen "
-#: ../libsvn_subr/io.c:2907
+#: ../libsvn_subr/io.c:3069
#, c-format
msgid "Can't set process '%s' directory"
msgstr "Kann Verzeichnis von Prozess »%s« nicht setzen"
-#: ../libsvn_subr/io.c:2921
+#: ../libsvn_subr/io.c:3083
#, c-format
msgid "Can't set process '%s' child input"
msgstr "Kann Eingabe des Kindprozesses »%s« nicht setzen"
-#: ../libsvn_subr/io.c:2929
+#: ../libsvn_subr/io.c:3091
#, c-format
msgid "Can't set process '%s' child outfile"
msgstr "Kann Ausgabe des Kindprozesses »%s« nicht setzen"
@@ -6937,65 +9172,65 @@ msgstr "Kann Ausgabe des Kindprozesses »%s« nicht setzen"
# FIXME: Laut Code ist %s der Kindprozess. Müsste es dann nicht
# "Can't set child process '%s' errfile" (oder ganz ohne child) heißen?
# (Es gibt kein child von %s)
-#: ../libsvn_subr/io.c:2937
+#: ../libsvn_subr/io.c:3099
#, c-format
msgid "Can't set process '%s' child errfile"
msgstr "Kann Fehlerausgabe des Kindprozesses »%s« nicht setzen"
-#: ../libsvn_subr/io.c:2951
+#: ../libsvn_subr/io.c:3113
#, c-format
msgid "Can't set process '%s' stdio pipes"
msgstr "Kann Standard-IO-Datenströme des Prozesses »%s« nicht setzen "
-#: ../libsvn_subr/io.c:2959
+#: ../libsvn_subr/io.c:3121
#, c-format
msgid "Can't set process '%s' child errfile for error handler"
msgstr "Kann Datei für die Fehlerbehandlung des Kindprozesses »%s« nicht setzen"
-#: ../libsvn_subr/io.c:2966
+#: ../libsvn_subr/io.c:3128
#, c-format
msgid "Can't set process '%s' error handler"
msgstr "Kann die Fehlerbehandlung des Prozesses »%s« nicht setzen"
-#: ../libsvn_subr/io.c:2989
+#: ../libsvn_subr/io.c:3151
#, c-format
msgid "Can't start process '%s'"
msgstr "Kann Prozess »%s« nicht starten"
-#: ../libsvn_subr/io.c:3013
+#: ../libsvn_subr/io.c:3175
#, c-format
msgid "Error waiting for process '%s'"
msgstr "Fehler beim Warten auf Prozess »%s«"
# CHECKME: Isn't "exitwhy" an internal detail?
-#: ../libsvn_subr/io.c:3022
+#: ../libsvn_subr/io.c:3184
#, c-format
msgid "Process '%s' failed (signal %d, core dumped)"
msgstr "Prozess »%s« schlug fehl (Signal %d, Core-Dump)"
# CHECKME: Isn't "exitwhy" an internal detail?
-#: ../libsvn_subr/io.c:3027
+#: ../libsvn_subr/io.c:3189
#, c-format
msgid "Process '%s' failed (signal %d)"
msgstr "Prozess »%s« schlug fehl (Signal %d)"
# CHECKME: Isn't "exitwhy" an internal detail?
-#: ../libsvn_subr/io.c:3033
+#: ../libsvn_subr/io.c:3195
#, c-format
msgid "Process '%s' failed (exitwhy %d, exitcode %d)"
msgstr "Prozess »%s« schlug fehl (Exit-Grund %d, Exit-Code %d)"
-#: ../libsvn_subr/io.c:3041
+#: ../libsvn_subr/io.c:3203
#, c-format
msgid "Process '%s' returned error exitcode %d"
msgstr "Prozess »%s« hat Fehlerwert %d zurückgegeben"
-#: ../libsvn_subr/io.c:3148
+#: ../libsvn_subr/io.c:3310
#, c-format
msgid "'%s' returned %d"
msgstr "»%s« hat %d zurückgegeben"
-#: ../libsvn_subr/io.c:3269
+#: ../libsvn_subr/io.c:3431
#, c-format
msgid ""
"Error running '%s': exitcode was %d, args were:\n"
@@ -7010,255 +9245,250 @@ msgstr ""
"%s\n"
"%s"
-#: ../libsvn_subr/io.c:3410
+#: ../libsvn_subr/io.c:3572
#, c-format
msgid "Can't detect MIME type of non-file '%s'"
msgstr "Kann MIME Typ der nicht-Datei »%s« nicht ermitteln"
-#: ../libsvn_subr/io.c:3505
+#: ../libsvn_subr/io.c:3667
#, c-format
msgid "Can't open file '%s'"
msgstr "Kann Datei »%s« nicht öffnen"
-#: ../libsvn_subr/io.c:3545
+#: ../libsvn_subr/io.c:3707
#, c-format
msgid "Can't close file '%s'"
msgstr "Kann Datei »%s« nicht schließen"
-#: ../libsvn_subr/io.c:3546
+#: ../libsvn_subr/io.c:3708
#, c-format
msgid "Can't close stream"
msgstr "Kann Datenstrom nicht schließen"
-#: ../libsvn_subr/io.c:3555 ../libsvn_subr/io.c:3591 ../libsvn_subr/io.c:3616
-#: ../libsvn_subr/io.c:3706
+#: ../libsvn_subr/io.c:3717 ../libsvn_subr/io.c:3779 ../libsvn_subr/io.c:3804
+#: ../libsvn_subr/io.c:3894
#, c-format
msgid "Can't read file '%s'"
msgstr "Kann Datei »%s« nicht lesen"
-#: ../libsvn_subr/io.c:3556 ../libsvn_subr/io.c:3592 ../libsvn_subr/io.c:3617
-#: ../libsvn_subr/io.c:3707
+#: ../libsvn_subr/io.c:3718 ../libsvn_subr/io.c:3780 ../libsvn_subr/io.c:3805
+#: ../libsvn_subr/io.c:3895
#, c-format
msgid "Can't read stream"
msgstr "Kann nicht aus Datenstrom lesen"
-#: ../libsvn_subr/io.c:3565
+#: ../libsvn_subr/io.c:3727
#, c-format
msgid "Can't write file '%s'"
msgstr "Kann Datei »%s« nicht schreiben"
-#: ../libsvn_subr/io.c:3566
+#: ../libsvn_subr/io.c:3728
#, c-format
msgid "Can't write stream"
msgstr "Kann nicht in Datenstrom schreiben"
-#: ../libsvn_subr/io.c:3580
+#: ../libsvn_subr/io.c:3742
#, c-format
msgid "Can't get attribute information from file '%s'"
msgstr "Kann keine Attributinformationen aus Datei »%s« lesen"
-#: ../libsvn_subr/io.c:3581
+#: ../libsvn_subr/io.c:3743
#, c-format
msgid "Can't get attribute information from stream"
msgstr "Kann keine Attributinformationen aus Datenstrom lesen"
-#: ../libsvn_subr/io.c:3628
+#: ../libsvn_subr/io.c:3816
#, c-format
msgid "Can't set position pointer in file '%s'"
msgstr "Kann Positionszeiger in Datei »%s« nicht setzen"
-#: ../libsvn_subr/io.c:3629
+#: ../libsvn_subr/io.c:3817
#, c-format
msgid "Can't set position pointer in stream"
msgstr "Kann Positionszeiger in Datenstrom nicht setzen"
-#: ../libsvn_subr/io.c:3716
+#: ../libsvn_subr/io.c:3904
#, c-format
msgid "Can't seek in file '%s'"
msgstr "Kann Position in Datei »%s« nicht setzen"
-#: ../libsvn_subr/io.c:3717
+#: ../libsvn_subr/io.c:3905
#, c-format
msgid "Can't seek in stream"
msgstr "Kann Position im Datenstrom nicht setzen"
-#: ../libsvn_subr/io.c:3734 ../libsvn_subr/io.c:3791
+#: ../libsvn_subr/io.c:3922 ../libsvn_subr/io.c:3978
#, c-format
msgid "Can't write to file '%s'"
msgstr "Kann nicht in Datei »%s« schreiben"
-#: ../libsvn_subr/io.c:3735 ../libsvn_subr/io.c:3792
+#: ../libsvn_subr/io.c:3923 ../libsvn_subr/io.c:3979
#, c-format
msgid "Can't write to stream"
msgstr "Kann nicht in Datenstrom schreiben"
-#: ../libsvn_subr/io.c:3745 ../libsvn_subr/io.c:3897
+#: ../libsvn_subr/io.c:3933 ../libsvn_subr/io.c:4090
#, c-format
msgid "Can't flush file '%s'"
msgstr "Kann Datei »%s« nicht leeren"
-#: ../libsvn_subr/io.c:3746 ../libsvn_subr/io.c:3898
+#: ../libsvn_subr/io.c:3934 ../libsvn_subr/io.c:4091
#, c-format
msgid "Can't flush stream"
msgstr "Kann Datenstrom nicht leeren"
-#: ../libsvn_subr/io.c:3866
+#: ../libsvn_subr/io.c:4055
#, c-format
msgid "Can't write '%s' atomically"
msgstr "Kann »%s« nicht unteilbar schreiben"
-#: ../libsvn_subr/io.c:3902
+#: ../libsvn_subr/io.c:4095
#, c-format
msgid "Can't truncate file '%s'"
msgstr "Kann Datei »%s« nicht abschneiden"
-#: ../libsvn_subr/io.c:3903
+#: ../libsvn_subr/io.c:4096
#, c-format
msgid "Can't truncate stream"
msgstr "Kann Datenstrom nicht abschneiden"
-#: ../libsvn_subr/io.c:3976
+#: ../libsvn_subr/io.c:4176
#, c-format
msgid "Can't read length line in file '%s'"
msgstr "Kann Längenzeile nicht aus Datei »%s« lesen"
-#: ../libsvn_subr/io.c:3980
+#: ../libsvn_subr/io.c:4180
msgid "Can't read length line in stream"
msgstr "Kann Längenzeile nicht aus Datenstrom lesen"
-#: ../libsvn_subr/io.c:4002
+#: ../libsvn_subr/io.c:4202
#, c-format
msgid "Can't stat '%s'"
msgstr "Kann Status von »%s« nicht ermitteln"
-#: ../libsvn_subr/io.c:4037 ../libsvn_subr/stream.c:2265
-#, c-format
-msgid "Can't move '%s' to '%s'"
-msgstr "Kann »%s« nicht nach »%s« verschieben"
-
-#: ../libsvn_subr/io.c:4128
+#: ../libsvn_subr/io.c:4380
#, c-format
msgid "Can't create directory '%s'"
msgstr "Kann Verzeichnis »%s« nicht anlegen"
-#: ../libsvn_subr/io.c:4140 ../libsvn_subr/io.c:4154
+#: ../libsvn_subr/io.c:4392 ../libsvn_subr/io.c:4406
#, c-format
msgid "Can't hide directory '%s'"
msgstr "Kann Verzeichnis »%s« nicht verstecken"
-#: ../libsvn_subr/io.c:4215 ../libsvn_subr/io.c:4338
+#: ../libsvn_subr/io.c:4467 ../libsvn_subr/io.c:4590
#, c-format
msgid "Can't open directory '%s'"
msgstr "Kann Verzeichnis »%s« nicht öffnen"
-#: ../libsvn_subr/io.c:4250
+#: ../libsvn_subr/io.c:4502
#, c-format
msgid "Can't remove directory '%s'"
msgstr "Kann Verzeichnis »%s« nicht entfernen"
-#: ../libsvn_subr/io.c:4268
+#: ../libsvn_subr/io.c:4520
#, c-format
msgid "Can't read directory"
msgstr "Kann Verzeichnis nicht lesen"
-#: ../libsvn_subr/io.c:4288
+#: ../libsvn_subr/io.c:4540
#, c-format
msgid "Error closing directory"
msgstr "Fehler beim Schließen eines Verzeichnisses"
-#: ../libsvn_subr/io.c:4357
+#: ../libsvn_subr/io.c:4609
#, c-format
msgid "Can't read directory entry in '%s'"
msgstr "Kann Verzeichniseintrag in »%s« nicht lesen"
-#: ../libsvn_subr/io.c:4483
+#: ../libsvn_subr/io.c:4735
#, c-format
msgid "Can't check directory '%s'"
msgstr "Kann Verzeichnis »%s« nicht prüfen"
-#: ../libsvn_subr/io.c:4545
+#: ../libsvn_subr/io.c:4797
#, c-format
msgid "Reading '%s'"
msgstr "Lese »%s«"
-#: ../libsvn_subr/io.c:4564
+#: ../libsvn_subr/io.c:4816
#, c-format
msgid "First line of '%s' contains non-digit"
msgstr "Die erste Zeile von »%s« enthält eine Nicht-Ziffer"
-#: ../libsvn_subr/io.c:4879
+#: ../libsvn_subr/io.c:5131
#, c-format
msgid "Can't create temporary file from template '%s'"
msgstr "Kann temporäre Datei von Vorlage »%s« nicht anlegen"
-#: ../libsvn_subr/io.c:4968
+#: ../libsvn_subr/io.c:5218
#, c-format
msgid "Can't set aside '%s'"
msgstr "Kann »%s« nicht beiseitelegen"
-#: ../libsvn_subr/io.c:4980 ../libsvn_subr/stream.c:2079
+#: ../libsvn_subr/io.c:5230 ../libsvn_subr/stream.c:2231
#, c-format
msgid "Unable to make name in '%s'"
msgstr "Kann Namen in »%s« nicht erstellen"
-#: ../libsvn_subr/mergeinfo.c:101 ../libsvn_subr/mergeinfo.c:714
+#: ../libsvn_subr/mergeinfo.c:109 ../libsvn_subr/mergeinfo.c:710
msgid "Pathname not terminated by ':'"
msgstr "Pfadnamen sind nicht durch »:« getrennt"
-#: ../libsvn_subr/mergeinfo.c:518
+#: ../libsvn_subr/mergeinfo.c:515
#, c-format
msgid "Invalid character '%c' found in revision list"
msgstr "Ungültiges Zeichen »%c« in Revisionsliste gefunden"
-#: ../libsvn_subr/mergeinfo.c:526
+#: ../libsvn_subr/mergeinfo.c:523
#, c-format
msgid "Invalid revision number '0' found in range list"
msgstr "Ungültige Revisionsnummer '0' in Revisionsbereichsliste gefunden"
-#: ../libsvn_subr/mergeinfo.c:537
+#: ../libsvn_subr/mergeinfo.c:534
#, c-format
msgid "Unable to parse reversed revision range '%ld-%ld'"
msgstr "Rückwärtiger Revisionsbereich »%ld-%ld« kann nicht verarbeitet werden"
-#: ../libsvn_subr/mergeinfo.c:542
+#: ../libsvn_subr/mergeinfo.c:539
#, c-format
msgid "Unable to parse revision range '%ld-%ld' with same start and end revisions"
msgstr "Revisionbereich »%ld-%ld« mit selber Start- und Endrevision kann nicht verarbeitet werden"
-#: ../libsvn_subr/mergeinfo.c:579 ../libsvn_subr/mergeinfo.c:586
+#: ../libsvn_subr/mergeinfo.c:576 ../libsvn_subr/mergeinfo.c:583
#, c-format
msgid "Invalid character '%c' found in range list"
msgstr "Ungültiges Zeichen »%c« in der Bereichsliste gefunden"
-#: ../libsvn_subr/mergeinfo.c:593
+#: ../libsvn_subr/mergeinfo.c:590
msgid "Range list parsing ended before hitting newline"
msgstr "Einlesen der Bereichsliste endete vor dem Zeilenumbruch"
-#: ../libsvn_subr/mergeinfo.c:670
+#: ../libsvn_subr/mergeinfo.c:666
#, c-format
msgid "Unable to parse overlapping revision ranges '%s' and '%s' with different inheritance types"
msgstr "Überlappende Revisionsbereiche »%s« und »%s« mit verschiedenen Vererbungstypen können nicht verarbeitet werden"
-#: ../libsvn_subr/mergeinfo.c:722
+#: ../libsvn_subr/mergeinfo.c:718
#, c-format
msgid "Mergeinfo for '%s' maps to an empty revision range"
msgstr "Zusammenführungsinformationen für »%s« verweisen auf einen leeren Revisionsbereich"
-#: ../libsvn_subr/mergeinfo.c:726
+#: ../libsvn_subr/mergeinfo.c:722
#, c-format
msgid "Could not find end of line in range list line in '%s'"
msgstr "Konnte Zeilenende in Bereichslistenzeile in »%s« nicht finden"
-#: ../libsvn_subr/mergeinfo.c:790
+#: ../libsvn_subr/mergeinfo.c:786
#, c-format
msgid "Could not parse mergeinfo string '%s'"
msgstr "Konnte Zusammenführungsinformationszeichenkette »%s« nicht einlesen"
-#: ../libsvn_subr/mergeinfo.c:2367
+#: ../libsvn_subr/mergeinfo.c:2418
msgid "NULL mergeinfo catalog\n"
msgstr "Zusammenführungsinformationskatalog ist NULL\n"
-#: ../libsvn_subr/mergeinfo.c:2372
+#: ../libsvn_subr/mergeinfo.c:2423
msgid "empty mergeinfo catalog\n"
msgstr "Zusammenführungsinformationskatalog ist leer\n"
@@ -7282,11 +9512,11 @@ msgstr "Kann Mutex nicht entsperren"
msgid "Can't get module file name"
msgstr "Kann Namen der Moduldatei nicht ermitteln"
-#: ../libsvn_subr/opt.c:189
+#: ../libsvn_subr/opt.c:273
msgid " ARG"
msgstr " PAR"
-#: ../libsvn_subr/opt.c:324
+#: ../libsvn_subr/opt.c:432 ../libsvn_subr/opt.c:535
msgid ""
"\n"
"Global options:\n"
@@ -7294,37 +9524,37 @@ msgstr ""
"\n"
"Globale Optionen:\n"
-#: ../libsvn_subr/opt.c:818
+#: ../libsvn_subr/opt.c:1120
#, c-format
msgid "Syntax error parsing peg revision '%s'; did you mean '%s@'?"
msgstr "Syntaxfehler bei der Analyse der Fix-Revision »%s«; Meinten Sie '%s@'?"
-#: ../libsvn_subr/opt.c:824
+#: ../libsvn_subr/opt.c:1126
#, c-format
msgid "Syntax error parsing peg revision '%s'"
msgstr "Syntaxfehler bei der Analyse der Fix-Revision »%s«"
-#: ../libsvn_subr/opt.c:961
+#: ../libsvn_subr/opt.c:1263
msgid "Revision property pair is empty"
msgstr "Revisionseigenschaftspaar ist leer"
-#: ../libsvn_subr/opt.c:981 ../svn/propedit-cmd.c:87 ../svn/propget-cmd.c:338
+#: ../libsvn_subr/opt.c:1283 ../svn/propedit-cmd.c:87 ../svn/propget-cmd.c:337
#: ../svn/propset-cmd.c:68
#, c-format
msgid "'%s' is not a valid Subversion property name"
msgstr "»%s« ist kein gültiger Subversion-Eigenschaftsname"
-#: ../libsvn_subr/opt.c:1057
+#: ../libsvn_subr/opt.c:1359
#, c-format
msgid "URL '%s' contains a '..' element"
msgstr "URL »%s« enthält ein »..« Element"
-#: ../libsvn_subr/opt.c:1090
+#: ../libsvn_subr/opt.c:1392
#, c-format
msgid "Error resolving case of '%s'"
msgstr "Fehler beim Ermitteln der Groß-/Kleinschreibung von »%s«"
-#: ../libsvn_subr/opt.c:1112
+#: ../libsvn_subr/opt.c:1414
#, c-format
msgid ""
"%s, version %s\n"
@@ -7335,7 +9565,7 @@ msgstr ""
" übersetzt am %s, um %s auf %s\n"
"\n"
-#: ../libsvn_subr/opt.c:1129
+#: ../libsvn_subr/opt.c:1431
msgid ""
"System information:\n"
"\n"
@@ -7343,38 +9573,38 @@ msgstr ""
"Systeminformationen:\n"
"\n"
-#: ../libsvn_subr/opt.c:1130
+#: ../libsvn_subr/opt.c:1432
#, c-format
msgid "* running on %s\n"
msgstr "* ausgeführt auf %s\n"
-#: ../libsvn_subr/opt.c:1134
+#: ../libsvn_subr/opt.c:1436
#, c-format
msgid " - %s\n"
msgstr " - %s\n"
-#: ../libsvn_subr/opt.c:1144
+#: ../libsvn_subr/opt.c:1446
msgid "* linked dependencies:\n"
msgstr "* eingebundene Abhändigleiten:\n"
-#: ../libsvn_subr/opt.c:1169
+#: ../libsvn_subr/opt.c:1471
msgid "* loaded shared libraries:\n"
msgstr "* geladene dynamische Bibliotheken:\n"
-#: ../libsvn_subr/packed_data.c:736
+#: ../libsvn_subr/packed_data.c:742
msgid "Unexpected end of stream"
msgstr "Unerwartetes Ende des Datenstroms"
-#: ../libsvn_subr/packed_data.c:742
+#: ../libsvn_subr/packed_data.c:748
msgid "Integer representation too long"
msgstr "Ganzzahldarstellung zu lang"
-#: ../libsvn_subr/path.c:1114
+#: ../libsvn_subr/path.c:1125
#, c-format
msgid "Can't determine the native path encoding"
msgstr "Kann die Zeichencodierung des Pfades nicht ermitteln"
-#: ../libsvn_subr/path.c:1299
+#: ../libsvn_subr/path.c:1310
#, c-format
msgid "Improper relative URL '%s'"
msgstr "Fehlerhafte relative URL »%s«"
@@ -7397,7 +9627,7 @@ msgstr "Kann nicht vom Terminal lesen"
msgid "End of file while reading from terminal"
msgstr "Dateiende während des Lesens vom Terminal"
-#: ../libsvn_subr/prompt.c:598 ../svn/auth-cmd.c:241
+#: ../libsvn_subr/prompt.c:598 ../svn/auth-cmd.c:312
#, c-format
msgid "Authentication realm: %s\n"
msgstr "Anmeldebereich: %s\n"
@@ -7467,31 +9697,31 @@ msgstr "Client Zertifikatsdatei: "
msgid "Passphrase for '%s': "
msgstr "Passphrase für »%s«: "
-#: ../libsvn_subr/prompt.c:841
+#: ../libsvn_subr/prompt.c:832
msgid "yes"
msgstr "ja"
-#: ../libsvn_subr/prompt.c:842
+#: ../libsvn_subr/prompt.c:833
msgid "y"
msgstr "j"
-#: ../libsvn_subr/prompt.c:847
+#: ../libsvn_subr/prompt.c:838
msgid "no"
msgstr "nein"
-#: ../libsvn_subr/prompt.c:848
+#: ../libsvn_subr/prompt.c:839
msgid "n"
msgstr "n"
-#: ../libsvn_subr/prompt.c:854
+#: ../libsvn_subr/prompt.c:845
msgid "Please type 'yes' or 'no': "
msgstr "Bitte geben Sie »ja« oder »nein« ein: "
-#: ../libsvn_subr/prompt.c:868
+#: ../libsvn_subr/prompt.c:859
msgid "Store password unencrypted (yes/no)? "
msgstr "Passwort unverschlüsselt speichern (ja/nein)? "
-#: ../libsvn_subr/prompt.c:870
+#: ../libsvn_subr/prompt.c:861
#, c-format
msgid ""
"\n"
@@ -7526,11 +9756,11 @@ msgstr ""
"entweder auf »yes« oder »no« setzen.\n"
"-----------------------------------------------------------------------\n"
-#: ../libsvn_subr/prompt.c:897
+#: ../libsvn_subr/prompt.c:888
msgid "Store passphrase unencrypted (yes/no)? "
msgstr "Passphrase unverschlüsselt speichern (ja/nein)? "
-#: ../libsvn_subr/prompt.c:899
+#: ../libsvn_subr/prompt.c:890
#, c-format
msgid ""
"\n"
@@ -7565,7 +9795,7 @@ msgstr ""
"entweder auf »yes« oder »no« setzen.\n"
"-----------------------------------------------------------------------\n"
-#: ../libsvn_subr/prompt.c:945
+#: ../libsvn_subr/prompt.c:936
#, c-format
msgid "Password for '%s' GNOME keyring: "
msgstr "Passwort für GNOME-Schlüsselring »%s«: "
@@ -7576,75 +9806,90 @@ msgstr "Passwort für GNOME-Schlüsselring »%s«: "
msgid "Config error: invalid value '%s' for option '%s'"
msgstr "Konfigurationsfehler: Ungültiger Wert »%s« für Option »%s«"
-#: ../libsvn_subr/sqlite.c:242
+#: ../libsvn_subr/sqlite.c:235
#, c-format
msgid "sqlite[S%d]: %s, executing statement '%s'"
msgstr "sqlite[S%d]: %s, Ausgeführte Anweisung '%s'"
-#: ../libsvn_subr/sqlite.c:331
+#: ../libsvn_subr/sqlite.c:324
msgid "sqlite: Expected database row missing"
msgstr "sqlite: Erwartete Zeile in der Datenbank fehlt"
-#: ../libsvn_subr/sqlite.c:332
+#: ../libsvn_subr/sqlite.c:325
msgid "sqlite: Extra database row found"
msgstr "sqlite: Zusätzliche Zeile der Datenbank wurde gefunden"
-#: ../libsvn_subr/sqlite.c:803
+#: ../libsvn_subr/sqlite.c:796
#, c-format
msgid "SQLite compiled for %s, but running with %s"
msgstr "SQLite wurde für %s kompiliert, läuft aber mit %s"
-#: ../libsvn_subr/sqlite.c:815
+#: ../libsvn_subr/sqlite.c:808
msgid "SQLite is required to be compiled and run in thread-safe mode"
msgstr "Es wird erwartet, dass SQLite im Thread-sicheren Modus kompiliert und gestartet wird"
-#: ../libsvn_subr/sqlite.c:824
+#: ../libsvn_subr/sqlite.c:817
#, c-format
msgid "Could not configure SQLite [S%d]"
msgstr "Konnte SQLite nicht konfigurieren [S%d]"
-#: ../libsvn_subr/sqlite.c:826
+#: ../libsvn_subr/sqlite.c:819
msgid "Could not initialize SQLite"
msgstr "Konnte SQLite nicht initialisieren"
-#: ../libsvn_subr/sqlite.c:1445
+#: ../libsvn_subr/sqlite.c:1482
#, c-format
msgid "SQLite hotcopy failed for %s"
msgstr "SQLite-Hotcopy fehlgeschlagen für »%s«"
-#: ../libsvn_subr/stream.c:968
+#: ../libsvn_subr/stream.c:846
#, c-format
msgid "Polling for available data on filestream failed"
msgstr "Abfrage aller verfügbarer Daten des Dateistroms fehlgeschlagen"
-#: ../libsvn_subr/string.c:981 ../libsvn_subr/string.c:1025
+#: ../libsvn_subr/stream.c:866
+#, fuzzy
+msgid "Windows doesn't support polling on files"
+msgstr "Server unterstützt keine Sperroperationen"
+
+#: ../libsvn_subr/stream.c:908
+#, fuzzy, c-format
+msgid "Can't read a line from file '%s'"
+msgstr "Die erste Zeile der Formatdatei »%s« kann nicht gelesen werden"
+
+#: ../libsvn_subr/stream.c:912
+#, fuzzy, c-format
+msgid "Can't read a line from stream"
+msgstr "Kann Längenzeile nicht aus Datenstrom lesen"
+
+#: ../libsvn_subr/string.c:1076 ../libsvn_subr/string.c:1120
#, c-format
msgid "Could not convert '%s' into a number"
msgstr "Konnte »%s« nicht in Zahl umwandeln"
-#: ../libsvn_subr/subst.c:1820 ../libsvn_wc/props.c:1767
+#: ../libsvn_subr/subst.c:1813 ../libsvn_wc/props.c:1767
#, c-format
msgid "File '%s' has inconsistent newlines"
msgstr "Datei »%s« hat inkonsistente Zeilenenden"
-#: ../libsvn_subr/subst.c:1858
+#: ../libsvn_subr/subst.c:1851
#, c-format
msgid "Can't read special file: File '%s' not found"
msgstr "Kann spezielle Datei nicht lesen: Datei »%s« nicht gefunden"
-#: ../libsvn_subr/sysinfo.c:1209
+#: ../libsvn_subr/sysinfo.c:1239
msgid "Intel"
msgstr "Intel"
-#: ../libsvn_subr/sysinfo.c:1210
+#: ../libsvn_subr/sysinfo.c:1240
msgid "Intel 64-bit"
msgstr "Intel 64 Bit"
-#: ../libsvn_subr/sysinfo.c:1211
+#: ../libsvn_subr/sysinfo.c:1241
msgid "PowerPC"
msgstr "PowerPC"
-#: ../libsvn_subr/sysinfo.c:1212
+#: ../libsvn_subr/sysinfo.c:1242
msgid "PowerPC 64-bit"
msgstr "PowerPC 64 Bit"
@@ -7678,47 +9923,47 @@ msgstr "Revisionsnummer ist länger als 10 Ziffern »%s«"
msgid "Revision number too large '%s'"
msgstr "Revisionsnummer ist zu groß »%s«"
-#: ../libsvn_subr/utf.c:245
+#: ../libsvn_subr/utf.c:243
#, c-format
msgid "Can't create a character converter from native encoding to '%s'"
msgstr "Kann keinen Zeichenkonverter von der eigenen Codierung nach »%s« erzeugen"
-#: ../libsvn_subr/utf.c:249
+#: ../libsvn_subr/utf.c:247
#, c-format
msgid "Can't create a character converter from '%s' to native encoding"
msgstr "Kann keinen Zeichenkonverter von »%s« in die eigene Kodierung erzeugen"
-#: ../libsvn_subr/utf.c:253
+#: ../libsvn_subr/utf.c:251
#, c-format
msgid "Can't create a character converter from '%s' to '%s'"
msgstr "Kann keinen Zeichenkonverter von »%s« nach »%s« erzeugen"
-#: ../libsvn_subr/utf.c:548
+#: ../libsvn_subr/utf.c:546
#, c-format
msgid "Can't convert string from native encoding to '%s':"
msgstr "Kann Zeichenkette nicht von der eigenen Codierung nach »%s« konvertieren:"
-#: ../libsvn_subr/utf.c:552
+#: ../libsvn_subr/utf.c:550
#, c-format
msgid "Can't convert string from '%s' to native encoding:"
msgstr "Kann Zeichenkette nicht von »%s« in die eigene Codierung konvertieren:"
-#: ../libsvn_subr/utf.c:556
+#: ../libsvn_subr/utf.c:554
#, c-format
msgid "Can't convert string from '%s' to '%s':"
msgstr "Kann Zeichenkette nicht von »%s« nach »%s« konvertieren:"
-#: ../libsvn_subr/utf.c:601
+#: ../libsvn_subr/utf.c:599
#, c-format
msgid "Safe data '%s' was followed by non-ASCII byte %d: unable to convert to/from UTF-8"
msgstr "Auf sichere Daten »%s« folgte ein nicht-ASCII Byte %d, das nicht von/nach UTF-8 konvertiert werden konnte"
-#: ../libsvn_subr/utf.c:609
+#: ../libsvn_subr/utf.c:607
#, c-format
msgid "Non-ASCII character (code %d) detected, and unable to convert to/from UTF-8"
msgstr "Ein Nicht-ASCII Zeichen (Kode %d) wurde gefunden, das nicht von/nach UTF-8 konvertiert werden konnte"
-#: ../libsvn_subr/utf.c:654
+#: ../libsvn_subr/utf.c:652
#, c-format
msgid ""
"Valid UTF-8 data\n"
@@ -7731,58 +9976,34 @@ msgstr ""
"folgte eine ungültige UTF-8-Sequenz\n"
"(hex:%s)"
-#: ../libsvn_subr/utf.c:1202 ../libsvn_subr/utf.c:1211
+#: ../libsvn_subr/utf.c:1207 ../libsvn_subr/utf.c:1216
#, c-format
msgid "Conversion to UTF-16 failed"
msgstr "Umwandlung nach UTF-16 fehlgeschlagen"
-#: ../libsvn_subr/utf.c:1240 ../libsvn_subr/utf.c:1250
+#: ../libsvn_subr/utf.c:1245 ../libsvn_subr/utf.c:1255
#, c-format
msgid "Conversion from UTF-16 failed"
msgstr "Umwandlung von UTF-16 fehlgeschlagen"
-#: ../libsvn_subr/utf8proc.c:215
+#: ../libsvn_subr/utf8proc.c:298
#, c-format
msgid "Invalid Unicode character U+%04lX"
msgstr "Ungültiges Unicode-Zeichen U+%04lX"
-#: ../libsvn_subr/utf8proc.c:252
+#: ../libsvn_subr/utf8proc.c:335
msgid "Cannot use a custom escape token in glob matching mode"
msgstr "Kann kein benutzerdefiniertes geschütztes Zeichen im Platzhalter-Suchmodus verwenden"
-#: ../libsvn_subr/utf8proc.c:283
+#: ../libsvn_subr/utf8proc.c:366
msgid "Escape token must be one character"
msgstr "Geschützes Zeichen muss ein einzelnes Zeichen sein"
-#: ../libsvn_subr/utf8proc.c:286
+#: ../libsvn_subr/utf8proc.c:369
#, c-format
msgid "Invalid escape character U+%04lX"
msgstr "Ungültiges geschütztes Zeichen U+%04lX"
-#: ../libsvn_subr/utf8proc/utf8proc.c:117
-msgid "Memory for processing UTF-8 data could not be allocated."
-msgstr "Speicher für die Verarbeitung von UTF-8 Daten konnte nicht zugewiesen werden."
-
-#: ../libsvn_subr/utf8proc/utf8proc.c:119
-msgid "UTF-8 string is too long to be processed."
-msgstr "UTF-8 Zeichenkette ist für die Verarbeitung zu lang."
-
-#: ../libsvn_subr/utf8proc/utf8proc.c:121
-msgid "Invalid UTF-8 string"
-msgstr "Ungültige UTF-8 Zeichenkette"
-
-#: ../libsvn_subr/utf8proc/utf8proc.c:123
-msgid "Unassigned Unicode code point found in UTF-8 string."
-msgstr "Nicht zugewiesener Unicode-Codepunkt in UTF-8 Zeichenkette gefunden."
-
-#: ../libsvn_subr/utf8proc/utf8proc.c:125
-msgid "Invalid options for UTF-8 processing chosen."
-msgstr "Ungültige Optionen für die Verarbeitung von UTF-8 ausgewählt."
-
-#: ../libsvn_subr/utf8proc/utf8proc.c:127
-msgid "An unknown error occured while processing UTF-8 data."
-msgstr "Ein unbekannter Fehler trat bei der Verarbeitung von UTF-8 Daten auf."
-
#: ../libsvn_subr/validate.c:56
#, c-format
msgid "MIME type '%s' has empty media type"
@@ -7803,22 +10024,23 @@ msgstr "MIME-Typ »%s« enthält ein ungültiges Zeichen »%c« im Medientyp"
msgid "MIME type '%s' contains invalid character '0x%02x' in postfix"
msgstr "MIME-Typ »%s« enthält ein ungültiges Zeichen »0x%02x« im Postfix"
-#: ../libsvn_subr/version.c:91
+#: ../libsvn_subr/version.c:98
#, c-format
msgid "Version mismatch in '%s'%s: found %d.%d.%d%s, expected %d.%d.%d%s"
msgstr "Versionskonflikt in »%s«%s: gefunden %d.%d.%d%s, erwartet %d.%d.%d%s"
-#: ../libsvn_subr/version.c:96
+#: ../libsvn_subr/version.c:103
msgid " (expecting equality)"
msgstr " (Ãœbereinstimmung erwartet)"
-#: ../libsvn_subr/version.c:98
+#: ../libsvn_subr/version.c:105
msgid " (expecting compatibility)"
msgstr " (Kompatibilität erwartet)"
-#: ../libsvn_subr/version.c:139
+#: ../libsvn_subr/version.c:146
+#, fuzzy
msgid ""
-"Copyright (C) 2015 The Apache Software Foundation.\n"
+"Copyright (C) 2018 The Apache Software Foundation.\n"
"This software consists of contributions made by many people;\n"
"see the NOTICE file for more information.\n"
"Subversion is open source software, see http://subversion.apache.org/\n"
@@ -7828,14 +10050,14 @@ msgstr ""
"siehe Datei NOTICE für weitere Informationen.\n"
"Subversion ist Open Source Software, siehe http://subversion.apache.org/\n"
-#: ../libsvn_subr/version.c:217 ../libsvn_subr/version.c:228
-#: ../libsvn_subr/version.c:234 ../libsvn_subr/version.c:251
-#: ../libsvn_subr/version.c:258
+#: ../libsvn_subr/version.c:224 ../libsvn_subr/version.c:235
+#: ../libsvn_subr/version.c:241 ../libsvn_subr/version.c:258
+#: ../libsvn_subr/version.c:265
#, c-format
msgid "Failed to parse version number string '%s'"
msgstr "Konnte Zeichenkette mit Versionsnummer »%s« nicht verarbeiten"
-#: ../libsvn_subr/xml.c:416
+#: ../libsvn_subr/xml.c:518
#, c-format
msgid "Malformed XML: %s at line %ld"
msgstr "Fehlerhaftes XML: %s in Zeile %ld"
@@ -7854,17 +10076,17 @@ msgstr "Der Knoten »%s« kann nicht wiederhergestellt werden."
msgid "Error aborting report"
msgstr "Fehler beim Abbrechen des Reports"
-#: ../libsvn_wc/adm_crawler.c:978
+#: ../libsvn_wc/adm_crawler.c:1004
#, c-format
msgid "Pristine checksum for file '%s' is missing"
msgstr "Prüfsumme für ursprünglichen Inhalt der Datei »%s« fehlt"
-#: ../libsvn_wc/adm_crawler.c:1143
+#: ../libsvn_wc/adm_crawler.c:1194
#, c-format
msgid "Checksum mismatch for text base of '%s'"
msgstr "Prüfsummenfehler für Textbasis von »%s«"
-#: ../libsvn_wc/adm_crawler.c:1154
+#: ../libsvn_wc/adm_crawler.c:1205
#, c-format
msgid "While preparing '%s' for commit"
msgstr "Beim Vorbereiten von »%s« für die Übertragung"
@@ -7904,19 +10126,19 @@ msgstr "Revision %ld passt nicht zur existierenden Revision %ld in »%s«"
msgid "URL '%s' (uuid: '%s') doesn't match existing URL '%s' (uuid: '%s') in '%s'"
msgstr "URL »%s« (UUID: »%s«) stimmt nicht mit der existierenden URL »%s« (UUID: »%s«) in »%s« überein"
-#: ../libsvn_wc/adm_ops.c:313 ../libsvn_wc/update_editor.c:5302
+#: ../libsvn_wc/adm_ops.c:313 ../libsvn_wc/update_editor.c:5345
#, c-format
msgid "Can't find parent directory's node while trying to add '%s'"
msgstr "Kann Knoten des Elternverzeichnisses während des Hinzufügens von »%s« nicht finden"
-#: ../libsvn_wc/adm_ops.c:322 ../libsvn_wc/update_editor.c:5296
+#: ../libsvn_wc/adm_ops.c:322 ../libsvn_wc/update_editor.c:5339
#, c-format
msgid "Can't add '%s' to a parent directory scheduled for deletion"
msgstr ""
"Kann »%s« nicht zu einem Elternverzeichnis hinzufügen, das selbst zum Löschen\n"
"vorgesehen ist"
-#: ../libsvn_wc/adm_ops.c:329 ../libsvn_wc/update_editor.c:5309
+#: ../libsvn_wc/adm_ops.c:329 ../libsvn_wc/update_editor.c:5352
#, c-format
msgid "Can't schedule an addition of '%s' below a not-directory node"
msgstr "Kann »%s« nicht zum Hinzufügen unter einem Knoten vorsehen, der kein Verzeichnis ist"
@@ -7950,67 +10172,87 @@ msgstr "»%s« ist kein Verzeichnis einer Arbeitskopie"
msgid "Log format too old, please use Subversion 1.6 or earlier"
msgstr "Log-Format zu alt, bitte verwenden Sie Subversion 1.6 oder älter"
-#: ../libsvn_wc/conflicts.c:83
+#: ../libsvn_wc/conflicts.c:84
msgid "Not a conflict skel"
msgstr "Ungültiges Konfliktskeleton"
-#: ../libsvn_wc/conflicts.c:607 ../libsvn_wc/conflicts.c:704
+#: ../libsvn_wc/conflicts.c:624 ../libsvn_wc/conflicts.c:721
msgid "Not a completed conflict skel"
msgstr "Kein vollständiges Konfliktskeleton"
-#: ../libsvn_wc/conflicts.c:785 ../libsvn_wc/conflicts.c:858
-#: ../libsvn_wc/conflicts.c:948
+#: ../libsvn_wc/conflicts.c:802 ../libsvn_wc/conflicts.c:875
+#: ../libsvn_wc/conflicts.c:966
msgid "Conflict not set"
msgstr "Konflikt nicht gesetzt"
# CHECKME: s/callback/hook/ ??
-#: ../libsvn_wc/conflicts.c:1315 ../libsvn_wc/conflicts.c:1974
-#: ../libsvn_wc/conflicts.c:2019
+#: ../libsvn_wc/conflicts.c:1350 ../libsvn_wc/conflicts.c:2025
+#: ../libsvn_wc/conflicts.c:2070
msgid "Conflict callback violated API: returned no results"
msgstr "Konflikt-Aktion Rückruffunktion die API: keine Ergebnisse wurden zurückgeliefert"
-#: ../libsvn_wc/conflicts.c:1360
+#: ../libsvn_wc/conflicts.c:1393
msgid "Conflict callback violated API: returned no merged file"
msgstr "Konflikt-Aktion verletzte die API: keine zusammengeführte Datei wurde zurückgeliefert"
-#: ../libsvn_wc/conflicts.c:1674
+#: ../libsvn_wc/conflicts.c:1680
+#, fuzzy, c-format
+msgid "Conflict on '%s' cannot be resolved to 'theirs-conflict' or 'mine-conflict' because a merged version of the file cannot be created."
+msgstr "Konflikt von »%s« konnte nicht aufgelöst werden, da die gewählte Version der Datei nicht verfügbar ist."
+
+#: ../libsvn_wc/conflicts.c:1725
#, c-format
msgid "Conflict on '%s' could not be resolved because the chosen version of the file is not available."
msgstr "Konflikt von »%s« konnte nicht aufgelöst werden, da die gewählte Version der Datei nicht verfügbar ist."
-#: ../libsvn_wc/conflicts.c:2481
+#: ../libsvn_wc/conflicts.c:2540
msgid "Invalid 'conflict_result' argument"
msgstr "Ungültiger Parameter »conflict_result«"
-#: ../libsvn_wc/conflicts.c:2725 ../libsvn_wc/conflicts.c:2784
+#: ../libsvn_wc/conflicts.c:2803 ../libsvn_wc/conflicts.c:2848
#, c-format
msgid "Tree conflict can only be resolved to 'working' or 'mine-conflict' state; '%s' not resolved"
msgstr "Baumkonflikt kann nur zum Zustand »working« oder »mine-conflict« aufgelöst werden; Konflikt in »%s« nicht aufgelöst"
-#: ../libsvn_wc/conflicts.c:2811
+#: ../libsvn_wc/conflicts.c:2875
#, c-format
msgid "Tree conflict can only be resolved to 'working' state; '%s' is no longer moved"
msgstr "Baumkonflikt kann nur zum Zustand »working« aufgelöst werden; »%s« nicht länger verschoben"
-#: ../libsvn_wc/conflicts.c:2829
+#: ../libsvn_wc/conflicts.c:2893
#, c-format
msgid "Tree conflict can only be resolved to 'working' state; '%s' not resolved"
msgstr "Baumkonflikt kann nur zum Zustand »working« aufgelöst werden; Konflikt in »%s« nicht aufgelöst"
-#: ../libsvn_wc/conflicts.c:3006
+#: ../libsvn_wc/conflicts.c:3070
msgid "No conflict-callback and no pre-defined conflict-choice provided"
msgstr "Keine Konflikt-Rückruffunktion oder Standard-Konfliktlösungsauswahl angegeben"
-#: ../libsvn_wc/conflicts.c:3234
-#, c-format
-msgid "Unable to resolve pending conflict on '%s'"
-msgstr "Kann ausstehenden Konflikt in »%s« nicht auflösen"
-
-#: ../libsvn_wc/conflicts.c:3246
+#: ../libsvn_wc/conflicts.c:3339
#, c-format
msgid "Unable to resolve conflicts on '%s'"
msgstr "Kann Konflikte in »%s« nicht auflösen"
+#: ../libsvn_wc/conflicts.c:3530 ../libsvn_wc/conflicts.c:3616
+#: ../libsvn_wc/conflicts.c:3695 ../libsvn_wc/conflicts.c:3781
+#: ../libsvn_wc/conflicts.c:3848
+#, fuzzy, c-format
+msgid "Unexpected conflict operation '%s' on '%s'"
+msgstr "Unerwarteter Serverfehler %d »%s« auf »%s«"
+
+#: ../libsvn_wc/conflicts.c:3538 ../libsvn_wc/conflicts.c:3623
+#: ../libsvn_wc/conflicts.c:3701 ../libsvn_wc/conflicts.c:3787
+#: ../libsvn_wc/conflicts.c:3854
+#, fuzzy, c-format
+msgid "Unexpected conflict reason '%s' on '%s'"
+msgstr "Unerwarteter HTTP-Status %d »%s« auf »%s«"
+
+#: ../libsvn_wc/conflicts.c:3629 ../libsvn_wc/conflicts.c:3707
+#: ../libsvn_wc/conflicts.c:3793 ../libsvn_wc/conflicts.c:3860
+#, fuzzy, c-format
+msgid "Unexpected conflict action '%s' on '%s'"
+msgstr "Unerwarteter HTTP-Status %d »%s« auf »%s«"
+
#: ../libsvn_wc/copy.c:103
#, c-format
msgid "Source '%s' is unexpected kind"
@@ -8021,13 +10263,13 @@ msgstr "Quelle »%s« ist unbekannten Typs"
msgid "cannot handle node kind for '%s'"
msgstr "Kann Knotentyp für »%s« nicht verarbeiten"
-#: ../libsvn_wc/copy.c:493 ../libsvn_wc/wc_db.c:4626 ../libsvn_wc/wc_db.c:5429
+#: ../libsvn_wc/copy.c:493 ../libsvn_wc/wc_db.c:4623 ../libsvn_wc/wc_db.c:5426
#, c-format
msgid "Cannot handle status of '%s'"
msgstr "Kann Status von »%s« nicht verarbeiten"
-#: ../libsvn_wc/copy.c:502 ../libsvn_wc/wc_db.c:4617 ../libsvn_wc/wc_db.c:5423
-#: ../libsvn_wc/wc_db.c:5667
+#: ../libsvn_wc/copy.c:502 ../libsvn_wc/wc_db.c:4614 ../libsvn_wc/wc_db.c:5420
+#: ../libsvn_wc/wc_db.c:5664
#, c-format
msgid "Cannot copy '%s' excluded by server"
msgstr "Kann vom Server ausgeschlossenes »%s« nicht kopieren"
@@ -8064,56 +10306,56 @@ msgstr "Kann nach »%s« kopieren, da es zum Löschen vorgesehen ist"
msgid "'%s' is already under version control but is excluded."
msgstr "»%s« befindet sich bereits unter Versionskontrolle, ist aber ausgeschlossen."
-#: ../libsvn_wc/copy.c:795
+#: ../libsvn_wc/copy.c:796
#, c-format
msgid "There is already a versioned item '%s'"
msgstr "Es existiert bereits ein versioniertes Objekt »%s«"
-#: ../libsvn_wc/copy.c:811
+#: ../libsvn_wc/copy.c:812
#, c-format
msgid "'%s' already exists and is in the way"
msgstr "»%s« existiert bereits und ist im Weg"
-#: ../libsvn_wc/copy.c:863
+#: ../libsvn_wc/copy.c:864
#, c-format
msgid "Cannot move mixed-revision subtree '%s' [%ld:%ld]; try updating it first"
msgstr "Kann Unterbaum »%s« mit verschiedenen Revisionen nicht verschieben [%ld:%ld], versuchen Sie erst zu aktualisieren"
-#: ../libsvn_wc/crop.c:206
+#: ../libsvn_wc/crop.c:211
#, c-format
msgid "Cannot exclude '%s': it is a working copy root"
msgstr "Kann »%s« nicht ausschließen: Es ist die Basis einer Arbeitskopie"
-#: ../libsvn_wc/crop.c:214
+#: ../libsvn_wc/crop.c:219
#, c-format
msgid "Cannot exclude '%s': it is a switched path"
msgstr "Kann »%s« nicht ausschließen: Es ist ein umgestellter Pfad"
-#: ../libsvn_wc/crop.c:241
+#: ../libsvn_wc/crop.c:246
#, c-format
msgid "Cannot exclude '%s': it is to be added to the repository. Try commit instead"
msgstr "Kann »%s« nicht ausschließen: Es soll dem Projektarchiv hinzugefügt werden. Versuchen Sie stattdessen es zu übertragen"
-#: ../libsvn_wc/crop.c:248
+#: ../libsvn_wc/crop.c:253
#, c-format
msgid "Cannot exclude '%s': it is to be deleted from the repository. Try commit instead"
msgstr "Kann »%s« nicht ausschließen: Es soll aus dem Projektarchiv entfernt werden. Versuchen Sie stattdessen es zu übertragen"
# CHECKME: Check translation of crop (beschneiden?)!!!!
-#: ../libsvn_wc/crop.c:319
+#: ../libsvn_wc/crop.c:324
msgid "Can only crop a working copy with a restrictive depth"
msgstr "Kann nur eine Arbeitskopie mit einer eingeschränkten Tiefe beschneiden"
-#: ../libsvn_wc/crop.c:330
+#: ../libsvn_wc/crop.c:335
msgid "Can only crop directories"
msgstr "Kann nur Verzeichnisse beschneiden"
-#: ../libsvn_wc/crop.c:343
+#: ../libsvn_wc/crop.c:348
#, c-format
msgid "Cannot crop '%s': it is going to be removed from repository. Try commit instead"
msgstr "Kann »%s« nicht beschneiden: Es soll vom Projektarchiv entfernt werden. Versuchen Sie stattdessen es zu übertragen"
-#: ../libsvn_wc/crop.c:350
+#: ../libsvn_wc/crop.c:355
#, c-format
msgid "Cannot crop '%s': it is to be added to the repository. Try commit instead"
msgstr "Kann »%s« nicht beschneiden: Es soll dem Projektarchiv hinzugefügt werden. Versuchen Sie stattdessen es zu übertragen"
@@ -8138,7 +10380,7 @@ msgstr "»%s« repräsentiert die Wurzel eines Projektarchivs und kann nicht gel
msgid "File '%s' has local modifications"
msgstr "Die Datei »%s« hat lokale Änderungen"
-#: ../libsvn_wc/deprecated.c:2363
+#: ../libsvn_wc/deprecated.c:2420
#, c-format
msgid "Unexpectedly found '%s': path is marked 'missing'"
msgstr "Unerwartetes »%s« gefunden: Pfad wird als »fehlend« markiert"
@@ -8218,37 +10460,37 @@ msgstr "Ungültige Eigenschaft %s zu »%s«: Eine URL »%s« kann nicht als Ziel
msgid "Invalid %s property on '%s': target '%s' is an absolute path or involves '..'"
msgstr "Ungültige Eigenschaft %s auf »%s«: Ziel »%s« ist ein absoluter Pfad oder enthält »..«"
-#: ../libsvn_wc/externals.c:546 ../libsvn_wc/externals.c:569
+#: ../libsvn_wc/externals.c:549 ../libsvn_wc/externals.c:572
#, c-format
msgid "This editor can only update '%s'"
msgstr "Dieser Editor kann nur »%s« aktualisieren"
-#: ../libsvn_wc/externals.c:584 ../libsvn_wc/externals.c:1031
+#: ../libsvn_wc/externals.c:588
#, c-format
msgid "Node '%s' is no existing file external"
msgstr "Knoten »%s« ist kein vorhandener externer Dateiverweis"
-#: ../libsvn_wc/externals.c:1600
+#: ../libsvn_wc/externals.c:1595
#, c-format
msgid "URL '%s' does not begin with a scheme"
msgstr "Die URL »%s« beginnt nicht mit einem Schema"
-#: ../libsvn_wc/externals.c:1655
+#: ../libsvn_wc/externals.c:1650
#, c-format
msgid "Illegal parent directory URL '%s'"
msgstr "Illegale URL des übergeordneten Verzeichnisses »%s«"
-#: ../libsvn_wc/externals.c:1694
+#: ../libsvn_wc/externals.c:1689
#, c-format
msgid "Illegal repository root URL '%s'"
msgstr "Illegale Projektarchivwurzel-URL »%s«"
-#: ../libsvn_wc/externals.c:1739
+#: ../libsvn_wc/externals.c:1734
#, c-format
msgid "The external relative URL '%s' cannot have backpaths, i.e. '..'"
msgstr "Die externe relative URL »%s« darf keinen Verweis auf übergeordnete Pfade haben, d.h. »..«"
-#: ../libsvn_wc/externals.c:1767
+#: ../libsvn_wc/externals.c:1762
#, c-format
msgid "Unrecognized format for the relative external URL '%s'"
msgstr "Unbekanntes Format für die relative externe URL »%s«"
@@ -8288,8 +10530,8 @@ msgstr "Verzeichnis »%s« fehlt"
msgid "Working copy '%s' is not locked"
msgstr "Arbeitskopie »%s« ist nicht gesperrt"
-#: ../libsvn_wc/lock.c:1382 ../libsvn_wc/wc_db.c:4950
-#: ../libsvn_wc/wc_db.c:16213 ../libsvn_wc/wc_db_update_move.c:130
+#: ../libsvn_wc/lock.c:1382 ../libsvn_wc/wc_db.c:4947
+#: ../libsvn_wc/wc_db.c:16218 ../libsvn_wc/wc_db_update_move.c:185
#, c-format
msgid "No write-lock in '%s'"
msgstr "Keine Schreibsperre in »%s«"
@@ -8314,7 +10556,7 @@ msgstr "Eigenschaft »%s« darf nicht nach »%s« zusammengeführt werden."
msgid "Incomplete copy information on path '%s'."
msgstr "Unvollständige Informationen für Kopie in Pfad »%s«"
-#: ../libsvn_wc/node.c:914
+#: ../libsvn_wc/node.c:915
#, c-format
msgid "'%s' is not the root of the working copy '%s'"
msgstr "»%s« ist nicht die Basis des Projektarchivs »%s«"
@@ -8394,20 +10636,20 @@ msgstr "Standardeintrag hat keine Revisionsnummer"
msgid "Default entry is missing URL"
msgstr "Standardeintrag hat keine URL"
-#: ../libsvn_wc/old-and-busted.c:1230
+#: ../libsvn_wc/old-and-busted.c:1231
#, c-format
msgid "Invalid version line in entries file of '%s'"
msgstr "Ungültige Versionszeile in Datei »entry« von »%s«"
-#: ../libsvn_wc/old-and-busted.c:1247
+#: ../libsvn_wc/old-and-busted.c:1248
msgid "Missing entry terminator"
msgstr "Fehlender Abschluss des Eintrags"
-#: ../libsvn_wc/old-and-busted.c:1250
+#: ../libsvn_wc/old-and-busted.c:1251
msgid "Invalid entry terminator"
msgstr "Ungültiger Abschluss des Eintrags"
-#: ../libsvn_wc/old-and-busted.c:1254
+#: ../libsvn_wc/old-and-busted.c:1255
#, c-format
msgid "Error at entry %d in entries file for '%s':"
msgstr "Fehler bei Eintrag %d in Eintragsdatei für »%s«:"
@@ -8579,23 +10821,23 @@ msgstr "Kann Eigenschaften für »%s« nicht setzen: ungültiger Status beim Akt
msgid "Property '%s' is a WC property, not a regular property"
msgstr "Eigenschaft »%s« ist eine Arbeitskopieeigenschaft, keine reguläre Eigenschaft"
-#: ../libsvn_wc/props.c:2191
+#: ../libsvn_wc/props.c:2188
#, c-format
msgid "Unrecognized line ending style '%s' for '%s'"
msgstr "Stil für Zeilenende »%s« nicht erkannt für »%s«"
#. scratch_
-#: ../libsvn_wc/props.c:2242
+#: ../libsvn_wc/props.c:2239
#, c-format
msgid " (%d more duplicate targets found)"
msgstr "(%d mehrmals auftauchende Ziele gefunden)"
-#: ../libsvn_wc/props.c:2247
+#: ../libsvn_wc/props.c:2244
#, c-format
msgid "Invalid %s property on '%s': target '%s' appears more than once%s"
msgstr "Ungültige Eigenschaft %s auf »%s«: Ziel »%s« taucht mehrmals auf%s"
-#: ../libsvn_wc/props.c:2278
+#: ../libsvn_wc/props.c:2275
#, c-format
msgid "Cannot set non-inheritable mergeinfo on a non-directory ('%s')"
msgstr "Kann nicht-vererbbare Zusammenführungsinformationen auf ein nicht-Verzeichnis (»%s«) nicht setzen"
@@ -8671,33 +10913,33 @@ msgstr ""
msgid "'%s' is not valid as filename in directory '%s'"
msgstr "»%s« ist als Dateiname im Verzeichnis »%s« nicht gültig"
-#: ../libsvn_wc/update_editor.c:1507
+#: ../libsvn_wc/update_editor.c:1511
#, c-format
msgid "Unexpected attempt to add a node at path '%s'"
msgstr "Unerwarteter Versuch, einen Knoten im Pfad »%s« hinzuzufügen"
-#: ../libsvn_wc/update_editor.c:1518
+#: ../libsvn_wc/update_editor.c:1522
#, c-format
msgid "Unexpected attempt to edit, delete, or replace a node at path '%s'"
msgstr "Unerwarteter Versuch, einen Knoten im Pfad »%s« zu bearbeiten, zu löschen oder zu ersetzen"
-#: ../libsvn_wc/update_editor.c:1898
+#: ../libsvn_wc/update_editor.c:1904
#, c-format
msgid "Failed to add directory '%s': object of the same name as the administrative directory"
msgstr ""
"Konnte Verzeichnis »%s« nicht hinzufügen, da es denselben Namen wie das\n"
"Administrationsverzeichnis trägt"
-#: ../libsvn_wc/update_editor.c:2571
+#: ../libsvn_wc/update_editor.c:2580
msgid "Couldn't do property merge"
msgstr "Konnte Eigenschaften nicht zusammenführen"
-#: ../libsvn_wc/update_editor.c:3087
+#: ../libsvn_wc/update_editor.c:3119
#, c-format
msgid "Failed to add file '%s': object of the same name as the administrative directory"
msgstr "Konnte Datei »%s« nicht hinzufügen, da es denselben Namen wie Administrationsverzeichnis trägt"
-#: ../libsvn_wc/update_editor.c:3618
+#: ../libsvn_wc/update_editor.c:3661
#, c-format
msgid ""
"Checksum mismatch for '%s':\n"
@@ -8708,22 +10950,22 @@ msgstr ""
" erwartet: %s\n"
"verzeichnet: %s\n"
-#: ../libsvn_wc/update_editor.c:5277
+#: ../libsvn_wc/update_editor.c:5320
#, c-format
msgid "Node '%s' exists."
msgstr "Knoten »%s« existiert bereits"
-#: ../libsvn_wc/update_editor.c:5337
+#: ../libsvn_wc/update_editor.c:5380
#, c-format
msgid "Copyfrom-url '%s' has different repository root than '%s'"
msgstr "Die Quell-URL »%s« hat eine andere Projektarchiv-Basis als »%s«"
-#: ../libsvn_wc/update_editor.c:5549
+#: ../libsvn_wc/update_editor.c:5592
#, c-format
msgid "'%s' is not an unmodified copied directory"
msgstr "»%s« ist kein kopiertes Verzeichnis ohne Veränderungen"
-#: ../libsvn_wc/update_editor.c:5560
+#: ../libsvn_wc/update_editor.c:5603
#, c-format
msgid "Copyfrom '%s' doesn't match original location of '%s'"
msgstr "Quell-URL »%s« stimmt nicht mit der ursprünglichen Position von »%s« überein"
@@ -8748,58 +10990,49 @@ msgstr "Arbeitskopie »%s« kann nicht in ein neueres Format gebracht werden, da
msgid "Working copy '%s' can't be upgraded because it doesn't have a url"
msgstr "Arbeitskopie »%s« kann nicht in ein neueres Format gebracht werden, da sie keine URL hat"
-#: ../libsvn_wc/upgrade.c:691
-msgid "Error parsing tree conflict skel"
-msgstr "Fehler beim Einlesen des Baumkonfliktskeletons"
-
-#: ../libsvn_wc/upgrade.c:922
+#: ../libsvn_wc/upgrade.c:750
#, c-format
msgid "The properties of '%s' are in an indeterminate state and cannot be upgraded. See issue #2530."
msgstr "Die Eigenschaften von »%s« sind in einem unbestimmten Zustand und können nicht in ein neues Format gebreacht werden. Siehe Fehlerbericht #2530."
-#: ../libsvn_wc/upgrade.c:934
+#: ../libsvn_wc/upgrade.c:762
#, c-format
msgid "Insufficient NODES rows for '%s'"
msgstr "Nicht genügend »NODES«-Zeilen für »%s«"
-#: ../libsvn_wc/upgrade.c:1357
-#, c-format
-msgid "The working copy at '%s' is format 22 with WORKING nodes; use a format 22 client to diff/revert before using this client"
-msgstr "Die Arbeitskopie in »%s« hat das Format 22 mit »WORKING«-Knoten; Verwenden Sie zuerst einen Client mit Format 22 um sie zurückzusetzen oder Unterschiede zu speichern, bevor Sie diesen Client verwenden"
-
-#: ../libsvn_wc/upgrade.c:1401
-#, c-format
-msgid "The working copy at '%s' is format 26 with conflicts; use a format 26 client to resolve before using this client"
-msgstr "Die Arbeitskopie in »%s« hat das Format 26 mit Konflikten; Verwenden Sie zuerst einen Client mit Format 26 um diese aufzulösen, bevor Sie diesen Client verwenden"
-
-#: ../libsvn_wc/upgrade.c:1945
+#: ../libsvn_wc/upgrade.c:1514
msgid "Cannot upgrade with existing logs; run a cleanup operation on this working copy using a client version which is compatible with this working copy's format (such as the version you are upgrading from), then retry the upgrade with the current version"
msgstr "Kann mit vorhandenen Logdateien nicht in ein neues Format bringen; Starten Sie »svn cleanup« auf dieser Arbeitskopie mit einer Version des Clienten die mit dem Format der Arbeitskopie kompatibel ist (z.B. mit der Version, die sie gerade ersetzen) und versuchen Sie dann den Vorgang mit der neuen Version erneut"
-#: ../libsvn_wc/upgrade.c:2014
+#: ../libsvn_wc/upgrade.c:1583
msgid "This working copy is corrupt and cannot be upgraded. Please check out a new working copy."
msgstr "Diese Arbeitskopie ist beschädigt und kann nicht in ein neues Format gebracht werden. Bitte erzeugen Sie eine neue Arbeitskopie mit »svn checkout«."
-#: ../libsvn_wc/upgrade.c:2059
+#: ../libsvn_wc/upgrade.c:1628
msgid "(unreleased development version)"
msgstr "(nicht veröffentlichte Entwicklungsversion)"
-#: ../libsvn_wc/upgrade.c:2075
+#: ../libsvn_wc/upgrade.c:1644
#, c-format
msgid "Working copy '%s' is too old (format %d, created by Subversion %s)"
msgstr "Format der Arbeitskopie »%s« ist zu alt (Format %d, erzeugt von Subversion %s)"
-#: ../libsvn_wc/upgrade.c:2085
+#: ../libsvn_wc/upgrade.c:1654
#, c-format
msgid "Working copy '%s' is an old development version (format %d); to upgrade it, use a format 18 client, then use 'tools/dev/wc-ng/bump-to-19.py', then use the current client"
msgstr "Format der Arbeitskopie »%s« ist das einer alten Entwicklungsversion (Format %d); Um sie in ein neues Format zu bringen, verwenden Sie einen mit Format 18 kompatiblen Client, starten Sie »tools/dev/wc-ng/bump-to-19.py« und verwenden Sie danach die neue Version"
-#: ../libsvn_wc/upgrade.c:2314
+#: ../libsvn_wc/upgrade.c:1664
+#, fuzzy, c-format
+msgid "Working copy '%s' is an old development version (format %d); to upgrade it, use a Subversion 1.7-1.9 client, then use the current client"
+msgstr "Format der Arbeitskopie »%s« ist das einer alten Entwicklungsversion (Format %d); Um sie in ein neues Format zu bringen, verwenden Sie einen mit Format 18 kompatiblen Client, starten Sie »tools/dev/wc-ng/bump-to-19.py« und verwenden Sie danach die neue Version"
+
+#: ../libsvn_wc/upgrade.c:1832
#, c-format
msgid "Can't upgrade '%s' as it is not a working copy"
msgstr "Kann »%s« nicht in ein neueres Format bringen, da es keine Arbeitkopie ist"
-#: ../libsvn_wc/upgrade.c:2363
+#: ../libsvn_wc/upgrade.c:1881
#, c-format
msgid "Can't upgrade '%s' as it is not a working copy root, the root is '%s'"
msgstr "Kann »%s« nicht in ein neueres Format bringen, da es nicht die Basis einer Arbeitskopie ist - die Basis ist »%s«"
@@ -8814,174 +11047,179 @@ msgstr "Kein REPOSITORY-Tabelleneintrag für ID »%ld«"
msgid "The file '%s' has no checksum."
msgstr "Die Datei »%s« hat keine Prüfsumme."
-#: ../libsvn_wc/wc_db.c:2092
+#: ../libsvn_wc/wc_db.c:2089
#, c-format
msgid "Path '%s' is not moved"
msgstr "Pfad »%s« wurde nicht verschoben"
-#: ../libsvn_wc/wc_db.c:2566 ../libsvn_wc/wc_db.c:3001
-#: ../libsvn_wc/wc_db.c:9866
+#: ../libsvn_wc/wc_db.c:2563 ../libsvn_wc/wc_db.c:2998
+#: ../libsvn_wc/wc_db.c:9923
#, c-format
msgid "The node '%s' has a corrupt checksum value."
msgstr "Der Knoten »%s« hat einen fehlerhaften Prüfsummenwert."
-#: ../libsvn_wc/wc_db.c:2786
+#: ../libsvn_wc/wc_db.c:2783
#, c-format
msgid "The node '%s' has a BASE status that has no properties."
msgstr "Der Knoten »%s« hat einen »BASE«-Status, der keine Eigenschaften hat."
-#: ../libsvn_wc/wc_db.c:3528 ../libsvn_wc/wc_db.c:3648
+#: ../libsvn_wc/wc_db.c:3525 ../libsvn_wc/wc_db.c:3645
#, c-format
msgid "The node '%s' is not an external."
msgstr "Der Knoten »%s« ist kein externer Verweis."
-#: ../libsvn_wc/wc_db.c:4060
+#: ../libsvn_wc/wc_db.c:4057
#, c-format
msgid "Expected node '%s' to be deleted."
msgstr "Erwartete, dass Knoten »%s« gelöscht wird."
-#: ../libsvn_wc/wc_db.c:6857 ../libsvn_wc/wc_db.c:6909
+#: ../libsvn_wc/wc_db.c:6925 ../libsvn_wc/wc_db.c:6972
#, c-format
msgid "Can't revert '%s' without reverting children"
msgstr "Kann »%s« nicht zurücksetzen, ohne dessen Kindelemente zurückzusetzen"
-#: ../libsvn_wc/wc_db.c:7065
+#: ../libsvn_wc/wc_db.c:7086
#, c-format
msgid "Can't revert '%s' without reverting parent"
msgstr "Kann »%s« nicht zurücksetzen, ohne dessen Elternelement zurückzusetzen"
-#: ../libsvn_wc/wc_db.c:7200
+#: ../libsvn_wc/wc_db.c:7221
#, c-format
msgid "Unsupported depth for revert of '%s'"
msgstr "Nicht unterstützte Tiefe für Zurücksetzung von »%s«"
-#: ../libsvn_wc/wc_db.c:7770
+#: ../libsvn_wc/wc_db.c:7791
#, c-format
msgid "The node '%s' is not a committed directory"
msgstr "Der Knoten »%s« ist kein übertragenes Verzeichnis"
-#: ../libsvn_wc/wc_db.c:8160
+#: ../libsvn_wc/wc_db.c:8181
#, c-format
msgid "Cannot delete '%s' as '%s' is excluded by server"
msgstr "Kann »%s« nicht löschen, da »%s« vom Server ausgeschlossen wurde"
-#: ../libsvn_wc/wc_db.c:8171
+#: ../libsvn_wc/wc_db.c:8192
#, c-format
msgid "Cannot delete '%s' as it is excluded by server"
msgstr "Kann »%s« nicht löschen, da es vom Server ausgeschlossen wurde"
-#: ../libsvn_wc/wc_db.c:8178
+#: ../libsvn_wc/wc_db.c:8199
#, c-format
msgid "Cannot delete '%s' as it is excluded"
msgstr "Kann »%s« nicht löschen, da es ausgeschlossen wurde"
-#: ../libsvn_wc/wc_db.c:8635
+#: ../libsvn_wc/wc_db.c:8656
#, c-format
msgid "Cannot move '%s' to '%s' because they are not in the same working copy"
msgstr "Kann »%s« nicht nach »%s« verschieben, da dies nicht in der selben Arbeitskopie ist"
-#: ../libsvn_wc/wc_db.c:8993
+#: ../libsvn_wc/wc_db.c:8795
+#, c-format
+msgid "Encountered invalid node state in column %d of info query to working copy database"
+msgstr ""
+
+#: ../libsvn_wc/wc_db.c:9050
#, c-format
msgid "Corrupt data for '%s'"
msgstr "Fehlerhafte Daten für »%s«"
-#: ../libsvn_wc/wc_db.c:9065
+#: ../libsvn_wc/wc_db.c:9122
#, c-format
msgid "Error reading node '%s'"
msgstr "Fehler beim Lesen des Knotens »%s«"
-#: ../libsvn_wc/wc_db.c:9323
+#: ../libsvn_wc/wc_db.c:9380
#, c-format
msgid "The node '%s' comes from unexpected repository '%s', expected '%s'; if this node is a file external using the correct URL in the external definition can fix the problem, see issue #4087"
msgstr "Der Knoten »%s« gehört unerwartet zum Projektarchiv »%s«, erwartet war »%s«; Falls der Knoten ein externer Dateiverweis ist, kann die Verwendung der korrekten URL in der Definition des externen Dateiverweises das Problem beheben, siehe Fehlerbericht #4087"
-#: ../libsvn_wc/wc_db.c:9997
+#: ../libsvn_wc/wc_db.c:10054
#, c-format
msgid "The node '%s' is not in working copy '%s'"
msgstr "Der Knoten »%s« ist nicht in der Arbeitskopie »%s«"
-#: ../libsvn_wc/wc_db.c:10034
+#: ../libsvn_wc/wc_db.c:10091
#, c-format
msgid "The node '%s' is not installable"
msgstr "Der Knoten »%s« konnte nicht installiert werden"
-#: ../libsvn_wc/wc_db.c:10473 ../libsvn_wc/wc_db.c:10732
+#: ../libsvn_wc/wc_db.c:10532 ../libsvn_wc/wc_db.c:10729
#, c-format
msgid "The node '%s' has a status that has no properties."
msgstr "Der Knoten »%s« hat einen Status, der keine Eigenschaften hat"
-#: ../libsvn_wc/wc_db.c:12684
+#: ../libsvn_wc/wc_db.c:12688
#, c-format
msgid "Expected node '%s' to be added."
msgstr "Erwartete, dass Knoten »%s« hinzugefügt wird."
-#: ../libsvn_wc/wc_db.c:13012
+#: ../libsvn_wc/wc_db.c:13017
#, c-format
msgid "Path '%s' was not moved here"
msgstr "Pfad »%s« wurde nicht hierhin verschoben"
-#: ../libsvn_wc/wc_db.c:13200
+#: ../libsvn_wc/wc_db.c:13205
#, c-format
msgid "Node '%s' is not shadowed"
msgstr "Knoten »%s« wird nicht überdeckt"
-#: ../libsvn_wc/wc_db.c:14441 ../libsvn_wc/wc_db.c:14489
+#: ../libsvn_wc/wc_db.c:14446 ../libsvn_wc/wc_db.c:14494
#, c-format
msgid "'%s' is already locked."
msgstr "»%s« ist bereits gesperrt"
-#: ../libsvn_wc/wc_db.c:14446 ../libsvn_wc/wc_db.c:14497
+#: ../libsvn_wc/wc_db.c:14451 ../libsvn_wc/wc_db.c:14502
#, c-format
msgid "Working copy '%s' locked."
msgstr "Arbeitskopie »%s« gesperrt."
-#: ../libsvn_wc/wc_db.c:14520
+#: ../libsvn_wc/wc_db.c:14525
#, c-format
msgid "Failed to lock working copy '%s'."
msgstr "Konnte Arbeitskopie »%s« nicht sperren. "
-#: ../libsvn_wc/wc_db.c:14569
+#: ../libsvn_wc/wc_db.c:14574
#, c-format
msgid "'%s' is already locked via '%s'."
msgstr "»%s« ist bereits durch »%s« gesperrt."
-#: ../libsvn_wc/wc_db.c:14743
+#: ../libsvn_wc/wc_db.c:14748
#, c-format
msgid "Working copy not locked at '%s'."
msgstr "Arbeitskopie »%s« ist nicht gesperrt."
-#: ../libsvn_wc/wc_db.c:15242
+#: ../libsvn_wc/wc_db.c:15247
#, c-format
msgid "Modification of '%s' already exists"
msgstr "Änderung von »%s« existiert bereits"
#. If EXPRESSION is false, cause the caller to return an SVN_ERR_WC_CORRUPT
#. * error, showing EXPRESSION and the caller's LOCAL_RELPATH in the message.
-#: ../libsvn_wc/wc_db.c:15839
+#: ../libsvn_wc/wc_db.c:15844
#, c-format
msgid "database inconsistency at local_relpath='%s' verifying expression '%s'"
msgstr "Datenbankinkonsistenz bei »local_relpath« »%s« beim Auswerten des Ausdrucks »%s«"
-#: ../libsvn_wc/wc_db.c:16027
+#: ../libsvn_wc/wc_db.c:16032
#, c-format
msgid "Can't upgrade '%s' as it is not a working copy root"
msgstr "Kann »%s« nicht in ein neueres Format bringen, da es keine Basis einer Arbeitskopie ist"
-#: ../libsvn_wc/wc_db.c:16033
+#: ../libsvn_wc/wc_db.c:16038
#, c-format
msgid "Working copy '%s' is too old and must be upgraded to at least format %d, as created by Subversion %s"
msgstr "Arbeitskopie »%s« ist zu alt und muss mindestens in das Format %d gebracht werden, wie es von Subversion %s erstellt wurde"
-#: ../libsvn_wc/wc_db.c:16051
+#: ../libsvn_wc/wc_db.c:16056
msgid "Working copy upgrade failed"
msgstr "Arbeitskopie konnte nicht in ein nees Format gebracht werden"
-#: ../libsvn_wc/wc_db.c:16152
+#: ../libsvn_wc/wc_db.c:16157
#, c-format
msgid "The path '%s' is not in the working copy '%s'"
msgstr "Der Pfad »%s« ist nicht in der Arbeitskopie »%s« "
-#: ../libsvn_wc/wc_db_pristine.c:128 ../libsvn_wc/wc_db_pristine.c:467
+#: ../libsvn_wc/wc_db_pristine.c:128 ../libsvn_wc/wc_db_pristine.c:466
#, c-format
msgid "The pristine text with checksum '%s' was not found"
msgstr "Der Ursprungstext mit der Prüfsumme »%s« wurde nicht gefunden."
@@ -8991,57 +11229,73 @@ msgstr "Der Ursprungstext mit der Prüfsumme »%s« wurde nicht gefunden."
msgid "Pristine text '%s' not present"
msgstr "Ursprungstext »%s« nicht vorhanden"
-#: ../libsvn_wc/wc_db_pristine.c:237
+#: ../libsvn_wc/wc_db_pristine.c:236
#, c-format
msgid "Can't read '%s' from pristine store because no checksum supplied"
msgstr "Kann »%s« nicht aus dem Speicherbereich für ürsprüngliche Dateiinhalte lesen, da keine Prüfsumme angegeben wurde"
-#: ../libsvn_wc/wc_db_pristine.c:320
-#, c-format
-msgid "New pristine text '%s' has different size: %ld versus %ld"
+#: ../libsvn_wc/wc_db_pristine.c:319
+#, fuzzy, c-format
+msgid "New pristine text '%s' has different size: %s versus %s"
msgstr "Neuer ursprünglicher Dateitext »%s« hat eine andere Größe: %ld im Vergleich zu %ld"
-#: ../libsvn_wc/wc_db_pristine.c:506
+#: ../libsvn_wc/wc_db_pristine.c:387
+#, fuzzy
+msgid "Unable to create pristine install stream"
+msgstr "Kann den lokalen Hostnamen nicht ermitteln"
+
+#: ../libsvn_wc/wc_db_pristine.c:505
#, c-format
msgid "The pristine text with MD5 checksum '%s' was not found"
msgstr "Der Ursprungstext mit der MD5-Prüfsumme »%s« wurde nicht gefunden."
-#: ../libsvn_wc/wc_db_update_move.c:170
+#: ../libsvn_wc/wc_db_update_move.c:225
#, c-format
msgid "'%s' is not deleted"
msgstr "»%s« ist nicht gelöscht"
-#: ../libsvn_wc/wc_db_update_move.c:404 ../libsvn_wc/wc_db_update_move.c:428
+#: ../libsvn_wc/wc_db_update_move.c:464 ../libsvn_wc/wc_db_update_move.c:488
#, c-format
msgid "'%s' already in conflict"
msgstr "»%s« ist schon von einem Konflikt betroffen"
-#: ../libsvn_wc/wc_db_update_move.c:1631
-#, c-format
-msgid "Cannot apply update because move source %s' is a mixed-revision working copy"
-msgstr "Kann Aktualisierung nicht anwenden, da die Quelle der Verschiebung »%s« eine Arbeitskopie mit verschiedenen Revisionen ist"
+# File names not translated
+#: ../libsvn_wc/wc_db_update_move.c:1627
+#, fuzzy
+msgid ".working"
+msgstr ".working%s%s"
-#: ../libsvn_wc/wc_db_update_move.c:1639
+#: ../libsvn_wc/wc_db_update_move.c:2189
#, c-format
-msgid "Cannot apply update because move source '%s' is a switched subtree"
-msgstr "Kann Aktualisierung nicht anwenden, da die Quelle der Verschiebung »%s« ein umgestellter Unterbaum ist"
+msgid "Cannot apply update because '%s' is a switched path (please switch it back to its original URL and try again)"
+msgstr ""
+
+#: ../libsvn_wc/wc_db_update_move.c:2198
+#, fuzzy, c-format
+msgid "Cannot apply update because '%s' is a mixed-revision working copy (please update and try again)"
+msgstr "Kann Aktualisierung nicht anwenden, da die Quelle der Verschiebung »%s« eine Arbeitskopie mit verschiedenen Revisionen ist"
-#: ../libsvn_wc/wc_db_update_move.c:1692
+#: ../libsvn_wc/wc_db_update_move.c:2251
#, c-format
msgid "The node '%s' has not been moved away"
msgstr "Der Knoten »%s« wurde nicht an einen anderen Ort verschoben"
-#: ../libsvn_wc/wc_db_update_move.c:2300
+#: ../libsvn_wc/wc_db_update_move.c:2715
+#, c-format
+msgid "Cannot merge local changes from '%s' because '%s' already contains other local changes (please commit or revert these other changes and try again)"
+msgstr ""
+
+#: ../libsvn_wc/wc_db_update_move.c:4089
#, c-format
msgid "'%s' is not in conflict"
msgstr "»%s« ist nicht von einem Konflikt betroffen"
-#: ../libsvn_wc/wc_db_update_move.c:2313
+#: ../libsvn_wc/wc_db_update_move.c:4102
#, c-format
msgid "'%s' is not a valid tree-conflict victim"
msgstr "»%s« ist kein gültiges von einem Baumkonflikt betroffenes Element"
-#: ../libsvn_wc/wc_db_update_move.c:2326
+#: ../libsvn_wc/wc_db_update_move.c:4115
#, c-format
msgid "'%s' is already a moved away tree-conflict"
msgstr "»%s« ist schon ein Baumkonflikt mit Verschiebung anderswo hin"
@@ -9121,17 +11375,17 @@ msgstr "Die Datenbank der Arbeitskopie in »%s« ist beschädigt."
msgid "'%s' is not a working copy root"
msgstr "»%s« ist keine Basis einer Arbeitskopie"
-#: ../libsvn_wc/workqueue.c:512
+#: ../libsvn_wc/workqueue.c:513
#, c-format
msgid "Can't install '%s' from pristine store, because no checksum is recorded for this file"
msgstr "Kann »%s« nicht im Speicherbereich für ursprünglichen Dateiinhalt ablegen, da keine Prüfsumme für diese Datei eingetragen ist"
-#: ../libsvn_wc/workqueue.c:1469
+#: ../libsvn_wc/workqueue.c:1470
#, c-format
msgid "Unrecognized work item in the queue"
msgstr "Unbekannter Arbeitsschritt in Warteschlange"
-#: ../libsvn_wc/workqueue.c:1552
+#: ../libsvn_wc/workqueue.c:1553
#, c-format
msgid "Failed to run the WC DB work queue associated with '%s', work item %d %s"
msgstr "Konnte die mit »%s« zusammenhängende Arbeitsschrittwarteschlange der Datenbank der Arbeitskopie nicht ausführen, Arbeitsschritt %d %s"
@@ -9174,106 +11428,106 @@ msgstr " Der Aussteller des Zertifikats ist unbekannt.\n"
msgid " Unknown verification failure.\n"
msgstr " Unbekannter Fehler bei der Gültigkeitsprüfung.\n"
-#: ../svn/auth-cmd.c:191
+#: ../svn/auth-cmd.c:261
#, c-format
msgid "Subject: %s\n"
msgstr "Zertifikatsempfänger: %s\n"
-#: ../svn/auth-cmd.c:193
+#: ../svn/auth-cmd.c:263
#, c-format
msgid "Valid from: %s\n"
msgstr "Gültig ab: %s\n"
-#: ../svn/auth-cmd.c:197
+#: ../svn/auth-cmd.c:267
#, c-format
msgid "Valid until: %s\n"
msgstr "Gültig bis: %s\n"
-#: ../svn/auth-cmd.c:201
+#: ../svn/auth-cmd.c:271
#, c-format
msgid "Issuer: %s\n"
msgstr "Herausgeber: %s\n"
-#: ../svn/auth-cmd.c:203
+#: ../svn/auth-cmd.c:273
#, c-format
msgid "Fingerprint: %s\n"
msgstr "Fingerabdruck: %s\n"
-#: ../svn/auth-cmd.c:220
+#: ../svn/auth-cmd.c:290
#, c-format
msgid "Hostnames: %s\n"
msgstr "Hostnamen: %s\n"
-#: ../svn/auth-cmd.c:239
+#: ../svn/auth-cmd.c:310
#, c-format
msgid "Credential kind: %s\n"
msgstr "Art der Zugangsdaten: %s\n"
-#: ../svn/auth-cmd.c:259
+#: ../svn/auth-cmd.c:330
#, c-format
msgid "Password: %s\n"
msgstr "Passwort: %s\n"
-#: ../svn/auth-cmd.c:261
+#: ../svn/auth-cmd.c:332
#, c-format
msgid "Password: [not shown]\n"
msgstr "Passwort: [nicht angezeigt]\n"
-#: ../svn/auth-cmd.c:267
+#: ../svn/auth-cmd.c:338
#, c-format
msgid "Passphrase: %s\n"
msgstr "Passphrase: %s\n"
-#: ../svn/auth-cmd.c:270
+#: ../svn/auth-cmd.c:341
#, c-format
msgid "Passphrase: [not shown]\n"
msgstr "Passphrase: [nicht angezeigt]\n"
-#: ../svn/auth-cmd.c:273
+#: ../svn/auth-cmd.c:344
#, c-format
msgid "Password cache: %s\n"
msgstr "Passwortspeicher: %s\n"
-#: ../svn/auth-cmd.c:276
+#: ../svn/auth-cmd.c:347
#, c-format
msgid "Username: %s\n"
msgstr "Benutzername: %s\n"
-#: ../svn/auth-cmd.c:327
+#: ../svn/auth-cmd.c:399
#, c-format
msgid "Deleting %s credential for realm '%s'\n"
msgstr "Entferne Zugangsdaten %s für Anmeldebereich »%s«\n"
-#: ../svn/auth-cmd.c:374
+#: ../svn/auth-cmd.c:446
#, c-format
msgid "Credentials cache in '%s' is empty\n"
msgstr "Speicher für Zugangsdaten in »%s« ist leer\n"
-#: ../svn/auth-cmd.c:378 ../svn/auth-cmd.c:401
+#: ../svn/auth-cmd.c:450 ../svn/auth-cmd.c:473
#, c-format
msgid "Credentials cache in '%s' contains no matching credentials"
msgstr "Speicher für Zugangsdaten in »%s« enthält keine passende Zugangsdaten"
-#: ../svn/auth-cmd.c:386
+#: ../svn/auth-cmd.c:458
#, c-format
msgid "Credentials cache in '%s' contains %d credentials\n"
msgstr "Speicher für Zugangsdaten in »%s« enthält %d Zugangsdaten\n"
-#: ../svn/auth-cmd.c:390
+#: ../svn/auth-cmd.c:462
#, c-format
msgid "Credentials cache in '%s' contains %d matching credentials\n"
msgstr "Speicher für Zugangsdaten in »%s« enthält %d passende Zugangsdaten\n"
-#: ../svn/auth-cmd.c:405
+#: ../svn/auth-cmd.c:477
#, c-format
msgid "Deleted %d matching credentials from '%s'\n"
msgstr "%d passende Zugangsdaten aus »%s« gelöscht\n"
-#: ../svn/blame-cmd.c:314 ../svn/list-cmd.c:301
+#: ../svn/blame-cmd.c:314 ../svn/list-cmd.c:310
msgid "'verbose' option invalid in XML mode"
msgstr "Option »verbose« ist im XML-Modus ungültig"
-#: ../svn/blame-cmd.c:326 ../svn/list-cmd.c:313 ../svn/status-cmd.c:315
+#: ../svn/blame-cmd.c:326 ../svn/list-cmd.c:322 ../svn/status-cmd.c:315
msgid "'incremental' option only valid in XML mode"
msgstr "Option »incremental« ist nur im XML-Modus gültig"
@@ -9282,7 +11536,7 @@ msgstr "Option »incremental« ist nur im XML-Modus gültig"
msgid "Skipping binary file (use --force to treat as text): '%s'\n"
msgstr "Überspringe Binärdatei (--force erzwingt Behandlung als Text): »%s«\n"
-#: ../svn/blame-cmd.c:426
+#: ../svn/blame-cmd.c:426 ../svnbench/null-blame-cmd.c:272
msgid "Could not perform blame on all targets because some targets don't exist"
msgstr "Konnte nicht für alle Ziele annotieren, da einige Ziele nicht existieren"
@@ -9306,241 +11560,182 @@ msgstr "Konnte nicht alle Ziele Änderungslisten zuweisen, da einige Ziele nicht
msgid "Could not set changelists on all targets because some targets are not versioned"
msgstr "Konnte nicht alle Ziele Änderungslisten zuweisen, da einige Ziele nicht versioniert sind"
-#: ../svn/checkout-cmd.c:140 ../svn/switch-cmd.c:138
+#: ../svn/checkout-cmd.c:140 ../svn/switch-cmd.c:141
#, c-format
msgid "'%s' does not appear to be a URL"
msgstr "»%s« scheint keine URL zu sein"
-#: ../svn/checkout-cmd.c:181 ../svn/export-cmd.c:130 ../svn/list-cmd.c:413
-#: ../svn/switch-cmd.c:188 ../svn/update-cmd.c:177
+#: ../svn/checkout-cmd.c:181 ../svn/export-cmd.c:130 ../svn/list-cmd.c:451
+#: ../svn/switch-cmd.c:191 ../svn/update-cmd.c:181
msgid "Failure occurred processing one or more externals definitions"
msgstr "Fehler bei der Verarbeitung eines oder mehrerer externer Verweise"
-#: ../svn/cl-conflicts.c:82
+#: ../svn/cl-conflicts.c:74
msgid "local file edit"
msgstr "lokale Datei geändert"
-#: ../svn/cl-conflicts.c:84
+#: ../svn/cl-conflicts.c:76
msgid "local file obstruction"
msgstr "lokale Datei blockiert"
-#: ../svn/cl-conflicts.c:86
+#: ../svn/cl-conflicts.c:78
msgid "local file delete"
msgstr "lokale Datei gelöscht"
-#: ../svn/cl-conflicts.c:89
+#: ../svn/cl-conflicts.c:81
msgid "local file missing or deleted or moved away"
msgstr "lokale Datei fehlt, wurde gelöscht oder verschoben"
-#: ../svn/cl-conflicts.c:91
+#: ../svn/cl-conflicts.c:83
msgid "local file missing"
msgstr "lokale Datei fehlt"
-#: ../svn/cl-conflicts.c:93
+#: ../svn/cl-conflicts.c:85
msgid "local file unversioned"
msgstr "lokale Datei nicht versioniert"
-#: ../svn/cl-conflicts.c:95
+#: ../svn/cl-conflicts.c:87
msgid "local file add"
msgstr "lokale Datei hinzugefügt"
-#: ../svn/cl-conflicts.c:97
+#: ../svn/cl-conflicts.c:89
msgid "local file replace"
msgstr "lokale Datei ersetzt"
-#: ../svn/cl-conflicts.c:99
+#: ../svn/cl-conflicts.c:91
msgid "local file moved away"
msgstr "lokale Datei verschoben"
-#: ../svn/cl-conflicts.c:101
+#: ../svn/cl-conflicts.c:93
msgid "local file moved here"
msgstr "lokale Datei hierher verschoben"
-#: ../svn/cl-conflicts.c:108
+#: ../svn/cl-conflicts.c:100
msgid "local dir edit"
msgstr "lokales Verzeichnis geändert"
-#: ../svn/cl-conflicts.c:110
+#: ../svn/cl-conflicts.c:102
msgid "local dir obstruction"
msgstr "lokales Verzeichnis blockiert"
-#: ../svn/cl-conflicts.c:112
+#: ../svn/cl-conflicts.c:104
msgid "local dir delete"
msgstr "lokales Verzeichnis gelöscht"
-#: ../svn/cl-conflicts.c:115
+#: ../svn/cl-conflicts.c:107
msgid "local dir missing or deleted or moved away"
msgstr "lokales Verzeichnis fehlt, wurde gelöscht oder verschoben"
-#: ../svn/cl-conflicts.c:117
+#: ../svn/cl-conflicts.c:109
msgid "local dir missing"
msgstr "lokales Verzeichnis fehlt"
-#: ../svn/cl-conflicts.c:119
+#: ../svn/cl-conflicts.c:111
msgid "local dir unversioned"
msgstr "lokales Verzeichnis nicht versioniert"
-#: ../svn/cl-conflicts.c:121
+#: ../svn/cl-conflicts.c:113
msgid "local dir add"
msgstr "lokales Verzeichnis hinzugefügt"
-#: ../svn/cl-conflicts.c:123
+#: ../svn/cl-conflicts.c:115
msgid "local dir replace"
msgstr "lokales Verzeichnis ersetzt"
-#: ../svn/cl-conflicts.c:125
+#: ../svn/cl-conflicts.c:117
msgid "local dir moved away"
msgstr "lokales Verzeichnis verschoben"
-#: ../svn/cl-conflicts.c:127
+#: ../svn/cl-conflicts.c:119
msgid "local dir moved here"
msgstr "lokales Verzeichnis hierher verschoben"
-#: ../svn/cl-conflicts.c:135 ../svn/cl-conflicts.c:242
-msgid "local edit"
-msgstr "lokale geändert"
-
-#: ../svn/cl-conflicts.c:137 ../svn/cl-conflicts.c:251
-msgid "local obstruction"
-msgstr "lokal blockiert"
-
-#: ../svn/cl-conflicts.c:139 ../svn/cl-conflicts.c:248
-msgid "local delete"
-msgstr "lokal gelöscht"
-
-#: ../svn/cl-conflicts.c:142
+#: ../svn/cl-conflicts.c:134
msgid "local missing or deleted or moved away"
msgstr "lokales Element fehlt, wurde gelöscht oder verschoben"
-#: ../svn/cl-conflicts.c:144
+#: ../svn/cl-conflicts.c:136
msgid "local missing"
msgstr "lokales Element fehlt"
-#: ../svn/cl-conflicts.c:146
+#: ../svn/cl-conflicts.c:138
msgid "local unversioned"
msgstr "lokales Element nicht versioniert"
-#: ../svn/cl-conflicts.c:148 ../svn/cl-conflicts.c:245
-msgid "local add"
-msgstr "lokal hinzugefügt"
-
-#: ../svn/cl-conflicts.c:150
+#: ../svn/cl-conflicts.c:142
msgid "local replace"
msgstr "lokale ersetzt"
-#: ../svn/cl-conflicts.c:152
+#: ../svn/cl-conflicts.c:144
msgid "local moved away"
msgstr "lokale verschoben"
-#: ../svn/cl-conflicts.c:154
+#: ../svn/cl-conflicts.c:146
msgid "local moved here"
msgstr "lokale hierher verschoben"
-#: ../svn/cl-conflicts.c:173
+#: ../svn/cl-conflicts.c:165
msgid "incoming file edit"
msgstr "eingehende Änderung einer Datei"
-#: ../svn/cl-conflicts.c:175
+#: ../svn/cl-conflicts.c:167
msgid "incoming file add"
msgstr "eingehendes Hinzufügen einer Datei"
-#: ../svn/cl-conflicts.c:177
+#: ../svn/cl-conflicts.c:169
msgid "incoming file delete or move"
msgstr "eingehendes Löschen oder Verschieben einer Datei"
-#: ../svn/cl-conflicts.c:179
+#: ../svn/cl-conflicts.c:171
msgid "incoming replace with file"
msgstr "eingehendes Ersetzen mit einer Datei"
-#: ../svn/cl-conflicts.c:186
+#: ../svn/cl-conflicts.c:178
msgid "incoming dir edit"
msgstr "eingehende Änderung eines Verzeichnisses"
-#: ../svn/cl-conflicts.c:188
+#: ../svn/cl-conflicts.c:180
msgid "incoming dir add"
msgstr "eingehendes Hinzufügen eines Verzeichnisses"
-#: ../svn/cl-conflicts.c:190
+#: ../svn/cl-conflicts.c:182
msgid "incoming dir delete or move"
msgstr "eingehendes Löschen oder Verschieben eines Verzeichnisses"
-#: ../svn/cl-conflicts.c:192
+#: ../svn/cl-conflicts.c:184
msgid "incoming replace with dir"
msgstr "eingehendes Ersetzen mit einem Verzeichnis"
-#: ../svn/cl-conflicts.c:200 ../svn/cl-conflicts.c:262
-msgid "incoming edit"
-msgstr "eingehende Änderung"
-
-#: ../svn/cl-conflicts.c:202 ../svn/cl-conflicts.c:265
-msgid "incoming add"
-msgstr "eingehendes Hinzufügen"
-
-#: ../svn/cl-conflicts.c:204
+#: ../svn/cl-conflicts.c:196
msgid "incoming delete or move"
msgstr "eingehendes Löschen oder Verschieben"
-#: ../svn/cl-conflicts.c:206
+#: ../svn/cl-conflicts.c:198
msgid "incoming replace"
msgstr "eingehendes Ersetzen"
-#: ../svn/cl-conflicts.c:220
-msgid "upon update"
-msgstr "bei Aktualisierung"
-
-#: ../svn/cl-conflicts.c:221
-msgid "upon switch"
-msgstr "bei Umstellung"
-
-#: ../svn/cl-conflicts.c:222
-msgid "upon merge"
-msgstr "bei Zusammenführung"
-
-#: ../svn/cl-conflicts.c:223
-msgid "upon none"
-msgstr "ohne Operation"
-
-#: ../svn/cl-conflicts.c:254
-#, c-format
-msgid "local %s"
-msgstr "lokal %s"
-
-#: ../svn/cl-conflicts.c:268
-msgid "incoming delete"
-msgstr "eingehendes Löschen"
-
-#: ../svn/cl-conflicts.c:271
-#, c-format
-msgid "incoming %s"
-msgstr "eingehendes %s"
-
-#: ../svn/cl-conflicts.c:277 ../svn/cl-conflicts.c:320
-#, c-format
-msgid "%s, %s %s"
-msgstr "%s, %s %s"
-
#. A catch-all message for very rare or nominally impossible cases.
#. It will not be pretty, but is closer to an internal error than
#. an ordinary user-facing string.
-#: ../svn/cl-conflicts.c:328
+#: ../svn/cl-conflicts.c:334
#, c-format
msgid "local: %s %s incoming: %s %s %s"
msgstr "lokal: %s %s, empfangen: %s %s %s"
-#: ../svn/cl-conflicts.c:355
+#: ../svn/cl-conflicts.c:361
#, c-format
msgid "%s %s"
msgstr "%s %s"
-#: ../svn/cleanup-cmd.c:87
+#: ../svn/cleanup-cmd.c:88
msgid "Working copy locked; if no other Subversion client is currently using the working copy, try running 'svn cleanup' without the --remove-unversioned and --remove-ignored options first."
msgstr "Arbeitskopie gesperrt; Wenn kein anderer Subversion-Client gerade die Arbeitskopie verwendet, versuchen Sie zuerst »svn cleanup« ohne die Optionen »--remove-unversioned« und »--remove-ignored« auszuführen."
-#: ../svn/cleanup-cmd.c:95
+#: ../svn/cleanup-cmd.c:96
msgid "Cannot remove unversioned or ignored items from something that is not a working copy"
msgstr "Kann ignorierte oder nicht versionierte Elemente nicht aus etwas entfernen, was keine Arbeitskopie ist"
-#: ../svn/cleanup-cmd.c:122
+#: ../svn/cleanup-cmd.c:123
#, c-format
msgid "Working copy locked; try running 'svn cleanup' on the root of the working copy ('%s') instead."
msgstr "Arbeitskopie gesperrt; Versuchen Sie stattdessen »svn cleanup« auf der Basis der Arbeitskopie (»%s«) auszuführen"
@@ -9554,39 +11749,39 @@ msgstr "svn: Die Tiefe dieser Übertragung ist »%s«, Kopien werden aber im Pro
msgid "Commit targets must be local paths"
msgstr "Ziele der Übertragung müssen lokale Pfade sein"
-#: ../svn/conflict-callbacks.c:159 ../svn/conflict-callbacks.c:176
+#: ../svn/conflict-callbacks.c:127 ../svn/conflict-callbacks.c:144
msgid "MINE"
msgstr "EIGENE"
-#: ../svn/conflict-callbacks.c:164 ../svn/conflict-callbacks.c:174
+#: ../svn/conflict-callbacks.c:132 ../svn/conflict-callbacks.c:142
msgid "THEIRS"
msgstr "FREMDE"
-#: ../svn/conflict-callbacks.c:167
+#: ../svn/conflict-callbacks.c:135
msgid "MERGED"
msgstr "ZUSAMMENGEFÃœHRT"
-#: ../svn/conflict-callbacks.c:229 ../svn/conflict-callbacks.c:289
+#: ../svn/conflict-callbacks.c:198 ../svn/conflict-callbacks.c:246
msgid "||||||| ORIGINAL"
msgstr "||||||| ORIGINAL"
-#: ../svn/conflict-callbacks.c:230
+#: ../svn/conflict-callbacks.c:199
msgid "<<<<<<< MINE (select with 'mc')"
msgstr "<<<<<<< EIGENE (Auswahl mit »mc«)"
-#: ../svn/conflict-callbacks.c:231
+#: ../svn/conflict-callbacks.c:200
msgid ">>>>>>> THEIRS (select with 'tc')"
msgstr ">>>>>>> FREMDE (Auswahl mit »tc«)"
-#: ../svn/conflict-callbacks.c:290
+#: ../svn/conflict-callbacks.c:247
msgid "<<<<<<< MINE"
msgstr "<<<<<<< EIGENE"
-#: ../svn/conflict-callbacks.c:291
+#: ../svn/conflict-callbacks.c:248
msgid ">>>>>>> THEIRS"
msgstr ">>>>>>> FREMDE"
-#: ../svn/conflict-callbacks.c:362
+#: ../svn/conflict-callbacks.c:322
#, c-format
msgid ""
"Invalid option; there's no merged version to edit.\n"
@@ -9595,214 +11790,136 @@ msgstr ""
"Ungültige Option; es gibt keine zusammengeführte Version zum Bearbeiten.\n"
"\n"
-#: ../svn/conflict-callbacks.c:420
-msgid "change merged file in an editor [edit]"
-msgstr "Bearbeitet die zusammengeführte Datei in einem Editor [edit]"
+#. Translators: keep long_desc below 70 characters (wrap with a left
+#. margin of 9 spaces if needed)
+#: ../svn/conflict-callbacks.c:452
+#, fuzzy
+msgid "Quit resolution"
+msgstr "Konfliktauflösung beenden"
+
+#: ../svn/conflict-callbacks.c:452
+msgid "postpone all remaining conflicts"
+msgstr "Alle verbleibenen Konflikte zurückstellen"
#. Translators: keep long_desc below 70 characters (wrap with a left
-#. margin of 9 spaces if needed); don't translate the words within square
-#. brackets.
-#: ../svn/conflict-callbacks.c:420
-msgid "edit file"
+#. margin of 9 spaces if needed)
+#: ../svn/conflict-callbacks.c:463
+#, fuzzy
+msgid "Edit file"
msgstr "Datei bearbeiten"
-#: ../svn/conflict-callbacks.c:423
-msgid "show all changes made to merged file"
-msgstr "Zeigt alle Änderungen an der zusammengeführten Datei an"
+#: ../svn/conflict-callbacks.c:463
+#, fuzzy
+msgid "change merged file in an editor"
+msgstr "Bearbeitet die zusammengeführte Datei in einem Editor [edit]"
-#: ../svn/conflict-callbacks.c:423
-msgid "show diff"
+#: ../svn/conflict-callbacks.c:466
+#, fuzzy
+msgid "Show diff"
msgstr "Änderungen anzeigen"
-#: ../svn/conflict-callbacks.c:425
-msgid "accept merged version of file [working]"
-msgstr "Akzeptiert die zusammengeführte Version der Datei [working]"
+#: ../svn/conflict-callbacks.c:466
+msgid "show all changes made to merged file"
+msgstr "Zeigt alle Änderungen an der zusammengeführten Datei an"
#. Translators: keep long_desc below 70 characters (wrap with a left
-#. margin of 9 spaces if needed); don't translate the words within square
-#. brackets.
-#: ../svn/conflict-callbacks.c:425 ../svn/conflict-callbacks.c:470
-#: ../svn/conflict-callbacks.c:500 ../svn/conflict-callbacks.c:515
-msgid "mark resolved"
-msgstr "als aufgelöst markieren"
-
-#: ../svn/conflict-callbacks.c:428 ../svn/conflict-callbacks.c:495
-msgid "display conflict"
+#. margin of 9 spaces if needed)
+#: ../svn/conflict-callbacks.c:468 ../svn/conflict-callbacks.c:490
+#, fuzzy
+msgid "Display conflict"
msgstr "Konflikte anzeigen"
-#: ../svn/conflict-callbacks.c:428
+#: ../svn/conflict-callbacks.c:468
msgid "show all conflicts (ignoring merged version)"
msgstr "Zeigt alle Konflikte an (ignoriert zusammengeführte Datei)"
-#: ../svn/conflict-callbacks.c:431
-msgid "accept my version for all conflicts (same) [mine-conflict]"
-msgstr "Akzeptiert eigene Version für alle Konflikte (ebenso) [mine-conflict]"
-
-#: ../svn/conflict-callbacks.c:431
-msgid "my side of conflict"
-msgstr "eigene Seite des Konflikts"
-
-#: ../svn/conflict-callbacks.c:434
-msgid "accept their version for all conflicts (same) [theirs-conflict]"
-msgstr "Akzeptiert fremde Version für alle Konflikte (ebenso) [theirs-conflict]"
-
-#: ../svn/conflict-callbacks.c:434
-msgid "their side of conflict"
-msgstr "fremde Seite des Konflikts"
-
-#: ../svn/conflict-callbacks.c:439
-msgid "accept my version of entire file (even non-conflicts) [mine-full]"
-msgstr "Akzeptiert eigene Version für ganze Datei (alles, nicht nur Konflikte) [mine-full]"
-
-#: ../svn/conflict-callbacks.c:439 ../svn/conflict-callbacks.c:489
-msgid "my version"
-msgstr "meine Version"
-
-#: ../svn/conflict-callbacks.c:442
-msgid "accept their version of entire file (same) [theirs-full]"
-msgstr "Akzeptiert fremde Version für ganze Datei (ebenso) [theirs-full]"
-
-#: ../svn/conflict-callbacks.c:442 ../svn/conflict-callbacks.c:473
-#: ../svn/conflict-callbacks.c:492
-msgid "their version"
-msgstr "fremde Version"
-
-#: ../svn/conflict-callbacks.c:446 ../svn/util.c:776
-msgid "merge"
+#: ../svn/conflict-callbacks.c:471
+#, fuzzy
+msgid "Merge"
msgstr "Zusammenführung"
-#: ../svn/conflict-callbacks.c:446
+#: ../svn/conflict-callbacks.c:471
msgid "use merge tool to resolve conflict"
msgstr "Verwendet ein Werkzeug zum Zusammenführen für die Konfliktlösung"
-#: ../svn/conflict-callbacks.c:448
-msgid "launch external merge tool to resolve conflict [launch]"
-msgstr "Startet ein externes Werkzeug zum Zusammenführen für die Konfliktlösung [launch]"
-
-#: ../svn/conflict-callbacks.c:448
-msgid "launch tool"
+#: ../svn/conflict-callbacks.c:473
+#, fuzzy
+msgid "Launch tool"
msgstr "Werkzeug starten"
-#: ../svn/conflict-callbacks.c:451
-msgid "internal merge tool"
+#: ../svn/conflict-callbacks.c:473
+#, fuzzy
+msgid "launch external merge tool to resolve conflict"
+msgstr "Startet ein externes Werkzeug zum Zusammenführen für die Konfliktlösung [launch]"
+
+#: ../svn/conflict-callbacks.c:477
+#, fuzzy
+msgid "Internal merge tool"
msgstr "internes Werkzeug zum Zusammenführen"
-#: ../svn/conflict-callbacks.c:451
+#: ../svn/conflict-callbacks.c:477
msgid "use built-in merge tool to resolve conflict"
msgstr "Verwendet das interne Werkzeug zum Zusammenführen für die Konfliktlösung"
-#: ../svn/conflict-callbacks.c:454 ../svn/conflict-callbacks.c:476
-#: ../svn/conflict-callbacks.c:502
-msgid "mark the conflict to be resolved later [postpone]"
-msgstr "Markiert den Konflikt für eine spätere Auflösung [postpone]"
-
-#: ../svn/conflict-callbacks.c:454 ../svn/conflict-callbacks.c:476
-#: ../svn/conflict-callbacks.c:502 ../svn/conflict-callbacks.c:517
-#: ../svn/conflict-callbacks.c:532 ../svn/conflict-callbacks.c:547
-msgid "postpone"
-msgstr "später auflösen"
-
-#: ../svn/conflict-callbacks.c:457 ../svn/conflict-callbacks.c:479
-#: ../svn/conflict-callbacks.c:505 ../svn/conflict-callbacks.c:519
-#: ../svn/conflict-callbacks.c:534 ../svn/conflict-callbacks.c:549
-msgid "postpone all remaining conflicts"
-msgstr "Alle verbleibenen Konflikte zurückstellen"
-
-#: ../svn/conflict-callbacks.c:457 ../svn/conflict-callbacks.c:479
-#: ../svn/conflict-callbacks.c:505 ../svn/conflict-callbacks.c:519
-#: ../svn/conflict-callbacks.c:534 ../svn/conflict-callbacks.c:549
-msgid "quit resolution"
-msgstr "Konfliktauflösung beenden"
-
-#: ../svn/conflict-callbacks.c:459 ../svn/conflict-callbacks.c:481
-msgid "show all options"
+#: ../svn/conflict-callbacks.c:480
+#, fuzzy
+msgid "Show all options"
msgstr "alle Optionen anzeigen"
-#: ../svn/conflict-callbacks.c:459 ../svn/conflict-callbacks.c:481
+#: ../svn/conflict-callbacks.c:480
msgid "show this list (also 'h', '?')"
msgstr "Gibt diese Liste aus (auch: »h«, »?«)"
-#: ../svn/conflict-callbacks.c:470
-msgid "accept the working copy version of file [working]"
-msgstr "Akzeptiert die Arbeitskopieversion der Datei [working]"
-
-#: ../svn/conflict-callbacks.c:473
-msgid "accept the incoming version of file [theirs-full]"
-msgstr "Akzeptiert fremde Version der Datei [theirs-full]"
-
-#: ../svn/conflict-callbacks.c:489
-msgid "accept my version of entire property (even non-conflicts) [mine-full]"
-msgstr "Akzeptiert eigene Version für ganze Eigenschaft (alles, nicht nur Konflikte) [mine-full]"
-
-#: ../svn/conflict-callbacks.c:492
-msgid "accept their version of entire property (same) [theirs-full]"
-msgstr "Akzeptiert fremde Version für ganze Eigenschaft (ebenso) [theirs-full]"
-
-#: ../svn/conflict-callbacks.c:495
+#: ../svn/conflict-callbacks.c:490
msgid "show conflicts in this property"
msgstr "Zeigt Konflikte in dieser Eigenschaft an"
-#: ../svn/conflict-callbacks.c:497
-msgid "change merged property value in an editor [edit]"
-msgstr "Bearbeitet den zusammengeführten Eigenschaftswert in einem Editor [edit]"
-
-#: ../svn/conflict-callbacks.c:497
-msgid "edit property"
+#: ../svn/conflict-callbacks.c:492
+#, fuzzy
+msgid "Edit property"
msgstr "Eigenschaft bearbeiten"
-#: ../svn/conflict-callbacks.c:500
-msgid "accept edited version of property"
-msgstr "Akzeptiert die bearbeitete Version der Eigenschaft"
+#: ../svn/conflict-callbacks.c:492
+#, fuzzy
+msgid "change merged property value in an editor"
+msgstr "Bearbeitet den zusammengeführten Eigenschaftswert in einem Editor [edit]"
-#: ../svn/conflict-callbacks.c:507 ../svn/conflict-callbacks.c:521
-#: ../svn/conflict-callbacks.c:536 ../svn/conflict-callbacks.c:551
-msgid "help"
-msgstr "Hilfe"
+#: ../svn/conflict-callbacks.c:496 ../svn/conflict-callbacks.c:514
+msgid "Help"
+msgstr ""
-#: ../svn/conflict-callbacks.c:507 ../svn/conflict-callbacks.c:521
-#: ../svn/conflict-callbacks.c:536 ../svn/conflict-callbacks.c:551
+#: ../svn/conflict-callbacks.c:496 ../svn/conflict-callbacks.c:514
msgid "show this help (also '?')"
msgstr "Zeigt diese Hilfe an (auch: »?«)"
-#: ../svn/conflict-callbacks.c:515
-msgid "accept current working copy state"
-msgstr "Akzeptiert aktuellen Zustand in der Arbeitskopie"
-
-#: ../svn/conflict-callbacks.c:517 ../svn/conflict-callbacks.c:532
-#: ../svn/conflict-callbacks.c:547
-msgid "resolve the conflict later [postpone]"
-msgstr "Löst den Konflikt später auf [postpone]"
-
-#: ../svn/conflict-callbacks.c:528
-msgid "apply update to move destination (recommended)"
-msgstr "Wendet die Aktualisierung auf das verschobene Ziel an (empfohlen)"
+#. Translators: keep long_desc below 70 characters (wrap with a left
+#. margin of 9 spaces if needed)
+#: ../svn/conflict-callbacks.c:506
+msgid "Set repository move destination path"
+msgstr ""
-#: ../svn/conflict-callbacks.c:529
-msgid "apply incoming update to move destination [mine-conflict]"
-msgstr "Wendet empfangene Aktualisierung auf das verschobene Ziel an [mine-conflict]"
+#: ../svn/conflict-callbacks.c:507
+msgid "pick repository move target from list of possible targets"
+msgstr ""
-#: ../svn/conflict-callbacks.c:543
-msgid "prepare for updating moved-away children, if any (recommended)"
-msgstr "Bereitet die Aktualisierung von ggf. verschobenen Kindelementen vor (empfohlen)"
+#: ../svn/conflict-callbacks.c:510
+#, fuzzy
+msgid "Set working copy move destination path"
+msgstr "Die Arbeitskopie muss in ein neueres Format gebracht werden"
-#: ../svn/conflict-callbacks.c:544
-msgid "allow updating moved-away children with 'svn resolve' [mine-conflict]"
-msgstr "Erlaubt die Aktualisierung von verschobenen Kindelementen mit »svn resolve« [mine-conflict]"
+#: ../svn/conflict-callbacks.c:511
+msgid "pick working copy move target from list of possible targets"
+msgstr ""
-#: ../svn/conflict-callbacks.c:580
+#: ../svn/conflict-callbacks.c:613
msgid "Select:"
msgstr "Auswahl:"
-#: ../svn/conflict-callbacks.c:607
-#, c-format
-msgid " (%s) %s"
-msgstr " (%s) %s"
-
-#: ../svn/conflict-callbacks.c:647
+#: ../svn/conflict-callbacks.c:699
msgid "Words in square brackets are the corresponding --accept option arguments.\n"
msgstr "Worte in eckigen Klammen geben das entsprechende Argument für die Option »--accept« an.\n"
-#: ../svn/conflict-callbacks.c:686
+#: ../svn/conflict-callbacks.c:744
#, c-format
msgid ""
"Unrecognized option.\n"
@@ -9812,19 +11929,19 @@ msgstr ""
"\n"
# TODO: leicht inkonsistent zu obigen Strings (tritt in svn info-Ausgabe auf)
-#: ../svn/conflict-callbacks.c:721
-#, c-format
-msgid "Conflict discovered in binary file '%s'.\n"
+#: ../svn/conflict-callbacks.c:909
+#, fuzzy, c-format
+msgid "Merge conflict discovered in binary file '%s'.\n"
msgstr "Konflikt in Binärdatei »%s« entdeckt.\n"
# TODO: leicht inkonsistent zu obigen Strings (tritt in svn info-Ausgabe auf)
-#: ../svn/conflict-callbacks.c:725
-#, c-format
-msgid "Conflict discovered in file '%s'.\n"
+#: ../svn/conflict-callbacks.c:914
+#, fuzzy, c-format
+msgid "Merge conflict discovered in file '%s'.\n"
msgstr "Konflikt in Datei »%s« entdeckt.\n"
# TODO: "for binary files" for consistency with "for properties"
-#: ../svn/conflict-callbacks.c:816
+#: ../svn/conflict-callbacks.c:997
#, c-format
msgid ""
"Invalid option; cannot display conflicts for a binary file.\n"
@@ -9833,7 +11950,7 @@ msgstr ""
"Ungültige Option; Anzeige von Konflikten ist für Binärdateien nicht möglich.\n"
"\n"
-#: ../svn/conflict-callbacks.c:825
+#: ../svn/conflict-callbacks.c:1005
#, c-format
msgid ""
"Invalid option; original files not available.\n"
@@ -9842,7 +11959,7 @@ msgstr ""
"Ungültige Option; Originaldateien nicht verfügbar.\n"
"\n"
-#: ../svn/conflict-callbacks.c:841
+#: ../svn/conflict-callbacks.c:1021
#, c-format
msgid ""
"Invalid option; there's no merged version to diff.\n"
@@ -9851,7 +11968,7 @@ msgstr ""
"Ungültige Option; es gibt keine zusammengeführte Version zum Vergleichen.\n"
"\n"
-#: ../svn/conflict-callbacks.c:866
+#: ../svn/conflict-callbacks.c:1047
#, c-format
msgid ""
"Invalid option; there's no base path to merge.\n"
@@ -9860,7 +11977,7 @@ msgstr ""
"Ungültige Option; es gibt keinen Basispfad zum Zusammenführen.\n"
"\n"
-#: ../svn/conflict-callbacks.c:960
+#: ../svn/conflict-callbacks.c:1140
#, c-format
msgid ""
"Invalid option.\n"
@@ -9870,7 +11987,7 @@ msgstr ""
"\n"
# CHECKME: proper English?
-#: ../svn/conflict-callbacks.c:989
+#: ../svn/conflict-callbacks.c:1169
#, c-format
msgid ""
"Invalid option; cannot choose based on conflicts in a binary file.\n"
@@ -9879,19 +11996,19 @@ msgstr ""
"Ungültige Option; Auswahl anhand von Konflikten ist in einer Binärdatei nicht möglich.\n"
"\n"
-#: ../svn/conflict-callbacks.c:1003
+#: ../svn/conflict-callbacks.c:1183
#, c-format
msgid ""
"Invalid option; use diff/edit/merge/launch before choosing 'mark resolved'.\n"
"\n"
msgstr "Ungültige Option; Verwenden Sie Änderungen anzeigen / Datei bearbeiten / Zusammenführung / Werkzeug starten bevor Sie den Konflikt als aufgelöst markieren.\n"
-#: ../svn/conflict-callbacks.c:1044
+#: ../svn/conflict-callbacks.c:1296
#, c-format
msgid "Conflict for property '%s' discovered on '%s'.\n"
msgstr "Konflikt für Eigenschaft »%s« für »%s« entdeckt.\n"
-#: ../svn/conflict-callbacks.c:1104
+#: ../svn/conflict-callbacks.c:1365
#, c-format
msgid ""
"Invalid option; please edit the property first.\n"
@@ -9900,16 +12017,56 @@ msgstr ""
"Ungültige Option; Bearbeiten Sie zuerst die Eigenschaft.\n"
"\n"
-#: ../svn/conflict-callbacks.c:1141
+#: ../svn/conflict-callbacks.c:1625
#, c-format
msgid ""
-"Tree conflict on '%s'\n"
-" > %s\n"
+"Possible working copy destinations for moved-away '%s' are:\n"
+"%sOnly one destination can be a move; the others are copies.\n"
+"Specify the correct move target path by number: "
+msgstr ""
+
+#: ../svn/conflict-callbacks.c:1634
+#, c-format
+msgid ""
+"Possible repository destinations for moved-away '%s' are:\n"
+"%sOnly one destination can be a move; the others are copies.\n"
+"Specify the correct move target path by number: "
+msgstr ""
+
+#: ../svn/conflict-callbacks.c:1716
+#, fuzzy, c-format
+msgid ""
+"Tree conflict on '%s':\n"
+"%s\n"
msgstr ""
"Baumkonflikt in »%s«\n"
" > %s\n"
-#: ../svn/copy-cmd.c:123 ../svn/export-cmd.c:94 ../svn/util.c:959
+#: ../svn/conflict-callbacks.c:1736
+#, c-format
+msgid "Applying recommended resolution '%s':\n"
+msgstr ""
+
+#: ../svn/conflict-callbacks.c:1761
+#, c-format
+msgid ""
+"\n"
+"Subversion is not smart enough to resolve this tree conflict automatically!\n"
+"See 'svn help resolve' for more information.\n"
+"\n"
+msgstr ""
+
+#: ../svn/conflict-callbacks.c:1776
+#, c-format
+msgid "Ambiguous move destinations exist in the repository; try the 'd' option\n"
+msgstr ""
+
+#: ../svn/conflict-callbacks.c:1781
+#, fuzzy, c-format
+msgid "Ambiguous move destinations exist in the working copy; try the 'w' option\n"
+msgstr "Ein Konflikt in der Arbeitskopie behindert die aktuelle Operation"
+
+#: ../svn/copy-cmd.c:123 ../svn/export-cmd.c:94 ../svn/util.c:963
#, c-format
msgid "'%s': a peg revision is not allowed here"
msgstr "»%s«: Eine Fix-Revision ist hier nicht erlaubt"
@@ -10027,12 +12184,14 @@ msgid "Merge of '%s' completed.\n"
msgstr "Zusammenführung von »%s« abgeschlossen.\n"
#: ../svn/help-cmd.c:53
+#, fuzzy
msgid ""
"usage: svn <subcommand> [options] [args]\n"
"Subversion command-line client.\n"
"Type 'svn help <subcommand>' for help on a specific subcommand.\n"
-"Type 'svn --version' to see the program version and RA modules\n"
-" or 'svn --version --quiet' to see just the version number.\n"
+"Type 'svn --version' to see the program version and RA modules,\n"
+" 'svn --version --verbose' to see dependency versions as well,\n"
+" 'svn --version --quiet' to see just the version number.\n"
"\n"
"Most subcommands take file and/or directory arguments, recursing\n"
"on the directories. If no arguments are supplied to such a\n"
@@ -10053,7 +12212,7 @@ msgstr ""
"\n"
"Verfügbare Unterbefehle:\n"
-#: ../svn/help-cmd.c:66 ../svnbench/help-cmd.c:62
+#: ../svn/help-cmd.c:67 ../svnbench/help-cmd.c:62
msgid ""
"Subversion is a tool for version control.\n"
"For additional information, see http://subversion.apache.org/\n"
@@ -10061,8 +12220,8 @@ msgstr ""
"Subversion ist ein Programm zur Versionskontrolle.\n"
"Für weitere Informationen, siehe: http://subversion.apache.org/\n"
-#: ../svn/help-cmd.c:70 ../svnbench/help-cmd.c:66 ../svnrdump/svnrdump.c:628
-#: ../svnsync/svnsync.c:1916
+#: ../svn/help-cmd.c:71 ../svnbench/help-cmd.c:66 ../svnrdump/svnrdump.c:616
+#: ../svnsync/svnsync.c:1938
msgid ""
"The following repository access (RA) modules are available:\n"
"\n"
@@ -10070,7 +12229,7 @@ msgstr ""
"Die folgenden ZugriffsModule (ZM) für Projektarchive stehen zur Verfügung:\n"
"\n"
-#: ../svn/help-cmd.c:124
+#: ../svn/help-cmd.c:125
msgid ""
"WARNING: Plaintext password storage is enabled!\n"
"\n"
@@ -10078,7 +12237,7 @@ msgstr ""
"WARNUNG: Speicherung von Passwörtern im Klartext ist aktiviert!\n"
"\n"
-#: ../svn/help-cmd.c:147
+#: ../svn/help-cmd.c:148
msgid ""
"\n"
"The following authentication credential caches are available:\n"
@@ -10088,12 +12247,12 @@ msgstr ""
"Die folgenden Speicherbereiche für Zugangsdaten sind verfügbar:\n"
"\n"
-#: ../svn/help-cmd.c:152
+#: ../svn/help-cmd.c:155
#, c-format
msgid "%s* Wincrypt cache in %s\n"
msgstr "%s* Wincrypt-Speicher in %s\n"
-#: ../svn/help-cmd.c:159
+#: ../svn/help-cmd.c:162
#, c-format
msgid "%s* Plaintext cache in %s\n"
msgstr "%s* Klartext-Speicher in %s\n"
@@ -10111,237 +12270,237 @@ msgstr "Zu viele Parameter für Import Befehl"
msgid "Invalid URL '%s'"
msgstr "Ungültige URL »%s«"
-#: ../svn/info-cmd.c:207
+#: ../svn/info-cmd.c:210
#, c-format
msgid "'%s' is not a valid value for --show-item"
msgstr "»%s« ist kein gültiger Wert für --show-item"
-#: ../svn/info-cmd.c:215
+#: ../svn/info-cmd.c:218
#, c-format
msgid "'%s' is not a valid value for --show-item; did you mean '%s'?"
msgstr "»%s« ist kein gültiger Wert für --show-item; Meinten Sie »%s«?"
-#: ../svn/info-cmd.c:225
+#: ../svn/info-cmd.c:228
#, c-format
msgid "'%s' is not a valid value for --show-item; did you mean '%s' or '%s'?"
msgstr "»%s« ist kein gültiger Wert für --show-item; Meinten Sie »%s« oder »%s«?"
-#: ../svn/info-cmd.c:236
+#: ../svn/info-cmd.c:239
#, c-format
msgid "'%s' is not a valid value for --show-item; did you mean '%s', '%s' or '%s'?"
msgstr "»%s« ist kein gültiger Wert für --show-item; Meinten Sie »%s«, »%s« oder »%s«?"
# CHECKME: full stop?
-#: ../svn/info-cmd.c:257
+#: ../svn/info-cmd.c:260
msgid "Resource is not under version control."
msgstr "Ressource ist nicht unter Versionskontrolle."
-#: ../svn/info-cmd.c:424 ../svnadmin/svnadmin.c:1949
-#: ../svnadmin/svnadmin.c:2167
+#: ../svn/info-cmd.c:436 ../svnadmin/svnadmin.c:2367
+#: ../svnadmin/svnadmin.c:2603
#, c-format
msgid "Path: %s\n"
msgstr "Pfad: %s\n"
-#: ../svn/info-cmd.c:431
+#: ../svn/info-cmd.c:443
#, c-format
msgid "Name: %s\n"
msgstr "Name: %s\n"
-#: ../svn/info-cmd.c:435
+#: ../svn/info-cmd.c:447
#, c-format
msgid "Working Copy Root Path: %s\n"
msgstr "Wurzelpfad der Arbeitskopie: %s\n"
-#: ../svn/info-cmd.c:441
+#: ../svn/info-cmd.c:453
#, c-format
msgid "URL: %s\n"
msgstr "URL: %s\n"
-#: ../svn/info-cmd.c:444
+#: ../svn/info-cmd.c:456
#, c-format
msgid "Relative URL: %s\n"
msgstr "Relative URL: %s\n"
-#: ../svn/info-cmd.c:448
+#: ../svn/info-cmd.c:460
#, c-format
msgid "Repository Root: %s\n"
msgstr "Basis des Projektarchivs: %s\n"
-#: ../svn/info-cmd.c:452
+#: ../svn/info-cmd.c:464
#, c-format
msgid "Repository UUID: %s\n"
msgstr "UUID des Projektarchivs: %s\n"
-#: ../svn/info-cmd.c:456
+#: ../svn/info-cmd.c:468
#, c-format
msgid "Revision: %ld\n"
msgstr "Revision: %ld\n"
-#: ../svn/info-cmd.c:461
+#: ../svn/info-cmd.c:473
#, c-format
msgid "Node Kind: file\n"
msgstr "Knotentyp: Datei\n"
-#: ../svn/info-cmd.c:465
+#: ../svn/info-cmd.c:477
#, c-format
msgid "Node Kind: directory\n"
msgstr "Knotentyp: Verzeichnis\n"
-#: ../svn/info-cmd.c:469
+#: ../svn/info-cmd.c:481
#, c-format
msgid "Node Kind: none\n"
msgstr "Knotentyp: keiner\n"
-#: ../svn/info-cmd.c:474
+#: ../svn/info-cmd.c:486
#, c-format
msgid "Node Kind: unknown\n"
msgstr "Knotentyp: unbekannt\n"
-#: ../svn/info-cmd.c:483
+#: ../svn/info-cmd.c:495
#, c-format
msgid "Schedule: normal\n"
msgstr "Plan: normal\n"
-#: ../svn/info-cmd.c:487
+#: ../svn/info-cmd.c:499
#, c-format
msgid "Schedule: add\n"
msgstr "Plan: hinzufügen\n"
-#: ../svn/info-cmd.c:491
+#: ../svn/info-cmd.c:503
#, c-format
msgid "Schedule: delete\n"
msgstr "Plan: löschen\n"
-#: ../svn/info-cmd.c:495
+#: ../svn/info-cmd.c:507
#, c-format
msgid "Schedule: replace\n"
msgstr "Plan: ersetzen\n"
-#: ../svn/info-cmd.c:511
+#: ../svn/info-cmd.c:523
#, c-format
msgid "Depth: empty\n"
msgstr "Tiefe: »empty«\n"
-#: ../svn/info-cmd.c:515
+#: ../svn/info-cmd.c:527
#, c-format
msgid "Depth: files\n"
msgstr "Tiefe: »files«\n"
-#: ../svn/info-cmd.c:519
+#: ../svn/info-cmd.c:531
#, c-format
msgid "Depth: immediates\n"
msgstr "Tiefe: »immediates«\n"
-#: ../svn/info-cmd.c:523
+#: ../svn/info-cmd.c:535
#, c-format
msgid "Depth: exclude\n"
msgstr "Tiefe: »exclude«\n"
#. Other depths should never happen here.
-#: ../svn/info-cmd.c:534
+#: ../svn/info-cmd.c:546
#, c-format
msgid "Depth: INVALID\n"
msgstr "Tiefe: UNGÃœLTIG\n"
-#: ../svn/info-cmd.c:538
+#: ../svn/info-cmd.c:550
#, c-format
msgid "Copied From URL: %s\n"
msgstr "Kopiert von URL: %s\n"
-#: ../svn/info-cmd.c:542
+#: ../svn/info-cmd.c:554
#, c-format
msgid "Copied From Rev: %ld\n"
msgstr "Kopiert von Rev: %ld\n"
-#: ../svn/info-cmd.c:545
+#: ../svn/info-cmd.c:557
#, c-format
msgid "Moved From: %s\n"
msgstr "Verschoben von: %s\n"
-#: ../svn/info-cmd.c:552
+#: ../svn/info-cmd.c:564
#, c-format
msgid "Moved To: %s\n"
msgstr "Verschoben nach: %s\n"
-#: ../svn/info-cmd.c:560
+#: ../svn/info-cmd.c:572
#, c-format
msgid "Last Changed Author: %s\n"
msgstr "Letzter Autor: %s\n"
-#: ../svn/info-cmd.c:564
+#: ../svn/info-cmd.c:576
#, c-format
msgid "Last Changed Rev: %ld\n"
msgstr "Letzte geänderte Rev: %ld\n"
-#: ../svn/info-cmd.c:569
+#: ../svn/info-cmd.c:581
msgid "Last Changed Date"
msgstr "Letztes Änderungsdatum"
-#: ../svn/info-cmd.c:575
+#: ../svn/info-cmd.c:587
msgid "Text Last Updated"
msgstr "Text zuletzt geändert"
-#: ../svn/info-cmd.c:578
+#: ../svn/info-cmd.c:590
#, c-format
msgid "Checksum: %s\n"
msgstr "Prüfsumme: %s\n"
-#: ../svn/info-cmd.c:600
+#: ../svn/info-cmd.c:624
#, c-format
msgid "Conflict Previous Base File: %s\n"
msgstr "Konflikt: vorherige Ausgangsdatei: %s\n"
-#: ../svn/info-cmd.c:608
+#: ../svn/info-cmd.c:632
#, c-format
msgid "Conflict Previous Working File: %s\n"
msgstr "Konflikt: vorherige Arbeitsdatei: %s\n"
-#: ../svn/info-cmd.c:616
+#: ../svn/info-cmd.c:640
#, c-format
msgid "Conflict Current Base File: %s\n"
msgstr "Konflikt: aktuelle Ausgangsdatei: %s\n"
-# TODO: leicht inkonsistent zu obigen Strings (tritt in svn info-Ausgabe auf)
-#: ../svn/info-cmd.c:626
-#, c-format
-msgid "Conflict Properties File: %s\n"
-msgstr "Konfliktdatei mit Eigenschaften: %s\n"
-
-#: ../svn/info-cmd.c:641
+#: ../svn/info-cmd.c:676
msgid "Tree conflict"
msgstr "Baumkonflikt"
-#: ../svn/info-cmd.c:667
+# TODO: leicht inkonsistent zu obigen Strings (tritt in svn info-Ausgabe auf)
+#: ../svn/info-cmd.c:680
+#, fuzzy, c-format
+msgid "Conflicted Properties: %s\n"
+msgstr "Konfliktdatei mit Eigenschaften: %s\n"
+
+#: ../svn/info-cmd.c:706
msgid "Conflict Details"
msgstr "Konfliktdetails"
-#: ../svn/info-cmd.c:680
+#: ../svn/info-cmd.c:727
msgid "Source left"
msgstr "Quelle links"
-#: ../svn/info-cmd.c:689
+#: ../svn/info-cmd.c:736
msgid "Source right"
msgstr "Quelle rechts"
-#: ../svn/info-cmd.c:698
+#: ../svn/info-cmd.c:745
#, c-format
msgid "Lock Token: %s\n"
msgstr "Sperrmarke: %s\n"
-#: ../svn/info-cmd.c:702
+#: ../svn/info-cmd.c:749
#, c-format
msgid "Lock Owner: %s\n"
msgstr "Sperreigner: %s\n"
-#: ../svn/info-cmd.c:707
+#: ../svn/info-cmd.c:754
msgid "Lock Created"
msgstr "Sperre erzeugt"
-#: ../svn/info-cmd.c:711
+#: ../svn/info-cmd.c:758
msgid "Lock Expires"
msgstr "Sperre läuft ab"
-#: ../svn/info-cmd.c:719
+#: ../svn/info-cmd.c:766
#, c-format
msgid ""
"Lock Comment (%i line):\n"
@@ -10356,51 +12515,56 @@ msgstr[1] ""
"Sperrkommentar (%i Zeilen):\n"
"%s\n"
-#: ../svn/info-cmd.c:728
+#: ../svn/info-cmd.c:775
#, c-format
msgid "Changelist: %s\n"
msgstr "Änderungsliste: %s\n"
-#: ../svn/info-cmd.c:884
+#: ../svn/info-cmd.c:933
msgid "--show-item is not valid in --xml mode"
msgstr "Die Option »--show-item« ist im Modus »--xml« nicht gültig"
-#: ../svn/info-cmd.c:888
+#: ../svn/info-cmd.c:937
msgid "--no-newline is not valid in --xml mode"
msgstr "Die Option »--no-newline« ist im Modus »--xml« nicht gültig"
-#: ../svn/info-cmd.c:903 ../svn/info-cmd.c:923
+#: ../svn/info-cmd.c:952 ../svn/info-cmd.c:972
msgid "--incremental is only valid in --xml mode"
msgstr "Die Option »--incremental« ist nur Modus »--xml« gültig"
-#: ../svn/info-cmd.c:910
+#: ../svn/info-cmd.c:959
msgid "--no-newline is only available for single-target, non-recursive info operations"
msgstr "Die Option »--no-newline« ist nur für einzelne Ziele und nicht-rekursive Info-Operationen verfügbar"
-#: ../svn/info-cmd.c:927
+#: ../svn/info-cmd.c:976
msgid "--no-newline' is only valid with --show-item"
msgstr "Die Option »--no-newline« ist nur mit »--show-item« gültig"
-#: ../svn/info-cmd.c:1000 ../svnbench/null-info-cmd.c:283
+#: ../svn/info-cmd.c:1049 ../svnbench/null-info-cmd.c:283
msgid "Could not display info for all targets because some targets don't exist"
msgstr "Konnte Information nicht für alle Ziele anzeigen, da einige Ziele nicht existieren"
-#: ../svn/list-cmd.c:73
+#: ../svn/list-cmd.c:79
msgid "%b %d %H:%M"
msgstr "%d. %b %H:%M"
-#: ../svn/list-cmd.c:75
+#: ../svn/list-cmd.c:81
msgid "%b %d %Y"
msgstr "%d. %b %Y"
# Currently this is used for checkouts and switches too. If we
# want different output, we'll have to add new actions.
-#: ../svn/list-cmd.c:101
+#: ../svn/list-cmd.c:107
#, c-format
msgid "Listing external '%s' defined on '%s':\n"
msgstr "Auflistung des externen Verweises »%s« definiert auf »%s«:\n"
-#: ../svn/list-cmd.c:422 ../svnbench/null-list-cmd.c:166
+#: ../svn/list-cmd.c:393 ../svnbench/null-list-cmd.c:148
+#, fuzzy
+msgid "'search-and' option is not supported"
+msgstr "Die angegebene Vergleichsoption wird nicht unterstützt"
+
+#: ../svn/list-cmd.c:460 ../svnbench/null-list-cmd.c:193
msgid "Could not list all targets because some targets don't exist"
msgstr "Konnte nicht alle Ziele auflisten, da einige Ziele nicht existieren"
@@ -10408,150 +12572,159 @@ msgstr "Konnte nicht alle Ziele auflisten, da einige Ziele nicht existieren"
msgid "Lock comment contains a zero byte"
msgstr "Sperrkommentar enthält ein Null-Byte"
-#: ../svn/log-cmd.c:109
+#: ../svn/lock-cmd.c:144
+msgid "One or more locks could not be obtained"
+msgstr ""
+
+#: ../svn/log-cmd.c:111 ../svn/svn.c:1129 ../svn/svn.c:1201 ../svn/svn.c:1267
msgid "\n"
msgstr "\n"
-#: ../svn/log-cmd.c:321
+#: ../svn/log-cmd.c:341
msgid "(no author)"
msgstr "(kein Autor)"
-#: ../svn/log-cmd.c:327
+#: ../svn/log-cmd.c:347
msgid "(no date)"
msgstr "(kein Datum)"
-#: ../svn/log-cmd.c:357
+#: ../svn/log-cmd.c:377
#, c-format
msgid " | %d line"
msgid_plural " | %d lines"
msgstr[0] " | %d Zeile"
msgstr[1] " | %d Zeilen"
-#: ../svn/log-cmd.c:374
+#: ../svn/log-cmd.c:394
#, c-format
msgid "Changed paths:\n"
msgstr "Geänderte Pfade:\n"
-#: ../svn/log-cmd.c:394
+#: ../svn/log-cmd.c:414
#, c-format
msgid " (from %s:%ld)"
msgstr " (von %s:%ld)"
-#: ../svn/log-cmd.c:412
+#: ../svn/log-cmd.c:432
#, c-format
msgid "Reverse merged via:"
msgstr "Rückwärtig zusammengeführt mittels:"
-#: ../svn/log-cmd.c:414
+#: ../svn/log-cmd.c:434
#, c-format
msgid "Merged via:"
msgstr "Zusammengeführt mittels:"
-#: ../svn/log-cmd.c:697
+#: ../svn/log-cmd.c:717
msgid "'with-all-revprops' option only valid in XML mode"
msgstr "Option »with-all-revprops« ist nur im XML-Modus gültig"
-#: ../svn/log-cmd.c:701
+#: ../svn/log-cmd.c:721
msgid "'with-no-revprops' option only valid in XML mode"
msgstr "Option »with-no-revprops« ist nur im XML-Modus gültig"
# TODO: combine
# CHECKME: s/with-revprop/with-revprops/ ???
-#: ../svn/log-cmd.c:705
+#: ../svn/log-cmd.c:725
msgid "'with-revprop' option only valid in XML mode"
msgstr "Option »with-revprop« ist nur im XML-Modus gültig"
-#: ../svn/log-cmd.c:712
+#: ../svn/log-cmd.c:732
msgid "'diff' option is not supported in XML mode"
msgstr "Option »diff« wird im XML-Modus nicht unterstützt"
-#: ../svn/log-cmd.c:718
+#: ../svn/log-cmd.c:738
msgid "'quiet' and 'diff' options are mutually exclusive"
msgstr "»quiet« und »diff« schließen sich gegenseitig aus"
-#: ../svn/log-cmd.c:722
+#: ../svn/log-cmd.c:742
msgid "'diff-cmd' option requires 'diff' option"
msgstr "Option »diff-cmd« erfordert Option »diff«"
-#: ../svn/log-cmd.c:726
+#: ../svn/log-cmd.c:746
msgid "'internal-diff' option requires 'diff' option"
msgstr "Option »internal-diff« erfordert Option »diff«"
-#: ../svn/log-cmd.c:730
+#: ../svn/log-cmd.c:750
msgid "'extensions' option requires 'diff' option"
msgstr "Option »extensions« erfordert Option »diff«"
-#: ../svn/log-cmd.c:735
+#: ../svn/log-cmd.c:755
msgid "'depth' option requires 'diff' option"
msgstr "Option »depth« erfordert Option »diff«"
-#: ../svn/log-cmd.c:751 ../svnbench/null-log-cmd.c:158
+#: ../svn/log-cmd.c:771 ../svnbench/null-log-cmd.c:158
msgid "-c and -r are mutually exclusive"
msgstr "-c und -r schließen einander aus"
-#: ../svn/log-cmd.c:783
+#: ../svn/log-cmd.c:803
#, c-format
msgid "Only relative paths can be specified after a URL for 'svn log', but '%s' is not a relative path"
msgstr "Mit »svn log« können nach einer URL nur relative Pfade angegeben werden, »%s« ist aber kein relativer Pfad"
-#: ../svn/log-cmd.c:829
+#: ../svn/log-cmd.c:850
#, c-format
msgid "cannot assign with 'with-revprop' option (drop the '=')"
msgstr "Kann nicht mit Option »with-revprop« zuweisen (»=« entfernen)"
-#: ../svn/merge-cmd.c:103 ../svn/merge-cmd.c:127
+#: ../svn/merge-cmd.c:103 ../svn/merge-cmd.c:132
#, c-format
msgid "--- Merging\n"
msgstr "--- Zusammenführung\n"
-#: ../svn/merge-cmd.c:171
+#: ../svn/merge-cmd.c:128
+#, fuzzy, c-format
+msgid "Merge target '%s' must be a local path but looks like a URL"
+msgstr "Ziele der Übertragung müssen lokale Pfade sein"
+
+#: ../svn/merge-cmd.c:258
msgid "-r and -c can't be used with --reintegrate"
msgstr "-r und -c können nicht mit --reintegrate verwendet werden"
-#: ../svn/merge-cmd.c:226
+#: ../svn/merge-cmd.c:313
msgid "Merge source required"
msgstr "Die Zusammenführungsquelle muss angegeben werden"
-#: ../svn/merge-cmd.c:272
+#: ../svn/merge-cmd.c:359
msgid "Second revision required"
msgstr "Eine zweite Revision muss angegeben werden"
-#: ../svn/merge-cmd.c:281 ../svn/merge-cmd.c:308 ../svn/mergeinfo-cmd.c:361
-#: ../svnadmin/svnadmin.c:2138 ../svnlook/svnlook.c:2077
-#: ../svnlook/svnlook.c:2271 ../svnlook/svnlook.c:2375
-#: ../svnlook/svnlook.c:2410
+#: ../svn/merge-cmd.c:368 ../svn/merge-cmd.c:395 ../svn/mergeinfo-cmd.c:361
+#: ../svnadmin/svnadmin.c:2571 ../svnlook/svnlook.c:2086
+#: ../svnlook/svnlook.c:2280 ../svnlook/svnlook.c:2384
+#: ../svnlook/svnlook.c:2419
msgid "Too many arguments given"
msgstr "Zu viele Parameter angegeben"
-#: ../svn/merge-cmd.c:298
+#: ../svn/merge-cmd.c:385
msgid "Cannot specify a revision range with two URLs"
msgstr "Die Angabe eines Revisionsbereichs mit zwei URLs ist nicht möglich"
-#: ../svn/merge-cmd.c:402
+#: ../svn/merge-cmd.c:489
msgid "--reintegrate cannot be used with --ignore-ancestry"
msgstr "»--reintegrate« kann nicht mit »--ignore-ancestry« verwendet werden"
-#: ../svn/merge-cmd.c:407
+#: ../svn/merge-cmd.c:494
msgid "--reintegrate cannot be used with --record-only"
msgstr "»--reintegrate« kann nicht mit »--record-only« verwendet werden"
-#: ../svn/merge-cmd.c:412
+#: ../svn/merge-cmd.c:499
msgid "--depth cannot be used with --reintegrate"
msgstr "»--depth« kann nicht mit »--reintegrate« verwendet werden"
-#: ../svn/merge-cmd.c:417
+#: ../svn/merge-cmd.c:504
msgid "--force cannot be used with --reintegrate"
msgstr "»--force« kann nicht mit »--reintegrate« verwendet werden"
-#: ../svn/merge-cmd.c:422
+#: ../svn/merge-cmd.c:509
msgid "--reintegrate can only be used with a single merge source"
msgstr "»--reintegrate« kann nur mit einer einzelnen Zusammenführungsquelle verwendet werden"
-#: ../svn/merge-cmd.c:426
+#: ../svn/merge-cmd.c:513
msgid "--allow-mixed-revisions cannot be used with --reintegrate"
msgstr "»--allow-mixed-revisions« kann nicht mit »--reintegrate« verwendet werden"
-#: ../svn/merge-cmd.c:441
+#: ../svn/merge-cmd.c:544
msgid ""
"Merge tracking not possible, use --ignore-ancestry or\n"
"fix invalid mergeinfo in target with 'svn propset'"
@@ -10612,7 +12785,7 @@ msgid "Try 'svn mkdir --parents' instead?"
msgstr "Versuchen Sie »svn mkdir --parents« stattdessen?"
# number of text, property or tree conflicts remaining to be resolved
-#: ../svn/notify.c:132
+#: ../svn/notify.c:134
#, c-format
msgid "%d remaining"
msgid_plural "%d remaining"
@@ -10620,168 +12793,202 @@ msgstr[0] "%d verbleibend"
msgstr[1] "%d verbleibend"
# number of already resolved text, property or tree conflicts
-#: ../svn/notify.c:141
+#: ../svn/notify.c:143
#, c-format
msgid "and %d already resolved"
msgid_plural "and %d already resolved"
msgstr[0] "und %d bereits aufgelöst"
msgstr[1] "und %d bereits aufgelöst"
-#: ../svn/notify.c:163 ../svn/status-cmd.c:93
+#: ../svn/notify.c:235 ../svn/status-cmd.c:93
#, c-format
msgid "Summary of conflicts:\n"
msgstr "Konfliktübersicht:\n"
-#: ../svn/notify.c:169
+#: ../svn/notify.c:241
#, c-format
msgid " Text conflicts: %d\n"
msgstr " Textkonflikte: %d\n"
-#: ../svn/notify.c:173
+#: ../svn/notify.c:245
#, c-format
msgid " Property conflicts: %d\n"
msgstr " Eigenschaftskonflikte: %d\n"
-#: ../svn/notify.c:177
+#: ../svn/notify.c:249
#, c-format
msgid " Tree conflicts: %d\n"
msgstr " Baumkonflikte: %d\n"
-#: ../svn/notify.c:184
+#: ../svn/notify.c:256
#, c-format
msgid " Text conflicts: %s (%s)\n"
msgstr " Textkonflikte: %s (%s\n"
-#: ../svn/notify.c:189
+#: ../svn/notify.c:261
#, c-format
msgid " Property conflicts: %s (%s)\n"
msgstr " Eigenschaftskonflikte: %s (%s)\n"
-#: ../svn/notify.c:194
+#: ../svn/notify.c:266
#, c-format
msgid " Tree conflicts: %s (%s)\n"
msgstr " Baumkonflikte: %s (%s)\n"
-#: ../svn/notify.c:200
+#: ../svn/notify.c:272
#, c-format
msgid " Skipped paths: %d\n"
msgstr " Ãœbersprungene Pfade: %d\n"
-#: ../svn/notify.c:246 ../svnbench/notify.c:107
+#: ../svn/notify.c:318 ../svnbench/notify.c:107
#, c-format
msgid "Skipped missing target: '%s'\n"
msgstr "Fehlendes Ziel: »%s« übersprungen\n"
-#: ../svn/notify.c:253 ../svnbench/notify.c:114
+#: ../svn/notify.c:325 ../svnbench/notify.c:114
#, c-format
msgid "Skipped target: '%s' -- copy-source is missing\n"
msgstr "Ziel: »%s« übersprungen -- copy-source fehlt\n"
-#: ../svn/notify.c:258 ../svnbench/notify.c:121
+#: ../svn/notify.c:332
+#, fuzzy, c-format
+msgid "Skipped '%s' -- obstructed by unversioned node\n"
+msgstr "Überspringe »%s« -- Hat keine versioniertes Elternelement\n"
+
+#: ../svn/notify.c:337 ../svnbench/notify.c:121
#, c-format
msgid "Skipped '%s'\n"
msgstr "Überspringe »%s«\n"
-#: ../svn/notify.c:265 ../svnbench/notify.c:128
+#: ../svn/notify.c:344 ../svnbench/notify.c:128
#, c-format
msgid "Skipped '%s' -- An obstructing working copy was found\n"
msgstr "Überspringe »%s« -- Eine blockierende Arbeitskopie wurde gefunden\n"
-#: ../svn/notify.c:271 ../svnbench/notify.c:135
+#: ../svn/notify.c:350 ../svnbench/notify.c:135
#, c-format
msgid "Skipped '%s' -- Has no versioned parent\n"
msgstr "Überspringe »%s« -- Hat keine versioniertes Elternelement\n"
-#: ../svn/notify.c:277 ../svnbench/notify.c:142
+#: ../svn/notify.c:356 ../svnbench/notify.c:142
#, c-format
msgid "Skipped '%s' -- Access denied\n"
msgstr "Überspringe »%s« -- Zugriff verweigert\n"
-#: ../svn/notify.c:283 ../svnbench/notify.c:149
+#: ../svn/notify.c:362 ../svnbench/notify.c:149
#, c-format
msgid "Skipped '%s' -- Node remains in conflict\n"
msgstr "Überspringe »%s« -- Knoten bleibt im Konflikt\n"
-#: ../svn/notify.c:299
+#: ../svn/notify.c:378
#, c-format
msgid "Removed external '%s': %s\n"
msgstr "Externer Verweis »%s« entfernt: %s\n"
-#: ../svn/notify.c:304
+#: ../svn/notify.c:383
#, c-format
msgid "Removed external '%s'\n"
msgstr "Externer Verweis »%s« entfernt\n"
-#: ../svn/notify.c:310
+#: ../svn/notify.c:389
#, c-format
msgid "Left local modifications as '%s'\n"
msgstr "Lokale Änderungen in »%s« belassen\n"
-#: ../svn/notify.c:354 ../svnbench/notify.c:233
+#: ../svn/notify.c:433 ../svnbench/notify.c:233
#, c-format
msgid "Restored '%s'\n"
msgstr "Wieder hergestellt »%s«\n"
-#: ../svn/notify.c:359 ../svnbench/notify.c:239
+#: ../svn/notify.c:438 ../svnbench/notify.c:239
#, c-format
msgid "Reverted '%s'\n"
msgstr "Rückgängig gemacht: »%s«\n"
-#: ../svn/notify.c:364 ../svnbench/notify.c:245
+#: ../svn/notify.c:443 ../svnbench/notify.c:245
#, c-format
msgid "Failed to revert '%s' -- try updating instead.\n"
msgstr "Wiederherstellen von »%s« schlug fehl -- Versuchen Sie statt dessen zu aktualisieren.\n"
-#: ../svn/notify.c:371 ../svnbench/notify.c:253
+#: ../svn/notify.c:450 ../svnbench/notify.c:253
#, c-format
msgid "Resolved conflicted state of '%s'\n"
msgstr "Konflikt von »%s« aufgelöst\n"
-#: ../svn/notify.c:461 ../svn/notify.c:498 ../svnbench/notify.c:344
+#: ../svn/notify.c:456
+#, fuzzy, c-format
+msgid "Merge conflicts in '%s' marked as resolved.\n"
+msgstr ""
+"Baumkonflikt in »%s«\n"
+" > %s\n"
+
+#: ../svn/notify.c:464
+#, fuzzy, c-format
+msgid "Conflict in property '%s' at '%s' marked as resolved.\n"
+msgstr "Konflikt für Eigenschaft »%s« für »%s« entdeckt.\n"
+
+#: ../svn/notify.c:471
+#, fuzzy, c-format
+msgid "Tree conflict at '%s' marked as resolved.\n"
+msgstr ""
+"Baumkonflikt in »%s«\n"
+" > %s\n"
+
+#: ../svn/notify.c:478
+#, c-format
+msgid "Searching tree conflict details for '%s' in repository:\n"
+msgstr ""
+
+#: ../svn/notify.c:500
+#, fuzzy, c-format
+msgid " done\n"
+msgstr " erledigt.\n"
+
+#: ../svn/notify.c:592 ../svn/notify.c:629 ../svnbench/notify.c:344
#: ../svnbench/notify.c:384
#, c-format
msgid "> applied hunk ## -%lu,%lu +%lu,%lu ## with offset %s"
msgstr "> Abschnitt ## -%lu,%lu +%lu,%lu ## mit Versatz %s angewandt"
-#: ../svn/notify.c:478 ../svn/notify.c:512 ../svnbench/notify.c:361
+#: ../svn/notify.c:609 ../svn/notify.c:643 ../svnbench/notify.c:361
#: ../svnbench/notify.c:398
#, c-format
msgid "> applied hunk @@ -%lu,%lu +%lu,%lu @@ with offset %s"
msgstr "> Abschnitt @@ -%lu,%lu +%lu,%lu @@ mit Versatz %s angewandt"
-#: ../svn/notify.c:530 ../svnbench/notify.c:419
+#: ../svn/notify.c:661 ../svnbench/notify.c:419
#, c-format
msgid "> applied hunk ## -%lu,%lu +%lu,%lu ## with fuzz %lu (%s)\n"
msgstr "> Abschnitt ## -%lu,%lu +%lu,%lu ## mit Unschärfe %lu (%s) angewandt\n"
-#: ../svn/notify.c:540 ../svnbench/notify.c:429
+#: ../svn/notify.c:671 ../svnbench/notify.c:429
#, c-format
msgid "> applied hunk @@ -%lu,%lu +%lu,%lu @@ with fuzz %lu\n"
msgstr "> Abschnitt @@ -%lu,%lu +%lu,%lu @@ mit Unschärfe %lu angewandt\n"
-#: ../svn/notify.c:556 ../svnbench/notify.c:447
+#: ../svn/notify.c:687 ../svnbench/notify.c:447
#, c-format
msgid "> rejected hunk ## -%lu,%lu +%lu,%lu ## (%s)\n"
msgstr "> Abschnitt ## -%lu,%lu +%lu,%lu ## (%s) zurückgewiesen\n"
-#: ../svn/notify.c:565 ../svnbench/notify.c:456
+#: ../svn/notify.c:696 ../svnbench/notify.c:456
#, c-format
msgid "> rejected hunk @@ -%lu,%lu +%lu,%lu @@\n"
msgstr "> Abschnitt @@ -%lu,%lu +%lu,%lu @@ zurückgewiesen\n"
-#: ../svn/notify.c:577 ../svnbench/notify.c:470
+#: ../svn/notify.c:708 ../svnbench/notify.c:470
#, c-format
msgid "> hunk ## -%lu,%lu +%lu,%lu ## already applied (%s)\n"
msgstr "> Abschnitt ## -%lu,%lu +%lu,%lu ## bereits angewandt (%s)\n"
-#: ../svn/notify.c:587 ../svnbench/notify.c:480
+#: ../svn/notify.c:718 ../svnbench/notify.c:480
#, c-format
msgid "> hunk @@ -%lu,%lu +%lu,%lu @@ already applied\n"
msgstr "> Abschnitt @@ -%lu,%lu +%lu,%lu @@ bereits angewandt\n"
# Currently this is used for checkouts and switches too. If we
# want different output, we'll have to add new actions.
-#: ../svn/notify.c:644 ../svnbench/notify.c:542
+#: ../svn/notify.c:775 ../svnbench/notify.c:542
#, c-format
msgid ""
"\n"
@@ -10790,87 +12997,87 @@ msgstr ""
"\n"
"Hole externen Verweis nach »%s«:\n"
-#: ../svn/notify.c:668 ../svnbench/notify.c:568
+#: ../svn/notify.c:799 ../svnbench/notify.c:568
#, c-format
msgid "Error handling externals definition for '%s':"
msgstr "Fehler beim Umgang mit der Definition des externen Verweises für »%s«:"
-#: ../svn/notify.c:681 ../svnbench/notify.c:581
+#: ../svn/notify.c:812 ../svnbench/notify.c:581
#, c-format
msgid "Updating '%s':\n"
msgstr "Aktualisiere »%s«:\n"
-#: ../svn/notify.c:694 ../svnbench/notify.c:595
+#: ../svn/notify.c:825 ../svnbench/notify.c:595
#, c-format
msgid "Exported external at revision %ld.\n"
msgstr "Externer Verweis exportiert, Revision %ld.\n"
-#: ../svn/notify.c:695 ../svnbench/notify.c:596
+#: ../svn/notify.c:826 ../svnbench/notify.c:596
#, c-format
msgid "Exported revision %ld.\n"
msgstr "Exportiert, Revision %ld.\n"
-#: ../svn/notify.c:702 ../svnbench/notify.c:604
+#: ../svn/notify.c:833 ../svnbench/notify.c:604
#, c-format
msgid "Checked out external at revision %ld.\n"
msgstr "Externer Verweis ausgecheckt, Revision %ld.\n"
-#: ../svn/notify.c:703 ../svnbench/notify.c:605
+#: ../svn/notify.c:834 ../svnbench/notify.c:605
#, c-format
msgid "Checked out revision %ld.\n"
msgstr "Ausgecheckt, Revision %ld.\n"
-#: ../svn/notify.c:713 ../svnbench/notify.c:616
+#: ../svn/notify.c:844 ../svnbench/notify.c:616
#, c-format
msgid "Updated external to revision %ld.\n"
msgstr "Externer Verweis aktualisiert zu Revision %ld.\n"
-#: ../svn/notify.c:714 ../svnbench/notify.c:617
+#: ../svn/notify.c:845 ../svnbench/notify.c:617
#, c-format
msgid "Updated to revision %ld.\n"
msgstr "Aktualisiert zu Revision %ld.\n"
-#: ../svn/notify.c:721 ../svnbench/notify.c:625
+#: ../svn/notify.c:852 ../svnbench/notify.c:625
#, c-format
msgid "External at revision %ld.\n"
msgstr "Externer Verweis, Revision %ld.\n"
-#: ../svn/notify.c:722 ../svnbench/notify.c:626
+#: ../svn/notify.c:853 ../svnbench/notify.c:626
#, c-format
msgid "At revision %ld.\n"
msgstr "Revision %ld.\n"
-#: ../svn/notify.c:733 ../svnbench/notify.c:638
+#: ../svn/notify.c:864 ../svnbench/notify.c:638
#, c-format
msgid "External export complete.\n"
msgstr "Export des externen Verweises abgeschlossen.\n"
-#: ../svn/notify.c:734 ../svnbench/notify.c:639
+#: ../svn/notify.c:865 ../svnbench/notify.c:639
#, c-format
msgid "Export complete.\n"
msgstr "Export abgeschlossen.\n"
-#: ../svn/notify.c:740 ../svnbench/notify.c:646
+#: ../svn/notify.c:871 ../svnbench/notify.c:646
#, c-format
msgid "External checkout complete.\n"
msgstr "Auschecken des externen Verweises abgeschlossen.\n"
-#: ../svn/notify.c:741 ../svnbench/notify.c:647
+#: ../svn/notify.c:872 ../svnbench/notify.c:647
#, c-format
msgid "Checkout complete.\n"
msgstr "Auschecken abgeschlossen.\n"
-#: ../svn/notify.c:747 ../svnbench/notify.c:654
+#: ../svn/notify.c:878 ../svnbench/notify.c:654
#, c-format
msgid "External update complete.\n"
msgstr "Aktualisierung des externen Verweises abgeschlossen.\n"
-#: ../svn/notify.c:748 ../svnbench/notify.c:655
+#: ../svn/notify.c:879 ../svnbench/notify.c:655
#, c-format
msgid "Update complete.\n"
msgstr "Aktualisierung abgeschlossen.\n"
-#: ../svn/notify.c:762 ../svnbench/notify.c:671
+#: ../svn/notify.c:893 ../svnbench/notify.c:671
#, c-format
msgid ""
"\n"
@@ -10879,7 +13086,7 @@ msgstr ""
"\n"
"Hole Status des externen Verweises in »%s«:\n"
-#: ../svn/notify.c:768
+#: ../svn/notify.c:899
#, c-format
msgid ""
"\n"
@@ -10888,214 +13095,214 @@ msgstr ""
"\n"
"Hole Informationen des externen Verweises in »%s«:\n"
-#: ../svn/notify.c:775 ../svnbench/notify.c:679
+#: ../svn/notify.c:906 ../svnbench/notify.c:679
#, c-format
msgid "Status against revision: %6ld\n"
msgstr "Status bezogen auf Revision: %6ld\n"
-#: ../svn/notify.c:783 ../svnbench/notify.c:688
+#: ../svn/notify.c:914 ../svnbench/notify.c:688
#, c-format
msgid "Sending copy of %s\n"
msgstr "Sende Kopie von %s\n"
-#: ../svn/notify.c:784 ../svnbench/notify.c:689
+#: ../svn/notify.c:915 ../svnbench/notify.c:689
#, c-format
msgid "Sending %s\n"
msgstr "Sende %s\n"
-#: ../svn/notify.c:794 ../svnbench/notify.c:700
+#: ../svn/notify.c:925 ../svnbench/notify.c:700
#, c-format
msgid "Adding copy of (bin) %s\n"
msgstr "Füge Kopie hinzu (binär) %s\n"
-#: ../svn/notify.c:795 ../svnbench/notify.c:701
+#: ../svn/notify.c:926 ../svnbench/notify.c:701
#, c-format
msgid "Adding (bin) %s\n"
msgstr "Füge hinzu (binär) %s\n"
-#: ../svn/notify.c:802 ../svnbench/notify.c:709
+#: ../svn/notify.c:933 ../svnbench/notify.c:709
#, c-format
msgid "Adding copy of %s\n"
msgstr "Füge Kopie hinzu %s\n"
-#: ../svn/notify.c:803 ../svnbench/notify.c:710
+#: ../svn/notify.c:934 ../svnbench/notify.c:710
#, c-format
msgid "Adding %s\n"
msgstr "Füge hinzu %s\n"
-#: ../svn/notify.c:811 ../svnbench/notify.c:719
+#: ../svn/notify.c:942 ../svnbench/notify.c:719
#, c-format
msgid "Deleting copy of %s\n"
msgstr "Lösche Kopie von %s\n"
-#: ../svn/notify.c:812 ../svnbench/notify.c:720
+#: ../svn/notify.c:943 ../svnbench/notify.c:720
#, c-format
msgid "Deleting %s\n"
msgstr "Lösche %s\n"
-#: ../svn/notify.c:820 ../svnbench/notify.c:729
+#: ../svn/notify.c:951 ../svnbench/notify.c:729
#, c-format
msgid "Replacing copy of %s\n"
msgstr "Ersetze Kopie von %s\n"
-#: ../svn/notify.c:821 ../svnbench/notify.c:730
+#: ../svn/notify.c:952 ../svnbench/notify.c:730
#, c-format
msgid "Replacing %s\n"
msgstr "Ersetze %s\n"
-#: ../svn/notify.c:830 ../svnbench/notify.c:740 ../svnsync/sync.c:416
+#: ../svn/notify.c:961 ../svnbench/notify.c:740 ../svnsync/sync.c:416
#, c-format
msgid "Transmitting file data "
msgstr "Ãœbertrage Daten "
-#: ../svn/notify.c:837 ../svnadmin/svnadmin.c:2116 ../svnbench/notify.c:749
+#: ../svn/notify.c:968 ../svnadmin/svnadmin.c:2548 ../svnbench/notify.c:749
#, c-format
msgid "'%s' locked by user '%s'.\n"
msgstr "»%s« gesperrt durch »%s«.\n"
-#: ../svn/notify.c:842 ../svnbench/notify.c:755
+#: ../svn/notify.c:973 ../svnbench/notify.c:755
#, c-format
msgid "'%s' unlocked.\n"
msgstr "»%s« freigegeben.\n"
-#: ../svn/notify.c:866 ../svnbench/notify.c:782
+#: ../svn/notify.c:997 ../svnbench/notify.c:782
#, c-format
msgid "--- Merging differences between repository URLs into '%s':\n"
msgstr "-- Zusammenführen der Unterschiede zwischen Projektarchiv-URLs in »%s«:\n"
-#: ../svn/notify.c:871 ../svnbench/notify.c:787
+#: ../svn/notify.c:1002 ../svnbench/notify.c:787
#, c-format
msgid "--- Merging r%ld into '%s':\n"
msgstr "-- Zusammenführen von r%ld in »%s«:\n"
-#: ../svn/notify.c:875 ../svnbench/notify.c:791
+#: ../svn/notify.c:1006 ../svnbench/notify.c:791
#, c-format
msgid "--- Reverse-merging r%ld into '%s':\n"
msgstr "-- Rückwärtiges Zusammenführen von r%ld in »%s«:\n"
-#: ../svn/notify.c:879 ../svnbench/notify.c:795
+#: ../svn/notify.c:1010 ../svnbench/notify.c:795
#, c-format
msgid "--- Merging r%ld through r%ld into '%s':\n"
msgstr "-- Zusammenführen von r%ld bis r%ld in »%s«:\n"
-#: ../svn/notify.c:885 ../svnbench/notify.c:801
+#: ../svn/notify.c:1016 ../svnbench/notify.c:801
#, c-format
msgid "--- Reverse-merging r%ld through r%ld into '%s':\n"
msgstr "-- Rückwärtiges Zusammenführen von r%ld bis r%ld in »%s«:\n"
-#: ../svn/notify.c:895 ../svnbench/notify.c:813
+#: ../svn/notify.c:1026 ../svnbench/notify.c:813
#, c-format
msgid "--- Recording mergeinfo for merge between repository URLs into '%s':\n"
msgstr "-- Aufzeichnung der Informationen für Zusammenführung zwischen Projektarchiv-URLs in »%s«:\n"
-#: ../svn/notify.c:905 ../svnbench/notify.c:823
+#: ../svn/notify.c:1036 ../svnbench/notify.c:823
#, c-format
msgid "--- Recording mergeinfo for merge of r%ld into '%s':\n"
msgstr "-- Aufzeichnung der Informationen für Zusammenführung von r%ld in »%s«:\n"
-#: ../svn/notify.c:910 ../svnbench/notify.c:828
+#: ../svn/notify.c:1041 ../svnbench/notify.c:828
#, c-format
msgid "--- Recording mergeinfo for reverse merge of r%ld into '%s':\n"
msgstr "-- Aufzeichnung der Informationen für rückwärtiges Zusammenführen von r%ld in »%s«:\n"
-#: ../svn/notify.c:915 ../svnbench/notify.c:833
+#: ../svn/notify.c:1046 ../svnbench/notify.c:833
#, c-format
msgid "--- Recording mergeinfo for merge of r%ld through r%ld into '%s':\n"
msgstr "-- Aufzeichnung der Informationen für Zusammenführung von r%ld bis r%ld in »%s«:\n"
-#: ../svn/notify.c:920 ../svnbench/notify.c:838
+#: ../svn/notify.c:1051 ../svnbench/notify.c:838
#, c-format
msgid "--- Recording mergeinfo for reverse merge of r%ld through r%ld into '%s':\n"
msgstr "-- Aufzeichnung der Informationen für rückwärtiges Zusammenführen von r%ld bis r%ld in »%s«:\n"
-#: ../svn/notify.c:927 ../svnbench/notify.c:848
+#: ../svn/notify.c:1058 ../svnbench/notify.c:848
#, c-format
msgid "--- Eliding mergeinfo from '%s':\n"
msgstr "-- Entfernung der Zusammenführungsinformationen von »%s«:\n"
-#: ../svn/notify.c:934 ../svnbench/notify.c:856
+#: ../svn/notify.c:1065 ../svnbench/notify.c:856
#, c-format
msgid "--- Merging differences between foreign repository URLs into '%s':\n"
msgstr "-- Zusammenführen der Unterschiede zwischen fremden Projektarchiv-URLs in »%s«:\n"
-#: ../svn/notify.c:940 ../svnbench/notify.c:862
+#: ../svn/notify.c:1071 ../svnbench/notify.c:862
#, c-format
msgid "--- Merging (from foreign repository) r%ld into '%s':\n"
msgstr "-- Zusammenführen (aus fremden Projektarchiv) von r%ld in »%s«:\n"
-#: ../svn/notify.c:945 ../svnbench/notify.c:867
+#: ../svn/notify.c:1076 ../svnbench/notify.c:867
#, c-format
msgid "--- Reverse-merging (from foreign repository) r%ld into '%s':\n"
msgstr "-- Rückwärtiges Zusammenführen (aus fremden Projektarchiv) von r%ld in »%s«:\n"
-#: ../svn/notify.c:950 ../svnbench/notify.c:872
+#: ../svn/notify.c:1081 ../svnbench/notify.c:872
#, c-format
msgid "--- Merging (from foreign repository) r%ld through r%ld into '%s':\n"
msgstr "-- Zusammenführen (aus fremden Projektarchiv) von r%ld bis r%ld in »%s«:\n"
-#: ../svn/notify.c:956 ../svnbench/notify.c:878
+#: ../svn/notify.c:1087 ../svnbench/notify.c:878
#, c-format
msgid "--- Reverse-merging (from foreign repository) r%ld through r%ld into '%s':\n"
msgstr "-- Rückwärtiges Zusammenführen (aus fremden Projektarchiv) von r%ld bis r%ld in »%s«:\n"
-#: ../svn/notify.c:986 ../svnbench/notify.c:915
+#: ../svn/notify.c:1117 ../svnbench/notify.c:915
#, c-format
msgid "property '%s' set on '%s'\n"
msgstr "Eigenschaft »%s« für »%s« gesetzt\n"
-#: ../svn/notify.c:992 ../svnbench/notify.c:923
+#: ../svn/notify.c:1123 ../svnbench/notify.c:923
#, c-format
msgid "property '%s' deleted from '%s'.\n"
msgstr "Eigenschaft »%s« wurde von »%s« gelöscht.\n"
# TODO: Compare msgid "Attempted to open non-existent child node '%s'"
# (non-, vs. non; Attempted vs. Attempting)
-#: ../svn/notify.c:998 ../svnbench/notify.c:931
+#: ../svn/notify.c:1129 ../svnbench/notify.c:931
#, c-format
msgid "Attempting to delete nonexistent property '%s' on '%s'\n"
msgstr "Versuchte, nicht existierende Eigenschaft »%s« von »%s« zu löschen\n"
-#: ../svn/notify.c:1005 ../svnbench/notify.c:940
+#: ../svn/notify.c:1136 ../svnbench/notify.c:940
#, c-format
msgid "property '%s' set on repository revision %ld\n"
msgstr "Eigenschaft »%s« wurde für Revision %ld im Projektarchiv gesetzt\n"
-#: ../svn/notify.c:1011 ../svnbench/notify.c:948
+#: ../svn/notify.c:1142 ../svnbench/notify.c:948
#, c-format
msgid "property '%s' deleted from repository revision %ld\n"
msgstr "Eigenschaft »%s« wurde von Revision %ld im Projektarchiv gelöscht\n"
-#: ../svn/notify.c:1016 ../svnbench/notify.c:955
+#: ../svn/notify.c:1147 ../svnbench/notify.c:955
#, c-format
msgid "Upgraded '%s'\n"
msgstr "In neues Format gebracht: »%s«\n"
-#: ../svn/notify.c:1020 ../svnbench/notify.c:961
+#: ../svn/notify.c:1151 ../svnbench/notify.c:961
#, c-format
msgid "Redirecting to URL '%s':\n"
msgstr "Umleitung zur URL »%s«:\n"
-#: ../svn/notify.c:1044
+#: ../svn/notify.c:1175
#, c-format
msgid "--- Copying from foreign repository URL '%s':\n"
msgstr "-- Kopieren aus fremdem Projektarchiv bei URL »%s«:\n"
-#: ../svn/notify.c:1051
+#: ../svn/notify.c:1182
#, c-format
msgid "Breaking move with source path '%s'\n"
msgstr "Zertrennung der Verschiebeoperation mit Quellpfad »%s«\n"
-#: ../svn/notify.c:1057
+#: ../svn/notify.c:1188
#, c-format
msgid "Performing cleanup on external item at '%s'.\n"
msgstr "Räume externen Verweis »%s« auf.\n"
-#: ../svn/notify.c:1064
+#: ../svn/notify.c:1195
#, c-format
msgid "done\n"
msgstr "erledigt\n"
-#: ../svn/notify.c:1066
+#: ../svn/notify.c:1197
#, c-format
msgid "Committing transaction...\n"
msgstr "Ãœbertrage Transaktion...\n"
@@ -11148,8 +13355,8 @@ msgid "Error writing to stream"
msgstr "Fehler beim Schreiben in Datenstrom"
#: ../svn/propget-cmd.c:187 ../svn/proplist-cmd.c:156
-#: ../svn/proplist-cmd.c:160 ../svnlook/svnlook.c:1769
-#: ../svnlook/svnlook.c:1923
+#: ../svn/proplist-cmd.c:160 ../svnlook/svnlook.c:1777
+#: ../svnlook/svnlook.c:1932
#, c-format
msgid ""
"Inherited properties on '%s',\n"
@@ -11160,7 +13367,7 @@ msgstr ""
#. Not a --revprop
#: ../svn/propget-cmd.c:197 ../svn/proplist-cmd.c:175
-#: ../svnlook/svnlook.c:1804 ../svnlook/svnlook.c:1958
+#: ../svnlook/svnlook.c:1812 ../svnlook/svnlook.c:1967
#, c-format
msgid "Properties on '%s':\n"
msgstr "Eigenschaften von »%s«:\n"
@@ -11169,20 +13376,20 @@ msgstr "Eigenschaften von »%s«:\n"
msgid "--verbose cannot be used with --revprop or --no-newline or --xml"
msgstr "»--verbose« kann nicht mit »--revprop«, »--no-newline« oder »--xml« verwendet werden"
-#: ../svn/propget-cmd.c:360 ../svn/proplist-cmd.c:214
+#: ../svn/propget-cmd.c:359 ../svn/proplist-cmd.c:214
msgid "--show-inherited-props can't be used with --revprop"
msgstr "»--show-inherited-props« kann nicht mit »--revprop« verwendet werden"
-#: ../svn/propget-cmd.c:373
+#: ../svn/propget-cmd.c:372
#, c-format
msgid "Property '%s' not found on revision %s"
msgstr "Eigenschaft »%s« wurde in Revision %s nicht gefunden"
-#: ../svn/propget-cmd.c:438
+#: ../svn/propget-cmd.c:437
msgid "--no-newline is only available for single-target, non-recursive propget operations"
msgstr "Die Option »--no-newline« ist nur für einzelne Ziele und nicht-rekursive Propget-Operationen verfügbar"
-#: ../svn/propget-cmd.c:493
+#: ../svn/propget-cmd.c:492
#, c-format
msgid "Property '%s' not found on '%s'"
msgstr "Eigenschaft »%s« von »%s« nicht gefunden"
@@ -11276,22 +13483,172 @@ msgstr "Beim Setzen der versionierten Eigenschaft »%s« darf keine Revision ang
msgid "Explicit target required ('%s' interpreted as prop value)"
msgstr "Explizites Ziel erforderlich (»%s« als Eigenschaftswert interpretiert)"
-#: ../svn/resolve-cmd.c:79
+#: ../svn/resolve-cmd.c:158
+msgid "Failure occurred resolving one or more conflicts"
+msgstr "Fehler bei der Auflösung einer oder mehrerer Konflikte"
+
+#: ../svn/resolve-cmd.c:198
msgid "missing --accept option"
msgstr "fehlende Option --accept"
-#: ../svn/resolve-cmd.c:84
+#: ../svn/resolve-cmd.c:205
msgid "invalid 'accept' ARG"
msgstr "ungültiger Parameter »accept«"
-#: ../svn/resolve-cmd.c:127
-msgid "Failure occurred resolving one or more conflicts"
-msgstr "Fehler bei der Auflösung einer oder mehrerer Konflikte"
-
-#: ../svn/revert-cmd.c:80
+#: ../svn/revert-cmd.c:81
msgid "Try 'svn revert --depth infinity' instead?"
msgstr "Versuchen Sie »svn revert --depth infinity« stattdessen?"
+#: ../svn/shelf-cmd.c:123
+#, fuzzy
+msgid "All targets must be in the same WC"
+msgstr "Alle nicht-relativen Ziele müssen die selbe Wurzel-URL haben"
+
+#: ../svn/shelf-cmd.c:141
+#, c-format
+msgid "%d days"
+msgstr ""
+
+#: ../svn/shelf-cmd.c:143
+#, c-format
+msgid "%d hours"
+msgstr ""
+
+#: ../svn/shelf-cmd.c:145
+#, c-format
+msgid "%d minutes"
+msgstr ""
+
+#: ../svn/shelf-cmd.c:174
+#, fuzzy, c-format
+msgid "Could not run external command '%s'"
+msgstr "Kann Anweisung »%s« nicht zerlegen"
+
+#: ../svn/shelf-cmd.c:263
+#, fuzzy, c-format
+msgid "version %d"
+msgstr "meine Version"
+
+#: ../svn/shelf-cmd.c:266
+#, fuzzy, c-format
+msgid "version %d of %d"
+msgstr "Nicht versionierte Datei%s"
+
+#: ../svn/shelf-cmd.c:272
+#, c-format
+msgid ", %d paths changed"
+msgstr ""
+
+#: ../svn/shelf-cmd.c:274
+#, fuzzy, c-format
+msgid "%s, %s ago%s\n"
+msgstr "%s, %s %s"
+
+#: ../svn/shelf-cmd.c:289
+#, c-format
+msgid " %.50s\n"
+msgstr ""
+
+#: ../svn/shelf-cmd.c:390
+#, fuzzy
+msgid "No shelves found"
+msgstr "Kein Editor gefunden."
+
+#: ../svn/shelf-cmd.c:542
+#, fuzzy, c-format
+msgid "--- Save a new version of '%s' in WC root '%s'\n"
+msgstr "Sperren schlug fehl: eine neuere Version von »%s« existiert"
+
+#: ../svn/shelf-cmd.c:543
+#, c-format
+msgid "--- Shelve '%s' in WC root '%s'\n"
+msgstr ""
+
+#: ../svn/shelf-cmd.c:550
+msgid "--- Modifications to save:\n"
+msgstr ""
+
+#: ../svn/shelf-cmd.c:551
+msgid "--- Modifications to shelve:\n"
+msgstr ""
+
+#: ../svn/shelf-cmd.c:564
+#, fuzzy, c-format
+msgid "No local modifications found"
+msgstr "Lokale Änderungen in »%s« belassen\n"
+
+#: ../svn/shelf-cmd.c:569
+#, fuzzy, c-format
+msgid "--- Saving...\n"
+msgstr "--- Zusammenführung\n"
+
+#: ../svn/shelf-cmd.c:570
+#, fuzzy, c-format
+msgid "--- Shelving...\n"
+msgstr "--- Zusammenführung\n"
+
+#: ../svn/shelf-cmd.c:578
+#, fuzzy, c-format
+msgid "None of the local modifications could be saved"
+msgstr "Lokale Änderungen in »%s« belassen\n"
+
+#: ../svn/shelf-cmd.c:579
+#, fuzzy, c-format
+msgid "None of the local modifications could be shelved"
+msgstr "Lokale Änderungen in »%s« belassen\n"
+
+#: ../svn/shelf-cmd.c:648
+msgid "--- Paths modified in shelf and in WC:\n"
+msgstr ""
+
+#: ../svn/shelf-cmd.c:678
+msgid "Cannot unshelve/restore, as at least one path is modified in shelf and in WC"
+msgstr ""
+
+#: ../svn/shelf-cmd.c:743
+#, c-format
+msgid "--- Unshelve '%s' in WC root '%s'\n"
+msgstr ""
+
+#: ../svn/shelf-cmd.c:768
+msgid "Unshelve/restore failed due to conflicts"
+msgstr ""
+
+#: ../svn/shelf-cmd.c:781
+#, c-format
+msgid "restored '%s' version %d and deleted %d newer versions\n"
+msgstr ""
+
+#: ../svn/shelf-cmd.c:785
+#, c-format
+msgid "restored '%s' version %d (the newest version)\n"
+msgstr ""
+
+#: ../svn/shelf-cmd.c:842
+#, fuzzy, c-format
+msgid "deleted '%s'\n"
+msgstr "Rückgängig gemacht: »%s«\n"
+
+#: ../svn/shelf-cmd.c:942
+#, fuzzy, c-format
+msgid "saved '%s' version %d\n"
+msgstr " »%s« auf r%ld aktualisiert.\n"
+
+#: ../svn/shelf-cmd.c:946
+#, fuzzy, c-format
+msgid "shelved '%s' version %d\n"
+msgstr "Ausgecheckt, Revision %ld.\n"
+
+#: ../svn/shelf-cmd.c:977
+#, c-format
+msgid "unshelving the youngest shelf, '%s'\n"
+msgstr ""
+
+#: ../svn/shelf-cmd.c:987 ../svn/shelf-cmd.c:1155 ../svn/shelf-cmd.c:1203
+#: ../svnadmin/svnadmin.c:766
+msgid "Too many arguments"
+msgstr "Zu viele Parameter"
+
#: ../svn/status-cmd.c:97
#, c-format
msgid " Text conflicts: %u\n"
@@ -11320,17 +13677,17 @@ msgstr ""
"\n"
"--- Änderungsliste »%s«:\n"
-#: ../svn/status.c:316
+#: ../svn/status.c:315
#, c-format
msgid "swapped places with %s"
msgstr "Platz mit %s vertauscht"
-#: ../svn/status.c:331
+#: ../svn/status.c:330
#, c-format
msgid "moved from %s"
msgstr "Verschoben von %s"
-#: ../svn/status.c:343
+#: ../svn/status.c:342
#, c-format
msgid "moved to %s"
msgstr "Verschoben nach %s"
@@ -11343,12 +13700,12 @@ msgstr "Durchführung des Befehls erzwingen"
msgid "force validity of log message source"
msgstr "Gültigkeit der Quelle für die Logmeldung erzwingen"
-#: ../svn/svn.c:162 ../svn/svn.c:163 ../svnadmin/svnadmin.c:227
-#: ../svnadmin/svnadmin.c:230 ../svnbench/svnbench.c:85
-#: ../svnbench/svnbench.c:86 ../svndumpfilter/svndumpfilter.c:977
-#: ../svndumpfilter/svndumpfilter.c:980 ../svnfsfs/svnfsfs.c:129
-#: ../svnfsfs/svnfsfs.c:132 ../svnlook/svnlook.c:115 ../svnlook/svnlook.c:127
-#: ../svnsync/svnsync.c:275 ../svnsync/svnsync.c:277
+#: ../svn/svn.c:162 ../svn/svn.c:163 ../svnadmin/svnadmin.c:168
+#: ../svnadmin/svnadmin.c:171 ../svnbench/svnbench.c:83
+#: ../svnbench/svnbench.c:84 ../svndumpfilter/svndumpfilter.c:944
+#: ../svndumpfilter/svndumpfilter.c:947 ../svnfsfs/svnfsfs.c:89
+#: ../svnfsfs/svnfsfs.c:92 ../svnlook/svnlook.c:115 ../svnlook/svnlook.c:127
+#: ../svnsync/svnsync.c:289 ../svnsync/svnsync.c:291
msgid "show help on a subcommand"
msgstr "zeige Hilfe zu einem Unterbefehl"
@@ -11356,23 +13713,23 @@ msgstr "zeige Hilfe zu einem Unterbefehl"
msgid "specify log message ARG"
msgstr "PAR als Logmeldung verwenden"
-#: ../svn/svn.c:165 ../svnbench/svnbench.c:87
+#: ../svn/svn.c:165 ../svnbench/svnbench.c:85
msgid "print nothing, or only summary information"
msgstr "nichts oder nur Zusammenfassungen ausgeben"
-#: ../svn/svn.c:166 ../svnbench/svnbench.c:88
+#: ../svn/svn.c:166 ../svnbench/svnbench.c:86
msgid "descend recursively, same as --depth=infinity"
msgstr ""
"rekursiv absteigen, das gleiche wie\n"
" --depth=infinity"
-#: ../svn/svn.c:167 ../svnbench/svnbench.c:89
+#: ../svn/svn.c:167 ../svnbench/svnbench.c:87
msgid "obsolete; try --depth=files or --depth=immediates"
msgstr ""
"veraltet; versuchen Sie --depth=files oder\n"
" --depth=immediates"
-#: ../svn/svn.c:169 ../svnbench/svnbench.c:91
+#: ../svn/svn.c:169 ../svnbench/svnbench.c:89
msgid ""
"the change made by revision ARG (like -r ARG-1:ARG)\n"
" If ARG is negative this is like -r ARG:ARG-1\n"
@@ -11384,7 +13741,7 @@ msgstr ""
" Falls PAR die Form PAR1-PAR2 hat, dann wie\n"
" PAR1:PAR2, wobei PAR1 eingeschlossen ist"
-#: ../svn/svn.c:177 ../svnbench/svnbench.c:99
+#: ../svn/svn.c:177 ../svnbench/svnbench.c:97
msgid ""
"ARG (some commands also take ARG1:ARG2 range)\n"
" A revision argument can be one of:\n"
@@ -11420,15 +13777,15 @@ msgstr ""
"Wert behandeln, als sei er in der Zeichenkodierung\n"
" PAR"
-#: ../svn/svn.c:197 ../svnadmin/svnadmin.c:233 ../svnbench/svnbench.c:114
-#: ../svndumpfilter/svndumpfilter.c:983 ../svnfsfs/svnfsfs.c:135
-#: ../svnlook/svnlook.c:172 ../svnrdump/svnrdump.c:158
-#: ../svnserve/svnserve.c:378 ../svnsync/svnsync.c:273
+#: ../svn/svn.c:197 ../svnadmin/svnadmin.c:174 ../svnbench/svnbench.c:112
+#: ../svndumpfilter/svndumpfilter.c:950 ../svnfsfs/svnfsfs.c:95
+#: ../svnlook/svnlook.c:179 ../svnrdump/svnrdump.c:140
+#: ../svnserve/svnserve.c:419 ../svnsync/svnsync.c:287
#: ../svnversion/svnversion.c:144
msgid "show program version information"
msgstr "Zeige Versionsinformationen des Programms"
-#: ../svn/svn.c:198 ../svnbench/svnbench.c:115
+#: ../svn/svn.c:198 ../svnbench/svnbench.c:113
msgid "print extra information"
msgstr "zusätzliche Informationen ausgeben"
@@ -11436,7 +13793,7 @@ msgstr "zusätzliche Informationen ausgeben"
msgid "display update information"
msgstr "Aktualisierungsinformation ausgeben"
-#: ../svn/svn.c:200 ../svnbench/svnbench.c:116 ../svnrdump/svnrdump.c:142
+#: ../svn/svn.c:200 ../svnbench/svnbench.c:114 ../svnrdump/svnrdump.c:122
msgid "specify a username ARG"
msgstr "Benutzername PAR angeben"
@@ -11448,7 +13805,11 @@ msgstr ""
"gibt ein Passwort PAR an (Vorsicht: Auf vielen Betriebssystemen\n"
" ist dies für andere Benutzer sichtbar)"
-#: ../svn/svn.c:206
+#: ../svn/svn.c:207 ../svnbench/svnbench.c:117 ../svnrdump/svnrdump.c:126
+msgid "read password from stdin"
+msgstr ""
+
+#: ../svn/svn.c:209
msgid ""
"Specify differencing options for external diff or\n"
" internal diff or blame. Default: '-u'. Options are\n"
@@ -11479,13 +13840,13 @@ msgstr ""
" -p (--show-c-function):\n"
" Zeigt C-Funktionsname in Diff-Ausgabe."
-#: ../svn/svn.c:226 ../svnbench/svnbench.c:119
+#: ../svn/svn.c:229 ../svnbench/svnbench.c:119
msgid "pass contents of file ARG as additional args"
msgstr ""
"Inhalt der Datei PAR als zusätzliche Parameter\n"
" übergeben"
-#: ../svn/svn.c:228 ../svnbench/svnbench.c:121
+#: ../svn/svn.c:231 ../svnbench/svnbench.c:121
msgid ""
"limit operation by depth ARG ('empty', 'files',\n"
" 'immediates', or 'infinity')"
@@ -11493,7 +13854,7 @@ msgstr ""
"begrenzt Operation auf Tiefe PAR (»empty«, »files«,\n"
" »immediates« oder »infinity«)"
-#: ../svn/svn.c:232
+#: ../svn/svn.c:235
msgid ""
"set new working copy depth to ARG ('exclude',\n"
" 'empty', 'files', 'immediates', or 'infinity')"
@@ -11501,19 +13862,19 @@ msgstr ""
"setzt eine neue Tiefe PAR der Arbeitskopie (»exclude«,\n"
" »empty«, »files«, »immediates« oder »infinity«)"
-#: ../svn/svn.c:235 ../svnlook/svnlook.c:175
+#: ../svn/svn.c:238 ../svnlook/svnlook.c:182
msgid "output in XML"
msgstr "gibt XML aus"
-#: ../svn/svn.c:236
+#: ../svn/svn.c:239
msgid "DEPRECATED"
msgstr "VERALTET"
-#: ../svn/svn.c:238 ../svnbench/svnbench.c:126
+#: ../svn/svn.c:241 ../svnbench/svnbench.c:126
msgid "do not cross copies while traversing history"
msgstr "beendet Log-Ausgabe bei Kopieroperationen"
-#: ../svn/svn.c:240
+#: ../svn/svn.c:243
msgid ""
"disregard default and svn:ignore and\n"
" svn:global-ignores property ignores"
@@ -11521,64 +13882,30 @@ msgstr ""
"ignoriert Einstellungen aus »global-ignores« und den\n"
" Eigenschaften »svn:ignore« und »svn:global-ignores«"
-#: ../svn/svn.c:244 ../svnbench/svnbench.c:128 ../svnrdump/svnrdump.c:154
-#: ../svnsync/svnsync.c:197
+#: ../svn/svn.c:247 ../svnbench/svnbench.c:128 ../svnrdump/svnrdump.c:136
+#: ../svnsync/svnsync.c:203
msgid "do not cache authentication tokens"
msgstr "Anmeldeinformationen nicht zwischenspeichern"
-#: ../svn/svn.c:246 ../svnbench/svnbench.c:130 ../svnrdump/svnrdump.c:168
-#: ../svnsync/svnsync.c:207
-msgid "deprecated; same as --trust-unknown-ca"
-msgstr "Veraltet; identisch mit --trust-unknown-ca"
-
-#: ../svn/svn.c:248 ../svnbench/svnbench.c:132 ../svnrdump/svnrdump.c:170
-#: ../svnsync/svnsync.c:209
-msgid ""
-"with --non-interactive, accept SSL server\n"
-" certificates from unknown certificate authorities"
-msgstr ""
-"mit --non-interactive, akzeptiert SSL Server-Zertifikate\n"
-" von unbekannten Zertifizierungsstellen"
-
-#: ../svn/svn.c:252 ../svnbench/svnbench.c:136 ../svnrdump/svnrdump.c:174
-#: ../svnsync/svnsync.c:213
-msgid ""
-"with --non-interactive, accept SSL server\n"
-" certificates even if the server hostname does not\n"
-" match the certificate's common name attribute"
-msgstr ""
-"mit --non-interactive, akzeptiert SSL Server-Zertifikate\n"
-" auch falls der Hostname nicht mit dem Common\n"
-" Name Attribut im Zertifikat übereinstimmt"
-
-#: ../svn/svn.c:258 ../svnbench/svnbench.c:142 ../svnrdump/svnrdump.c:180
-#: ../svnsync/svnsync.c:219
-msgid ""
-"with --non-interactive, accept expired SSL server\n"
-" certificates"
-msgstr ""
-"mit --non-interactive, akzeptiert SSL Server-Zertifikate\n"
-" die abgelaufen sind"
-
-#: ../svn/svn.c:262 ../svnbench/svnbench.c:146 ../svnrdump/svnrdump.c:184
-#: ../svnsync/svnsync.c:223
+#: ../svn/svn.c:249 ../svnbench/svnbench.c:130 ../svnrdump/svnrdump.c:150
+#, fuzzy
msgid ""
-"with --non-interactive, accept SSL server\n"
-" certificates from the future"
-msgstr ""
-"mit --non-interactive, akzeptiert SSL Server-Zertifikate\n"
-" die noch nicht gültig sind"
+"deprecated; same as\n"
+" --trust-server-cert-failures=unknown-ca"
+msgstr "Veraltet; identisch mit --trust-unknown-ca"
-#: ../svn/svn.c:266 ../svnbench/svnbench.c:150 ../svnrdump/svnrdump.c:188
-#: ../svnsync/svnsync.c:227
+#: ../svn/svn.c:253 ../svnbench/svnbench.c:134 ../svnrdump/svnrdump.c:154
msgid ""
"with --non-interactive, accept SSL server\n"
-" certificates with failures other than the above"
+" certificates with failures; ARG is comma-separated\n"
+" list of 'unknown-ca' (Unknown Authority),\n"
+" 'cn-mismatch' (Hostname mismatch), 'expired'\n"
+" (Expired certificate), 'not-yet-valid' (Not yet\n"
+" valid certificate) and 'other' (all other not\n"
+" separately classified certificate errors)."
msgstr ""
-"mit --non-interactive, akzeptiert SSL Server-Zertifikate\n"
-" mit anderen als den vorherigen Fehlern"
-#: ../svn/svn.c:270 ../svnrdump/svnrdump.c:146 ../svnsync/svnsync.c:189
+#: ../svn/svn.c:267 ../svnrdump/svnrdump.c:128 ../svnsync/svnsync.c:195
msgid ""
"do no interactive prompting (default is to prompt\n"
" only if standard input is a terminal device)"
@@ -11586,7 +13913,7 @@ msgstr ""
"verhindert interaktive Nachfragen (Standard sind Nachfragen\n"
" nur wenn die Standardeingabe ein Terminal ist)"
-#: ../svn/svn.c:274 ../svnrdump/svnrdump.c:150 ../svnsync/svnsync.c:193
+#: ../svn/svn.c:271 ../svnrdump/svnrdump.c:132 ../svnsync/svnsync.c:199
msgid ""
"do interactive prompting even if standard input\n"
" is not a terminal device"
@@ -11594,57 +13921,57 @@ msgstr ""
"erzwingt interaktive Nachfragen auch wenn die\n"
" Standardeingabe kein Terminal ist"
-#: ../svn/svn.c:278
+#: ../svn/svn.c:275
msgid "try operation but make no changes"
msgstr "Operation testen, aber keine Änderungen durchführen"
-#: ../svn/svn.c:280
+#: ../svn/svn.c:277
msgid "disable merge tracking; diff nodes as if related"
msgstr "deaktiviert Zusammenführungsverfolgung; erzeugt Unterschiede als ob Knoten verwandt wären"
-#: ../svn/svn.c:282
+#: ../svn/svn.c:279
msgid "ignore externals definitions"
msgstr "»svn:externals«-Definitionen ignorieren"
-#: ../svn/svn.c:283
+#: ../svn/svn.c:280
msgid "use ARG as merge command"
msgstr "PAR als Konflikteditor verwenden"
-#: ../svn/svn.c:284
+#: ../svn/svn.c:281
msgid "use ARG as external editor"
msgstr "PAR als externen Editor verwenden"
-#: ../svn/svn.c:286
+#: ../svn/svn.c:283
msgid "merge only mergeinfo differences"
msgstr "Führt nur Unterschiede in den Zusammenführungsinformationen zusammen"
-#: ../svn/svn.c:287
+#: ../svn/svn.c:284
msgid "use ARG as the older target"
msgstr "PAR als älteres Ziel verwenden"
-#: ../svn/svn.c:288
+#: ../svn/svn.c:285
msgid "use ARG as the newer target"
msgstr "PAR als neueres Ziel verwenden"
-#: ../svn/svn.c:290
+#: ../svn/svn.c:287
msgid "operate on a revision property (use with -r)"
msgstr ""
"auf einer Revisionseigenschaft arbeiten (mit -r\n"
" verwenden)"
-#: ../svn/svn.c:291
+#: ../svn/svn.c:288
msgid "relocate via URL-rewriting"
msgstr "durch Umschreiben der URL umplatzieren"
-#: ../svn/svn.c:293 ../svnadmin/svnadmin.c:280 ../svnbench/svnbench.c:156
-#: ../svnrdump/svnrdump.c:140 ../svnsync/svnsync.c:239
+#: ../svn/svn.c:290 ../svnadmin/svnadmin.c:221 ../svnbench/svnbench.c:150
+#: ../svnrdump/svnrdump.c:120 ../svnsync/svnsync.c:253
msgid "read user configuration files from directory ARG"
msgstr ""
"Benutzerkonfigurationsdateien aus dem Verzeichnis\n"
" PAR lesen"
-#: ../svn/svn.c:295 ../svnbench/svnbench.c:158 ../svnrdump/svnrdump.c:160
-#: ../svnsync/svnsync.c:241
+#: ../svn/svn.c:292 ../svnbench/svnbench.c:152 ../svnrdump/svnrdump.c:142
+#: ../svnsync/svnsync.c:255
msgid ""
"set user configuration option in the format:\n"
" FILE:SECTION:OPTION=[VALUE]\n"
@@ -11656,15 +13983,15 @@ msgstr ""
" Zum Beispiel:\n"
" servers:global:http-library=serf"
-#: ../svn/svn.c:302
+#: ../svn/svn.c:299
msgid "enable automatic properties"
msgstr "automatische Eigenschaften einschalten"
-#: ../svn/svn.c:303
+#: ../svn/svn.c:300
msgid "disable automatic properties"
msgstr "automatische Eigenschaften ausschalten"
-#: ../svn/svn.c:305
+#: ../svn/svn.c:302
msgid ""
"use a different EOL marker than the standard\n"
" system marker for files with the svn:eol-style\n"
@@ -11676,40 +14003,40 @@ msgstr ""
" »svn:eol-style native«.\n"
" PAR kann »LF«, »CR« oder »CRLF« sein."
-#: ../svn/svn.c:312 ../svnbench/svnbench.c:165
+#: ../svn/svn.c:309 ../svnbench/svnbench.c:159
msgid "maximum number of log entries"
msgstr "maximale Anzahl Logeinträge"
-#: ../svn/svn.c:313
+#: ../svn/svn.c:310
msgid "don't unlock the targets"
msgstr "Ziele nicht freigeben"
# CHECKME
-#: ../svn/svn.c:314
+#: ../svn/svn.c:311
msgid "remove changelist association"
msgstr "Bezug zur Änderungsliste entfernen"
-#: ../svn/svn.c:316
+#: ../svn/svn.c:313
msgid "operate only on members of changelist ARG"
msgstr "nur auf Elementen der Änderungsliste PAR operieren"
-#: ../svn/svn.c:318
+#: ../svn/svn.c:315
msgid "don't delete changelists after commit"
msgstr "Änderungslisten nach Übertragung nicht löschen"
-#: ../svn/svn.c:319
+#: ../svn/svn.c:316
msgid "keep path in working copy"
msgstr "Pfad in Arbeitskopie beibehalten"
-#: ../svn/svn.c:321 ../svnbench/svnbench.c:167
+#: ../svn/svn.c:318 ../svnbench/svnbench.c:161
msgid "retrieve all revision properties"
msgstr "alle Revisionseigenschaften abfragen"
-#: ../svn/svn.c:323 ../svnbench/svnbench.c:169
+#: ../svn/svn.c:320 ../svnbench/svnbench.c:163
msgid "retrieve no revision properties"
msgstr "keine Revisionseigenschaften abfragen"
-#: ../svn/svn.c:325 ../svnbench/svnbench.c:171
+#: ../svn/svn.c:322 ../svnbench/svnbench.c:165
msgid ""
"set revision property ARG in new revision\n"
" using the name[=value] format"
@@ -11717,11 +14044,11 @@ msgstr ""
"Revisionseigenschaft PAR in neuer Revision\n"
" unter Verwendung des Formats name[=Wert] setzen"
-#: ../svn/svn.c:328
+#: ../svn/svn.c:325
msgid "make intermediate directories"
msgstr "Zwischenverzeichnisse erzeugen"
-#: ../svn/svn.c:330 ../svnbench/svnbench.c:175
+#: ../svn/svn.c:327 ../svnbench/svnbench.c:169
msgid ""
"use/display additional information from merge\n"
" history"
@@ -11729,13 +14056,14 @@ msgstr ""
"verwendet und zeigt zusätzliche Informationen aus der\n"
" Zusammenführungsgeschichte an"
-#: ../svn/svn.c:334
+#: ../svn/svn.c:331
+#, fuzzy
msgid ""
"specify automatic conflict resolution action\n"
" ('postpone', 'working', 'base', 'mine-conflict',\n"
" 'theirs-conflict', 'mine-full', 'theirs-full',\n"
-" 'edit', 'launch')\n"
-" (shorthand: 'p', 'mc', 'tc', 'mf', 'tf', 'e', 'l')"
+" 'edit', 'launch', 'recommended') (shorthand:\n"
+" 'p', 'mc', 'tc', 'mf', 'tf', 'e', 'l', 'r')"
msgstr ""
"automatische Konfliktauflösungsaktion angeben\n"
" (»postpone«, »working«, »base«, »mine-conflict«,\n"
@@ -11743,7 +14071,7 @@ msgstr ""
" »edit«, »launch«)\n"
" (kurz: »p«, »mc«, »tc«, »mf«, »tf«, »e«, »l«)"
-#: ../svn/svn.c:345
+#: ../svn/svn.c:342
msgid ""
"specify which collection of revisions to display\n"
" ('merged', 'eligible')"
@@ -11751,11 +14079,11 @@ msgstr ""
"gibt anzuzeigende Menge der Revisionen an\n"
" (»merged«, »eligible«)"
-#: ../svn/svn.c:349
+#: ../svn/svn.c:346
msgid "deprecated"
msgstr "veraltet"
-#: ../svn/svn.c:351
+#: ../svn/svn.c:348
msgid ""
"number of leading path components to strip from\n"
" paths parsed from the patch file. --strip 0\n"
@@ -11774,65 +14102,65 @@ msgstr ""
" Das erwartete Trennzeichen für Pfadkomponenten ist »/« auf\n"
" allen Plattformen. Ein einleitendes »/« zählt als eine Komponente."
-#: ../svn/svn.c:367
+#: ../svn/svn.c:364
msgid "don't expand keywords"
msgstr "Schlüsselwörter nicht expandieren"
-#: ../svn/svn.c:369
+#: ../svn/svn.c:366
msgid "apply the unidiff in reverse"
msgstr "Wendet Unidiff rückwärts an"
-#: ../svn/svn.c:371
+#: ../svn/svn.c:368
msgid "ignore whitespace during pattern matching"
msgstr "Ignoriert während des Mustervergleichs Leerzeichen, Tabulatoren und andere nicht druckbare Zeichen"
-#: ../svn/svn.c:372
+#: ../svn/svn.c:369
msgid "produce diff output"
msgstr "Erzeugt Ausgabe von Unterschieden"
#. maps to show_diff
#. diff options
-#: ../svn/svn.c:374 ../svnlook/svnlook.c:139
+#: ../svn/svn.c:371 ../svnlook/svnlook.c:139
msgid "use ARG as diff command"
msgstr "PAR als Vergleichsprogramm verwenden"
-#: ../svn/svn.c:376
+#: ../svn/svn.c:373
msgid "override diff-cmd specified in config file"
msgstr "Setzt in den Einstellungen angegebenes »diff-cmd« außer Kraft"
-#: ../svn/svn.c:378 ../svnlook/svnlook.c:133
+#: ../svn/svn.c:375 ../svnlook/svnlook.c:133
msgid "do not print differences for added files"
msgstr "Keine Unterschiede für hinzugefügte Dateien ausgeben"
-#: ../svn/svn.c:380 ../svnlook/svnlook.c:136
+#: ../svn/svn.c:377 ../svnlook/svnlook.c:136
msgid "do not print differences for deleted files"
msgstr "keine Unterschiede für gelöschte Dateien ausgeben"
-#: ../svn/svn.c:382
+#: ../svn/svn.c:379
msgid "don't diff copied or moved files with their source"
msgstr "Gibt kopierte oder verschobene Dateien nicht als Unterschied zu ihrer Quelle aus"
-#: ../svn/svn.c:384
+#: ../svn/svn.c:381
msgid "diff unrelated nodes as delete and add"
msgstr "Gibt nicht verwandte Knoten als Löschungen und Hinzufügung aus"
-#: ../svn/svn.c:385
+#: ../svn/svn.c:382
msgid "show a summary of the results"
msgstr "Zeige eine Zusammenfassung der Ergebnisse"
-#: ../svn/svn.c:387
+#: ../svn/svn.c:384
msgid "use git's extended diff format"
msgstr "Erweitertes Format von git verwenden"
-#: ../svn/svn.c:389 ../svnlook/svnlook.c:142
+#: ../svn/svn.c:386 ../svnlook/svnlook.c:142
msgid "ignore properties during the operation"
msgstr "Während des Vorgangs Eigenschaften ignorieren"
-#: ../svn/svn.c:391 ../svnlook/svnlook.c:145
+#: ../svn/svn.c:388 ../svnlook/svnlook.c:145
msgid "show only properties during the operation"
msgstr "Während des Vorgangs nur Eigenschaften anzeigen"
-#: ../svn/svn.c:393
+#: ../svn/svn.c:390
msgid ""
"generate diff suitable for generic third-party\n"
" patch tools; currently the same as\n"
@@ -11842,7 +14170,7 @@ msgstr ""
" Werkzeuge von Drittanbietern eignen; momentan identisch\n"
" mit --show-copies-as-adds --ignore-properties"
-#: ../svn/svn.c:401
+#: ../svn/svn.c:398
msgid ""
"Allow operation on mixed-revision working copy.\n"
" Use of this option is not recommended!\n"
@@ -11852,7 +14180,7 @@ msgstr ""
" Wie Verwendung dieser Option wird nicht empfohlen!\n"
" Führen Sie stattdessen »svn update« aus."
-#: ../svn/svn.c:407
+#: ../svn/svn.c:404
msgid ""
"also operate on externals defined by\n"
" svn:externals properties"
@@ -11860,39 +14188,42 @@ msgstr ""
"Arbeitet auch auf externen Verweisen\n"
" (»svn:externals« Eigenschaften)"
-#: ../svn/svn.c:411
-msgid "retrieve target's inherited properties"
-msgstr "Geerbte Eigenschaften des Ziels abfragen"
+#: ../svn/svn.c:408
+msgid "retrieve properties set on parents of the target"
+msgstr ""
-#: ../svn/svn.c:413
-msgid "use ARG as search pattern (glob syntax)"
-msgstr "PAR als Suchmuster verwenden (mit Platzhaltern)"
+#: ../svn/svn.c:410
+msgid ""
+"use ARG as search pattern (glob syntax, case-\n"
+" and accent-insensitive, may require quotation marks\n"
+" to prevent shell expansion)"
+msgstr ""
-#: ../svn/svn.c:415
+#: ../svn/svn.c:416
msgid "combine ARG with the previous search pattern"
msgstr "PAR mit dem vorherigen Suchmuster kombinieren"
-#: ../svn/svn.c:417
+#: ../svn/svn.c:418
msgid "show revision log message, author and date"
msgstr "Zeigt Logmeldung, Author und Datum der Revision an"
-#: ../svn/svn.c:419
+#: ../svn/svn.c:420
msgid "remove unversioned items"
msgstr "Entfernt nicht versionierte Objekte"
-#: ../svn/svn.c:420
+#: ../svn/svn.c:421
msgid "remove ignored items"
msgstr "Entfernt ignorierte Objekte"
-#: ../svn/svn.c:421 ../svnlook/svnlook.c:148 ../svnversion/svnversion.c:140
+#: ../svn/svn.c:422 ../svnlook/svnlook.c:155 ../svnversion/svnversion.c:140
msgid "do not output the trailing newline"
msgstr "Gibt den anhängenden Zeilenumbruch nicht aus"
-#: ../svn/svn.c:422
+#: ../svn/svn.c:423
msgid "show cached passwords"
msgstr "Zeigt gespeicherte Passwörter an"
-#: ../svn/svn.c:424
+#: ../svn/svn.c:425
msgid ""
"pin externals with no explicit revision to their\n"
" current revision (recommended when tagging)"
@@ -11900,11 +14231,48 @@ msgstr ""
"Legt externe Verweise ohne ausgewiesene Revision\n"
" auf aktuelle Revision fest (Empfohlen für Tags)"
-#: ../svn/svn.c:428
-msgid "print only the item identified by ARG"
-msgstr "Gibt nur das mit PAR angegebene Element aus"
+#: ../svn/svn.c:429
+msgid ""
+"print only the item identified by ARG:\n"
+" 'kind' node kind of TARGET\n"
+" 'url' URL of TARGET in the repository\n"
+" 'relative-url'\n"
+" repository-relative URL of TARGET\n"
+" 'repos-root-url'\n"
+" root URL of repository\n"
+" 'repos-uuid' UUID of repository\n"
+" 'revision' specified or implied revision\n"
+" 'last-changed-revision'\n"
+" last change of TARGET at or before\n"
+" 'revision'\n"
+" 'last-changed-date'\n"
+" date of 'last-changed-revision'\n"
+" 'last-changed-author'\n"
+" author of 'last-changed-revision'\n"
+" 'wc-root' root of TARGET's working copy"
+msgstr ""
+
+#: ../svn/svn.c:464
+#, fuzzy
+msgid ""
+"Local additions are merged with incoming additions\n"
+" instead of causing a tree conflict. Use of this\n"
+" option is not recommended! Use 'svn resolve' to\n"
+" resolve tree conflicts instead."
+msgstr ""
+"entfernt Sperren wenn nötig. Zu verwenden, mit Vorsicht,\n"
+" wenn das Spiegelprojektarchiv nicht mehr notwendige Sperren enthält\n"
+" und nicht gleichzeitig von einer anderen svnsync-Instanz verwendet wird."
+
+#: ../svn/svn.c:473
+msgid "remove unreferenced pristines from .svn directory"
+msgstr ""
-#: ../svn/svn.c:479
+#: ../svn/svn.c:476
+msgid "drop shelf after successful unshelve"
+msgstr ""
+
+#: ../svn/svn.c:526
msgid ""
"Put files and directories under version control, scheduling\n"
"them for addition to repository. They will be added in next commit.\n"
@@ -11915,20 +14283,20 @@ msgstr ""
"Das tatsächliche Hinzufügen findet erst beim nächsten Übertragen statt.\n"
"Aufruf: add PFAD...\n"
-#: ../svn/svn.c:484
+#: ../svn/svn.c:532
msgid "add intermediate parents"
msgstr "direkte Eltern hinzufügen"
-# Asked ML for clarification.
-# Mattern matches AND or OR?
-# Case sensitive or case in-sensitive?
-# What about fingerprints?
-#: ../svn/svn.c:487
+#: ../svn/svn.c:535
msgid ""
"Manage cached authentication credentials.\n"
"usage: 1. svn auth [PATTERN ...]\n"
"usage: 2. svn auth --remove PATTERN [PATTERN ...]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:539
+msgid ""
" With no arguments, list all cached authentication credentials.\n"
" Authentication credentials include usernames, passwords,\n"
" SSL certificates, and SSL client-certificate passphrases.\n"
@@ -11936,7 +14304,16 @@ msgid ""
" or more patterns. With the --remove option, remove cached authentication\n"
" credentials matching one or more patterns.\n"
"\n"
-" If more than one pattern is specified credentials are considered only they\n"
+msgstr ""
+
+# Asked ML for clarification.
+# Mattern matches AND or OR?
+# Case sensitive or case in-sensitive?
+# What about fingerprints?
+#: ../svn/svn.c:546
+#, fuzzy
+msgid ""
+" If more than one pattern is specified credentials are considered only if they\n"
" match all specified patterns. Patterns are matched case-sensitively and may\n"
" contain glob wildcards:\n"
" ? matches any single character\n"
@@ -11970,59 +14347,74 @@ msgstr ""
" nicht von der Befehlsumgebung als Dateimuster interpretiert werden.\n"
"\n"
-#: ../svn/svn.c:508
+#: ../svn/svn.c:557
msgid "remove matching authentication credentials"
msgstr "entfernt passende Zugangsdaten"
-#: ../svn/svn.c:513
+#: ../svn/svn.c:562
msgid ""
"Show when each line of a file was last (or\n"
"next) changed.\n"
"usage: blame [-rM:N] TARGET[@REV]...\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:566
+msgid ""
" Annotate each line of a file with the revision number and author of the\n"
" last change (or optionally the next change) to that line.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:569 ../svnbench/svnbench.c:222
+msgid ""
" With no revision range (same as -r0:REV), or with '-r M:N' where M < N,\n"
" annotate each line that is present in revision N of the file, with\n"
" the last revision at or before rN that changed or added the line,\n"
" looking back no further than rM.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:574 ../svnbench/svnbench.c:227
+msgid ""
" With a reverse revision range '-r M:N' where M > N,\n"
" annotate each line that is present in revision N of the file, with\n"
" the next revision after rN that changed or deleted the line,\n"
" looking forward no further than rM.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:579 ../svnbench/svnbench.c:232
+#, fuzzy
+msgid ""
" If specified, REV determines in which revision the target is first\n"
" looked up.\n"
"\n"
-" Write the annotated result to standard output.\n"
msgstr ""
-"Gibt für jede Zeile einer Datei die letzte (oder\n"
-"nächste) Änderung aus.\n"
-"Aufruf: blame [-rM:N] ZIEL[@REV]...\n"
-"\n"
-" Kommentiert jede Zeile einer Datei mit Revisionsnummer und Autor der\n"
-" letzten Änderung (optional der nächsten Änderung) dieser Zeile.\n"
-"\n"
-" Kommentiert ohne angegebenen Revisionsbereich (dann wie -r0:REV),\n"
-" oder mit »-r M:N« mit M < N, jede in Revision N vorhandene Zeile der Datei\n"
-" mit der letzten Revision rN oder davor die diese Zeile änderte oder hinzufügte,\n"
-" und blick dabei nicht weiter als rM zurück.\n"
-"\n"
-" Kommentiert mit einem umgekehrten Revisionsbereich »-rM:N« mit M > N,\n"
-" jede in Revision N vorhandene Zeile der Datei mit der nächsten Revision nach rN\n"
-" die diese Zeile ändert oder entfernt, und blick dabei nicht weiter als rM.\n"
+"Gibt den Inhalt der angegebenen Dateien oder URLs aus.\n"
+"Aufruf: cat ZIEL[@REV]...\n"
"\n"
" Falls angegeben, bestimmt REV, in welcher Revision zuerst nachgeschaut wird.\n"
-"\n"
-" Gibt das kommentierte Ergebnis auf der Standardausgabe aus.\n"
-#: ../svn/svn.c:537
+#: ../svn/svn.c:582 ../svnbench/svnbench.c:235
+msgid " Write the annotated result to standard output.\n"
+msgstr ""
+
+#: ../svn/svn.c:587
+#, fuzzy
msgid ""
"Output the content of specified files or URLs.\n"
"usage: cat TARGET[@REV]...\n"
"\n"
+msgstr ""
+"Gibt den Inhalt der angegebenen Dateien oder URLs aus.\n"
+"Aufruf: cat ZIEL[@REV]...\n"
+"\n"
+" Falls angegeben, bestimmt REV, in welcher Revision zuerst nachgeschaut wird.\n"
+
+#: ../svn/svn.c:590
+#, fuzzy
+msgid ""
" If specified, REV determines in which revision the target is first\n"
" looked up.\n"
msgstr ""
@@ -12031,7 +14423,7 @@ msgstr ""
"\n"
" Falls angegeben, bestimmt REV, in welcher Revision zuerst nachgeschaut wird.\n"
-#: ../svn/svn.c:545
+#: ../svn/svn.c:596
msgid ""
"Associate (or dissociate) changelist CLNAME with the named files.\n"
"usage: 1. changelist CLNAME PATH...\n"
@@ -12042,19 +14434,37 @@ msgstr ""
"Aufruf: 1. changelist CLNAME PFAD...\n"
" 2. changelist --remove PFAD...\n"
-#: ../svn/svn.c:551
+#: ../svn/svn.c:603
msgid ""
"Check out a working copy from a repository.\n"
"usage: checkout URL[@REV]... [PATH]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:606
+#, fuzzy
+msgid ""
" If specified, REV determines in which revision the URL is first\n"
" looked up.\n"
"\n"
+msgstr ""
+"Gibt den Inhalt der angegebenen Dateien oder URLs aus.\n"
+"Aufruf: cat ZIEL[@REV]...\n"
+"\n"
+" Falls angegeben, bestimmt REV, in welcher Revision zuerst nachgeschaut wird.\n"
+
+#: ../svn/svn.c:609
+msgid ""
" If PATH is omitted, the basename of the URL will be used as\n"
" the destination. If multiple URLs are given each will be checked\n"
" out into a sub-directory of PATH, with the name of the sub-directory\n"
" being the basename of the URL.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:614
+#, fuzzy
+msgid ""
" If --force is used, unversioned obstructing paths in the working\n"
" copy destination do not automatically cause the check out to fail.\n"
" If the obstructing path is the same type (file or directory) as the\n"
@@ -12066,8 +14476,6 @@ msgid ""
" to the working copy. All properties from the repository are applied\n"
" to the obstructing path.\n"
"\n"
-" See also 'svn help update' for a list of possible characters\n"
-" reporting the action taken.\n"
msgstr ""
"Checkt eine Arbeitskopie aus einem Projektarchiv aus.\n"
"Aufruf: checkout URL[@REV]... [PFAD]\n"
@@ -12092,100 +14500,110 @@ msgstr ""
" Siehe auch »svn help update« für eine Liste möglicher Buchstaben,\n"
" die die durchgeführte Aktion beschreiben.\n"
-#: ../svn/svn.c:578
-msgid ""
-"Recursively clean up the working copy, removing write locks, resuming\n"
-"unfinished operations, etc.\n"
-"usage: cleanup [WCPATH...]\n"
-"\n"
-" By default, finish any unfinished business in the working copy at WCPATH,\n"
-" and remove write locks (shown as 'L' by the 'svn status' command) from\n"
-" the working copy. Usually, this is only necessary if a Subversion client\n"
-" has crashed while using the working copy, leaving it in an unusable state.\n"
-"\n"
-" WARNING: There is no mechanism that will protect write locks still\n"
-" being used by other Subversion clients. Running this command\n"
-" while another client is using the working copy can corrupt\n"
-" the working copy beyond repair!\n"
-"\n"
-" If the --remove-unversioned option or the --remove-ignored option\n"
-" is given, remove any unversioned or ignored items within WCPATH.\n"
-" To prevent accidental working copy corruption, unversioned or ignored\n"
-" items can only be removed if the working copy is not already locked\n"
-" for writing by another Subversion client.\n"
-" Note that the 'svn status' command shows unversioned items as '?',\n"
-" and ignored items as 'I' if the --no-ignore option is given to it.\n"
-msgstr ""
-"Räumt eine Arbeitskopie rekursiv auf, entfernt Schreibsperren, führt nicht\n"
-"beendete Operationen zu Ende usw.\n"
-"Aufruf: cleanup [AKPFAD...]\n"
-"\n"
-" Ohne weitere Parameter führt der Aufruf unterbrochene Operationen in\n"
-" AKPFAD zu Ende und entfernt Schreibsperren (mit »L« in »svn status«\n"
-" angezeigt). Dies ist allgemein nur notwendig, nachdem ein Subversion-\n"
-" Client abgestürzt ist, während dieser auf die Arbeitskopie zugriff, und so\n"
-" die Arbeitskopie in einem nicht verwendbaren Zustand hinterließ.\n"
-"\n"
-" WARNUNG: Es gibt keinen Mechanismus, der noch verwendete Schreib-\n"
-" sperren anderer Subversion-Clients schützt. Die Ausführung dieses\n"
-" Kommandos während des Zugriffs eines anderen Clients auf die\n"
-" Arbeitskopie kann diese irreparabel beschädigen!\n"
-"\n"
-" Wenn die Optionen --remove-unversioned oder --remove-ignored gegeben\n"
-" sind, werden nicht versionierte bzw. ignorierte Objekte in AKPFAD entfernt.\n"
-" Um unbeabsichtigte Beschädigungen der Arbeitskopie zu vermeiden,\n"
-" können nicht versionierte bzw. ignorierte Objekte nur entfernt werden, wenn\n"
-" die Arbeitskopie nicht schon von einem anderen Subversion-Client zum\n"
-" Schreiben gesperrt wurde.\n"
-" »svn status« zeigt nicht versionierte Objekte als »?« an, sowie ignorierte\n"
-" Objekte mit »I«, wenn die Option --no-ignore verwendet wird.\n"
+#: ../svn/svn.c:625
+msgid ""
+" See also 'svn help update' for a list of possible characters\n"
+" reporting the action taken.\n"
+msgstr ""
-#: ../svn/svn.c:603
+#: ../svn/svn.c:631
+msgid ""
+"Either recover from an interrupted operation that left the working copy locked,\n"
+"or remove unwanted files.\n"
+"usage: 1. cleanup [WCPATH...]\n"
+" 2. cleanup --remove-unversioned [WCPATH...]\n"
+" cleanup --remove-ignored [WCPATH...]\n"
+" 3. cleanup --vacuum-pristines [WCPATH...]\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:638
+msgid ""
+" 1. When none of the options --remove-unversioned, --remove-ignored, and\n"
+" --vacuum-pristines is specified, remove all write locks (shown as 'L' by\n"
+" the 'svn status' command) from the working copy. Usually, this is only\n"
+" necessary if a Subversion client has crashed while using the working copy,\n"
+" leaving it in an unusable state.\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:644
+msgid ""
+" WARNING: There is no mechanism that will protect write locks still\n"
+" being used by other Subversion clients. Running this command\n"
+" without any options while another client is using the working\n"
+" copy can corrupt the working copy beyond repair!\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:649
+msgid ""
+" 2. If the --remove-unversioned option or the --remove-ignored option\n"
+" is given, remove any unversioned or ignored items within WCPATH.\n"
+" Note that the 'svn status' command shows unversioned items as '?',\n"
+" and ignored items as 'I' if the --no-ignore option is given to it.\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:654
+msgid ""
+" 3. If the --vacuum-pristines option is given, remove pristine copies of\n"
+" files which are stored inside the .svn directory and which are no longer\n"
+" referenced by any file in the working copy.\n"
+msgstr ""
+
+#: ../svn/svn.c:660
+#, fuzzy
+msgid "deprecated and ignored"
+msgstr "veraltet"
+
+#: ../svn/svn.c:663
msgid ""
"Send changes from your working copy to the repository.\n"
"usage: commit [PATH...]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:666
+msgid ""
" A log message must be provided, but it can be empty. If it is not\n"
" given by a --message or --file option, an editor will be started.\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:669
+msgid ""
" If any targets are (or contain) locked items, those will be\n"
-" unlocked after a successful commit.\n"
+" unlocked after a successful commit, unless --no-unlock is given.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:672
+msgid ""
" If --include-externals is given, also commit file and directory\n"
" externals reached by recursion. Do not commit externals with a\n"
" fixed revision.\n"
msgstr ""
-"Überträgt Änderungen Ihrer Arbeitskopie ins Projektarchiv.\n"
-"Aufruf: commit [PFAD...]\n"
-"\n"
-" Eine Logmeldung muss angegeben werden; diese kann jedoch leer sein.\n"
-" Wird sie nicht mittels einer --message- oder --file-Option übergeben, wird\n"
-" ein Editor gestartet.\n"
-" Falls Objekte gesperrt sind oder gesperrte Objekte enthalten, werden diese\n"
-" nach einer erfolgreichen Ãœbertragung entsperrt.\n"
-"\n"
-" Wenn --include-externals angegeben wird, werden auch Dateien und\n"
-" Verzeichnisse in externen Verweisen übertragen, die durch Rekursion\n"
-" erreicht werden. Ãœbertragen Sie keine externen Verweise mit einer\n"
-" festgelegten Revision.\n"
-#: ../svn/svn.c:618
+#: ../svn/svn.c:680
msgid ""
"Copy files and directories in a working copy or repository.\n"
"usage: copy SRC[@REV]... DST\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:683
+#, fuzzy
+msgid ""
" SRC and DST can each be either a working copy (WC) path or URL:\n"
" WC -> WC: copy and schedule for addition (with history)\n"
" WC -> URL: immediately commit a copy of WC to URL\n"
" URL -> WC: check out URL into WC, schedule for addition\n"
" URL -> URL: complete server-side copy; used to branch and tag\n"
-" All the SRCs must be of the same type. When copying multiple sources,\n"
-" they will be added as children of DST, which must be a directory.\n"
+" All the SRCs must be of the same type. If DST is an existing directory,\n"
+" the sources will be added as children of DST. When copying multiple\n"
+" sources, DST must be an existing directory.\n"
"\n"
-" WARNING: For compatibility with previous versions of Subversion,\n"
-" copies performed using two working copy paths (WC -> WC) will not\n"
-" contact the repository. As such, they may not, by default, be able\n"
-" to propagate merge tracking information from the source of the copy\n"
-" to the destination.\n"
msgstr ""
"Kopiert Dateien und Verzeichnisse in einer Arbeitskopie oder im einem Projektarchiv\n"
"Aufruf: copy QUELLE[@REV]... ZIEL\n"
@@ -12208,12 +14626,26 @@ msgstr ""
" standardmäßig nicht in der Lage sein, Zusammenführungsinformationen\n"
" von der Quelle der Kopie in das Ziel weiterzureichen.\n"
-#: ../svn/svn.c:638
+#: ../svn/svn.c:692
+msgid ""
+" WARNING: For compatibility with previous versions of Subversion,\n"
+" copies performed using two working copy paths (WC -> WC) will not\n"
+" contact the repository. As such, they may not, by default, be able\n"
+" to propagate merge tracking information from the source of the copy\n"
+" to the destination.\n"
+msgstr ""
+
+#: ../svn/svn.c:702
msgid ""
"Remove files and directories from version control.\n"
"usage: 1. delete PATH...\n"
" 2. delete URL...\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:706
+#, fuzzy
+msgid ""
" 1. Each item specified by a PATH is scheduled for deletion upon\n"
" the next commit. Files, and directories that have not been\n"
" committed, are immediately removed from the working copy\n"
@@ -12221,8 +14653,6 @@ msgid ""
" PATHs that are, or contain, unversioned or modified items will\n"
" not be removed unless the --force or --keep-local option is given.\n"
"\n"
-" 2. Each item specified by a URL is deleted from the repository\n"
-" via an immediate commit.\n"
msgstr ""
"Entfernt Dateien und Verzeichnisse aus der Versionskontrolle.\n"
"Aufruf: 1. delete PFAD...\n"
@@ -12239,7 +14669,13 @@ msgstr ""
" 2. Jedes mit einer URL angegebene Element wird mittels sofortiger\n"
" Ãœbertragung aus dem Projektarchiv entfernt.\n"
-#: ../svn/svn.c:654
+#: ../svn/svn.c:713
+msgid ""
+" 2. Each item specified by a URL is deleted from the repository\n"
+" via an immediate commit.\n"
+msgstr ""
+
+#: ../svn/svn.c:719
msgid ""
"Display local changes or differences between two revisions or paths.\n"
"usage: 1. diff\n"
@@ -12250,8 +14686,16 @@ msgid ""
" 5. diff OLD-URL[@OLDREV] NEW-PATH[@NEWREV]\n"
" 6. diff OLD-PATH[@OLDREV] NEW-URL[@NEWREV]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:728
+msgid ""
" 1. Use just 'svn diff' to display local modifications in a working copy.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:730
+msgid ""
" 2. Display the changes made to TARGETs as they are seen in REV between\n"
" two revisions. TARGETs may be all working copy paths or all URLs.\n"
" If TARGETs are working copy paths, N defaults to BASE and M to the\n"
@@ -12259,6 +14703,10 @@ msgid ""
" The '-c M' option is equivalent to '-r N:M' where N = M-1.\n"
" Using '-c -M' does the reverse: '-r M:N' where N = M-1.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:737
+msgid ""
" 3. Display the differences between OLD-TGT as it was seen in OLDREV and\n"
" NEW-TGT as it was seen in NEWREV. PATHs, if given, are relative to\n"
" OLD-TGT and NEW-TGT and restrict the output to differences for those\n"
@@ -12268,65 +14716,52 @@ msgid ""
" If OLDREV or NEWREV are not specified, they default to WORKING for\n"
" working copy targets and to HEAD for URL targets.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:746
+msgid ""
" Either or both OLD-TGT and NEW-TGT may also be paths to unversioned\n"
" targets. Revisions cannot be specified for unversioned targets.\n"
" Both targets must be of the same node kind (file or directory).\n"
" Diffing unversioned targets against URL targets is not supported.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:751
+msgid ""
" 4. Shorthand for 'svn diff --old=OLD-URL[@OLDREV] --new=NEW-URL[@NEWREV]'\n"
" 5. Shorthand for 'svn diff --old=OLD-URL[@OLDREV] --new=NEW-PATH[@NEWREV]'\n"
" 6. Shorthand for 'svn diff --old=OLD-PATH[@OLDREV] --new=NEW-URL[@NEWREV]'\n"
msgstr ""
-"Zeigt lokale Änderungen oder Unterschiede zwischen zwei Revisionen oder Pfaden an.\n"
-"Aufruf: 1. diff\n"
-" 2. diff [-c M | -r N[:M]] [ZIEL[@REV]...]\n"
-" 3. diff [-r N[:M]] --old=ZIEL-ALT[@REVALT] [--new=ZIEL-NEU[@NEWREV]] \\\n"
-" [PFAD...]\n"
-" 4. diff URL-ALT[@REVALT] URL-NEU[@REVNEU]\n"
-" 5. diff URL-ALT[@REVALT] NEW-PATH[@REVNEU]\n"
-" 6. diff PFAD-ALT[@REVALT] URL-NEU[@REVNEU]\n"
-"\n"
-" 1. Verwenden Sie nur »svn diff«, um lokale Änderungen einer Arbeitskopie anzuzeigen.\n"
-"\n"
-" 2. Zeigt die Änderungen an ZIELen, wie sie in REV zwischen zwei Revisionen\n"
-" sichtbar sind. ZIELe können alle Arbeitskopien oder URLs sein.\n"
-"\n"
-" Falls ZIELe Arbeitskopiepfade sind, wird standardmäßig BASE für N und\n"
-" die Version der Arbeitskopie für M verwendet; bei URLs muss N angegeben\n"
-" werden und M entspricht HEAD.\n"
-" Die Option »-c M« ist äquivalent zu »-r N:M«, wobei N = M-1 gilt.\n"
-" Die Verwendung von »-c -M« macht es andersherum: »-r M:N« mit N = M-1.\n"
-"\n"
-" 3. Zeigt die Unterschiede zwischen ZIEL-ALT in REVALT und ZIEL-NEU in REVNEU.\n"
-" Wenn PFADe angegeben werden, sind diese relativ zu ZIEL-ALT und ZIEL-NEU,\n"
-" und die Ausgabe ist auf Unterschiede zwischen diesen Pfaden beschränkt.\n"
-" ZIEL-ALT und ZIEL-NEU können Pfade der Arbeitskopie oder der Art URL[@REV]\n"
-" sein. ZIEL-NEU entspricht ZIEL-ALT, falls es nicht angegeben wurde.\n"
-" -r N setzt REVALT auf N, -r N:M setzt REVALT auf N und REVNEU auf M.\n"
-" Wenn REVALT oder REVNEU nicht angegeben sind, wird für Ziele in Arbeitskopien\n"
-" »WORKING« und für solche in ULRs »HEAD« angenommen.\n"
-"\n"
-" ZIEL-ALT, ZIEL-NEU oder beide dürfen auch Pfade von nicht versionieren Zielen sein.\n"
-" Revisionen können aber für solche Ziele nicht angegeben werden. Beide Ziele\n"
-" müssen vom selben Knotentyp sein (Datei bzw. Verzeichnis). Die Anzeige von\n"
-" Unterschieden zwischen nicht versionierten Zielen und URL-Zielen wird nicht\n"
-" unterstützt.\n"
-"\n"
-" 4. Kurzform für »svn diff --old=URL-ALT[@REVALT] --new=URL-NEU[@REVNEU]«\n"
-" 5. Kurzform für »svn diff --old=URL-ALT[@REVALT] --new=URL-NEU[@REVNEU]«\n"
-" 6. Kurzform für »svn diff --old=URL-ALT[@REVALT] --new=URL-NEU[@REVNEU]«\n"
-
-#: ../svn/svn.c:695
+
+#: ../svn/svn.c:761
msgid ""
"Create an unversioned copy of a tree.\n"
"usage: 1. export [-r REV] URL[@PEGREV] [PATH]\n"
" 2. export [-r REV] PATH1[@PEGREV] [PATH2]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:765
+#, fuzzy
+msgid ""
" 1. Exports a clean directory tree from the repository specified by\n"
" URL, at revision REV if it is given, otherwise at HEAD, into\n"
" PATH. If PATH is omitted, the last component of the URL is used\n"
" for the local directory name.\n"
"\n"
+msgstr ""
+"Erzeugt eine nicht versionierte Kopie eines Dateibaumes.\n"
+"Aufruf: null-export [-r REV] URL[@PEGREV]\n"
+"\n"
+" Exportiert einen sauberen Verzeichnisbaum, der durch die URL\n"
+" spezifiziert ist. Ohne Angabe von REV wird HEAD exportiert, sonst REV.\n"
+"\n"
+" PEGREV gibt an, in welcher Revision das Ziel zuerst gesucht wird.\n"
+
+#: ../svn/svn.c:770
+#, fuzzy
+msgid ""
" 2. Exports a clean directory tree from the working copy specified by\n"
" PATH1, at revision REV if it is given, otherwise at WORKING, into\n"
" PATH2. If PATH2 is omitted, the last component of the PATH1 is used\n"
@@ -12334,8 +14769,6 @@ msgid ""
" changes will be preserved. Files not under version control will\n"
" not be copied.\n"
"\n"
-" If specified, PEGREV determines in which revision the target is first\n"
-" looked up.\n"
msgstr ""
"Erzeugt eine nicht versionierte Kopie eines Dateibaumes.\n"
"Aufruf: 1. export [-r REV] URL[@PEGREV] [PFAD]\n"
@@ -12355,7 +14788,18 @@ msgstr ""
"\n"
" PEGREV gibt an, in welcher Revision das Ziel zuerst gesucht wird.\n"
-#: ../svn/svn.c:717 ../svnbench/svnbench.c:217
+#: ../svn/svn.c:777 ../svnbench/svnbench.c:246
+#, fuzzy
+msgid ""
+" If specified, PEGREV determines in which revision the target is first\n"
+" looked up.\n"
+msgstr ""
+"Gibt den Inhalt der angegebenen Dateien oder URLs aus.\n"
+"Aufruf: cat ZIEL[@REV]...\n"
+"\n"
+" Falls angegeben, bestimmt REV, in welcher Revision zuerst nachgeschaut wird.\n"
+
+#: ../svn/svn.c:784 ../svnbench/svnbench.c:212
msgid ""
"Describe the usage of this program or its subcommands.\n"
"usage: help [SUBCOMMAND...]\n"
@@ -12363,11 +14807,16 @@ msgstr ""
"Beschreibt die Anwendung dieses Programms und seiner Unterbefehle.\n"
"Aufruf: help [UNTERBEFEHL...]\n"
-#: ../svn/svn.c:723
+#: ../svn/svn.c:791
msgid ""
"Commit an unversioned file or tree into the repository.\n"
"usage: import [PATH] URL\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:794
+#, fuzzy
+msgid ""
" Recursively commit a copy of PATH to URL.\n"
" If PATH is omitted '.' is assumed.\n"
" Parent directories are created as necessary in the repository.\n"
@@ -12388,101 +14837,99 @@ msgstr ""
" Nichtversionierbare Elemente wie Gerätedateien und Pipes werden ignoriert,\n"
" falls --force angegeben wird.\n"
-#: ../svn/svn.c:737
+#: ../svn/svn.c:806
msgid ""
"Display information about a local or remote item.\n"
"usage: info [TARGET[@REV]...]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:809
+#, fuzzy
+msgid ""
" Print information about each TARGET (default: '.').\n"
-" TARGET may be either a working-copy path or URL. If specified, REV\n"
-" determines in which revision the target is first looked up.\n"
+" TARGET may be either a working-copy path or a URL. If specified, REV\n"
+" determines in which revision the target is first looked up; the default\n"
+" is HEAD for a URL or BASE for a WC path.\n"
"\n"
-" With --show-item, print only the value of one item of information\n"
-" about TARGET. One of the following items can be selected:\n"
-" kind the kind of TARGET\n"
-" url the URL of TARGET in the repository\n"
-" relative-url the repository-relative URL\n"
-" repos-root-url the repository root URL\n"
-" repos-uuid the repository UUID\n"
-" revision the revision of TARGET (defaults to BASE\n"
-" for working copy paths and HEAD for URLs)\n"
-" last-changed-revision the most recent revision in which TARGET\n"
-" was changed\n"
-" last-changed-date the date of the last-changed revision\n"
-" last-changed-author the author of the last-changed revision\n"
-" wc-root the root of TARGET's working copy"
-msgstr ""
-"Gibt Informationen über ein lokales oder entferntes Element aus.\n"
+msgstr ""
+"Zeigt Informationen über ein lokales oder auf dem Server befindliches\n"
+"Objekt an.\n"
"Aufruf: info [ZIEL[@REV]...]\n"
"\n"
" Gibt Informationen über jedes ZIEL aus (Vorgabe: ».«).\n"
-" ZIEL kann entweder ein Pfad in einer Arbeitskopie oder eine URL sein. Falls\n"
-" angegeben, bestimmt REV, in welcher Revision zuerst nachgeschaut wird.\n"
-"\n"
-" Gibt mit »--show-item« nur den Wert eines Informationsfeldes von ZIEL aus.\n"
-" Eines dieser Felder kann gewählt werden:\n"
-" kind Art des ZIELs\n"
-" url URL des ZIELs im Projektarchiv\n"
-" relative-url URL relativ zum Projektarchiv\n"
-" repos-root-url Wurzel-URL des Projektarchivs\n"
-" repos-uuid UUID des Projektarchivs\n"
-" revision Die Revision von ZIEL (Immer BASE für\n"
-" Pfade in der Arbeitskopie und HEAD für eine URL)\n"
-" last-changed-revision Letzte Revision in der ZIEL geändert wurde\n"
-" last-changed-date Datum der Revision mit der letzten Änderung\n"
-" last-changed-author Autor der Revision mit der letzten Änderung\n"
-" wc-root Wurzel der Arbeitskopie, die ZIEL enthält"
+" ZIEL kann entweder ein Pfad einer Arbeitskopie oder eine URL sein. Wenn\n"
+" angegeben, bestimmt REV, in welcher Revision zuerst nach dem Ziel gesucht\n"
+" wird.\n"
-# FIXME: "looked up" ist überall leicht unterschiedlich übersetzt
-# Ich (Jens) bevorzuge "gesucht" statt "nachgeschlagen" oder "durchsucht", "nachgeschaut"
-# FIXME: Standardsätze sollten eigene msgid haben!
-#: ../svn/svn.c:763
+#: ../svn/svn.c:814
+msgid ""
+" With --show-item, print only the value of one item of information\n"
+" about TARGET.\n"
+msgstr ""
+
+#: ../svn/svn.c:824 ../svn/svn.c:850
msgid ""
"List directory entries in the repository.\n"
"usage: list [TARGET[@REV]...]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:827 ../svn/svn.c:853 ../svnbench/svnbench.c:255
+msgid ""
" List each TARGET file and the contents of each TARGET directory as\n"
" they exist in the repository. If TARGET is a working copy path, the\n"
" corresponding repository URL will be used. If specified, REV determines\n"
" in which revision the target is first looked up.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:832 ../svn/svn.c:858 ../svnbench/svnbench.c:260
+msgid ""
" The default TARGET is '.', meaning the repository URL of the current\n"
" working directory.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:835
+msgid ""
+" Multiple --search patterns may be specified and the output will be\n"
+" reduced to those paths whose last segment - i.e. the file or directory\n"
+" name - contains a sub-string matching at least one of these patterns\n"
+" (Windows only).\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:840 ../svn/svn.c:865
+msgid ""
" With --verbose, the following fields will be shown for each item:\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:842 ../svn/svn.c:867 ../svnbench/svnbench.c:265
+msgid ""
" Revision number of the last commit\n"
" Author of the last commit\n"
" If locked, the letter 'O'. (Use 'svn info URL' to see details)\n"
" Size (in bytes)\n"
" Date and time of the last commit\n"
msgstr ""
-"Zeigt Verzeichniseinträge im Projektarchiv.\n"
-"Aufruf: list [ZIEL[@REV]...]\n"
-"\n"
-" Listet jede ZIEL-Datei und die Inhalte jedes ZIEL-Verzeichnisses, wie\n"
-" sie im Projektarchiv existieren, auf. Wenn ZIEL ein Arbeitskopiepfad ist,\n"
-" wird die entsprechende URL des Projektarchivs verwendet. REV bestimmt,\n"
-" in welcher Revision zuerst nachgeschaut wird.\n"
-"\n"
-" Die Vorgabe für ZIEL ist ».«, d.h. die URL vom Projektarchiv des\n"
-" aktuellen Verzeichnisses.\n"
-"\n"
-" Mit »--verbose« werden die folgenden Felder pro Objekt angezeigt:\n"
+
+#: ../svn/svn.c:861
+msgid ""
+" Multiple --search patterns may be specified and the output will be\n"
+" reduced to those paths whose last segment - i.e. the file or directory\n"
+" name - matches at least one of these patterns.\n"
"\n"
-" Revisionsnummer der letzten Ãœbertragung\n"
-" Autor der letzten Ãœbertragung\n"
-" Falls gesperrt, der Buchstabe »O« (»svn info URL« für Details)\n"
-" Größe (in Bytes)\n"
-" Datum und Zeit der letzten Ãœbertragung\n"
+msgstr ""
-#: ../svn/svn.c:785
+#: ../svn/svn.c:878
+#, fuzzy
msgid ""
"Lock working copy paths or URLs in the repository, so that\n"
"no other user can commit changes to them.\n"
"usage: lock TARGET...\n"
"\n"
-" Use --force to steal the lock from another user or working copy.\n"
msgstr ""
"Sperrt Arbeitskopiepfade oder URLs im Projektarchiv, so dass kein\n"
"anderer Anwender Änderungen an ihnen übertragen kann.\n"
@@ -12490,54 +14937,107 @@ msgstr ""
"\n"
" Benutze --force, um eine bereits vorhandene Sperre zu stehlen.\n"
-#: ../svn/svn.c:791
+#: ../svn/svn.c:882
+#, fuzzy
+msgid " Use --force to steal a lock from another user or working copy.\n"
+msgstr "Verzeichnis »%s« ist in einer Arbeitskopie gesperrt"
+
+#: ../svn/svn.c:885
msgid "read lock comment from file ARG"
msgstr "Sperrkommentar aus Datei PAR lesen"
-#: ../svn/svn.c:792
+#: ../svn/svn.c:886
msgid "specify lock comment ARG"
msgstr "PAR als Sperrkommentar verwenden"
-#: ../svn/svn.c:793
+#: ../svn/svn.c:887
msgid "force validity of lock comment source"
msgstr ""
"Gültigkeit der Quelle für die Sperrmeldung\n"
" erzwingen"
-#: ../svn/svn.c:796
+#: ../svn/svn.c:888
+#, fuzzy
+msgid "steal locks"
+msgstr "Ungültige Sperre"
+
+#: ../svn/svn.c:891
msgid ""
"Show the log messages for a set of revision(s) and/or path(s).\n"
"usage: 1. log [PATH][@REV]\n"
" 2. log URL[@REV] [PATH...]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:895
+msgid ""
" 1. Print the log messages for the URL corresponding to PATH\n"
" (default: '.'). If specified, REV is the revision in which the\n"
" URL is first looked up, and the default revision range is REV:1.\n"
" If REV is not specified, the default revision range is BASE:1,\n"
" since the URL might not exist in the HEAD revision.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:901
+msgid ""
" 2. Print the log messages for the PATHs (default: '.') under URL.\n"
" If specified, REV is the revision in which the URL is first\n"
" looked up, and the default revision range is REV:1; otherwise,\n"
" the URL is looked up in HEAD, and the default revision range is\n"
" HEAD:1.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:907 ../svnbench/svnbench.c:290
+msgid ""
" Multiple '-c' or '-r' options may be specified (but not a\n"
" combination of '-c' and '-r' options), and mixing of forward and\n"
" reverse ranges is allowed.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:911
+msgid ""
" With -v, also print all affected paths with each log message.\n"
+" Each changed path is preceded with a symbol describing the change:\n"
+" A: The path was added or copied.\n"
+" D: The path was deleted.\n"
+" R: The path was replaced (deleted and re-added in the same revision).\n"
+" M: The path's file and/or property content was modified.\n"
+" If an added or replaced path was copied from somewhere else, the copy\n"
+" source path and revision are shown in parentheses.\n"
+" If a file or directory was moved from one path to another with 'svn move'\n"
+" the old path will be listed as deleted and the new path will be listed\n"
+" as copied from the old path at a prior revision.\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:923
+msgid ""
" With -q, don't print the log message body itself (note that this is\n"
" compatible with -v).\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:926
+msgid ""
" Each log message is printed just once, even if more than one of the\n"
" affected paths for that revision were explicitly requested. Logs\n"
" follow copy history by default. Use --stop-on-copy to disable this\n"
" behavior, which can be useful for determining branchpoints.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:931
+msgid ""
" The --depth option is only valid in combination with the --diff option\n"
" and limits the scope of the displayed diff to the specified depth.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:934
+msgid ""
" If the --search option is used, log messages are displayed only if the\n"
" provided search pattern matches any of the author, date, log message\n"
" text (unless --quiet is used), or, if the --verbose option is also\n"
@@ -12555,126 +15055,90 @@ msgid ""
" number of log messages searched, rather than restricting the output\n"
" to a particular number of matching log messages.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:951
+msgid ""
" Examples:\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:953
+msgid ""
" Show the latest 5 log messages for the current working copy\n"
" directory and display paths changed in each commit:\n"
" svn log -l 5 -v\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:957
+msgid ""
" Show the log for bar.c as of revision 42:\n"
" svn log bar.c@42\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:960
+msgid ""
" Show log messages and diffs for each commit to foo.c:\n"
" svn log --diff http://www.example.com/repo/project/foo.c\n"
" (Because the above command uses a full URL it does not require\n"
" a working copy.)\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:965
+msgid ""
" Show log messages for the children foo.c and bar.c of the directory\n"
" '/trunk' as it appeared in revision 50, using the ^/ URL shortcut:\n"
" svn log ^/trunk@50 foo.c bar.c\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:969
+msgid ""
" Show the log messages for any incoming changes to foo.c during the\n"
" next 'svn update':\n"
" svn log -r BASE:HEAD foo.c\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:973
+msgid ""
" Show the log message for the revision in which /branches/foo\n"
" was created:\n"
" svn log --stop-on-copy --limit 1 -r0:HEAD ^/branches/foo\n"
-msgstr ""
-"Zeigt die Logmeldungen für eine Menge von Revisionen und/oder Dateien.\n"
-"Aufruf: 1. log [PFAD][@REV]\n"
-" 2. log URL[@REV] [PFAD...]\n"
-"\n"
-" 1. Gibt Log-Einträge der zu PFAD gehörenden URL aus. (Vorgabe: ».«)\n"
-" Ist REV angegeben, ist das die Revision in der URL zuerst gesucht\n"
-" Ist REV angegeben, ist das die Revision in der URL zuerst gesucht\n"
-" wird, und der vorgegebene Versionsbereich ist REV:1. Ist REV nicht\n"
-" angegeben, so ist der vorgegebene Revisionsbereich BASE:1, da die\n"
-" URL möglicherweise in der Revision HEAD nicht existiert.\n"
-"\n"
-" 2. Gibt Log-Einträge für PFAD(e) unter URL aus, (Vorgabe: ».«)\n"
-" Ist REV angegeben, ist das die Revision in der URL zuerst gesucht\n"
-" wird, und der vorgegebene Versionsbereich ist REV:1. Andernfalls wird\n"
-" URL in HEAD gesucht und der vorgegebene Revisionsbereich ist\n"
-" HEAD:1.\n"
"\n"
-" Mehrere »-c«- oder »-r«-Optionen dürfen angegeben werden (aber keine\n"
-" Kombination von »-c« und »-r«) und das Mischen von vor- und\n"
-" rückwärtigen Bereichen ist erlaubt.\n"
-"\n"
-" Mit »-v« werden auch die betroffenen Pfade mit jeder Logmeldung ausgegeben.\n"
-" Mit »-q« wird die Logmeldung selbst nicht ausgegeben (Hinweis: Diese Option\n"
-" ist kompatibel mit »-v«).\n"
-"\n"
-" Jede Logmeldung wird nur einmal ausgegeben, selbst wenn mehr als einer\n"
-" der betroffenen Pfade explizit angefragt wurde. Logs folgen per Vorgabe\n"
-" der Historie von Kopien. Benutzen Sie »--stop-on-copy«, um dieses Verhalten,\n"
-" z.B. zum Auffinden von Verzweigungen, zu deaktivieren.\n"
-"\n"
-" Die Option »--depth« ist nur in Verbindung mit der Option »--diff« gültig\n"
-" und begrenzt den Umfang der ausgegebenen Unterschiede auf die\n"
-" angegebene Tiefe.\n"
-"\n"
-" Wenn die Option »--search« verwendet wird, werden Logmeldungen nur\n"
-" angezeigt, wenn sie dem Suchmuster in den Feldern Autor, Datum oder\n"
-" Meldung (nur ohne »--quiet«), oder, falls »--verbose« angegeben ist,\n"
-" zusätzlich mit einem geänderten Pfad.\n"
-" Das Suchmuster darf folgende Platzhalter enthalten:\n"
-" ? entspricht einem einzelnen beliebigen Zeichen\n"
-" * entspricht einer Folge beliebiger Zeichen\n"
-" [abc] entspricht einem beliebigem Zeichen der Liste in den Klammern\n"
-" Werden mehrere »--search« Optionen angegeben, wird die Logmeldung\n"
-" ausgegeben, wenn eine einziges Suchmuster passt. Mit »--search-and«\n"
-" wird das angegebene Argument mit dem vorangehenden »--search« oder\n"
-" »--search-and« Optionen kombiniert und nur Logmeldungen ausgegeben\n"
-" die auf das kombinierte Suchmuster passen.\n"
-" Wenn »--limit« in Verbindgung mit »--search« verwendet wird, begrenzt es\n"
-" die Anzahl der durchsuchten Logmeldungen, nicht notwendigerweise die\n"
-" der ausgegebenen.\n"
-"\n"
-" Beispiele:\n"
-" Ausgabe der letzten 5 Logmeldungen für das Arbeitsverzeichnis in der\n"
-" Arbeitkopie, mit Ausgabe der geänderten Pfade: svn log -l 5 -v\n"
-"\n"
-" Ausgabe des Logs für datei.c mit Revision 42:\n"
-" svn log datei.c@42\n"
-"\n"
-" Ausgabe der Logmeldungen und Unterschiede für jede Übertragung\n"
-" von datei.c:\n"
-" svn log --diff http://www.example.com/repo/projekt/datei.c\n"
-" (Da der Befehl die URL angibt, ist keine Arbeitskopie notwendig.)\n"
-"\n"
-" Ausgabe der Logmeldungen für die Dateien datei.c and programm.c\n"
-" im Verzeichnis »/trunk«, wie es in Revision 50 erschien, mit der\n"
-" Kurzform »^/« für die URL:\n"
-" svn log ^/trunk@50 datei.c programm.c\n"
-"\n"
-" Ausgabe der Logmeldungen für Änderungen an datei.c, die bei der\n"
-" nächsten Ausführung von »svn update« empfangen werden: svn log -r BASE:HEAD datei.c\n"
-"\n"
-" Ausgabe der Logmeldung für die Revision die »/branches/zweig» erzeugte:\n"
-" svn log --stop-on-copy --limit 1 -r0:HEAD ^/branches/zweig\n"
-
-#: ../svn/svn.c:874 ../svnbench/svnbench.c:286
+msgstr ""
+
+#: ../svn/svn.c:977
+msgid ""
+" If ^/trunk/foo.c was moved to ^/trunk/bar.c' in revision 22, 'svn log -v'\n"
+" shows a deletion and a copy in its changed paths list, such as:\n"
+" D /trunk/foo.c\n"
+" A /trunk/bar.c (from /trunk/foo.c:21)\n"
+msgstr ""
+
+#: ../svn/svn.c:986 ../svnbench/svnbench.c:305
msgid "retrieve revision property ARG"
msgstr "Revisionseigenschaft PAR abfragen"
-#: ../svn/svn.c:875 ../svnbench/svnbench.c:287
+#: ../svn/svn.c:987 ../svnbench/svnbench.c:306
msgid "the change made in revision ARG"
msgstr "die in Revision PAR durchgeführte Änderung"
-#: ../svn/svn.c:876
+#: ../svn/svn.c:988
msgid "also print all affected paths"
msgstr "gibt auch alle betroffenen Pfade aus"
-#: ../svn/svn.c:877
+#: ../svn/svn.c:989
msgid "do not print the log message"
msgstr "gibt die Logmeldung nicht aus"
#. For this large section, let's keep it unindented for easier
#. * viewing/editing. It has been vim-treated with a textwidth=75 and 'gw'
#. * (with quotes and newlines removed).
-#: ../svn/svn.c:883
+#: ../svn/svn.c:995
msgid ""
"Merge changes into a working copy.\n"
"usage: 1. merge SOURCE[@REV] [TARGET_WCPATH]\n"
@@ -12684,17 +15148,33 @@ msgid ""
" 3. merge SOURCE1[@REV1] SOURCE2[@REV2] [TARGET_WCPATH]\n"
" (the '2-URL' merge)\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1003
+msgid ""
" 1. This form, with one source path and no revision range, is called\n"
" a 'complete' merge:\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1006
+msgid ""
" svn merge SOURCE[@REV] [TARGET_WCPATH]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1008
+msgid ""
" The complete merge is used for the 'sync' and 'reintegrate' merges\n"
" in the 'feature branch' pattern described below. It finds all the\n"
" changes on the source branch that have not already been merged to the\n"
" target branch, and merges them into the working copy. Merge tracking\n"
" is used to know which changes have already been merged.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1014
+msgid ""
" SOURCE specifies the branch from where the changes will be pulled, and\n"
" TARGET_WCPATH specifies a working copy of the target branch to which\n"
" the changes will be applied. Normally SOURCE and TARGET_WCPATH should\n"
@@ -12702,6 +15182,10 @@ msgid ""
" subtree, then the subtree path must be included in both SOURCE and\n"
" TARGET_WCPATH; this is discouraged, to avoid subtree mergeinfo.)\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1021
+msgid ""
" SOURCE is usually a URL. The optional '@REV' specifies both the peg\n"
" revision of the URL and the latest revision that will be considered\n"
" for merging; if REV is not specified, the HEAD revision is assumed. If\n"
@@ -12709,28 +15193,61 @@ msgid ""
" used, and the default value of 'REV' is the base revision (usually the\n"
" revision last updated to).\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1028
+msgid ""
" TARGET_WCPATH is a working copy path; if omitted, '.' is generally\n"
" assumed. There are some special cases:\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1031
+msgid ""
" - If SOURCE is a URL:\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1033
+msgid ""
" - If the basename of the URL and the basename of '.' are the\n"
" same, then the differences are applied to '.'. Otherwise,\n"
" if a file with the same basename as that of the URL is found\n"
" within '.', then the differences are applied to that file.\n"
" In all other cases, the target defaults to '.'.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1039
+#, fuzzy
+msgid ""
" - If SOURCE is a working copy path:\n"
"\n"
+msgstr "Kann keinen Arbeitskopiepfad finden"
+
+#: ../svn/svn.c:1041
+msgid ""
" - If the source is a file, then differences are applied to that\n"
" file (useful for reverse-merging earlier changes). Otherwise,\n"
" if the source is a directory, then the target defaults to '.'.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1045
+msgid ""
" In normal usage the working copy should be up to date, at a single\n"
" revision, with no local modifications and no switched subtrees.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1048
+msgid ""
" - The 'Feature Branch' Merging Pattern -\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1050
+msgid ""
" In this commonly used work flow, known also as the 'development\n"
" branch' pattern, a developer creates a branch and commits a series of\n"
" changes that implement a new feature. The developer periodically\n"
@@ -12739,16 +15256,29 @@ msgid ""
" complete, the developer performs a merge from the feature branch to\n"
" the parent branch to re-integrate the changes.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1058
+msgid ""
" parent --+----------o------o-o-------------o--\n"
" \\ \\ \\ /\n"
" \\ merge merge merge\n"
" \\ \\ \\ /\n"
" feature +--o-o-------o----o-o----o-------\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1064
+msgid ""
" A merge from the parent branch to the feature branch is called a\n"
" 'sync' or 'catch-up' merge, and a merge from the feature branch to the\n"
" parent branch is called a 'reintegrate' merge.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1068
+#, fuzzy
+msgid ""
" - Sync Merge Example -\n"
" ............\n"
" . .\n"
@@ -12759,6 +15289,20 @@ msgid ""
" feature +------------------------o-----\n"
" r100 r200\n"
"\n"
+msgstr ""
+"PAR (manche Befehle akzeptieren auch einen\n"
+" Wertebereich PAR1:PAR2)\n"
+" Ein Revisionsparameter kann sein:\n"
+" NUMMER Revisionsnummer\n"
+" »{«DATUM»}« Revision zum Startdatum\n"
+" »HEAD« neueste Revision im Projektarchiv\n"
+" »BASE« Basisrevision der Arbeitskopie\n"
+" »COMMITTED« letzte übertragene Revision zu\n"
+" oder vor BASE\n"
+" »PREV« letzte Revision vor COMMITTED"
+
+#: ../svn/svn.c:1078
+msgid ""
" Subversion will locate all the changes on 'trunk' that have not yet\n"
" been merged into the 'feature' branch. In this case that is a single\n"
" range, r100:200. In the diagram above, L marks the left side (trunk@100)\n"
@@ -12767,23 +15311,47 @@ msgid ""
" path. In this case, the working copy is a clean checkout of the entire\n"
" 'feature' branch.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1086
+msgid ""
" To perform this sync merge, have a clean working copy of the feature\n"
" branch and run the following command in its top-level directory:\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1089
+msgid ""
" svn merge ^/trunk\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1091
+msgid ""
" Note that the merge is now only in your local working copy and still\n"
" needs to be committed to the repository so that it can be seen by\n"
" others. You can review the changes and you may have to resolve\n"
" conflicts before you commit the merge.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1096
+msgid ""
" - Reintegrate Merge Example -\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1098
+msgid ""
" The feature branch was last synced with trunk up to revision X. So the\n"
" difference between trunk@X and feature@HEAD contains the complete set\n"
" of changes that implement the feature, and no other changes. These\n"
" changes are applied to trunk.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1103
+msgid ""
" rW rX\n"
" trunk ------+--------------------L------------------o\n"
" \\ . ^\n"
@@ -12791,57 +15359,108 @@ msgid ""
" \\ . /\n"
" feature +--------------------------------R\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1110
+msgid ""
" In the diagram above, L marks the left side (trunk@X) and R marks the\n"
" right side (feature@HEAD) of the merge. The difference between the\n"
" left and right side is merged into trunk, the target.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1114
+msgid ""
" To perform the merge, have a clean working copy of trunk and run the\n"
" following command in its top-level directory:\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1117
+msgid ""
" svn merge ^/feature\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1119
+msgid ""
" To prevent unnecessary merge conflicts, a reintegrate merge requires\n"
" that TARGET_WCPATH is not a mixed-revision working copy, has no local\n"
" modifications, and has no switched subtrees.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1123
+msgid ""
" A reintegrate merge also requires that the source branch is coherently\n"
" synced with the target -- in the above example, this means that all\n"
" revisions between the branch point W and the last merged revision X\n"
" are merged to the feature branch, so that there are no unmerged\n"
" revisions in-between.\n"
"\n"
-"\n"
+msgstr ""
+
+#: ../svn/svn.c:1130
+msgid ""
" 2. This form is called a 'cherry-pick' merge:\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1132
+msgid ""
" svn merge [-c M[,N...] | -r N:M ...] SOURCE[@REV] [TARGET_WCPATH]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1134
+msgid ""
" A cherry-pick merge is used to merge specific revisions (or revision\n"
" ranges) from one branch to another. By default, this uses merge\n"
" tracking to automatically skip any revisions that have already been\n"
" merged to the target; you can use the --ignore-ancestry option to\n"
" disable such skipping.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1140
+msgid ""
" SOURCE is usually a URL. The optional '@REV' specifies only the peg\n"
" revision of the URL and does not affect the merge range; if REV is not\n"
" specified, the HEAD revision is assumed. If SOURCE is a working copy\n"
" path, the corresponding URL of the path is used, and the default value\n"
" of 'REV' is the base revision (usually the revision last updated to).\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1146 ../svn/svn.c:1217
+msgid ""
" TARGET_WCPATH is a working copy path; if omitted, '.' is generally\n"
" assumed. The special cases noted above in the 'complete' merge form\n"
" also apply here.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1150
+msgid ""
" The revision ranges to be merged are specified by the '-r' and/or '-c'\n"
" options. '-r N:M' refers to the difference in the history of the\n"
" source branch between revisions N and M. You can use '-c M' to merge\n"
" single revisions: '-c M' is equivalent to '-r <M-1>:M'. Each such\n"
" difference is applied to TARGET_WCPATH.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1156
+msgid ""
" If the mergeinfo in TARGET_WCPATH indicates that revisions within the\n"
" range were already merged, changes made in those revisions are not\n"
" merged again. If needed, the range is broken into multiple sub-ranges,\n"
" and each sub-range is merged separately.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1161
+msgid ""
" A 'reverse range' can be used to undo changes. For example, when\n"
" source and target refer to the same branch, a previously committed\n"
" revision can be 'undone'. In a reverse range, N is greater than M in\n"
@@ -12849,14 +15468,30 @@ msgid ""
" is equivalent to '-r M:<M-1>'. Undoing changes like this is also known\n"
" as performing a 'reverse merge'.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1168
+msgid ""
" Multiple '-c' and/or '-r' options may be specified and mixing of\n"
" forward and reverse ranges is allowed.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1171
+msgid ""
" - Cherry-pick Merge Example -\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1173
+msgid ""
" A bug has been fixed on trunk in revision 50. This fix needs to\n"
" be merged from trunk onto the release branch.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1176
+msgid ""
" 1.x-release +-----------------------o-----\n"
" / ^\n"
" / |\n"
@@ -12864,33 +15499,72 @@ msgid ""
" trunk ------+--------------------------LR-----\n"
" r50\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1183
+msgid ""
" In the above diagram, L marks the left side (trunk@49) and R marks the\n"
" right side (trunk@50) of the merge. The difference between the left\n"
" and right side is applied to the target working copy path.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1187
+msgid ""
" Note that the difference between revision 49 and 50 is exactly those\n"
" changes that were committed in revision 50, not including changes\n"
" committed in revision 49.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1191
+msgid ""
" To perform the merge, have a clean working copy of the release branch\n"
" and run the following command in its top-level directory; remember\n"
" that the default target is '.':\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1195
+msgid ""
" svn merge -c50 ^/trunk\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1197
+msgid ""
" You can also cherry-pick several revisions and/or revision ranges:\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1199
+msgid ""
" svn merge -c50,54,60 -r65:68 ^/trunk\n"
"\n"
-"\n"
+msgstr ""
+
+#: ../svn/svn.c:1202
+msgid ""
" 3. This form is called a '2-URL merge':\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1204
+msgid ""
" svn merge SOURCE1[@REV1] SOURCE2[@REV2] [TARGET_WCPATH]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1206
+msgid ""
" You should use this merge variant only if the other variants do not\n"
" apply to your situation, as this variant can be quite complex to\n"
" master.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1210
+msgid ""
" Two source URLs are specified, identifying two trees on the same\n"
" branch or on different branches. The trees are compared and the\n"
" difference from SOURCE1@REV1 to SOURCE2@REV2 is applied to the\n"
@@ -12898,23 +15572,39 @@ msgid ""
" branch may be the same as one or both sources, or different again.\n"
" The three branches involved can be completely unrelated.\n"
"\n"
-" TARGET_WCPATH is a working copy path; if omitted, '.' is generally\n"
-" assumed. The special cases noted above in the 'complete' merge form\n"
-" also apply here.\n"
-"\n"
+msgstr ""
+
+#: ../svn/svn.c:1221
+msgid ""
" SOURCE1 and/or SOURCE2 can also be specified as a working copy path,\n"
" in which case the merge source URL is derived from the working copy.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1224
+msgid ""
" - 2-URL Merge Example -\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1226
+msgid ""
" Two features have been developed on separate branches called 'foo' and\n"
" 'bar'. It has since become clear that 'bar' should be combined with\n"
" the 'foo' branch for further development before reintegration.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1230
+msgid ""
" Although both feature branches originate from trunk, they are not\n"
" directly related -- one is not a direct copy of the other. A 2-URL\n"
" merge is necessary.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1234
+msgid ""
" The 'bar' branch has been synced with trunk up to revision 500.\n"
" (If this revision number is not known, it can be located using the\n"
" 'svn log' and/or 'svn mergeinfo' commands.)\n"
@@ -12922,6 +15612,10 @@ msgid ""
" set of changes related to feature 'bar', and no other changes. These\n"
" changes are applied to the 'foo' branch.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1241
+msgid ""
" foo +-----------------------------------o\n"
" / ^\n"
" / /\n"
@@ -12932,40 +15626,83 @@ msgid ""
" \\ . /\n"
" bar +-----------------------------------R\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1251
+msgid ""
" In the diagram above, L marks the left side (trunk@500) and R marks\n"
" the right side (bar@HEAD) of the merge. The difference between the\n"
" left and right side is applied to the target working copy path, in\n"
" this case a working copy of the 'foo' branch.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1256
+msgid ""
" To perform the merge, have a clean working copy of the 'foo' branch\n"
" and run the following command in its top-level directory:\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1259
+msgid ""
" svn merge ^/trunk@500 ^/bar\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1261
+msgid ""
" The exact changes applied by a 2-URL merge can be previewed with svn's\n"
" diff command, which is a good idea to verify if you do not have the\n"
" luxury of a clean working copy to merge to. In this case:\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1265
+msgid ""
" svn diff ^/trunk@500 ^/bar@HEAD\n"
"\n"
-"\n"
+msgstr ""
+
+#: ../svn/svn.c:1268
+msgid ""
" The following applies to all types of merges:\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1270
+msgid ""
" To prevent unnecessary merge conflicts, svn merge requires that\n"
" TARGET_WCPATH is not a mixed-revision working copy. Running 'svn update'\n"
" before starting a merge ensures that all items in the working copy are\n"
" based on the same revision.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1275
+msgid ""
" If possible, you should have no local modifications in the merge's target\n"
" working copy prior to the merge, to keep things simpler. It will be\n"
" easier to revert the merge and to understand the branch's history.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1279
+msgid ""
" Switched sub-paths should also be avoided during merging, as they may\n"
" cause incomplete merges and create subtree mergeinfo.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1282
+msgid ""
" For each merged item a line will be printed with characters reporting the\n"
" action taken. These characters have the following meaning:\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1285 ../svn/svn.c:2012
+msgid ""
" A Added\n"
" D Deleted\n"
" U Updated\n"
@@ -12974,14 +15711,26 @@ msgid ""
" E Existed\n"
" R Replaced\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1293
+msgid ""
" Characters in the first column report about the item itself.\n"
" Characters in the second column report about properties of the item.\n"
" A 'C' in the third column indicates a tree conflict, while a 'C' in\n"
" the first and second columns indicate textual conflicts in files\n"
" and in property values, respectively.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1299
+msgid ""
" - Merge Tracking -\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1301
+msgid ""
" Subversion uses the svn:mergeinfo property to track merge history. This\n"
" property is considered at the start of a merge to determine what to merge\n"
" and it is updated at the conclusion of the merge to describe the merge\n"
@@ -12991,11 +15740,24 @@ msgid ""
" other). This is verified and enforced when using sync merges and\n"
" reintegrate merges.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1310
+msgid ""
" The --ignore-ancestry option prevents merge tracking and thus ignores\n"
" mergeinfo, neither considering it nor recording it.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1313
+#, fuzzy
+msgid ""
" - Merging from foreign repositories -\n"
"\n"
+msgstr "-- Zusammenführen (aus fremden Projektarchiv) von r%ld in »%s«:\n"
+
+#: ../svn/svn.c:1315
+msgid ""
" Subversion does support merging from foreign repositories.\n"
" While all merge source URLs must point to the same repository, the merge\n"
" target working copy may come from a different repository than the source.\n"
@@ -13004,398 +15766,21 @@ msgid ""
" target. Also, merge-tracking is not supported for merges from foreign\n"
" repositories.\n"
msgstr ""
-"Führt Änderungen aus dem Projektarchiv in einer Arbeitskopie zusammen.\n"
-"Aufruf: 1. merge QUELLE[@REV] [ZIEL_AKPfad]\n"
-" (»vollständige« Zusammenführung)\n"
-" 2. merge [-c M[,N...] | -r N:M ...] QUELLE[@REV] [ZIEL_AKPfad]\n"
-" (Zusammenführung einzelner ausgewählter Änderungen)\n"
-" 3. merge QUELLE1[@REV1] QUELLE2[@REV2] [ZIEL_AKPfad]\n"
-" (Zusammenführung der Unterschiede zweier URLs)\n"
-"\n"
-" 1. Diese Form, mit einem Quellpfad und keinem Revisionsbereich wird\n"
-" »vollständige« Zusammenführung genannt:\n"
-"\n"
-" svn merge QUELLE[@REV] [ZIEL_AKPfad]\n"
-"\n"
-" Die vollständige Zusammenführung wird für die Synchronisation und\n"
-" die Reintegration von Zweigen (nach dem Muster »Feature Branch«,\n"
-" s.u.) verwendet. Sie findet alle Änderungen in einem Quellpfad, die\n"
-" noch nicht in das Ziel eingebracht wurden, und führt sie mit\n"
-" Arbeitskopie zusammen. Die Zusammenführungsverfolgung wird für die\n"
-" Erkennung schon eingebrachter Änderungen verwendet.\n"
-"\n"
-" QUELLE ist der Zweig von dem die Änderungen geholt werden, und\n"
-" ZIEL_AKPfad eine Arbeitskopie des Zielzweigs, auf die die Änderungen\n"
-" angewendet werden. Normalerweise sollten QUELLE und ZIEL_AKPfad\n"
-" auf das Wurzelverzeichnis eines Zweigs zeigen. (Wenn nur ein\n"
-" Unterbaum zusammengeführt werden soll, muss sein Pfad sowohl in\n"
-" QUELLE als auch in ZIEL_AKPfad enthalten sein; Dies ist nicht\n"
-" empfohlen, um Zusammenführungsinformationen auf Unterbäumen zu\n"
-" vermeiden.)\n"
-"\n"
-" QUELLE ist im Normalfall eine URL. Die optionale Angabe von »@REV«\n"
-" gibt sowohl die Fix-Revision zum Auffinden des Pfades als auch die\n"
-" letzte Revision an, die für die Zusammenführung in Betracht\n"
-" gezogen wird. Ist REV nicht angegeben, wird »HEAD« angenommen. Ist\n"
-" QUELLE der Pfad einer Arbeitskopie, wird die damit zusammenhängende\n"
-" URL verwendet. Die Basisversion der Arbeitskopie wird dann als REV\n"
-" verwendet, dies ist meist die letzte Revision, auf die die\n"
-" Arbeitskopie aktualisiert wurde.\n"
-"\n"
-" ZIEL_AKPfad ist ein Arbeitskopiepfad; Fehlt die Angabe, wird\n"
-" allgemein das aktuelle Arbeitsverzeichnis ».« angenommen. Es gibt\n"
-" folgende Sonderfälle:\n"
-"\n"
-" - wenn QUELLE eine URL ist:\n"
-"\n"
-" - Sind der Basisname der URL und er Basisname von ».« gleich\n"
-" so werden die Unterschiede auf ».« angewandt. Andernfalls,\n"
-" falls eine Datei mit dem gleichen Basisnamen die jeder der\n"
-" URL in ».« vorhanden ist, werden die Unterschiede auf diese\n"
-" Datei angewandt. In allen anderen Fällen wird als Ziel ».«\n"
-" verwendet.\n"
-"\n"
-" - wenn QUELLE ein Arbeitskopiepfad ist:\n"
-"\n"
-" - Wenn QUELLE eine Datei ist, werden die Unterschiede auf\n"
-" diese Datei angewandt (Hilfreich beim rückwärtigen\n"
-" Zusammenführen früherer Änderungen). Andernfalls, wenn es\n"
-" sich um ein Verzeichnis handelt, wird als Ziel ».«\n"
-" verwendet.\n"
-"\n"
-" Im Normalgebrauch ist die Arbeitskopie auf dem neuesten Stand, auf\n"
-" einer einzigen Revision, ohne lokale Änderungen und ohne umgestellte\n"
-" Unterbäume.\n"
-"\n"
-" - Muster »Feature Branch« für Zusammenführungen von Codezweigen -\n"
-"\n"
-" In diesem sehr gebräuchlichen, auch »Entwicklungszweige« genannten\n"
-" Arbeitsschema, erzeugt ein Entwickler einen Zweig und überträgt eine\n"
-" Zahl von Revisionen für die Umsetzung einer neuen Funktion. Der\n"
-" Entwickler führt regelmäßig Änderungen des Übergeordneten Zweiges\n"
-" zusammen, um seinen Entwicklungszweig mit diesen Änderungen aktuell\n"
-" zu halten. Wenn die neue Funktion fertiggestellt ist, führt der\n"
-" Entwickler eine Zusammenführung vom Entwicklungszweig in den\n"
-" übergeordneten Zweig zur Reintegration der Änderungen aus.\n"
-"\n"
-" Haupt- --+----------o------o-o-------------o------\n"
-" zweig \\ \\ \\ /\n"
-" \\ Zusammenf. Zusammenf. Zusammenf.\n"
-" \\ \\ \\ /\n"
-" Entwicklungs- +--o-o-------o----o-o----o-----------\n"
-" zweig\n"
-"\n"
-" Eine Zusammenführung vom einem übergeordneten Zweig in einen\n"
-" Entwicklungszweig wird als »sync« (Synchronisation) oder »catch-up«\n"
-" (Aufholen) bezeichnet. Eine Zusammenführung vom Entwicklungszweig in\n"
-" den übergeordneten Zweig dagegen »reintegrate« (Reintegration).\n"
-"\n"
-" - Beispiel für Zusammenführung zur Synchronisation -\n"
-" ............\n"
-" . .\n"
-" trunk --+------------L--------------R------\n"
-" \\ \\\n"
-" \\ |\n"
-" \\ v\n"
-" feature +------------------------o-----\n"
-" r100 r200\n"
-"\n"
-" Subversion wird alle Änderungen in »trunk« ermitteln, die noch nicht\n"
-" in den Entwicklungszweig »feature« zusammengeführt wurden. In diesem\n"
-" Fall ist es ein einziger Revisionsbereich, r100:200. Im Diagramm oben\n"
-" markiert »L« die linke Seite (trunk@100), während »R« die rechte Seite\n"
-" (trunk@200) anzeigt. Der Unterschied zwischen »L« und »R« wird auf den\n"
-" Zielpfad in einer Arbeitskopie angewandt. In diesem Beispiel ist dies\n"
-" eine Arbeitskopie des gesamten Entwicklungszweigs ohne lokale\n"
-" Änderungen.\n"
-"\n"
-" Um die Zusammenführung zur Synchronisation auszuführen, verwenden Sie\n"
-" eine Arbeitskopie des Entwicklungszweigs und führen Sie dieses\n"
-" Kommando im obersten Verzeichnis aus:\n"
-"\n"
-" svn merge ^/trunk\n"
-"\n"
-" Beachten Sie, dass sich die Änderungen dieser Zusammenführung dann\n"
-" nur in Ihrer Arbeitskopie befinden und noch in das Projektarchiv\n"
-" übertragen werden müssen, damit sie von anderen Benutzern gesehen\n"
-" werden können. Sie können die Änderungen überprüfen und müssen\n"
-" aufgetretene Konflikte auflösen, bevor Sie die Zusammenführung\n"
-" übertragen.\n"
-"\n"
-" - Beispiel für Zusammenführung zur Reintegration -\n"
-"\n"
-" Der Entwicklungszweig »feature« wurde zuletzt bis zu Revision »X«\n"
-" mit dem Hauptzweig »trunk« synchronisiert. Daher stellt der\n"
-" Unterschied zwischen »trunk@X« und »feature@HEAD« die gesamte\n"
-" Implementierung der neuen Funktion dar, und keine weiteren Änderungen.\n"
-" Diese Änderungen werden nach »trunk« eingebracht.\n"
-"\n"
-" rW rX\n"
-" trunk ------+--------------------L------------------o\n"
-" \\ . ^\n"
-" \\ ............. /\n"
-" \\ . /\n"
-" feature +--------------------------------R\n"
-"\n"
-" Im Diagramm oben markiert »L« die linke Seite (trunk@X), während »R«\n"
-" die rechte Seite (feature@HEAD) der Zusammenführung anzeigt. Der\n"
-" Unterschied zwischen der linken und der rechten Seite wird auf »trunk«\n"
-" als Ziel angewandt.\n"
-"\n"
-" Um die Zusammenführung zur Reintegratoin auszuführen, verwenden Sie\n"
-" eine Arbeitskopie des Entwicklungszweigs »feature« und führen Sie\n"
-" dieses Kommando im obersten Verzeichnis aus:\n"
-"\n"
-" svn merge ^/feature\n"
-"\n"
-" Um unnötige Konflikte zu vermeiden, erfordern Zusammenführungen zur\n"
-" Reintegration eine Arbeitskopie in ZIEL_AKPfad in einer einzelnen\n"
-" Revision, ohne lokale Änderungen oder umgestellte Unterbäume.\n"
-"\n"
-" Eine Zusammenführung zur Reintegration erfordert auch, dass der\n"
-" Quellzweig durchgehend mit dem dem Ziel synchronisiert ist -- im\n"
-" Beispiel oben bedeutet dies, dass alle Revisionen zwischen dem\n"
-" Verzweigungspunkt W und der letzten zusammengeführten Revision X\n"
-" in den Entwicklungszweig zusammengeführt wurden, und es keine nicht\n"
-" zusammengeführten Revisionen zwischen diesen gibt.\n"
-"\n"
-"\n"
-" 2. Diese Form dient der Zusammenführung einzelner ausgewählter\n"
-" Änderungen:\n"
-"\n"
-" svn merge [-c M[,N...] | -r N:M ...] QUELLE[@REV] [ZIEL_AKPfad]\n"
-"\n"
-" Diese Form, auch »cherry-pick« bzw. »Rosinen herauspicken« genannt,\n"
-" führt bestimmte Revisionen (oder Revisionsbereiche) eines Zweiges in\n"
-" einen anderen zusammen. Die Zusammenführungsverfolgung wird verwendet,\n"
-" um schon in dieses Ziel zusammenführte Revisionen automatisch zu\n"
-" überspringen. Verwenden Sie die Option »--ignore-ancestry«, um diese\n"
-" Vorgabe zu deaktivieren.\n"
-"\n"
-" QUELLE ist im Normalfall eine URL. Die optionale Angabe von »@REV«\n"
-" gibt nur Fix-Revision zum Auffinden des Pfades an und beeinflusst\n"
-" nicht den Revisionsbereich für die Zusammenführung. Ist REV nicht\n"
-" angegeben, wird »HEAD« angenommen. Ist QUELLE ein Arbeitskopie-\n"
-" pfad, wird die damit zusammenhängende URL verwendet. Die\n"
-" Basisversion der Arbeitskopie wird dann als REV verwendet, dies ist\n"
-" meist die letzte Revision, auf die sie aktualisiert wurde.\n"
-"\n"
-" ZIEL_AKPfad ist ein Arbeitskopiepfad; Fehlt die Angabe, wird allgemein\n"
-" das aktuelle Arbeitsverzeichnis ».« angenommen. Die unter der Form\n"
-" der vollständigen Zusammenführung erwähnten Sonderfälle finden hier\n"
-" ebenfalls Anwendung.\n"
-"\n"
-" Die zusammenzuführenden Revisionsbereiche werden durch die Optionen\n"
-" »-r« und/oder »-c« angegeben. »-r N:M« bezieht sich auf den\n"
-" Unterschied in der Versionsgeschichte im Quellzweig zwischen den\n"
-" Revisionen N und M. Einzelne Revisionen können mit »-c M«\n"
-" zusammengeführt werden, dabei ist »-c M« gleichbedeutend mit\n"
-" »-r <M-1>:M«. Alle so ausgewählten Unterschiede werden nach\n"
-" ZIEL_AKPfad zusammengeführt.\n"
-"\n"
-" Wenn die Zusammenführungsinformationen in ZIEL_AKPfad anzeigen, dass\n"
-" die Revisionen im angegebenen Bereich schon zusammengeführt wurden,\n"
-" werden Änderungen aus diesen Revisionen nicht erneut zusammengeführt.\n"
-" Falls nötig, wird das Revisionsbereich in Unterbereiche aufgeteilt und\n"
-" jeder Unterbereich getrennt in das Ziel zusammengeführt.\n"
-"\n"
-" Eine »rückwärtige Zusammenführung« kann verwendet werden, um\n"
-" Änderungen rückgängig zu machen. Wenn z.B. Quelle und Ziel sich auf\n"
-" den selben Zweig beziehen, kann eine vorher übertragene Revision\n"
-" rückgängig gemacht werden. Dabei wird der Revisionsbereich umgekehrt,\n"
-" also mit einem N größer M, bei »-r N:M«, oder durch Verwendung einer\n"
-" negativen Zahl »-c -M«, angegeben. »-c -M« ist dabei gleichbedeutend\n"
-" mit »-r M:<M-1>«. Änderungen so rückgängig zu machen ist auch als\n"
-" »reverse merge« bzw. »rückwärtige Zusammenführung« bekannt.\n"
-"\n"
-" Es können mehrere Optionen der Art »-c« und »-r« angegeben werden, die\n"
-" gleichzeitige Angabe von normalen und rückwärtigen Revisionsbereichen\n"
-" ist erlaubt.\n"
-"\n"
-" - Beispiel für Zusammenführung einzelner ausgewählter Änderungen -\n"
-"\n"
-" Ein Programmfehler wurde im Hauptentwicklungszweig »trunk« in Revision\n"
-" 50 behoben. Diese Korrektur soll von dort in den Wartungszweig\n"
-" »1.x-release« zusammengeführt werden.\n"
-"\n"
-" 1.x-release +-----------------------o-----\n"
-" / ^\n"
-" / |\n"
-" / |\n"
-" trunk ------+--------------------------LR-----\n"
-" r50\n"
-"\n"
-" Im Diagramm oben markiert »L« die linke Seite (trunk@49) und R die\n"
-" rechte Seite (trunk@50) der Zusammenführung. Der Unterschied zwischen\n"
-" der linken und der rechten Seite wird auf den Zielpfad in der\n"
-" Arbeitskopie angewandt.\n"
-"\n"
-" Beachten Sie, dass der Unterschied zwischen den Revision 49 und 50\n"
-" genau der Änderung entspricht, die durch Revision 50 übertragen\n"
-" wurde. Änderungen die durch Revision 49 übertragen wurde, sind dagegen\n"
-" nicht enthalten.\n"
-"\n"
-" Um diese Zusammenführung auszuführen, verwenden Sie eine Arbeitskopie\n"
-" ohne lokale Änderungen und führen die dieses Kommando deren obersten\n"
-" Verzeichnis aus. Das vorgegebene Ziel ist ».«, das aktuelle\n"
-" Verzeichnis.\n"
-"\n"
-" svn merge -c50 ^/trunk\n"
-"\n"
-" Sie können auch mehrere Revisionen oder Revisionsbereiche auswählen:\n"
-"\n"
-" svn merge -c50,54,60 -r65:68 ^/trunk\n"
-"\n"
-"\n"
-" 3. Diese Form dient der Zusammenführung der Unterschiede zweier URLs:\n"
-"\n"
-" svn merge QUELLE1[@REV1] QUELLE2[@REV2] [ZIEL_AKPfad]\n"
-"\n"
-" Diese Variante sollte nur verwendet werden, denn die vorherigen nicht\n"
-" auf die vorliegende Situation zutreffen, da sie unter Umständen\n"
-" komplex zu handhaben ist.\n"
-"\n"
-" Zwei Quell-URLs werden angegeben, die zwei Verzeichnisbäume im selben\n"
-" oder in verschiedenen Zweigen identfizieren. Diese werden verglichen,\n"
-" und der Unterschied zwischen QUELLE1@REV1 und QUELLE2@REV2 auf die\n"
-" Arbeitskopie des Zielzweigs in ZIEL_AKPfad angewandt. Der Zielzweig\n"
-" kann dabei einem der beiden Quellen entsprechen, oder kann wieder\n"
-" verschieden sein. Die drei involvierten Zweige müssen nicht in einer\n"
-" Beziehung zueinander stehen.\n"
-"\n"
-" ZIEL_AKPfad ist ein Arbeitskopiepfad; Fehlt die Angabe, wird allgemein\n"
-" das aktuelle Arbeitsverzeichnis ».« angenommen. Die unter der Form\n"
-" der vollständigen Zusammenführung erwähnten Sonderfälle finden hier\n"
-" ebenfalls Anwendung.\n"
-"\n"
-" QUELLE1 und/oder QUELLE2 können auch als ein Pfad in einer\n"
-" Arbeitskopie angegeben werden. In diesem Fall wird URL für die\n"
-" Zusammenführung aus dieser Arbeitskopie abgeleitet.\n"
-"\n"
-" - Beispiel für Zusammenführung der Unterschiede zweier URLs -\n"
-"\n"
-"\n"
-" Zwei neue Funktionen wurden in getrennten Entwicklungszweigen »foo«\n"
-" und »bar« entwickelt. Danach wurde klar, dass »bar« mit »foo«\n"
-" kombiniert werden sollte, vor weiterer Entwicklung und Reintegration\n"
-" in den Hauptzweig »trunk«.\n"
-"\n"
-" Obwohl beide Entwicklungszweige von Hauptzweig »trunk« ausgehen, sind\n"
-" sie nicht direkt verwandt - sie sind nicht direkte Kopien voneinander.\n"
-" Eine Zusammenführung der Unterschiede zweier URLs ist notwendig.\n"
-"\n"
-" »bar« wurde zuvor mit »trunk« bis zu dessen Revision 500\n"
-" synchronisiert. (Falls diese Revisionsnummer nicht bekannt ist, kann\n"
-" sie mit den Befehlen »svn log« und/oder »svn mergeinfo« ermittelt\n"
-" werden.)\n"
-" Der Unterschied zwischen trunk@500 und bar@HEAD enthält also die\n"
-" komplette Menge an Unterschieden, die die in diesem Zweig entwickelte\n"
-" Funktion ausmachen, und keine weiteren Unterschiede. Diese Änderungen\n"
-" werden jetzt auf den »bar« angewandt.\n"
-"\n"
-" foo +-----------------------------------o\n"
-" / ^\n"
-" / /\n"
-" / r500 /\n"
-" trunk ------+------+-----------------L---------> /\n"
-" \\ . /\n"
-" \\ ............ /\n"
-" \\ . /\n"
-" bar +-----------------------------------R\n"
-"\n"
-" Im Diagramm oben markiert »L« die linke Seite (trunk@500) und R die\n"
-" rechte Seite (bar@HEAD) der Zusammenführung. Der Unterschied zwischen\n"
-" der linken und der rechten Seite wird auf den Zielpfad in der\n"
-" Arbeitskopie angewandt. In diesem Fall ist dies eine Arbeitskopie des\n"
-" Entwicklungszweigs »foo«\n"
-"\n"
-" Um diese Zusammenführung auszuführen, verwenden Sie eine Arbeitskopie\n"
-" des Entwicklungszweigs »foo« ohne lokale Änderungen und führen die\n"
-" dieses Kommando im obersten Verzeichnis aus:\n"
-"\n"
-" svn merge ^/trunk@500 ^/bar\n"
-"\n"
-" Die genauen Änderungen, die durch die Zusammenführung der Unterschiede\n"
-" zweier URLs angewandt werden, können mit Hilfe des Kommandos »svn diff«\n"
-" im Voraus begutachtet werden. Diese Erfordert dann keine Arbeitskopie.\n"
-" In diesem Fall:\n"
-"\n"
-" svn diff ^/trunk@500 ^/bar@HEAD\n"
-"\n"
-"\n"
-" Folgendes trifft auf alle Zusammenführungen zu:\n"
-"\n"
-" Zur Vermeidung unnötiger Zusammenführungskonflikte erfordert »svn merge«,\n"
-" dass ZIEL_AKPfad keine Arbeitskopie mit verschiedenen Revision ist.\n"
-" Führen Sie »svn update« aus, um vor der Zusammenführung sicherzustellen,\n"
-" dass sich alle Objekte der Arbeitskopie auf der selben Revision befinden.\n"
-"\n"
-" Wenn möglich sollten sich vor der Zusammenführung der Einfachheit halber\n"
-" im Ziel der Zusammenführung keine lokalen Änderungen befinden. Es wird\n"
-" so einfacher, eine Zusammenführung rückgängig zu machen und die\n"
-" Geschichte des Zweigs zu verstehen.\n"
-"\n"
-" Umgestellte Unterbäume sollten ebenfalls bei Zusammenführungen vermieden\n"
-" werden, das sie unvollständige Zusammenführungen zur Folge haben können\n"
-" und Zusammenführungsinformationen auf Unterbäumen erzeugen.\n"
-"\n"
-" Für jedes zusammengeführte Objekt wird eine Zeile mit einem Buchstaben\n"
-" für die durchgeführte Aktion ausgegeben. Diese haben die folgenden\n"
-" Bedeutungen:\n"
-"\n"
-" A Added - Hinzugefügt\n"
-" D Deleted - Gelöscht\n"
-" U Updated - Aktualisiert\n"
-" C Conflict - Konflikt\n"
-" G Merged - Zusammengeführt\n"
-" E Existed - Existierend\n"
-" R Replaced - Ersetzt\n"
-"\n"
-" Ein Buchstabe in der ersten Spalte gibt Informationen über das Objekt\n"
-" selbst. Buchstaben in der zweiten Spalte betreffen Eigenschaften des\n"
-" Objekts. Ein »C« in der dritten Spalte zeigt einen Baumkonflikt an,\n"
-" während es in der ersten und zweiten Spalte jeweils einen Konflikt im\n"
-" Text bzw. einer Eigenschaft anzeigt.\n"
-"\n"
-" - Zusammenführungsverfolgung -\n"
-"\n"
-" Subversion verwendet die Eigenschaft »svn:mergeinfo«, um die Geschichte\n"
-" von Zusammenführungen aufzuzeichnen. Diese Eigenschaft wird zu Beginn\n"
-" der Zusammenführung ausgewertet, um die zusammenzuführenden Änderungen\n"
-" zu erhalten. Sie wird am Ende der Zusammenführung aktualisiert, um die\n"
-" vorgenommene Zusammenführung zu beschreiben. Dabei werden Informationen\n"
-" zur Zusammenführung nur verwendet, wenn die beiden Quellen sich auf der\n"
-" gleichen Linie in der Versionsgeschichte befinden -- d.h. die erste\n"
-" Quelle ist ein Vorfahre der zweiten oder umgekehrt (z.B. wenn eine Quelle\n"
-" ursprünglich die Kopie der anderen war). Diese Bedingung wird bei\n"
-" Zusammenführungen zur Synchronisation und zur Reintegration überprüft und\n"
-" durchgesetzt.\n"
-"\n"
-" Die Option »--ignore-ancestry« verhindert die Zusammenführungsverfolgung\n"
-" und ignoriert damit Zusammenführungsinformationen, sie werden weder\n"
-" in Betracht gezogen noch aufgezeichnet.\n"
-"\n"
-" - Zusammenführungen aus einem fremdem Projektarchiv -\n"
-"\n"
-" Subversion unterstützt Zusammenführungen aus fremdem Projektarchiven.\n"
-" Während alle URLs für Quellen der Zusammenführung auf das selbe\n"
-" Projektarchiv zeigen müssen, kann sich die Arbeitskopie als Ziel auf ein\n"
-" davon verschiedenes Projektarchiv beziehen. Es gibt aber folgende\n"
-" Umstände, die es zu beachten gilt: In der Quelle durchgeführte Kopien\n"
-" werden in einfache Hinzufügungen im Ziel umgewandelt. Weiterhin wird\n"
-" eine Zusammenführungsverfolgung bei Zusammenführungen aus fremdem\n"
-" Projektarchiven nicht unterstützt.\n"
-
-#: ../svn/svn.c:1213
+
+#: ../svn/svn.c:1326
msgid "force deletions even if deleted contents don't match"
msgstr "Löscht Elemente auch wenn deren Inhalt nicht übereinstimmt"
-#: ../svn/svn.c:1217
+#: ../svn/svn.c:1330
msgid ""
"Display merge-related information.\n"
"usage: 1. mergeinfo SOURCE[@REV] [TARGET[@REV]]\n"
" 2. mergeinfo --show-revs=WHICH SOURCE[@REV] [TARGET[@REV]]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1334
+msgid ""
" 1. Summarize the history of merging between SOURCE and TARGET. The graph\n"
" shows, from left to right:\n"
" the youngest common ancestor of the branches;\n"
@@ -13403,107 +15788,94 @@ msgid ""
" that will be used for the next complete merge;\n"
" the repository path and revision number of the tip of each branch.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1341
+msgid ""
" 2. Print the revision numbers on SOURCE that have been merged to TARGET\n"
" (with --show-revs=merged), or that have not been merged to TARGET\n"
" (with --show-revs=eligible). Print only revisions in which there was\n"
" at least one change in SOURCE.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1346
+msgid ""
" If --revision (-r) is provided, filter the displayed information to\n"
" show only that which is associated with the revisions within the\n"
" specified range. Revision numbers, dates, and the 'HEAD' keyword are\n"
" valid range values.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1351
+msgid ""
" SOURCE and TARGET are the source and target branch URLs, respectively.\n"
" (If a WC path is given, the corresponding base URL is used.) The default\n"
" TARGET is the current working directory ('.'). REV specifies the revision\n"
" to be considered the tip of the branch; the default for SOURCE is HEAD,\n"
" and the default for TARGET is HEAD for a URL or BASE for a WC path.\n"
"\n"
-" The depth can be 'empty' or 'infinity'; the default is 'empty'.\n"
msgstr ""
-"Zeigt relevante Informationen zu Zusammenführungen an.\n"
-"Aufruf: 1. mergeinfo QUELLE[@REV] [ZIEL[@REV]]\n"
-" 2. mergeinfo --show-revs=WAS QUELLE[@REV] [ZIEL[@REV]]\n"
-"\n"
-" 1. Fasst die Geschichte der Zusammenführungen zwischen QUELLE\n"
-" und ZIEL zusammen. Die Grafik zeigt von links nach rechts:\n"
-" den jüngsten gemeinsamen Vorfahren der Zweige; die letzte vollständige Zusammenführung in eine der Richtungen, und\n"
-" damit die Basis der nächste vollständigen Zusammenführung;\n"
-" den Pfad im Projektarchiv und die Revisionsnummer der Spitzen\n"
-" jedes Zweigs.\n"
-"\n"
-" 2. Zeigt Revisionsnummern an, die von QUELLE, die nach ZIEL\n"
-" zusammengeführt wurden (mit »--show-revs=merged«), bzw.\n"
-" nicht zusammengeführt wurden (mit »--show-revs=eligible«).\n"
-" Gibt nur Revisionen aus, wenn QUELLE mindestens eine\n"
-" Änderung hat.\n"
-"\n"
-" Die Angabe von »--revision« (»-r«) schränkt die Anzeige auf diesen\n"
-" Revisionsbereich ein. Revisionsnummern, Datumsangaben und\n"
-" das Schlüsselwort »HEAD« sind gültige Angaben.\n"
-"\n"
-" QUELLE und ZIEL sind jeweils URLs der Quell- und Ziel-Zweige.\n"
-" (Wenn ein Arbeitskopiepfad angegeben ist, wird die entsprechende\n"
-" Basis-URL verwendet.) Die Vorgabe für ZIEL ist das aktuelle\n"
-" Verzeichnis (».«). REV gibt die Revision an, die als Spitze des Zweigs\n"
-" angenommen werden soll, die Vorgabe für QUELLE ist »HEAD«.\n"
-" Die Vorgabe für ZIEL ist »HEAD« bei URLs und »BASE« bei Pfaden\n"
-" in einer Arbeitskopie.\n"
-"\n"
-" Die Tiefe kann »empty« oder »infinity« sein, Vorgabe ist »empty«.\n"
-#: ../svn/svn.c:1249
+#: ../svn/svn.c:1357
+msgid " The depth can be 'empty' or 'infinity'; the default is 'empty'.\n"
+msgstr ""
+
+#: ../svn/svn.c:1363
msgid ""
"Create a new directory under version control.\n"
"usage: 1. mkdir PATH...\n"
" 2. mkdir URL...\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1367
+#, fuzzy
+msgid ""
" Create version controlled directories.\n"
"\n"
+msgstr "Keine versionierten Elternverzeichnisse"
+
+#: ../svn/svn.c:1369
+msgid ""
" 1. Each directory specified by a working copy PATH is created locally\n"
" and scheduled for addition upon the next commit.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1372
+msgid ""
" 2. Each directory specified by a URL is created in the repository via\n"
" an immediate commit.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1375
+msgid ""
" In both cases, all the intermediate directories must already exist,\n"
" unless the --parents option is given.\n"
msgstr ""
-"Erzeugt ein neues Verzeichnis unter Versionskontrolle.\n"
-"Aufruf: 1. mkdir PFAD...\n"
-" 2. mkdir URL...\n"
-"\n"
-" Erzeugt Verzeichnisse unter Versionskontrolle.\n"
-"\n"
-" 1. Jedes durch den PFAD einer Arbeitskopie spezifizierte Verzeichnis wird\n"
-" lokal erzeugt und zum Hinzufügen bei der nächsten Übertragung eingeplant.\n"
-"\n"
-" 2. Jedes durch eine URL spezifizierte Verzeichnis wird mittels einer\n"
-" sofortigen Ãœbertragung im Projektarchiv angelegt.\n"
-"\n"
-" In beiden Fällen müssen alle Zwischenverzeichnisse bereits existieren,\n"
-" es sei denn, die Option --parents wurde angegeben.\n"
-#: ../svn/svn.c:1266
+#: ../svn/svn.c:1381
msgid ""
"Move (rename) an item in a working copy or repository.\n"
"usage: move SRC... DST\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1384
+#, fuzzy
+msgid ""
" SRC and DST can both be working copy (WC) paths or URLs:\n"
" WC -> WC: move an item in a working copy, as a local change to\n"
" be committed later (with or without further changes)\n"
" URL -> URL: move an item in the repository directly, immediately\n"
" creating a new revision in the repository\n"
-" All the SRCs must be of the same type. When moving multiple sources,\n"
-" they will be added as children of DST, which must be a directory.\n"
+" All the SRCs must be of the same type. If DST is an existing directory,\n"
+" the sources will be added as children of DST. When moving multiple\n"
+" sources, DST must be an existing directory.\n"
"\n"
-" SRC and DST of WC -> WC moves must be committed in the same revision.\n"
-" Furthermore, WC -> WC moves will refuse to move a mixed-revision subtree.\n"
-" To avoid unnecessary conflicts, it is recommended to run 'svn update'\n"
-" to update the subtree to a single revision before moving it.\n"
-" The --allow-mixed-revisions option is provided for backward compatibility.\n"
-"\n"
-" The --revision option has no use and is deprecated.\n"
msgstr ""
"Verschiebt oder benennt ein Objekt in der Arbeitskopie oder im Projektarchiv um.\n"
"Aufruf: move QUELLE... ZIEL\n"
@@ -13520,19 +15892,40 @@ msgstr ""
"\n"
" Die Option »--revision« ist funktionslos und veraltet.\n"
-#: ../svn/svn.c:1288
+#: ../svn/svn.c:1393
+msgid ""
+" SRC and DST of WC -> WC moves must be committed in the same revision.\n"
+" Furthermore, WC -> WC moves will refuse to move a mixed-revision subtree.\n"
+" To avoid unnecessary conflicts, it is recommended to run 'svn update'\n"
+" to update the subtree to a single revision before moving it.\n"
+" The --allow-mixed-revisions option is provided for backward compatibility.\n"
+msgstr ""
+
+#: ../svn/svn.c:1404
msgid ""
"Apply a patch to a working copy.\n"
"usage: patch PATCHFILE [WCPATH]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1407
+msgid ""
" Apply a unidiff patch in PATCHFILE to the working copy WCPATH.\n"
" If WCPATH is omitted, '.' is assumed.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1410
+msgid ""
" A unidiff patch suitable for application to a working copy can be\n"
" produced with the 'svn diff' command or third-party diffing tools.\n"
" Any non-unidiff content of PATCHFILE is ignored, except for Subversion\n"
" property diffs as produced by 'svn diff'.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1415
+msgid ""
" Changes listed in the patch will either be applied or rejected.\n"
" If a change does not match at its exact line offset, it may be applied\n"
" earlier or later in the file if a match is found elsewhere for the\n"
@@ -13542,23 +15935,43 @@ msgid ""
" If no matching context can be found for a change, the change conflicts\n"
" and will be written to a reject file with the extension .svnpatch.rej.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1424
+msgid ""
" For each patched file a line will be printed with characters reporting\n"
" the action taken. These characters have the following meaning:\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1427
+msgid ""
" A Added\n"
" D Deleted\n"
" U Updated\n"
" C Conflict\n"
" G Merged (with local uncommitted changes)\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1433
+msgid ""
" Changes applied with an offset or fuzz are reported on lines starting\n"
" with the '>' symbol. You should review such changes carefully.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1436
+msgid ""
" If the patch removes all content from a file, that file is scheduled\n"
" for deletion. If the patch creates a new file, that file is scheduled\n"
" for addition. Use 'svn revert' to undo deletions and additions you\n"
" do not agree with.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1441
+msgid ""
" Hint: If the patch file was created with Subversion, it will contain\n"
" the number of a revision N the patch will cleanly apply to\n"
" (look for lines like '--- foo/bar.txt (revision N)').\n"
@@ -13566,89 +15979,42 @@ msgid ""
" 'svn update -r N', apply the patch, and then update back to the\n"
" HEAD revision. This way, conflicts can be resolved interactively.\n"
msgstr ""
-"Wendet einen Patch auf eine Arbeitskopie an.\n"
-"Aufruf: patch PATCHDATEI [AKPFAD]\n"
-"\n"
-" Wendet Unterschiede im Format Unified Diff aus PATCHDATEI\n"
-" auf eine Arbeitskopie AKPFAD an. Wird AKPFAD weggelassen\n"
-" wird ».« verwendet.\n"
-"\n"
-" Ein Patch im Unidiff-Format, der auf eine Arbeitskopie anwendbar ist,\n"
-" kann mit »svn diff« oder Drittprogrammen erzeugt werden. Inhalte von\n"
-" PATCHDATEI, die nicht dem Unidiff Format entsprechen, werden\n"
-" ignoriert, abgesehen von solchen, die Änderungen an Eigenschaften\n"
-" beschreiben und von »svn diff« erzeugt werden.\n"
-"\n"
-" Im Patch aufgelistete Änderungen werden entweder angewandt oder\n"
-" abgewiesen. Wenn eine Änderung nicht genau auf die angegebene\n"
-" Stelle passt, aber mit dem gegebenen Kontext weiter oben oder unten\n"
-" in der Datei, kann es dennoch angewandt werden.\n"
-" Eine Änderung kann auch mit Unschärfe angewandt werden. Dabei\n"
-" werden eine oder mehrere Zeilen des Kontextes bei der Suche nach\n"
-" der passenden Stelle für die Änderung ignoriert. Wenn keine solche\n"
-" gefunden wurde, steht die Änderung im Konflikt und wird in eine Datei\n"
-" für abgewiesene Änderungen mit der Erweiterung ».svnpatch.rej«\n"
-" geschrieben.\n"
-"\n"
-" Für jede so geänderte Datei wird eine Zeile mit Buchstaben ausgegeben,\n"
-" die die vorgenommene Änderung mit folgender Bedeutung beschreiben:\n"
-"\n"
-" A Added - Hinzugefügt\n"
-" D Deleted - Gelöscht\n"
-" U Updated - Aktualisiert\n"
-" C Conflict - Konflikt\n"
-" G Merged - Zusammengeführt\n"
-"\n"
-" Änderungen, die mit Versatz oder Unschärfe angewandt wurden, werden\n"
-" mit einem »>« am Zeilenanfang markiert und sollten sorgfältig geprüft werden.\n"
-"\n"
-" Wenn ein Patch den gesamten Inhalt einer Datei entfernt, wird diese zur\n"
-" Löschung eingeplant. Wenn ein Patch eine neue Datei erzeugt, wird diese\n"
-" zum Hinzufügen eingeplant. Verwenden Sie »svn revert« um Löschungen\n"
-" oder Hinzufügungen rückgängig zu machen, mit denen Sie nicht einverstanden\n"
-" sind.\n"
-"\n"
-" Hinweis: Wenn eine Patch-Datei mit Subversion erzeugt wurde, enthält sie\n"
-" die Revisionsnummer N, in der der Patch sauber anwendbar ist.\n"
-" (Siehe Zeilen mit »--- verzeichnis/datei.txt (revision N)«).\n"
-" Um abgewiesene Änderungen zu vermeiden, aktualisieren Sie zuerst\n"
-" auf Revision N mit »svn update -r N«, wenden Sie dann den Patch an\n"
-" und aktualisieren Sie dann auf HEAD. Auf diese Weise können\n"
-" Konflikte interaktiv aufgelöst werden.\n"
-
-#: ../svn/svn.c:1336
+
+#: ../svn/svn.c:1452
msgid ""
"Remove a property from files, dirs, or revisions.\n"
"usage: 1. propdel PROPNAME [PATH...]\n"
" 2. propdel PROPNAME --revprop -r REV [TARGET]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1456
+msgid ""
" 1. Removes versioned props in working copy.\n"
" 2. Removes unversioned remote prop on repos revision.\n"
" TARGET only determines which repository to access.\n"
"\n"
-" See 'svn help propset' for descriptions of the svn:* special properties.\n"
msgstr ""
-"Entfernt eine Eigenschaft von Dateien, Verzeichnissen oder\n"
-"Revisionen.\n"
-"Aufruf: 1. propdel PROPNAME [PFAD...]\n"
-" 2. propdel PROPNAME --revprop -r REV [URL]\n"
-"\n"
-" 1. Entfernt eine versionierte Eigenschaft aus der Arbeitskopie.\n"
-" 2. Entfernt eine nicht versionierte Eigenschaft aus dem Projektarchiv.\n"
-"\n"
-" Siehe »svn help propset« für Beschreibungen der speziellen »svn:*«-Eigenschaften.\n"
-#: ../svn/svn.c:1348
+#: ../svn/svn.c:1460 ../svn/svn.c:1473 ../svn/svn.c:1497 ../svn/svn.c:1517
+msgid " See 'svn help propset' for descriptions of the svn:* special properties.\n"
+msgstr ""
+
+#: ../svn/svn.c:1465
msgid ""
"Edit a property with an external editor.\n"
"usage: 1. propedit PROPNAME TARGET...\n"
" 2. propedit PROPNAME --revprop -r REV [TARGET]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1469
+#, fuzzy
+msgid ""
" 1. Edits versioned prop in working copy or repository.\n"
" 2. Edits unversioned remote prop on repos revision.\n"
" TARGET only determines which repository to access.\n"
"\n"
-" See 'svn help propset' for descriptions of the svn:* special properties.\n"
msgstr ""
"Ändert eine Eigenschaft mit einem externen Editor.\n"
"Aufruf: 1. propedit PROPNAME ZIEL...\n"
@@ -13661,108 +16027,101 @@ msgstr ""
"\n"
" Siehe »svn help propset« für Beschreibungen der speziellen »svn:*«-Eigenschaften.\n"
-#: ../svn/svn.c:1360
+#: ../svn/svn.c:1478
msgid ""
"Print the value of a property on files, dirs, or revisions.\n"
"usage: 1. propget PROPNAME [TARGET[@REV]...]\n"
" 2. propget PROPNAME --revprop -r REV [TARGET]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1482
+msgid ""
" 1. Prints versioned props. If specified, REV determines in which\n"
" revision the target is first looked up.\n"
" 2. Prints unversioned remote prop on repos revision.\n"
" TARGET only determines which repository to access.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1487
+msgid ""
" With --verbose, the target path and the property name are printed on\n"
" separate lines before each value, like 'svn proplist --verbose'.\n"
" Otherwise, if there is more than one TARGET or a depth other than\n"
" 'empty', the target path is printed on the same line before each value.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1492
+msgid ""
" By default, an extra newline is printed after the property value so that\n"
" the output looks pretty. With a single TARGET, depth 'empty' and without\n"
" --show-inherited-props, you can use the --no-newline option to disable this\n"
" (useful when redirecting a binary property value to a file, for example).\n"
"\n"
-" See 'svn help propset' for descriptions of the svn:* special properties.\n"
msgstr ""
-"Gibt den Eigenschaftswert von Dateien, Verzeichnissen oder Revisionen aus.\n"
-"Aufruf: 1. propget PROPNAME [ZIEL[@REV]...]\n"
-" 2. propget PROPNAME --revprop -r REV [ZIEL]\n"
-"\n"
-" 1. Gibt versionierte Eigenschaften in der Arbeitskopie aus.\n"
-" REV bestimmt, in welcher Revision zuerst nachgeschaut wird.\n"
-" 2. Gibt nicht versionierte Revisionseigenschaft im Projektarchiv aus.\n"
-" ZIEL legt nur das Projektarchiv fest, auf das zugegriffen wird.\n"
-"\n"
-" Mit »--verbose« wird der Zielpfad und der Name der Eigenschaft auf\n"
-" separaten Zeilen vor jedem Wert ausgegeben, wie »svn proplist --verbose«\n"
-" Andernfalls wird bei mahr als einem ZIEL oder einer von »empty«\n"
-" verschiedenen Tiefe die Pfade auf der selben Zeile ausgegeben.\n"
-"\n"
-" Standardmäßig hängt dieser Unterbefehl eine Leerzeile an das Ende der\n"
-" Eigenschaftswerte an, so dass die Ausgabe hübsch aussieht. Verwenden\n"
-" Sie bei einem einzigen ZIEL, der Tiefe »empty« und ohne\n"
-" --show-inherited-props die Option »--no-newline« um diese Formatierungen\n"
-" abzuschalten. (dies ist z.B. nützlich, um einen binären Eigenschaftswert\n"
-" in eine Datei umzuleiten)\n"
-"\n"
-" Siehe »svn help propset« für Beschreibungen der speziellen »svn:*«-Eigenschaften.\n"
-#: ../svn/svn.c:1382 ../svn/svn.c:1401
+#: ../svn/svn.c:1501 ../svn/svn.c:1521
msgid "print path, name and value on separate lines"
msgstr "Pfad, Name und Wert in getrennten Zeilen ausgeben"
-#: ../svn/svn.c:1383
+#: ../svn/svn.c:1502
msgid "(deprecated; use --no-newline)"
msgstr "Veraltet; siehe »--no-newline«"
-#: ../svn/svn.c:1386
+#: ../svn/svn.c:1505
msgid ""
"List all properties on files, dirs, or revisions.\n"
"usage: 1. proplist [TARGET[@REV]...]\n"
" 2. proplist --revprop -r REV [TARGET]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1509
+msgid ""
" 1. Lists versioned props. If specified, REV determines in which\n"
" revision the target is first looked up.\n"
" 2. Lists unversioned remote props on repos revision.\n"
" TARGET only determines which repository to access.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1514
+msgid ""
" With --verbose, the property values are printed as well, like 'svn propget\n"
" --verbose'. With --quiet, the paths are not printed.\n"
"\n"
-" See 'svn help propset' for descriptions of the svn:* special properties.\n"
msgstr ""
-"Listet alle Eigenschaften von Dateien, Verzeichnissen oder\n"
-"Revisionen auf.\n"
-"Aufruf: 1. proplist [ZIEL[@REV]...]\n"
-" 2. proplist --revprop -r REV [ZIEL]\n"
-"\n"
-" 1. Listet versionierte Eigenschaften in der Arbeitskopie auf.\n"
-" REV bestimmt, in welcher Revision zuerst nachgeschaut wird.\n"
-" 2. Listet nicht versionierte Revisionseigenschaften im Projektarchiv auf.\n"
-" ZIEL legt nur das Projektarchiv fest, auf das zugegriffen wird.\n"
-"\n"
-" Mit »--verbose« werden auch die Eigenschaftwerte ausgegeben,wie mit \n"
-" »svn propget --verbose«. Mit »--quiet« werden Pfade nicht ausgegeben.\n"
-"\n"
-" Siehe »svn help propset« für Beschreibungen der speziellen »svn:*«-Eigenschaften.\n"
-#: ../svn/svn.c:1402
+#: ../svn/svn.c:1522
msgid "don't print the path"
msgstr "Pfad nicht ausgeben"
-# FIXME: propchange?
-#: ../svn/svn.c:1405
+#: ../svn/svn.c:1525
msgid ""
"Set the value of a property on files, dirs, or revisions.\n"
"usage: 1. propset PROPNAME PROPVAL PATH...\n"
" 2. propset PROPNAME --revprop -r REV PROPVAL [TARGET]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1529
+msgid ""
" 1. Changes a versioned file or directory property in a working copy.\n"
" 2. Changes an unversioned property on a repository revision.\n"
" (TARGET only determines which repository to access.)\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1533
+msgid ""
" The value may be provided with the --file option instead of PROPVAL.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1535
+msgid ""
" Property names starting with 'svn:' are reserved. Subversion recognizes\n"
" the following special versioned properties on a file:\n"
" svn:keywords - Keywords to be expanded. Valid keywords are:\n"
@@ -13774,6 +16133,10 @@ msgid ""
" Id - A compressed summary of the previous four.\n"
" Header - Similar to Id but includes the full URL.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1546
+msgid ""
" Custom keywords can be defined with a format string separated from\n"
" the keyword name with '='. Valid format substitutions are:\n"
" %a - The author of the revision given by %r.\n"
@@ -13792,6 +16155,10 @@ msgid ""
" Once a custom keyword has been defined for a file, it can be used\n"
" within the file like any other keyword: $MyKeyword$\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1564
+msgid ""
" svn:executable - If present, make the file executable. Use\n"
" 'svn propdel svn:executable PATH...' to clear.\n"
" svn:eol-style - One of 'native', 'LF', 'CR', 'CRLF'.\n"
@@ -13804,10 +16171,21 @@ msgid ""
" when it is not locked. Use 'svn propdel svn:needs-lock PATH...'\n"
" to clear.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1576
+msgid ""
" Subversion recognizes the following special versioned properties on a\n"
" directory:\n"
" svn:ignore - A list of file glob patterns to ignore, one per line.\n"
" svn:global-ignores - Like svn:ignore, but inheritable.\n"
+" svn:auto-props - Automatically set properties on files when they are\n"
+" added or imported. Contains key-value pairs, one per line, in the format:\n"
+" PATTERN = PROPNAME=VALUE[;PROPNAME=VALUE ...]\n"
+" Example (where a literal ';' is escaped by adding another ';'):\n"
+" *.html = svn:eol-style=native;svn:mime-type=text/html;; charset=UTF8\n"
+" Applies recursively to all files added or imported under the directory\n"
+" it is set on. See also [auto-props] in the client configuration file.\n"
" svn:externals - A list of module specifiers, one per line, in the\n"
" following format similar to the syntax of 'svn checkout':\n"
" [-r REV] URL[@PEG] LOCALPATH\n"
@@ -13832,157 +16210,77 @@ msgid ""
" 'relative_url relative_path' with peg revision support.\n"
" Lines starting with a '#' character are ignored.\n"
msgstr ""
-"Setzt den Wert einer Eigenschaft von Dateien, Verzeichnissen\n"
-"oder Revisionen\n"
-"Aufruf: 1. propset NAME WERT PFAD...\n"
-" 2. propset NAME --revprop -r REV WERT [ZIEL]\n"
-"\n"
-" 1. Ändert eine versionierte Datei- oder Verzeichniseigenschaft in der\n"
-" Arbeitskopie.\n"
-" 2. Ändert eine nicht versionierte Revisionseigenschaft einer Revision\n"
-" im Projektarchiv.\n"
-" (ZIEL legt nur das Projektarchiv fest, auf das zugegriffen wird.)\n"
-"\n"
-" Der Wert kann mit der Option »--file« statt WERT angegeben werden.\n"
-"\n"
-" Namen von Eigenschaften, die mit »svn:« beginnen, sind reserviert.\n"
-" Subversion kennt die folgenden speziellen versionieren\n"
-" Eigenschaften von Dateien:\n"
-" svn:keywords - Schlüsselworte, die expandiert werden sollen.\n"
-" Gültige Schlüsselworte sind:\n"
-" URL, HeadURL - Die URL für die Head-Version der Datei.\n"
-" Author, LastChangedBy - Die letzte Person, die die Datei geändert hat.\n"
-" Date, LastChangedDate - Datum/Zeit der letzten Änderung.\n"
-" Rev, Revision, - Die letzte Revision, in der die Datei\n"
-" LastChangedRevision geändert wurde.\n"
-" Id - Eine komprimierte Zusammenfassung der vier\n"
-" genannten Schlüsselworte.\n"
-" Header - Ähnlich zu Id, enthält aber die volle URL.\n"
-"\n"
-" Benutzerdefinierte Schlüsselworte können mit ihrem Namen und einer\n"
-" Formatangabe, getrennt durch ein »=« definiert werden. Gültige\n"
-" Platzhalter sind:\n"
-" %a - Der Autor der Revision %r.\n"
-" %b - Der Basisname der URL der Datei.\n"
-" %d - Das Datum der Revision %r im Kurzformat.\n"
-" %D - Das Datum der Revision %r im Langformat.\n"
-" %P - Der Pfad der Datei, relativ zur Wurzel des Projektarchivs.\n"
-" %r - Die letzte Revision, in der die Datei geändert wurde.\n"
-" %R - Die URL der Wurzel des Projektarchivs.\n"
-" %u - Die URL der Datei.\n"
-" %_ - Ein Leerzeichen (Definitionen von Schlüsselwörtern dürfen\n"
-" selbst keine Leerzeichen enthalten).\n"
-" %% - Erzeugt ein '%' in der Ausgabe.\n"
-" %H - Entspricht %P%_%r%_%d%_%a.\n"
-" %I - Entspricht %b%_%r%_%d%_%a.\n"
-" Beispiel für ein benutzerdefiniertes Schlüsselwort: MeinSW=%r%_%a%_%P\n"
-" Sobald ein benutzerdefiniertes Schlüsselwort für eine Datei gesetzt ist,\n"
-" kann es in der Datei wie jedes andere Schlüsselwort verwendet werden:\n"
-" $MeinSW$\n"
-"\n"
-" svn:executable - Falls vorhanden, wird die Datei ausführbar gemacht.\n"
-" Verwenden Sie »svn propdel svn:executable PFAD...« zum Entfernen.\n"
-" svn:eol-style - Eins aus »native«, »LF«, »CR«, »CRLF«.\n"
-" svn:mime-type - Der MIME-Typ der Datei. Verwendet, um festzustellen, ob\n"
-" die Datei zusammengeführt werden kann und wie sie von Apache übertragen\n"
-" werden soll. Dateien ohne MIME-Typ oder deren MIME-Typ mit »text/«\n"
-" beginnt, werden als Text behandelt. Alles andere wird als binär angesehen.\n"
-" svn:needs-lock - Wenn vorhanden, soll die Datei gesperrt werden, bevor sie\n"
-" verändert wird. Setzt den Schreibschutz der Arbeitsdatei, wenn sie nicht\n"
-" gesperrt ist. Verwenden Sie »svn propdel svn:needs-lock PFAD...« zum\n"
-" Entfernen.\n"
-"\n"
-" Subversion kennt die folgenden speziellen versionieren\n"
-" Eigenschaften von Verzeichnissen:\n"
-" svn:ignore - Eine durch Zeilenumbruch getrennte Liste von zu\n"
-" ignorierenden »glob«-Dateimustern.\n"
-" svn:global-ignores - Wie svn:ignore, aber vererbbar.\n"
-" svn:externals - Eine durch Zeilenumbruch getrennte Liste von\n"
-" Modulnamen im folgenden Syntax von »svn checkout«:\n"
-" [-r REV] URL[@PEGREV] LOKALER_PFAD\n"
-" Beispiel:\n"
-" http://example.com/repos/Projekt/modul\n"
-" LOKALER_PFAD ist dabei relativ zum Verzeichnis mit dieser Eigenschaft.\n"
-" Um den externen Verweis auf eine bekannte Revision festzulegen, geben\n"
-" Sie optional REV an:\n"
-" -r25 http://example.com/repos/Projekt/modul\n"
-" Um ein Element in einem ggf. später gelöschten oder umbenannten Pfad\n"
-" eindeutig zu identifizieren, verwenden Sie optional PEGREV:\n"
-" -r25 http://example.com/repos/Pfad@42 projekt/modul\n"
-" Die URL kann eine vollständige oder relative URL sein, die mit einen der\n"
-" folgenden Zeichenketten startet und...\n"
-" ../ auf das übergeordnete Verzeichnis des extrahierten Externals\n"
-" ^/ auf die Wurzel des Projektarchivs\n"
-" / auf die Wurzel des Servers\n"
-" // auf das Schema\n"
-" ^/../ auf ein benachbartes Projektarchiv unter dem selben SVNParentPath\n"
-" verweist.\n"
-" Die Verwendung des folgenden Formats ist veraltet aber für die Kompatibilität\n"
-" mit Subversion 1.4 und älter weiter unterstützt:\n"
-" LOKALER_PFAD [-r PEGREV] URL\n"
-" Das mehrdeutige Format »relativer_Pfad relativer_Pfad« wird als\n"
-" »relative_URL relativer_Pfad« mit Peg-Revisionsunterstützung gedeutet.\n"
-" Zeilen, die mit »#« beginnen, werden ignoriert.\n"
-
-#: ../svn/svn.c:1485
+
+#: ../svn/svn.c:1613
msgid "read property value from file ARG"
msgstr "Eigenschaftswert aus Datei PAR lesen"
-#: ../svn/svn.c:1488
+#: ../svn/svn.c:1616
msgid ""
"Relocate the working copy to point to a different repository root URL.\n"
"usage: 1. relocate FROM-PREFIX TO-PREFIX [PATH...]\n"
" 2. relocate TO-URL [PATH]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1620
+msgid ""
" Rewrite working copy URL metadata to reflect a syntactic change only.\n"
" This is used when a repository's root URL changes (such as a scheme\n"
" or hostname change) but your working copy still reflects the same\n"
" directory within the same repository.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1625
+msgid ""
" 1. FROM-PREFIX and TO-PREFIX are initial substrings of the working\n"
" copy's current and new URLs, respectively. (You may specify the\n"
" complete old and new URLs if you wish.) Use 'svn info' to determine\n"
" the current working copy URL.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1630
+msgid ""
" 2. TO-URL is the (complete) new repository URL to use for PATH.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1632
+msgid ""
" Examples:\n"
" svn relocate http:// svn:// project1 project2\n"
" svn relocate http://www.example.com/repo/project \\\n"
" svn://svn.example.com/repo/project\n"
msgstr ""
-"Umplatzierung der Arbeitskopie auf eine andere Wurzel-URL des Projektarchivs\n"
-"Aufruf: 1. relocate VON NACH [PFAD...]\n"
-" 2. relocate NACH [PFAD]\n"
-"\n"
-" Schreibt die Metadaten der Arbeitskopie so um, dass sie einer Änderung\n"
-" der URL folgen. Dies wird verwendet, wenn sich die Basis-URL eines\n"
-" Projektarchivs ändert (z.B. durch eine Schema- oder Hostnamenänderung),\n"
-" während Ihre Arbeitskopie immer noch das selbe Verzeichnis im selben\n"
-" Projektarchiv widerspiegelt.\n"
-"\n"
-" 1. VON und NACH sind einleitende Teile der momentanen bzw. neuen URL\n"
-" der Arbeitskopie. (Die Angabe der kompletten neuen und alten URLs ist\n"
-" erlaubt.) Verwenden Sie »svn info« zur Anzeige der momentanen URL.\n"
-"\n"
-" 2. NACH ist die vollständige neue URL im Projektarchiv für PFAD.\n"
-"\n"
-" Beispiele:\n"
-" svn relocate http:// svn:// Projekt1 Projekt2\n"
-" svn relocate http://www.example.com/repo/Projekt \\\n"
-" svn://svn.example.com/repo/Projekt\n"
-#: ../svn/svn.c:1511
+#: ../svn/svn.c:1640
+#, fuzzy
msgid ""
"Resolve conflicts on working copy files or directories.\n"
"usage: resolve [PATH...]\n"
"\n"
+msgstr ""
+"Auflösen von Konflikten in Arbeitskopiedateien oder -verzeichnissen.\n"
+"Aufruf: resolve --accept=PAR [PFAD...]\n"
+"\n"
+" Bemerkung: Die Option --accept wird zurzeit benötigt.\n"
+
+#: ../svn/svn.c:1643
+msgid ""
" By default, perform interactive conflict resolution on PATH.\n"
" In this mode, the command is recursive by default (depth 'infinity').\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1646
+#, fuzzy
+msgid ""
" The --accept=ARG option prevents interactive prompting and forces\n"
" conflicts on PATH to be resolved in the manner specified by ARG.\n"
" In this mode, the command is not recursive by default (depth 'empty').\n"
+"\n"
msgstr ""
"Löst Konflikte von Dateien oder Verzeichnissen in der Arbeitskopie auf.\n"
"Aufruf: resolve [PFAD...]\n"
@@ -13994,7 +16292,71 @@ msgstr ""
" die Konfliktlösung von PFAD in der durch PAR angegebenen Weise. Damit\n"
" arbeitet das Programm als Vorgabe nicht rekursiv. (Tiefe »empty«)\n"
-#: ../svn/svn.c:1521
+#: ../svn/svn.c:1650
+msgid ""
+" A conflicted path cannot be committed with 'svn commit' until it\n"
+" has been marked as resolved with 'svn resolve'.\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:1653
+msgid ""
+" Subversion knows three types of conflicts:\n"
+" Text conflicts, Property conflicts, and Tree conflicts.\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:1656
+msgid ""
+" Text conflicts occur when overlapping changes to file contents were\n"
+" made. Text conflicts are usually resolved by editing the conflicted\n"
+" file or by using a merge tool (which may be an external program).\n"
+" 'svn resolve' provides options which can be used to automatically\n"
+" edit files (such as 'mine-full' or 'theirs-conflict'), but these are\n"
+" only useful in situations where it is acceptable to discard local or\n"
+" incoming changes altogether.\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:1664
+msgid ""
+" Property conflicts are usually resolved by editing the value of the\n"
+" conflicted property (either from the interactive prompt, or with\n"
+" 'svn propedit'). As with text conflicts, options exist to edit a\n"
+" property automatically, discarding some changes in favour of others.\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:1669
+msgid ""
+" Tree conflicts occur when a change to the directory structure was\n"
+" made, and when this change cannot be applied to the working copy\n"
+" without affecting other changes (text changes, property changes,\n"
+" or other changes to the directory structure). Brief information about\n"
+" tree conflicts is shown by the 'svn status' and 'svn info' commands.\n"
+" In interactive mode, 'svn resolve' will attempt to describe tree conflicts\n"
+" in detail, and may offer options to resolve the conflict automatically.\n"
+" It is recommended to use these automatic options whenever possible,\n"
+" rather than attempting manual tree conflict resolution.\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:1679
+msgid ""
+" If a tree conflict cannot be resolved automatically, it is recommended\n"
+" to figure out why the conflict occurred before attempting to resolve it.\n"
+" The 'svn log -v' command can be used to inspect structural changes\n"
+" made in past revisions, and perhaps even on other branches.\n"
+" 'svn help log' describes how these structural changes are presented.\n"
+" Once the conflicting \"incoming\" change has been identified with 'svn log'\n"
+" the current \"local\" working copy state should be examined and adjusted\n"
+" in a way such that the conflict is resolved. This may involve editing\n"
+" files manually or with 'svn merge'. It may be necessary to discard some\n"
+" local changes with 'svn revert'. Files or directories might have to be\n"
+" copied, deleted, or moved.\n"
+msgstr ""
+
+#: ../svn/svn.c:1692
msgid ""
"specify automatic conflict resolution source\n"
" ('base', 'working', 'mine-conflict',\n"
@@ -14004,11 +16366,21 @@ msgstr ""
" (»base«, »working«, »mine-conflict«,\n"
" »theirs-conflict«, »mine-full«, »theirs-full«)"
-#: ../svn/svn.c:1528
+#: ../svn/svn.c:1699
+#, fuzzy
msgid ""
"Remove 'conflicted' state on working copy files or directories.\n"
"usage: resolved PATH...\n"
"\n"
+msgstr ""
+"Auflösen von Konflikten in Arbeitskopiedateien oder -verzeichnissen.\n"
+"Aufruf: resolve --accept=PAR [PFAD...]\n"
+"\n"
+" Bemerkung: Die Option --accept wird zurzeit benötigt.\n"
+
+#: ../svn/svn.c:1702
+#, fuzzy
+msgid ""
" Note: this subcommand does not semantically resolve conflicts or\n"
" remove conflict markers; it merely removes the conflict-related\n"
" artifact files and allows PATH to be committed again. It has been\n"
@@ -14024,14 +16396,23 @@ msgstr ""
" übertragen werden kann. Dies wird zugunsten von »svn resolve --accept\n"
" working« missbilligt.\n"
-#: ../svn/svn.c:1538
+#: ../svn/svn.c:1710
msgid ""
"Restore pristine working copy state (undo local changes).\n"
"usage: revert PATH...\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1713
+msgid ""
" Revert changes in the working copy at or within PATH, and remove\n"
" conflict markers as well, if any.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1716
+#, fuzzy
+msgid ""
" This subcommand does not revert already committed changes.\n"
" For information about undoing already committed changes, search\n"
" the output of 'svn help merge' for 'undo'.\n"
@@ -14048,16 +16429,190 @@ msgstr ""
" schon übertragenen Änderungen, siehe in »svn help merge« den\n"
" Abschnitt »undo«.\n"
-#: ../svn/svn.c:1550
+#: ../svn/svn.c:1723
+msgid ""
+"Show shelved changes as a diff.\n"
+"usage: shelf-diff NAME [VERSION]\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:1726
+msgid ""
+" Show the changes in shelf NAME:VERSION (default: latest) as a diff.\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:1728 ../svn/svn.c:1739 ../svn/svn.c:1752 ../svn/svn.c:1764
+#: ../svn/svn.c:1775 ../svn/svn.c:1790 ../svn/svn.c:1818 ../svn/svn.c:1840
+msgid ""
+" The shelving feature is EXPERIMENTAL. This command is likely to change\n"
+" in the next release, and there is no promise of backward compatibility.\n"
+msgstr ""
+
+#: ../svn/svn.c:1734
+msgid ""
+"Delete a shelf.\n"
+"usage: shelf-drop NAME\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:1737
+msgid ""
+" Delete the shelf named NAME.\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:1745
+msgid ""
+"List shelves.\n"
+"usage: shelf-list\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:1748
+msgid ""
+" List shelves. Include the first line of any log message\n"
+" and some details about the contents of the shelf, unless '-q' is\n"
+" given.\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:1759
+msgid ""
+"List which shelf affects each path.\n"
+"usage: shelf-list-by-paths [PATH...]\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:1762
+msgid ""
+" List which shelf most recently affects each path below the given PATHs.\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:1770
+msgid ""
+"Show the versions of a shelf.\n"
+"usage: shelf-log NAME\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:1773
+msgid ""
+" Show all versions of shelf NAME.\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:1782
+msgid ""
+"Copy local changes onto a new version of a shelf.\n"
+"usage: shelf-save NAME [PATH...]\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:1785
+msgid ""
+" Save local changes in the given PATHs as a new version of shelf NAME.\n"
+" The shelf's log message can be set with -m, -F, etc.\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:1788
+msgid ""
+" The same as 'svn shelve --keep-local'.\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:1800
+msgid ""
+"Move local changes onto a shelf.\n"
+"usage: shelve [--keep-local] NAME [PATH...]\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:1803
+msgid ""
+" Save the local changes in the given PATHs to a shelf named NAME.\n"
+" Revert those changes from the WC unless '--keep-local' is given.\n"
+" The shelf's log message can be set with -m, -F, etc.\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:1807
+msgid ""
+" 'svn shelve --keep-local' is the same as 'svn shelf-save'.\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:1809
+msgid ""
+" The kinds of change you can shelve are those supported by 'svn diff'\n"
+" and 'svn patch'. The following are currently NOT supported:\n"
+" copies, moves, mkdir, rmdir,\n"
+" 'binary' content, uncommittable states\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:1814
+msgid ""
+" To bring back shelved changes, use 'svn unshelve NAME'.\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:1816
+msgid ""
+" Shelves are stored in <WC>/.svn/shelves/\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:1827
+msgid ""
+"Copy shelved changes back into the WC.\n"
+"usage: unshelve [--drop] [NAME [VERSION]]\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:1830
+msgid ""
+" Apply the shelf named NAME to the working copy.\n"
+" NAME defaults to the newest shelf.\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:1833
+msgid ""
+" Any conflict between the change being unshelved and a change\n"
+" already in the WC is handled the same way as by 'svn patch',\n"
+" creating a 'reject' file.\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:1837
+msgid ""
+" With --drop, delete the shelf (like shelf-drop) after successfully\n"
+" unshelving with no conflicts.\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:1846
msgid ""
"Print the status of working copy files and directories.\n"
"usage: status [PATH...]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1849
+msgid ""
" With no args, print only locally modified items (no network access).\n"
" With -q, print only summary information about locally modified items.\n"
" With -u, add working revision and server out-of-date information.\n"
" With -v, print full revision information on every item.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1854
+#, fuzzy
+msgid ""
" The first seven columns in the output are each one character wide:\n"
" First column: Says if item was added, deleted, or otherwise changed\n"
" ' ' no modifications\n"
@@ -14102,45 +16657,6 @@ msgid ""
" If the item is a tree conflict victim, an additional line is printed\n"
" after the item's status line, explaining the nature of the conflict.\n"
"\n"
-" The out-of-date information appears in the ninth column (with -u):\n"
-" '*' a newer revision exists on the server\n"
-" ' ' the working copy is up to date\n"
-"\n"
-" Remaining fields are variable width and delimited by spaces:\n"
-" The working revision (with -u or -v; '-' if the item is copied)\n"
-" The last committed revision and last committed author (with -v)\n"
-" The working copy path is always the final field, so it can\n"
-" include spaces.\n"
-"\n"
-" The presence of a question mark ('?') where a working revision, last\n"
-" committed revision, or last committed author was expected indicates\n"
-" that the information is unknown or irrelevant given the state of the\n"
-" item (for example, when the item is the result of a copy operation).\n"
-" The question mark serves as a visual placeholder to facilitate parsing.\n"
-"\n"
-" Example output:\n"
-" svn status wc\n"
-" M wc/bar.c\n"
-" A + wc/qax.c\n"
-"\n"
-" svn status -u wc\n"
-" M 965 wc/bar.c\n"
-" * 965 wc/foo.c\n"
-" A + - wc/qax.c\n"
-" Status against revision: 981\n"
-"\n"
-" svn status --show-updates --verbose wc\n"
-" M 965 938 kfogel wc/bar.c\n"
-" * 965 922 sussman wc/foo.c\n"
-" A + - 687 joe wc/qax.c\n"
-" 965 687 joe wc/zig.c\n"
-" Status against revision: 981\n"
-"\n"
-" svn status\n"
-" M wc/bar.c\n"
-" ! C wc/qaz.c\n"
-" > local missing, incoming edit upon update\n"
-" D wc/qax.c\n"
msgstr ""
"Gibt den Status von Dateien und Verzeichnissen in der Arbeitskopie aus.\n"
"Aufruf: status [PFAD...]\n"
@@ -14237,22 +16753,98 @@ msgstr ""
" > lokal fehlend, eingehend editiert bei Aktualisierung\n"
" D wc/qax.c\n"
-#: ../svn/svn.c:1643
+#: ../svn/svn.c:1898
+msgid ""
+" The out-of-date information appears in the ninth column (with -u):\n"
+" '*' a newer revision exists on the server\n"
+" ' ' the working copy is up to date\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:1902
+msgid ""
+" Remaining fields are variable width and delimited by spaces:\n"
+" The working revision (with -u or -v; '-' if the item is copied)\n"
+" The last committed revision and last committed author (with -v)\n"
+" The working copy path is always the final field, so it can\n"
+" include spaces.\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:1908
+msgid ""
+" The presence of a question mark ('?') where a working revision, last\n"
+" committed revision, or last committed author was expected indicates\n"
+" that the information is unknown or irrelevant given the state of the\n"
+" item (for example, when the item is the result of a copy operation).\n"
+" The question mark serves as a visual placeholder to facilitate parsing.\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:1914
+msgid ""
+" Example output:\n"
+" svn status wc\n"
+" M wc/bar.c\n"
+" A + wc/qax.c\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:1919
+msgid ""
+" svn status -u wc\n"
+" M 965 wc/bar.c\n"
+" * 965 wc/foo.c\n"
+" A + - wc/qax.c\n"
+" Status against revision: 981\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:1925
+msgid ""
+" svn status --show-updates --verbose wc\n"
+" M 965 938 kfogel wc/bar.c\n"
+" * 965 922 sussman wc/foo.c\n"
+" A + - 687 joe wc/qax.c\n"
+" 965 687 joe wc/zig.c\n"
+" Status against revision: 981\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:1932
+msgid ""
+" svn status\n"
+" M wc/bar.c\n"
+" ! C wc/qaz.c\n"
+" > local missing, incoming edit upon update\n"
+" D wc/qax.c\n"
+msgstr ""
+
+#: ../svn/svn.c:1940
msgid "don't print unversioned items"
msgstr "Gibt nicht versioniertes Objekte nicht aus"
-#: ../svn/svn.c:1646
+#: ../svn/svn.c:1943
msgid ""
"Update the working copy to a different URL within the same repository.\n"
"usage: 1. switch URL[@PEGREV] [PATH]\n"
" 2. switch --relocate FROM-PREFIX TO-PREFIX [PATH...]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1947
+msgid ""
" 1. Update the working copy to mirror a new URL within the repository.\n"
" This behavior is similar to 'svn update', and is the way to\n"
" move a working copy to a branch or tag within the same repository.\n"
" If specified, PEGREV determines in which revision the target is first\n"
" looked up.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1953
+#, fuzzy
+msgid ""
" If --force is used, unversioned obstructing paths in the working\n"
" copy do not automatically cause a failure if the switch attempts to\n"
" add the same path. If the obstructing path is the same type (file\n"
@@ -14264,107 +16856,126 @@ msgid ""
" modification to the working copy. All properties from the repository\n"
" are applied to the obstructing path.\n"
"\n"
+msgstr ""
+"Checkt eine Arbeitskopie aus einem Projektarchiv aus.\n"
+"Aufruf: checkout URL[@REV]... [PFAD]\n"
+"\n"
+" Falls angegeben, legt REV fest, in welcher Revision die URL zuerst\n"
+" nachgeschlagen wird.\n"
+"\n"
+" Ohne Angabe von PFAD wird der Basisname der URL als Ziel verwendet.\n"
+" Sind mehrere URLs angegeben, wird jede in ein Unterverzeichnis von\n"
+" PFAD ausgecheckt, dessen Name der Basisname der URL ist.\n"
+"\n"
+" Bei Angabe von --force lassen nicht versionierte, behindernde Objekte\n"
+" in der Arbeitskopie den Vorgang nicht automatisch fehlschlagen. Falls\n"
+" der behindernde Pfad vom gleichen Typ (Datei oder Verzeichnis) wie der\n"
+" entsprechende Pfad im Projektarchiv ist, wird er versioniert, behält\n"
+" aber seinen ursprünglichen Inhalt. Das bedeutet, dass nicht versionierte\n"
+" Unterverzeichnisse eines behindernden Verzeichnisses ebenfalls versioniert\n"
+" werden können. Bei Dateien werden alle Unterschiede im Inhalt wie lokale\n"
+" Modifikationen in der Arbeitskopie behandelt. Sämtliche Eigenschaften\n"
+" aus dem Projektarchiv werden auf den behindernden Pfad angewendet.\n"
+"\n"
+" Siehe auch »svn help update« für eine Liste möglicher Buchstaben,\n"
+" die die durchgeführte Aktion beschreiben.\n"
+
+#: ../svn/svn.c:1964
+msgid ""
" Use the --set-depth option to set a new working copy depth on the\n"
" targets of this operation.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1967
+msgid ""
" By default, Subversion will refuse to switch a working copy path to\n"
" a new URL with which it shares no common version control ancestry.\n"
" Use the '--ignore-ancestry' option to override this sanity check.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1971
+msgid ""
" 2. The '--relocate' option is deprecated. This syntax is equivalent to\n"
" 'svn relocate FROM-PREFIX TO-PREFIX [PATH]'.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1974
+msgid ""
" See also 'svn help update' for a list of possible characters\n"
" reporting the action taken.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1977
+msgid ""
" Examples:\n"
" svn switch ^/branches/1.x-release\n"
" svn switch --relocate http:// svn://\n"
" svn switch --relocate http://www.example.com/repo/project \\\n"
" svn://svn.example.com/repo/project\n"
msgstr ""
-"Stellt die Arbeitskopie auf eine andere URL.\n"
-"Aufruf: 1. switch URL[@PEGREV] [PFAD]\n"
-" 2. switch --relocate VON NACH [PFAD...]\n"
-"\n"
-" 1. Stellt die Arbeitskopie so um, dass sie eine neue URL im Projektarchiv\n"
-" widerspiegelt. Dieses Verhalten ist ähnlich zu »svn update« und wird\n"
-" verwendet, um eine Arbeitskopie auf einen Zweig oder ein Tag im selben\n"
-" Projektarchiv umzustellen. Falls angegeben, spezifiziert PEGREV,\n"
-" in welcher Revision zuerst nach dem Ziel gesucht wird.\n"
-"\n"
-" Falls --force verwendet wird, führen nicht versionierte, behindernde\n"
-" Pfade in der Arbeitskopie nicht automatisch zu einem Fehler, falls die\n"
-" Umplatzierung versucht, den selben Pfad hinzuzufügen. Falls der\n"
-" behindernde Pfad vom selben Typ (Datei oder Verzeichnis) wie der\n"
-" entsprechende Pfad im Projektarchiv ist, wird er versioniert aber sein\n"
-" Inhalt bleibt wie er ist in der Arbeitskopie. Das bedeutet, dass\n"
-" nicht versionierte Objekte eines behindernden Verzeichnisses ebenso\n"
-" behindernd sein und versioniert werden könnten. Für Dateien werden alle\n"
-" inhaltlichen Unterschiede zwischen der Behinderung und dem Projektarchiv\n"
-" wie lokale Änderungen der Arbeitskopie interpretiert. Alle Eigenschaften\n"
-" des Projektarchivs werden auf den behindernden Pfad angewandt.\n"
-"\n"
-" Verwenden Sie die Option --set-depth, um eine neue Arbeitskopietiefe für\n"
-" die Ziele dieser Operation zu setzen.\n"
-"\n"
-" Subversion wird sich im Normalfall weigern, eine Arbeitkopie auf eine neue\n"
-" URL umzustellen, mit dem sie keine gemeinsame Vorgeschichte in der\n"
-" Versionskontrolle hat. »--ignore-ancestry« übergeht diese Prüfung.\n"
-"\n"
-" 2. Die Option »--relocate« ist veraltet. Der Syntax ist identisch mit\n"
-" »svn relocate VON NACH [PFAD]«.\n"
-"\n"
-" Siehe auch »svn help update« für eine Liste möglicher Buchstaben,\n"
-" die die durchgeführte Aktion beschreiben.\n"
-"\n"
-" Examples:\n"
-" svn switch ^/branches/Version-1.x\n"
-" svn switch --relocate http:// svn://\n"
-" svn switch --relocate http://www.example.com/repo/Projekt \\\n"
-" svn://svn.example.com/repo/Projekt\n"
-#: ../svn/svn.c:1688
+#: ../svn/svn.c:1987
msgid "allow switching to a node with no common ancestor"
msgstr "Erlaubt Umstellung auf einen Knoten ohne gemeinsamen Vorfahren"
-#: ../svn/svn.c:1690 ../svn/svn.c:1750
+#: ../svn/svn.c:1989 ../svn/svn.c:2053
msgid "handle unversioned obstructions as changes"
msgstr "Behandelt nicht versionierte Blockierungen als Änderungen"
-#: ../svn/svn.c:1694
+#: ../svn/svn.c:1990
+#, fuzzy
+msgid "deprecated; use 'svn relocate'"
+msgstr "Veraltet; siehe »--no-newline«"
+
+#: ../svn/svn.c:1994
+#, fuzzy
msgid ""
"Unlock working copy paths or URLs.\n"
"usage: unlock TARGET...\n"
"\n"
-" Use --force to break the lock.\n"
msgstr ""
"Hebt Sperren von Arbeitskopiepfaden oder URLs auf.\n"
"Aufruf: unlock ZIEL...\n"
"\n"
" Benutzen Sie --force, um die Freigabe zu erzwingen.\n"
-# Parts of the text (--force and --set-depth) are shared with the
-# switch help. Keep it consistent.
-#: ../svn/svn.c:1701
+#: ../svn/svn.c:1997
+#, fuzzy
+msgid " Use --force to break a lock held by another user or working copy.\n"
+msgstr "Verzeichnis »%s« ist in einer Arbeitskopie gesperrt"
+
+#: ../svn/svn.c:2000
+#, fuzzy
+msgid "break locks"
+msgstr "Lese Sperre"
+
+#: ../svn/svn.c:2003
msgid ""
"Bring changes from the repository into the working copy.\n"
"usage: update [PATH...]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:2006
+msgid ""
" If no revision is given, bring working copy up-to-date with HEAD rev.\n"
" Else synchronize working copy to revision given by -r.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:2009
+msgid ""
" For each updated item a line will be printed with characters reporting\n"
" the action taken. These characters have the following meaning:\n"
"\n"
-" A Added\n"
-" D Deleted\n"
-" U Updated\n"
-" C Conflict\n"
-" G Merged\n"
-" E Existed\n"
-" R Replaced\n"
-"\n"
+msgstr ""
+
+#: ../svn/svn.c:2020
+msgid ""
" Characters in the first column report about the item itself.\n"
" Characters in the second column report about properties of the item.\n"
" A 'B' in the third column signifies that the lock for the file has\n"
@@ -14373,6 +16984,11 @@ msgid ""
" the first and second columns indicate textual conflicts in files\n"
" and in property values, respectively.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:2028
+#, fuzzy
+msgid ""
" If --force is used, unversioned obstructing paths in the working\n"
" copy do not automatically cause a failure if the update attempts to\n"
" add the same path. If the obstructing path is the same type (file\n"
@@ -14385,183 +17001,163 @@ msgid ""
" are applied to the obstructing path. Obstructing paths are reported\n"
" in the first column with code 'E'.\n"
"\n"
+msgstr ""
+"Checkt eine Arbeitskopie aus einem Projektarchiv aus.\n"
+"Aufruf: checkout URL[@REV]... [PFAD]\n"
+"\n"
+" Falls angegeben, legt REV fest, in welcher Revision die URL zuerst\n"
+" nachgeschlagen wird.\n"
+"\n"
+" Ohne Angabe von PFAD wird der Basisname der URL als Ziel verwendet.\n"
+" Sind mehrere URLs angegeben, wird jede in ein Unterverzeichnis von\n"
+" PFAD ausgecheckt, dessen Name der Basisname der URL ist.\n"
+"\n"
+" Bei Angabe von --force lassen nicht versionierte, behindernde Objekte\n"
+" in der Arbeitskopie den Vorgang nicht automatisch fehlschlagen. Falls\n"
+" der behindernde Pfad vom gleichen Typ (Datei oder Verzeichnis) wie der\n"
+" entsprechende Pfad im Projektarchiv ist, wird er versioniert, behält\n"
+" aber seinen ursprünglichen Inhalt. Das bedeutet, dass nicht versionierte\n"
+" Unterverzeichnisse eines behindernden Verzeichnisses ebenfalls versioniert\n"
+" werden können. Bei Dateien werden alle Unterschiede im Inhalt wie lokale\n"
+" Modifikationen in der Arbeitskopie behandelt. Sämtliche Eigenschaften\n"
+" aus dem Projektarchiv werden auf den behindernden Pfad angewendet.\n"
+"\n"
+" Siehe auch »svn help update« für eine Liste möglicher Buchstaben,\n"
+" die die durchgeführte Aktion beschreiben.\n"
+
+#: ../svn/svn.c:2040
+msgid ""
" If the specified update target is missing from the working copy but its\n"
" immediate parent directory is present, checkout the target into its\n"
" parent directory at the specified depth. If --parents is specified,\n"
" create any missing parent directories of the target by checking them\n"
" out, too, at depth=empty.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:2046
+msgid ""
" Use the --set-depth option to set a new working copy depth on the\n"
" targets of this operation.\n"
msgstr ""
-"Aktualisiert die Arbeitskopie mit Änderungen aus dem Projektarchiv.\n"
-"Aufruf: update [PFAD...]\n"
-"\n"
-" Ist keine Revision angegeben, wird die Arbeitskopie auf den aktuellen\n"
-" Stand der HEAD-Revision gebracht. Ansonsten wird die Arbeitskopie mit der\n"
-" durch -r angegebenen Revision synchronisiert.\n"
-"\n"
-" Für jedes aktualisierte Objekt wird eine Zeile mit einem Buchstaben für die\n"
-" durchgeführte Aktion ausgegeben. Diese haben die folgenden Bedeutungen\n"
-"\n"
-" A Added - Hinzugefügt\n"
-" D Deleted - Gelöscht\n"
-" U Updated - Aktualisiert\n"
-" C Conflict - Konflikt\n"
-" G Merged - Zusammengeführt\n"
-" E Existed - Existierend\n"
-" R Replaced - Ersetzt\n"
-"\n"
-" Ein Buchstabe in der ersten Spalte symbolisiert eine Aktualisierung der\n"
-" Datei, während Aktualisierungen der Dateieigenschaften in der zweiten\n"
-" Spalte angezeigt werden.\n"
-" Ein »B« in der dritten Spalte zeigt an, dass die Sperre für die Datei\n"
-" aufgebrochen oder gestohlen wurde.\n"
-" Ein »C« in der vierten Spalte zeigt einen Baumkonflikt an, während es\n"
-" in der ersten und zweiten Spalte jeweils einen Konflikt im Text bzw.\n"
-" einer Eigenschaft anzeigt.\n"
-"\n"
-" Falls --force verwendet wird, werden nichtversionierte behindernde Pfade in\n"
-" der Arbeitskopie nicht automatisch einen Fehlschlag verursachen, wenn die\n"
-" Aktualisierung versucht, den selben Pfad hinzufügen. Ist der behindernde Pfad\n"
-" vom selben Typ (Datei oder Verzeichnis) wie der entsprechende Pfad im\n"
-" Projektarchiv, wird es versioniert, aber der Inhalt verbleibt wie er ist\n"
-" in der Arbeitskopie.\n"
-" Das bedeutet, dass nichtversionierte Kinder eines behindernden\n"
-" Verzeichnisses ebenso behindert werden und versioniert werden können. Für\n"
-" Dateien werden alle inhaltlichen Unterschiede zwischen der Behinderung und\n"
-" dem Projektarchiv wie lokale Änderungen in der Arbeitskopie interpretiert.\n"
-" Alle Eigenschaften des Projektarchivs werden auf den behindernden Pfad\n"
-" angewandt. Behindernde Pfade werden in der ersten Spalte mit »E« angezeigt.\n"
-"\n"
-" Falls das angegebene Ziel der Aktualisierung in der Arbeitskopie fehlt aber\n"
-" dessen unmittelbares Elternverzeichnis vorhanden ist, wird das angegebene\n"
-" Ziel in das Elternverzeichnis mit der angegebenen Tiefe ausgecheckt. Falls\n"
-" »--parents« angegeben wird, werden alle fehlenden Elternverzeichnisse auch\n"
-" ausgecheckt, mit der Tiefe »empty«.\n"
-" Verwenden Sie die Option --set-depth, um eine neue Arbeitskopietiefe für\n"
-" die Ziele dieser Operation zu setzen. Zurzeit kann die Tiefe eines\n"
-" Arbeitskopieverzeichnisses nur erhöht werden (tiefer ineinander geschachtelt);\n"
-" eine Verzeichnistiefe kann nicht reduziert werden.\n"
-
-#: ../svn/svn.c:1753
+
+#: ../svn/svn.c:2056
+#, fuzzy
msgid ""
"Upgrade the metadata storage format for a working copy.\n"
"usage: upgrade [WCPATH...]\n"
"\n"
-" Local modifications are preserved.\n"
msgstr ""
"Überführt die Metadaten einer Arbeitskopie in ein neues Speicherformat.\n"
"Aufruf: upgrade [AKPFAD...]\n"
"\n"
" Lokale Änderungen bleiben erhalten.\n"
-#: ../svn/svn.c:1801 ../svnadmin/svnadmin.c:97 ../svnbench/svnbench.c:338
-#: ../svnfsfs/svnfsfs.c:79 ../svnlook/svnlook.c:387 ../svnrdump/svnrdump.c:66
-#: ../svnsync/svnsync.c:332
-msgid "Caught signal"
-msgstr "Abbruchsignal empfangen"
+#: ../svn/svn.c:2059
+#, fuzzy
+msgid " Local modifications are preserved.\n"
+msgstr "Lokale Änderungen in »%s« belassen\n"
-#: ../svn/svn.c:1947 ../svnbench/svnbench.c:430 ../svnlook/svnlook.c:2571
+#: ../svn/svn.c:2235 ../svnbench/svnbench.c:474 ../svnlook/svnlook.c:2590
msgid "Non-numeric limit argument given"
msgstr "Nicht-numerische Bereichsgrenze angegeben"
-#: ../svn/svn.c:1952 ../svnbench/svnbench.c:435 ../svnlook/svnlook.c:2576
+#: ../svn/svn.c:2240 ../svnbench/svnbench.c:479 ../svnlook/svnlook.c:2595
msgid "Argument to --limit must be positive"
msgstr "Parameter für --limit muss positiv sein"
-#: ../svn/svn.c:1972 ../svn/svn.c:2247
+#: ../svn/svn.c:2260 ../svn/svn.c:2535
msgid "Can't specify -c with --old"
msgstr "-c kann nicht mit --old verwendet werden"
-#: ../svn/svn.c:2002 ../svnbench/svnbench.c:471
+#: ../svn/svn.c:2290 ../svnbench/svnbench.c:515
#, c-format
msgid "Negative number in range (%s) not supported with -c"
msgstr "Negative Zahl im Bereich (%s) ist mit -c nicht unterstützt"
-#: ../svn/svn.c:2014 ../svnbench/svnbench.c:483
+#: ../svn/svn.c:2302 ../svnbench/svnbench.c:527
#, c-format
msgid "Non-numeric change argument (%s) given to -c"
msgstr "Nicht-numerischer Parameter (%s) an -c übergeben"
-#: ../svn/svn.c:2021 ../svnbench/svnbench.c:490
+#: ../svn/svn.c:2309 ../svnbench/svnbench.c:534
msgid "There is no change 0"
msgstr "Es gibt keine Änderung 0"
-#: ../svn/svn.c:2062 ../svnadmin/svnadmin.c:2488 ../svnbench/svnbench.c:532
-#: ../svnfsfs/svnfsfs.c:331 ../svnrdump/svnrdump.c:890
-#: ../svnsync/svnsync.c:2113
+#: ../svn/svn.c:2350 ../svnadmin/svnadmin.c:2928 ../svnbench/svnbench.c:576
+#: ../svnfsfs/svnfsfs.c:303 ../svnrdump/svnrdump.c:861
+#: ../svnsync/svnsync.c:2146
#, c-format
msgid "Syntax error in revision argument '%s'"
msgstr "Syntaxfehler in Revisionsparameter »%s«"
-#: ../svn/svn.c:2125 ../svn/svn.c:2142 ../svnbench/svnbench.c:571
+#: ../svn/svn.c:2413 ../svn/svn.c:2430 ../svnbench/svnbench.c:615
#, c-format
msgid "Error converting depth from locale to UTF-8"
msgstr "Fehler beim Konvertieren der Tiefe aus Locale nach UTF-8"
-#: ../svn/svn.c:2132 ../svnbench/svnbench.c:578
+#: ../svn/svn.c:2420 ../svnbench/svnbench.c:622
#, c-format
msgid "'%s' is not a valid depth; try 'empty', 'files', 'immediates', or 'infinity'"
msgstr "»%s« ist keine gültige Tiefe; versuchen Sie »empty«, »files«, »immediates« oder »infinity«"
-#: ../svn/svn.c:2149
+#: ../svn/svn.c:2437
#, c-format
msgid "'%s' is not a valid depth; try 'exclude', 'empty', 'files', 'immediates', or 'infinity'"
msgstr "»%s« ist keine gültige Tiefe; versuchen Sie »exclude«, »empty«, »files«, »immediates« oder »infinity«"
-#: ../svn/svn.c:2284
+#: ../svn/svn.c:2572
#, c-format
msgid "Syntax error in native-eol argument '%s'"
msgstr "Syntaxfehler im »native-eol« Parameter »%s«"
-#: ../svn/svn.c:2302
+#: ../svn/svn.c:2593
msgid "Changelist names must not be empty"
msgstr "Namen von Änderungslisten dürfen nicht leer sein"
-#: ../svn/svn.c:2335
+#: ../svn/svn.c:2626
#, c-format
msgid "'%s' is not a valid --accept value"
msgstr "»%s« ist kein gültiger Wert für --accept"
-#: ../svn/svn.c:2343
+#: ../svn/svn.c:2634
#, c-format
msgid "'%s' is not a valid --show-revs value"
msgstr "»%s« ist kein gültiger Wert für --show-revs"
-#: ../svn/svn.c:2359
+#: ../svn/svn.c:2650
#, c-format
msgid "Invalid strip count '%s'"
msgstr "Ungültige Anzahl der zu entfernenden Komponenten »%s«"
-#: ../svn/svn.c:2365
+#: ../svn/svn.c:2656
msgid "Argument to --strip must be positive"
msgstr "Parameter für --strip muss positiv sein"
-#: ../svn/svn.c:2441 ../svnmucc/svnmucc.c:658 ../svnrdump/svnrdump.c:962
-#: ../svnsync/svnsync.c:2170
+#: ../svn/svn.c:2747 ../svnmucc/svnmucc.c:666 ../svnrdump/svnrdump.c:940
+#: ../svnsync/svnsync.c:2204
msgid "--non-interactive and --force-interactive are mutually exclusive"
msgstr "--non-interactive und --force-interactive schließen sich gegenseitig aus"
-#: ../svn/svn.c:2494 ../svnbench/svnbench.c:708
-#: ../svndumpfilter/svndumpfilter.c:1456 ../svnlook/svnlook.c:2675
+#: ../svn/svn.c:2800 ../svnbench/svnbench.c:756
+#: ../svndumpfilter/svndumpfilter.c:1428 ../svnlook/svnlook.c:2694
#, c-format
msgid "Subcommand argument required\n"
msgstr "Unterbefehl benötigt einen Parameter\n"
-#: ../svn/svn.c:2512 ../svnadmin/svnadmin.c:2689 ../svnbench/svnbench.c:726
-#: ../svndumpfilter/svndumpfilter.c:1474 ../svnfsfs/svnfsfs.c:403
-#: ../svnlook/svnlook.c:2692 ../svnrdump/svnrdump.c:1006
+#: ../svn/svn.c:2818 ../svnadmin/svnadmin.c:3154 ../svnbench/svnbench.c:774
+#: ../svndumpfilter/svndumpfilter.c:1445 ../svnfsfs/svnfsfs.c:379
+#: ../svnlook/svnlook.c:2711 ../svnrdump/svnrdump.c:984
#, c-format
msgid "Unknown subcommand: '%s'\n"
msgstr "Unbekannter Unterbefehl: »%s«\n"
-#: ../svn/svn.c:2521
+#: ../svn/svn.c:2827
#, c-format
msgid "Undo is done using either the 'svn revert' or the 'svn merge' command.\n"
msgstr "Undo wird mit den Befehlen »svn revert« bzw. »svn merge« durchgeführt.\n"
-#: ../svn/svn.c:2557
+#: ../svn/svn.c:2863
#, c-format
msgid ""
"Subcommand '%s' doesn't accept option '%s'\n"
@@ -14570,115 +17166,102 @@ msgstr ""
"Unterbefehl »%s« akzeptiert die Option »%s« nicht\n"
"Geben Sie »svn help %s« für Hilfe ein.\n"
-#: ../svn/svn.c:2572 ../svnbench/svnbench.c:774
+#: ../svn/svn.c:2878 ../svnbench/svnbench.c:822
msgid "Multiple revision arguments encountered; can't specify -c twice, or both -c and -r"
msgstr "Mehrere Revisionsparameter gefunden; bitte nicht zweimal -c oder gleichzeitig -r und -c angeben"
-#: ../svn/svn.c:2583
+#: ../svn/svn.c:2889
msgid "--depth and --set-depth are mutually exclusive"
msgstr "--depth und --set-depth schließen sich gegenseitig aus"
-#: ../svn/svn.c:2592 ../svnbench/svnbench.c:785
+#: ../svn/svn.c:2898 ../svnbench/svnbench.c:833
msgid "--with-all-revprops and --with-no-revprops are mutually exclusive"
msgstr "--with-all-revprops und --with-no-revprops schließen sich gegenseitig aus"
-#: ../svn/svn.c:2601 ../svnbench/svnbench.c:794
+#: ../svn/svn.c:2907 ../svnbench/svnbench.c:842
msgid "--with-revprop and --with-no-revprops are mutually exclusive"
msgstr "--with-revprop und --with-no-revprops schließen sich gegenseitig aus"
-#: ../svn/svn.c:2631
+#: ../svn/svn.c:2937
msgid "--message (-m) and --file (-F) are mutually exclusive"
msgstr "--message (-m) und --file (-F) schließen sich gegenseitig aus"
-#: ../svn/svn.c:2640 ../svnbench/svnbench.c:803 ../svnmucc/svnmucc.c:669
-#: ../svnrdump/svnrdump.c:1064 ../svnsync/svnsync.c:2219
-msgid "--trust-unknown-ca requires --non-interactive"
-msgstr "--trust-unknown-ca erfordert --non-interactive"
-
-#: ../svn/svn.c:2644 ../svnbench/svnbench.c:807 ../svnmucc/svnmucc.c:673
-#: ../svnrdump/svnrdump.c:1068 ../svnsync/svnsync.c:2223
-msgid "--trust-cn-mismatch requires --non-interactive"
-msgstr "--trust-cn-mismatch erfordert --non-interactive"
+#: ../svn/svn.c:2950 ../svnbench/svnbench.c:855 ../svnmucc/svnmucc.c:678
+#: ../svnrdump/svnrdump.c:1043
+#, fuzzy
+msgid "--trust-server-cert-failures requires --non-interactive"
+msgstr "--trust-other-failure erfordert --non-interactive"
-#: ../svn/svn.c:2648 ../svnbench/svnbench.c:811 ../svnmucc/svnmucc.c:677
-#: ../svnrdump/svnrdump.c:1072 ../svnsync/svnsync.c:2227
-msgid "--trust-expired requires --non-interactive"
+#: ../svn/svn.c:2958 ../svnbench/svnbench.c:863 ../svnmucc/svnmucc.c:686
+#: ../svnrdump/svnrdump.c:1050
+#, fuzzy
+msgid "--password-from-stdin requires --non-interactive"
msgstr "--trust-expired erfordert --non-interactive"
-#: ../svn/svn.c:2652 ../svnbench/svnbench.c:815 ../svnmucc/svnmucc.c:681
-#: ../svnrdump/svnrdump.c:1076 ../svnsync/svnsync.c:2231
-msgid "--trust-not-yet-valid requires --non-interactive"
-msgstr "--trust-not-yet-valid erfordert --non-interactive"
-
-#: ../svn/svn.c:2656 ../svnbench/svnbench.c:819 ../svnmucc/svnmucc.c:685
-#: ../svnrdump/svnrdump.c:1080 ../svnsync/svnsync.c:2235
-msgid "--trust-other-failure requires --non-interactive"
-msgstr "--trust-other-failure erfordert --non-interactive"
-
# TODO: Duplicated message!!!!
-#: ../svn/svn.c:2665
+#: ../svn/svn.c:2967
msgid "--diff-cmd and --internal-diff are mutually exclusive"
msgstr "--diff-cmd und --internal-diff schließen sich gegenseitig aus"
-#: ../svn/svn.c:2707
+#: ../svn/svn.c:3009
msgid "--relocate and --depth are mutually exclusive"
msgstr "--relocate und --depth schließen sich gegenseitig aus"
-#: ../svn/svn.c:2714
+#: ../svn/svn.c:3016
msgid "--relocate and --non-recursive (-N) are mutually exclusive"
msgstr "--relocate und --non-recursive (-N) schließen sich gegenseitig aus"
-#: ../svn/svn.c:2833
+#: ../svn/svn.c:3139
msgid "Log message file is a versioned file; use '--force-log' to override"
msgstr "Die Datei für die Logmeldung ist versioniert; geben Sie »--force-log« an, um sie zu verwenden"
-#: ../svn/svn.c:2840
+#: ../svn/svn.c:3146
msgid "Lock comment file is a versioned file; use '--force-log' to override"
msgstr "Die Datei für den Sperrkommentar ist versioniert; geben Sie »--force-log« an, um sie zu verwenden"
-#: ../svn/svn.c:2860
+#: ../svn/svn.c:3166
msgid "The log message is a pathname (was -F intended?); use '--force-log' to override"
msgstr "Die Logmeldung ist ein Pfad (war -F gemeint?); geben Sie »--force-log« an, um sie zu verwenden"
-#: ../svn/svn.c:2867
+#: ../svn/svn.c:3173
msgid "The lock comment is a pathname (was -F intended?); use '--force-log' to override"
msgstr "Der Sperrkommentar ist ein Pfad (war -F gemeint?); geben Sie »--force-log« an, um ihn zu verwenden"
-#: ../svn/svn.c:2890
+#: ../svn/svn.c:3196
msgid "--auto-props and --no-auto-props are mutually exclusive"
msgstr "--auto-props und --no-auto-props schließen sich gegenseitig aus"
-#: ../svn/svn.c:2999 ../svn/svn.c:3006
+#: ../svn/svn.c:3289 ../svn/svn.c:3296
#, c-format
msgid "--accept=%s incompatible with --non-interactive"
msgstr "--accept=%s ist mit --non-interactive nicht kompatibel"
-#: ../svn/svn.c:3062
+#: ../svn/svn.c:3345
#, c-format
msgid "Try 'svn help %s' for more information"
msgstr "Versuchen Sie »svn help %s« für weitere Informationen"
-#: ../svn/svn.c:3068 ../svnbench/svnbench.c:968
+#: ../svn/svn.c:3351 ../svnbench/svnbench.c:1006
msgid "Please see the 'svn upgrade' command"
msgstr "Siehe Kommando »svn upgrade«"
-#: ../svn/svn.c:3074 ../svnmucc/svnmucc.c:966 ../svnrdump/svnrdump.c:1156
+#: ../svn/svn.c:3357 ../svnmucc/svnmucc.c:971 ../svnrdump/svnrdump.c:1143
msgid "Authentication failed and interactive prompting is disabled; see the --force-interactive option"
msgstr "Authentifizierung schlug fehl und interaktives Nachfragen ist deaktiviert; Siehe Option »--force-interactive«"
-#: ../svn/svn.c:3079
+#: ../svn/svn.c:3362
msgid "Reading file from standard input because of -F option; this can interfere with interactive prompting"
msgstr "Einlesen der Datei von der Standardeingabe wegen Option -F; dies kann interaktive Nachfragen stören"
-#: ../svn/svn.c:3090 ../svnbench/svnbench.c:976
+#: ../svn/svn.c:3373 ../svnbench/svnbench.c:1014
msgid "Run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)"
msgstr "Starten Sie »svn cleanup«, um die Sperren zu entfernen (Aufruf: »svn help cleanup« für Details)"
-#: ../svn/svn.c:3097
+#: ../svn/svn.c:3380
msgid "Another process is blocking the working copy database, or the underlying filesystem does not support file locking; if the working copy is on a network filesystem, make sure file locking has been enabled on the file server"
msgstr "Ein anderer Vorgang blockiert die Datenbank der Arbeitskopie, oder das darunterliegende Dateisystem unterstützt das Sperren von Dateien nicht; falls sich die Arbeitskopie auf einem Netzwerkdateisystem befindet, stellen Sie sicher, dass Dateisperren auf dem Dateiserver aktiviert sind"
-#: ../svn/svn.c:3110
+#: ../svn/svn.c:3393
msgid "When using svn+ssh:// URLs, keep in mind that the --username and --password options are ignored because authentication is performed by SSH, not Subversion"
msgstr "Bei der Verwendung von svn+ssh:// URLs sollte beachtet werden, dass die Optionen »--username« und »--password« ignoriert werden, da die Authentifizierung von SSH und nicht Subversion durchgeführt wird"
@@ -14687,15 +17270,20 @@ msgstr "Bei der Verwendung von svn+ssh:// URLs sollte beachtet werden, dass die
msgid "'%s' to '%s' is not a valid relocation"
msgstr "Umplatzieren von »%s« nach »%s« ist nicht möglich"
-#: ../svn/switch-cmd.c:170
+#: ../svn/switch-cmd.c:173
#, c-format
msgid "Path '%s' does not share common version control ancestry with the requested switch location. Use --ignore-ancestry to disable this check."
msgstr "Pfad »%s« hat keine gemeinsame Versionskontrollgeschichte mit dem angegebenen Ziel der Umstellung. Verwenden Sie »--ignore-ancestry« um diese Prüfung zu umgehen."
-#: ../svn/switch-cmd.c:180
+#: ../svn/switch-cmd.c:183
msgid "'svn switch' does not support switching a working copy to a different repository"
msgstr "Umstellen einer Arbeitskopie auf ein anderes Projektarchiv wird von »svn switch« nicht unterstützt"
+#: ../svn/unlock-cmd.c:101
+#, fuzzy
+msgid "One or more locks could not be released"
+msgstr "[Fehlerausgabe konnte nicht gelesen werden.]"
+
#: ../svn/update-cmd.c:93
#, c-format
msgid "Summary of updates:\n"
@@ -14715,7 +17303,7 @@ msgstr "Revision %ld%s übertragen.\n"
msgid " (the answer to life, the universe, and everything)"
msgstr " (die Antwort auf die Frage nach dem Leben, dem Universum und dem ganzen Rest)"
-#: ../svn/util.c:99
+#: ../svn/util.c:99 ../svnmucc/svnmucc.c:94
#, c-format
msgid ""
"\n"
@@ -14755,11 +17343,11 @@ msgstr "Ihre Logmeldung wurde in einer Temporärdatei abgelegt:"
msgid "--This line, and those below, will be ignored--"
msgstr "-- Diese und die folgenden Zeilen werden ignoriert --"
-#: ../svn/util.c:360 ../svnmucc/svnmucc.c:423
+#: ../svn/util.c:360 ../svnmucc/svnmucc.c:432
msgid "Error normalizing log message to internal format"
msgstr "Fehler beim Normalisieren der Logmeldung ins interne Format"
-#: ../svn/util.c:449 ../svnmucc/svnmucc.c:433
+#: ../svn/util.c:449 ../svnmucc/svnmucc.c:442
msgid "Cannot invoke editor to get log message when non-interactive"
msgstr "Kann den Editor für Logmeldungen nur im interaktiven Modus aufrufen"
@@ -14782,78 +17370,82 @@ msgid "Use --force to override this restriction (local modifications may be lost
msgstr "Benutzen Sie »--force«, um diese Einschränkung aufzuheben (lokale Änderungen könnten verloren gehen)"
# CHECKME! Here used beside "dir" and "file".
-#: ../svn/util.c:740 ../svn/util.c:773
+#: ../svn/util.c:741 ../svn/util.c:774
msgid "none"
msgstr "nichts"
-#: ../svn/util.c:741
+#: ../svn/util.c:742
msgid "file"
msgstr "Datei"
# dir is no English word!
-#: ../svn/util.c:742
+#: ../svn/util.c:743
msgid "dir"
msgstr "Verzeichnis"
-#: ../svn/util.c:774
+#: ../svn/util.c:775
msgid "update"
msgstr "Aktualisierung"
-#: ../svn/util.c:775
+#: ../svn/util.c:776
msgid "switch"
msgstr "Umstellung"
-#: ../svn/util.c:898
+#: ../svn/util.c:777
+msgid "merge"
+msgstr "Zusammenführung"
+
+#: ../svn/util.c:899
msgid "(invalid date)"
msgstr "(ungültiges Datum)"
-#: ../svn/util.c:1058
+#: ../svn/util.c:1062
#, c-format
msgid "svn: warning: '%s' is a binary mime-type but file '%s' looks like text; diff, merge, blame, and other operations will stop working on this file\n"
msgstr "svn: Warnung: »%s« ist ein binärer Mime-Typ, die Datei »%s« sieht aber wie Text aus; Operationen »diff« (Unterschiede anzeigen), »merge« (Unterschiede zusammenführen), »blame« (Annotieren) und andere Operationen werden auf dieser Datei nicht mehr funktionieren\n"
-#: ../svnadmin/svnadmin.c:236 ../svnfsfs/svnfsfs.c:141
-#: ../svnrdump/svnrdump.c:132
+#: ../svnadmin/svnadmin.c:177 ../svnfsfs/svnfsfs.c:101
+#: ../svnrdump/svnrdump.c:112
msgid "specify revision number ARG (or X:Y range)"
msgstr "spezifizieren Sie PAR für Revisionsnummer (oder X:Y Bereich)"
-#: ../svnadmin/svnadmin.c:239 ../svnlook/svnlook.c:166
+#: ../svnadmin/svnadmin.c:180 ../svnlook/svnlook.c:173
msgid "specify transaction name ARG"
msgstr "Transaktionsname PAR angeben"
-#: ../svnadmin/svnadmin.c:242
+#: ../svnadmin/svnadmin.c:183
msgid "dump or hotcopy incrementally"
msgstr "Datenstrom inkrementell ausgeben oder im laufenden Betrieb inkrementell kopieren"
-#: ../svnadmin/svnadmin.c:245
+#: ../svnadmin/svnadmin.c:186
msgid "use deltas in dump output"
msgstr "Nutzt Deltas bei der Ausgabe"
-#: ../svnadmin/svnadmin.c:248
+#: ../svnadmin/svnadmin.c:189
msgid "bypass the repository hook system"
msgstr "Umgeht das Aktionssystem des Projektarchivs"
-#: ../svnadmin/svnadmin.c:251
+#: ../svnadmin/svnadmin.c:192
msgid "bypass property validation logic"
msgstr "Umgeht die Logik zur Überprüfung von Eigenschaften"
-#: ../svnadmin/svnadmin.c:254
+#: ../svnadmin/svnadmin.c:195
msgid "ignore revision datestamps found in the stream"
msgstr "Ignoriert Datumsangaben der im Datenstrom gefundenen Revisionen"
-#: ../svnadmin/svnadmin.c:257 ../svnfsfs/svnfsfs.c:138
+#: ../svnadmin/svnadmin.c:198 ../svnfsfs/svnfsfs.c:98
msgid "no progress (only errors to stderr)"
msgstr "keine Fortschrittsanzeige (nur Fehler auf die Standardfehlerausgabe)"
-#: ../svnadmin/svnadmin.c:260
+#: ../svnadmin/svnadmin.c:201
msgid "ignore any repos UUID found in the stream"
msgstr "Ignoriert jede Projektarchiv-UUID, die im Datenstrom gefunden wird"
-#: ../svnadmin/svnadmin.c:263
+#: ../svnadmin/svnadmin.c:204
msgid "set repos UUID to that found in stream, if any"
msgstr "Setzt die UUID des Projektarchivs auf die im Datenstrom gefundene"
-#: ../svnadmin/svnadmin.c:266
+#: ../svnadmin/svnadmin.c:207
msgid ""
"type of repository:\n"
" 'fsfs' (default), 'bdb' or 'fsx'\n"
@@ -14863,19 +17455,19 @@ msgstr ""
" 'fsfs' (Vorgabe), 'bdb' or 'fsx'\n"
" ACHTUNG: FSX ist als EXPERIMENTELL eingestuft!"
-#: ../svnadmin/svnadmin.c:271
+#: ../svnadmin/svnadmin.c:212
msgid "load at specified directory in repository"
msgstr "in das spezifizierte Verzeichnis im Projektarchiv laden"
-#: ../svnadmin/svnadmin.c:274
+#: ../svnadmin/svnadmin.c:215
msgid "disable fsync at transaction commit [Berkeley DB]"
msgstr "Deaktiviert »fsync« für jede Übertragungstransaktion [Berkeley DB]"
-#: ../svnadmin/svnadmin.c:277
+#: ../svnadmin/svnadmin.c:218
msgid "disable automatic log file removal [Berkeley DB]"
msgstr "Deaktiviert das automatische Entfernen von Log-Dateien [Berkeley DB]"
-#: ../svnadmin/svnadmin.c:283
+#: ../svnadmin/svnadmin.c:224
msgid ""
"remove redundant Berkeley DB log files\n"
" from source repository [Berkeley DB]"
@@ -14883,23 +17475,23 @@ msgstr ""
"Entfernt redundante Berkeley-DB-Logdateien\n"
" aus dem Projektarchiv [Berkeley DB]"
-#: ../svnadmin/svnadmin.c:287
+#: ../svnadmin/svnadmin.c:228
msgid "call pre-commit hook before committing revisions"
msgstr "die Aktion »pre-commit« nach dem Übertragen von Revisionen aufrufen"
-#: ../svnadmin/svnadmin.c:290
+#: ../svnadmin/svnadmin.c:231
msgid "call post-commit hook after committing revisions"
msgstr "die Aktion »post-commit« nach dem Übertragen von Revisionen aufrufen"
-#: ../svnadmin/svnadmin.c:293
+#: ../svnadmin/svnadmin.c:234
msgid "call hook before changing revision property"
msgstr "Aktion vor der Änderung der Revisionseigenschaft aufrufen"
-#: ../svnadmin/svnadmin.c:296
+#: ../svnadmin/svnadmin.c:237
msgid "call hook after changing revision property"
msgstr "Aktion nach der Änderung der Revisionseigenschaft aufrufen"
-#: ../svnadmin/svnadmin.c:299
+#: ../svnadmin/svnadmin.c:240
msgid ""
"wait instead of exit if the repository is in\n"
" use by another process"
@@ -14907,16 +17499,16 @@ msgstr ""
"Wartet anstatt abzubrechen, wenn das Projektarchiv\n"
" durch einen anderen Prozess belegt ist"
-#: ../svnadmin/svnadmin.c:303 ../svnadmin/svnadmin.c:306
-#: ../svnadmin/svnadmin.c:309
+#: ../svnadmin/svnadmin.c:244 ../svnadmin/svnadmin.c:247
+#: ../svnadmin/svnadmin.c:250
msgid "deprecated; see --compatible-version"
msgstr "Veraltet; siehe »--compatible-version«"
-#: ../svnadmin/svnadmin.c:312
+#: ../svnadmin/svnadmin.c:253
msgid "continue verification after detecting a corruption"
msgstr "Setzt die Verifikation nach einer entdeckten Beschädigung fort"
-#: ../svnadmin/svnadmin.c:315
+#: ../svnadmin/svnadmin.c:256 ../svnlook/svnlook.c:148
msgid ""
"size of the extra in-memory cache in MB used to\n"
" minimize redundant operations. Default: 16.\n"
@@ -14927,7 +17519,7 @@ msgstr ""
" [nur für FSFS-Projektarchive verwendet]"
# TODO: combine with message above
-#: ../svnadmin/svnadmin.c:320
+#: ../svnadmin/svnadmin.c:261
msgid ""
"use repository format compatible with Subversion\n"
" version ARG (\"1.5.5\", \"1.7\", etc.)"
@@ -14935,11 +17527,11 @@ msgstr ""
"verwendet ein Format das mit der Subversion-Version PAR\n"
" kompatibel ist (\"1.5.5\", \"1.7\", usw.)"
-#: ../svnadmin/svnadmin.c:323
+#: ../svnadmin/svnadmin.c:264 ../svnadmin/svnadmin.c:399
msgid "read repository paths from file ARG"
msgstr "Liest Pfade imP rojektarchive aus Datei PAR"
-#: ../svnadmin/svnadmin.c:326
+#: ../svnadmin/svnadmin.c:267
msgid ""
"report any names within the same directory or\n"
" svn:mergeinfo property value that differ only\n"
@@ -14951,7 +17543,7 @@ msgstr ""
" Zeichendarstellung unterscheiden aber sonst\n"
" identisch sind"
-#: ../svnadmin/svnadmin.c:332
+#: ../svnadmin/svnadmin.c:273
msgid ""
"verify metadata only (ignored for BDB),\n"
" checking against external corruption in\n"
@@ -14961,10 +17553,52 @@ msgstr ""
" überprüft auf externe Beschädigungen von\n"
" Projektarchiven im Format Subversion 1.9+\n"
-#: ../svnadmin/svnadmin.c:346
+#: ../svnadmin/svnadmin.c:278
+msgid ""
+"disable flushing to disk during the operation\n"
+" (faster, but unsafe on power off)"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:282
+#, fuzzy
+msgid ""
+"normalize property values found in the dumpstream\n"
+" (currently, only translates non-LF line endings)"
+msgstr ""
+"Entfernt alle im Dateiabzug gefundenen leeren Revisionen\n"
+" mit Ausnahme von Revision 0."
+
+#: ../svnadmin/svnadmin.c:286
+#, fuzzy
+msgid "filter out nodes with given prefix(es) from dump"
+msgstr ""
+"Knoten mit den angegebenen Präfixen aus dem Datenstrom ausfiltern.\n"
+"Aufruf: svndumpfilter exclude PFAD_PRÄFIX ...\n"
+
+#: ../svnadmin/svnadmin.c:289
+#, fuzzy
+msgid "filter out nodes without given prefix(es) from dump"
+msgstr ""
+"Knoten, die nicht den angegebenen Präfixen entsprechen, aus dem Datenstrom ausfiltern.\n"
+"Aufruf: svndumpfilter include PFAD_PRÄFIX ...\n"
+
+#: ../svnadmin/svnadmin.c:292
+msgid ""
+"treat the path prefixes as file glob patterns.\n"
+" Glob special characters are '*' '?' '[]' and '\\'.\n"
+" Character '/' is not treated specially, so\n"
+" pattern /*/foo matches paths /a/foo and /a/b/foo."
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:307
msgid ""
"usage: svnadmin crashtest REPOS_PATH\n"
"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:309
+#, fuzzy
+msgid ""
"Open the repository at REPOS_PATH, then abort, thus simulating\n"
"a process that crashes while holding an open repository handle.\n"
msgstr ""
@@ -14973,50 +17607,65 @@ msgstr ""
"Öffnet das Projektarchiv in ARCHIV_PFAD und bricht ab. Simuliert\n"
"damit einen Prozess der bei geöffnetem Projektarchiv abstürzt.\n"
-#: ../svnadmin/svnadmin.c:352
+#: ../svnadmin/svnadmin.c:315
+#, fuzzy
msgid ""
"usage: svnadmin create REPOS_PATH\n"
"\n"
-"Create a new, empty repository at REPOS_PATH.\n"
+msgstr ""
+"Aufruf: svnlook date ARCHIV_PFAD\n"
+"\n"
+"Gibt das Datum aus.\n"
+
+#: ../svnadmin/svnadmin.c:317
+#, fuzzy
+msgid "Create a new, empty repository at REPOS_PATH.\n"
msgstr ""
"Aufruf: svnadmin create ARCHIV_PFAD\n"
"\n"
"Erstellt ein neues, leeres Projektarchiv im ARCHIV_PFAD.\n"
-#: ../svnadmin/svnadmin.c:361
+#: ../svnadmin/svnadmin.c:326
msgid ""
"usage: 1. svnadmin delrevprop REPOS_PATH -r REVISION NAME\n"
-" 2. svnadmin delrevprop REPO_PATH -t TXN NAME\n"
+" 2. svnadmin delrevprop REPOS_PATH -t TXN NAME\n"
"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:329
+msgid ""
"1. Delete the property NAME on revision REVISION.\n"
"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:331 ../svnadmin/svnadmin.c:553
+msgid ""
"Use --use-pre-revprop-change-hook/--use-post-revprop-change-hook to\n"
"trigger the revision property-related hooks (for example, if you want\n"
"an email notification sent from your post-revprop-change hook).\n"
"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:335
+msgid ""
"NOTE: Revision properties are not versioned, so this command will\n"
"irreversibly destroy the previous value of the property.\n"
"\n"
-"2. Delete the property NAME on transaction TXN.\n"
msgstr ""
-"Aufruf: 1. svnadmin delrevprop ARCHIV_PFAD -r REV NAME\n"
-"\n"
-"1. Löscht die Eigenschaft NAME der Revision REV.\n"
-"\n"
-"Mit »--use-pre-revprop-change-hook«/»--use-post-revprop-change-hook«\n"
-"lösen Sie die mit den Revisionseigenschaften zusammenhängenden Aktionen aus\n"
-"(z.B. falls Sie E-Mail-Benachrichtigungen durch Ihre »post-revprop-change«-\n"
-"Aktion versenden wollen).\n"
-"\n"
-"ACHTUNG: Revisionseigenschaften sind nicht versioniert. Dieser Befehl\n"
-"entfernt also unwiederbringlich die vorherige Eigenschaft.\n"
-"\n"
-"2. Löscht die Eigenschaft NAME der Transaktion TXN.\n"
-#: ../svnadmin/svnadmin.c:374
+#: ../svnadmin/svnadmin.c:338
+msgid "2. Delete the property NAME on transaction TXN.\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:344
msgid ""
"usage: svnadmin deltify [-r LOWER[:UPPER]] REPOS_PATH\n"
"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:346
+#, fuzzy
+msgid ""
"Run over the requested revision range, performing predecessor delti-\n"
"fication on the paths changed in those revisions. Deltification in\n"
"essence compresses the repository by only storing the differences or\n"
@@ -15031,10 +17680,15 @@ msgstr ""
"Revision gespeichert werden. Falls keine Revisionen angegeben wurden, wird\n"
"nur die HEAD-Revision deltifiziert.\n"
-#: ../svnadmin/svnadmin.c:383
+#: ../svnadmin/svnadmin.c:355
msgid ""
"usage: svnadmin dump REPOS_PATH [-r LOWER[:UPPER] [--incremental]]\n"
"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:357
+#, fuzzy
+msgid ""
"Dump the contents of filesystem to stdout in a 'dumpfile'\n"
"portable format, sending feedback to stderr. Dump revisions\n"
"LOWER rev through UPPER rev. If no revisions are given, dump all\n"
@@ -15044,6 +17698,7 @@ msgid ""
"every path present in the repository as of that revision. (In either\n"
"case, the second and subsequent revisions, if any, describe only paths\n"
"changed in those revisions.)\n"
+"\n"
msgstr ""
"Aufruf: svnadmin dump ARCHIV_PFAD [-r VON[:BIS] [--incremental]]\n"
"\n"
@@ -15057,13 +17712,53 @@ msgstr ""
"werden für die zweite und folgende Revisionen, nur in diesen Revisionen\n"
"geänderte Pfade ausgegeben.)\n"
-#: ../svnadmin/svnadmin.c:396
+#: ../svnadmin/svnadmin.c:367
+msgid ""
+"Using --exclude or --include gives results equivalent to authz-based\n"
+"path exclusions. In particular, when the source of a copy is\n"
+"excluded, the copy is transformed into an add (unlike in 'svndumpfilter').\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:373 ../svnadmin/svnadmin.c:385
+msgid "write to file ARG instead of stdout"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:376
+msgid ""
+"usage: svnadmin dump-revprops REPOS_PATH [-r LOWER[:UPPER]]\n"
+"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:378
+msgid ""
+"Dump the revision properties of filesystem to stdout in a 'dumpfile'\n"
+"portable format, sending feedback to stderr. Dump revisions\n"
+"LOWER rev through UPPER rev. If no revisions are given, dump the\n"
+"properties for all revisions. If only LOWER is given, dump the\n"
+"properties for that one revision.\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:388
+#, fuzzy
msgid ""
"usage: 1. svnadmin freeze REPOS_PATH PROGRAM [ARG...]\n"
" 2. svnadmin freeze -F FILE PROGRAM [ARG...]\n"
"\n"
+msgstr ""
+"Aufruf: svnadmin freeze ARCHIV_PFAD PROGRAMM [PAR...]\n"
+"\n"
+"Führt PROGRAMM mit den Optionen PAR aus, während ARCHIV_PFAD mit einer Schreibsperre belegt wird.\n"
+
+#: ../svnadmin/svnadmin.c:391
+msgid ""
"1. Run PROGRAM passing ARGS while holding a write-lock on REPOS_PATH.\n"
+" Allows safe use of third-party backup tools on a live repository.\n"
"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:394
+#, fuzzy
+msgid ""
"2. Like 1 except all repositories listed in FILE are locked. The file\n"
" format is repository paths separated by newlines. Repositories are\n"
" locked in the same order as they are listed in the file.\n"
@@ -15078,20 +17773,34 @@ msgstr ""
" getrennt enthalten. Projektarchive werden in der Reihenfolge der Auflistung\n"
" gesperrt.\n"
-#: ../svnadmin/svnadmin.c:406
+#: ../svnadmin/svnadmin.c:402
msgid ""
"usage: svnadmin help [SUBCOMMAND...]\n"
"\n"
-"Describe the usage of this program or its subcommands.\n"
msgstr ""
-"Aufruf: svnadmin help [UNTERBEFEHL...]\n"
-"\n"
+
+#: ../svnadmin/svnadmin.c:404 ../svnfsfs/svnfsfs.c:119
+#: ../svnlook/svnlook.c:273 ../svnrdump/svnrdump.c:103
+#: ../svnsync/svnsync.c:172
+#, fuzzy
+msgid "Describe the usage of this program or its subcommands.\n"
+msgstr ""
"Beschreibt die Anwendung dieses Programms und seiner Unterbefehle.\n"
+"Aufruf: help [UNTERBEFEHL...]\n"
-#: ../svnadmin/svnadmin.c:411
+#: ../svnadmin/svnadmin.c:409
+#, fuzzy
msgid ""
"usage: svnadmin hotcopy REPOS_PATH NEW_REPOS_PATH\n"
"\n"
+msgstr ""
+"Aufruf: svnadmin hotcopy ARCHIV_PFAD ARCHIV_PFAD_NEU\n"
+"\n"
+"Erstellt eine Kopie des Projektarchivs im laufenden Betrieb.\n"
+
+#: ../svnadmin/svnadmin.c:411
+#, fuzzy
+msgid ""
"Make a hot copy of a repository.\n"
"If --incremental is passed, data which already exists at the destination\n"
"is not copied again. Incremental mode is implemented for FSFS repositories.\n"
@@ -15106,18 +17815,36 @@ msgstr ""
msgid ""
"usage: svnadmin info REPOS_PATH\n"
"\n"
-"Print information about the repository at REPOS_PATH.\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:420
+#, fuzzy
+msgid "Print information about the repository at REPOS_PATH.\n"
msgstr ""
"Aufruf: svnadmin info ARCHIV_PFAD\n"
"\n"
"Gibt Informationen über das Projektarchiv in ARCHIV_PFAD aus.\n"
-#: ../svnadmin/svnadmin.c:423
+#: ../svnadmin/svnadmin.c:425
+#, fuzzy
msgid ""
"usage: svnadmin list-dblogs REPOS_PATH\n"
"\n"
+msgstr ""
+"Aufruf: svnadmin list-unused-dblogs ARCHIV_PFAD\n"
+"\n"
+"Listet ungenutzte Log-Dateien der Berkeley Datenbank auf.\n"
+"\n"
+
+#: ../svnadmin/svnadmin.c:427
+msgid ""
"List all Berkeley DB log files.\n"
"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:429
+#, fuzzy
+msgid ""
"WARNING: Modifying or deleting logfiles which are still in use\n"
"will cause your repository to be corrupted.\n"
msgstr ""
@@ -15128,22 +17855,34 @@ msgstr ""
"WARNUNG: Ändern oder Löschen von Log-Dateien, die noch\n"
"benutzt werden, wird ihr Projektarchiv beschädigen.\n"
-#: ../svnadmin/svnadmin.c:430
+#: ../svnadmin/svnadmin.c:435
+#, fuzzy
msgid ""
"usage: svnadmin list-unused-dblogs REPOS_PATH\n"
"\n"
-"List unused Berkeley DB log files.\n"
-"\n"
msgstr ""
"Aufruf: svnadmin list-unused-dblogs ARCHIV_PFAD\n"
"\n"
"Listet ungenutzte Log-Dateien der Berkeley Datenbank auf.\n"
"\n"
-#: ../svnadmin/svnadmin.c:435
+#: ../svnadmin/svnadmin.c:437
+msgid "List unused Berkeley DB log files.\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:442
+#, fuzzy
msgid ""
"usage: svnadmin load REPOS_PATH\n"
"\n"
+msgstr ""
+"Aufruf: svnlook author ARCHIV_PFAD\n"
+"\n"
+"Gibt den Autor aus.\n"
+
+#: ../svnadmin/svnadmin.c:444
+#, fuzzy
+msgid ""
"Read a 'dumpfile'-formatted stream from stdin, committing\n"
"new revisions into the repository's filesystem. If the repository\n"
"was previously empty, its UUID will, by default, be changed to the\n"
@@ -15161,10 +17900,44 @@ msgstr ""
"Wenn »--revision« angegeben wird, begrenzt dies die aus der Datei geladenen\n"
"Revisionen auf diesen Bereich.\n"
-#: ../svnadmin/svnadmin.c:448
+#: ../svnadmin/svnadmin.c:457 ../svnadmin/svnadmin.c:470
+msgid "read from file ARG instead of stdin"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:460
+msgid ""
+"usage: svnadmin load-revprops REPOS_PATH\n"
+"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:462
+#, fuzzy
+msgid ""
+"Read a 'dumpfile'-formatted stream from stdin, setting the revision\n"
+"properties in the repository's filesystem. Revisions not found in the\n"
+"repository will cause an error. Progress feedback is sent to stdout.\n"
+"If --revision is specified, limit the loaded revisions to only those\n"
+"in the dump stream whose revision numbers match the specified range.\n"
+msgstr ""
+"Aufruf: svnadmin load ARCHIV_PFAD\n"
+"\n"
+"Liest einen Datenstrom im »Dump«-Format von der Standardeingabe in das\n"
+"Dateisystem des Projektarchivs ein. Falls das Projektarchiv vorher leer\n"
+"war, wird seine UUID standardmäßig in diejenige geändert, die im Daten-\n"
+"strom spezifiziert ist. Eine Fortschrittsanzeige wird an die Standard-\n"
+"ausgabe gesendet.\n"
+"Wenn »--revision« angegeben wird, begrenzt dies die aus der Datei geladenen\n"
+"Revisionen auf diesen Bereich.\n"
+
+#: ../svnadmin/svnadmin.c:473
msgid ""
"usage: svnadmin lock REPOS_PATH PATH USERNAME COMMENT-FILE [TOKEN]\n"
"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:475
+#, fuzzy
+msgid ""
"Lock PATH by USERNAME setting comments from COMMENT-FILE.\n"
"If provided, use TOKEN as lock token. Use --bypass-hooks to avoid\n"
"triggering the pre-lock and post-lock hook scripts.\n"
@@ -15176,10 +17949,15 @@ msgstr ""
"Verwenden Sie »--bypass-hooks« um die Auslösung der Aktionen\n"
"»pre-unlock« und »post-unlock« zu umgehen.\n"
-#: ../svnadmin/svnadmin.c:455
+#: ../svnadmin/svnadmin.c:482
msgid ""
"usage: svnadmin lslocks REPOS_PATH [PATH-IN-REPOS]\n"
"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:484
+#, fuzzy
+msgid ""
"Print descriptions of all locks on or under PATH-IN-REPOS (which,\n"
"if not provided, is the root of the repository).\n"
msgstr ""
@@ -15188,20 +17966,29 @@ msgstr ""
"Gibt Beschreibungen aller Sperren auf oder unter PFAD-IN-ARCHIV aus (was,\n"
"falls nicht angegeben, die Wurzel des Projektarchivs ist).\n"
-#: ../svnadmin/svnadmin.c:461
+#: ../svnadmin/svnadmin.c:490
msgid ""
"usage: svnadmin lstxns REPOS_PATH\n"
"\n"
-"Print the names of all uncommitted transactions.\n"
msgstr ""
-"Aufruf: svnadmin lstxns ARCHIV_PFAD\n"
-"\n"
-"Gibt die Namen aller nicht übertragenen Transaktionen aus.\n"
-#: ../svnadmin/svnadmin.c:466
+#: ../svnadmin/svnadmin.c:492
+msgid ""
+"Print the names of uncommitted transactions. With -rN skip the output\n"
+"of those that have a base revision more recent than rN. Transactions\n"
+"with base revisions much older than HEAD are likely to have been\n"
+"abandonded and are candidates to be removed.\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:501
msgid ""
"usage: svnadmin pack REPOS_PATH\n"
"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:503
+#, fuzzy
+msgid ""
"Possibly compact the repository into a more efficient storage model.\n"
"This may not apply to all repositories, in which case, exit.\n"
msgstr ""
@@ -15210,10 +17997,15 @@ msgstr ""
"Versucht, das Projektarchiv in ein effizienteres Speichermodell zu\n"
"transformieren. Dies muss nicht bei allen Projektarchiven möglich sein und in problematischen Fällen wird nichts getan.\n"
-#: ../svnadmin/svnadmin.c:472
+#: ../svnadmin/svnadmin.c:509
msgid ""
"usage: svnadmin recover REPOS_PATH\n"
"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:511
+#, fuzzy
+msgid ""
"Run the recovery procedure on a repository. Do this if you've\n"
"been getting errors indicating that recovery ought to be run.\n"
"Berkeley DB recovery requires exclusive access and will\n"
@@ -15227,30 +18019,47 @@ msgstr ""
"Zugriff auf das Projektarchiv. Der Vorgang wird nicht gestartet, falls\n"
"das Projektarchiv von einem anderen Prozess benutzt wird.\n"
-#: ../svnadmin/svnadmin.c:480
+#: ../svnadmin/svnadmin.c:519
+#, fuzzy
msgid ""
"usage: svnadmin rmlocks REPOS_PATH LOCKED_PATH...\n"
"\n"
-"Unconditionally remove lock from each LOCKED_PATH.\n"
msgstr ""
"Aufruf: svnadmin rmlocks ARCHIV_PFAD SPERR_PFAD...\n"
"\n"
"Entferne vorbehaltslos die Sperren von jedem SPERR_PFAD.\n"
-#: ../svnadmin/svnadmin.c:485
+#: ../svnadmin/svnadmin.c:521
+#, fuzzy
+msgid "Unconditionally remove lock from each LOCKED_PATH.\n"
+msgstr ""
+"Aufruf: svnadmin rmlocks ARCHIV_PFAD SPERR_PFAD...\n"
+"\n"
+"Entferne vorbehaltslos die Sperren von jedem SPERR_PFAD.\n"
+
+#: ../svnadmin/svnadmin.c:526
+#, fuzzy
msgid ""
"usage: svnadmin rmtxns REPOS_PATH TXN_NAME...\n"
"\n"
-"Delete the named transaction(s).\n"
msgstr ""
"Aufruf: svnadmin rmtxns ARCHIV_PFAD TXN_NAME...\n"
"\n"
"Löscht die benannte(n) Transaktion(en).\n"
-#: ../svnadmin/svnadmin.c:490
+#: ../svnadmin/svnadmin.c:528
+msgid "Delete the named transaction(s).\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:533
msgid ""
"usage: svnadmin setlog REPOS_PATH -r REVISION FILE\n"
"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:535
+#, fuzzy
+msgid ""
"Set the log-message on revision REVISION to the contents of FILE. Use\n"
"--bypass-hooks to avoid triggering the revision-property-related hooks\n"
"(for example, if you do not want an email notification sent\n"
@@ -15258,8 +18067,6 @@ msgid ""
"revision properties has not been enabled in the pre-revprop-change\n"
"hook).\n"
"\n"
-"NOTE: Revision properties are not versioned, so this command will\n"
-"overwrite the previous log message.\n"
msgstr ""
"Aufruf: svnadmin setlog ARCHIV_PFAD -r REVISION DATEI\n"
"\n"
@@ -15273,40 +18080,45 @@ msgstr ""
"ACHTUNG: Revisionseigenschaften sind nicht versioniert. Dieser Befehl\n"
"überschreibt also die vorherige Logmeldung endgültig.\n"
-#: ../svnadmin/svnadmin.c:502
+#: ../svnadmin/svnadmin.c:542
+msgid ""
+"NOTE: Revision properties are not versioned, so this command will\n"
+"overwrite the previous log message.\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:548
msgid ""
"usage: 1. svnadmin setrevprop REPOS_PATH -r REVISION NAME FILE\n"
" 2. svnadmin setrevprop REPOS_PATH -t TXN NAME FILE\n"
"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:551
+msgid ""
"1. Set the property NAME on revision REVISION to the contents of FILE.\n"
"\n"
-"Use --use-pre-revprop-change-hook/--use-post-revprop-change-hook to\n"
-"trigger the revision property-related hooks (for example, if you want\n"
-"an email notification sent from your post-revprop-change hook).\n"
-"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:557
+msgid ""
"NOTE: Revision properties are not versioned, so this command will\n"
"overwrite the previous value of the property.\n"
"\n"
-"2. Set the property NAME on transaction TXN to the contents of FILE.\n"
msgstr ""
-"Aufruf: 1. svnadmin setrevprop ARCHIV_PFAD -r REV NAME DATEI\n"
-"\n"
-"1. Setzt Eigenschaft NAME der Revision REV auf den Inhalt der Datei DATEI.\n"
-"\n"
-"Mit »--use-pre-revprop-change-hook«/»--use-post-revprop-change-hook«\n"
-"lösen Sie die mit den Revisionseigenschaften zusammenhängenden Aktionen aus\n"
-"(z.B. falls Sie E-Mail-Benachrichtigungen durch Ihre »post-revprop-change«-\n"
-"Aktion versenden wollen).\n"
-"\n"
-"ACHTUNG: Revisionseigenschaften sind nicht versioniert. Dieser Befehl\n"
-"überschreibt also den vorherigen Wert der Eigenschaft.\n"
-"\n"
-"2. Setzt Eigenschaft NAME der Transaktion TXN auf den Inhalt der Datei DATEI.\n"
-#: ../svnadmin/svnadmin.c:515
+#: ../svnadmin/svnadmin.c:560
+msgid "2. Set the property NAME on transaction TXN to the contents of FILE.\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:566
msgid ""
"usage: svnadmin setuuid REPOS_PATH [NEW_UUID]\n"
"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:568
+#, fuzzy
+msgid ""
"Reset the repository UUID for the repository located at REPOS_PATH. If\n"
"NEW_UUID is provided, use that as the new repository UUID; otherwise,\n"
"generate a brand new UUID for the repository.\n"
@@ -15318,10 +18130,15 @@ msgstr ""
"UUID des Projektarchivs verwendet, andernfalls wird eine brandneue UUID\n"
"für das Projektarchiv erzeugt.\n"
-#: ../svnadmin/svnadmin.c:522
+#: ../svnadmin/svnadmin.c:575
msgid ""
"usage: svnadmin unlock REPOS_PATH LOCKED_PATH USERNAME TOKEN\n"
"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:577
+#, fuzzy
+msgid ""
"Unlock LOCKED_PATH (as USERNAME) after verifying that the token\n"
"associated with the lock matches TOKEN. Use --bypass-hooks to avoid\n"
"triggering the pre-unlock and post-unlock hook scripts.\n"
@@ -15333,13 +18150,22 @@ msgstr ""
"Sie »--bypass-hooks« um die Auslösung der Aktionen »pre-unlock« und\n"
"»post-unlock« zu umgehen.\n"
-#: ../svnadmin/svnadmin.c:529
+#: ../svnadmin/svnadmin.c:584
msgid ""
"usage: svnadmin upgrade REPOS_PATH\n"
"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:586
+msgid ""
"Upgrade the repository located at REPOS_PATH to the latest supported\n"
"schema version.\n"
"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:589
+#, fuzzy
+msgid ""
"This functionality is provided as a convenience for repository\n"
"administrators who wish to make use of new Subversion functionality\n"
"without having to undertake a potentially costly full repository dump\n"
@@ -15362,39 +18188,43 @@ msgstr ""
"Zustand des Projektarchivs wie ein »dump« mit anschließendem »load« dies\n"
"bewirken würde.\n"
-#: ../svnadmin/svnadmin.c:542
+#: ../svnadmin/svnadmin.c:600
+#, fuzzy
msgid ""
"usage: svnadmin verify REPOS_PATH\n"
"\n"
-"Verify the data stored in the repository.\n"
msgstr ""
"Aufruf: svnadmin verify ARCHIV_PFAD\n"
"\n"
"Überprüft die im Projektarchiv gespeicherten Daten.\n"
-#: ../svnadmin/svnadmin.c:606
+#: ../svnadmin/svnadmin.c:602
+#, fuzzy
+msgid "Verify the data stored in the repository.\n"
+msgstr ""
+"Aufruf: svnadmin verify ARCHIV_PFAD\n"
+"\n"
+"Überprüft die im Projektarchiv gespeicherten Daten.\n"
+
+#: ../svnadmin/svnadmin.c:703
msgid "Invalid revision specifier"
msgstr "Ungültige Revision angegeben"
-#: ../svnadmin/svnadmin.c:610
+#: ../svnadmin/svnadmin.c:707
#, c-format
msgid "Revisions must not be greater than the youngest revision (%ld)"
msgstr "Revisionen dürfen nicht größer als die Endrevision (%ld) sein"
-#: ../svnadmin/svnadmin.c:628
+#: ../svnadmin/svnadmin.c:734
#, c-format
msgid "Path '%s' is not a local path"
msgstr "Pfad »%s« ist kein lokaler Pfad"
-#: ../svnadmin/svnadmin.c:657
+#: ../svnadmin/svnadmin.c:763
msgid "Not enough arguments"
msgstr "Nicht genügend Parameter"
-#: ../svnadmin/svnadmin.c:660
-msgid "Too many arguments"
-msgstr "Zu viele Parameter"
-
-#: ../svnadmin/svnadmin.c:696
+#: ../svnadmin/svnadmin.c:806
#, c-format
msgid ""
"Successfully opened repository '%s'.\n"
@@ -15403,66 +18233,71 @@ msgstr ""
"Projektarchive »%s« erfolgreich geöffnet.\n"
"Es folgt ein Abbruch, um den Absturz eines Serverprozesses zu simulieren.\n"
-#: ../svnadmin/svnadmin.c:735
+#: ../svnadmin/svnadmin.c:845
#, c-format
msgid "%swarning: The \"%s\" repository back-end is deprecated, consider using \"%s\" instead.\n"
msgstr "%sWarnung: Das Dateisystemmodul für Projektarchive »%s« ist veraltet, verwenden Sie stattdessen »%s«.\n"
-#: ../svnadmin/svnadmin.c:776
+#: ../svnadmin/svnadmin.c:886
msgid "Repositories compatible with 1.0.x must use --fs-type=bdb"
msgstr "Projektarchive, die mit 1.0.x kompatibel sind, müssen --fs-type=bdb verwenden"
-#: ../svnadmin/svnadmin.c:784
+#: ../svnadmin/svnadmin.c:894
#, c-format
msgid "Repositories compatible with 1.8.x or earlier cannot use --fs-type=%s"
msgstr "Projektarchive, die mit 1.8.x oder älter kompatibel sind, können --fs-type=%s nicht verwenden"
-#: ../svnadmin/svnadmin.c:829 ../svnadmin/svnadmin.c:1196
-#: ../svnadmin/svnadmin.c:1381
+#: ../svnadmin/svnadmin.c:939 ../svnadmin/svnadmin.c:1339
+#: ../svnadmin/svnadmin.c:1669
msgid "First revision cannot be higher than second"
msgstr "Die erste Revision darf kann nicht größer als zweite sein"
-#: ../svnadmin/svnadmin.c:838
+#: ../svnadmin/svnadmin.c:948
#, c-format
msgid "Deltifying revision %ld..."
msgstr "Bilde Deltas für Revision %ld ..."
-#: ../svnadmin/svnadmin.c:842 ../svnadmin/svnadmin.c:955
-#: ../svnadmin/svnadmin.c:970
+#: ../svnadmin/svnadmin.c:952 ../svnadmin/svnadmin.c:1083
+#: ../svnadmin/svnadmin.c:1098
#, c-format
msgid "done.\n"
msgstr "erledigt.\n"
-#: ../svnadmin/svnadmin.c:900
+#: ../svnadmin/svnadmin.c:1001
+#, fuzzy
+msgid "* Error verifying repository metadata.\n"
+msgstr "* Überprüfe Metadaten des Projektarchivs ...\n"
+
+#: ../svnadmin/svnadmin.c:1007
#, c-format
msgid "* Error verifying revision %ld.\n"
msgstr "* Fehler bei der Verifikation der Revision %ld.\n"
-#: ../svnadmin/svnadmin.c:936
+#: ../svnadmin/svnadmin.c:1064
msgid "* Verifying repository metadata ...\n"
msgstr "* Überprüfe Metadaten des Projektarchivs ...\n"
-#: ../svnadmin/svnadmin.c:939
+#: ../svnadmin/svnadmin.c:1067
#, c-format
msgid "* Verifying metadata at revision %ld ...\n"
msgstr "* Überprüfe Metadaten der Revision %ld ...\n"
-#: ../svnadmin/svnadmin.c:949
+#: ../svnadmin/svnadmin.c:1077
#, c-format
msgid "Packing revisions in shard %s..."
msgstr "Packe Revisionen in Fragment %s ..."
-#: ../svnadmin/svnadmin.c:964
+#: ../svnadmin/svnadmin.c:1092
#, c-format
msgid "Packing revprops in shard %s..."
msgstr "Packe Revisionseigenschaften in Fragment %s ..."
-#: ../svnadmin/svnadmin.c:1039
+#: ../svnadmin/svnadmin.c:1167
#, c-format
msgid "<<< Skipped original revision %ld\n"
msgstr "<<< Originalrevision %ld übersprungen\n"
-#: ../svnadmin/svnadmin.c:1056
+#: ../svnadmin/svnadmin.c:1183
msgid ""
"Repository lock acquired.\n"
"Please wait; recovering the repository may take some time...\n"
@@ -15470,7 +18305,7 @@ msgstr ""
"Exklusiven Zugriff auf das Projektarchiv erlangt\n"
"Bitte warten, die Wiederherstellung des Projektarchivs kann einige Zeit dauern ...\n"
-#: ../svnadmin/svnadmin.c:1063
+#: ../svnadmin/svnadmin.c:1190
msgid ""
"Repository lock acquired.\n"
"Please wait; upgrading the repository may take some time...\n"
@@ -15478,36 +18313,51 @@ msgstr ""
"Exklusiven Zugriff auf das Projektarchiv erlangt\n"
"Bitte warten, die Aktualisierung des Projektarchivs kann einige Zeit dauern ...\n"
-#: ../svnadmin/svnadmin.c:1074
-#, c-format
-msgid "Packing revision properties in shard %s..."
+#: ../svnadmin/svnadmin.c:1201
+#, fuzzy, c-format
+msgid "Packed revision properties in shard %s\n"
msgstr "Packe Revisionseigenschaften in Fragment %s ..."
-#: ../svnadmin/svnadmin.c:1086
-#, c-format
-msgid "Removing non-packed revision properties in shard %s..."
+#: ../svnadmin/svnadmin.c:1212
+#, fuzzy, c-format
+msgid "Removed non-packed revision properties in shard %s\n"
msgstr "Entferne nicht gepackte Revisionseigenschaften in Fragment %s ..."
-#: ../svnadmin/svnadmin.c:1094
+#: ../svnadmin/svnadmin.c:1220
#, c-format
msgid "Bumped repository format to %ld\n"
msgstr "Format des Projektarchivs erhöht auf: %ld\n"
-#: ../svnadmin/svnadmin.c:1102
+#: ../svnadmin/svnadmin.c:1228
#, c-format
msgid "* Copied revision %ld.\n"
msgstr "* Revision %ld kopiert.\n"
-#: ../svnadmin/svnadmin.c:1108
+#: ../svnadmin/svnadmin.c:1234
#, c-format
msgid "* Copied revisions from %ld to %ld.\n"
msgstr "* Revisionen von %ld bis %ld kopiert.\n"
-#: ../svnadmin/svnadmin.c:1257
+#: ../svnadmin/svnadmin.c:1245
+#, c-format
+msgid "svnadmin: Warning - this repository is not sharded. Packing has no effect.\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:1252
+#, fuzzy, c-format
+msgid "Properties set on revision %ld.\n"
+msgstr "Eigenschaften für Revision %ld kopiert.\n"
+
+#: ../svnadmin/svnadmin.c:1447
+#, c-format
+msgid "'--exclude' and '--include' options cannot be used simultaneously"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:1551
msgid "No program provided"
msgstr "Kein Programm angegeben"
-#: ../svnadmin/svnadmin.c:1295
+#: ../svnadmin/svnadmin.c:1591
msgid ""
"general usage: svnadmin SUBCOMMAND REPOS_PATH [ARGS & OPTIONS ...]\n"
"Subversion repository administration tool.\n"
@@ -15525,8 +18375,8 @@ msgstr ""
"\n"
"Verfügbare Unterbefehle:\n"
-#: ../svnadmin/svnadmin.c:1303 ../svnlook/svnlook.c:2243
-#: ../svnserve/svnserve.c:429
+#: ../svnadmin/svnadmin.c:1599 ../svnlook/svnlook.c:2252
+#: ../svnserve/svnserve.c:470
msgid ""
"The following repository back-end (FS) modules are available:\n"
"\n"
@@ -15534,20 +18384,25 @@ msgstr ""
"Die folgenden Dateisystemmodule für Projektarchive stehen zur Verfügung:\n"
"\n"
-#: ../svnadmin/svnadmin.c:1332
+#: ../svnadmin/svnadmin.c:1628
#, c-format
msgid "Invalid revision number (%ld) specified"
msgstr "Ungültige Revisionsnummer (%ld) angegeben"
-#: ../svnadmin/svnadmin.c:1342
+#: ../svnadmin/svnadmin.c:1638
msgid "Non-numeric revision specified"
msgstr "Nicht-numerische Revisionsnummer angegeben"
-#: ../svnadmin/svnadmin.c:1403
+#: ../svnadmin/svnadmin.c:1720 ../svnadmin/svnadmin.c:1778
+#, fuzzy
+msgid "A property with invalid line ending found in dumpstream; consider using --normalize-props while loading."
+msgstr "Ungültiger Eigenschaftswert in Datenstrom gefunden; Versuchen Sie die Quelle zu reparieren oder geben Sie »--bypass-prop-validation« beim Laden an."
+
+#: ../svnadmin/svnadmin.c:1727 ../svnadmin/svnadmin.c:1785
msgid "Invalid property value found in dumpstream; consider repairing the source or using --bypass-prop-validation while loading."
msgstr "Ungültiger Eigenschaftswert in Datenstrom gefunden; Versuchen Sie die Quelle zu reparieren oder geben Sie »--bypass-prop-validation« beim Laden an."
-#: ../svnadmin/svnadmin.c:1469 ../svnadmin/svnadmin.c:2336
+#: ../svnadmin/svnadmin.c:1877 ../svnadmin/svnadmin.c:2776
msgid ""
"Failed to get exclusive repository access; perhaps another process\n"
"such as httpd, svnserve or svn has it open?"
@@ -15556,12 +18411,12 @@ msgstr ""
"Vielleicht hat noch ein anderer Prozess (httpd, svnserve, svn)\n"
"das Projektarchiv geöffnet?"
-#: ../svnadmin/svnadmin.c:1474 ../svnadmin/svnadmin.c:2341
+#: ../svnadmin/svnadmin.c:1882 ../svnadmin/svnadmin.c:2781
#, c-format
msgid "Waiting on repository lock; perhaps another process has it open?\n"
msgstr "Warte auf Freigabe des Projektarchivs; Vielleicht ist es durch einen anderen Prozess geöffnet?\n"
-#: ../svnadmin/svnadmin.c:1482
+#: ../svnadmin/svnadmin.c:1890
#, c-format
msgid ""
"\n"
@@ -15570,40 +18425,40 @@ msgstr ""
"\n"
"Wiederherstellung vollständig abgeschlossen.\n"
-#: ../svnadmin/svnadmin.c:1489
+#: ../svnadmin/svnadmin.c:1897
#, c-format
msgid "The latest repos revision is %ld.\n"
msgstr "Die neueste Revision des Projektarchivs ist %ld.\n"
-#: ../svnadmin/svnadmin.c:1604
+#: ../svnadmin/svnadmin.c:2009
#, c-format
msgid "Transaction '%s' removed.\n"
msgstr "Transaktion »%s« entfernt.\n"
-#: ../svnadmin/svnadmin.c:1686 ../svnadmin/svnadmin.c:1800
-#: ../svnadmin/svnadmin.c:2386
+#: ../svnadmin/svnadmin.c:2091 ../svnadmin/svnadmin.c:2205
+#: ../svnadmin/svnadmin.c:2826
#, c-format
msgid "--revision (-r) and --transaction (-t) are mutually exclusive"
msgstr "--revision (-r) und --transaction (-t) schließen sich gegenseitig aus"
-#: ../svnadmin/svnadmin.c:1692 ../svnadmin/svnadmin.c:2392
+#: ../svnadmin/svnadmin.c:2097 ../svnadmin/svnadmin.c:2832
#, c-format
msgid "Calling hooks is incompatible with --transaction (-t)"
msgstr "Ausführung von Aktionen ist unverträglich mit --transaction (-t)"
-#: ../svnadmin/svnadmin.c:1697 ../svnadmin/svnadmin.c:1742
-#: ../svnadmin/svnadmin.c:2397
+#: ../svnadmin/svnadmin.c:2102 ../svnadmin/svnadmin.c:2147
+#: ../svnadmin/svnadmin.c:2837
#, c-format
msgid "Missing revision"
msgstr "Fehlende Revision"
-#: ../svnadmin/svnadmin.c:1700 ../svnadmin/svnadmin.c:1745
-#: ../svnadmin/svnadmin.c:2400
+#: ../svnadmin/svnadmin.c:2105 ../svnadmin/svnadmin.c:2150
+#: ../svnadmin/svnadmin.c:2840
#, c-format
msgid "Only one revision allowed"
msgstr "Nur eine Revision zulässig"
-#: ../svnadmin/svnadmin.c:1862
+#: ../svnadmin/svnadmin.c:2268
msgid ""
"\n"
"-----Summary of corrupt revisions-----\n"
@@ -15611,93 +18466,113 @@ msgstr ""
"\n"
"-----Zusammenfassung beschädigter Revisionen-----\n"
-#: ../svnadmin/svnadmin.c:1954
+#: ../svnadmin/svnadmin.c:2320
+#, fuzzy, c-format
+msgid "Failed to verify repository '%s'"
+msgstr "Projektarchiv »%s« kann nicht geöffnet werden"
+
+#: ../svnadmin/svnadmin.c:2372
#, c-format
msgid "UUID: %s\n"
msgstr "UUID: %s\n"
-#: ../svnadmin/svnadmin.c:1960
+#: ../svnadmin/svnadmin.c:2375
+#, fuzzy, c-format
+msgid "Revisions: %ld\n"
+msgstr "Revision: %ld\n"
+
+#: ../svnadmin/svnadmin.c:2381
#, c-format
msgid "Repository Format: %d\n"
msgstr "Format des Projektarchivs: %d\n"
-#: ../svnadmin/svnadmin.c:1974
+#: ../svnadmin/svnadmin.c:2395
#, c-format
msgid "Compatible With Version: %d.%d.0\n"
msgstr "Kompatibel mit Version: %d.%d.0\n"
-#: ../svnadmin/svnadmin.c:1993
+#: ../svnadmin/svnadmin.c:2414
#, c-format
msgid "Repository Capability: %s\n"
msgstr "Funktion des Projektarchivs: %s\n"
-#: ../svnadmin/svnadmin.c:2002
+#: ../svnadmin/svnadmin.c:2423
#, c-format
msgid "Filesystem Type: %s\n"
msgstr "Typ des Dateisystems: %s\n"
-#: ../svnadmin/svnadmin.c:2004
+#: ../svnadmin/svnadmin.c:2425
#, c-format
msgid "Filesystem Format: %d\n"
msgstr "Format des Dateisystems: %d\n"
-#: ../svnadmin/svnadmin.c:2013
+#: ../svnadmin/svnadmin.c:2432
#, c-format
msgid "FSFS Sharded: yes\n"
msgstr "FSFS Fragmentiert: ja\n"
-#: ../svnadmin/svnadmin.c:2015
+#: ../svnadmin/svnadmin.c:2434
#, c-format
msgid "FSFS Sharded: no\n"
msgstr "FSFS Fragmentiert: nein\n"
-#: ../svnadmin/svnadmin.c:2018
+#: ../svnadmin/svnadmin.c:2437
#, c-format
msgid "FSFS Shard Size: %d\n"
msgstr "FSFS Fragmentgröße: %d\n"
-#: ../svnadmin/svnadmin.c:2027
+#: ../svnadmin/svnadmin.c:2446
#, c-format
msgid "FSFS Shards Packed: %ld/%ld\n"
msgstr "FSFS Fragmente gepackt: %ld/%ld\n"
-#: ../svnadmin/svnadmin.c:2032
+#: ../svnadmin/svnadmin.c:2451
#, c-format
msgid "FSFS Logical Addressing: yes\n"
msgstr "FSFS Logische Adressierung: ja\n"
-#: ../svnadmin/svnadmin.c:2034
+#: ../svnadmin/svnadmin.c:2453
#, c-format
msgid "FSFS Logical Addressing: no\n"
msgstr "FSFS Logische Adressierung: nein\n"
+#: ../svnadmin/svnadmin.c:2463
+#, fuzzy, c-format
+msgid "FSX Shard Size: %d\n"
+msgstr "FSFS Fragmentgröße: %d\n"
+
+#: ../svnadmin/svnadmin.c:2465
+#, fuzzy, c-format
+msgid "FSX Shards Packed: %ld/%ld\n"
+msgstr "FSFS Fragmente gepackt: %ld/%ld\n"
+
# TODO: leicht inkonsistent zu obigen Strings (tritt in svn info-Ausgabe auf)
-#: ../svnadmin/svnadmin.c:2044
+#: ../svnadmin/svnadmin.c:2476
#, c-format
msgid "Configuration File: %s\n"
msgstr "Konfigurationsdatei: %s\n"
-#: ../svnadmin/svnadmin.c:2168 ../svnlook/svnlook.c:2306
+#: ../svnadmin/svnadmin.c:2604 ../svnlook/svnlook.c:2315
#, c-format
msgid "UUID Token: %s\n"
msgstr "UUID-Marke: %s\n"
-#: ../svnadmin/svnadmin.c:2169 ../svnlook/svnlook.c:2307
+#: ../svnadmin/svnadmin.c:2605 ../svnlook/svnlook.c:2316
#, c-format
msgid "Owner: %s\n"
msgstr "Eigentümer: %s\n"
-#: ../svnadmin/svnadmin.c:2170 ../svnlook/svnlook.c:2308
+#: ../svnadmin/svnadmin.c:2606 ../svnlook/svnlook.c:2317
#, c-format
msgid "Created: %s\n"
msgstr "Erstellt: %s\n"
-#: ../svnadmin/svnadmin.c:2171 ../svnlook/svnlook.c:2309
+#: ../svnadmin/svnadmin.c:2607 ../svnlook/svnlook.c:2318
#, c-format
msgid "Expires: %s\n"
msgstr "Läuft ab: %s\n"
-#: ../svnadmin/svnadmin.c:2173
+#: ../svnadmin/svnadmin.c:2609
#, c-format
msgid ""
"Comment (%i line):\n"
@@ -15716,34 +18591,34 @@ msgstr[1] ""
"%s\n"
"\n"
-#: ../svnadmin/svnadmin.c:2221
+#: ../svnadmin/svnadmin.c:2657
msgid "No paths to unlock provided"
msgstr "Keine Pfade zum Entsperren angegeben"
-#: ../svnadmin/svnadmin.c:2239
+#: ../svnadmin/svnadmin.c:2675
#, c-format
msgid "Path '%s' isn't locked.\n"
msgstr "Pfad »%s« ist nicht gesperrt.\n"
-#: ../svnadmin/svnadmin.c:2251
+#: ../svnadmin/svnadmin.c:2689
#, c-format
msgid "Removed lock on '%s'.\n"
msgstr "Sperre für »%s« entfernt.\n"
-#: ../svnadmin/svnadmin.c:2304
+#: ../svnadmin/svnadmin.c:2743
#, c-format
msgid "'%s' unlocked by user '%s'.\n"
msgstr "»%s« entsperrt durch Benutzer »%s«.\n"
-#: ../svnadmin/svnadmin.c:2351
+#: ../svnadmin/svnadmin.c:2791
msgid "Upgrade of this repository's underlying versioned filesystem is not supported; consider dumping and loading the data elsewhere"
msgstr "Eine Aktualisierung des diesem Projektarchiv zugrundeliegenden versionierten Dateisystems wird nicht unterstützt; versuchen Sie stattdessen »dump« und laden Sie die Daten mit »load« anderswo"
-#: ../svnadmin/svnadmin.c:2358
+#: ../svnadmin/svnadmin.c:2798
msgid "Upgrade of this repository is not supported; consider dumping and loading the data elsewhere"
msgstr "Eine Aktualisierung dieses Projektarchivs wird nicht unterstützt; versuchen Sie stattdessen »dump« und laden Sie die Daten mit »load« anderswo"
-#: ../svnadmin/svnadmin.c:2364
+#: ../svnadmin/svnadmin.c:2804
#, c-format
msgid ""
"\n"
@@ -15752,36 +18627,36 @@ msgstr ""
"\n"
"Aktualisierung abgeschlossen.\n"
-#: ../svnadmin/svnadmin.c:2478 ../svnfsfs/svnfsfs.c:321
-#: ../svnrdump/svnrdump.c:878
+#: ../svnadmin/svnadmin.c:2918 ../svnfsfs/svnfsfs.c:293
+#: ../svnrdump/svnrdump.c:849
msgid "Multiple revision arguments encountered; try '-r N:M' instead of '-r N -r M'"
msgstr "Mehrere Revisionsparameter gefunden; Bitte »-r N:M« anstelle »-r N -r M« verwenden"
-#: ../svnadmin/svnadmin.c:2559
+#: ../svnadmin/svnadmin.c:3001
#, c-format
msgid "Cannot create pre-1.0-compatible repositories"
msgstr "Kann keine Projektarchive erstellen, die mit Versionen älter als 1.0 kompatibel sind"
-#: ../svnadmin/svnadmin.c:2571
+#: ../svnadmin/svnadmin.c:3013
#, c-format
msgid "Cannot guarantee compatibility beyond the current running version (%s)"
msgstr "Kann Kompatibilität für höhere Versionen als die momentan laufende nicht garantieren (%s)"
-#: ../svnadmin/svnadmin.c:2672 ../svnfsfs/svnfsfs.c:386
+#: ../svnadmin/svnadmin.c:3137 ../svnfsfs/svnfsfs.c:362
#, c-format
msgid "subcommand argument required\n"
msgstr "Unterbefehl benötigt einen Parameter\n"
-#: ../svnadmin/svnadmin.c:2709 ../svnfsfs/svnfsfs.c:421
+#: ../svnadmin/svnadmin.c:3174 ../svnfsfs/svnfsfs.c:397
msgid "Repository argument required"
msgstr "Projektarchiv Parameter erforderlich"
-#: ../svnadmin/svnadmin.c:2717 ../svnfsfs/svnfsfs.c:429
+#: ../svnadmin/svnadmin.c:3182 ../svnfsfs/svnfsfs.c:405
#, c-format
msgid "'%s' is a URL when it should be a local path"
msgstr "»%s« ist eine URL obwohl es ein Pfad sein sollte"
-#: ../svnadmin/svnadmin.c:2747
+#: ../svnadmin/svnadmin.c:3212
#, c-format
msgid ""
"Subcommand '%s' doesn't accept option '%s'\n"
@@ -15790,7 +18665,7 @@ msgstr ""
"Unterbefehl »%s« akzeptiert die Option »%s« nicht\n"
"Geben Sie »svnadmin help %s« ein, um Hilfe zu erhalten.\n"
-#: ../svnadmin/svnadmin.c:2791
+#: ../svnadmin/svnadmin.c:3243
msgid "Try 'svnadmin help' for more info"
msgstr "Geben Sie »svnadmin help« für weitere Hilfe ein"
@@ -15821,7 +18696,18 @@ msgstr ""
"\n"
"Verfügbare Unterbefehle:\n"
-#: ../svnbench/null-export-cmd.c:334
+#: ../svnbench/null-blame-cmd.c:156
+#, fuzzy, c-format
+msgid ""
+"%15s revisions\n"
+"%15s deltas\n"
+"%15s bytes in deltas\n"
+msgstr ""
+"%15s Revisionen\n"
+"%15s Log-Zeilen\n"
+"%15s Änderungen\n"
+
+#: ../svnbench/null-export-cmd.c:352
#, c-format
msgid ""
"%15s directories\n"
@@ -15841,7 +18727,7 @@ msgstr ""
msgid "Number of status notifications received: %d\n"
msgstr "Zahl der empfangenen Statusmitteilungen: %d\n"
-#: ../svnbench/null-list-cmd.c:153
+#: ../svnbench/null-list-cmd.c:180
#, c-format
msgid ""
"%15s directories\n"
@@ -15857,7 +18743,7 @@ msgstr ""
msgid "Only relative paths can be specified after a URL for 'svnbench log', but '%s' is not a relative path"
msgstr "Mit »svnbench log« können nach einer URL nur relative Pfade angegeben werden, »%s« ist aber kein relativer Pfad"
-#: ../svnbench/null-log-cmd.c:222
+#: ../svnbench/null-log-cmd.c:226
#, c-format
msgid ""
"%15s revisions, %15s merged in %s merges\n"
@@ -15868,7 +18754,7 @@ msgstr ""
"%15s Log-Zeilen, %15s in zusammengeführten Revisionen\n"
"%15s Änderungen, %15s in zusammengeführten Revisionen\n"
-#: ../svnbench/null-log-cmd.c:234
+#: ../svnbench/null-log-cmd.c:238
#, c-format
msgid ""
"%15s revisions\n"
@@ -15879,7 +18765,7 @@ msgstr ""
"%15s Log-Zeilen\n"
"%15s Änderungen\n"
-#: ../svnbench/svnbench.c:117 ../svnrdump/svnrdump.c:144
+#: ../svnbench/svnbench.c:115 ../svnrdump/svnrdump.c:124
msgid "specify a password ARG"
msgstr "Passwort PAR angeben"
@@ -15887,20 +18773,34 @@ msgstr "Passwort PAR angeben"
msgid "use strict semantics"
msgstr "wendet strikte Semantik an"
-#: ../svnbench/svnbench.c:154
+#: ../svnbench/svnbench.c:148
msgid "do no interactive prompting"
msgstr "keine interaktiven Rückfragen ausgeben"
-#: ../svnbench/svnbench.c:223
+#: ../svnbench/svnbench.c:173
+msgid "use ARG as search pattern (glob syntax)"
+msgstr "PAR als Suchmuster verwenden (mit Platzhaltern)"
+
+#: ../svnbench/svnbench.c:219
+msgid ""
+"Fetch all versions of a file in a batch.\n"
+"usage: null-blame [-rM:N] TARGET[@REV]...\n"
+"\n"
+msgstr ""
+
+#: ../svnbench/svnbench.c:240
msgid ""
"Create an unversioned copy of a tree.\n"
"usage: null-export [-r REV] URL[@PEGREV]\n"
"\n"
+msgstr ""
+
+#: ../svnbench/svnbench.c:243
+#, fuzzy
+msgid ""
" Exports a clean directory tree from the repository specified by\n"
" URL, at revision REV if it is given, otherwise at HEAD.\n"
"\n"
-" If specified, PEGREV determines in which revision the target is first\n"
-" looked up.\n"
msgstr ""
"Erzeugt eine nicht versionierte Kopie eines Dateibaumes.\n"
"Aufruf: null-export [-r REV] URL[@PEGREV]\n"
@@ -15910,129 +18810,87 @@ msgstr ""
"\n"
" PEGREV gibt an, in welcher Revision das Ziel zuerst gesucht wird.\n"
-# FIXME: "looked up" ist überall leicht unterschiedlich übersetzt
-# Ich (Jens) bevorzuge "gesucht" statt "nachgeschlagen" oder "durchsucht", "nachgeschaut"
-# FIXME: Standardsätze sollten eigene msgid haben!
-#: ../svnbench/svnbench.c:234
+#: ../svnbench/svnbench.c:252
msgid ""
"List directory entries in the repository.\n"
"usage: null-list [TARGET[@REV]...]\n"
"\n"
-" List each TARGET file and the contents of each TARGET directory as\n"
-" they exist in the repository. If TARGET is a working copy path, the\n"
-" corresponding repository URL will be used. If specified, REV determines\n"
-" in which revision the target is first looked up.\n"
-"\n"
-" The default TARGET is '.', meaning the repository URL of the current\n"
-" working directory.\n"
-"\n"
+msgstr ""
+
+#: ../svnbench/svnbench.c:263
+msgid ""
" With --verbose, the following fields will be fetched for each item:\n"
"\n"
-" Revision number of the last commit\n"
-" Author of the last commit\n"
-" If locked, the letter 'O'. (Use 'svn info URL' to see details)\n"
-" Size (in bytes)\n"
-" Date and time of the last commit\n"
msgstr ""
-"Zeigt Verzeichniseinträge im Projektarchiv.\n"
-"Aufruf: null-list [ZIEL[@REV]...]\n"
-"\n"
-" Listet jede ZIEL-Datei und die Inhalte jedes ZIEL-Verzeichnisses, wie\n"
-" sie im Projektarchiv existieren, auf. Wenn ZIEL ein Arbeitskopiepfad ist,\n"
-" wird die entsprechende URL des Projektarchivs verwendet. REV bestimmt,\n"
-" in welcher Revision zuerst nachgeschaut wird.\n"
-"\n"
-" Die Vorgabe für ZIEL ist ».«, d.h. die URL vom Projektarchiv des\n"
-" aktuellen Verzeichnisses.\n"
-"\n"
-" Mit »--verbose« werden die folgenden Felder pro Objekt abgerufen:\n"
-"\n"
-" Revisionsnummer der letzten Ãœbertragung\n"
-" Autor der letzten Ãœbertragung\n"
-" Falls gesperrt, der Buchstabe »O« (»svn info URL« für Details)\n"
-" Größe (in Bytes)\n"
-" Datum und Zeit der letzten Ãœbertragung\n"
-#: ../svnbench/svnbench.c:255
+#: ../svnbench/svnbench.c:274
msgid ""
"Fetch the log messages for a set of revision(s) and/or path(s).\n"
"usage: 1. null-log [PATH][@REV]\n"
" 2. null-log URL[@REV] [PATH...]\n"
"\n"
+msgstr ""
+
+#: ../svnbench/svnbench.c:278
+msgid ""
" 1. Fetch the log messages for the URL corresponding to PATH\n"
" (default: '.'). If specified, REV is the revision in which the\n"
" URL is first looked up, and the default revision range is REV:1.\n"
" If REV is not specified, the default revision range is BASE:1,\n"
" since the URL might not exist in the HEAD revision.\n"
"\n"
+msgstr ""
+
+#: ../svnbench/svnbench.c:284
+msgid ""
" 2. Fetch the log messages for the PATHs (default: '.') under URL.\n"
" If specified, REV is the revision in which the URL is first\n"
" looked up, and the default revision range is REV:1; otherwise,\n"
" the URL is looked up in HEAD, and the default revision range is\n"
" HEAD:1.\n"
"\n"
-" Multiple '-c' or '-r' options may be specified (but not a\n"
-" combination of '-c' and '-r' options), and mixing of forward and\n"
-" reverse ranges is allowed.\n"
-"\n"
+msgstr ""
+
+#: ../svnbench/svnbench.c:294
+msgid ""
" With -v, also print all affected paths with each log message.\n"
" With -q, don't print the log message body itself (note that this is\n"
" compatible with -v).\n"
"\n"
+msgstr ""
+
+#: ../svnbench/svnbench.c:298
+msgid ""
" Each log message is printed just once, even if more than one of the\n"
" affected paths for that revision were explicitly requested. Logs\n"
" follow copy history by default. Use --stop-on-copy to disable this\n"
" behavior, which can be useful for determining branchpoints.\n"
msgstr ""
-"Ruft die Logmeldungen für eine Menge von Revisionen und/oder Dateien ab.\n"
-"Aufruf: 1. null-log [PFAD][@REV]\n"
-" 2. null-log URL[@REV] [PFAD...]\n"
-"\n"
-" 1. Ruft Log-Einträge der zu PFAD gehörenden URL ab. (Vorgabe: ».«)\n"
-" Ist REV angegeben, ist das die Revision in der URL zuerst gesucht\n"
-" Ist REV angegeben, ist das die Revision in der URL zuerst gesucht\n"
-" wird, und der vorgegebene Versionsbereich ist REV:1. Ist REV nicht\n"
-" angegeben, so ist der vorgegebene Revisionsbereich BASE:1, da die\n"
-" URL möglicherweise in der Revision HEAD nicht existiert.\n"
-"\n"
-" 2. Ruft Log-Einträge für PFAD(e) unter URL ab, (Vorgabe: ».«)\n"
-" Ist REV angegeben, ist das die Revision in der URL zuerst gesucht\n"
-" wird, und der vorgegebene Versionsbereich ist REV:1. Andernfalls wird\n"
-" URL in HEAD gesucht und der vorgegebene Revisionsbereich ist\n"
-" HEAD:1.\n"
-"\n"
-" Mehrere »-c«- oder »-r«-Optionen dürfen angegeben werden (aber keine\n"
-" Kombination von »-c« und »-r«) und das Mischen von vor- und\n"
-" rückwärtigen Bereichen ist erlaubt.\n"
-"\n"
-" Mit »-v« werden auch die betroffenen Pfade mit jeder Logmeldung ausgegeben.\n"
-" Mit »-q« wird die Logmeldung selbst nicht ausgegeben (Hinweis: Diese Option\n"
-" ist kompatibel mit »-v«).\n"
-"\n"
-" Jede Logmeldung wird nur einmal ausgegeben, selbst wenn mehr als einer\n"
-" der betroffenen Pfade explizit angefragt wurde. Logs folgen per Vorgabe\n"
-" der Historie von Kopien. Benutzen Sie »--stop-on-copy«, um dieses Verhalten,\n"
-" z.B. zum Auffinden von Verzweigungen, zu deaktivieren.\n"
-#: ../svnbench/svnbench.c:290
+#: ../svnbench/svnbench.c:309
msgid ""
"Display information about a local or remote item.\n"
"usage: null-info [TARGET[@REV]...]\n"
"\n"
+msgstr ""
+
+#: ../svnbench/svnbench.c:312
+#, fuzzy
+msgid ""
" Print information about each TARGET (default: '.').\n"
" TARGET may be either a working-copy path or URL. If specified, REV\n"
" determines in which revision the target is first looked up.\n"
msgstr ""
"Zeigt Informationen über ein lokales oder auf dem Server befindliches\n"
"Objekt an.\n"
-"Aufruf: null-info [ZIEL[@REV]...]\n"
+"Aufruf: info [ZIEL[@REV]...]\n"
"\n"
" Gibt Informationen über jedes ZIEL aus (Vorgabe: ».«).\n"
" ZIEL kann entweder ein Pfad einer Arbeitskopie oder eine URL sein. Wenn\n"
" angegeben, bestimmt REV, in welcher Revision zuerst nach dem Ziel gesucht\n"
" wird.\n"
-#: ../svnbench/svnbench.c:760
+#: ../svnbench/svnbench.c:808
#, c-format
msgid ""
"Subcommand '%s' doesn't accept option '%s'\n"
@@ -16041,78 +18899,87 @@ msgstr ""
"Unterbefehl »%s« akzeptiert die Option »%s« nicht\n"
"Geben Sie »svnbench help %s« für Hilfe ein.\n"
-#: ../svnbench/svnbench.c:962
+#: ../svnbench/svnbench.c:1000
#, c-format
msgid "Try 'svnbench help %s' for more information"
msgstr "Versuchen Sie »svnbench help %s« für weitere Informationen"
-#: ../svndumpfilter/svndumpfilter.c:80
+#: ../svnbench/svnbench.c:1025
#, c-format
-msgid "Can't open stdio file"
-msgstr "Kann Standardeingabe nicht öffnen"
+msgid "%15.6f seconds taken\n"
+msgstr ""
+
+#: ../svnbench/svnbench.c:1032
+#, c-format
+msgid "%15s bytes transferred over network\n"
+msgstr ""
-#: ../svndumpfilter/svndumpfilter.c:394
+#: ../svndumpfilter/svndumpfilter.c:361
msgid "This is an empty revision for padding."
msgstr "Dies ist eine leere Revision zum Auffüllen"
-#: ../svndumpfilter/svndumpfilter.c:446
+#: ../svndumpfilter/svndumpfilter.c:413
#, c-format
msgid "Revision %ld committed as %ld.\n"
msgstr "Revision %ld als %ld übertragen.\n"
-#: ../svndumpfilter/svndumpfilter.c:469
+#: ../svndumpfilter/svndumpfilter.c:436
#, c-format
msgid "Revision %ld skipped.\n"
msgstr "Revision: »%ld« übersprungen\n"
-#: ../svndumpfilter/svndumpfilter.c:566
+#: ../svndumpfilter/svndumpfilter.c:533
#, c-format
msgid "Invalid copy source path '%s'"
msgstr "Ungültiger Quellpfad einer Kopie: »%s«"
-#: ../svndumpfilter/svndumpfilter.c:604
+#: ../svndumpfilter/svndumpfilter.c:571
#, c-format
msgid "Missing Node-action for path '%s'"
msgstr "Fehlende Knotenaktion für Pfad »%s«"
-#: ../svndumpfilter/svndumpfilter.c:647
+#: ../svndumpfilter/svndumpfilter.c:614
#, c-format
msgid "No valid copyfrom revision in filtered stream"
msgstr "Keine gültige Quellrevision im gefilterten Datenstrom"
-#: ../svndumpfilter/svndumpfilter.c:715
+#: ../svndumpfilter/svndumpfilter.c:682
#, c-format
msgid "Missing merge source path '%s'; try with --skip-missing-merge-sources"
msgstr "Fehlender Zusammenführungsquellpfad »%s«; versuchen Sie es mit --skip-missing-merge-sources"
-#: ../svndumpfilter/svndumpfilter.c:737
+#: ../svndumpfilter/svndumpfilter.c:704
#, c-format
msgid "No valid revision range 'start' in filtered stream"
msgstr "Kein gültiger Revisionsbereich »start« im gefilterten Datenstrom"
-#: ../svndumpfilter/svndumpfilter.c:744
+#: ../svndumpfilter/svndumpfilter.c:711
#, c-format
msgid "No valid revision range 'end' in filtered stream"
msgstr "Kein gültiger Revisionsbereich »end« im gefilterten Datenstrom"
-#: ../svndumpfilter/svndumpfilter.c:792 ../svndumpfilter/svndumpfilter.c:823
+#: ../svndumpfilter/svndumpfilter.c:759 ../svndumpfilter/svndumpfilter.c:790
#, c-format
msgid "Delta property block detected, but deltas are not enabled for node '%s' in original revision %ld"
msgstr "Block mit Deltas für Eigenschaften entdeckt, Deltas sind aber für Knoten »%s« in originaler Revision %ld nicht aktiviert"
-#: ../svndumpfilter/svndumpfilter.c:985
+#: ../svndumpfilter/svndumpfilter.c:952
msgid "Do not display filtering statistics."
msgstr "Filterstatistik nicht anzeigen."
-#: ../svndumpfilter/svndumpfilter.c:987
-msgid "Treat the path prefixes as file glob patterns."
-msgstr "Pfadpräfix als Dateiplatzhalter behandeln."
+#: ../svndumpfilter/svndumpfilter.c:954
+msgid ""
+"Treat the path prefixes as file glob patterns.\n"
+" Glob special characters are '*' '?' '[]' and '\\'.\n"
+" Character '/' is not treated specially, so\n"
+" pattern /*/foo matches paths /a/foo and /a/b/foo."
+msgstr ""
-#: ../svndumpfilter/svndumpfilter.c:989
+#: ../svndumpfilter/svndumpfilter.c:959
msgid "Remove revisions emptied by filtering."
msgstr "Durch das Filtern geleerte Revisionen entfernen."
-#: ../svndumpfilter/svndumpfilter.c:991
+#: ../svndumpfilter/svndumpfilter.c:961
msgid ""
"Remove all empty revisions found in dumpstream\n"
" except revision 0."
@@ -16120,19 +18987,19 @@ msgstr ""
"Entfernt alle im Dateiabzug gefundenen leeren Revisionen\n"
" mit Ausnahme von Revision 0."
-#: ../svndumpfilter/svndumpfilter.c:994
+#: ../svndumpfilter/svndumpfilter.c:964
msgid "Renumber revisions left after filtering."
msgstr "Revisionen nach dem Filtern neu nummerieren."
-#: ../svndumpfilter/svndumpfilter.c:997
+#: ../svndumpfilter/svndumpfilter.c:967
msgid "Skip missing merge sources."
msgstr "Fehlende Zusammenführungsquellen übersprungen."
-#: ../svndumpfilter/svndumpfilter.c:999
+#: ../svndumpfilter/svndumpfilter.c:969
msgid "Don't filter revision properties."
msgstr "Revisionseigenschaften nicht filtern."
-#: ../svndumpfilter/svndumpfilter.c:1001
+#: ../svndumpfilter/svndumpfilter.c:971
msgid ""
"Read additional prefixes, one per line, from\n"
" file ARG."
@@ -16140,7 +19007,7 @@ msgstr ""
"Liest zusätzliche Prefixe, einen je Zeile, aus\n"
" Datei PAR."
-#: ../svndumpfilter/svndumpfilter.c:1013
+#: ../svndumpfilter/svndumpfilter.c:983
msgid ""
"Filter out nodes with given prefixes from dumpstream.\n"
"usage: svndumpfilter exclude PATH_PREFIX...\n"
@@ -16148,7 +19015,7 @@ msgstr ""
"Knoten mit den angegebenen Präfixen aus dem Datenstrom ausfiltern.\n"
"Aufruf: svndumpfilter exclude PFAD_PRÄFIX ...\n"
-#: ../svndumpfilter/svndumpfilter.c:1022
+#: ../svndumpfilter/svndumpfilter.c:993
msgid ""
"Filter out nodes without given prefixes from dumpstream.\n"
"usage: svndumpfilter include PATH_PREFIX...\n"
@@ -16156,7 +19023,7 @@ msgstr ""
"Knoten, die nicht den angegebenen Präfixen entsprechen, aus dem Datenstrom ausfiltern.\n"
"Aufruf: svndumpfilter include PFAD_PRÄFIX ...\n"
-#: ../svndumpfilter/svndumpfilter.c:1031
+#: ../svndumpfilter/svndumpfilter.c:1003
msgid ""
"Describe the usage of this program or its subcommands.\n"
"usage: svndumpfilter help [SUBCOMMAND...]\n"
@@ -16164,7 +19031,7 @@ msgstr ""
"Beschreibt die Anwendung dieses Programms und seiner Unterbefehle.\n"
"Aufruf: svndumpfilter help [UNTERBEFEHL...]\n"
-#: ../svndumpfilter/svndumpfilter.c:1107
+#: ../svndumpfilter/svndumpfilter.c:1078
msgid ""
"general usage: svndumpfilter SUBCOMMAND [ARGS & OPTIONS ...]\n"
"Subversion repository dump filtering tool.\n"
@@ -16181,47 +19048,47 @@ msgstr ""
"\n"
"Verfügbare Unterbefehle:\n"
-#: ../svndumpfilter/svndumpfilter.c:1166
+#: ../svndumpfilter/svndumpfilter.c:1137
#, c-format
msgid "Excluding (and dropping empty revisions for) prefix patterns:\n"
msgstr "Präfixmuster ausschließen (und leere Revisionen verwerfen):\n"
-#: ../svndumpfilter/svndumpfilter.c:1168
+#: ../svndumpfilter/svndumpfilter.c:1139
#, c-format
msgid "Excluding prefix patterns:\n"
msgstr "Präfixmuster ausschließen:\n"
-#: ../svndumpfilter/svndumpfilter.c:1171
+#: ../svndumpfilter/svndumpfilter.c:1142
#, c-format
msgid "Including (and dropping empty revisions for) prefix patterns:\n"
msgstr "Präfixmuster einschließen (und leere Revisionen verwerfen):\n"
-#: ../svndumpfilter/svndumpfilter.c:1173
+#: ../svndumpfilter/svndumpfilter.c:1144
#, c-format
msgid "Including prefix patterns:\n"
msgstr "Präfixmuster einschließen:\n"
-#: ../svndumpfilter/svndumpfilter.c:1181
+#: ../svndumpfilter/svndumpfilter.c:1152
#, c-format
msgid "Excluding (and dropping empty revisions for) prefixes:\n"
msgstr "Präfixe ausschließen (und leere Revisionen verwerfen):\n"
-#: ../svndumpfilter/svndumpfilter.c:1183
+#: ../svndumpfilter/svndumpfilter.c:1154
#, c-format
msgid "Excluding prefixes:\n"
msgstr "Präfixe ausschließen:\n"
-#: ../svndumpfilter/svndumpfilter.c:1186
+#: ../svndumpfilter/svndumpfilter.c:1157
#, c-format
msgid "Including (and dropping empty revisions for) prefixes:\n"
msgstr "Präfixe einschließen (und leere Revisionen verwerfen):\n"
-#: ../svndumpfilter/svndumpfilter.c:1188
+#: ../svndumpfilter/svndumpfilter.c:1159
#, c-format
msgid "Including prefixes:\n"
msgstr "Präfixe einschließen:\n"
-#: ../svndumpfilter/svndumpfilter.c:1216
+#: ../svndumpfilter/svndumpfilter.c:1187
#, c-format
msgid ""
"Dropped %d revision.\n"
@@ -16236,27 +19103,27 @@ msgstr[1] ""
"%d Revisionen verworfen.\n"
"\n"
-#: ../svndumpfilter/svndumpfilter.c:1224
+#: ../svndumpfilter/svndumpfilter.c:1195
msgid "Revisions renumbered as follows:\n"
msgstr "Revisionen folgendermaßen neu nummeriert:\n"
-#: ../svndumpfilter/svndumpfilter.c:1251
+#: ../svndumpfilter/svndumpfilter.c:1222
#, c-format
msgid " %ld => (dropped)\n"
msgstr " %ld => (verworfen)\n"
-#: ../svndumpfilter/svndumpfilter.c:1266
+#: ../svndumpfilter/svndumpfilter.c:1237
#, c-format
msgid "Dropped %d node:\n"
msgid_plural "Dropped %d nodes:\n"
msgstr[0] "%d Knoten verworfen:\n"
msgstr[1] "%d Knoten verworfen:\n"
-#: ../svndumpfilter/svndumpfilter.c:1424
+#: ../svndumpfilter/svndumpfilter.c:1396
msgid "--drop-empty-revs cannot be used with --drop-all-empty-revs"
msgstr "--drop-empty-revs« kann nicht mit --drop-all-empty-revs verwendet werden"
-#: ../svndumpfilter/svndumpfilter.c:1541
+#: ../svndumpfilter/svndumpfilter.c:1507
#, c-format
msgid ""
"\n"
@@ -16265,7 +19132,7 @@ msgstr ""
"\n"
"Fehler: keine Präfixe angegeben.\n"
-#: ../svndumpfilter/svndumpfilter.c:1572
+#: ../svndumpfilter/svndumpfilter.c:1538
#, c-format
msgid ""
"Subcommand '%s' doesn't accept option '%s'\n"
@@ -16274,7 +19141,7 @@ msgstr ""
"Unterbefehl »%s« akzeptiert die Option »%s« nicht\n"
"Geben Sie »svndumpfilter help %s« für Hilfe ein.\n"
-#: ../svndumpfilter/svndumpfilter.c:1590
+#: ../svndumpfilter/svndumpfilter.c:1556
msgid "Try 'svndumpfilter help' for more info"
msgstr "Versuchen Sie »svndumpfilter help« für weitere Informationen"
@@ -16283,18 +19150,18 @@ msgstr "Versuchen Sie »svndumpfilter help« für weitere Informationen"
msgid "Unknown item type '%s'"
msgstr "Unbekannter Elementtyp »%s«"
-#: ../svnfsfs/load-index-cmd.c:73
+#: ../svnfsfs/load-index-cmd.c:75
#, c-format
msgid "%i columns needed, %i provided"
msgstr "%i Spalten benötigt, %i gegeben"
-#: ../svnfsfs/load-index-cmd.c:83
+#: ../svnfsfs/load-index-cmd.c:85
#, c-format
msgid "%s is not a value HEX string"
msgstr "%s ist keine gültige HEX-Zeichenkette"
-#: ../svnfsfs/stats-cmd.c:70
-#, c-format
+#: ../svnfsfs/stats-cmd.c:72
+#, fuzzy, c-format
msgid ""
"%20s bytes in %12s reps\n"
"%20s bytes in %12s shared reps\n"
@@ -16302,6 +19169,7 @@ msgid ""
"%20s bytes expanded shared size\n"
"%20s bytes with rep-sharing off\n"
"%20s shared references\n"
+"%20.3f average delta chain length\n"
msgstr ""
"%20s Byte in %12s Darstellungen\n"
"%20s Byte in %12s geteilten Darstellungen\n"
@@ -16310,28 +19178,29 @@ msgstr ""
"%20s Byte mit deaktivierter Teilung von Darstellungen\n"
"%20s geteilte Referenzen\n"
-#: ../svnfsfs/stats-cmd.c:94
+#: ../svnfsfs/stats-cmd.c:98
#, c-format
msgid "%12s r%-8ld %s\n"
msgstr "%12s r%-8ld %s\n"
-#: ../svnfsfs/stats-cmd.c:120
+#: ../svnfsfs/stats-cmd.c:124
#, c-format
msgid " %4s .. < %-4s %19s (%2d%%) bytes in %12s (%2d%%) items\n"
msgstr " %4s .. < %-4s %19s (%2d%%) Byte in %12s (%2d%%) Elementen\n"
-#: ../svnfsfs/stats-cmd.c:239 ../svnfsfs/stats-cmd.c:246
+#: ../svnfsfs/stats-cmd.c:247 ../svnfsfs/stats-cmd.c:256
#, c-format
msgid "%11s %20s (%2d%%) representations\n"
msgstr "%11s %20s (%2d%%) Darstellungen\n"
-#: ../svnfsfs/stats-cmd.c:269 ../svnfsfs/stats-cmd.c:276
-#: ../svnfsfs/stats-cmd.c:299 ../svnfsfs/stats-cmd.c:306
+#. Total sum can't be zero here.
+#: ../svnfsfs/stats-cmd.c:294 ../svnfsfs/stats-cmd.c:304
+#: ../svnfsfs/stats-cmd.c:329 ../svnfsfs/stats-cmd.c:339
#, c-format
msgid "%11s %20s (%2d%%) bytes\n"
msgstr "%11s %20s (%2d%%) Byte\n"
-#: ../svnfsfs/stats-cmd.c:347
+#: ../svnfsfs/stats-cmd.c:381
#, c-format
msgid ""
"%20s bytes in %12s revisions\n"
@@ -16348,7 +19217,7 @@ msgstr ""
"%20s Byte erweiterte Darstellungsgröße\n"
"%20s Byte deaktivierter Teilung von Darstellungen\n"
-#: ../svnfsfs/stats-cmd.c:367
+#: ../svnfsfs/stats-cmd.c:401
#, c-format
msgid ""
"%20s bytes in %12s nodes total\n"
@@ -16359,8 +19228,8 @@ msgstr ""
"%20s Byte in %12s Knotenrevisionen von Verzeichnisen\n"
"%20s Byte in %12s Knotenrevisionen von Dateien\n"
-#: ../svnfsfs/stats-cmd.c:378
-#, c-format
+#: ../svnfsfs/stats-cmd.c:412
+#, fuzzy, c-format
msgid ""
"%20s bytes in %12s representations total\n"
"%20s bytes in %12s directory representations\n"
@@ -16368,6 +19237,7 @@ msgid ""
"%20s bytes in %12s representations of added file nodes\n"
"%20s bytes in %12s directory property representations\n"
"%20s bytes in %12s file property representations\n"
+" with %12.3f average delta chain length\n"
"%20s bytes in header & footer overhead\n"
msgstr ""
"%20s Byte in %12s Darstellungen insgesamt\n"
@@ -16378,7 +19248,7 @@ msgstr ""
"%20s Byte in %12s Darstellungen von Dateieigenschaften\n"
"%20s Byte in Kopf- und Fußdaten\n"
-#: ../svnfsfs/svnfsfs.c:144
+#: ../svnfsfs/svnfsfs.c:104
msgid ""
"size of the extra in-memory cache in MB used to\n"
" minimize redundant operations. Default: 16."
@@ -16386,29 +19256,37 @@ msgstr ""
"Größe des extra Zwischenspeichers im RAM in MB zur\n"
" Minimierung redundanter Operationen. Vorgabe: 16."
-#: ../svnfsfs/svnfsfs.c:157
+#: ../svnfsfs/svnfsfs.c:117
msgid ""
"usage: svnfsfs help [SUBCOMMAND...]\n"
"\n"
-"Describe the usage of this program or its subcommands.\n"
msgstr ""
-"Aufruf: svnfsfs help [UNTERBEFEHL...]\n"
-"\n"
-"Beschreibt die Anwendung dieses Programms und seiner Unterbefehle.\n"
-#: ../svnfsfs/svnfsfs.c:162
+#: ../svnfsfs/svnfsfs.c:124
msgid ""
"usage: svnfsfs dump-index REPOS_PATH -r REV\n"
"\n"
+msgstr ""
+
+#: ../svnfsfs/svnfsfs.c:126
+msgid ""
"Dump the index contents for the revision / pack file containing revision REV\n"
"to console. This is only available for FSFS format 7 (SVN 1.9+) repositories.\n"
"The table produced contains a header in the first line followed by one line\n"
"per index entry, ordered by location in the revision / pack file. Columns:\n"
"\n"
+msgstr ""
+
+#: ../svnfsfs/svnfsfs.c:131
+msgid ""
" * Byte offset (hex) at which the item starts\n"
" * Length (hex) of the item in bytes\n"
" * Item type (string) is one of the following:\n"
"\n"
+msgstr ""
+
+#: ../svnfsfs/svnfsfs.c:135
+msgid ""
" none ... Unused section. File contents shall be NULs.\n"
" frep ... File representation.\n"
" drep ... Directory representation.\n"
@@ -16419,48 +19297,32 @@ msgid ""
" rep .... Representation of unknown type. Should not be used.\n"
" ??? .... Invalid. Index data is corrupt.\n"
"\n"
+msgstr ""
+
+#: ../svnfsfs/svnfsfs.c:145
+msgid ""
" The distinction between frep, drep, fprop and dprop is a mere internal\n"
" classification used for various optimizations and does not affect the\n"
" operational correctness.\n"
"\n"
+msgstr ""
+
+#: ../svnfsfs/svnfsfs.c:149
+msgid ""
" * Revision that the item belongs to (decimal)\n"
" * Item number (decimal) within that revision\n"
" * Modified FNV1a checksum (8 hex digits)\n"
msgstr ""
-"Aufruf: svnfsfs dump-index ARCHIV_PFAD -r REV\n"
-"\n"
-"Gibt den Inhalt des Index der Revisions- oder Pack-Datei der Revision REV\n"
-"auf die Konsole aus. Nur verfügbar für Projektarchive im FSFS Format 7\n"
-"(SVN 1.9+). Die ausgegebene Tabelle beinhaltet Kopfdaten in der ersten Zeile\n"
-"gefolgt von einer Zeile je Indexeintrag, geordnet nach Position in der\n"
-"Revisions- / Pack-Datei. Spalten:\n"
-"\n"
-" * Offset an dem das Element beginnt in Byte (hexadezimal)\n"
-" * Länge des Elements in Byte (hexadezimal)\n"
-" * Typ des Elements (Text), und zwar einen der Folgenden:\n"
-"\n"
-" none ... Nicht verwendeter Abschnitt. Dateninhalt sind NUL-Byte.\n"
-" frep ... Darstellung einer Datei.\n"
-" drep ... Darstellung eines Verzeichnisse.\n"
-" fprop .. Eigenschaft einer Datei.\n"
-" dprop .. Eigenschaft eines Verzeichnisses.\n"
-" node ... Knotenrevision.\n"
-" chgs ... Liste geänderter Pfade.\n"
-" rep .... Darstellung unbekannten Typs. Sollte nicht verwendet werden.\n"
-" ??? .... Ungültig. Indexdaten sind beschädigt.\n"
-"\n"
-" Die Unterscheidung zwischen frep, drep, fprop und dprop ist eine rein\n"
-" interne Einordnung für verschiedene Optimierungen und betrifft nicht die\n"
-" Korrektheit im normalen Betrieb.\n"
-"\n"
-" * Revision zu dem das Element gehört (dezimal)\n"
-" * Nummer des Elements in dieser Revision (dezimal)\n"
-" * Modifizierte FNV1a-Prüfsumme (8 hexadezimale Stellen)\n"
-#: ../svnfsfs/svnfsfs.c:188
+#: ../svnfsfs/svnfsfs.c:156
msgid ""
"usage: svnfsfs load-index REPOS_PATH\n"
"\n"
+msgstr ""
+
+#: ../svnfsfs/svnfsfs.c:158
+#, fuzzy
+msgid ""
"Read index contents from console. The format is the same as produced by the\n"
"dump-index command, except that checksum as well as header are optional and will\n"
"be ignored. The data must cover the full revision / pack file; the revision\n"
@@ -16474,22 +19336,30 @@ msgstr ""
"datei abdecken; die Revisionsnummer wird automatisch aus dem Eingabestrom\n"
"extrahiert. Keine besondere Reihenfolge erforderlich.\n"
-#: ../svnfsfs/svnfsfs.c:196
+#: ../svnfsfs/svnfsfs.c:166
+#, fuzzy
msgid ""
"usage: svnfsfs stats REPOS_PATH\n"
"\n"
-"Write object size statistics to console.\n"
msgstr ""
"Aufruf: svnfsfs stats ARCHIV_PFAD\n"
"\n"
"Gibt Statistiken zu Objektgrößen aus.\n"
-#: ../svnfsfs/svnfsfs.c:216
+#: ../svnfsfs/svnfsfs.c:168
+#, fuzzy
+msgid "Write object size statistics to console.\n"
+msgstr ""
+"Aufruf: svnfsfs stats ARCHIV_PFAD\n"
+"\n"
+"Gibt Statistiken zu Objektgrößen aus.\n"
+
+#: ../svnfsfs/svnfsfs.c:188
#, c-format
msgid "%s repositories are not supported"
msgstr "Projektarchive vom Typ %s werden nicht unterstützt"
-#: ../svnfsfs/svnfsfs.c:232
+#: ../svnfsfs/svnfsfs.c:204
msgid ""
"general usage: svnfsfs SUBCOMMAND REPOS_PATH [ARGS & OPTIONS ...]\n"
"Subversion FSFS repository manipulation tool.\n"
@@ -16507,7 +19377,7 @@ msgstr ""
"\n"
"Verfügbare Unterbefehle:\n"
-#: ../svnfsfs/svnfsfs.c:459
+#: ../svnfsfs/svnfsfs.c:435
#, c-format
msgid ""
"Subcommand '%s' doesn't accept option '%s'\n"
@@ -16516,7 +19386,7 @@ msgstr ""
"Unterbefehl »%s« akzeptiert die Option »%s« nicht\n"
"Geben Sie »svnfsfs help %s« für Hilfe ein.\n"
-#: ../svnfsfs/svnfsfs.c:503
+#: ../svnfsfs/svnfsfs.c:467
msgid "Try 'svnfsfs help' for more info"
msgstr "Versuchen Sie »svnfsfs help« für weitere Informationen"
@@ -16536,33 +19406,33 @@ msgstr "Zeige vollständige Pfade anstatt sie einzurücken"
msgid "maximum number of history entries"
msgstr "Maximale Anzahl von Logeinträgen"
-#: ../svnlook/svnlook.c:151
+#: ../svnlook/svnlook.c:158
msgid "operate on single directory only"
msgstr "Nicht rekursiv hinabsteigen"
-#: ../svnlook/svnlook.c:154
+#: ../svnlook/svnlook.c:161
msgid "specify revision number ARG"
msgstr "Revisionsnummer PAR angegeben"
-#: ../svnlook/svnlook.c:157
+#: ../svnlook/svnlook.c:164
msgid "operate on a revision property (use with -r or -t)"
msgstr ""
"auf einer Revisionseigenschaft arbeiten (mit -r\n"
" oder -t verwenden)"
-#: ../svnlook/svnlook.c:160
+#: ../svnlook/svnlook.c:167
msgid "show node revision ids for each path"
msgstr "gibt die IDs der Knotenrevisionen jedes Pfades aus"
-#: ../svnlook/svnlook.c:163
+#: ../svnlook/svnlook.c:170
msgid "show path's inherited properties"
msgstr "Gibt die geerbten Eigenschaften des Pfades aus"
-#: ../svnlook/svnlook.c:169
+#: ../svnlook/svnlook.c:176
msgid "be verbose"
msgstr "ausführliche Meldungen"
-#: ../svnlook/svnlook.c:178
+#: ../svnlook/svnlook.c:185
msgid ""
"Specify differencing options for external diff or\n"
" internal diff. Default: '-u'. Options are\n"
@@ -16593,66 +19463,108 @@ msgstr ""
" -p (--show-c-function):\n"
" Zeigt C-Funktionsname in Diff-Ausgabe."
-#: ../svnlook/svnlook.c:199 ../svnrdump/svnrdump.c:134
-#: ../svnserve/svnserve.c:380 ../svnversion/svnversion.c:146
+#: ../svnlook/svnlook.c:206 ../svnrdump/svnrdump.c:114
+#: ../svnserve/svnserve.c:421 ../svnversion/svnversion.c:146
msgid "no progress (only errors) to stderr"
msgstr "keine Fortschrittsanzeige (nur Fehler) auf die Standardfehlerausgabe"
-#: ../svnlook/svnlook.c:211
+#: ../svnlook/svnlook.c:218
+#, fuzzy
msgid ""
"usage: svnlook author REPOS_PATH\n"
"\n"
-"Print the author.\n"
msgstr ""
"Aufruf: svnlook author ARCHIV_PFAD\n"
"\n"
"Gibt den Autor aus.\n"
-#: ../svnlook/svnlook.c:216
+#: ../svnlook/svnlook.c:220
+#, fuzzy
+msgid "Print the author.\n"
+msgstr "Pfad nicht ausgeben"
+
+#: ../svnlook/svnlook.c:225
+#, fuzzy
msgid ""
"usage: svnlook cat REPOS_PATH FILE_PATH\n"
"\n"
-"Print the contents of a file. Leading '/' on FILE_PATH is optional.\n"
+msgstr ""
+"Aufruf: svnlook author ARCHIV_PFAD\n"
+"\n"
+"Gibt den Autor aus.\n"
+
+#: ../svnlook/svnlook.c:227
+#, fuzzy
+msgid "Print the contents of a file. Leading '/' on FILE_PATH is optional.\n"
msgstr ""
"Aufruf: svnlook cat ARCHIV_PFAD DATEI_PFAD\n"
"\n"
"Gibt den Inhalt einer Datei aus. Ein vorangestellter »/« im DATEI_PFAD ist\n"
"optional.\n"
-#: ../svnlook/svnlook.c:221
+#: ../svnlook/svnlook.c:232
+#, fuzzy
msgid ""
"usage: svnlook changed REPOS_PATH\n"
"\n"
-"Print the paths that were changed.\n"
+msgstr ""
+"Aufruf: svnlook date ARCHIV_PFAD\n"
+"\n"
+"Gibt das Datum aus.\n"
+
+#: ../svnlook/svnlook.c:234
+#, fuzzy
+msgid "Print the paths that were changed.\n"
msgstr ""
"Aufruf: svnlook changed ARCHIV_PFAD\n"
"\n"
"Gibt die geänderten Pfade aus.\n"
-#: ../svnlook/svnlook.c:226
+#: ../svnlook/svnlook.c:239
+#, fuzzy
msgid ""
"usage: svnlook date REPOS_PATH\n"
"\n"
-"Print the datestamp.\n"
msgstr ""
"Aufruf: svnlook date ARCHIV_PFAD\n"
"\n"
"Gibt das Datum aus.\n"
-#: ../svnlook/svnlook.c:231
+#: ../svnlook/svnlook.c:241
+msgid "Print the datestamp.\n"
+msgstr ""
+
+#: ../svnlook/svnlook.c:246
+#, fuzzy
msgid ""
"usage: svnlook diff REPOS_PATH\n"
"\n"
-"Print GNU-style diffs of changed files and properties.\n"
+msgstr ""
+"Aufruf: svnlook date ARCHIV_PFAD\n"
+"\n"
+"Gibt das Datum aus.\n"
+
+#: ../svnlook/svnlook.c:248
+#, fuzzy
+msgid "Print GNU-style diffs of changed files and properties.\n"
msgstr ""
"Aufruf: svnlook diff ARCHIV_PFAD\n"
"\n"
"Gibt Unterschiede von geänderten Dateien oder Eigenschaften im GNU-Stil aus.\n"
-#: ../svnlook/svnlook.c:238
+#: ../svnlook/svnlook.c:255
+#, fuzzy
msgid ""
"usage: svnlook dirs-changed REPOS_PATH\n"
"\n"
+msgstr ""
+"Aufruf: svnlook date ARCHIV_PFAD\n"
+"\n"
+"Gibt das Datum aus.\n"
+
+#: ../svnlook/svnlook.c:257
+#, fuzzy
+msgid ""
"Print the directories that were themselves changed (property edits)\n"
"or whose file children were changed.\n"
msgstr ""
@@ -16661,10 +19573,15 @@ msgstr ""
"Gibt diejenigen Pfade aus, die (durch Eigenschaftsmodifikationen) selbst\n"
"bzw. deren Dateien geändert wurden.\n"
-#: ../svnlook/svnlook.c:244
+#: ../svnlook/svnlook.c:263
msgid ""
"usage: svnlook filesize REPOS_PATH PATH_IN_REPOS\n"
"\n"
+msgstr ""
+
+#: ../svnlook/svnlook.c:265
+#, fuzzy
+msgid ""
"Print the size (in bytes) of the file located at PATH_IN_REPOS as\n"
"it is represented in the repository.\n"
msgstr ""
@@ -16673,20 +19590,25 @@ msgstr ""
"Gibt die Größe (in Bytes) der in PFAD_IN_ARCHIV befindlichen Datei\n"
"aus, wie sie im Projektarchiv vorliegt.\n"
-#: ../svnlook/svnlook.c:250
+#: ../svnlook/svnlook.c:271
msgid ""
"usage: svnlook help [SUBCOMMAND...]\n"
"\n"
-"Describe the usage of this program or its subcommands.\n"
msgstr ""
-"Aufruf: svnlook help [UNTERBEFEHL...]\n"
-"\n"
-"Beschreibt die Anwendung dieses Programms und seiner Unterbefehle.\n"
-#: ../svnlook/svnlook.c:255
+#: ../svnlook/svnlook.c:278
+#, fuzzy
msgid ""
"usage: svnlook history REPOS_PATH [PATH_IN_REPOS]\n"
"\n"
+msgstr ""
+"Aufruf: svnlook author ARCHIV_PFAD\n"
+"\n"
+"Gibt den Autor aus.\n"
+
+#: ../svnlook/svnlook.c:280
+#, fuzzy
+msgid ""
"Print information about the history of a path in the repository (or\n"
"the root directory if no path is supplied).\n"
msgstr ""
@@ -16695,41 +19617,73 @@ msgstr ""
"Gibt Informationen über die Historie eines Pfades im Projektarchiv aus (oder\n"
"über das Basisverzeichnis, falls kein Pfad angegeben wurde.)\n"
-#: ../svnlook/svnlook.c:261
+#: ../svnlook/svnlook.c:286
+#, fuzzy
msgid ""
"usage: svnlook info REPOS_PATH\n"
"\n"
-"Print the author, datestamp, log message size, and log message.\n"
+msgstr ""
+"Aufruf: svnlook author ARCHIV_PFAD\n"
+"\n"
+"Gibt den Autor aus.\n"
+
+#: ../svnlook/svnlook.c:288
+#, fuzzy
+msgid "Print the author, datestamp, log message size, and log message.\n"
msgstr ""
"Aufruf: svnlook info ARCHIV_PFAD\n"
"\n"
"Gibt den Autor, das Datum, die Größe der Logmeldung und die Logmeldung aus.\n"
-#: ../svnlook/svnlook.c:266
+#: ../svnlook/svnlook.c:293
+#, fuzzy
msgid ""
"usage: svnlook lock REPOS_PATH PATH_IN_REPOS\n"
"\n"
-"If a lock exists on a path in the repository, describe it.\n"
msgstr ""
"Aufruf: svnlook lock ARCHIV_PFAD PFAD_IN_PROJ\n"
"\n"
"Wenn eine Sperre für einen Pfad im Projektarchiv existiert, beschreibe diese.\n"
-#: ../svnlook/svnlook.c:271
+#: ../svnlook/svnlook.c:295
+#, fuzzy
+msgid "If a lock exists on a path in the repository, describe it.\n"
+msgstr ""
+"Aufruf: svnlook lock ARCHIV_PFAD PFAD_IN_PROJ\n"
+"\n"
+"Wenn eine Sperre für einen Pfad im Projektarchiv existiert, beschreibe diese.\n"
+
+#: ../svnlook/svnlook.c:300
+#, fuzzy
msgid ""
"usage: svnlook log REPOS_PATH\n"
"\n"
-"Print the log message.\n"
msgstr ""
"Aufruf: svnlook log ARCHIV_PFAD\n"
"\n"
"Gibt die Logmeldung aus.\n"
-#: ../svnlook/svnlook.c:276
+#: ../svnlook/svnlook.c:302
+#, fuzzy
+msgid "Print the log message.\n"
+msgstr "gibt die Logmeldung nicht aus"
+
+#: ../svnlook/svnlook.c:307
+#, fuzzy
msgid ""
"usage: 1. svnlook propget REPOS_PATH PROPNAME PATH_IN_REPOS\n"
" 2. svnlook propget --revprop REPOS_PATH PROPNAME\n"
"\n"
+msgstr ""
+"Aufruf: 1. svnlook propget ARCHIV_PFAD PROPNAME PFAD_IN_PROJ\n"
+" 2. svnlook propget --revprop ARCHIV_PFAD PROPNAME\n"
+"\n"
+"Gibt den Rohwert einer Eigenschaft eines Pfades im Projektarchiv aus.\n"
+"Mit --revprop wird der Rohwert einer Revisionseigenschaft ausgegeben.\n"
+
+#: ../svnlook/svnlook.c:312
+#, fuzzy
+msgid ""
"Print the raw value of a property on a path in the repository.\n"
"With --revprop, print the raw value of a revision property.\n"
msgstr ""
@@ -16739,11 +19693,23 @@ msgstr ""
"Gibt den Rohwert einer Eigenschaft eines Pfades im Projektarchiv aus.\n"
"Mit --revprop wird der Rohwert einer Revisionseigenschaft ausgegeben.\n"
-#: ../svnlook/svnlook.c:285
+#: ../svnlook/svnlook.c:318
+#, fuzzy
msgid ""
"usage: 1. svnlook proplist REPOS_PATH PATH_IN_REPOS\n"
" 2. svnlook proplist --revprop REPOS_PATH\n"
"\n"
+msgstr ""
+"Aufruf: 1. svnlook proplist ARCHIV_PFAD PFAD_IN_PROJ\n"
+" 2. svnlook proplist --revprop ARCHIV_PFAD\n"
+"\n"
+"Gibt die Eigenschaften eines Pfades im Projektarchiv aus.\n"
+"Mit --revprop werden Revisionseigenschaften ausgegeben.\n"
+"Mit -v werden auch die Eigenschaftswerte ausgegeben.\n"
+
+#: ../svnlook/svnlook.c:323
+#, fuzzy
+msgid ""
"List the properties of a path in the repository, or\n"
"with the --revprop option, revision properties.\n"
"With -v, show the property values too.\n"
@@ -16755,10 +19721,19 @@ msgstr ""
"Mit --revprop werden Revisionseigenschaften ausgegeben.\n"
"Mit -v werden auch die Eigenschaftswerte ausgegeben.\n"
-#: ../svnlook/svnlook.c:296
+#: ../svnlook/svnlook.c:331
+#, fuzzy
msgid ""
"usage: svnlook tree REPOS_PATH [PATH_IN_REPOS]\n"
"\n"
+msgstr ""
+"Aufruf: svnlook author ARCHIV_PFAD\n"
+"\n"
+"Gibt den Autor aus.\n"
+
+#: ../svnlook/svnlook.c:333
+#, fuzzy
+msgid ""
"Print the tree, starting at PATH_IN_REPOS (if supplied, at the root\n"
"of the tree otherwise), optionally showing node revision ids.\n"
msgstr ""
@@ -16767,48 +19742,69 @@ msgstr ""
"Gibt den Baum beginnend bei PFAD_IN_PROJ aus (falls angegeben, sonst an der\n"
"Basis des Baumes), wobei optional die IDs der Knotenrevisionen ausgegeben werden.\n"
-#: ../svnlook/svnlook.c:302
+#: ../svnlook/svnlook.c:339
+#, fuzzy
msgid ""
"usage: svnlook uuid REPOS_PATH\n"
"\n"
-"Print the repository's UUID.\n"
+msgstr ""
+"Aufruf: svnlook author ARCHIV_PFAD\n"
+"\n"
+"Gibt den Autor aus.\n"
+
+#: ../svnlook/svnlook.c:341
+#, fuzzy
+msgid "Print the repository's UUID.\n"
msgstr ""
"Aufruf: svnlook uuid ARCHIV_PFAD\n"
"\n"
"Gibt die UUID des Projektarchivs aus.\n"
-#: ../svnlook/svnlook.c:307
+#: ../svnlook/svnlook.c:346
+#, fuzzy
msgid ""
"usage: svnlook youngest REPOS_PATH\n"
"\n"
-"Print the youngest revision number.\n"
+msgstr ""
+"Aufruf: svnlook author ARCHIV_PFAD\n"
+"\n"
+"Gibt den Autor aus.\n"
+
+#: ../svnlook/svnlook.c:348
+#, fuzzy
+msgid "Print the youngest revision number.\n"
msgstr ""
"Aufruf: svnlook youngest ARCHIV_PFAD\n"
"\n"
"Gibt die neueste Revisionsnummer aus.\n"
-#: ../svnlook/svnlook.c:870
+#: ../svnlook/svnlook.c:824
+#, c-format
+msgid "%sProperty changes on: %s%s"
+msgstr "%sEigenschaftsänderungen: %s%s"
+
+#: ../svnlook/svnlook.c:891
#, c-format
msgid "Copied: %s (from rev %ld, %s)\n"
msgstr "Kopiert: %s (von Rev %ld, %s)\n"
-#: ../svnlook/svnlook.c:938
+#: ../svnlook/svnlook.c:959
msgid "Added"
msgstr "Hinzugefügt"
-#: ../svnlook/svnlook.c:939
+#: ../svnlook/svnlook.c:960
msgid "Deleted"
msgstr "Gelöscht"
-#: ../svnlook/svnlook.c:940
+#: ../svnlook/svnlook.c:961
msgid "Modified"
msgstr "Geändert"
-#: ../svnlook/svnlook.c:941
+#: ../svnlook/svnlook.c:962
msgid "Index"
msgstr "Index"
-#: ../svnlook/svnlook.c:952
+#: ../svnlook/svnlook.c:973
msgid ""
"(Binary files differ)\n"
"\n"
@@ -16816,30 +19812,30 @@ msgstr ""
"(Binärdateien sind unterschiedlich)\n"
"\n"
-#: ../svnlook/svnlook.c:1232
+#: ../svnlook/svnlook.c:1242
msgid "unknown"
msgstr "unbekannt"
-#: ../svnlook/svnlook.c:1289
+#: ../svnlook/svnlook.c:1299
#, c-format
msgid "Transaction '%s' is not based on a revision; how odd"
msgstr "Transaktion »%s« ist nicht von einer Revision abgeleitet, wie eigenartig"
-#: ../svnlook/svnlook.c:1432
+#: ../svnlook/svnlook.c:1442
#, c-format
msgid "'%s' is a URL, probably should be a path"
msgstr "»%s« ist eine URL, sollte vermutlich ein Pfad sein"
-#: ../svnlook/svnlook.c:1455 ../svnlook/svnlook.c:1478
+#: ../svnlook/svnlook.c:1465 ../svnlook/svnlook.c:1488
#, c-format
msgid "Path '%s' is not a file"
msgstr "Pfad »%s« ist keine Datei"
-#: ../svnlook/svnlook.c:1614
+#: ../svnlook/svnlook.c:1622
msgid "History item limit reached"
msgstr "Beschränkung für Anzahl der Verlaufselemente erreicht"
-#: ../svnlook/svnlook.c:1633
+#: ../svnlook/svnlook.c:1641
#, c-format
msgid ""
"REVISION PATH <ID>\n"
@@ -16848,7 +19844,7 @@ msgstr ""
"REVISION PFAD <ID>\n"
"-------- ---------\n"
-#: ../svnlook/svnlook.c:1638
+#: ../svnlook/svnlook.c:1646
#, c-format
msgid ""
"REVISION PATH\n"
@@ -16857,41 +19853,41 @@ msgstr ""
"REVISION PFAD\n"
"-------- ----\n"
-#: ../svnlook/svnlook.c:1711
+#: ../svnlook/svnlook.c:1719
#, c-format
msgid "Property '%s' not found on revision %ld"
msgstr "Eigenschaft »%s« wurde in Revision %ld nicht gefunden"
-#: ../svnlook/svnlook.c:1715
+#: ../svnlook/svnlook.c:1723
#, c-format
msgid "Property '%s' not found on transaction %s"
msgstr "Eigenschaft »%s« wurde in Transaktion %s nicht gefunden"
-#: ../svnlook/svnlook.c:1724
+#: ../svnlook/svnlook.c:1732
#, c-format
msgid "Property '%s' not found on path '%s' or inherited from a parent in revision %ld"
msgstr "Eigenschaft »%s« wurde im Pfad »%s« in Revision %ld nicht gefunden und nicht vom übergeordneten Element geerbt"
-#: ../svnlook/svnlook.c:1730
+#: ../svnlook/svnlook.c:1738
#, c-format
msgid "Property '%s' not found on path '%s' in revision %ld"
msgstr "Eigenschaft »%s« wurde im Pfad »%s« in Revision %ld nicht gefunden"
-#: ../svnlook/svnlook.c:1738
+#: ../svnlook/svnlook.c:1746
#, c-format
msgid "Property '%s' not found on path '%s' or inherited from a parent in transaction %s"
msgstr "Eigenschaft »%s« wurde im Pfad »%s« in Transaktion %s nicht gefunden und nicht vom übergeordneten Element geerbt"
-#: ../svnlook/svnlook.c:1744
+#: ../svnlook/svnlook.c:1752
#, c-format
msgid "Property '%s' not found on path '%s' in transaction %s"
msgstr "Eigenschaft »%s« wurde im Pfad »%s« in Transaktion %s nicht gefunden"
-#: ../svnlook/svnlook.c:2080
+#: ../svnlook/svnlook.c:2089
msgid "Missing repository path argument"
msgstr "Fehlende Option für Pfad des Projektarchivs"
-#: ../svnlook/svnlook.c:2232
+#: ../svnlook/svnlook.c:2241
msgid ""
"general usage: svnlook SUBCOMMAND REPOS_PATH [ARGS & OPTIONS ...]\n"
"Subversion repository inspection tool.\n"
@@ -16915,7 +19911,7 @@ msgstr ""
"\n"
"Verfügbare Unterbefehle:\n"
-#: ../svnlook/svnlook.c:2311
+#: ../svnlook/svnlook.c:2320
#, c-format
msgid ""
"Comment (%i line):\n"
@@ -16930,50 +19926,50 @@ msgstr[1] ""
"Kommentar (%i Zeilen):\n"
"%s\n"
-#: ../svnlook/svnlook.c:2363
+#: ../svnlook/svnlook.c:2372
#, c-format
msgid "Missing propname argument"
msgstr "Fehlender PROPNAME Parameter"
-#: ../svnlook/svnlook.c:2364
+#: ../svnlook/svnlook.c:2373
#, c-format
msgid "Missing propname and repository path arguments"
msgstr "Eigenschaftsname und Pfad im Projektarchiv nicht angegeben"
-#: ../svnlook/svnlook.c:2370
+#: ../svnlook/svnlook.c:2379
msgid "Missing propname or repository path argument"
msgstr "Eigenschaftsname oder Pfad im Projektarchiv nicht angegeben"
-#: ../svnlook/svnlook.c:2523
+#: ../svnlook/svnlook.c:2533
msgid "Invalid revision number supplied"
msgstr "Ungültige Revisionsnummer angegeben"
-#: ../svnlook/svnlook.c:2637
+#: ../svnlook/svnlook.c:2656
msgid "The '--transaction' (-t) and '--revision' (-r) arguments cannot co-exist"
msgstr ""
"Die Parameter »--transaction« (-t) und »--revision« (-r) können nicht\n"
"gleichzeitig angegeben werden"
-#: ../svnlook/svnlook.c:2644
+#: ../svnlook/svnlook.c:2663
msgid "Cannot use the '--show-inherited-props' option with the '--revprop' option"
msgstr "Die Option »--show-inherited-props« kann nicht zusammen mit der Option »--revprop« verwendet werden"
-#: ../svnlook/svnlook.c:2701
+#: ../svnlook/svnlook.c:2720
#, c-format
msgid "Try 'svnadmin verify' instead.\n"
msgstr "Versuchen Sie stattdessen »svnadmin verify«.\n"
-#: ../svnlook/svnlook.c:2734
+#: ../svnlook/svnlook.c:2753
#, c-format
msgid "Repository argument required\n"
msgstr "Projektarchiv Parameter erforderlich\n"
-#: ../svnlook/svnlook.c:2743
+#: ../svnlook/svnlook.c:2762
#, c-format
msgid "'%s' is a URL when it should be a path\n"
msgstr "»%s« ist eine URL obwohl es ein Pfad sein sollte\n"
-#: ../svnlook/svnlook.c:2793
+#: ../svnlook/svnlook.c:2812
#, c-format
msgid ""
"Subcommand '%s' doesn't accept option '%s'\n"
@@ -16982,16 +19978,17 @@ msgstr ""
"Unterbefehl »%s« akzeptiert die Option »%s« nicht\n"
"Geben Sie »svnlook help %s« ein, um Hilfe zu erhalten.\n"
-#: ../svnlook/svnlook.c:2836
+#: ../svnlook/svnlook.c:2843
msgid "Try 'svnlook help' for more info"
msgstr "Versuchen Sie »svnlook help« für weitere Informationen"
-#: ../svnmucc/svnmucc.c:258
+#: ../svnmucc/svnmucc.c:268
#, c-format
msgid "Type 'svnmucc --help' for usage.\n"
msgstr "Geben Sie »svnmucc --help« für weitere Hilfe ein.\n"
-#: ../svnmucc/svnmucc.c:266
+#: ../svnmucc/svnmucc.c:276
+#, fuzzy
msgid ""
"usage: svnmucc ACTION...\n"
"Subversion multiple URL command client.\n"
@@ -17017,6 +20014,7 @@ msgid ""
" -F [--file] ARG : read log message from file ARG\n"
" -u [--username] ARG : commit the changes as username ARG\n"
" -p [--password] ARG : use ARG as the password\n"
+" --password-from-stdin : read password from stdin\n"
" -U [--root-url] ARG : interpret all action URLs relative to ARG\n"
" -r [--revision] ARG : use revision ARG as baseline for changes\n"
" --with-revprop ARG : set revision property in the following format:\n"
@@ -17025,18 +20023,16 @@ msgid ""
" prompt only if standard input is a terminal)\n"
" --force-interactive : do interactive prompting even if standard\n"
" input is not a terminal\n"
-" --trust-server-cert : deprecated; same as --trust-unknown-ca\n"
-" --trust-unknown-ca : with --non-interactive, accept SSL server\n"
-" certificates from unknown certificate authorities\n"
-" --trust-cn-mismatch : with --non-interactive, accept SSL server\n"
-" certificates even if the server hostname does not\n"
-" match the certificate's common name attribute\n"
-" --trust-expired : with --non-interactive, accept expired SSL server\n"
-" certificates\n"
-" --trust-not-yet-valid : with --non-interactive, accept SSL server\n"
-" certificates from the future\n"
-" --trust-other-failure : with --non-interactive, accept SSL server\n"
-" certificates with failures other than the above\n"
+" --trust-server-cert : deprecated;\n"
+" same as --trust-server-cert-failures=unknown-ca\n"
+" --trust-server-cert-failures ARG\n"
+" with --non-interactive, accept SSL server\n"
+" certificates with failures; ARG is comma-separated\n"
+" list of 'unknown-ca' (Unknown Authority),\n"
+" 'cn-mismatch' (Hostname mismatch), 'expired'\n"
+" (Expired certificate),'not-yet-valid' (Not yet\n"
+" valid certificate) and 'other' (all other not\n"
+" separately classified certificate errors).\n"
" -X [--extra-args] ARG : append arguments from file ARG (one per line;\n"
" use \"-\" to read from standard input)\n"
" --config-dir ARG : use ARG to override the config directory\n"
@@ -17094,30 +20090,35 @@ msgstr ""
" --no-auth-cache : speichert Anmeldeinformationen nicht zwischen\n"
" --version : gibt Versionsinformationen aus\n"
-#: ../svnmucc/svnmucc.c:349
+#: ../svnmucc/svnmucc.c:358
msgid "--message (-m), --file (-F), and --with-revprop=svn:log are mutually exclusive"
msgstr "--message (-m), --file (-F), und --with-revprop=svn:log schließen sich gegenseitig aus"
-#: ../svnmucc/svnmucc.c:590
+#: ../svnmucc/svnmucc.c:600
#, c-format
msgid "Invalid revision number '%s'"
msgstr "Ungültige Revisionsnummer »%s«"
-#: ../svnrdump/load_editor.c:231 ../svnsync/svnsync.c:362
+#: ../svnrdump/load_editor.c:230 ../svnsync/svnsync.c:358
#, c-format
msgid "Failed to get lock on destination repos, currently held by '%s'\n"
msgstr ""
"Konnte Sperre für Zielprojektarchiv nicht erhalten, die zurzeit von\n"
"»%s« gehalten wird\n"
-#: ../svnrdump/load_editor.c:375
+#: ../svnrdump/load_editor.c:374
msgid "Target server does not support atomic revision property edits; consider upgrading it to 1.7."
msgstr "Zielserver unterstützt keine atomaren Änderungen von Revisionseigenschaften; Verwenden Sie dort 1.7"
-#: ../svnrdump/svnrdump.c:113
+#: ../svnrdump/svnrdump.c:87
msgid ""
"usage: svnrdump dump URL [-r LOWER[:UPPER]]\n"
"\n"
+msgstr ""
+
+#: ../svnrdump/svnrdump.c:89
+#, fuzzy
+msgid ""
"Dump revisions LOWER to UPPER of repository at remote URL to stdout\n"
"in a 'dumpfile' portable format. If only LOWER is given, dump that\n"
"one revision.\n"
@@ -17128,40 +20129,44 @@ msgstr ""
"in einem portablen »Dump«-Format auf die Standardausgabe aus. Falls nur VON\n"
" angegeben wurde, wird nur diese Revision ausgegeben.\n"
-#: ../svnrdump/svnrdump.c:119
+#: ../svnrdump/svnrdump.c:95
msgid ""
"usage: svnrdump load URL\n"
"\n"
-"Load a 'dumpfile' given on stdin to a repository at remote URL.\n"
+msgstr ""
+
+#: ../svnrdump/svnrdump.c:97
+#, fuzzy
+msgid "Load a 'dumpfile' given on stdin to a repository at remote URL.\n"
msgstr ""
"Aufruf: svnrdump load URL\n"
"\n"
"Liest einen Datenstrom im »Dump«-Format von der Standardeingabe in ein Projektarchive an entfertner URL.\n"
-#: ../svnrdump/svnrdump.c:123
+#: ../svnrdump/svnrdump.c:101
msgid ""
"usage: svnrdump help [SUBCOMMAND...]\n"
"\n"
-"Describe the usage of this program or its subcommands.\n"
msgstr ""
-"Aufruf: svnrdump help [UNTERBEFEHL...]\n"
-"\n"
-"Beschreibt die Anwendung dieses Programms und seiner Unterbefehle.\n"
-#: ../svnrdump/svnrdump.c:136
+#: ../svnrdump/svnrdump.c:116
msgid "dump incrementally"
msgstr "Inkrementell ausgeben"
-#: ../svnrdump/svnrdump.c:138
+#: ../svnrdump/svnrdump.c:118
msgid "skip revision property ARG (e.g., \"svn:author\")"
msgstr "Revisionseigenschaft PAR überspringen (z.B. »svn:author«)"
-#: ../svnrdump/svnrdump.c:156 ../svnserve/svnserve.c:372
+#: ../svnrdump/svnrdump.c:138 ../svnserve/svnserve.c:413
#: ../svnversion/svnversion.c:142
msgid "display this help"
msgstr "Hilfe anzeigen"
-#: ../svnrdump/svnrdump.c:683
+#: ../svnrdump/svnrdump.c:167
+msgid "Read or write to a dumpfile instead of stdin/stdout"
+msgstr ""
+
+#: ../svnrdump/svnrdump.c:673
msgid ""
"general usage: svnrdump SUBCOMMAND URL [-r LOWER[:UPPER]]\n"
"Subversion remote repository dump and load tool.\n"
@@ -17179,20 +20184,20 @@ msgstr ""
"\n"
"Verfügbare Unterbefehle:\n"
-#: ../svnrdump/svnrdump.c:728 ../svnrdump/svnrdump.c:762
+#: ../svnrdump/svnrdump.c:718 ../svnrdump/svnrdump.c:752
msgid "Unsupported revision specifier used; use only integer values or 'HEAD'"
msgstr "Nicht unterstützte Angabe für Revision; verwenden Sie nur ganze Zahlen oder »HEAD«"
-#: ../svnrdump/svnrdump.c:736 ../svnrdump/svnrdump.c:770
+#: ../svnrdump/svnrdump.c:726 ../svnrdump/svnrdump.c:760
#, c-format
msgid "Revision '%ld' does not exist"
msgstr "Revision »%ld« existiert nicht"
-#: ../svnrdump/svnrdump.c:780
+#: ../svnrdump/svnrdump.c:770
msgid "LOWER revision cannot be greater than UPPER revision; consider reversing your revision range"
msgstr "Revision VON kann nicht größer als Revision BIS sein; Ändern Sie ggf. die Reihenfolge der Angabe"
-#: ../svnrdump/svnrdump.c:1039
+#: ../svnrdump/svnrdump.c:1017
#, c-format
msgid ""
"Subcommand '%s' doesn't accept option '%s'\n"
@@ -17201,90 +20206,99 @@ msgstr ""
"Unterbefehl »%s« akzeptiert die Option »%s« nicht\n"
"Geben Sie »svnrdump help %s« für Hilfe ein.\n"
-#: ../svnserve/cyrus_auth.c:119
+#: ../svnrdump/svnrdump.c:1060
+msgid "load subcommand with --password-from-stdin requires -F"
+msgstr ""
+
+#: ../svnserve/cyrus_auth.c:122
msgid "Could not initialize the SASL library"
msgstr "Konnte die SASL-Bibliothek nicht initialisieren"
-#: ../svnserve/cyrus_auth.c:191
+#: ../svnserve/cyrus_auth.c:194
#, c-format
msgid "Initial token is too long"
msgstr "Einleitende Markierung ist zu lang"
-#: ../svnserve/cyrus_auth.c:222
+#: ../svnserve/cyrus_auth.c:226
#, c-format
msgid "Step response is too long"
msgstr "Antwort auf Protokollschritt zu lang"
-#: ../svnserve/cyrus_auth.c:272
+#: ../svnserve/cyrus_auth.c:277
#, c-format
msgid "Can't get hostname"
msgstr "Kann den Hostnamen nicht erhalten"
-#: ../svnserve/cyrus_auth.c:329
+#: ../svnserve/cyrus_auth.c:335
msgid "Could not obtain the list of SASL mechanisms"
msgstr "Konnte die Liste der SASL-Mechanismen nicht erhalten"
-#: ../svnserve/cyrus_auth.c:372
+#: ../svnserve/cyrus_auth.c:378
msgid "Couldn't obtain the authenticated username"
msgstr "Kann den angemeldeten Benutzername nicht erhalten"
-#: ../svnserve/serve.c:2082
+#: ../svnserve/serve.c:2223
msgid "Path is not a string"
msgstr "Pfad ist keine Zeichenkette"
-#: ../svnserve/serve.c:2252
+#: ../svnserve/serve.c:2428
msgid "Log revprop entry not a string"
msgstr "Log-Revisionseigenschaftseintrag ist keine Zeichenkette"
-#: ../svnserve/serve.c:2258
+#: ../svnserve/serve.c:2434
#, c-format
msgid "Unknown revprop word '%s' in log command"
msgstr "Unbekanntes Revisionseigenschaftswort »%s« in Log-Kommando"
-#: ../svnserve/serve.c:2274
+#: ../svnserve/serve.c:2450
msgid "Log path entry not a string"
msgstr "Logpfadeintrag ist keine Zeichenkette"
-#: ../svnserve/serve.c:2897 ../svnserve/serve.c:3073
+#: ../svnserve/serve.c:3088 ../svnserve/serve.c:3267
#, c-format
msgid "No result for '%s'."
msgstr "Kein Ergebnis für »%s«."
-#: ../svnserve/svnserve.c:216
+#: ../svnserve/serve.c:3895
+#, c-format
+msgid "SASL requested but not compiled in; set '%s' to 'false' or recompile svnserve with SASL support"
+msgstr ""
+
+#: ../svnserve/svnserve.c:239
msgid "daemon mode"
msgstr "Daemonmodus"
-#: ../svnserve/svnserve.c:217
+#: ../svnserve/svnserve.c:240
msgid "inetd mode"
msgstr "Inetd-Modus"
-#: ../svnserve/svnserve.c:218
+#: ../svnserve/svnserve.c:241
msgid "tunnel mode"
msgstr "Tunnelmodus"
-#: ../svnserve/svnserve.c:219
+#: ../svnserve/svnserve.c:242
msgid "listen-once mode (useful for debugging)"
msgstr "»listen-once«-Modus (nützlich zum Debuggen)"
-#: ../svnserve/svnserve.c:222
+#: ../svnserve/svnserve.c:245
msgid "Windows service mode (Service Control Manager)"
msgstr "Windows-Service-Modus (Service Control Manager)"
-#: ../svnserve/svnserve.c:224
+#: ../svnserve/svnserve.c:247
msgid "root of directory to serve"
msgstr "Basis des bereitzustellenden Verzeichnisses"
-#: ../svnserve/svnserve.c:226
+#: ../svnserve/svnserve.c:249
msgid "force read only, overriding repository config file"
msgstr ""
"Erzwinge Schreibschutz. Setze Einstellung in der\n"
"Projektarchivkonfiguration außer Kraft."
-#: ../svnserve/svnserve.c:228
+#: ../svnserve/svnserve.c:251
msgid "read configuration from file ARG"
msgstr "Konfiguration aus Datei PAR lesen"
-#: ../svnserve/svnserve.c:231
+#: ../svnserve/svnserve.c:254
msgid ""
"listen port. The default port is 3690.\n"
" [mode: daemon, service, listen-once]"
@@ -17292,7 +20306,7 @@ msgstr ""
"abzuhörender Port. Die Vorgabe ist 3690.\n"
" [Modus: daemon, service, listen-once]"
-#: ../svnserve/svnserve.c:235
+#: ../svnserve/svnserve.c:258
msgid ""
"listen port. The default port is 3690.\n"
" [mode: daemon, listen-once]"
@@ -17300,7 +20314,7 @@ msgstr ""
"abzuhörender Port. Die Vorgabe ist 3690.\n"
" [Modus: daemon, listen-once]"
-#: ../svnserve/svnserve.c:241
+#: ../svnserve/svnserve.c:264
msgid ""
"listen hostname or IP address\n"
" By default svnserve listens on all addresses.\n"
@@ -17310,7 +20324,7 @@ msgstr ""
" Als Vorgabe hört svnserve auf allen Adressen.\n"
" [Modus: daemon, service, listen-once]"
-#: ../svnserve/svnserve.c:247
+#: ../svnserve/svnserve.c:270
msgid ""
"listen hostname or IP address\n"
" By default svnserve listens on all addresses.\n"
@@ -17320,7 +20334,7 @@ msgstr ""
" Als Vorgabe hört svnserve auf allen Adressen.\n"
" [Modus: daemon, listen-once]"
-#: ../svnserve/svnserve.c:254
+#: ../svnserve/svnserve.c:277
msgid ""
"prefer IPv6 when resolving the listen hostname\n"
" [IPv4 is preferred by default. Using IPv4 and IPv6\n"
@@ -17333,7 +20347,7 @@ msgstr ""
" nicht unterstützt. Verwenden Sie bei Bedarf inetd\n"
" oder den Tunnel-Modus."
-#: ../svnserve/svnserve.c:262
+#: ../svnserve/svnserve.c:285
msgid ""
"compression level to use for network transmissions\n"
" [0 .. no compression, 5 .. default, \n"
@@ -17343,7 +20357,7 @@ msgstr ""
" [0 .. keine Kompression, 5 .. Vorgabe, \n"
" 9 .. maximale Kompression]"
-#: ../svnserve/svnserve.c:268
+#: ../svnserve/svnserve.c:291
msgid ""
"size of the extra in-memory cache in MB used to\n"
" minimize redundant operations.\n"
@@ -17357,7 +20371,7 @@ msgstr ""
" 0 wählt Größe automatisch aus.\n"
" [nur für FSFS- und FSX-Projektarchive verwendet]"
-#: ../svnserve/svnserve.c:278
+#: ../svnserve/svnserve.c:301
msgid ""
"enable or disable caching of deltas between older\n"
" revisions.\n"
@@ -17369,7 +20383,7 @@ msgstr ""
" Vorgabe ist »yes«.\n"
" [nur für FSFS und FSX-Projektarchive verwendet]"
-#: ../svnserve/svnserve.c:286
+#: ../svnserve/svnserve.c:309
msgid ""
"enable or disable caching of file contents\n"
" Default is yes.\n"
@@ -17379,7 +20393,7 @@ msgstr ""
" Vorgabe ist »yes«.\n"
" [nur für FSFS und FSX-Projektarchive verwendet]"
-#: ../svnserve/svnserve.c:292
+#: ../svnserve/svnserve.c:315
msgid ""
"enable or disable caching of revision properties.\n"
" Consult the documentation before activating this.\n"
@@ -17391,7 +20405,18 @@ msgstr ""
" Vorgabe ist »no«.\n"
" [nur für FSFS und FSX-Projektarchive verwendet]"
-#: ../svnserve/svnserve.c:300
+#: ../svnserve/svnserve.c:323
+#, fuzzy
+msgid ""
+"enable or disable caching of node properties\n"
+" Default is yes.\n"
+" [used for FSFS repositories only]"
+msgstr ""
+"Aktiviert oder deaktiviert die Zwischenspeicherung von Dateiinhalten\n"
+" Vorgabe ist »yes«.\n"
+" [nur für FSFS und FSX-Projektarchive verwendet]"
+
+#: ../svnserve/svnserve.c:329
msgid ""
"Optimize network handling based on the assumption\n"
" that most clients are connected with a bitrate of\n"
@@ -17403,7 +20428,7 @@ msgstr ""
" PAR Mbit/s verbunden sind.\n"
" Vorgabe 0 (keine Optimierung)."
-#: ../svnserve/svnserve.c:308
+#: ../svnserve/svnserve.c:337
msgid ""
"Parse and cache all data found in block instead\n"
" of just the requested item.\n"
@@ -17418,47 +20443,54 @@ msgstr ""
#. ### Making the assumption here that WIN32 never has fork and so
#. * ### this option never exists when --service exists.
-#: ../svnserve/svnserve.c:318
+#: ../svnserve/svnserve.c:347
msgid "use threads instead of fork [mode: daemon]"
msgstr "Verwende Threads anstelle von »fork« [Modus: daemon]"
-#: ../svnserve/svnserve.c:321
+#: ../svnserve/svnserve.c:352
+#, fuzzy
msgid ""
"Minimum number of server threads, even if idle.\n"
-" Caped to max-threads; minimum value is 0.\n"
-" Default is 1.\n"
-" [used only with --threads]"
+" Capped to max-threads; minimum value is 0.\n"
+" Default is 1."
msgstr ""
"Mindestanzahl der Serverthreads, selbst wenn inaktiv.\n"
" Auf »max-threads« beschränkt; Mindestwert 0.\n"
" Vorgabe ist 1.\n"
" [nur zusammen mit --threads verwendet]"
-#: ../svnserve/svnserve.c:330
+#: ../svnserve/svnserve.c:359
+#, fuzzy
msgid ""
"Maximum number of server threads, even if there\n"
" are more connections. Minimum value is 1.\n"
-" Default is 64.\n"
-" [used only with --threads]"
+" Default is "
msgstr ""
"Höchstanzahl der Serverthreads, selbst wenn mehr\n"
" Verbindungen anliegen. Mindestwert 1.\n"
" Vorgabe ist 64.\n"
" [nur zusammen mit --threads verwendet]"
-#: ../svnserve/svnserve.c:339
+#: ../svnserve/svnserve.c:367
msgid ""
-"Maximum number of server threads, even if there\n"
-" are more connections. Minimum value is 1.\n"
-" Default is 256.\n"
-" [used only with --threads]"
+"Maximum acceptable size of a client request in MB.\n"
+" This implicitly limits the length of paths and\n"
+" property values that can be sent to the server.\n"
+" Also the peak memory usage for protocol handling\n"
+" per server thread or sub-process.\n"
+" 0 disables the size check; default is "
msgstr ""
-"Höchstanzahl der Serverthreads, selbst wenn mehr\n"
-" Verbindungen anliegen. Mindestwert 1.\n"
-" Vorgabe ist 256.\n"
-" [nur zusammen mit --threads verwendet]"
-#: ../svnserve/svnserve.c:349
+#: ../svnserve/svnserve.c:380
+msgid ""
+"Maximum acceptable server response size in MB.\n"
+" Longer responses get truncated and return an\n"
+" error. This limits the server load e.g. when\n"
+" checking out at the wrong path level.\n"
+" Default is 0 (disabled)."
+msgstr ""
+
+#: ../svnserve/svnserve.c:390
msgid ""
"run in foreground (useful for debugging)\n"
" [mode: daemon]"
@@ -17466,7 +20498,7 @@ msgstr ""
"Im Vordergrund starten (nützlich zum Debuggen)\n"
" [Modus: daemon]"
-#: ../svnserve/svnserve.c:353
+#: ../svnserve/svnserve.c:394
msgid ""
"handle one connection at a time in the parent\n"
" process (useful for debugging)"
@@ -17474,11 +20506,11 @@ msgstr ""
"Bearbeitet eingehende Verbindungen einzeln im Eltern-\n"
" prozess (nützlich zum Debuggen)"
-#: ../svnserve/svnserve.c:357
+#: ../svnserve/svnserve.c:398
msgid "svnserve log file"
msgstr "Protokolldatei von svnserve"
-#: ../svnserve/svnserve.c:360
+#: ../svnserve/svnserve.c:401
msgid ""
"write server process ID to file ARG\n"
" [mode: daemon, listen-once, service]"
@@ -17486,7 +20518,7 @@ msgstr ""
"Schreibe Server-Prozess-ID in Datei PAR\n"
" [Modus: daemon, listen-once, service]"
-#: ../svnserve/svnserve.c:364
+#: ../svnserve/svnserve.c:405
msgid ""
"write server process ID to file ARG\n"
" [mode: daemon, listen-once]"
@@ -17494,7 +20526,7 @@ msgstr ""
"Schreibe Server-Prozess-ID in Datei PAR\n"
" [Modus: daemon, listen-once]"
-#: ../svnserve/svnserve.c:369
+#: ../svnserve/svnserve.c:410
msgid ""
"tunnel username (default is current uid's name)\n"
" [mode: tunnel]"
@@ -17502,7 +20534,7 @@ msgstr ""
"Tunnel-Benutzername (Vorgabe ist der Name zur aktuellen UID)\n"
" [Modus: tunnel]"
-#: ../svnserve/svnserve.c:374
+#: ../svnserve/svnserve.c:415
msgid ""
"virtual host mode (look for repo in directory\n"
" of provided hostname)"
@@ -17510,12 +20542,12 @@ msgstr ""
"Virtual-Host-Modus (Sucht nach Projektarchiv dem Verzeichnis\n"
" das dem übertragenen Hostnamen entspricht)"
-#: ../svnserve/svnserve.c:390
+#: ../svnserve/svnserve.c:431
#, c-format
msgid "Type '%s --help' for usage.\n"
msgstr "Geben Sie »%s --help« für weitere Hilfe ein.\n"
-#: ../svnserve/svnserve.c:399
+#: ../svnserve/svnserve.c:440
msgid ""
"usage: svnserve [-d | -i | -t | -X | --service] [options]\n"
"Subversion repository server.\n"
@@ -17529,7 +20561,7 @@ msgstr ""
"\n"
"Gültige Optionen:\n"
-#: ../svnserve/svnserve.c:408
+#: ../svnserve/svnserve.c:449
msgid ""
"usage: svnserve [-d | -i | -t | -X] [options]\n"
"Subversion repository server.\n"
@@ -17543,7 +20575,7 @@ msgstr ""
"\n"
"Gültige Optionen:\n"
-#: ../svnserve/svnserve.c:438
+#: ../svnserve/svnserve.c:479
msgid ""
"\n"
"Cyrus SASL authentication is available.\n"
@@ -17551,77 +20583,72 @@ msgstr ""
"\n"
"Cyrus-SASL-Authentifizierung ist verfügbar.\n"
-#: ../svnserve/svnserve.c:524
+#: ../svnserve/svnserve.c:565
#, c-format
msgid "Can't accept client connection"
msgstr "Kann Clientverbindung nicht annehmen"
-#: ../svnserve/svnserve.c:796
+#: ../svnserve/svnserve.c:842
#, c-format
msgid "Invalid port '%s'"
msgstr "Ungültiger Port »%s«"
-#: ../svnserve/svnserve.c:832
+#: ../svnserve/svnserve.c:878
#, c-format
msgid "Root path '%s' does not exist or is not a directory"
msgstr "Wurzelpfad »%s« existiert nicht oder ist kein Verzeichnis."
-#: ../svnserve/svnserve.c:955
+#: ../svnserve/svnserve.c:1018
msgid "You must specify exactly one of -d, -i, -t, --service or -X.\n"
msgstr "Sie müssen genau einen der Parameter -d, -i, -t, --service oder -X angeben.\n"
-#: ../svnserve/svnserve.c:958
+#: ../svnserve/svnserve.c:1021
msgid "You must specify exactly one of -d, -i, -t or -X.\n"
msgstr "Sie müssen genau einen der Parameter -d, -i, -t oder -X angeben.\n"
-#: ../svnserve/svnserve.c:969
+#: ../svnserve/svnserve.c:1032
msgid "You may only specify one of -T or --single-thread\n"
msgstr "Sie dürfen nur einen der Parameter -T und --single-thread angeben.\n"
-#: ../svnserve/svnserve.c:1019
+#: ../svnserve/svnserve.c:1079
msgid "Option --tunnel-user is only valid in tunnel mode"
msgstr "Die Option --tunnel-user ist nur im Tunnelmodus zulässig"
-#: ../svnserve/svnserve.c:1088
+#: ../svnserve/svnserve.c:1152
#, c-format
msgid "svnserve: The --service flag is only valid if the process is started by the Service Control Manager.\n"
msgstr "svnserve: Die Option --service ist nur gültig, wenn der Prozess durch den Service Control Manager gestartet wurde.\n"
-#: ../svnserve/svnserve.c:1139
+#: ../svnserve/svnserve.c:1203
#, c-format
msgid "Can't get address info"
msgstr "Kann Adressinformation nicht ermitteln"
-#: ../svnserve/svnserve.c:1152
+#: ../svnserve/svnserve.c:1216
#, c-format
msgid "Can't create server socket"
msgstr "Kann Server-Socket nicht erzeugen"
-#: ../svnserve/svnserve.c:1160
+#: ../svnserve/svnserve.c:1224
#, c-format
msgid "Can't set options on server socket"
msgstr "Kann Optionen Server-Socket nicht einstellen"
-#: ../svnserve/svnserve.c:1166
+#: ../svnserve/svnserve.c:1230
#, c-format
msgid "Can't bind server socket"
msgstr "Kann Server-Socket nicht anbinden"
-#: ../svnserve/svnserve.c:1172
+#: ../svnserve/svnserve.c:1236
#, c-format
msgid "Can't listen on server socket"
msgstr "Kann nicht am Server-Socket hören"
-#: ../svnserve/svnserve.c:1253
+#: ../svnserve/svnserve.c:1317
#, c-format
msgid "Can't create thread pool"
msgstr "Kann Thread-Pool nicht erzeugen"
-#: ../svnserve/svnserve.c:1316
-#, c-format
-msgid "Can't push task"
-msgstr "Kann Abarbeitung einer Anfrage nicht initiieren"
-
#: ../svnserve/winservice.c:346
#, c-format
msgid "Failed to create winservice_start_event"
@@ -17642,16 +20669,30 @@ msgstr "Konnte nicht mit dem Service Control Manager verbinden"
msgid "The service failed to start; an internal error occurred while starting the service"
msgstr "Der Dienst konnte nicht gestartet werden; ein interner Fehler trat beim Starten des Dienstes auf"
-#: ../svnsync/svnsync.c:101
+#: ../svnsync/svnsync.c:95
msgid ""
"usage: svnsync initialize DEST_URL SOURCE_URL\n"
"\n"
+msgstr ""
+
+#: ../svnsync/svnsync.c:97
+#, fuzzy
+msgid ""
"Initialize a destination repository for synchronization from\n"
"another repository.\n"
"\n"
+msgstr "Zielprojektarchiv hat mehr Revisionen als Quellprojektarchiv"
+
+#: ../svnsync/svnsync.c:100
+msgid ""
"If the source URL is not the root of a repository, only the\n"
"specified part of the repository will be synchronized.\n"
"\n"
+msgstr ""
+
+#: ../svnsync/svnsync.c:103
+#, fuzzy
+msgid ""
"The destination URL must point to the root of a repository which\n"
"has been configured to allow revision property changes. In\n"
"the general case, the destination repository must contain no\n"
@@ -17662,10 +20703,6 @@ msgid ""
"when initializing a copy of a repository as a mirror of that same\n"
"repository, for example.)\n"
"\n"
-"You should not commit to, or make revision property changes in,\n"
-"the destination repository by any method other than 'svnsync'.\n"
-"In other words, the destination repository should be a read-only\n"
-"mirror of the source repository.\n"
msgstr ""
"Aufruf: svnsync initialize ZIEL_URL QUELL_URL\n"
"\n"
@@ -17686,13 +20723,35 @@ msgstr ""
"Anders ausgedrückt stellt das Zielprojektarchiv einen Spiegel des\n"
"Quellprojektarchivs dar, auf den nur lesend zugegriffen werden darf.\n"
-#: ../svnsync/svnsync.c:127
+#: ../svnsync/svnsync.c:113
+msgid ""
+"You should not commit to, or make revision property changes in,\n"
+"the destination repository by any method other than 'svnsync'.\n"
+"In other words, the destination repository should be a read-only\n"
+"mirror of the source repository.\n"
+msgstr ""
+
+#: ../svnsync/svnsync.c:122
msgid ""
"usage: svnsync synchronize DEST_URL [SOURCE_URL]\n"
"\n"
+msgstr ""
+
+#: ../svnsync/svnsync.c:124
+#, fuzzy
+msgid ""
"Transfer all pending revisions to the destination from the source\n"
"with which it was initialized.\n"
"\n"
+msgstr ""
+"Aufruf: svnsync synchronize ZIEL_URL\n"
+"\n"
+"Überträgt alle laufenden Revisionen von der Quelle, mit der es\n"
+"initialisiert wurde, zum Ziel.\n"
+
+#: ../svnsync/svnsync.c:127
+#, fuzzy
+msgid ""
"If SOURCE_URL is provided, use that as the source repository URL,\n"
"ignoring what is recorded in the destination repository as the\n"
"source URL. Specifying SOURCE_URL is recommended in particular\n"
@@ -17710,54 +20769,72 @@ msgstr ""
"Benutzer oder Administratoren Schreibzugriff auf ZIEL_URL haben.\n"
"\n"
-#: ../svnsync/svnsync.c:140
+#: ../svnsync/svnsync.c:136
msgid ""
"usage:\n"
"\n"
+msgstr ""
+
+#: ../svnsync/svnsync.c:138
+msgid ""
" 1. svnsync copy-revprops DEST_URL [SOURCE_URL]\n"
" 2. svnsync copy-revprops DEST_URL REV[:REV2]\n"
"\n"
+msgstr ""
+
+#: ../svnsync/svnsync.c:141
+msgid ""
"Copy the revision properties in a given range of revisions to the\n"
"destination from the source with which it was initialized. If the\n"
"revision range is not specified, it defaults to all revisions in\n"
"the DEST_URL repository. Note also that the 'HEAD' revision is the\n"
"latest in DEST_URL, not necessarily the latest in SOURCE_URL.\n"
"\n"
+msgstr ""
+
+#: ../svnsync/svnsync.c:147
+#, fuzzy
+msgid ""
"If SOURCE_URL is provided, use that as the source repository URL,\n"
"ignoring what is recorded in the destination repository as the\n"
"source URL. Specifying SOURCE_URL is recommended in particular\n"
"if untrusted users/administrators may have write access to the\n"
"DEST_URL repository.\n"
"\n"
-"Form 2 is deprecated syntax, equivalent to specifying \"-rREV[:REV2]\".\n"
msgstr ""
-"Aufruf:\n"
-"\n"
-" 1. svnsync copy-revprops ZIEL_URL [QUELL_URL]\n"
-" 2. svnsync copy-revprops ZIEL_URL PAR1[:PAR2]\n"
+"Aufruf: svnsync synchronize ZIEL_URL [QUELL_URL]\n"
"\n"
-"Kopiert Revisionseigenschaften eines angegebenen Bereichs\n"
-"von Revisionen in ein Zielprojektarchiv, aus der Quelle mit der\n"
-"dieses für die Synchronisierung vorbereitet wurde. Wenn der\n"
-"Revisionsbereich nicht angegeben wurde, werden alle im\n"
-"Revisionen im Projektarchiv ZIEL_URL übertragen.\n"
-"Beachten Sie, dass die Revision »HEAD« die neueste Revision\n"
-"in ZIEL_URL bezeichnet, nicht notwendigerweise die neueste in\n"
-"QUELL_URL.\n"
+"Überträgt alle für das Zielprojektarchiv ausstehenden Revisionen\n"
+"aus der Quelle, mit der die Synchronisation vorbereitet wurde.\n"
"\n"
"Falls QUELL_URL angegeben ist, wird dies als Quellprojektarchiv\n"
"verwendet, egal welche Quelle im Zielprojektarchiv konfiguriert wurde.\n"
"Die Angabe von QUELL_URL ist ratsam, falls nicht vertrauenswürdige\n"
"Benutzer oder Administratoren Schreibzugriff auf ZIEL_URL haben.\n"
"\n"
-"Die Angabe des Revisionsbereichs in der zweiten Form ist veraltet\n"
-"und ist gleichbedeutend mit der Angabe der Option »-r PAR1[:PAR2]«\n"
-# CHECKME: s/destination/source/?
-#: ../svnsync/svnsync.c:161
+#: ../svnsync/svnsync.c:153
+msgid ""
+"Unless you need to trigger the destination repositoy's revprop\n"
+"change hooks for all revision properties, it is recommended to use\n"
+"the --skip-unchanged option for best performance.\n"
+"\n"
+msgstr ""
+
+#: ../svnsync/svnsync.c:157
+msgid "Form 2 is deprecated syntax, equivalent to specifying \"-rREV[:REV2]\".\n"
+msgstr ""
+
+#: ../svnsync/svnsync.c:163
msgid ""
"usage: svnsync info DEST_URL\n"
"\n"
+msgstr ""
+
+# CHECKME: s/destination/source/?
+#: ../svnsync/svnsync.c:165
+#, fuzzy
+msgid ""
"Print information about the synchronization destination repository\n"
"located at DEST_URL.\n"
msgstr ""
@@ -17766,21 +20843,17 @@ msgstr ""
"Gibt Informationen über das Zielprojektarchiv der Synchronisation aus,\n"
"das sich unter ZIEL_URL befindet.\n"
-#: ../svnsync/svnsync.c:167
+#: ../svnsync/svnsync.c:170
msgid ""
"usage: svnsync help [SUBCOMMAND...]\n"
"\n"
-"Describe the usage of this program or its subcommands.\n"
msgstr ""
-"Aufruf: svnsync help [UNTERBEFEHL...]\n"
-"\n"
-"Beschreibt die Anwendung dieses Programms und seiner Unterbefehle.\n"
-#: ../svnsync/svnsync.c:177
+#: ../svnsync/svnsync.c:181
msgid "print as little as possible"
msgstr "So wenig wie möglich ausgeben"
-#: ../svnsync/svnsync.c:179
+#: ../svnsync/svnsync.c:183
msgid ""
"operate on revision ARG (or range ARG1:ARG2)\n"
" A revision argument can be one of:\n"
@@ -17792,11 +20865,16 @@ msgstr ""
" ZAHL Revisionsnummer\n"
" »HEAD« neueste im Projektarchiv"
-#: ../svnsync/svnsync.c:187
+#: ../svnsync/svnsync.c:191
msgid "allow a non-empty destination repository"
msgstr "erlaubt nicht-leeres Zielprojektarchiv"
-#: ../svnsync/svnsync.c:199
+#: ../svnsync/svnsync.c:193
+#, fuzzy
+msgid "don't copy unchanged revision properties"
+msgstr "Revisionseigenschaften nicht filtern."
+
+#: ../svnsync/svnsync.c:205
msgid ""
"specify a username ARG (deprecated;\n"
" see --source-username and --sync-username)"
@@ -17804,7 +20882,7 @@ msgstr ""
"gibt einen Benutzernamen PAR an (veraltet;\n"
" siehe --source-username und --sync-username)"
-#: ../svnsync/svnsync.c:203
+#: ../svnsync/svnsync.c:209
msgid ""
"specify a password ARG (deprecated;\n"
" see --source-password and --sync-password)"
@@ -17812,24 +20890,70 @@ msgstr ""
"gibt ein Passwort PAR an (veraltet;\n"
" siehe --source-password und --sync-password)"
-#: ../svnsync/svnsync.c:231
+#: ../svnsync/svnsync.c:213
+msgid ""
+"deprecated; same as\n"
+" --source-trust-server-cert-failures=unknown-ca\n"
+" --sync-trust-server-cert-failures=unknown-ca"
+msgstr ""
+
+#: ../svnsync/svnsync.c:219
+#, fuzzy
+msgid ""
+"with --non-interactive, accept SSL\n"
+" server certificates with failures.\n"
+" ARG is a comma-separated list of:\n"
+" - 'unknown-ca' (Unknown Authority)\n"
+" - 'cn-mismatch' (Hostname mismatch)\n"
+" - 'expired' (Expired certificate)\n"
+" - 'not-yet-valid' (Not yet valid certificate)\n"
+" - 'other' (all other not separately classified\n"
+" certificate errors).\n"
+" Applied to the source URL."
+msgstr ""
+"Gibt Optionen für ein externes Vergleichsprogramm oder die interne\n"
+" Vergleichsfunktion an. Vorgabe ist »-u«. Optionen sind\n"
+" durch Leerzeichen zu trennen. aber sein internes Vergleichsprogramm benutzt\n"
+" oder Annotierungen anzeigt, kann PAR einen der\n"
+" folgenden Werte annehmen:\n"
+" -u (--unified):\n"
+" Gibt 3 Zeilen Standardkontext aus.\n"
+" -b (--ignore-space-change):\n"
+" Ignoriert Änderungen in der Anzahl von\n"
+" Leerzeichen.\n"
+" -w (--ignore-all-space):\n"
+" Ignoriert sämtliche Leerzeichen.\n"
+" --ignore-eol-style:\n"
+" Ignoriert Änderungen im Zeilenendestil.\n"
+" -U PAR, --context PAR: Gibt PAR Zeilen Kontext aus.\n"
+" -p (--show-c-function):\n"
+" Zeigt C-Funktionsname in Diff-Ausgabe."
+
+#: ../svnsync/svnsync.c:239
+msgid ""
+"Like\n"
+" --source-trust-server-cert-failures,\n"
+" but applied to the destination URL."
+msgstr ""
+
+#: ../svnsync/svnsync.c:245
msgid "connect to source repository with username ARG"
msgstr "verbindet mit dem Quellprojektarchiv mit dem Benutzernamen PAR"
-#: ../svnsync/svnsync.c:233
+#: ../svnsync/svnsync.c:247
msgid "connect to source repository with password ARG"
msgstr "verbindet mit dem Quellprojektarchiv mit dem Passwort PAR"
# FIXME: s/sync/synced/, option sync-username
-#: ../svnsync/svnsync.c:235
+#: ../svnsync/svnsync.c:249
msgid "connect to sync repository with username ARG"
msgstr "verbindet mit synchronisiertem Projektarchiv mit Benutzernamen PAR"
-#: ../svnsync/svnsync.c:237
+#: ../svnsync/svnsync.c:251
msgid "connect to sync repository with password ARG"
msgstr "verbindet mit synchronisiertem Projektarchiv mit Passwort PAR"
-#: ../svnsync/svnsync.c:249
+#: ../svnsync/svnsync.c:263
msgid ""
"convert translatable properties from encoding ARG\n"
" to UTF-8. If not specified, then properties are\n"
@@ -17839,7 +20963,7 @@ msgstr ""
" nach UTF-8. Wenn nicht angegeben, werden die\n"
" Eigenschaften als in UTF-8 kodiert angenommen."
-#: ../svnsync/svnsync.c:255
+#: ../svnsync/svnsync.c:269
msgid ""
"Disable built-in locking. Use of this option can\n"
" corrupt the mirror unless you ensure that no other\n"
@@ -17849,7 +20973,7 @@ msgstr ""
" kann Spiegelprojektarchive beschädigen, falls nicht sichergestellt ist,\n"
" dass keine andere Instanz von svnsync gleichzeitig läuft."
-#: ../svnsync/svnsync.c:261
+#: ../svnsync/svnsync.c:275
msgid ""
"Steal locks as necessary. Use, with caution,\n"
" if your mirror repository contains stale locks\n"
@@ -17860,7 +20984,7 @@ msgstr ""
" wenn das Spiegelprojektarchiv nicht mehr notwendige Sperren enthält\n"
" und nicht gleichzeitig von einer anderen svnsync-Instanz verwendet wird."
-#: ../svnsync/svnsync.c:269
+#: ../svnsync/svnsync.c:283
msgid ""
"size of the extra in-memory cache in MB used to\n"
" minimize operations for local 'file' scheme.\n"
@@ -17868,120 +20992,120 @@ msgstr ""
"Größe des extra Zwischenspeichers im RAM in MB zur Minimierung\n"
" redundanter Operationen mit dem lokalen »file«-Schema.\n"
-#: ../svnsync/svnsync.c:392
+#: ../svnsync/svnsync.c:388
msgid "Target server does not support atomic revision property edits; consider upgrading it to 1.7 or using an external locking program"
msgstr "Zielserver unterstützt keine atomaren Änderungen von Revisionseigenschaften; Verwenden Sie entweder 1.7 oder ein externes Programm zum Sperren."
-#: ../svnsync/svnsync.c:406
+#: ../svnsync/svnsync.c:402
#, c-format
msgid "Stole lock previously held by '%s'\n"
msgstr "Zuvor von »%s« gehaltene Sperre gestohlen\n"
-#: ../svnsync/svnsync.c:495
+#: ../svnsync/svnsync.c:492
#, c-format
msgid "Session is rooted at '%s' but the repos root is '%s'"
msgstr "Basis der Sitzung ist »%s«, aber die Basis des Projektarchivs ist »%s«"
-#: ../svnsync/svnsync.c:637
+#: ../svnsync/svnsync.c:650
#, c-format
msgid "Copied properties for revision %ld (%s* properties skipped).\n"
msgstr "Kopierte Eigenschaften für Revision %ld (%s* Eigenschaften übergangen).\n"
-#: ../svnsync/svnsync.c:642
+#: ../svnsync/svnsync.c:655
#, c-format
msgid "Copied properties for revision %ld.\n"
msgstr "Eigenschaften für Revision %ld kopiert.\n"
-#: ../svnsync/svnsync.c:658
+#: ../svnsync/svnsync.c:671
#, c-format
msgid "NOTE: Normalized %s* properties to LF line endings (%d rev-props, %d node-props).\n"
msgstr "HINWEIS: %s* Eigenschaften nach LF-Zeilenenden normalisiert (%d Revisionseigenschaften, %d Knoteneigenschaften).\n"
-#: ../svnsync/svnsync.c:790
+#: ../svnsync/svnsync.c:810
msgid "Destination repository already contains revision history; consider using --allow-non-empty if the repository's revisions are known to mirror their respective revisions in the source repository"
msgstr "Das Zielprojektarchiv enthält schon eine Revisionsgeschichte. Sie können es mit »--allow-non-empty« versuchen, falls die Revisionen dieses Projektarchivs denen des Quellprojektarchivs genau entsprechen."
-#: ../svnsync/svnsync.c:799
+#: ../svnsync/svnsync.c:819
#, c-format
msgid "Destination repository is already synchronizing from '%s'"
msgstr "Das Zielprojektarchiv synchronisiert bereits von »%s«"
-#: ../svnsync/svnsync.c:834
+#: ../svnsync/svnsync.c:854
msgid "Destination repository has more revisions than source repository"
msgstr "Zielprojektarchiv hat mehr Revisionen als Quellprojektarchiv"
-#: ../svnsync/svnsync.c:899 ../svnsync/svnsync.c:902 ../svnsync/svnsync.c:1574
-#: ../svnsync/svnsync.c:1581 ../svnsync/svnsync.c:1820
-#: ../svnsync/svnsync.c:1823 ../svnsync/svnsync.c:1867
+#: ../svnsync/svnsync.c:919 ../svnsync/svnsync.c:922 ../svnsync/svnsync.c:1595
+#: ../svnsync/svnsync.c:1602 ../svnsync/svnsync.c:1842
+#: ../svnsync/svnsync.c:1845 ../svnsync/svnsync.c:1889
#, c-format
msgid "Path '%s' is not a URL"
msgstr "Pfad »%s« ist keine URL"
-#: ../svnsync/svnsync.c:929
+#: ../svnsync/svnsync.c:949
#, c-format
msgid "Committed revision %ld.\n"
msgstr "Revision %ld übertragen.\n"
-#: ../svnsync/svnsync.c:972
+#: ../svnsync/svnsync.c:992
msgid "Destination repository has not been initialized"
msgstr "Zielprojektarchiv wurde noch nicht initialisiert"
-#: ../svnsync/svnsync.c:1347
+#: ../svnsync/svnsync.c:1367
#, c-format
msgid "Commit created r%ld but should have created r%ld"
msgstr "Ãœbertragung erzeugte Revision r%ld, sollte aber r%ld erzeugen"
-#: ../svnsync/svnsync.c:1467
+#: ../svnsync/svnsync.c:1487
#, c-format
msgid "Revision being currently copied (%ld), last merged revision (%ld), and destination HEAD (%ld) are inconsistent; have you committed to the destination without using svnsync?"
msgstr "Die aktuell kopierte Revision (%ld), zuletzt zusammengeführte Revision (%ld) und Ziel-HEAD (%ld) sind inkonsistent. Haben Sie in das Ziel ohne Verwendung von svnsync übertragen?"
-#: ../svnsync/svnsync.c:1504
+#: ../svnsync/svnsync.c:1525
#, c-format
msgid "Destination HEAD (%ld) is not the last merged revision (%ld); have you committed to the destination without using svnsync?"
msgstr "Ziel-HEAD (%ld) ist nicht die zuletzt zusammengeführte Revision (%ld). Haben Sie in das Ziel ohne Verwendung von svnsync übertragen?"
-#: ../svnsync/svnsync.c:1634 ../svnsync/svnsync.c:1639
+#: ../svnsync/svnsync.c:1655 ../svnsync/svnsync.c:1660
#, c-format
msgid "Cannot copy revprops for a revision (%ld) that has not been synchronized yet"
msgstr "Kann keine Revisionseigenschaften für eine Revision (%ld) kopieren, die noch nicht synchronisiert wurde"
-#: ../svnsync/svnsync.c:1703 ../svnsync/svnsync.c:1723
+#: ../svnsync/svnsync.c:1725 ../svnsync/svnsync.c:1745
#, c-format
msgid "Invalid revision number (%ld)"
msgstr "Ungültige Revisionsnummer (%ld)"
-#: ../svnsync/svnsync.c:1773
+#: ../svnsync/svnsync.c:1795
msgid "Cannot specify revisions via both command-line arguments and the --revision (-r) option"
msgstr "Revisionen dürfen nicht gleichzeitig durch Argumente in der Kommandozeile und die Option »--revision« (»-r«) angegeben werden"
-#: ../svnsync/svnsync.c:1781 ../svnsync/svnsync.c:2126
+#: ../svnsync/svnsync.c:1803 ../svnsync/svnsync.c:2159
#, c-format
msgid "Invalid revision range '%s' provided"
msgstr "Ungültiger Revisionsbereich »%s« angegeben"
-#: ../svnsync/svnsync.c:1880
+#: ../svnsync/svnsync.c:1902
#, c-format
msgid "Repository '%s' is not initialized for synchronization"
msgstr "Das Projektarchiv »%s« ist für die Synchronisation nicht initialisiert"
#. Print the info.
-#: ../svnsync/svnsync.c:1886
+#: ../svnsync/svnsync.c:1908
#, c-format
msgid "Source URL: %s\n"
msgstr "Quell-URL: %s\n"
-#: ../svnsync/svnsync.c:1888
+#: ../svnsync/svnsync.c:1910
#, c-format
msgid "Source Repository UUID: %s\n"
msgstr "UUID des Quellprojektarchivs: %s\n"
-#: ../svnsync/svnsync.c:1891
+#: ../svnsync/svnsync.c:1913
#, c-format
msgid "Last Merged Revision: %s\n"
msgstr "Letzte zusammengeführte Revision: %s\n"
-#: ../svnsync/svnsync.c:1908
+#: ../svnsync/svnsync.c:1930
msgid ""
"general usage: svnsync SUBCOMMAND DEST_URL [ARGS & OPTIONS ...]\n"
"Subversion repository replication tool.\n"
@@ -17999,16 +21123,21 @@ msgstr ""
"\n"
"Verfügbare Unterbefehle:\n"
-#: ../svnsync/svnsync.c:2187
+#: ../svnsync/svnsync.c:2221
msgid "Cannot use --username or --password with any of --source-username, --source-password, --sync-username, or --sync-password.\n"
msgstr "Man kann nicht --username oder --password mit einem von --source-username, --source-password, --sync-username oder --sync-password verwenden.\n"
# TODO: Duplicated message!!!!
-#: ../svnsync/svnsync.c:2210
+#: ../svnsync/svnsync.c:2244
msgid "--disable-locking and --steal-lock are mutually exclusive"
msgstr "--disable-locking und --steal-lock schließen sich gegenseitig aus"
-#: ../svnsync/svnsync.c:2299
+#: ../svnsync/svnsync.c:2262
+#, fuzzy
+msgid "--source-trust-server-cert-failures and --sync-trust-server-cert-failures require --non-interactive"
+msgstr "--trust-other-failure erfordert --non-interactive"
+
+#: ../svnsync/svnsync.c:2331
#, c-format
msgid ""
"Subcommand '%s' doesn't accept option '%s'\n"
@@ -18017,7 +21146,7 @@ msgstr ""
"Unterbefehl »%s« akzeptiert die Option »%s« nicht\n"
"Geben Sie »svnsync help %s« für Hilfe ein.\n"
-#: ../svnsync/svnsync.c:2389
+#: ../svnsync/svnsync.c:2395
msgid "Try 'svnsync help' for more info"
msgstr "Versuchen Sie »svnsync help« für weitere Informationen"
@@ -18138,6 +21267,2324 @@ msgstr "»%s« ist unbekannten Typs\n"
msgid "Uncommitted local addition, copy or move%s"
msgstr "Nicht übertragenes lokal hinzugefügtes, kopiertes oder verschobenes Element%s"
+#~ msgid "Only diffs between a path's text-base and its working files are supported at this time"
+#~ msgstr "Derzeit werden nur Vergleiche zwischen der Textbasis und den Arbeitsdateien eines Pfades unterstützt"
+
+#~ msgid "Invalid link representation"
+#~ msgstr "Ungültige Darstellung für symbolischen Link"
+
+#~ msgid "Invalid revision footer"
+#~ msgstr "Ungültige Fußdaten für Revision"
+
+#~ msgid "Unlock of '%s' failed (%d %s)"
+#~ msgstr "Freigabe der Sperre von »%s« gescheitert (%d %s)"
+
+#~ msgid "Invalid config: illegal character in timeout value"
+#~ msgstr "Ungültige Konfiguration: Illegales Zeichen im Timeout-Wert"
+
+#~ msgid "Invalid config: negative timeout value"
+#~ msgstr "Ungültige Konfiguration: Negativer Timeout-Wert"
+
+#~ msgid "Malformed XML: %s"
+#~ msgstr "Fehlerhaftes XML: %s"
+
+#~ msgid "Repository '%s' failed to verify"
+#~ msgstr "Überprüfung des Projektarchivs »%s« fehlgeschlagen"
+
+#~ msgid "Memory for processing UTF-8 data could not be allocated."
+#~ msgstr "Speicher für die Verarbeitung von UTF-8 Daten konnte nicht zugewiesen werden."
+
+#~ msgid "UTF-8 string is too long to be processed."
+#~ msgstr "UTF-8 Zeichenkette ist für die Verarbeitung zu lang."
+
+#~ msgid "Invalid UTF-8 string"
+#~ msgstr "Ungültige UTF-8 Zeichenkette"
+
+#~ msgid "Unassigned Unicode code point found in UTF-8 string."
+#~ msgstr "Nicht zugewiesener Unicode-Codepunkt in UTF-8 Zeichenkette gefunden."
+
+#~ msgid "Invalid options for UTF-8 processing chosen."
+#~ msgstr "Ungültige Optionen für die Verarbeitung von UTF-8 ausgewählt."
+
+#~ msgid "An unknown error occured while processing UTF-8 data."
+#~ msgstr "Ein unbekannter Fehler trat bei der Verarbeitung von UTF-8 Daten auf."
+
+#~ msgid "Error parsing tree conflict skel"
+#~ msgstr "Fehler beim Einlesen des Baumkonfliktskeletons"
+
+#~ msgid "The working copy at '%s' is format 22 with WORKING nodes; use a format 22 client to diff/revert before using this client"
+#~ msgstr "Die Arbeitskopie in »%s« hat das Format 22 mit »WORKING«-Knoten; Verwenden Sie zuerst einen Client mit Format 22 um sie zurückzusetzen oder Unterschiede zu speichern, bevor Sie diesen Client verwenden"
+
+#~ msgid "The working copy at '%s' is format 26 with conflicts; use a format 26 client to resolve before using this client"
+#~ msgstr "Die Arbeitskopie in »%s« hat das Format 26 mit Konflikten; Verwenden Sie zuerst einen Client mit Format 26 um diese aufzulösen, bevor Sie diesen Client verwenden"
+
+#~ msgid "Cannot apply update because move source '%s' is a switched subtree"
+#~ msgstr "Kann Aktualisierung nicht anwenden, da die Quelle der Verschiebung »%s« ein umgestellter Unterbaum ist"
+
+#~ msgid "accept merged version of file [working]"
+#~ msgstr "Akzeptiert die zusammengeführte Version der Datei [working]"
+
+#~ msgid "accept my version for all conflicts (same) [mine-conflict]"
+#~ msgstr "Akzeptiert eigene Version für alle Konflikte (ebenso) [mine-conflict]"
+
+#~ msgid "my side of conflict"
+#~ msgstr "eigene Seite des Konflikts"
+
+#~ msgid "accept their version for all conflicts (same) [theirs-conflict]"
+#~ msgstr "Akzeptiert fremde Version für alle Konflikte (ebenso) [theirs-conflict]"
+
+#~ msgid "their side of conflict"
+#~ msgstr "fremde Seite des Konflikts"
+
+#~ msgid "accept my version of entire file (even non-conflicts) [mine-full]"
+#~ msgstr "Akzeptiert eigene Version für ganze Datei (alles, nicht nur Konflikte) [mine-full]"
+
+#~ msgid "accept their version of entire file (same) [theirs-full]"
+#~ msgstr "Akzeptiert fremde Version für ganze Datei (ebenso) [theirs-full]"
+
+#~ msgid "their version"
+#~ msgstr "fremde Version"
+
+#~ msgid "mark the conflict to be resolved later [postpone]"
+#~ msgstr "Markiert den Konflikt für eine spätere Auflösung [postpone]"
+
+#~ msgid "accept my version of entire property (even non-conflicts) [mine-full]"
+#~ msgstr "Akzeptiert eigene Version für ganze Eigenschaft (alles, nicht nur Konflikte) [mine-full]"
+
+#~ msgid "help"
+#~ msgstr "Hilfe"
+
+#~ msgid "resolve the conflict later [postpone]"
+#~ msgstr "Löst den Konflikt später auf [postpone]"
+
+#~ msgid "allow updating moved-away children with 'svn resolve' [mine-conflict]"
+#~ msgstr "Erlaubt die Aktualisierung von verschobenen Kindelementen mit »svn resolve« [mine-conflict]"
+
+#~ msgid " (%s) %s"
+#~ msgstr " (%s) %s"
+
+#~ msgid ""
+#~ "with --non-interactive, accept SSL server\n"
+#~ " certificates from unknown certificate authorities"
+#~ msgstr ""
+#~ "mit --non-interactive, akzeptiert SSL Server-Zertifikate\n"
+#~ " von unbekannten Zertifizierungsstellen"
+
+#~ msgid ""
+#~ "with --non-interactive, accept SSL server\n"
+#~ " certificates even if the server hostname does not\n"
+#~ " match the certificate's common name attribute"
+#~ msgstr ""
+#~ "mit --non-interactive, akzeptiert SSL Server-Zertifikate\n"
+#~ " auch falls der Hostname nicht mit dem Common\n"
+#~ " Name Attribut im Zertifikat übereinstimmt"
+
+#~ msgid ""
+#~ "with --non-interactive, accept expired SSL server\n"
+#~ " certificates"
+#~ msgstr ""
+#~ "mit --non-interactive, akzeptiert SSL Server-Zertifikate\n"
+#~ " die abgelaufen sind"
+
+#~ msgid ""
+#~ "with --non-interactive, accept SSL server\n"
+#~ " certificates from the future"
+#~ msgstr ""
+#~ "mit --non-interactive, akzeptiert SSL Server-Zertifikate\n"
+#~ " die noch nicht gültig sind"
+
+#~ msgid ""
+#~ "with --non-interactive, accept SSL server\n"
+#~ " certificates with failures other than the above"
+#~ msgstr ""
+#~ "mit --non-interactive, akzeptiert SSL Server-Zertifikate\n"
+#~ " mit anderen als den vorherigen Fehlern"
+
+#~ msgid "retrieve target's inherited properties"
+#~ msgstr "Geerbte Eigenschaften des Ziels abfragen"
+
+#~ msgid "print only the item identified by ARG"
+#~ msgstr "Gibt nur das mit PAR angegebene Element aus"
+
+#~ msgid ""
+#~ "Show when each line of a file was last (or\n"
+#~ "next) changed.\n"
+#~ "usage: blame [-rM:N] TARGET[@REV]...\n"
+#~ "\n"
+#~ " Annotate each line of a file with the revision number and author of the\n"
+#~ " last change (or optionally the next change) to that line.\n"
+#~ "\n"
+#~ " With no revision range (same as -r0:REV), or with '-r M:N' where M < N,\n"
+#~ " annotate each line that is present in revision N of the file, with\n"
+#~ " the last revision at or before rN that changed or added the line,\n"
+#~ " looking back no further than rM.\n"
+#~ "\n"
+#~ " With a reverse revision range '-r M:N' where M > N,\n"
+#~ " annotate each line that is present in revision N of the file, with\n"
+#~ " the next revision after rN that changed or deleted the line,\n"
+#~ " looking forward no further than rM.\n"
+#~ "\n"
+#~ " If specified, REV determines in which revision the target is first\n"
+#~ " looked up.\n"
+#~ "\n"
+#~ " Write the annotated result to standard output.\n"
+#~ msgstr ""
+#~ "Gibt für jede Zeile einer Datei die letzte (oder\n"
+#~ "nächste) Änderung aus.\n"
+#~ "Aufruf: blame [-rM:N] ZIEL[@REV]...\n"
+#~ "\n"
+#~ " Kommentiert jede Zeile einer Datei mit Revisionsnummer und Autor der\n"
+#~ " letzten Änderung (optional der nächsten Änderung) dieser Zeile.\n"
+#~ "\n"
+#~ " Kommentiert ohne angegebenen Revisionsbereich (dann wie -r0:REV),\n"
+#~ " oder mit »-r M:N« mit M < N, jede in Revision N vorhandene Zeile der Datei\n"
+#~ " mit der letzten Revision rN oder davor die diese Zeile änderte oder hinzufügte,\n"
+#~ " und blick dabei nicht weiter als rM zurück.\n"
+#~ "\n"
+#~ " Kommentiert mit einem umgekehrten Revisionsbereich »-rM:N« mit M > N,\n"
+#~ " jede in Revision N vorhandene Zeile der Datei mit der nächsten Revision nach rN\n"
+#~ " die diese Zeile ändert oder entfernt, und blick dabei nicht weiter als rM.\n"
+#~ "\n"
+#~ " Falls angegeben, bestimmt REV, in welcher Revision zuerst nachgeschaut wird.\n"
+#~ "\n"
+#~ " Gibt das kommentierte Ergebnis auf der Standardausgabe aus.\n"
+
+#~ msgid ""
+#~ "Recursively clean up the working copy, removing write locks, resuming\n"
+#~ "unfinished operations, etc.\n"
+#~ "usage: cleanup [WCPATH...]\n"
+#~ "\n"
+#~ " By default, finish any unfinished business in the working copy at WCPATH,\n"
+#~ " and remove write locks (shown as 'L' by the 'svn status' command) from\n"
+#~ " the working copy. Usually, this is only necessary if a Subversion client\n"
+#~ " has crashed while using the working copy, leaving it in an unusable state.\n"
+#~ "\n"
+#~ " WARNING: There is no mechanism that will protect write locks still\n"
+#~ " being used by other Subversion clients. Running this command\n"
+#~ " while another client is using the working copy can corrupt\n"
+#~ " the working copy beyond repair!\n"
+#~ "\n"
+#~ " If the --remove-unversioned option or the --remove-ignored option\n"
+#~ " is given, remove any unversioned or ignored items within WCPATH.\n"
+#~ " To prevent accidental working copy corruption, unversioned or ignored\n"
+#~ " items can only be removed if the working copy is not already locked\n"
+#~ " for writing by another Subversion client.\n"
+#~ " Note that the 'svn status' command shows unversioned items as '?',\n"
+#~ " and ignored items as 'I' if the --no-ignore option is given to it.\n"
+#~ msgstr ""
+#~ "Räumt eine Arbeitskopie rekursiv auf, entfernt Schreibsperren, führt nicht\n"
+#~ "beendete Operationen zu Ende usw.\n"
+#~ "Aufruf: cleanup [AKPFAD...]\n"
+#~ "\n"
+#~ " Ohne weitere Parameter führt der Aufruf unterbrochene Operationen in\n"
+#~ " AKPFAD zu Ende und entfernt Schreibsperren (mit »L« in »svn status«\n"
+#~ " angezeigt). Dies ist allgemein nur notwendig, nachdem ein Subversion-\n"
+#~ " Client abgestürzt ist, während dieser auf die Arbeitskopie zugriff, und so\n"
+#~ " die Arbeitskopie in einem nicht verwendbaren Zustand hinterließ.\n"
+#~ "\n"
+#~ " WARNUNG: Es gibt keinen Mechanismus, der noch verwendete Schreib-\n"
+#~ " sperren anderer Subversion-Clients schützt. Die Ausführung dieses\n"
+#~ " Kommandos während des Zugriffs eines anderen Clients auf die\n"
+#~ " Arbeitskopie kann diese irreparabel beschädigen!\n"
+#~ "\n"
+#~ " Wenn die Optionen --remove-unversioned oder --remove-ignored gegeben\n"
+#~ " sind, werden nicht versionierte bzw. ignorierte Objekte in AKPFAD entfernt.\n"
+#~ " Um unbeabsichtigte Beschädigungen der Arbeitskopie zu vermeiden,\n"
+#~ " können nicht versionierte bzw. ignorierte Objekte nur entfernt werden, wenn\n"
+#~ " die Arbeitskopie nicht schon von einem anderen Subversion-Client zum\n"
+#~ " Schreiben gesperrt wurde.\n"
+#~ " »svn status« zeigt nicht versionierte Objekte als »?« an, sowie ignorierte\n"
+#~ " Objekte mit »I«, wenn die Option --no-ignore verwendet wird.\n"
+
+#~ msgid ""
+#~ "Send changes from your working copy to the repository.\n"
+#~ "usage: commit [PATH...]\n"
+#~ "\n"
+#~ " A log message must be provided, but it can be empty. If it is not\n"
+#~ " given by a --message or --file option, an editor will be started.\n"
+#~ " If any targets are (or contain) locked items, those will be\n"
+#~ " unlocked after a successful commit.\n"
+#~ "\n"
+#~ " If --include-externals is given, also commit file and directory\n"
+#~ " externals reached by recursion. Do not commit externals with a\n"
+#~ " fixed revision.\n"
+#~ msgstr ""
+#~ "Überträgt Änderungen Ihrer Arbeitskopie ins Projektarchiv.\n"
+#~ "Aufruf: commit [PFAD...]\n"
+#~ "\n"
+#~ " Eine Logmeldung muss angegeben werden; diese kann jedoch leer sein.\n"
+#~ " Wird sie nicht mittels einer --message- oder --file-Option übergeben, wird\n"
+#~ " ein Editor gestartet.\n"
+#~ " Falls Objekte gesperrt sind oder gesperrte Objekte enthalten, werden diese\n"
+#~ " nach einer erfolgreichen Ãœbertragung entsperrt.\n"
+#~ "\n"
+#~ " Wenn --include-externals angegeben wird, werden auch Dateien und\n"
+#~ " Verzeichnisse in externen Verweisen übertragen, die durch Rekursion\n"
+#~ " erreicht werden. Ãœbertragen Sie keine externen Verweise mit einer\n"
+#~ " festgelegten Revision.\n"
+
+#~ msgid ""
+#~ "Display local changes or differences between two revisions or paths.\n"
+#~ "usage: 1. diff\n"
+#~ " 2. diff [-c M | -r N[:M]] [TARGET[@REV]...]\n"
+#~ " 3. diff [-r N[:M]] --old=OLD-TGT[@OLDREV] [--new=NEW-TGT[@NEWREV]] \\\n"
+#~ " [PATH...]\n"
+#~ " 4. diff OLD-URL[@OLDREV] NEW-URL[@NEWREV]\n"
+#~ " 5. diff OLD-URL[@OLDREV] NEW-PATH[@NEWREV]\n"
+#~ " 6. diff OLD-PATH[@OLDREV] NEW-URL[@NEWREV]\n"
+#~ "\n"
+#~ " 1. Use just 'svn diff' to display local modifications in a working copy.\n"
+#~ "\n"
+#~ " 2. Display the changes made to TARGETs as they are seen in REV between\n"
+#~ " two revisions. TARGETs may be all working copy paths or all URLs.\n"
+#~ " If TARGETs are working copy paths, N defaults to BASE and M to the\n"
+#~ " working copy; if URLs, N must be specified and M defaults to HEAD.\n"
+#~ " The '-c M' option is equivalent to '-r N:M' where N = M-1.\n"
+#~ " Using '-c -M' does the reverse: '-r M:N' where N = M-1.\n"
+#~ "\n"
+#~ " 3. Display the differences between OLD-TGT as it was seen in OLDREV and\n"
+#~ " NEW-TGT as it was seen in NEWREV. PATHs, if given, are relative to\n"
+#~ " OLD-TGT and NEW-TGT and restrict the output to differences for those\n"
+#~ " paths. OLD-TGT and NEW-TGT may be working copy paths or URL[@REV].\n"
+#~ " NEW-TGT defaults to OLD-TGT if not specified. -r N makes OLDREV default\n"
+#~ " to N, -r N:M makes OLDREV default to N and NEWREV default to M.\n"
+#~ " If OLDREV or NEWREV are not specified, they default to WORKING for\n"
+#~ " working copy targets and to HEAD for URL targets.\n"
+#~ "\n"
+#~ " Either or both OLD-TGT and NEW-TGT may also be paths to unversioned\n"
+#~ " targets. Revisions cannot be specified for unversioned targets.\n"
+#~ " Both targets must be of the same node kind (file or directory).\n"
+#~ " Diffing unversioned targets against URL targets is not supported.\n"
+#~ "\n"
+#~ " 4. Shorthand for 'svn diff --old=OLD-URL[@OLDREV] --new=NEW-URL[@NEWREV]'\n"
+#~ " 5. Shorthand for 'svn diff --old=OLD-URL[@OLDREV] --new=NEW-PATH[@NEWREV]'\n"
+#~ " 6. Shorthand for 'svn diff --old=OLD-PATH[@OLDREV] --new=NEW-URL[@NEWREV]'\n"
+#~ msgstr ""
+#~ "Zeigt lokale Änderungen oder Unterschiede zwischen zwei Revisionen oder Pfaden an.\n"
+#~ "Aufruf: 1. diff\n"
+#~ " 2. diff [-c M | -r N[:M]] [ZIEL[@REV]...]\n"
+#~ " 3. diff [-r N[:M]] --old=ZIEL-ALT[@REVALT] [--new=ZIEL-NEU[@NEWREV]] \\\n"
+#~ " [PFAD...]\n"
+#~ " 4. diff URL-ALT[@REVALT] URL-NEU[@REVNEU]\n"
+#~ " 5. diff URL-ALT[@REVALT] NEW-PATH[@REVNEU]\n"
+#~ " 6. diff PFAD-ALT[@REVALT] URL-NEU[@REVNEU]\n"
+#~ "\n"
+#~ " 1. Verwenden Sie nur »svn diff«, um lokale Änderungen einer Arbeitskopie anzuzeigen.\n"
+#~ "\n"
+#~ " 2. Zeigt die Änderungen an ZIELen, wie sie in REV zwischen zwei Revisionen\n"
+#~ " sichtbar sind. ZIELe können alle Arbeitskopien oder URLs sein.\n"
+#~ "\n"
+#~ " Falls ZIELe Arbeitskopiepfade sind, wird standardmäßig BASE für N und\n"
+#~ " die Version der Arbeitskopie für M verwendet; bei URLs muss N angegeben\n"
+#~ " werden und M entspricht HEAD.\n"
+#~ " Die Option »-c M« ist äquivalent zu »-r N:M«, wobei N = M-1 gilt.\n"
+#~ " Die Verwendung von »-c -M« macht es andersherum: »-r M:N« mit N = M-1.\n"
+#~ "\n"
+#~ " 3. Zeigt die Unterschiede zwischen ZIEL-ALT in REVALT und ZIEL-NEU in REVNEU.\n"
+#~ " Wenn PFADe angegeben werden, sind diese relativ zu ZIEL-ALT und ZIEL-NEU,\n"
+#~ " und die Ausgabe ist auf Unterschiede zwischen diesen Pfaden beschränkt.\n"
+#~ " ZIEL-ALT und ZIEL-NEU können Pfade der Arbeitskopie oder der Art URL[@REV]\n"
+#~ " sein. ZIEL-NEU entspricht ZIEL-ALT, falls es nicht angegeben wurde.\n"
+#~ " -r N setzt REVALT auf N, -r N:M setzt REVALT auf N und REVNEU auf M.\n"
+#~ " Wenn REVALT oder REVNEU nicht angegeben sind, wird für Ziele in Arbeitskopien\n"
+#~ " »WORKING« und für solche in ULRs »HEAD« angenommen.\n"
+#~ "\n"
+#~ " ZIEL-ALT, ZIEL-NEU oder beide dürfen auch Pfade von nicht versionieren Zielen sein.\n"
+#~ " Revisionen können aber für solche Ziele nicht angegeben werden. Beide Ziele\n"
+#~ " müssen vom selben Knotentyp sein (Datei bzw. Verzeichnis). Die Anzeige von\n"
+#~ " Unterschieden zwischen nicht versionierten Zielen und URL-Zielen wird nicht\n"
+#~ " unterstützt.\n"
+#~ "\n"
+#~ " 4. Kurzform für »svn diff --old=URL-ALT[@REVALT] --new=URL-NEU[@REVNEU]«\n"
+#~ " 5. Kurzform für »svn diff --old=URL-ALT[@REVALT] --new=URL-NEU[@REVNEU]«\n"
+#~ " 6. Kurzform für »svn diff --old=URL-ALT[@REVALT] --new=URL-NEU[@REVNEU]«\n"
+
+#~ msgid ""
+#~ "Display information about a local or remote item.\n"
+#~ "usage: info [TARGET[@REV]...]\n"
+#~ "\n"
+#~ " Print information about each TARGET (default: '.').\n"
+#~ " TARGET may be either a working-copy path or URL. If specified, REV\n"
+#~ " determines in which revision the target is first looked up.\n"
+#~ "\n"
+#~ " With --show-item, print only the value of one item of information\n"
+#~ " about TARGET. One of the following items can be selected:\n"
+#~ " kind the kind of TARGET\n"
+#~ " url the URL of TARGET in the repository\n"
+#~ " relative-url the repository-relative URL\n"
+#~ " repos-root-url the repository root URL\n"
+#~ " repos-uuid the repository UUID\n"
+#~ " revision the revision of TARGET (defaults to BASE\n"
+#~ " for working copy paths and HEAD for URLs)\n"
+#~ " last-changed-revision the most recent revision in which TARGET\n"
+#~ " was changed\n"
+#~ " last-changed-date the date of the last-changed revision\n"
+#~ " last-changed-author the author of the last-changed revision\n"
+#~ " wc-root the root of TARGET's working copy"
+#~ msgstr ""
+#~ "Gibt Informationen über ein lokales oder entferntes Element aus.\n"
+#~ "Aufruf: info [ZIEL[@REV]...]\n"
+#~ "\n"
+#~ " Gibt Informationen über jedes ZIEL aus (Vorgabe: ».«).\n"
+#~ " ZIEL kann entweder ein Pfad in einer Arbeitskopie oder eine URL sein. Falls\n"
+#~ " angegeben, bestimmt REV, in welcher Revision zuerst nachgeschaut wird.\n"
+#~ "\n"
+#~ " Gibt mit »--show-item« nur den Wert eines Informationsfeldes von ZIEL aus.\n"
+#~ " Eines dieser Felder kann gewählt werden:\n"
+#~ " kind Art des ZIELs\n"
+#~ " url URL des ZIELs im Projektarchiv\n"
+#~ " relative-url URL relativ zum Projektarchiv\n"
+#~ " repos-root-url Wurzel-URL des Projektarchivs\n"
+#~ " repos-uuid UUID des Projektarchivs\n"
+#~ " revision Die Revision von ZIEL (Immer BASE für\n"
+#~ " Pfade in der Arbeitskopie und HEAD für eine URL)\n"
+#~ " last-changed-revision Letzte Revision in der ZIEL geändert wurde\n"
+#~ " last-changed-date Datum der Revision mit der letzten Änderung\n"
+#~ " last-changed-author Autor der Revision mit der letzten Änderung\n"
+#~ " wc-root Wurzel der Arbeitskopie, die ZIEL enthält"
+
+# FIXME: "looked up" ist überall leicht unterschiedlich übersetzt
+# Ich (Jens) bevorzuge "gesucht" statt "nachgeschlagen" oder "durchsucht", "nachgeschaut"
+# FIXME: Standardsätze sollten eigene msgid haben!
+#~ msgid ""
+#~ "List directory entries in the repository.\n"
+#~ "usage: list [TARGET[@REV]...]\n"
+#~ "\n"
+#~ " List each TARGET file and the contents of each TARGET directory as\n"
+#~ " they exist in the repository. If TARGET is a working copy path, the\n"
+#~ " corresponding repository URL will be used. If specified, REV determines\n"
+#~ " in which revision the target is first looked up.\n"
+#~ "\n"
+#~ " The default TARGET is '.', meaning the repository URL of the current\n"
+#~ " working directory.\n"
+#~ "\n"
+#~ " With --verbose, the following fields will be shown for each item:\n"
+#~ "\n"
+#~ " Revision number of the last commit\n"
+#~ " Author of the last commit\n"
+#~ " If locked, the letter 'O'. (Use 'svn info URL' to see details)\n"
+#~ " Size (in bytes)\n"
+#~ " Date and time of the last commit\n"
+#~ msgstr ""
+#~ "Zeigt Verzeichniseinträge im Projektarchiv.\n"
+#~ "Aufruf: list [ZIEL[@REV]...]\n"
+#~ "\n"
+#~ " Listet jede ZIEL-Datei und die Inhalte jedes ZIEL-Verzeichnisses, wie\n"
+#~ " sie im Projektarchiv existieren, auf. Wenn ZIEL ein Arbeitskopiepfad ist,\n"
+#~ " wird die entsprechende URL des Projektarchivs verwendet. REV bestimmt,\n"
+#~ " in welcher Revision zuerst nachgeschaut wird.\n"
+#~ "\n"
+#~ " Die Vorgabe für ZIEL ist ».«, d.h. die URL vom Projektarchiv des\n"
+#~ " aktuellen Verzeichnisses.\n"
+#~ "\n"
+#~ " Mit »--verbose« werden die folgenden Felder pro Objekt angezeigt:\n"
+#~ "\n"
+#~ " Revisionsnummer der letzten Ãœbertragung\n"
+#~ " Autor der letzten Ãœbertragung\n"
+#~ " Falls gesperrt, der Buchstabe »O« (»svn info URL« für Details)\n"
+#~ " Größe (in Bytes)\n"
+#~ " Datum und Zeit der letzten Ãœbertragung\n"
+
+#~ msgid ""
+#~ "Show the log messages for a set of revision(s) and/or path(s).\n"
+#~ "usage: 1. log [PATH][@REV]\n"
+#~ " 2. log URL[@REV] [PATH...]\n"
+#~ "\n"
+#~ " 1. Print the log messages for the URL corresponding to PATH\n"
+#~ " (default: '.'). If specified, REV is the revision in which the\n"
+#~ " URL is first looked up, and the default revision range is REV:1.\n"
+#~ " If REV is not specified, the default revision range is BASE:1,\n"
+#~ " since the URL might not exist in the HEAD revision.\n"
+#~ "\n"
+#~ " 2. Print the log messages for the PATHs (default: '.') under URL.\n"
+#~ " If specified, REV is the revision in which the URL is first\n"
+#~ " looked up, and the default revision range is REV:1; otherwise,\n"
+#~ " the URL is looked up in HEAD, and the default revision range is\n"
+#~ " HEAD:1.\n"
+#~ "\n"
+#~ " Multiple '-c' or '-r' options may be specified (but not a\n"
+#~ " combination of '-c' and '-r' options), and mixing of forward and\n"
+#~ " reverse ranges is allowed.\n"
+#~ "\n"
+#~ " With -v, also print all affected paths with each log message.\n"
+#~ " With -q, don't print the log message body itself (note that this is\n"
+#~ " compatible with -v).\n"
+#~ "\n"
+#~ " Each log message is printed just once, even if more than one of the\n"
+#~ " affected paths for that revision were explicitly requested. Logs\n"
+#~ " follow copy history by default. Use --stop-on-copy to disable this\n"
+#~ " behavior, which can be useful for determining branchpoints.\n"
+#~ "\n"
+#~ " The --depth option is only valid in combination with the --diff option\n"
+#~ " and limits the scope of the displayed diff to the specified depth.\n"
+#~ "\n"
+#~ " If the --search option is used, log messages are displayed only if the\n"
+#~ " provided search pattern matches any of the author, date, log message\n"
+#~ " text (unless --quiet is used), or, if the --verbose option is also\n"
+#~ " provided, a changed path.\n"
+#~ " The search pattern may include \"glob syntax\" wildcards:\n"
+#~ " ? matches any single character\n"
+#~ " * matches a sequence of arbitrary characters\n"
+#~ " [abc] matches any of the characters listed inside the brackets\n"
+#~ " If multiple --search options are provided, a log message is shown if\n"
+#~ " it matches any of the provided search patterns. If the --search-and\n"
+#~ " option is used, that option's argument is combined with the pattern\n"
+#~ " from the previous --search or --search-and option, and a log message\n"
+#~ " is shown only if it matches the combined search pattern.\n"
+#~ " If --limit is used in combination with --search, --limit restricts the\n"
+#~ " number of log messages searched, rather than restricting the output\n"
+#~ " to a particular number of matching log messages.\n"
+#~ "\n"
+#~ " Examples:\n"
+#~ "\n"
+#~ " Show the latest 5 log messages for the current working copy\n"
+#~ " directory and display paths changed in each commit:\n"
+#~ " svn log -l 5 -v\n"
+#~ "\n"
+#~ " Show the log for bar.c as of revision 42:\n"
+#~ " svn log bar.c@42\n"
+#~ "\n"
+#~ " Show log messages and diffs for each commit to foo.c:\n"
+#~ " svn log --diff http://www.example.com/repo/project/foo.c\n"
+#~ " (Because the above command uses a full URL it does not require\n"
+#~ " a working copy.)\n"
+#~ "\n"
+#~ " Show log messages for the children foo.c and bar.c of the directory\n"
+#~ " '/trunk' as it appeared in revision 50, using the ^/ URL shortcut:\n"
+#~ " svn log ^/trunk@50 foo.c bar.c\n"
+#~ "\n"
+#~ " Show the log messages for any incoming changes to foo.c during the\n"
+#~ " next 'svn update':\n"
+#~ " svn log -r BASE:HEAD foo.c\n"
+#~ "\n"
+#~ " Show the log message for the revision in which /branches/foo\n"
+#~ " was created:\n"
+#~ " svn log --stop-on-copy --limit 1 -r0:HEAD ^/branches/foo\n"
+#~ msgstr ""
+#~ "Zeigt die Logmeldungen für eine Menge von Revisionen und/oder Dateien.\n"
+#~ "Aufruf: 1. log [PFAD][@REV]\n"
+#~ " 2. log URL[@REV] [PFAD...]\n"
+#~ "\n"
+#~ " 1. Gibt Log-Einträge der zu PFAD gehörenden URL aus. (Vorgabe: ».«)\n"
+#~ " Ist REV angegeben, ist das die Revision in der URL zuerst gesucht\n"
+#~ " Ist REV angegeben, ist das die Revision in der URL zuerst gesucht\n"
+#~ " wird, und der vorgegebene Versionsbereich ist REV:1. Ist REV nicht\n"
+#~ " angegeben, so ist der vorgegebene Revisionsbereich BASE:1, da die\n"
+#~ " URL möglicherweise in der Revision HEAD nicht existiert.\n"
+#~ "\n"
+#~ " 2. Gibt Log-Einträge für PFAD(e) unter URL aus, (Vorgabe: ».«)\n"
+#~ " Ist REV angegeben, ist das die Revision in der URL zuerst gesucht\n"
+#~ " wird, und der vorgegebene Versionsbereich ist REV:1. Andernfalls wird\n"
+#~ " URL in HEAD gesucht und der vorgegebene Revisionsbereich ist\n"
+#~ " HEAD:1.\n"
+#~ "\n"
+#~ " Mehrere »-c«- oder »-r«-Optionen dürfen angegeben werden (aber keine\n"
+#~ " Kombination von »-c« und »-r«) und das Mischen von vor- und\n"
+#~ " rückwärtigen Bereichen ist erlaubt.\n"
+#~ "\n"
+#~ " Mit »-v« werden auch die betroffenen Pfade mit jeder Logmeldung ausgegeben.\n"
+#~ " Mit »-q« wird die Logmeldung selbst nicht ausgegeben (Hinweis: Diese Option\n"
+#~ " ist kompatibel mit »-v«).\n"
+#~ "\n"
+#~ " Jede Logmeldung wird nur einmal ausgegeben, selbst wenn mehr als einer\n"
+#~ " der betroffenen Pfade explizit angefragt wurde. Logs folgen per Vorgabe\n"
+#~ " der Historie von Kopien. Benutzen Sie »--stop-on-copy«, um dieses Verhalten,\n"
+#~ " z.B. zum Auffinden von Verzweigungen, zu deaktivieren.\n"
+#~ "\n"
+#~ " Die Option »--depth« ist nur in Verbindung mit der Option »--diff« gültig\n"
+#~ " und begrenzt den Umfang der ausgegebenen Unterschiede auf die\n"
+#~ " angegebene Tiefe.\n"
+#~ "\n"
+#~ " Wenn die Option »--search« verwendet wird, werden Logmeldungen nur\n"
+#~ " angezeigt, wenn sie dem Suchmuster in den Feldern Autor, Datum oder\n"
+#~ " Meldung (nur ohne »--quiet«), oder, falls »--verbose« angegeben ist,\n"
+#~ " zusätzlich mit einem geänderten Pfad.\n"
+#~ " Das Suchmuster darf folgende Platzhalter enthalten:\n"
+#~ " ? entspricht einem einzelnen beliebigen Zeichen\n"
+#~ " * entspricht einer Folge beliebiger Zeichen\n"
+#~ " [abc] entspricht einem beliebigem Zeichen der Liste in den Klammern\n"
+#~ " Werden mehrere »--search« Optionen angegeben, wird die Logmeldung\n"
+#~ " ausgegeben, wenn eine einziges Suchmuster passt. Mit »--search-and«\n"
+#~ " wird das angegebene Argument mit dem vorangehenden »--search« oder\n"
+#~ " »--search-and« Optionen kombiniert und nur Logmeldungen ausgegeben\n"
+#~ " die auf das kombinierte Suchmuster passen.\n"
+#~ " Wenn »--limit« in Verbindgung mit »--search« verwendet wird, begrenzt es\n"
+#~ " die Anzahl der durchsuchten Logmeldungen, nicht notwendigerweise die\n"
+#~ " der ausgegebenen.\n"
+#~ "\n"
+#~ " Beispiele:\n"
+#~ " Ausgabe der letzten 5 Logmeldungen für das Arbeitsverzeichnis in der\n"
+#~ " Arbeitkopie, mit Ausgabe der geänderten Pfade: svn log -l 5 -v\n"
+#~ "\n"
+#~ " Ausgabe des Logs für datei.c mit Revision 42:\n"
+#~ " svn log datei.c@42\n"
+#~ "\n"
+#~ " Ausgabe der Logmeldungen und Unterschiede für jede Übertragung\n"
+#~ " von datei.c:\n"
+#~ " svn log --diff http://www.example.com/repo/projekt/datei.c\n"
+#~ " (Da der Befehl die URL angibt, ist keine Arbeitskopie notwendig.)\n"
+#~ "\n"
+#~ " Ausgabe der Logmeldungen für die Dateien datei.c and programm.c\n"
+#~ " im Verzeichnis »/trunk«, wie es in Revision 50 erschien, mit der\n"
+#~ " Kurzform »^/« für die URL:\n"
+#~ " svn log ^/trunk@50 datei.c programm.c\n"
+#~ "\n"
+#~ " Ausgabe der Logmeldungen für Änderungen an datei.c, die bei der\n"
+#~ " nächsten Ausführung von »svn update« empfangen werden: svn log -r BASE:HEAD datei.c\n"
+#~ "\n"
+#~ " Ausgabe der Logmeldung für die Revision die »/branches/zweig» erzeugte:\n"
+#~ " svn log --stop-on-copy --limit 1 -r0:HEAD ^/branches/zweig\n"
+
+#~ msgid ""
+#~ "Merge changes into a working copy.\n"
+#~ "usage: 1. merge SOURCE[@REV] [TARGET_WCPATH]\n"
+#~ " (the 'complete' merge)\n"
+#~ " 2. merge [-c M[,N...] | -r N:M ...] SOURCE[@REV] [TARGET_WCPATH]\n"
+#~ " (the 'cherry-pick' merge)\n"
+#~ " 3. merge SOURCE1[@REV1] SOURCE2[@REV2] [TARGET_WCPATH]\n"
+#~ " (the '2-URL' merge)\n"
+#~ "\n"
+#~ " 1. This form, with one source path and no revision range, is called\n"
+#~ " a 'complete' merge:\n"
+#~ "\n"
+#~ " svn merge SOURCE[@REV] [TARGET_WCPATH]\n"
+#~ "\n"
+#~ " The complete merge is used for the 'sync' and 'reintegrate' merges\n"
+#~ " in the 'feature branch' pattern described below. It finds all the\n"
+#~ " changes on the source branch that have not already been merged to the\n"
+#~ " target branch, and merges them into the working copy. Merge tracking\n"
+#~ " is used to know which changes have already been merged.\n"
+#~ "\n"
+#~ " SOURCE specifies the branch from where the changes will be pulled, and\n"
+#~ " TARGET_WCPATH specifies a working copy of the target branch to which\n"
+#~ " the changes will be applied. Normally SOURCE and TARGET_WCPATH should\n"
+#~ " each correspond to the root of a branch. (If you want to merge only a\n"
+#~ " subtree, then the subtree path must be included in both SOURCE and\n"
+#~ " TARGET_WCPATH; this is discouraged, to avoid subtree mergeinfo.)\n"
+#~ "\n"
+#~ " SOURCE is usually a URL. The optional '@REV' specifies both the peg\n"
+#~ " revision of the URL and the latest revision that will be considered\n"
+#~ " for merging; if REV is not specified, the HEAD revision is assumed. If\n"
+#~ " SOURCE is a working copy path, the corresponding URL of the path is\n"
+#~ " used, and the default value of 'REV' is the base revision (usually the\n"
+#~ " revision last updated to).\n"
+#~ "\n"
+#~ " TARGET_WCPATH is a working copy path; if omitted, '.' is generally\n"
+#~ " assumed. There are some special cases:\n"
+#~ "\n"
+#~ " - If SOURCE is a URL:\n"
+#~ "\n"
+#~ " - If the basename of the URL and the basename of '.' are the\n"
+#~ " same, then the differences are applied to '.'. Otherwise,\n"
+#~ " if a file with the same basename as that of the URL is found\n"
+#~ " within '.', then the differences are applied to that file.\n"
+#~ " In all other cases, the target defaults to '.'.\n"
+#~ "\n"
+#~ " - If SOURCE is a working copy path:\n"
+#~ "\n"
+#~ " - If the source is a file, then differences are applied to that\n"
+#~ " file (useful for reverse-merging earlier changes). Otherwise,\n"
+#~ " if the source is a directory, then the target defaults to '.'.\n"
+#~ "\n"
+#~ " In normal usage the working copy should be up to date, at a single\n"
+#~ " revision, with no local modifications and no switched subtrees.\n"
+#~ "\n"
+#~ " - The 'Feature Branch' Merging Pattern -\n"
+#~ "\n"
+#~ " In this commonly used work flow, known also as the 'development\n"
+#~ " branch' pattern, a developer creates a branch and commits a series of\n"
+#~ " changes that implement a new feature. The developer periodically\n"
+#~ " merges all the latest changes from the parent branch so as to keep the\n"
+#~ " development branch up to date with those changes. When the feature is\n"
+#~ " complete, the developer performs a merge from the feature branch to\n"
+#~ " the parent branch to re-integrate the changes.\n"
+#~ "\n"
+#~ " parent --+----------o------o-o-------------o--\n"
+#~ " \\ \\ \\ /\n"
+#~ " \\ merge merge merge\n"
+#~ " \\ \\ \\ /\n"
+#~ " feature +--o-o-------o----o-o----o-------\n"
+#~ "\n"
+#~ " A merge from the parent branch to the feature branch is called a\n"
+#~ " 'sync' or 'catch-up' merge, and a merge from the feature branch to the\n"
+#~ " parent branch is called a 'reintegrate' merge.\n"
+#~ "\n"
+#~ " - Sync Merge Example -\n"
+#~ " ............\n"
+#~ " . .\n"
+#~ " trunk --+------------L--------------R------\n"
+#~ " \\ \\\n"
+#~ " \\ |\n"
+#~ " \\ v\n"
+#~ " feature +------------------------o-----\n"
+#~ " r100 r200\n"
+#~ "\n"
+#~ " Subversion will locate all the changes on 'trunk' that have not yet\n"
+#~ " been merged into the 'feature' branch. In this case that is a single\n"
+#~ " range, r100:200. In the diagram above, L marks the left side (trunk@100)\n"
+#~ " and R marks the right side (trunk@200) of the merge source. The\n"
+#~ " difference between L and R will be applied to the target working copy\n"
+#~ " path. In this case, the working copy is a clean checkout of the entire\n"
+#~ " 'feature' branch.\n"
+#~ "\n"
+#~ " To perform this sync merge, have a clean working copy of the feature\n"
+#~ " branch and run the following command in its top-level directory:\n"
+#~ "\n"
+#~ " svn merge ^/trunk\n"
+#~ "\n"
+#~ " Note that the merge is now only in your local working copy and still\n"
+#~ " needs to be committed to the repository so that it can be seen by\n"
+#~ " others. You can review the changes and you may have to resolve\n"
+#~ " conflicts before you commit the merge.\n"
+#~ "\n"
+#~ " - Reintegrate Merge Example -\n"
+#~ "\n"
+#~ " The feature branch was last synced with trunk up to revision X. So the\n"
+#~ " difference between trunk@X and feature@HEAD contains the complete set\n"
+#~ " of changes that implement the feature, and no other changes. These\n"
+#~ " changes are applied to trunk.\n"
+#~ "\n"
+#~ " rW rX\n"
+#~ " trunk ------+--------------------L------------------o\n"
+#~ " \\ . ^\n"
+#~ " \\ ............. /\n"
+#~ " \\ . /\n"
+#~ " feature +--------------------------------R\n"
+#~ "\n"
+#~ " In the diagram above, L marks the left side (trunk@X) and R marks the\n"
+#~ " right side (feature@HEAD) of the merge. The difference between the\n"
+#~ " left and right side is merged into trunk, the target.\n"
+#~ "\n"
+#~ " To perform the merge, have a clean working copy of trunk and run the\n"
+#~ " following command in its top-level directory:\n"
+#~ "\n"
+#~ " svn merge ^/feature\n"
+#~ "\n"
+#~ " To prevent unnecessary merge conflicts, a reintegrate merge requires\n"
+#~ " that TARGET_WCPATH is not a mixed-revision working copy, has no local\n"
+#~ " modifications, and has no switched subtrees.\n"
+#~ "\n"
+#~ " A reintegrate merge also requires that the source branch is coherently\n"
+#~ " synced with the target -- in the above example, this means that all\n"
+#~ " revisions between the branch point W and the last merged revision X\n"
+#~ " are merged to the feature branch, so that there are no unmerged\n"
+#~ " revisions in-between.\n"
+#~ "\n"
+#~ "\n"
+#~ " 2. This form is called a 'cherry-pick' merge:\n"
+#~ "\n"
+#~ " svn merge [-c M[,N...] | -r N:M ...] SOURCE[@REV] [TARGET_WCPATH]\n"
+#~ "\n"
+#~ " A cherry-pick merge is used to merge specific revisions (or revision\n"
+#~ " ranges) from one branch to another. By default, this uses merge\n"
+#~ " tracking to automatically skip any revisions that have already been\n"
+#~ " merged to the target; you can use the --ignore-ancestry option to\n"
+#~ " disable such skipping.\n"
+#~ "\n"
+#~ " SOURCE is usually a URL. The optional '@REV' specifies only the peg\n"
+#~ " revision of the URL and does not affect the merge range; if REV is not\n"
+#~ " specified, the HEAD revision is assumed. If SOURCE is a working copy\n"
+#~ " path, the corresponding URL of the path is used, and the default value\n"
+#~ " of 'REV' is the base revision (usually the revision last updated to).\n"
+#~ "\n"
+#~ " TARGET_WCPATH is a working copy path; if omitted, '.' is generally\n"
+#~ " assumed. The special cases noted above in the 'complete' merge form\n"
+#~ " also apply here.\n"
+#~ "\n"
+#~ " The revision ranges to be merged are specified by the '-r' and/or '-c'\n"
+#~ " options. '-r N:M' refers to the difference in the history of the\n"
+#~ " source branch between revisions N and M. You can use '-c M' to merge\n"
+#~ " single revisions: '-c M' is equivalent to '-r <M-1>:M'. Each such\n"
+#~ " difference is applied to TARGET_WCPATH.\n"
+#~ "\n"
+#~ " If the mergeinfo in TARGET_WCPATH indicates that revisions within the\n"
+#~ " range were already merged, changes made in those revisions are not\n"
+#~ " merged again. If needed, the range is broken into multiple sub-ranges,\n"
+#~ " and each sub-range is merged separately.\n"
+#~ "\n"
+#~ " A 'reverse range' can be used to undo changes. For example, when\n"
+#~ " source and target refer to the same branch, a previously committed\n"
+#~ " revision can be 'undone'. In a reverse range, N is greater than M in\n"
+#~ " '-r N:M', or the '-c' option is used with a negative number: '-c -M'\n"
+#~ " is equivalent to '-r M:<M-1>'. Undoing changes like this is also known\n"
+#~ " as performing a 'reverse merge'.\n"
+#~ "\n"
+#~ " Multiple '-c' and/or '-r' options may be specified and mixing of\n"
+#~ " forward and reverse ranges is allowed.\n"
+#~ "\n"
+#~ " - Cherry-pick Merge Example -\n"
+#~ "\n"
+#~ " A bug has been fixed on trunk in revision 50. This fix needs to\n"
+#~ " be merged from trunk onto the release branch.\n"
+#~ "\n"
+#~ " 1.x-release +-----------------------o-----\n"
+#~ " / ^\n"
+#~ " / |\n"
+#~ " / |\n"
+#~ " trunk ------+--------------------------LR-----\n"
+#~ " r50\n"
+#~ "\n"
+#~ " In the above diagram, L marks the left side (trunk@49) and R marks the\n"
+#~ " right side (trunk@50) of the merge. The difference between the left\n"
+#~ " and right side is applied to the target working copy path.\n"
+#~ "\n"
+#~ " Note that the difference between revision 49 and 50 is exactly those\n"
+#~ " changes that were committed in revision 50, not including changes\n"
+#~ " committed in revision 49.\n"
+#~ "\n"
+#~ " To perform the merge, have a clean working copy of the release branch\n"
+#~ " and run the following command in its top-level directory; remember\n"
+#~ " that the default target is '.':\n"
+#~ "\n"
+#~ " svn merge -c50 ^/trunk\n"
+#~ "\n"
+#~ " You can also cherry-pick several revisions and/or revision ranges:\n"
+#~ "\n"
+#~ " svn merge -c50,54,60 -r65:68 ^/trunk\n"
+#~ "\n"
+#~ "\n"
+#~ " 3. This form is called a '2-URL merge':\n"
+#~ "\n"
+#~ " svn merge SOURCE1[@REV1] SOURCE2[@REV2] [TARGET_WCPATH]\n"
+#~ "\n"
+#~ " You should use this merge variant only if the other variants do not\n"
+#~ " apply to your situation, as this variant can be quite complex to\n"
+#~ " master.\n"
+#~ "\n"
+#~ " Two source URLs are specified, identifying two trees on the same\n"
+#~ " branch or on different branches. The trees are compared and the\n"
+#~ " difference from SOURCE1@REV1 to SOURCE2@REV2 is applied to the\n"
+#~ " working copy of the target branch at TARGET_WCPATH. The target\n"
+#~ " branch may be the same as one or both sources, or different again.\n"
+#~ " The three branches involved can be completely unrelated.\n"
+#~ "\n"
+#~ " TARGET_WCPATH is a working copy path; if omitted, '.' is generally\n"
+#~ " assumed. The special cases noted above in the 'complete' merge form\n"
+#~ " also apply here.\n"
+#~ "\n"
+#~ " SOURCE1 and/or SOURCE2 can also be specified as a working copy path,\n"
+#~ " in which case the merge source URL is derived from the working copy.\n"
+#~ "\n"
+#~ " - 2-URL Merge Example -\n"
+#~ "\n"
+#~ " Two features have been developed on separate branches called 'foo' and\n"
+#~ " 'bar'. It has since become clear that 'bar' should be combined with\n"
+#~ " the 'foo' branch for further development before reintegration.\n"
+#~ "\n"
+#~ " Although both feature branches originate from trunk, they are not\n"
+#~ " directly related -- one is not a direct copy of the other. A 2-URL\n"
+#~ " merge is necessary.\n"
+#~ "\n"
+#~ " The 'bar' branch has been synced with trunk up to revision 500.\n"
+#~ " (If this revision number is not known, it can be located using the\n"
+#~ " 'svn log' and/or 'svn mergeinfo' commands.)\n"
+#~ " The difference between trunk@500 and bar@HEAD contains the complete\n"
+#~ " set of changes related to feature 'bar', and no other changes. These\n"
+#~ " changes are applied to the 'foo' branch.\n"
+#~ "\n"
+#~ " foo +-----------------------------------o\n"
+#~ " / ^\n"
+#~ " / /\n"
+#~ " / r500 /\n"
+#~ " trunk ------+------+-----------------L---------> /\n"
+#~ " \\ . /\n"
+#~ " \\ ............ /\n"
+#~ " \\ . /\n"
+#~ " bar +-----------------------------------R\n"
+#~ "\n"
+#~ " In the diagram above, L marks the left side (trunk@500) and R marks\n"
+#~ " the right side (bar@HEAD) of the merge. The difference between the\n"
+#~ " left and right side is applied to the target working copy path, in\n"
+#~ " this case a working copy of the 'foo' branch.\n"
+#~ "\n"
+#~ " To perform the merge, have a clean working copy of the 'foo' branch\n"
+#~ " and run the following command in its top-level directory:\n"
+#~ "\n"
+#~ " svn merge ^/trunk@500 ^/bar\n"
+#~ "\n"
+#~ " The exact changes applied by a 2-URL merge can be previewed with svn's\n"
+#~ " diff command, which is a good idea to verify if you do not have the\n"
+#~ " luxury of a clean working copy to merge to. In this case:\n"
+#~ "\n"
+#~ " svn diff ^/trunk@500 ^/bar@HEAD\n"
+#~ "\n"
+#~ "\n"
+#~ " The following applies to all types of merges:\n"
+#~ "\n"
+#~ " To prevent unnecessary merge conflicts, svn merge requires that\n"
+#~ " TARGET_WCPATH is not a mixed-revision working copy. Running 'svn update'\n"
+#~ " before starting a merge ensures that all items in the working copy are\n"
+#~ " based on the same revision.\n"
+#~ "\n"
+#~ " If possible, you should have no local modifications in the merge's target\n"
+#~ " working copy prior to the merge, to keep things simpler. It will be\n"
+#~ " easier to revert the merge and to understand the branch's history.\n"
+#~ "\n"
+#~ " Switched sub-paths should also be avoided during merging, as they may\n"
+#~ " cause incomplete merges and create subtree mergeinfo.\n"
+#~ "\n"
+#~ " For each merged item a line will be printed with characters reporting the\n"
+#~ " action taken. These characters have the following meaning:\n"
+#~ "\n"
+#~ " A Added\n"
+#~ " D Deleted\n"
+#~ " U Updated\n"
+#~ " C Conflict\n"
+#~ " G Merged\n"
+#~ " E Existed\n"
+#~ " R Replaced\n"
+#~ "\n"
+#~ " Characters in the first column report about the item itself.\n"
+#~ " Characters in the second column report about properties of the item.\n"
+#~ " A 'C' in the third column indicates a tree conflict, while a 'C' in\n"
+#~ " the first and second columns indicate textual conflicts in files\n"
+#~ " and in property values, respectively.\n"
+#~ "\n"
+#~ " - Merge Tracking -\n"
+#~ "\n"
+#~ " Subversion uses the svn:mergeinfo property to track merge history. This\n"
+#~ " property is considered at the start of a merge to determine what to merge\n"
+#~ " and it is updated at the conclusion of the merge to describe the merge\n"
+#~ " that took place. Mergeinfo is used only if the two sources are on the\n"
+#~ " same line of history -- if the first source is an ancestor of the second,\n"
+#~ " or vice-versa (i.e. if one has originally been created by copying the\n"
+#~ " other). This is verified and enforced when using sync merges and\n"
+#~ " reintegrate merges.\n"
+#~ "\n"
+#~ " The --ignore-ancestry option prevents merge tracking and thus ignores\n"
+#~ " mergeinfo, neither considering it nor recording it.\n"
+#~ "\n"
+#~ " - Merging from foreign repositories -\n"
+#~ "\n"
+#~ " Subversion does support merging from foreign repositories.\n"
+#~ " While all merge source URLs must point to the same repository, the merge\n"
+#~ " target working copy may come from a different repository than the source.\n"
+#~ " However, there are some caveats. Most notably, copies made in the\n"
+#~ " merge source will be transformed into plain additions in the merge\n"
+#~ " target. Also, merge-tracking is not supported for merges from foreign\n"
+#~ " repositories.\n"
+#~ msgstr ""
+#~ "Führt Änderungen aus dem Projektarchiv in einer Arbeitskopie zusammen.\n"
+#~ "Aufruf: 1. merge QUELLE[@REV] [ZIEL_AKPfad]\n"
+#~ " (»vollständige« Zusammenführung)\n"
+#~ " 2. merge [-c M[,N...] | -r N:M ...] QUELLE[@REV] [ZIEL_AKPfad]\n"
+#~ " (Zusammenführung einzelner ausgewählter Änderungen)\n"
+#~ " 3. merge QUELLE1[@REV1] QUELLE2[@REV2] [ZIEL_AKPfad]\n"
+#~ " (Zusammenführung der Unterschiede zweier URLs)\n"
+#~ "\n"
+#~ " 1. Diese Form, mit einem Quellpfad und keinem Revisionsbereich wird\n"
+#~ " »vollständige« Zusammenführung genannt:\n"
+#~ "\n"
+#~ " svn merge QUELLE[@REV] [ZIEL_AKPfad]\n"
+#~ "\n"
+#~ " Die vollständige Zusammenführung wird für die Synchronisation und\n"
+#~ " die Reintegration von Zweigen (nach dem Muster »Feature Branch«,\n"
+#~ " s.u.) verwendet. Sie findet alle Änderungen in einem Quellpfad, die\n"
+#~ " noch nicht in das Ziel eingebracht wurden, und führt sie mit\n"
+#~ " Arbeitskopie zusammen. Die Zusammenführungsverfolgung wird für die\n"
+#~ " Erkennung schon eingebrachter Änderungen verwendet.\n"
+#~ "\n"
+#~ " QUELLE ist der Zweig von dem die Änderungen geholt werden, und\n"
+#~ " ZIEL_AKPfad eine Arbeitskopie des Zielzweigs, auf die die Änderungen\n"
+#~ " angewendet werden. Normalerweise sollten QUELLE und ZIEL_AKPfad\n"
+#~ " auf das Wurzelverzeichnis eines Zweigs zeigen. (Wenn nur ein\n"
+#~ " Unterbaum zusammengeführt werden soll, muss sein Pfad sowohl in\n"
+#~ " QUELLE als auch in ZIEL_AKPfad enthalten sein; Dies ist nicht\n"
+#~ " empfohlen, um Zusammenführungsinformationen auf Unterbäumen zu\n"
+#~ " vermeiden.)\n"
+#~ "\n"
+#~ " QUELLE ist im Normalfall eine URL. Die optionale Angabe von »@REV«\n"
+#~ " gibt sowohl die Fix-Revision zum Auffinden des Pfades als auch die\n"
+#~ " letzte Revision an, die für die Zusammenführung in Betracht\n"
+#~ " gezogen wird. Ist REV nicht angegeben, wird »HEAD« angenommen. Ist\n"
+#~ " QUELLE der Pfad einer Arbeitskopie, wird die damit zusammenhängende\n"
+#~ " URL verwendet. Die Basisversion der Arbeitskopie wird dann als REV\n"
+#~ " verwendet, dies ist meist die letzte Revision, auf die die\n"
+#~ " Arbeitskopie aktualisiert wurde.\n"
+#~ "\n"
+#~ " ZIEL_AKPfad ist ein Arbeitskopiepfad; Fehlt die Angabe, wird\n"
+#~ " allgemein das aktuelle Arbeitsverzeichnis ».« angenommen. Es gibt\n"
+#~ " folgende Sonderfälle:\n"
+#~ "\n"
+#~ " - wenn QUELLE eine URL ist:\n"
+#~ "\n"
+#~ " - Sind der Basisname der URL und er Basisname von ».« gleich\n"
+#~ " so werden die Unterschiede auf ».« angewandt. Andernfalls,\n"
+#~ " falls eine Datei mit dem gleichen Basisnamen die jeder der\n"
+#~ " URL in ».« vorhanden ist, werden die Unterschiede auf diese\n"
+#~ " Datei angewandt. In allen anderen Fällen wird als Ziel ».«\n"
+#~ " verwendet.\n"
+#~ "\n"
+#~ " - wenn QUELLE ein Arbeitskopiepfad ist:\n"
+#~ "\n"
+#~ " - Wenn QUELLE eine Datei ist, werden die Unterschiede auf\n"
+#~ " diese Datei angewandt (Hilfreich beim rückwärtigen\n"
+#~ " Zusammenführen früherer Änderungen). Andernfalls, wenn es\n"
+#~ " sich um ein Verzeichnis handelt, wird als Ziel ».«\n"
+#~ " verwendet.\n"
+#~ "\n"
+#~ " Im Normalgebrauch ist die Arbeitskopie auf dem neuesten Stand, auf\n"
+#~ " einer einzigen Revision, ohne lokale Änderungen und ohne umgestellte\n"
+#~ " Unterbäume.\n"
+#~ "\n"
+#~ " - Muster »Feature Branch« für Zusammenführungen von Codezweigen -\n"
+#~ "\n"
+#~ " In diesem sehr gebräuchlichen, auch »Entwicklungszweige« genannten\n"
+#~ " Arbeitsschema, erzeugt ein Entwickler einen Zweig und überträgt eine\n"
+#~ " Zahl von Revisionen für die Umsetzung einer neuen Funktion. Der\n"
+#~ " Entwickler führt regelmäßig Änderungen des Übergeordneten Zweiges\n"
+#~ " zusammen, um seinen Entwicklungszweig mit diesen Änderungen aktuell\n"
+#~ " zu halten. Wenn die neue Funktion fertiggestellt ist, führt der\n"
+#~ " Entwickler eine Zusammenführung vom Entwicklungszweig in den\n"
+#~ " übergeordneten Zweig zur Reintegration der Änderungen aus.\n"
+#~ "\n"
+#~ " Haupt- --+----------o------o-o-------------o------\n"
+#~ " zweig \\ \\ \\ /\n"
+#~ " \\ Zusammenf. Zusammenf. Zusammenf.\n"
+#~ " \\ \\ \\ /\n"
+#~ " Entwicklungs- +--o-o-------o----o-o----o-----------\n"
+#~ " zweig\n"
+#~ "\n"
+#~ " Eine Zusammenführung vom einem übergeordneten Zweig in einen\n"
+#~ " Entwicklungszweig wird als »sync« (Synchronisation) oder »catch-up«\n"
+#~ " (Aufholen) bezeichnet. Eine Zusammenführung vom Entwicklungszweig in\n"
+#~ " den übergeordneten Zweig dagegen »reintegrate« (Reintegration).\n"
+#~ "\n"
+#~ " - Beispiel für Zusammenführung zur Synchronisation -\n"
+#~ " ............\n"
+#~ " . .\n"
+#~ " trunk --+------------L--------------R------\n"
+#~ " \\ \\\n"
+#~ " \\ |\n"
+#~ " \\ v\n"
+#~ " feature +------------------------o-----\n"
+#~ " r100 r200\n"
+#~ "\n"
+#~ " Subversion wird alle Änderungen in »trunk« ermitteln, die noch nicht\n"
+#~ " in den Entwicklungszweig »feature« zusammengeführt wurden. In diesem\n"
+#~ " Fall ist es ein einziger Revisionsbereich, r100:200. Im Diagramm oben\n"
+#~ " markiert »L« die linke Seite (trunk@100), während »R« die rechte Seite\n"
+#~ " (trunk@200) anzeigt. Der Unterschied zwischen »L« und »R« wird auf den\n"
+#~ " Zielpfad in einer Arbeitskopie angewandt. In diesem Beispiel ist dies\n"
+#~ " eine Arbeitskopie des gesamten Entwicklungszweigs ohne lokale\n"
+#~ " Änderungen.\n"
+#~ "\n"
+#~ " Um die Zusammenführung zur Synchronisation auszuführen, verwenden Sie\n"
+#~ " eine Arbeitskopie des Entwicklungszweigs und führen Sie dieses\n"
+#~ " Kommando im obersten Verzeichnis aus:\n"
+#~ "\n"
+#~ " svn merge ^/trunk\n"
+#~ "\n"
+#~ " Beachten Sie, dass sich die Änderungen dieser Zusammenführung dann\n"
+#~ " nur in Ihrer Arbeitskopie befinden und noch in das Projektarchiv\n"
+#~ " übertragen werden müssen, damit sie von anderen Benutzern gesehen\n"
+#~ " werden können. Sie können die Änderungen überprüfen und müssen\n"
+#~ " aufgetretene Konflikte auflösen, bevor Sie die Zusammenführung\n"
+#~ " übertragen.\n"
+#~ "\n"
+#~ " - Beispiel für Zusammenführung zur Reintegration -\n"
+#~ "\n"
+#~ " Der Entwicklungszweig »feature« wurde zuletzt bis zu Revision »X«\n"
+#~ " mit dem Hauptzweig »trunk« synchronisiert. Daher stellt der\n"
+#~ " Unterschied zwischen »trunk@X« und »feature@HEAD« die gesamte\n"
+#~ " Implementierung der neuen Funktion dar, und keine weiteren Änderungen.\n"
+#~ " Diese Änderungen werden nach »trunk« eingebracht.\n"
+#~ "\n"
+#~ " rW rX\n"
+#~ " trunk ------+--------------------L------------------o\n"
+#~ " \\ . ^\n"
+#~ " \\ ............. /\n"
+#~ " \\ . /\n"
+#~ " feature +--------------------------------R\n"
+#~ "\n"
+#~ " Im Diagramm oben markiert »L« die linke Seite (trunk@X), während »R«\n"
+#~ " die rechte Seite (feature@HEAD) der Zusammenführung anzeigt. Der\n"
+#~ " Unterschied zwischen der linken und der rechten Seite wird auf »trunk«\n"
+#~ " als Ziel angewandt.\n"
+#~ "\n"
+#~ " Um die Zusammenführung zur Reintegration auszuführen, verwenden Sie\n"
+#~ " eine Arbeitskopie des Hauptzweigs »trunk« und führen Sie\n"
+#~ " dieses Kommando im obersten Verzeichnis aus:\n"
+#~ "\n"
+#~ " svn merge ^/feature\n"
+#~ "\n"
+#~ " Um unnötige Konflikte zu vermeiden, erfordern Zusammenführungen zur\n"
+#~ " Reintegration eine Arbeitskopie in ZIEL_AKPfad in einer einzelnen\n"
+#~ " Revision, ohne lokale Änderungen oder umgestellte Unterbäume.\n"
+#~ "\n"
+#~ " Eine Zusammenführung zur Reintegration erfordert auch, dass der\n"
+#~ " Quellzweig durchgehend mit dem dem Ziel synchronisiert ist -- im\n"
+#~ " Beispiel oben bedeutet dies, dass alle Revisionen zwischen dem\n"
+#~ " Verzweigungspunkt W und der letzten zusammengeführten Revision X\n"
+#~ " in den Entwicklungszweig zusammengeführt wurden, und es keine nicht\n"
+#~ " zusammengeführten Revisionen zwischen diesen gibt.\n"
+#~ "\n"
+#~ "\n"
+#~ " 2. Diese Form dient der Zusammenführung einzelner ausgewählter\n"
+#~ " Änderungen:\n"
+#~ "\n"
+#~ " svn merge [-c M[,N...] | -r N:M ...] QUELLE[@REV] [ZIEL_AKPfad]\n"
+#~ "\n"
+#~ " Diese Form, auch »cherry-pick« bzw. »Rosinen herauspicken« genannt,\n"
+#~ " führt bestimmte Revisionen (oder Revisionsbereiche) eines Zweiges in\n"
+#~ " einen anderen zusammen. Die Zusammenführungsverfolgung wird verwendet,\n"
+#~ " um schon in dieses Ziel zusammenführte Revisionen automatisch zu\n"
+#~ " überspringen. Verwenden Sie die Option »--ignore-ancestry«, um diese\n"
+#~ " Vorgabe zu deaktivieren.\n"
+#~ "\n"
+#~ " QUELLE ist im Normalfall eine URL. Die optionale Angabe von »@REV«\n"
+#~ " gibt nur Fix-Revision zum Auffinden des Pfades an und beeinflusst\n"
+#~ " nicht den Revisionsbereich für die Zusammenführung. Ist REV nicht\n"
+#~ " angegeben, wird »HEAD« angenommen. Ist QUELLE ein Arbeitskopie-\n"
+#~ " pfad, wird die damit zusammenhängende URL verwendet. Die\n"
+#~ " Basisversion der Arbeitskopie wird dann als REV verwendet, dies ist\n"
+#~ " meist die letzte Revision, auf die sie aktualisiert wurde.\n"
+#~ "\n"
+#~ " ZIEL_AKPfad ist ein Arbeitskopiepfad; Fehlt die Angabe, wird allgemein\n"
+#~ " das aktuelle Arbeitsverzeichnis ».« angenommen. Die unter der Form\n"
+#~ " der vollständigen Zusammenführung erwähnten Sonderfälle finden hier\n"
+#~ " ebenfalls Anwendung.\n"
+#~ "\n"
+#~ " Die zusammenzuführenden Revisionsbereiche werden durch die Optionen\n"
+#~ " »-r« und/oder »-c« angegeben. »-r N:M« bezieht sich auf den\n"
+#~ " Unterschied in der Versionsgeschichte im Quellzweig zwischen den\n"
+#~ " Revisionen N und M. Einzelne Revisionen können mit »-c M«\n"
+#~ " zusammengeführt werden, dabei ist »-c M« gleichbedeutend mit\n"
+#~ " »-r <M-1>:M«. Alle so ausgewählten Unterschiede werden nach\n"
+#~ " ZIEL_AKPfad zusammengeführt.\n"
+#~ "\n"
+#~ " Wenn die Zusammenführungsinformationen in ZIEL_AKPfad anzeigen, dass\n"
+#~ " die Revisionen im angegebenen Bereich schon zusammengeführt wurden,\n"
+#~ " werden Änderungen aus diesen Revisionen nicht erneut zusammengeführt.\n"
+#~ " Falls nötig, wird das Revisionsbereich in Unterbereiche aufgeteilt und\n"
+#~ " jeder Unterbereich getrennt in das Ziel zusammengeführt.\n"
+#~ "\n"
+#~ " Eine »rückwärtige Zusammenführung« kann verwendet werden, um\n"
+#~ " Änderungen rückgängig zu machen. Wenn z.B. Quelle und Ziel sich auf\n"
+#~ " den selben Zweig beziehen, kann eine vorher übertragene Revision\n"
+#~ " rückgängig gemacht werden. Dabei wird der Revisionsbereich umgekehrt,\n"
+#~ " also mit einem N größer M, bei »-r N:M«, oder durch Verwendung einer\n"
+#~ " negativen Zahl »-c -M«, angegeben. »-c -M« ist dabei gleichbedeutend\n"
+#~ " mit »-r M:<M-1>«. Änderungen so rückgängig zu machen ist auch als\n"
+#~ " »reverse merge« bzw. »rückwärtige Zusammenführung« bekannt.\n"
+#~ "\n"
+#~ " Es können mehrere Optionen der Art »-c« und »-r« angegeben werden, die\n"
+#~ " gleichzeitige Angabe von normalen und rückwärtigen Revisionsbereichen\n"
+#~ " ist erlaubt.\n"
+#~ "\n"
+#~ " - Beispiel für Zusammenführung einzelner ausgewählter Änderungen -\n"
+#~ "\n"
+#~ " Ein Programmfehler wurde im Hauptentwicklungszweig »trunk« in Revision\n"
+#~ " 50 behoben. Diese Korrektur soll von dort in den Wartungszweig\n"
+#~ " »1.x-release« zusammengeführt werden.\n"
+#~ "\n"
+#~ " 1.x-release +-----------------------o-----\n"
+#~ " / ^\n"
+#~ " / |\n"
+#~ " / |\n"
+#~ " trunk ------+--------------------------LR-----\n"
+#~ " r50\n"
+#~ "\n"
+#~ " Im Diagramm oben markiert »L« die linke Seite (trunk@49) und R die\n"
+#~ " rechte Seite (trunk@50) der Zusammenführung. Der Unterschied zwischen\n"
+#~ " der linken und der rechten Seite wird auf den Zielpfad in der\n"
+#~ " Arbeitskopie angewandt.\n"
+#~ "\n"
+#~ " Beachten Sie, dass der Unterschied zwischen den Revision 49 und 50\n"
+#~ " genau der Änderung entspricht, die durch Revision 50 übertragen\n"
+#~ " wurde. Änderungen die durch Revision 49 übertragen wurde, sind dagegen\n"
+#~ " nicht enthalten.\n"
+#~ "\n"
+#~ " Um diese Zusammenführung auszuführen, verwenden Sie eine Arbeitskopie\n"
+#~ " ohne lokale Änderungen und führen die dieses Kommando deren obersten\n"
+#~ " Verzeichnis aus. Das vorgegebene Ziel ist ».«, das aktuelle\n"
+#~ " Verzeichnis.\n"
+#~ "\n"
+#~ " svn merge -c50 ^/trunk\n"
+#~ "\n"
+#~ " Sie können auch mehrere Revisionen oder Revisionsbereiche auswählen:\n"
+#~ "\n"
+#~ " svn merge -c50,54,60 -r65:68 ^/trunk\n"
+#~ "\n"
+#~ "\n"
+#~ " 3. Diese Form dient der Zusammenführung der Unterschiede zweier URLs:\n"
+#~ "\n"
+#~ " svn merge QUELLE1[@REV1] QUELLE2[@REV2] [ZIEL_AKPfad]\n"
+#~ "\n"
+#~ " Diese Variante sollte nur verwendet werden, denn die vorherigen nicht\n"
+#~ " auf die vorliegende Situation zutreffen, da sie unter Umständen\n"
+#~ " komplex zu handhaben ist.\n"
+#~ "\n"
+#~ " Zwei Quell-URLs werden angegeben, die zwei Verzeichnisbäume im selben\n"
+#~ " oder in verschiedenen Zweigen identfizieren. Diese werden verglichen,\n"
+#~ " und der Unterschied zwischen QUELLE1@REV1 und QUELLE2@REV2 auf die\n"
+#~ " Arbeitskopie des Zielzweigs in ZIEL_AKPfad angewandt. Der Zielzweig\n"
+#~ " kann dabei einem der beiden Quellen entsprechen, oder kann wieder\n"
+#~ " verschieden sein. Die drei involvierten Zweige müssen nicht in einer\n"
+#~ " Beziehung zueinander stehen.\n"
+#~ "\n"
+#~ " ZIEL_AKPfad ist ein Arbeitskopiepfad; Fehlt die Angabe, wird allgemein\n"
+#~ " das aktuelle Arbeitsverzeichnis ».« angenommen. Die unter der Form\n"
+#~ " der vollständigen Zusammenführung erwähnten Sonderfälle finden hier\n"
+#~ " ebenfalls Anwendung.\n"
+#~ "\n"
+#~ " QUELLE1 und/oder QUELLE2 können auch als ein Pfad in einer\n"
+#~ " Arbeitskopie angegeben werden. In diesem Fall wird URL für die\n"
+#~ " Zusammenführung aus dieser Arbeitskopie abgeleitet.\n"
+#~ "\n"
+#~ " - Beispiel für Zusammenführung der Unterschiede zweier URLs -\n"
+#~ "\n"
+#~ "\n"
+#~ " Zwei neue Funktionen wurden in getrennten Entwicklungszweigen »foo«\n"
+#~ " und »bar« entwickelt. Danach wurde klar, dass »bar« mit »foo«\n"
+#~ " kombiniert werden sollte, vor weiterer Entwicklung und Reintegration\n"
+#~ " in den Hauptzweig »trunk«.\n"
+#~ "\n"
+#~ " Obwohl beide Entwicklungszweige von Hauptzweig »trunk« ausgehen, sind\n"
+#~ " sie nicht direkt verwandt - sie sind nicht direkte Kopien voneinander.\n"
+#~ " Eine Zusammenführung der Unterschiede zweier URLs ist notwendig.\n"
+#~ "\n"
+#~ " »bar« wurde zuvor mit »trunk« bis zu dessen Revision 500\n"
+#~ " synchronisiert. (Falls diese Revisionsnummer nicht bekannt ist, kann\n"
+#~ " sie mit den Befehlen »svn log« und/oder »svn mergeinfo« ermittelt\n"
+#~ " werden.)\n"
+#~ " Der Unterschied zwischen trunk@500 und bar@HEAD enthält also die\n"
+#~ " komplette Menge an Unterschieden, die die in diesem Zweig entwickelte\n"
+#~ " Funktion ausmachen, und keine weiteren Unterschiede. Diese Änderungen\n"
+#~ " werden jetzt auf den »bar« angewandt.\n"
+#~ "\n"
+#~ " foo +-----------------------------------o\n"
+#~ " / ^\n"
+#~ " / /\n"
+#~ " / r500 /\n"
+#~ " trunk ------+------+-----------------L---------> /\n"
+#~ " \\ . /\n"
+#~ " \\ ............ /\n"
+#~ " \\ . /\n"
+#~ " bar +-----------------------------------R\n"
+#~ "\n"
+#~ " Im Diagramm oben markiert »L« die linke Seite (trunk@500) und R die\n"
+#~ " rechte Seite (bar@HEAD) der Zusammenführung. Der Unterschied zwischen\n"
+#~ " der linken und der rechten Seite wird auf den Zielpfad in der\n"
+#~ " Arbeitskopie angewandt. In diesem Fall ist dies eine Arbeitskopie des\n"
+#~ " Entwicklungszweigs »foo«\n"
+#~ "\n"
+#~ " Um diese Zusammenführung auszuführen, verwenden Sie eine Arbeitskopie\n"
+#~ " des Entwicklungszweigs »foo« ohne lokale Änderungen und führen die\n"
+#~ " dieses Kommando im obersten Verzeichnis aus:\n"
+#~ "\n"
+#~ " svn merge ^/trunk@500 ^/bar\n"
+#~ "\n"
+#~ " Die genauen Änderungen, die durch die Zusammenführung der Unterschiede\n"
+#~ " zweier URLs angewandt werden, können mit Hilfe des Kommandos »svn diff«\n"
+#~ " im Voraus begutachtet werden. Diese Erfordert dann keine Arbeitskopie.\n"
+#~ " In diesem Fall:\n"
+#~ "\n"
+#~ " svn diff ^/trunk@500 ^/bar@HEAD\n"
+#~ "\n"
+#~ "\n"
+#~ " Folgendes trifft auf alle Zusammenführungen zu:\n"
+#~ "\n"
+#~ " Zur Vermeidung unnötiger Zusammenführungskonflikte erfordert »svn merge«,\n"
+#~ " dass ZIEL_AKPfad keine Arbeitskopie mit verschiedenen Revision ist.\n"
+#~ " Führen Sie »svn update« aus, um vor der Zusammenführung sicherzustellen,\n"
+#~ " dass sich alle Objekte der Arbeitskopie auf der selben Revision befinden.\n"
+#~ "\n"
+#~ " Wenn möglich sollten sich vor der Zusammenführung der Einfachheit halber\n"
+#~ " im Ziel der Zusammenführung keine lokalen Änderungen befinden. Es wird\n"
+#~ " so einfacher, eine Zusammenführung rückgängig zu machen und die\n"
+#~ " Geschichte des Zweigs zu verstehen.\n"
+#~ "\n"
+#~ " Umgestellte Unterbäume sollten ebenfalls bei Zusammenführungen vermieden\n"
+#~ " werden, das sie unvollständige Zusammenführungen zur Folge haben können\n"
+#~ " und Zusammenführungsinformationen auf Unterbäumen erzeugen.\n"
+#~ "\n"
+#~ " Für jedes zusammengeführte Objekt wird eine Zeile mit einem Buchstaben\n"
+#~ " für die durchgeführte Aktion ausgegeben. Diese haben die folgenden\n"
+#~ " Bedeutungen:\n"
+#~ "\n"
+#~ " A Added - Hinzugefügt\n"
+#~ " D Deleted - Gelöscht\n"
+#~ " U Updated - Aktualisiert\n"
+#~ " C Conflict - Konflikt\n"
+#~ " G Merged - Zusammengeführt\n"
+#~ " E Existed - Existierend\n"
+#~ " R Replaced - Ersetzt\n"
+#~ "\n"
+#~ " Ein Buchstabe in der ersten Spalte gibt Informationen über das Objekt\n"
+#~ " selbst. Buchstaben in der zweiten Spalte betreffen Eigenschaften des\n"
+#~ " Objekts. Ein »C« in der dritten Spalte zeigt einen Baumkonflikt an,\n"
+#~ " während es in der ersten und zweiten Spalte jeweils einen Konflikt im\n"
+#~ " Text bzw. einer Eigenschaft anzeigt.\n"
+#~ "\n"
+#~ " - Zusammenführungsverfolgung -\n"
+#~ "\n"
+#~ " Subversion verwendet die Eigenschaft »svn:mergeinfo«, um die Geschichte\n"
+#~ " von Zusammenführungen aufzuzeichnen. Diese Eigenschaft wird zu Beginn\n"
+#~ " der Zusammenführung ausgewertet, um die zusammenzuführenden Änderungen\n"
+#~ " zu erhalten. Sie wird am Ende der Zusammenführung aktualisiert, um die\n"
+#~ " vorgenommene Zusammenführung zu beschreiben. Dabei werden Informationen\n"
+#~ " zur Zusammenführung nur verwendet, wenn die beiden Quellen sich auf der\n"
+#~ " gleichen Linie in der Versionsgeschichte befinden -- d.h. die erste\n"
+#~ " Quelle ist ein Vorfahre der zweiten oder umgekehrt (z.B. wenn eine Quelle\n"
+#~ " ursprünglich die Kopie der anderen war). Diese Bedingung wird bei\n"
+#~ " Zusammenführungen zur Synchronisation und zur Reintegration überprüft und\n"
+#~ " durchgesetzt.\n"
+#~ "\n"
+#~ " Die Option »--ignore-ancestry« verhindert die Zusammenführungsverfolgung\n"
+#~ " und ignoriert damit Zusammenführungsinformationen, sie werden weder\n"
+#~ " in Betracht gezogen noch aufgezeichnet.\n"
+#~ "\n"
+#~ " - Zusammenführungen aus einem fremdem Projektarchiv -\n"
+#~ "\n"
+#~ " Subversion unterstützt Zusammenführungen aus fremdem Projektarchiven.\n"
+#~ " Während alle URLs für Quellen der Zusammenführung auf das selbe\n"
+#~ " Projektarchiv zeigen müssen, kann sich die Arbeitskopie als Ziel auf ein\n"
+#~ " davon verschiedenes Projektarchiv beziehen. Es gibt aber folgende\n"
+#~ " Umstände, die es zu beachten gilt: In der Quelle durchgeführte Kopien\n"
+#~ " werden in einfache Hinzufügungen im Ziel umgewandelt. Weiterhin wird\n"
+#~ " eine Zusammenführungsverfolgung bei Zusammenführungen aus fremdem\n"
+#~ " Projektarchiven nicht unterstützt.\n"
+
+#~ msgid ""
+#~ "Display merge-related information.\n"
+#~ "usage: 1. mergeinfo SOURCE[@REV] [TARGET[@REV]]\n"
+#~ " 2. mergeinfo --show-revs=WHICH SOURCE[@REV] [TARGET[@REV]]\n"
+#~ "\n"
+#~ " 1. Summarize the history of merging between SOURCE and TARGET. The graph\n"
+#~ " shows, from left to right:\n"
+#~ " the youngest common ancestor of the branches;\n"
+#~ " the latest full merge in either direction, and thus the common base\n"
+#~ " that will be used for the next complete merge;\n"
+#~ " the repository path and revision number of the tip of each branch.\n"
+#~ "\n"
+#~ " 2. Print the revision numbers on SOURCE that have been merged to TARGET\n"
+#~ " (with --show-revs=merged), or that have not been merged to TARGET\n"
+#~ " (with --show-revs=eligible). Print only revisions in which there was\n"
+#~ " at least one change in SOURCE.\n"
+#~ "\n"
+#~ " If --revision (-r) is provided, filter the displayed information to\n"
+#~ " show only that which is associated with the revisions within the\n"
+#~ " specified range. Revision numbers, dates, and the 'HEAD' keyword are\n"
+#~ " valid range values.\n"
+#~ "\n"
+#~ " SOURCE and TARGET are the source and target branch URLs, respectively.\n"
+#~ " (If a WC path is given, the corresponding base URL is used.) The default\n"
+#~ " TARGET is the current working directory ('.'). REV specifies the revision\n"
+#~ " to be considered the tip of the branch; the default for SOURCE is HEAD,\n"
+#~ " and the default for TARGET is HEAD for a URL or BASE for a WC path.\n"
+#~ "\n"
+#~ " The depth can be 'empty' or 'infinity'; the default is 'empty'.\n"
+#~ msgstr ""
+#~ "Zeigt relevante Informationen zu Zusammenführungen an.\n"
+#~ "Aufruf: 1. mergeinfo QUELLE[@REV] [ZIEL[@REV]]\n"
+#~ " 2. mergeinfo --show-revs=WAS QUELLE[@REV] [ZIEL[@REV]]\n"
+#~ "\n"
+#~ " 1. Fasst die Geschichte der Zusammenführungen zwischen QUELLE\n"
+#~ " und ZIEL zusammen. Die Grafik zeigt von links nach rechts:\n"
+#~ " den jüngsten gemeinsamen Vorfahren der Zweige; die letzte vollständige Zusammenführung in eine der Richtungen, und\n"
+#~ " damit die Basis der nächste vollständigen Zusammenführung;\n"
+#~ " den Pfad im Projektarchiv und die Revisionsnummer der Spitzen\n"
+#~ " jedes Zweigs.\n"
+#~ "\n"
+#~ " 2. Zeigt Revisionsnummern an, die von QUELLE, die nach ZIEL\n"
+#~ " zusammengeführt wurden (mit »--show-revs=merged«), bzw.\n"
+#~ " nicht zusammengeführt wurden (mit »--show-revs=eligible«).\n"
+#~ " Gibt nur Revisionen aus, wenn QUELLE mindestens eine\n"
+#~ " Änderung hat.\n"
+#~ "\n"
+#~ " Die Angabe von »--revision« (»-r«) schränkt die Anzeige auf diesen\n"
+#~ " Revisionsbereich ein. Revisionsnummern, Datumsangaben und\n"
+#~ " das Schlüsselwort »HEAD« sind gültige Angaben.\n"
+#~ "\n"
+#~ " QUELLE und ZIEL sind jeweils URLs der Quell- und Ziel-Zweige.\n"
+#~ " (Wenn ein Arbeitskopiepfad angegeben ist, wird die entsprechende\n"
+#~ " Basis-URL verwendet.) Die Vorgabe für ZIEL ist das aktuelle\n"
+#~ " Verzeichnis (».«). REV gibt die Revision an, die als Spitze des Zweigs\n"
+#~ " angenommen werden soll, die Vorgabe für QUELLE ist »HEAD«.\n"
+#~ " Die Vorgabe für ZIEL ist »HEAD« bei URLs und »BASE« bei Pfaden\n"
+#~ " in einer Arbeitskopie.\n"
+#~ "\n"
+#~ " Die Tiefe kann »empty« oder »infinity« sein, Vorgabe ist »empty«.\n"
+
+#~ msgid ""
+#~ "Create a new directory under version control.\n"
+#~ "usage: 1. mkdir PATH...\n"
+#~ " 2. mkdir URL...\n"
+#~ "\n"
+#~ " Create version controlled directories.\n"
+#~ "\n"
+#~ " 1. Each directory specified by a working copy PATH is created locally\n"
+#~ " and scheduled for addition upon the next commit.\n"
+#~ "\n"
+#~ " 2. Each directory specified by a URL is created in the repository via\n"
+#~ " an immediate commit.\n"
+#~ "\n"
+#~ " In both cases, all the intermediate directories must already exist,\n"
+#~ " unless the --parents option is given.\n"
+#~ msgstr ""
+#~ "Erzeugt ein neues Verzeichnis unter Versionskontrolle.\n"
+#~ "Aufruf: 1. mkdir PFAD...\n"
+#~ " 2. mkdir URL...\n"
+#~ "\n"
+#~ " Erzeugt Verzeichnisse unter Versionskontrolle.\n"
+#~ "\n"
+#~ " 1. Jedes durch den PFAD einer Arbeitskopie spezifizierte Verzeichnis wird\n"
+#~ " lokal erzeugt und zum Hinzufügen bei der nächsten Übertragung eingeplant.\n"
+#~ "\n"
+#~ " 2. Jedes durch eine URL spezifizierte Verzeichnis wird mittels einer\n"
+#~ " sofortigen Ãœbertragung im Projektarchiv angelegt.\n"
+#~ "\n"
+#~ " In beiden Fällen müssen alle Zwischenverzeichnisse bereits existieren,\n"
+#~ " es sei denn, die Option --parents wurde angegeben.\n"
+
+#~ msgid ""
+#~ "Apply a patch to a working copy.\n"
+#~ "usage: patch PATCHFILE [WCPATH]\n"
+#~ "\n"
+#~ " Apply a unidiff patch in PATCHFILE to the working copy WCPATH.\n"
+#~ " If WCPATH is omitted, '.' is assumed.\n"
+#~ "\n"
+#~ " A unidiff patch suitable for application to a working copy can be\n"
+#~ " produced with the 'svn diff' command or third-party diffing tools.\n"
+#~ " Any non-unidiff content of PATCHFILE is ignored, except for Subversion\n"
+#~ " property diffs as produced by 'svn diff'.\n"
+#~ "\n"
+#~ " Changes listed in the patch will either be applied or rejected.\n"
+#~ " If a change does not match at its exact line offset, it may be applied\n"
+#~ " earlier or later in the file if a match is found elsewhere for the\n"
+#~ " surrounding lines of context provided by the patch.\n"
+#~ " A change may also be applied with fuzz, which means that one\n"
+#~ " or more lines of context are ignored when matching the change.\n"
+#~ " If no matching context can be found for a change, the change conflicts\n"
+#~ " and will be written to a reject file with the extension .svnpatch.rej.\n"
+#~ "\n"
+#~ " For each patched file a line will be printed with characters reporting\n"
+#~ " the action taken. These characters have the following meaning:\n"
+#~ "\n"
+#~ " A Added\n"
+#~ " D Deleted\n"
+#~ " U Updated\n"
+#~ " C Conflict\n"
+#~ " G Merged (with local uncommitted changes)\n"
+#~ "\n"
+#~ " Changes applied with an offset or fuzz are reported on lines starting\n"
+#~ " with the '>' symbol. You should review such changes carefully.\n"
+#~ "\n"
+#~ " If the patch removes all content from a file, that file is scheduled\n"
+#~ " for deletion. If the patch creates a new file, that file is scheduled\n"
+#~ " for addition. Use 'svn revert' to undo deletions and additions you\n"
+#~ " do not agree with.\n"
+#~ "\n"
+#~ " Hint: If the patch file was created with Subversion, it will contain\n"
+#~ " the number of a revision N the patch will cleanly apply to\n"
+#~ " (look for lines like '--- foo/bar.txt (revision N)').\n"
+#~ " To avoid rejects, first update to the revision N using\n"
+#~ " 'svn update -r N', apply the patch, and then update back to the\n"
+#~ " HEAD revision. This way, conflicts can be resolved interactively.\n"
+#~ msgstr ""
+#~ "Wendet einen Patch auf eine Arbeitskopie an.\n"
+#~ "Aufruf: patch PATCHDATEI [AKPFAD]\n"
+#~ "\n"
+#~ " Wendet Unterschiede im Format Unified Diff aus PATCHDATEI\n"
+#~ " auf eine Arbeitskopie AKPFAD an. Wird AKPFAD weggelassen\n"
+#~ " wird ».« verwendet.\n"
+#~ "\n"
+#~ " Ein Patch im Unidiff-Format, der auf eine Arbeitskopie anwendbar ist,\n"
+#~ " kann mit »svn diff« oder Drittprogrammen erzeugt werden. Inhalte von\n"
+#~ " PATCHDATEI, die nicht dem Unidiff Format entsprechen, werden\n"
+#~ " ignoriert, abgesehen von solchen, die Änderungen an Eigenschaften\n"
+#~ " beschreiben und von »svn diff« erzeugt werden.\n"
+#~ "\n"
+#~ " Im Patch aufgelistete Änderungen werden entweder angewandt oder\n"
+#~ " abgewiesen. Wenn eine Änderung nicht genau auf die angegebene\n"
+#~ " Stelle passt, aber mit dem gegebenen Kontext weiter oben oder unten\n"
+#~ " in der Datei, kann es dennoch angewandt werden.\n"
+#~ " Eine Änderung kann auch mit Unschärfe angewandt werden. Dabei\n"
+#~ " werden eine oder mehrere Zeilen des Kontextes bei der Suche nach\n"
+#~ " der passenden Stelle für die Änderung ignoriert. Wenn keine solche\n"
+#~ " gefunden wurde, steht die Änderung im Konflikt und wird in eine Datei\n"
+#~ " für abgewiesene Änderungen mit der Erweiterung ».svnpatch.rej«\n"
+#~ " geschrieben.\n"
+#~ "\n"
+#~ " Für jede so geänderte Datei wird eine Zeile mit Buchstaben ausgegeben,\n"
+#~ " die die vorgenommene Änderung mit folgender Bedeutung beschreiben:\n"
+#~ "\n"
+#~ " A Added - Hinzugefügt\n"
+#~ " D Deleted - Gelöscht\n"
+#~ " U Updated - Aktualisiert\n"
+#~ " C Conflict - Konflikt\n"
+#~ " G Merged - Zusammengeführt\n"
+#~ "\n"
+#~ " Änderungen, die mit Versatz oder Unschärfe angewandt wurden, werden\n"
+#~ " mit einem »>« am Zeilenanfang markiert und sollten sorgfältig geprüft werden.\n"
+#~ "\n"
+#~ " Wenn ein Patch den gesamten Inhalt einer Datei entfernt, wird diese zur\n"
+#~ " Löschung eingeplant. Wenn ein Patch eine neue Datei erzeugt, wird diese\n"
+#~ " zum Hinzufügen eingeplant. Verwenden Sie »svn revert« um Löschungen\n"
+#~ " oder Hinzufügungen rückgängig zu machen, mit denen Sie nicht einverstanden\n"
+#~ " sind.\n"
+#~ "\n"
+#~ " Hinweis: Wenn eine Patch-Datei mit Subversion erzeugt wurde, enthält sie\n"
+#~ " die Revisionsnummer N, in der der Patch sauber anwendbar ist.\n"
+#~ " (Siehe Zeilen mit »--- verzeichnis/datei.txt (revision N)«).\n"
+#~ " Um abgewiesene Änderungen zu vermeiden, aktualisieren Sie zuerst\n"
+#~ " auf Revision N mit »svn update -r N«, wenden Sie dann den Patch an\n"
+#~ " und aktualisieren Sie dann auf HEAD. Auf diese Weise können\n"
+#~ " Konflikte interaktiv aufgelöst werden.\n"
+
+#~ msgid ""
+#~ "Remove a property from files, dirs, or revisions.\n"
+#~ "usage: 1. propdel PROPNAME [PATH...]\n"
+#~ " 2. propdel PROPNAME --revprop -r REV [TARGET]\n"
+#~ "\n"
+#~ " 1. Removes versioned props in working copy.\n"
+#~ " 2. Removes unversioned remote prop on repos revision.\n"
+#~ " TARGET only determines which repository to access.\n"
+#~ "\n"
+#~ " See 'svn help propset' for descriptions of the svn:* special properties.\n"
+#~ msgstr ""
+#~ "Entfernt eine Eigenschaft von Dateien, Verzeichnissen oder\n"
+#~ "Revisionen.\n"
+#~ "Aufruf: 1. propdel PROPNAME [PFAD...]\n"
+#~ " 2. propdel PROPNAME --revprop -r REV [URL]\n"
+#~ "\n"
+#~ " 1. Entfernt eine versionierte Eigenschaft aus der Arbeitskopie.\n"
+#~ " 2. Entfernt eine nicht versionierte Eigenschaft aus dem Projektarchiv.\n"
+#~ "\n"
+#~ " Siehe »svn help propset« für Beschreibungen der speziellen »svn:*«-Eigenschaften.\n"
+
+#~ msgid ""
+#~ "Print the value of a property on files, dirs, or revisions.\n"
+#~ "usage: 1. propget PROPNAME [TARGET[@REV]...]\n"
+#~ " 2. propget PROPNAME --revprop -r REV [TARGET]\n"
+#~ "\n"
+#~ " 1. Prints versioned props. If specified, REV determines in which\n"
+#~ " revision the target is first looked up.\n"
+#~ " 2. Prints unversioned remote prop on repos revision.\n"
+#~ " TARGET only determines which repository to access.\n"
+#~ "\n"
+#~ " With --verbose, the target path and the property name are printed on\n"
+#~ " separate lines before each value, like 'svn proplist --verbose'.\n"
+#~ " Otherwise, if there is more than one TARGET or a depth other than\n"
+#~ " 'empty', the target path is printed on the same line before each value.\n"
+#~ "\n"
+#~ " By default, an extra newline is printed after the property value so that\n"
+#~ " the output looks pretty. With a single TARGET, depth 'empty' and without\n"
+#~ " --show-inherited-props, you can use the --no-newline option to disable this\n"
+#~ " (useful when redirecting a binary property value to a file, for example).\n"
+#~ "\n"
+#~ " See 'svn help propset' for descriptions of the svn:* special properties.\n"
+#~ msgstr ""
+#~ "Gibt den Eigenschaftswert von Dateien, Verzeichnissen oder Revisionen aus.\n"
+#~ "Aufruf: 1. propget PROPNAME [ZIEL[@REV]...]\n"
+#~ " 2. propget PROPNAME --revprop -r REV [ZIEL]\n"
+#~ "\n"
+#~ " 1. Gibt versionierte Eigenschaften in der Arbeitskopie aus.\n"
+#~ " REV bestimmt, in welcher Revision zuerst nachgeschaut wird.\n"
+#~ " 2. Gibt nicht versionierte Revisionseigenschaft im Projektarchiv aus.\n"
+#~ " ZIEL legt nur das Projektarchiv fest, auf das zugegriffen wird.\n"
+#~ "\n"
+#~ " Mit »--verbose« wird der Zielpfad und der Name der Eigenschaft auf\n"
+#~ " separaten Zeilen vor jedem Wert ausgegeben, wie »svn proplist --verbose«\n"
+#~ " Andernfalls wird bei mahr als einem ZIEL oder einer von »empty«\n"
+#~ " verschiedenen Tiefe die Pfade auf der selben Zeile ausgegeben.\n"
+#~ "\n"
+#~ " Standardmäßig hängt dieser Unterbefehl eine Leerzeile an das Ende der\n"
+#~ " Eigenschaftswerte an, so dass die Ausgabe hübsch aussieht. Verwenden\n"
+#~ " Sie bei einem einzigen ZIEL, der Tiefe »empty« und ohne\n"
+#~ " --show-inherited-props die Option »--no-newline« um diese Formatierungen\n"
+#~ " abzuschalten. (dies ist z.B. nützlich, um einen binären Eigenschaftswert\n"
+#~ " in eine Datei umzuleiten)\n"
+#~ "\n"
+#~ " Siehe »svn help propset« für Beschreibungen der speziellen »svn:*«-Eigenschaften.\n"
+
+#~ msgid ""
+#~ "List all properties on files, dirs, or revisions.\n"
+#~ "usage: 1. proplist [TARGET[@REV]...]\n"
+#~ " 2. proplist --revprop -r REV [TARGET]\n"
+#~ "\n"
+#~ " 1. Lists versioned props. If specified, REV determines in which\n"
+#~ " revision the target is first looked up.\n"
+#~ " 2. Lists unversioned remote props on repos revision.\n"
+#~ " TARGET only determines which repository to access.\n"
+#~ "\n"
+#~ " With --verbose, the property values are printed as well, like 'svn propget\n"
+#~ " --verbose'. With --quiet, the paths are not printed.\n"
+#~ "\n"
+#~ " See 'svn help propset' for descriptions of the svn:* special properties.\n"
+#~ msgstr ""
+#~ "Listet alle Eigenschaften von Dateien, Verzeichnissen oder\n"
+#~ "Revisionen auf.\n"
+#~ "Aufruf: 1. proplist [ZIEL[@REV]...]\n"
+#~ " 2. proplist --revprop -r REV [ZIEL]\n"
+#~ "\n"
+#~ " 1. Listet versionierte Eigenschaften in der Arbeitskopie auf.\n"
+#~ " REV bestimmt, in welcher Revision zuerst nachgeschaut wird.\n"
+#~ " 2. Listet nicht versionierte Revisionseigenschaften im Projektarchiv auf.\n"
+#~ " ZIEL legt nur das Projektarchiv fest, auf das zugegriffen wird.\n"
+#~ "\n"
+#~ " Mit »--verbose« werden auch die Eigenschaftwerte ausgegeben,wie mit \n"
+#~ " »svn propget --verbose«. Mit »--quiet« werden Pfade nicht ausgegeben.\n"
+#~ "\n"
+#~ " Siehe »svn help propset« für Beschreibungen der speziellen »svn:*«-Eigenschaften.\n"
+
+# FIXME: propchange?
+#~ msgid ""
+#~ "Set the value of a property on files, dirs, or revisions.\n"
+#~ "usage: 1. propset PROPNAME PROPVAL PATH...\n"
+#~ " 2. propset PROPNAME --revprop -r REV PROPVAL [TARGET]\n"
+#~ "\n"
+#~ " 1. Changes a versioned file or directory property in a working copy.\n"
+#~ " 2. Changes an unversioned property on a repository revision.\n"
+#~ " (TARGET only determines which repository to access.)\n"
+#~ "\n"
+#~ " The value may be provided with the --file option instead of PROPVAL.\n"
+#~ "\n"
+#~ " Property names starting with 'svn:' are reserved. Subversion recognizes\n"
+#~ " the following special versioned properties on a file:\n"
+#~ " svn:keywords - Keywords to be expanded. Valid keywords are:\n"
+#~ " URL, HeadURL - The URL for the head version of the file.\n"
+#~ " Author, LastChangedBy - The last person to modify the file.\n"
+#~ " Date, LastChangedDate - The date/time the file was last modified.\n"
+#~ " Rev, Revision, - The last revision the file changed.\n"
+#~ " LastChangedRevision\n"
+#~ " Id - A compressed summary of the previous four.\n"
+#~ " Header - Similar to Id but includes the full URL.\n"
+#~ "\n"
+#~ " Custom keywords can be defined with a format string separated from\n"
+#~ " the keyword name with '='. Valid format substitutions are:\n"
+#~ " %a - The author of the revision given by %r.\n"
+#~ " %b - The basename of the URL of the file.\n"
+#~ " %d - Short format of the date of the revision given by %r.\n"
+#~ " %D - Long format of the date of the revision given by %r.\n"
+#~ " %P - The file's path, relative to the repository root.\n"
+#~ " %r - The number of the revision which last changed the file.\n"
+#~ " %R - The URL to the root of the repository.\n"
+#~ " %u - The URL of the file.\n"
+#~ " %_ - A space (keyword definitions cannot contain a literal space).\n"
+#~ " %% - A literal '%'.\n"
+#~ " %H - Equivalent to %P%_%r%_%d%_%a.\n"
+#~ " %I - Equivalent to %b%_%r%_%d%_%a.\n"
+#~ " Example custom keyword definition: MyKeyword=%r%_%a%_%P\n"
+#~ " Once a custom keyword has been defined for a file, it can be used\n"
+#~ " within the file like any other keyword: $MyKeyword$\n"
+#~ "\n"
+#~ " svn:executable - If present, make the file executable. Use\n"
+#~ " 'svn propdel svn:executable PATH...' to clear.\n"
+#~ " svn:eol-style - One of 'native', 'LF', 'CR', 'CRLF'.\n"
+#~ " svn:mime-type - The mimetype of the file. Used to determine\n"
+#~ " whether to merge the file, and how to serve it from Apache.\n"
+#~ " A mimetype beginning with 'text/' (or an absent mimetype) is\n"
+#~ " treated as text. Anything else is treated as binary.\n"
+#~ " svn:needs-lock - If present, indicates that the file should be locked\n"
+#~ " before it is modified. Makes the working copy file read-only\n"
+#~ " when it is not locked. Use 'svn propdel svn:needs-lock PATH...'\n"
+#~ " to clear.\n"
+#~ "\n"
+#~ " Subversion recognizes the following special versioned properties on a\n"
+#~ " directory:\n"
+#~ " svn:ignore - A list of file glob patterns to ignore, one per line.\n"
+#~ " svn:global-ignores - Like svn:ignore, but inheritable.\n"
+#~ " svn:externals - A list of module specifiers, one per line, in the\n"
+#~ " following format similar to the syntax of 'svn checkout':\n"
+#~ " [-r REV] URL[@PEG] LOCALPATH\n"
+#~ " Example:\n"
+#~ " http://example.com/repos/zig foo/bar\n"
+#~ " The LOCALPATH is relative to the directory having this property.\n"
+#~ " To pin the external to a known revision, specify the optional REV:\n"
+#~ " -r25 http://example.com/repos/zig foo/bar\n"
+#~ " To unambiguously identify an element at a path which may have been\n"
+#~ " subsequently deleted or renamed, specify the optional PEG revision:\n"
+#~ " -r25 http://example.com/repos/zig@42 foo/bar\n"
+#~ " The URL may be a full URL or a relative URL starting with one of:\n"
+#~ " ../ to the parent directory of the extracted external\n"
+#~ " ^/ to the repository root\n"
+#~ " / to the server root\n"
+#~ " // to the URL scheme\n"
+#~ " ^/../ to a sibling repository beneath the same SVNParentPath location\n"
+#~ " Use of the following format is discouraged but is supported for\n"
+#~ " interoperability with Subversion 1.4 and earlier clients:\n"
+#~ " LOCALPATH [-r PEG] URL\n"
+#~ " The ambiguous format 'relative_path relative_path' is taken as\n"
+#~ " 'relative_url relative_path' with peg revision support.\n"
+#~ " Lines starting with a '#' character are ignored.\n"
+#~ msgstr ""
+#~ "Setzt den Wert einer Eigenschaft von Dateien, Verzeichnissen\n"
+#~ "oder Revisionen\n"
+#~ "Aufruf: 1. propset NAME WERT PFAD...\n"
+#~ " 2. propset NAME --revprop -r REV WERT [ZIEL]\n"
+#~ "\n"
+#~ " 1. Ändert eine versionierte Datei- oder Verzeichniseigenschaft in der\n"
+#~ " Arbeitskopie.\n"
+#~ " 2. Ändert eine nicht versionierte Revisionseigenschaft einer Revision\n"
+#~ " im Projektarchiv.\n"
+#~ " (ZIEL legt nur das Projektarchiv fest, auf das zugegriffen wird.)\n"
+#~ "\n"
+#~ " Der Wert kann mit der Option »--file« statt WERT angegeben werden.\n"
+#~ "\n"
+#~ " Namen von Eigenschaften, die mit »svn:« beginnen, sind reserviert.\n"
+#~ " Subversion kennt die folgenden speziellen versionieren\n"
+#~ " Eigenschaften von Dateien:\n"
+#~ " svn:keywords - Schlüsselworte, die expandiert werden sollen.\n"
+#~ " Gültige Schlüsselworte sind:\n"
+#~ " URL, HeadURL - Die URL für die Head-Version der Datei.\n"
+#~ " Author, LastChangedBy - Die letzte Person, die die Datei geändert hat.\n"
+#~ " Date, LastChangedDate - Datum/Zeit der letzten Änderung.\n"
+#~ " Rev, Revision, - Die letzte Revision, in der die Datei\n"
+#~ " LastChangedRevision geändert wurde.\n"
+#~ " Id - Eine komprimierte Zusammenfassung der vier\n"
+#~ " genannten Schlüsselworte.\n"
+#~ " Header - Ähnlich zu Id, enthält aber die volle URL.\n"
+#~ "\n"
+#~ " Benutzerdefinierte Schlüsselworte können mit ihrem Namen und einer\n"
+#~ " Formatangabe, getrennt durch ein »=« definiert werden. Gültige\n"
+#~ " Platzhalter sind:\n"
+#~ " %a - Der Autor der Revision %r.\n"
+#~ " %b - Der Basisname der URL der Datei.\n"
+#~ " %d - Das Datum der Revision %r im Kurzformat.\n"
+#~ " %D - Das Datum der Revision %r im Langformat.\n"
+#~ " %P - Der Pfad der Datei, relativ zur Wurzel des Projektarchivs.\n"
+#~ " %r - Die letzte Revision, in der die Datei geändert wurde.\n"
+#~ " %R - Die URL der Wurzel des Projektarchivs.\n"
+#~ " %u - Die URL der Datei.\n"
+#~ " %_ - Ein Leerzeichen (Definitionen von Schlüsselwörtern dürfen\n"
+#~ " selbst keine Leerzeichen enthalten).\n"
+#~ " %% - Erzeugt ein '%' in der Ausgabe.\n"
+#~ " %H - Entspricht %P%_%r%_%d%_%a.\n"
+#~ " %I - Entspricht %b%_%r%_%d%_%a.\n"
+#~ " Beispiel für ein benutzerdefiniertes Schlüsselwort: MeinSW=%r%_%a%_%P\n"
+#~ " Sobald ein benutzerdefiniertes Schlüsselwort für eine Datei gesetzt ist,\n"
+#~ " kann es in der Datei wie jedes andere Schlüsselwort verwendet werden:\n"
+#~ " $MeinSW$\n"
+#~ "\n"
+#~ " svn:executable - Falls vorhanden, wird die Datei ausführbar gemacht.\n"
+#~ " Verwenden Sie »svn propdel svn:executable PFAD...« zum Entfernen.\n"
+#~ " svn:eol-style - Eins aus »native«, »LF«, »CR«, »CRLF«.\n"
+#~ " svn:mime-type - Der MIME-Typ der Datei. Verwendet, um festzustellen, ob\n"
+#~ " die Datei zusammengeführt werden kann und wie sie von Apache übertragen\n"
+#~ " werden soll. Dateien ohne MIME-Typ oder deren MIME-Typ mit »text/«\n"
+#~ " beginnt, werden als Text behandelt. Alles andere wird als binär angesehen.\n"
+#~ " svn:needs-lock - Wenn vorhanden, soll die Datei gesperrt werden, bevor sie\n"
+#~ " verändert wird. Setzt den Schreibschutz der Arbeitsdatei, wenn sie nicht\n"
+#~ " gesperrt ist. Verwenden Sie »svn propdel svn:needs-lock PFAD...« zum\n"
+#~ " Entfernen.\n"
+#~ "\n"
+#~ " Subversion kennt die folgenden speziellen versionieren\n"
+#~ " Eigenschaften von Verzeichnissen:\n"
+#~ " svn:ignore - Eine durch Zeilenumbruch getrennte Liste von zu\n"
+#~ " ignorierenden »glob«-Dateimustern.\n"
+#~ " svn:global-ignores - Wie svn:ignore, aber vererbbar.\n"
+#~ " svn:externals - Eine durch Zeilenumbruch getrennte Liste von\n"
+#~ " Modulnamen im folgenden Syntax von »svn checkout«:\n"
+#~ " [-r REV] URL[@PEGREV] LOKALER_PFAD\n"
+#~ " Beispiel:\n"
+#~ " http://example.com/repos/Projekt/modul\n"
+#~ " LOKALER_PFAD ist dabei relativ zum Verzeichnis mit dieser Eigenschaft.\n"
+#~ " Um den externen Verweis auf eine bekannte Revision festzulegen, geben\n"
+#~ " Sie optional REV an:\n"
+#~ " -r25 http://example.com/repos/Projekt/modul\n"
+#~ " Um ein Element in einem ggf. später gelöschten oder umbenannten Pfad\n"
+#~ " eindeutig zu identifizieren, verwenden Sie optional PEGREV:\n"
+#~ " -r25 http://example.com/repos/Pfad@42 projekt/modul\n"
+#~ " Die URL kann eine vollständige oder relative URL sein, die mit einen der\n"
+#~ " folgenden Zeichenketten startet und...\n"
+#~ " ../ auf das übergeordnete Verzeichnis des extrahierten Externals\n"
+#~ " ^/ auf die Wurzel des Projektarchivs\n"
+#~ " / auf die Wurzel des Servers\n"
+#~ " // auf das Schema\n"
+#~ " ^/../ auf ein benachbartes Projektarchiv unter dem selben SVNParentPath\n"
+#~ " verweist.\n"
+#~ " Die Verwendung des folgenden Formats ist veraltet aber für die Kompatibilität\n"
+#~ " mit Subversion 1.4 und älter weiter unterstützt:\n"
+#~ " LOKALER_PFAD [-r PEGREV] URL\n"
+#~ " Das mehrdeutige Format »relativer_Pfad relativer_Pfad« wird als\n"
+#~ " »relative_URL relativer_Pfad« mit Peg-Revisionsunterstützung gedeutet.\n"
+#~ " Zeilen, die mit »#« beginnen, werden ignoriert.\n"
+
+#~ msgid ""
+#~ "Relocate the working copy to point to a different repository root URL.\n"
+#~ "usage: 1. relocate FROM-PREFIX TO-PREFIX [PATH...]\n"
+#~ " 2. relocate TO-URL [PATH]\n"
+#~ "\n"
+#~ " Rewrite working copy URL metadata to reflect a syntactic change only.\n"
+#~ " This is used when a repository's root URL changes (such as a scheme\n"
+#~ " or hostname change) but your working copy still reflects the same\n"
+#~ " directory within the same repository.\n"
+#~ "\n"
+#~ " 1. FROM-PREFIX and TO-PREFIX are initial substrings of the working\n"
+#~ " copy's current and new URLs, respectively. (You may specify the\n"
+#~ " complete old and new URLs if you wish.) Use 'svn info' to determine\n"
+#~ " the current working copy URL.\n"
+#~ "\n"
+#~ " 2. TO-URL is the (complete) new repository URL to use for PATH.\n"
+#~ "\n"
+#~ " Examples:\n"
+#~ " svn relocate http:// svn:// project1 project2\n"
+#~ " svn relocate http://www.example.com/repo/project \\\n"
+#~ " svn://svn.example.com/repo/project\n"
+#~ msgstr ""
+#~ "Umplatzierung der Arbeitskopie auf eine andere Wurzel-URL des Projektarchivs\n"
+#~ "Aufruf: 1. relocate VON NACH [PFAD...]\n"
+#~ " 2. relocate NACH [PFAD]\n"
+#~ "\n"
+#~ " Schreibt die Metadaten der Arbeitskopie so um, dass sie einer Änderung\n"
+#~ " der URL folgen. Dies wird verwendet, wenn sich die Basis-URL eines\n"
+#~ " Projektarchivs ändert (z.B. durch eine Schema- oder Hostnamenänderung),\n"
+#~ " während Ihre Arbeitskopie immer noch das selbe Verzeichnis im selben\n"
+#~ " Projektarchiv widerspiegelt.\n"
+#~ "\n"
+#~ " 1. VON und NACH sind einleitende Teile der momentanen bzw. neuen URL\n"
+#~ " der Arbeitskopie. (Die Angabe der kompletten neuen und alten URLs ist\n"
+#~ " erlaubt.) Verwenden Sie »svn info« zur Anzeige der momentanen URL.\n"
+#~ "\n"
+#~ " 2. NACH ist die vollständige neue URL im Projektarchiv für PFAD.\n"
+#~ "\n"
+#~ " Beispiele:\n"
+#~ " svn relocate http:// svn:// Projekt1 Projekt2\n"
+#~ " svn relocate http://www.example.com/repo/Projekt \\\n"
+#~ " svn://svn.example.com/repo/Projekt\n"
+
+#~ msgid ""
+#~ "Update the working copy to a different URL within the same repository.\n"
+#~ "usage: 1. switch URL[@PEGREV] [PATH]\n"
+#~ " 2. switch --relocate FROM-PREFIX TO-PREFIX [PATH...]\n"
+#~ "\n"
+#~ " 1. Update the working copy to mirror a new URL within the repository.\n"
+#~ " This behavior is similar to 'svn update', and is the way to\n"
+#~ " move a working copy to a branch or tag within the same repository.\n"
+#~ " If specified, PEGREV determines in which revision the target is first\n"
+#~ " looked up.\n"
+#~ "\n"
+#~ " If --force is used, unversioned obstructing paths in the working\n"
+#~ " copy do not automatically cause a failure if the switch attempts to\n"
+#~ " add the same path. If the obstructing path is the same type (file\n"
+#~ " or directory) as the corresponding path in the repository it becomes\n"
+#~ " versioned but its contents are left 'as-is' in the working copy.\n"
+#~ " This means that an obstructing directory's unversioned children may\n"
+#~ " also obstruct and become versioned. For files, any content differences\n"
+#~ " between the obstruction and the repository are treated like a local\n"
+#~ " modification to the working copy. All properties from the repository\n"
+#~ " are applied to the obstructing path.\n"
+#~ "\n"
+#~ " Use the --set-depth option to set a new working copy depth on the\n"
+#~ " targets of this operation.\n"
+#~ "\n"
+#~ " By default, Subversion will refuse to switch a working copy path to\n"
+#~ " a new URL with which it shares no common version control ancestry.\n"
+#~ " Use the '--ignore-ancestry' option to override this sanity check.\n"
+#~ "\n"
+#~ " 2. The '--relocate' option is deprecated. This syntax is equivalent to\n"
+#~ " 'svn relocate FROM-PREFIX TO-PREFIX [PATH]'.\n"
+#~ "\n"
+#~ " See also 'svn help update' for a list of possible characters\n"
+#~ " reporting the action taken.\n"
+#~ "\n"
+#~ " Examples:\n"
+#~ " svn switch ^/branches/1.x-release\n"
+#~ " svn switch --relocate http:// svn://\n"
+#~ " svn switch --relocate http://www.example.com/repo/project \\\n"
+#~ " svn://svn.example.com/repo/project\n"
+#~ msgstr ""
+#~ "Stellt die Arbeitskopie auf eine andere URL.\n"
+#~ "Aufruf: 1. switch URL[@PEGREV] [PFAD]\n"
+#~ " 2. switch --relocate VON NACH [PFAD...]\n"
+#~ "\n"
+#~ " 1. Stellt die Arbeitskopie so um, dass sie eine neue URL im Projektarchiv\n"
+#~ " widerspiegelt. Dieses Verhalten ist ähnlich zu »svn update« und wird\n"
+#~ " verwendet, um eine Arbeitskopie auf einen Zweig oder ein Tag im selben\n"
+#~ " Projektarchiv umzustellen. Falls angegeben, spezifiziert PEGREV,\n"
+#~ " in welcher Revision zuerst nach dem Ziel gesucht wird.\n"
+#~ "\n"
+#~ " Falls --force verwendet wird, führen nicht versionierte, behindernde\n"
+#~ " Pfade in der Arbeitskopie nicht automatisch zu einem Fehler, falls die\n"
+#~ " Umplatzierung versucht, den selben Pfad hinzuzufügen. Falls der\n"
+#~ " behindernde Pfad vom selben Typ (Datei oder Verzeichnis) wie der\n"
+#~ " entsprechende Pfad im Projektarchiv ist, wird er versioniert aber sein\n"
+#~ " Inhalt bleibt wie er ist in der Arbeitskopie. Das bedeutet, dass\n"
+#~ " nicht versionierte Objekte eines behindernden Verzeichnisses ebenso\n"
+#~ " behindernd sein und versioniert werden könnten. Für Dateien werden alle\n"
+#~ " inhaltlichen Unterschiede zwischen der Behinderung und dem Projektarchiv\n"
+#~ " wie lokale Änderungen der Arbeitskopie interpretiert. Alle Eigenschaften\n"
+#~ " des Projektarchivs werden auf den behindernden Pfad angewandt.\n"
+#~ "\n"
+#~ " Verwenden Sie die Option --set-depth, um eine neue Arbeitskopietiefe für\n"
+#~ " die Ziele dieser Operation zu setzen.\n"
+#~ "\n"
+#~ " Subversion wird sich im Normalfall weigern, eine Arbeitkopie auf eine neue\n"
+#~ " URL umzustellen, mit dem sie keine gemeinsame Vorgeschichte in der\n"
+#~ " Versionskontrolle hat. »--ignore-ancestry« übergeht diese Prüfung.\n"
+#~ "\n"
+#~ " 2. Die Option »--relocate« ist veraltet. Der Syntax ist identisch mit\n"
+#~ " »svn relocate VON NACH [PFAD]«.\n"
+#~ "\n"
+#~ " Siehe auch »svn help update« für eine Liste möglicher Buchstaben,\n"
+#~ " die die durchgeführte Aktion beschreiben.\n"
+#~ "\n"
+#~ " Examples:\n"
+#~ " svn switch ^/branches/Version-1.x\n"
+#~ " svn switch --relocate http:// svn://\n"
+#~ " svn switch --relocate http://www.example.com/repo/Projekt \\\n"
+#~ " svn://svn.example.com/repo/Projekt\n"
+
+# Parts of the text (--force and --set-depth) are shared with the
+# switch help. Keep it consistent.
+#~ msgid ""
+#~ "Bring changes from the repository into the working copy.\n"
+#~ "usage: update [PATH...]\n"
+#~ "\n"
+#~ " If no revision is given, bring working copy up-to-date with HEAD rev.\n"
+#~ " Else synchronize working copy to revision given by -r.\n"
+#~ "\n"
+#~ " For each updated item a line will be printed with characters reporting\n"
+#~ " the action taken. These characters have the following meaning:\n"
+#~ "\n"
+#~ " A Added\n"
+#~ " D Deleted\n"
+#~ " U Updated\n"
+#~ " C Conflict\n"
+#~ " G Merged\n"
+#~ " E Existed\n"
+#~ " R Replaced\n"
+#~ "\n"
+#~ " Characters in the first column report about the item itself.\n"
+#~ " Characters in the second column report about properties of the item.\n"
+#~ " A 'B' in the third column signifies that the lock for the file has\n"
+#~ " been broken or stolen.\n"
+#~ " A 'C' in the fourth column indicates a tree conflict, while a 'C' in\n"
+#~ " the first and second columns indicate textual conflicts in files\n"
+#~ " and in property values, respectively.\n"
+#~ "\n"
+#~ " If --force is used, unversioned obstructing paths in the working\n"
+#~ " copy do not automatically cause a failure if the update attempts to\n"
+#~ " add the same path. If the obstructing path is the same type (file\n"
+#~ " or directory) as the corresponding path in the repository it becomes\n"
+#~ " versioned but its contents are left 'as-is' in the working copy.\n"
+#~ " This means that an obstructing directory's unversioned children may\n"
+#~ " also obstruct and become versioned. For files, any content differences\n"
+#~ " between the obstruction and the repository are treated like a local\n"
+#~ " modification to the working copy. All properties from the repository\n"
+#~ " are applied to the obstructing path. Obstructing paths are reported\n"
+#~ " in the first column with code 'E'.\n"
+#~ "\n"
+#~ " If the specified update target is missing from the working copy but its\n"
+#~ " immediate parent directory is present, checkout the target into its\n"
+#~ " parent directory at the specified depth. If --parents is specified,\n"
+#~ " create any missing parent directories of the target by checking them\n"
+#~ " out, too, at depth=empty.\n"
+#~ "\n"
+#~ " Use the --set-depth option to set a new working copy depth on the\n"
+#~ " targets of this operation.\n"
+#~ msgstr ""
+#~ "Aktualisiert die Arbeitskopie mit Änderungen aus dem Projektarchiv.\n"
+#~ "Aufruf: update [PFAD...]\n"
+#~ "\n"
+#~ " Ist keine Revision angegeben, wird die Arbeitskopie auf den aktuellen\n"
+#~ " Stand der HEAD-Revision gebracht. Ansonsten wird die Arbeitskopie mit der\n"
+#~ " durch -r angegebenen Revision synchronisiert.\n"
+#~ "\n"
+#~ " Für jedes aktualisierte Objekt wird eine Zeile mit einem Buchstaben für die\n"
+#~ " durchgeführte Aktion ausgegeben. Diese haben die folgenden Bedeutungen\n"
+#~ "\n"
+#~ " A Added - Hinzugefügt\n"
+#~ " D Deleted - Gelöscht\n"
+#~ " U Updated - Aktualisiert\n"
+#~ " C Conflict - Konflikt\n"
+#~ " G Merged - Zusammengeführt\n"
+#~ " E Existed - Existierend\n"
+#~ " R Replaced - Ersetzt\n"
+#~ "\n"
+#~ " Ein Buchstabe in der ersten Spalte symbolisiert eine Aktualisierung der\n"
+#~ " Datei, während Aktualisierungen der Dateieigenschaften in der zweiten\n"
+#~ " Spalte angezeigt werden.\n"
+#~ " Ein »B« in der dritten Spalte zeigt an, dass die Sperre für die Datei\n"
+#~ " aufgebrochen oder gestohlen wurde.\n"
+#~ " Ein »C« in der vierten Spalte zeigt einen Baumkonflikt an, während es\n"
+#~ " in der ersten und zweiten Spalte jeweils einen Konflikt im Text bzw.\n"
+#~ " einer Eigenschaft anzeigt.\n"
+#~ "\n"
+#~ " Falls --force verwendet wird, werden nichtversionierte behindernde Pfade in\n"
+#~ " der Arbeitskopie nicht automatisch einen Fehlschlag verursachen, wenn die\n"
+#~ " Aktualisierung versucht, den selben Pfad hinzufügen. Ist der behindernde Pfad\n"
+#~ " vom selben Typ (Datei oder Verzeichnis) wie der entsprechende Pfad im\n"
+#~ " Projektarchiv, wird es versioniert, aber der Inhalt verbleibt wie er ist\n"
+#~ " in der Arbeitskopie.\n"
+#~ " Das bedeutet, dass nichtversionierte Kinder eines behindernden\n"
+#~ " Verzeichnisses ebenso behindert werden und versioniert werden können. Für\n"
+#~ " Dateien werden alle inhaltlichen Unterschiede zwischen der Behinderung und\n"
+#~ " dem Projektarchiv wie lokale Änderungen in der Arbeitskopie interpretiert.\n"
+#~ " Alle Eigenschaften des Projektarchivs werden auf den behindernden Pfad\n"
+#~ " angewandt. Behindernde Pfade werden in der ersten Spalte mit »E« angezeigt.\n"
+#~ "\n"
+#~ " Falls das angegebene Ziel der Aktualisierung in der Arbeitskopie fehlt aber\n"
+#~ " dessen unmittelbares Elternverzeichnis vorhanden ist, wird das angegebene\n"
+#~ " Ziel in das Elternverzeichnis mit der angegebenen Tiefe ausgecheckt. Falls\n"
+#~ " »--parents« angegeben wird, werden alle fehlenden Elternverzeichnisse auch\n"
+#~ " ausgecheckt, mit der Tiefe »empty«.\n"
+#~ " Verwenden Sie die Option --set-depth, um eine neue Arbeitskopietiefe für\n"
+#~ " die Ziele dieser Operation zu setzen. Zurzeit kann die Tiefe eines\n"
+#~ " Arbeitskopieverzeichnisses nur erhöht werden (tiefer ineinander geschachtelt);\n"
+#~ " eine Verzeichnistiefe kann nicht reduziert werden.\n"
+
+#~ msgid "--trust-unknown-ca requires --non-interactive"
+#~ msgstr "--trust-unknown-ca erfordert --non-interactive"
+
+#~ msgid "--trust-cn-mismatch requires --non-interactive"
+#~ msgstr "--trust-cn-mismatch erfordert --non-interactive"
+
+#~ msgid "--trust-not-yet-valid requires --non-interactive"
+#~ msgstr "--trust-not-yet-valid erfordert --non-interactive"
+
+#~ msgid ""
+#~ "usage: 1. svnadmin delrevprop REPOS_PATH -r REVISION NAME\n"
+#~ " 2. svnadmin delrevprop REPO_PATH -t TXN NAME\n"
+#~ "\n"
+#~ "1. Delete the property NAME on revision REVISION.\n"
+#~ "\n"
+#~ "Use --use-pre-revprop-change-hook/--use-post-revprop-change-hook to\n"
+#~ "trigger the revision property-related hooks (for example, if you want\n"
+#~ "an email notification sent from your post-revprop-change hook).\n"
+#~ "\n"
+#~ "NOTE: Revision properties are not versioned, so this command will\n"
+#~ "irreversibly destroy the previous value of the property.\n"
+#~ "\n"
+#~ "2. Delete the property NAME on transaction TXN.\n"
+#~ msgstr ""
+#~ "Aufruf: 1. svnadmin delrevprop ARCHIV_PFAD -r REV NAME\n"
+#~ "\n"
+#~ "1. Löscht die Eigenschaft NAME der Revision REV.\n"
+#~ "\n"
+#~ "Mit »--use-pre-revprop-change-hook«/»--use-post-revprop-change-hook«\n"
+#~ "lösen Sie die mit den Revisionseigenschaften zusammenhängenden Aktionen aus\n"
+#~ "(z.B. falls Sie E-Mail-Benachrichtigungen durch Ihre »post-revprop-change«-\n"
+#~ "Aktion versenden wollen).\n"
+#~ "\n"
+#~ "ACHTUNG: Revisionseigenschaften sind nicht versioniert. Dieser Befehl\n"
+#~ "entfernt also unwiederbringlich die vorherige Eigenschaft.\n"
+#~ "\n"
+#~ "2. Löscht die Eigenschaft NAME der Transaktion TXN.\n"
+
+#~ msgid ""
+#~ "usage: svnadmin help [SUBCOMMAND...]\n"
+#~ "\n"
+#~ "Describe the usage of this program or its subcommands.\n"
+#~ msgstr ""
+#~ "Aufruf: svnadmin help [UNTERBEFEHL...]\n"
+#~ "\n"
+#~ "Beschreibt die Anwendung dieses Programms und seiner Unterbefehle.\n"
+
+#~ msgid ""
+#~ "usage: svnadmin lstxns REPOS_PATH\n"
+#~ "\n"
+#~ "Print the names of all uncommitted transactions.\n"
+#~ msgstr ""
+#~ "Aufruf: svnadmin lstxns ARCHIV_PFAD\n"
+#~ "\n"
+#~ "Gibt die Namen aller nicht übertragenen Transaktionen aus.\n"
+
+#~ msgid ""
+#~ "usage: 1. svnadmin setrevprop REPOS_PATH -r REVISION NAME FILE\n"
+#~ " 2. svnadmin setrevprop REPOS_PATH -t TXN NAME FILE\n"
+#~ "\n"
+#~ "1. Set the property NAME on revision REVISION to the contents of FILE.\n"
+#~ "\n"
+#~ "Use --use-pre-revprop-change-hook/--use-post-revprop-change-hook to\n"
+#~ "trigger the revision property-related hooks (for example, if you want\n"
+#~ "an email notification sent from your post-revprop-change hook).\n"
+#~ "\n"
+#~ "NOTE: Revision properties are not versioned, so this command will\n"
+#~ "overwrite the previous value of the property.\n"
+#~ "\n"
+#~ "2. Set the property NAME on transaction TXN to the contents of FILE.\n"
+#~ msgstr ""
+#~ "Aufruf: 1. svnadmin setrevprop ARCHIV_PFAD -r REV NAME DATEI\n"
+#~ "\n"
+#~ "1. Setzt Eigenschaft NAME der Revision REV auf den Inhalt der Datei DATEI.\n"
+#~ "\n"
+#~ "Mit »--use-pre-revprop-change-hook«/»--use-post-revprop-change-hook«\n"
+#~ "lösen Sie die mit den Revisionseigenschaften zusammenhängenden Aktionen aus\n"
+#~ "(z.B. falls Sie E-Mail-Benachrichtigungen durch Ihre »post-revprop-change«-\n"
+#~ "Aktion versenden wollen).\n"
+#~ "\n"
+#~ "ACHTUNG: Revisionseigenschaften sind nicht versioniert. Dieser Befehl\n"
+#~ "überschreibt also den vorherigen Wert der Eigenschaft.\n"
+#~ "\n"
+#~ "2. Setzt Eigenschaft NAME der Transaktion TXN auf den Inhalt der Datei DATEI.\n"
+
+# FIXME: "looked up" ist überall leicht unterschiedlich übersetzt
+# Ich (Jens) bevorzuge "gesucht" statt "nachgeschlagen" oder "durchsucht", "nachgeschaut"
+# FIXME: Standardsätze sollten eigene msgid haben!
+#~ msgid ""
+#~ "List directory entries in the repository.\n"
+#~ "usage: null-list [TARGET[@REV]...]\n"
+#~ "\n"
+#~ " List each TARGET file and the contents of each TARGET directory as\n"
+#~ " they exist in the repository. If TARGET is a working copy path, the\n"
+#~ " corresponding repository URL will be used. If specified, REV determines\n"
+#~ " in which revision the target is first looked up.\n"
+#~ "\n"
+#~ " The default TARGET is '.', meaning the repository URL of the current\n"
+#~ " working directory.\n"
+#~ "\n"
+#~ " With --verbose, the following fields will be fetched for each item:\n"
+#~ "\n"
+#~ " Revision number of the last commit\n"
+#~ " Author of the last commit\n"
+#~ " If locked, the letter 'O'. (Use 'svn info URL' to see details)\n"
+#~ " Size (in bytes)\n"
+#~ " Date and time of the last commit\n"
+#~ msgstr ""
+#~ "Zeigt Verzeichniseinträge im Projektarchiv.\n"
+#~ "Aufruf: null-list [ZIEL[@REV]...]\n"
+#~ "\n"
+#~ " Listet jede ZIEL-Datei und die Inhalte jedes ZIEL-Verzeichnisses, wie\n"
+#~ " sie im Projektarchiv existieren, auf. Wenn ZIEL ein Arbeitskopiepfad ist,\n"
+#~ " wird die entsprechende URL des Projektarchivs verwendet. REV bestimmt,\n"
+#~ " in welcher Revision zuerst nachgeschaut wird.\n"
+#~ "\n"
+#~ " Die Vorgabe für ZIEL ist ».«, d.h. die URL vom Projektarchiv des\n"
+#~ " aktuellen Verzeichnisses.\n"
+#~ "\n"
+#~ " Mit »--verbose« werden die folgenden Felder pro Objekt abgerufen:\n"
+#~ "\n"
+#~ " Revisionsnummer der letzten Ãœbertragung\n"
+#~ " Autor der letzten Ãœbertragung\n"
+#~ " Falls gesperrt, der Buchstabe »O« (»svn info URL« für Details)\n"
+#~ " Größe (in Bytes)\n"
+#~ " Datum und Zeit der letzten Ãœbertragung\n"
+
+#~ msgid ""
+#~ "Fetch the log messages for a set of revision(s) and/or path(s).\n"
+#~ "usage: 1. null-log [PATH][@REV]\n"
+#~ " 2. null-log URL[@REV] [PATH...]\n"
+#~ "\n"
+#~ " 1. Fetch the log messages for the URL corresponding to PATH\n"
+#~ " (default: '.'). If specified, REV is the revision in which the\n"
+#~ " URL is first looked up, and the default revision range is REV:1.\n"
+#~ " If REV is not specified, the default revision range is BASE:1,\n"
+#~ " since the URL might not exist in the HEAD revision.\n"
+#~ "\n"
+#~ " 2. Fetch the log messages for the PATHs (default: '.') under URL.\n"
+#~ " If specified, REV is the revision in which the URL is first\n"
+#~ " looked up, and the default revision range is REV:1; otherwise,\n"
+#~ " the URL is looked up in HEAD, and the default revision range is\n"
+#~ " HEAD:1.\n"
+#~ "\n"
+#~ " Multiple '-c' or '-r' options may be specified (but not a\n"
+#~ " combination of '-c' and '-r' options), and mixing of forward and\n"
+#~ " reverse ranges is allowed.\n"
+#~ "\n"
+#~ " With -v, also print all affected paths with each log message.\n"
+#~ " With -q, don't print the log message body itself (note that this is\n"
+#~ " compatible with -v).\n"
+#~ "\n"
+#~ " Each log message is printed just once, even if more than one of the\n"
+#~ " affected paths for that revision were explicitly requested. Logs\n"
+#~ " follow copy history by default. Use --stop-on-copy to disable this\n"
+#~ " behavior, which can be useful for determining branchpoints.\n"
+#~ msgstr ""
+#~ "Ruft die Logmeldungen für eine Menge von Revisionen und/oder Dateien ab.\n"
+#~ "Aufruf: 1. null-log [PFAD][@REV]\n"
+#~ " 2. null-log URL[@REV] [PFAD...]\n"
+#~ "\n"
+#~ " 1. Ruft Log-Einträge der zu PFAD gehörenden URL ab. (Vorgabe: ».«)\n"
+#~ " Ist REV angegeben, ist das die Revision in der URL zuerst gesucht\n"
+#~ " Ist REV angegeben, ist das die Revision in der URL zuerst gesucht\n"
+#~ " wird, und der vorgegebene Versionsbereich ist REV:1. Ist REV nicht\n"
+#~ " angegeben, so ist der vorgegebene Revisionsbereich BASE:1, da die\n"
+#~ " URL möglicherweise in der Revision HEAD nicht existiert.\n"
+#~ "\n"
+#~ " 2. Ruft Log-Einträge für PFAD(e) unter URL ab, (Vorgabe: ».«)\n"
+#~ " Ist REV angegeben, ist das die Revision in der URL zuerst gesucht\n"
+#~ " wird, und der vorgegebene Versionsbereich ist REV:1. Andernfalls wird\n"
+#~ " URL in HEAD gesucht und der vorgegebene Revisionsbereich ist\n"
+#~ " HEAD:1.\n"
+#~ "\n"
+#~ " Mehrere »-c«- oder »-r«-Optionen dürfen angegeben werden (aber keine\n"
+#~ " Kombination von »-c« und »-r«) und das Mischen von vor- und\n"
+#~ " rückwärtigen Bereichen ist erlaubt.\n"
+#~ "\n"
+#~ " Mit »-v« werden auch die betroffenen Pfade mit jeder Logmeldung ausgegeben.\n"
+#~ " Mit »-q« wird die Logmeldung selbst nicht ausgegeben (Hinweis: Diese Option\n"
+#~ " ist kompatibel mit »-v«).\n"
+#~ "\n"
+#~ " Jede Logmeldung wird nur einmal ausgegeben, selbst wenn mehr als einer\n"
+#~ " der betroffenen Pfade explizit angefragt wurde. Logs folgen per Vorgabe\n"
+#~ " der Historie von Kopien. Benutzen Sie »--stop-on-copy«, um dieses Verhalten,\n"
+#~ " z.B. zum Auffinden von Verzweigungen, zu deaktivieren.\n"
+
+#~ msgid ""
+#~ "Display information about a local or remote item.\n"
+#~ "usage: null-info [TARGET[@REV]...]\n"
+#~ "\n"
+#~ " Print information about each TARGET (default: '.').\n"
+#~ " TARGET may be either a working-copy path or URL. If specified, REV\n"
+#~ " determines in which revision the target is first looked up.\n"
+#~ msgstr ""
+#~ "Zeigt Informationen über ein lokales oder auf dem Server befindliches\n"
+#~ "Objekt an.\n"
+#~ "Aufruf: null-info [ZIEL[@REV]...]\n"
+#~ "\n"
+#~ " Gibt Informationen über jedes ZIEL aus (Vorgabe: ».«).\n"
+#~ " ZIEL kann entweder ein Pfad einer Arbeitskopie oder eine URL sein. Wenn\n"
+#~ " angegeben, bestimmt REV, in welcher Revision zuerst nach dem Ziel gesucht\n"
+#~ " wird.\n"
+
+#~ msgid "Can't open stdio file"
+#~ msgstr "Kann Standardeingabe nicht öffnen"
+
+#~ msgid "Treat the path prefixes as file glob patterns."
+#~ msgstr "Pfadpräfix als Dateiplatzhalter behandeln."
+
+#~ msgid ""
+#~ "usage: svnfsfs help [SUBCOMMAND...]\n"
+#~ "\n"
+#~ "Describe the usage of this program or its subcommands.\n"
+#~ msgstr ""
+#~ "Aufruf: svnfsfs help [UNTERBEFEHL...]\n"
+#~ "\n"
+#~ "Beschreibt die Anwendung dieses Programms und seiner Unterbefehle.\n"
+
+#~ msgid ""
+#~ "usage: svnfsfs dump-index REPOS_PATH -r REV\n"
+#~ "\n"
+#~ "Dump the index contents for the revision / pack file containing revision REV\n"
+#~ "to console. This is only available for FSFS format 7 (SVN 1.9+) repositories.\n"
+#~ "The table produced contains a header in the first line followed by one line\n"
+#~ "per index entry, ordered by location in the revision / pack file. Columns:\n"
+#~ "\n"
+#~ " * Byte offset (hex) at which the item starts\n"
+#~ " * Length (hex) of the item in bytes\n"
+#~ " * Item type (string) is one of the following:\n"
+#~ "\n"
+#~ " none ... Unused section. File contents shall be NULs.\n"
+#~ " frep ... File representation.\n"
+#~ " drep ... Directory representation.\n"
+#~ " fprop .. File property.\n"
+#~ " dprop .. Directory property.\n"
+#~ " node ... Node revision.\n"
+#~ " chgs ... Changed paths list.\n"
+#~ " rep .... Representation of unknown type. Should not be used.\n"
+#~ " ??? .... Invalid. Index data is corrupt.\n"
+#~ "\n"
+#~ " The distinction between frep, drep, fprop and dprop is a mere internal\n"
+#~ " classification used for various optimizations and does not affect the\n"
+#~ " operational correctness.\n"
+#~ "\n"
+#~ " * Revision that the item belongs to (decimal)\n"
+#~ " * Item number (decimal) within that revision\n"
+#~ " * Modified FNV1a checksum (8 hex digits)\n"
+#~ msgstr ""
+#~ "Aufruf: svnfsfs dump-index ARCHIV_PFAD -r REV\n"
+#~ "\n"
+#~ "Gibt den Inhalt des Index der Revisions- oder Pack-Datei der Revision REV\n"
+#~ "auf die Konsole aus. Nur verfügbar für Projektarchive im FSFS Format 7\n"
+#~ "(SVN 1.9+). Die ausgegebene Tabelle beinhaltet Kopfdaten in der ersten Zeile\n"
+#~ "gefolgt von einer Zeile je Indexeintrag, geordnet nach Position in der\n"
+#~ "Revisions- / Pack-Datei. Spalten:\n"
+#~ "\n"
+#~ " * Offset an dem das Element beginnt in Byte (hexadezimal)\n"
+#~ " * Länge des Elements in Byte (hexadezimal)\n"
+#~ " * Typ des Elements (Text), und zwar einen der Folgenden:\n"
+#~ "\n"
+#~ " none ... Nicht verwendeter Abschnitt. Dateninhalt sind NUL-Byte.\n"
+#~ " frep ... Darstellung einer Datei.\n"
+#~ " drep ... Darstellung eines Verzeichnisse.\n"
+#~ " fprop .. Eigenschaft einer Datei.\n"
+#~ " dprop .. Eigenschaft eines Verzeichnisses.\n"
+#~ " node ... Knotenrevision.\n"
+#~ " chgs ... Liste geänderter Pfade.\n"
+#~ " rep .... Darstellung unbekannten Typs. Sollte nicht verwendet werden.\n"
+#~ " ??? .... Ungültig. Indexdaten sind beschädigt.\n"
+#~ "\n"
+#~ " Die Unterscheidung zwischen frep, drep, fprop und dprop ist eine rein\n"
+#~ " interne Einordnung für verschiedene Optimierungen und betrifft nicht die\n"
+#~ " Korrektheit im normalen Betrieb.\n"
+#~ "\n"
+#~ " * Revision zu dem das Element gehört (dezimal)\n"
+#~ " * Nummer des Elements in dieser Revision (dezimal)\n"
+#~ " * Modifizierte FNV1a-Prüfsumme (8 hexadezimale Stellen)\n"
+
+#~ msgid ""
+#~ "usage: svnlook help [SUBCOMMAND...]\n"
+#~ "\n"
+#~ "Describe the usage of this program or its subcommands.\n"
+#~ msgstr ""
+#~ "Aufruf: svnlook help [UNTERBEFEHL...]\n"
+#~ "\n"
+#~ "Beschreibt die Anwendung dieses Programms und seiner Unterbefehle.\n"
+
+#~ msgid ""
+#~ "usage: svnrdump help [SUBCOMMAND...]\n"
+#~ "\n"
+#~ "Describe the usage of this program or its subcommands.\n"
+#~ msgstr ""
+#~ "Aufruf: svnrdump help [UNTERBEFEHL...]\n"
+#~ "\n"
+#~ "Beschreibt die Anwendung dieses Programms und seiner Unterbefehle.\n"
+
+#~ msgid ""
+#~ "Maximum number of server threads, even if there\n"
+#~ " are more connections. Minimum value is 1.\n"
+#~ " Default is 256.\n"
+#~ " [used only with --threads]"
+#~ msgstr ""
+#~ "Höchstanzahl der Serverthreads, selbst wenn mehr\n"
+#~ " Verbindungen anliegen. Mindestwert 1.\n"
+#~ " Vorgabe ist 256.\n"
+#~ " [nur zusammen mit --threads verwendet]"
+
+#~ msgid ""
+#~ "usage:\n"
+#~ "\n"
+#~ " 1. svnsync copy-revprops DEST_URL [SOURCE_URL]\n"
+#~ " 2. svnsync copy-revprops DEST_URL REV[:REV2]\n"
+#~ "\n"
+#~ "Copy the revision properties in a given range of revisions to the\n"
+#~ "destination from the source with which it was initialized. If the\n"
+#~ "revision range is not specified, it defaults to all revisions in\n"
+#~ "the DEST_URL repository. Note also that the 'HEAD' revision is the\n"
+#~ "latest in DEST_URL, not necessarily the latest in SOURCE_URL.\n"
+#~ "\n"
+#~ "If SOURCE_URL is provided, use that as the source repository URL,\n"
+#~ "ignoring what is recorded in the destination repository as the\n"
+#~ "source URL. Specifying SOURCE_URL is recommended in particular\n"
+#~ "if untrusted users/administrators may have write access to the\n"
+#~ "DEST_URL repository.\n"
+#~ "\n"
+#~ "Form 2 is deprecated syntax, equivalent to specifying \"-rREV[:REV2]\".\n"
+#~ msgstr ""
+#~ "Aufruf:\n"
+#~ "\n"
+#~ " 1. svnsync copy-revprops ZIEL_URL [QUELL_URL]\n"
+#~ " 2. svnsync copy-revprops ZIEL_URL PAR1[:PAR2]\n"
+#~ "\n"
+#~ "Kopiert Revisionseigenschaften eines angegebenen Bereichs\n"
+#~ "von Revisionen in ein Zielprojektarchiv, aus der Quelle mit der\n"
+#~ "dieses für die Synchronisierung vorbereitet wurde. Wenn der\n"
+#~ "Revisionsbereich nicht angegeben wurde, werden alle im\n"
+#~ "Revisionen im Projektarchiv ZIEL_URL übertragen.\n"
+#~ "Beachten Sie, dass die Revision »HEAD« die neueste Revision\n"
+#~ "in ZIEL_URL bezeichnet, nicht notwendigerweise die neueste in\n"
+#~ "QUELL_URL.\n"
+#~ "\n"
+#~ "Falls QUELL_URL angegeben ist, wird dies als Quellprojektarchiv\n"
+#~ "verwendet, egal welche Quelle im Zielprojektarchiv konfiguriert wurde.\n"
+#~ "Die Angabe von QUELL_URL ist ratsam, falls nicht vertrauenswürdige\n"
+#~ "Benutzer oder Administratoren Schreibzugriff auf ZIEL_URL haben.\n"
+#~ "\n"
+#~ "Die Angabe des Revisionsbereichs in der zweiten Form ist veraltet\n"
+#~ "und ist gleichbedeutend mit der Angabe der Option »-r PAR1[:PAR2]«\n"
+
+#~ msgid ""
+#~ "usage: svnsync help [SUBCOMMAND...]\n"
+#~ "\n"
+#~ "Describe the usage of this program or its subcommands.\n"
+#~ msgstr ""
+#~ "Aufruf: svnsync help [UNTERBEFEHL...]\n"
+#~ "\n"
+#~ "Beschreibt die Anwendung dieses Programms und seiner Unterbefehle.\n"
+
#~ msgid "Path '/%s' already exists"
#~ msgstr "Pfad »/%s« existiert bereits"
@@ -18147,9 +23594,6 @@ msgstr "Nicht übertragenes lokal hinzugefügtes, kopiertes oder verschobenes El
#~ msgid "Can't write to '%s'"
#~ msgstr "Kann nicht nach »%s« schreiben"
-#~ msgid "Repository '%s' not found in the database"
-#~ msgstr "Projektverzeichnis »%s« nicht in der Datenbank gefunden"
-
#~ msgid "(To set the '%s' property, re-run with '--force'.)"
#~ msgstr "(Verwenden Sie »--force« um das Setzen der Eigenschaft »%s« zu erzwingen)"
@@ -18173,23 +23617,6 @@ msgstr "Nicht übertragenes lokal hinzugefügtes, kopiertes oder verschobenes El
#~ "\n"
#~ " Falls angegeben, bestimmt REV, in welcher Revision zuerst nachgeschaut wird.\n"
-#~ msgid ""
-#~ "Display information about a local or remote item.\n"
-#~ "usage: info [TARGET[@REV]...]\n"
-#~ "\n"
-#~ " Print information about each TARGET (default: '.').\n"
-#~ " TARGET may be either a working-copy path or URL. If specified, REV\n"
-#~ " determines in which revision the target is first looked up.\n"
-#~ msgstr ""
-#~ "Zeigt Informationen über ein lokales oder auf dem Server befindliches\n"
-#~ "Objekt an.\n"
-#~ "Aufruf: info [ZIEL[@REV]...]\n"
-#~ "\n"
-#~ " Gibt Informationen über jedes ZIEL aus (Vorgabe: ».«).\n"
-#~ " ZIEL kann entweder ein Pfad einer Arbeitskopie oder eine URL sein. Wenn\n"
-#~ " angegeben, bestimmt REV, in welcher Revision zuerst nach dem Ziel gesucht\n"
-#~ " wird.\n"
-
#~ msgid "don't print an extra newline"
#~ msgstr "Keinen zusätzlichen Zeilenumbruch ausgeben"
@@ -18211,9 +23638,6 @@ msgstr "Nicht übertragenes lokal hinzugefügtes, kopiertes oder verschobenes El
#~ msgid "No pathname preceding ':'"
#~ msgstr "Vor »:« steht kein Pfadname"
-#~ msgid "Cannot auto-resolve tree-conflict on '%s'"
-#~ msgstr "Kann Baumkonflikt in »%s« nicht automatisch auflösen"
-
#~ msgid ""
#~ "Print the youngest revision number of a target's repository.\n"
#~ "usage: youngest [TARGET]\n"
@@ -18412,9 +23836,6 @@ msgstr "Nicht übertragenes lokal hinzugefügtes, kopiertes oder verschobenes El
#~ msgid "Error retrieving REPORT"
#~ msgstr "Fehler beim Holen von REPORT"
-#~ msgid "XML parsing failed"
-#~ msgstr "XML-Parser schlug fehl"
-
#~ msgid "XML parsing failed: (%d %s)"
#~ msgstr "XML-Parser schlug fehl: (%d %s)"
@@ -18621,9 +24042,6 @@ msgstr "Nicht übertragenes lokal hinzugefügtes, kopiertes oder verschobenes El
#~ msgid "prefer local change"
#~ msgstr "Bevorzugt lokale Änderungen "
-#~ msgid "prefer incoming change"
-#~ msgstr "Bevorzugt empfangene Änderungen "
-
#~ msgid "break the move, change move destination into a copy"
#~ msgstr "Teilt die Verschiebung auf, wandelt Ziel der Verschiebung in eine Kopie um"
@@ -18656,15 +24074,6 @@ msgstr "Nicht übertragenes lokal hinzugefügtes, kopiertes oder verschobenes El
#~ " Hinweis: Dieser Unterbefehl erfordert keinen Netzwerkzugriff und löst\n"
#~ " Konfliktzustände auf.\n"
-#~ msgid ""
-#~ "usage: svnadmin freeze REPOS_PATH PROGRAM [ARG...]\n"
-#~ "\n"
-#~ "Run PROGRAM passing ARGS while holding a write-lock on REPOS_PATH.\n"
-#~ msgstr ""
-#~ "Aufruf: svnadmin freeze ARCHIV_PFAD PROGRAMM [PAR...]\n"
-#~ "\n"
-#~ "Führt PROGRAMM mit den Optionen PAR aus, während ARCHIV_PFAD mit einer Schreibsperre belegt wird.\n"
-
#~ msgid "Path '%s' has no URL"
#~ msgstr "Pfad »%s« hat keine URL"
@@ -18969,11 +24378,6 @@ msgstr "Nicht übertragenes lokal hinzugefügtes, kopiertes oder verschobenes El
#~ msgid "Got close-file element without preceding add-file or open-file"
#~ msgstr "Fand Element »close-file« ohne vorhergehendes »add-file« oder »open-file«"
-# FIXME: inkonsistent zu obigen Meldungen: open_directory statt opening a directory
-# (Wird Bezug zu Elementen in Dump hergestellt oder nicht?)
-#~ msgid "Got close-directory element without ever opening a directory"
-#~ msgstr "Fand Element »close-directory« ohne vorhergehendes Öffnen eines Verzeichnisses"
-
#~ msgid "Got cdata content for a prop delete"
#~ msgstr "Fand cdata-Inhalt für eine Eigenschaftslöschung"
@@ -19103,9 +24507,6 @@ msgstr "Nicht übertragenes lokal hinzugefügtes, kopiertes oder verschobenes El
#~ msgid "NULL mergeinfo\n"
#~ msgstr "Zusammenführungsinformationen sind NULL\n"
-#~ msgid "empty mergeinfo\n"
-#~ msgstr "Zusammenführungsinformationen sind leer\n"
-
#~ msgid "Schema format %d not recognized"
#~ msgstr "Schema-Format %d wird nicht erkannt"
@@ -19468,17 +24869,6 @@ msgstr "Nicht übertragenes lokal hinzugefügtes, kopiertes oder verschobenes El
#~ " URL -> URL: Vollständig serverseitiges Verschieben.\n"
#~ " Alle QUELLEn müssen vom selben Typ sein.\n"
-#~ msgid ""
-#~ "Resolve conflicts on working copy files or directories.\n"
-#~ "usage: resolve --accept=ARG [PATH...]\n"
-#~ "\n"
-#~ " Note: the --accept option is currently required.\n"
-#~ msgstr ""
-#~ "Auflösen von Konflikten in Arbeitskopiedateien oder -verzeichnissen.\n"
-#~ "Aufruf: resolve --accept=PAR [PFAD...]\n"
-#~ "\n"
-#~ " Bemerkung: Die Option --accept wird zurzeit benötigt.\n"
-
#~ msgid "--reintegrate cannot be used with --ignore-ancestry or --record-only"
#~ msgstr "--reintegrate kann nicht mit --ignore-ancestry oder --record-only verwendet werden"
@@ -19512,15 +24902,6 @@ msgstr "Nicht übertragenes lokal hinzugefügtes, kopiertes oder verschobenes El
#~ " earlier than 1.7"
#~ msgstr "Ein mit Subversion-Versionen vor 1.7 kompatibles Format verwenden"
-#~ msgid ""
-#~ "usage: svnadmin hotcopy REPOS_PATH NEW_REPOS_PATH\n"
-#~ "\n"
-#~ "Makes a hot copy of a repository.\n"
-#~ msgstr ""
-#~ "Aufruf: svnadmin hotcopy ARCHIV_PFAD ARCHIV_PFAD_NEU\n"
-#~ "\n"
-#~ "Erstellt eine Kopie des Projektarchivs im laufenden Betrieb.\n"
-
#~ msgid "Exactly one property name and one file argument required"
#~ msgstr "Genau ein Eigenschaftsname und ein Dateiparameter erforderlich"
@@ -19600,9 +24981,6 @@ msgstr "Nicht übertragenes lokal hinzugefügtes, kopiertes oder verschobenes El
#~ msgid "UUID mismatch: existing file '%s' was checked out from a different repository"
#~ msgstr "UUID-Fehler: Existierende Datei »%s« wurde aus einem anderen Projektarchiv ausgecheckt"
-#~ msgid "Error comparing '%s' and '%s'"
-#~ msgstr "Fehler beim Vergleichen von »%s« und »%s«"
-
#~ msgid "Revision type requires a working copy path, not a URL"
#~ msgstr "Revisionstyp erfordert einen Arbeitskopiepfad, keine URL"
@@ -19775,9 +25153,6 @@ msgstr "Nicht übertragenes lokal hinzugefügtes, kopiertes oder verschobenes El
#~ msgid "No delimiter after 'victim_path' in tree conflict description"
#~ msgstr "Kein Trenner nach »victim_path« in Baumkonfliktbeschreibung"
-#~ msgid "Shallowing of working copy depths is not yet supported"
-#~ msgstr "Das Verringern der Arbeitskopietiefen wird nicht unterstützt"
-
#~ msgid "Bad action in tree conflict description"
#~ msgstr "Fehlerhafter Wert von »action« in Baumkonfliktbeschreibung"
@@ -19806,9 +25181,6 @@ msgstr "Nicht übertragenes lokal hinzugefügtes, kopiertes oder verschobenes El
#~ " Erwartet: %s\n"
#~ " Tatsächlich: %s\n"
-#~ msgid "Invalid 'operation' field in tree conflict description"
-#~ msgstr "Ungültiges Feld »operation« in Baumkonfliktbeschreibung"
-
#~ msgid "Entry '%s' has invalid depth"
#~ msgstr "Eintrag »%s« hat eine ungültige Tiefe"
@@ -19992,17 +25364,6 @@ msgstr "Nicht übertragenes lokal hinzugefügtes, kopiertes oder verschobenes El
#~ " »%s« wurde lokal gelöscht.\n"
#~ " Eventuell wurde das Objekt umbenannt?\n"
-#~ msgid ""
-#~ "usage: svnsync synchronize DEST_URL\n"
-#~ "\n"
-#~ "Transfer all pending revisions to the destination from the source\n"
-#~ "with which it was initialized.\n"
-#~ msgstr ""
-#~ "Aufruf: svnsync synchronize ZIEL_URL\n"
-#~ "\n"
-#~ "Überträgt alle laufenden Revisionen von der Quelle, mit der es\n"
-#~ "initialisiert wurde, zum Ziel.\n"
-
#~ msgid "Won't delete locally modified directory '%s'"
#~ msgstr "Werde lokal verändertes Verzeichnis »%s« nicht löschen"
diff --git a/subversion/po/subversion.pot b/subversion/po/subversion.pot
index 3a917c2..316c4eb 100644
--- a/subversion/po/subversion.pot
+++ b/subversion/po/subversion.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: dev@subversion.apache.org\n"
-"POT-Creation-Date: 2018-07-14 20:30+0000\n"
+"POT-Creation-Date: 2018-09-28 10:59+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -222,7 +222,7 @@ msgstr ""
#. is errno on POSIX
#: ../include/svn_error_codes.h:306 ../libsvn_subr/cmdline.c:435
#: ../libsvn_subr/cmdline.c:466 ../libsvn_subr/cmdline.c:489 ../svn/util.c:571
-#: ../svnlook/svnlook.c:2000
+#: ../svnlook/svnlook.c:2034
#, c-format
msgid "Write error"
msgstr ""
@@ -861,7 +861,7 @@ msgstr ""
msgid "Repository has been moved"
msgstr ""
-#: ../include/svn_error_codes.h:1072 ../libsvn_ra_serf/util.c:937
+#: ../include/svn_error_codes.h:1072 ../libsvn_ra_serf/util.c:940
msgid "Connection timed out"
msgstr ""
@@ -961,7 +961,7 @@ msgstr ""
msgid "Operation does not apply to directory"
msgstr ""
-#: ../include/svn_error_codes.h:1185 ../svnadmin/svnadmin.c:1747
+#: ../include/svn_error_codes.h:1185 ../svnadmin/svnadmin.c:1813
#, c-format
msgid "Revision range is not allowed"
msgstr ""
@@ -1465,7 +1465,7 @@ msgid "GNOME Keyring is locked and we are non-interactive"
msgstr ""
#: ../libsvn_client/add.c:609 ../libsvn_client/cmdline.c:365
-#: ../libsvn_subr/opt.c:941
+#: ../libsvn_subr/opt.c:908
#, c-format
msgid "'%s' ends in a reserved name"
msgstr ""
@@ -1495,13 +1495,14 @@ msgid "Unsupported node kind for path '%s'"
msgstr ""
#: ../libsvn_client/add.c:908 ../libsvn_client/changelist.c:65
-#: ../libsvn_client/changelist.c:104 ../libsvn_client/deprecated.c:3098
-#: ../libsvn_client/export.c:1392 ../libsvn_client/import.c:861
-#: ../libsvn_client/patch.c:3745 ../libsvn_client/relocate.c:155
-#: ../libsvn_client/resolved.c:120 ../libsvn_client/revert.c:149
-#: ../libsvn_client/shelve.c:194 ../libsvn_client/status.c:368
+#: ../libsvn_client/changelist.c:104 ../libsvn_client/deprecated.c:3197
+#: ../libsvn_client/export.c:1389 ../libsvn_client/import.c:861
+#: ../libsvn_client/patch.c:3747 ../libsvn_client/relocate.c:155
+#: ../libsvn_client/resolved.c:120 ../libsvn_client/revert.c:152
+#: ../libsvn_client/shelf.c:1105 ../libsvn_client/status.c:444
#: ../libsvn_client/switch.c:471 ../libsvn_client/update.c:749
-#: ../libsvn_client/upgrade.c:111 ../svn/util.c:990 ../svnbench/util.c:76
+#: ../libsvn_client/upgrade.c:111 ../svn/shelf-cmd.c:1023 ../svn/util.c:990
+#: ../svnbench/util.c:76
#, c-format
msgid "'%s' is not a local path"
msgstr ""
@@ -1556,7 +1557,7 @@ msgstr ""
msgid "Target changelist name must not be empty"
msgstr ""
-#: ../libsvn_client/checkout.c:133 ../libsvn_client/export.c:1449
+#: ../libsvn_client/checkout.c:133 ../libsvn_client/export.c:1446
#: ../svnbench/null-export-cmd.c:293
#, c-format
msgid "URL '%s' doesn't exist"
@@ -1710,48 +1711,48 @@ msgstr ""
msgid "Standard properties can't be set explicitly as revision properties"
msgstr ""
-#: ../libsvn_client/conflicts.c:734 ../libsvn_client/conflicts.c:1095
-#: ../libsvn_client/conflicts.c:1688 ../libsvn_client/conflicts.c:4640
-#: ../libsvn_client/conflicts.c:5139 ../libsvn_client/conflicts.c:5161
-#: ../libsvn_client/conflicts.c:5212 ../libsvn_client/conflicts.c:5689
+#: ../libsvn_client/conflicts.c:734 ../libsvn_client/conflicts.c:1100
+#: ../libsvn_client/conflicts.c:1693 ../libsvn_client/conflicts.c:4985
+#: ../libsvn_client/conflicts.c:5359 ../libsvn_client/conflicts.c:5381
+#: ../libsvn_client/conflicts.c:5433 ../libsvn_client/conflicts.c:5906
msgid "unknown author"
msgstr ""
-#: ../libsvn_client/conflicts.c:1126
+#: ../libsvn_client/conflicts.c:1131
msgid "A file containing uncommitted changes was found in the working copy."
msgstr ""
-#: ../libsvn_client/conflicts.c:1129
+#: ../libsvn_client/conflicts.c:1134
msgid ""
"A file which differs from the corresponding file on the merge source branch "
"was found in the working copy."
msgstr ""
-#: ../libsvn_client/conflicts.c:1134
+#: ../libsvn_client/conflicts.c:1139
msgid "A file which already occupies this path was found in the working copy."
msgstr ""
-#: ../libsvn_client/conflicts.c:1138
+#: ../libsvn_client/conflicts.c:1143
msgid "An unversioned file was found in the working copy."
msgstr ""
-#: ../libsvn_client/conflicts.c:1142
+#: ../libsvn_client/conflicts.c:1147
msgid "A deleted file was found in the working copy."
msgstr ""
-#: ../libsvn_client/conflicts.c:1147
+#: ../libsvn_client/conflicts.c:1152
msgid "No such file was found in the working copy."
msgstr ""
#. ### display deleted revision
-#: ../libsvn_client/conflicts.c:1151
+#: ../libsvn_client/conflicts.c:1156
msgid ""
"No such file was found in the merge target working copy.\n"
"Perhaps the file has been deleted or moved away in the repository's history?"
msgstr ""
#. ### show more details about copies or replacements?
-#: ../libsvn_client/conflicts.c:1161
+#: ../libsvn_client/conflicts.c:1166
msgid ""
"A file scheduled to be added to the repository in the next commit was found "
"in the working copy."
@@ -1762,13 +1763,13 @@ msgstr ""
#. * This case cannot happen until we detect incoming
#. * moves, which we currently don't do.
#. ### find deleted/moved revision?
-#: ../libsvn_client/conflicts.c:1192 ../libsvn_client/conflicts.c:1224
+#: ../libsvn_client/conflicts.c:1197 ../libsvn_client/conflicts.c:1229
msgid ""
"The file in the working copy had been moved away at the time this conflict "
"was recorded."
msgstr ""
-#: ../libsvn_client/conflicts.c:1207 ../libsvn_client/conflicts.c:1240
+#: ../libsvn_client/conflicts.c:1212 ../libsvn_client/conflicts.c:1245
#, c-format
msgid ""
"The file in the working copy was moved away to\n"
@@ -1780,49 +1781,49 @@ msgstr ""
#. * This case cannot happen until we detect incoming
#. * moves, which we currently don't do.
#. ### find deleted/moved revision?
-#: ../libsvn_client/conflicts.c:1266 ../libsvn_client/conflicts.c:1298
+#: ../libsvn_client/conflicts.c:1271 ../libsvn_client/conflicts.c:1303
msgid ""
"A file had been moved here in the working copy at the time this conflict was "
"recorded."
msgstr ""
-#: ../libsvn_client/conflicts.c:1281 ../libsvn_client/conflicts.c:1314
+#: ../libsvn_client/conflicts.c:1286 ../libsvn_client/conflicts.c:1319
#, c-format
msgid ""
"A file was moved here in the working copy from\n"
"'%s'."
msgstr ""
-#: ../libsvn_client/conflicts.c:1350
+#: ../libsvn_client/conflicts.c:1355
msgid ""
"A directory containing uncommitted changes was found in the working copy."
msgstr ""
-#: ../libsvn_client/conflicts.c:1353
+#: ../libsvn_client/conflicts.c:1358
msgid ""
"A directory which differs from the corresponding directory on the merge "
"source branch was found in the working copy."
msgstr ""
-#: ../libsvn_client/conflicts.c:1358
+#: ../libsvn_client/conflicts.c:1363
msgid ""
"A directory which already occupies this path was found in the working copy."
msgstr ""
-#: ../libsvn_client/conflicts.c:1362
+#: ../libsvn_client/conflicts.c:1367
msgid "An unversioned directory was found in the working copy."
msgstr ""
-#: ../libsvn_client/conflicts.c:1366
+#: ../libsvn_client/conflicts.c:1371
msgid "A deleted directory was found in the working copy."
msgstr ""
-#: ../libsvn_client/conflicts.c:1372
+#: ../libsvn_client/conflicts.c:1377
msgid "No such directory was found in the working copy."
msgstr ""
#. ### display deleted revision
-#: ../libsvn_client/conflicts.c:1376
+#: ../libsvn_client/conflicts.c:1381
msgid ""
"No such directory was found in the merge target working copy.\n"
"Perhaps the directory has been deleted or moved away in the repository's "
@@ -1830,20 +1831,20 @@ msgid ""
msgstr ""
#. ### show more details about copies or replacements?
-#: ../libsvn_client/conflicts.c:1386
+#: ../libsvn_client/conflicts.c:1391
msgid ""
"A directory scheduled to be added to the repository in the next commit was "
"found in the working copy."
msgstr ""
#. The move no longer exists.
-#: ../libsvn_client/conflicts.c:1418
+#: ../libsvn_client/conflicts.c:1423
msgid ""
"The directory in the working copy had been moved away at the time this "
"conflict was recorded."
msgstr ""
-#: ../libsvn_client/conflicts.c:1433
+#: ../libsvn_client/conflicts.c:1438
#, c-format
msgid ""
"The directory in the working copy was moved away to\n"
@@ -1854,12 +1855,12 @@ msgstr ""
#. * This case cannot happen until we detect incoming
#. * moves, which we currently don't do.
#. ### find deleted/moved revision?
-#: ../libsvn_client/conflicts.c:1450
+#: ../libsvn_client/conflicts.c:1455
msgid ""
"The directory had been moved away at the time this conflict was recorded."
msgstr ""
-#: ../libsvn_client/conflicts.c:1466
+#: ../libsvn_client/conflicts.c:1471
#, c-format
msgid ""
"The directory was moved away to\n"
@@ -1871,489 +1872,489 @@ msgstr ""
#. * This case cannot happen until we detect incoming
#. * moves, which we currently don't do.
#. ### find deleted/moved revision?
-#: ../libsvn_client/conflicts.c:1492 ../libsvn_client/conflicts.c:1524
+#: ../libsvn_client/conflicts.c:1497 ../libsvn_client/conflicts.c:1529
msgid "A directory had been moved here at the time this conflict was recorded."
msgstr ""
-#: ../libsvn_client/conflicts.c:1507
+#: ../libsvn_client/conflicts.c:1512
#, c-format
msgid ""
"A directory was moved here from\n"
"'%s'."
msgstr ""
-#: ../libsvn_client/conflicts.c:1540
+#: ../libsvn_client/conflicts.c:1545
#, c-format
msgid ""
"A directory was moved here in the working copy from\n"
"'%s'."
msgstr ""
-#: ../libsvn_client/conflicts.c:2774
+#: ../libsvn_client/conflicts.c:3119
msgid "An item containing uncommitted changes was found in the working copy."
msgstr ""
-#: ../libsvn_client/conflicts.c:2778
+#: ../libsvn_client/conflicts.c:3123
msgid "An item which already occupies this path was found in the working copy."
msgstr ""
-#: ../libsvn_client/conflicts.c:2782
+#: ../libsvn_client/conflicts.c:3127
msgid "A deleted item was found in the working copy."
msgstr ""
-#: ../libsvn_client/conflicts.c:2787
+#: ../libsvn_client/conflicts.c:3132
msgid "No such file or directory was found in the working copy."
msgstr ""
#. ### display deleted revision
-#: ../libsvn_client/conflicts.c:2792
+#: ../libsvn_client/conflicts.c:3137
msgid ""
"No such file or directory was found in the merge target working copy.\n"
"The item may have been deleted or moved away in the repository's history."
msgstr ""
-#: ../libsvn_client/conflicts.c:2799
+#: ../libsvn_client/conflicts.c:3144
msgid "An unversioned item was found in the working copy."
msgstr ""
-#: ../libsvn_client/conflicts.c:2804
+#: ../libsvn_client/conflicts.c:3149
msgid ""
"An item scheduled to be added to the repository in the next commit was found "
"in the working copy."
msgstr ""
-#: ../libsvn_client/conflicts.c:2809
+#: ../libsvn_client/conflicts.c:3154
msgid ""
"The item in the working copy had been moved away at the time this conflict "
"was recorded."
msgstr ""
-#: ../libsvn_client/conflicts.c:2813
+#: ../libsvn_client/conflicts.c:3158
msgid ""
"An item had been moved here in the working copy at the time this conflict "
"was recorded."
msgstr ""
-#: ../libsvn_client/conflicts.c:2841
+#: ../libsvn_client/conflicts.c:3186
#, c-format
msgid ""
"%s\n"
"And then moved away to '^/%s' by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:2906
+#: ../libsvn_client/conflicts.c:3251
msgid "No such file or directory was found in the merge target working copy.\n"
msgstr ""
-#: ../libsvn_client/conflicts.c:2915
+#: ../libsvn_client/conflicts.c:3260
#, c-format
msgid "%sThe file was moved to '^/%s' in r%ld by %s."
msgstr ""
-#: ../libsvn_client/conflicts.c:2921
+#: ../libsvn_client/conflicts.c:3266
#, c-format
msgid "%sThe directory was moved to '^/%s' in r%ld by %s."
msgstr ""
-#: ../libsvn_client/conflicts.c:2928
+#: ../libsvn_client/conflicts.c:3273
#, c-format
msgid "%sThe item was moved to '^/%s' in r%ld by %s."
msgstr ""
-#: ../libsvn_client/conflicts.c:2944
+#: ../libsvn_client/conflicts.c:3289
#, c-format
msgid "%sThe file '^/%s' was moved to '^/%s' in r%ld by %s."
msgstr ""
-#: ../libsvn_client/conflicts.c:2952
+#: ../libsvn_client/conflicts.c:3297
#, c-format
msgid "%sThe directory '^/%s' was moved to '^/%s' in r%ld by %s."
msgstr ""
-#: ../libsvn_client/conflicts.c:2960
+#: ../libsvn_client/conflicts.c:3305
#, c-format
msgid "%sThe item '^/%s' was moved to '^/%s' in r%ld by %s."
msgstr ""
-#: ../libsvn_client/conflicts.c:2974
+#: ../libsvn_client/conflicts.c:3319
#, c-format
msgid ""
"No such file or directory was found in the merge target working copy.\n"
"'^/%s' was deleted in r%ld by %s."
msgstr ""
-#: ../libsvn_client/conflicts.c:2998
+#: ../libsvn_client/conflicts.c:3343
msgid "An update operation tried to edit a file."
msgstr ""
-#: ../libsvn_client/conflicts.c:3000
+#: ../libsvn_client/conflicts.c:3345
msgid "An update operation tried to add a file."
msgstr ""
-#: ../libsvn_client/conflicts.c:3002
+#: ../libsvn_client/conflicts.c:3347
msgid "An update operation tried to delete or move a file."
msgstr ""
-#: ../libsvn_client/conflicts.c:3005
+#: ../libsvn_client/conflicts.c:3350
msgid "An update operation tried to replace a file."
msgstr ""
-#: ../libsvn_client/conflicts.c:3013
+#: ../libsvn_client/conflicts.c:3358
msgid "A switch operation tried to edit a file."
msgstr ""
-#: ../libsvn_client/conflicts.c:3015
+#: ../libsvn_client/conflicts.c:3360
msgid "A switch operation tried to add a file."
msgstr ""
-#: ../libsvn_client/conflicts.c:3017
+#: ../libsvn_client/conflicts.c:3362
msgid "A switch operation tried to delete or move a file."
msgstr ""
-#: ../libsvn_client/conflicts.c:3020
+#: ../libsvn_client/conflicts.c:3365
msgid "A switch operation tried to replace a file."
msgstr ""
-#: ../libsvn_client/conflicts.c:3028
+#: ../libsvn_client/conflicts.c:3373
msgid "A merge operation tried to edit a file."
msgstr ""
-#: ../libsvn_client/conflicts.c:3030
+#: ../libsvn_client/conflicts.c:3375
msgid "A merge operation tried to add a file."
msgstr ""
-#: ../libsvn_client/conflicts.c:3032
+#: ../libsvn_client/conflicts.c:3377
msgid "A merge operation tried to delete or move a file."
msgstr ""
-#: ../libsvn_client/conflicts.c:3035
+#: ../libsvn_client/conflicts.c:3380
msgid "A merge operation tried to replace a file."
msgstr ""
-#: ../libsvn_client/conflicts.c:3045
+#: ../libsvn_client/conflicts.c:3390
msgid "An update operation tried to change a directory."
msgstr ""
-#: ../libsvn_client/conflicts.c:3047
+#: ../libsvn_client/conflicts.c:3392
msgid "An update operation tried to add a directory."
msgstr ""
-#: ../libsvn_client/conflicts.c:3049
+#: ../libsvn_client/conflicts.c:3394
msgid "An update operation tried to delete or move a directory."
msgstr ""
-#: ../libsvn_client/conflicts.c:3052
+#: ../libsvn_client/conflicts.c:3397
msgid "An update operation tried to replace a directory."
msgstr ""
-#: ../libsvn_client/conflicts.c:3060
+#: ../libsvn_client/conflicts.c:3405
msgid "A switch operation tried to edit a directory."
msgstr ""
-#: ../libsvn_client/conflicts.c:3062
+#: ../libsvn_client/conflicts.c:3407
msgid "A switch operation tried to add a directory."
msgstr ""
-#: ../libsvn_client/conflicts.c:3064
+#: ../libsvn_client/conflicts.c:3409
msgid "A switch operation tried to delete or move a directory."
msgstr ""
-#: ../libsvn_client/conflicts.c:3067
+#: ../libsvn_client/conflicts.c:3412
msgid "A switch operation tried to replace a directory."
msgstr ""
-#: ../libsvn_client/conflicts.c:3075
+#: ../libsvn_client/conflicts.c:3420
msgid "A merge operation tried to edit a directory."
msgstr ""
-#: ../libsvn_client/conflicts.c:3077
+#: ../libsvn_client/conflicts.c:3422
msgid "A merge operation tried to add a directory."
msgstr ""
-#: ../libsvn_client/conflicts.c:3079
+#: ../libsvn_client/conflicts.c:3424
msgid "A merge operation tried to delete or move a directory."
msgstr ""
-#: ../libsvn_client/conflicts.c:3082
+#: ../libsvn_client/conflicts.c:3427
msgid "A merge operation tried to replace a directory."
msgstr ""
-#: ../libsvn_client/conflicts.c:3093
+#: ../libsvn_client/conflicts.c:3438
msgid "An update operation tried to edit an item."
msgstr ""
-#: ../libsvn_client/conflicts.c:3095
+#: ../libsvn_client/conflicts.c:3440
msgid "An update operation tried to add an item."
msgstr ""
-#: ../libsvn_client/conflicts.c:3097
+#: ../libsvn_client/conflicts.c:3442
msgid "An update operation tried to delete or move an item."
msgstr ""
-#: ../libsvn_client/conflicts.c:3100
+#: ../libsvn_client/conflicts.c:3445
msgid "An update operation tried to replace an item."
msgstr ""
-#: ../libsvn_client/conflicts.c:3108
+#: ../libsvn_client/conflicts.c:3453
msgid "A switch operation tried to edit an item."
msgstr ""
-#: ../libsvn_client/conflicts.c:3110
+#: ../libsvn_client/conflicts.c:3455
msgid "A switch operation tried to add an item."
msgstr ""
-#: ../libsvn_client/conflicts.c:3112
+#: ../libsvn_client/conflicts.c:3457
msgid "A switch operation tried to delete or move an item."
msgstr ""
-#: ../libsvn_client/conflicts.c:3115
+#: ../libsvn_client/conflicts.c:3460
msgid "A switch operation tried to replace an item."
msgstr ""
-#: ../libsvn_client/conflicts.c:3123
+#: ../libsvn_client/conflicts.c:3468
msgid "A merge operation tried to edit an item."
msgstr ""
-#: ../libsvn_client/conflicts.c:3125
+#: ../libsvn_client/conflicts.c:3470
msgid "A merge operation tried to add an item."
msgstr ""
-#: ../libsvn_client/conflicts.c:3127
+#: ../libsvn_client/conflicts.c:3472
msgid "A merge operation tried to delete or move an item."
msgstr ""
-#: ../libsvn_client/conflicts.c:3130
+#: ../libsvn_client/conflicts.c:3475
msgid "A merge operation tried to replace an item."
msgstr ""
-#: ../libsvn_client/conflicts.c:3146 ../svn/cl-conflicts.c:212
+#: ../libsvn_client/conflicts.c:3491 ../svn/cl-conflicts.c:212
msgid "upon update"
msgstr ""
-#: ../libsvn_client/conflicts.c:3147 ../svn/cl-conflicts.c:213
+#: ../libsvn_client/conflicts.c:3492 ../svn/cl-conflicts.c:213
msgid "upon switch"
msgstr ""
-#: ../libsvn_client/conflicts.c:3148 ../svn/cl-conflicts.c:214
+#: ../libsvn_client/conflicts.c:3493 ../svn/cl-conflicts.c:214
msgid "upon merge"
msgstr ""
-#: ../libsvn_client/conflicts.c:3149 ../svn/cl-conflicts.c:215
+#: ../libsvn_client/conflicts.c:3494 ../svn/cl-conflicts.c:215
msgid "upon none"
msgstr ""
-#: ../libsvn_client/conflicts.c:3168 ../svn/cl-conflicts.c:127
+#: ../libsvn_client/conflicts.c:3513 ../svn/cl-conflicts.c:127
#: ../svn/cl-conflicts.c:234
msgid "local edit"
msgstr ""
-#: ../libsvn_client/conflicts.c:3171 ../svn/cl-conflicts.c:140
+#: ../libsvn_client/conflicts.c:3516 ../svn/cl-conflicts.c:140
#: ../svn/cl-conflicts.c:237
msgid "local add"
msgstr ""
-#: ../libsvn_client/conflicts.c:3174 ../svn/cl-conflicts.c:131
+#: ../libsvn_client/conflicts.c:3519 ../svn/cl-conflicts.c:131
#: ../svn/cl-conflicts.c:240
msgid "local delete"
msgstr ""
-#: ../libsvn_client/conflicts.c:3177 ../svn/cl-conflicts.c:129
+#: ../libsvn_client/conflicts.c:3522 ../svn/cl-conflicts.c:129
#: ../svn/cl-conflicts.c:243
msgid "local obstruction"
msgstr ""
-#: ../libsvn_client/conflicts.c:3181 ../svn/cl-conflicts.c:247
+#: ../libsvn_client/conflicts.c:3526 ../svn/cl-conflicts.c:247
#, c-format
msgid "local %s"
msgstr ""
-#: ../libsvn_client/conflicts.c:3190 ../svn/cl-conflicts.c:192
+#: ../libsvn_client/conflicts.c:3535 ../svn/cl-conflicts.c:192
#: ../svn/cl-conflicts.c:256
msgid "incoming edit"
msgstr ""
-#: ../libsvn_client/conflicts.c:3193 ../svn/cl-conflicts.c:194
+#: ../libsvn_client/conflicts.c:3538 ../svn/cl-conflicts.c:194
#: ../svn/cl-conflicts.c:259
msgid "incoming add"
msgstr ""
-#: ../libsvn_client/conflicts.c:3196 ../svn/cl-conflicts.c:262
+#: ../libsvn_client/conflicts.c:3541 ../svn/cl-conflicts.c:262
msgid "incoming delete"
msgstr ""
-#: ../libsvn_client/conflicts.c:3200 ../svn/cl-conflicts.c:266
+#: ../libsvn_client/conflicts.c:3545 ../svn/cl-conflicts.c:266
#, c-format
msgid "incoming %s"
msgstr ""
-#: ../libsvn_client/conflicts.c:3208 ../svn/cl-conflicts.c:273
+#: ../libsvn_client/conflicts.c:3553 ../svn/cl-conflicts.c:273
#: ../svn/cl-conflicts.c:326
#, c-format
msgid "%s, %s %s"
msgstr ""
-#: ../libsvn_client/conflicts.c:3267
+#: ../libsvn_client/conflicts.c:3612
#, c-format
msgid "incoming %s %s"
msgstr ""
-#: ../libsvn_client/conflicts.c:3370
+#: ../libsvn_client/conflicts.c:3715
#, c-format
msgid ""
"Directory updated from r%ld to r%ld was replaced with a file by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:3381 ../libsvn_client/conflicts.c:3461
-#: ../libsvn_client/conflicts.c:3715 ../libsvn_client/conflicts.c:3802
-#: ../libsvn_client/conflicts.c:4102 ../libsvn_client/conflicts.c:4170
+#: ../libsvn_client/conflicts.c:3726 ../libsvn_client/conflicts.c:3806
+#: ../libsvn_client/conflicts.c:4060 ../libsvn_client/conflicts.c:4147
+#: ../libsvn_client/conflicts.c:4447 ../libsvn_client/conflicts.c:4515
#, c-format
msgid ""
"%s\n"
"The replaced directory was moved to '^/%s'."
msgstr ""
-#: ../libsvn_client/conflicts.c:3396
+#: ../libsvn_client/conflicts.c:3741
#, c-format
msgid ""
"File updated from r%ld to r%ld was replaced with a file from another line of "
"history by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:3408 ../libsvn_client/conflicts.c:3487
-#: ../libsvn_client/conflicts.c:3744 ../libsvn_client/conflicts.c:3830
-#: ../libsvn_client/conflicts.c:4131 ../libsvn_client/conflicts.c:4198
+#: ../libsvn_client/conflicts.c:3753 ../libsvn_client/conflicts.c:3832
+#: ../libsvn_client/conflicts.c:4089 ../libsvn_client/conflicts.c:4175
+#: ../libsvn_client/conflicts.c:4476 ../libsvn_client/conflicts.c:4543
#, c-format
msgid ""
"%s\n"
"The replaced file was moved to '^/%s'."
msgstr ""
-#: ../libsvn_client/conflicts.c:3422
+#: ../libsvn_client/conflicts.c:3767
#, c-format
msgid "Item updated from r%ld to r%ld was replaced with a file by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:3432 ../libsvn_client/conflicts.c:3511
-#: ../libsvn_client/conflicts.c:3771 ../libsvn_client/conflicts.c:3857
-#: ../libsvn_client/conflicts.c:4225
+#: ../libsvn_client/conflicts.c:3777 ../libsvn_client/conflicts.c:3856
+#: ../libsvn_client/conflicts.c:4116 ../libsvn_client/conflicts.c:4202
+#: ../libsvn_client/conflicts.c:4570
#, c-format
msgid ""
"%s\n"
"The replaced item was moved to '^/%s'."
msgstr ""
-#: ../libsvn_client/conflicts.c:3449
+#: ../libsvn_client/conflicts.c:3794
#, c-format
msgid ""
"Directory updated from r%ld to r%ld was replaced with a directory from "
"another line of history by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:3476
+#: ../libsvn_client/conflicts.c:3821
#, c-format
msgid ""
"File updated from r%ld to r%ld was replaced with a directory by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:3501
+#: ../libsvn_client/conflicts.c:3846
#, c-format
msgid "Item updated from r%ld to r%ld was replaced by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:3534
+#: ../libsvn_client/conflicts.c:3879
#, c-format
msgid "Directory updated from r%ld to r%ld was moved to '^/%s' by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:3546
+#: ../libsvn_client/conflicts.c:3891
#, c-format
msgid "Directory updated from r%ld to r%ld was deleted by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:3562
+#: ../libsvn_client/conflicts.c:3907
#, c-format
msgid "File updated from r%ld to r%ld was moved to '^/%s' by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:3573
+#: ../libsvn_client/conflicts.c:3918
#, c-format
msgid "File updated from r%ld to r%ld was deleted by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:3587
+#: ../libsvn_client/conflicts.c:3932
#, c-format
msgid "Item updated from r%ld to r%ld was moved to '^/%s' by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:3598
+#: ../libsvn_client/conflicts.c:3943
#, c-format
msgid "Item updated from r%ld to r%ld was deleted by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:3618
+#: ../libsvn_client/conflicts.c:3963
#, c-format
msgid ""
"Directory updated backwards from r%ld to r%ld was a file before the "
"replacement made by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:3625
+#: ../libsvn_client/conflicts.c:3970
#, c-format
msgid ""
"File updated backwards from r%ld to r%ld was a file from another line of "
"history before the replacement made by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:3632
+#: ../libsvn_client/conflicts.c:3977
#, c-format
msgid ""
"Item updated backwards from r%ld to r%ld was replaced with a file by %s in r"
"%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:3641
+#: ../libsvn_client/conflicts.c:3986
#, c-format
msgid ""
"Directory updated backwards from r%ld to r%ld was a directory from another "
"line of history before the replacement made by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:3649
+#: ../libsvn_client/conflicts.c:3994
#, c-format
msgid ""
"File updated backwards from r%ld to r%ld was a directory before the "
"replacement made by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:3655
+#: ../libsvn_client/conflicts.c:4000
#, c-format
msgid ""
"Item updated backwards from r%ld to r%ld was replaced with a directory by %s "
"in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:3664
+#: ../libsvn_client/conflicts.c:4009
#, c-format
msgid ""
"Directory updated backwards from r%ld to r%ld did not exist before it was "
"added by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:3671
+#: ../libsvn_client/conflicts.c:4016
#, c-format
msgid ""
"File updated backwards from r%ld to r%ld did not exist before it was added "
"by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:3677
+#: ../libsvn_client/conflicts.c:4022
#, c-format
msgid ""
"Item updated backwards from r%ld to r%ld did not exist before it was added "
"by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:3702
+#: ../libsvn_client/conflicts.c:4047
#, c-format
msgid ""
"Directory switched from\n"
@@ -2363,7 +2364,7 @@ msgid ""
"was replaced with a file by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:3730
+#: ../libsvn_client/conflicts.c:4075
#, c-format
msgid ""
"File switched from\n"
@@ -2373,7 +2374,7 @@ msgid ""
"was replaced with a file from another line of history by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:3758 ../libsvn_client/conflicts.c:4001
+#: ../libsvn_client/conflicts.c:4103 ../libsvn_client/conflicts.c:4346
#, c-format
msgid ""
"Item switched from\n"
@@ -2383,7 +2384,7 @@ msgid ""
"was replaced with a file by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:3788
+#: ../libsvn_client/conflicts.c:4133
#, c-format
msgid ""
"Directory switched from\n"
@@ -2393,7 +2394,7 @@ msgid ""
"was replaced with a directory from another line of history by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:3817
+#: ../libsvn_client/conflicts.c:4162
#, c-format
msgid ""
"File switched from\n"
@@ -2403,7 +2404,7 @@ msgid ""
"was replaced with a directory by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:3844 ../libsvn_client/conflicts.c:4031
+#: ../libsvn_client/conflicts.c:4189 ../libsvn_client/conflicts.c:4376
#, c-format
msgid ""
"Item switched from\n"
@@ -2413,7 +2414,7 @@ msgid ""
"was replaced with a directory by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:3880
+#: ../libsvn_client/conflicts.c:4225
#, c-format
msgid ""
"Directory switched from\n"
@@ -2423,7 +2424,7 @@ msgid ""
"was moved to '^/%s' by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:3894
+#: ../libsvn_client/conflicts.c:4239
#, c-format
msgid ""
"Directory switched from\n"
@@ -2433,7 +2434,7 @@ msgid ""
"was deleted by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:3912
+#: ../libsvn_client/conflicts.c:4257
#, c-format
msgid ""
"File switched from\n"
@@ -2443,7 +2444,7 @@ msgid ""
"was moved to '^/%s' by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:3926
+#: ../libsvn_client/conflicts.c:4271
#, c-format
msgid ""
"File switched from\n"
@@ -2453,7 +2454,7 @@ msgid ""
"was deleted by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:3943
+#: ../libsvn_client/conflicts.c:4288
#, c-format
msgid ""
"Item switched from\n"
@@ -2463,7 +2464,7 @@ msgid ""
"was moved to '^/%s' by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:3957
+#: ../libsvn_client/conflicts.c:4302
#, c-format
msgid ""
"Item switched from\n"
@@ -2473,7 +2474,7 @@ msgid ""
"was deleted by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:3982 ../libsvn_client/conflicts.c:4022
+#: ../libsvn_client/conflicts.c:4327 ../libsvn_client/conflicts.c:4367
#, c-format
msgid ""
"Directory switched from\n"
@@ -2483,7 +2484,7 @@ msgid ""
"was a file before the replacement made by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:3992
+#: ../libsvn_client/conflicts.c:4337
#, c-format
msgid ""
"File switched from\n"
@@ -2494,7 +2495,7 @@ msgid ""
"r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:4012
+#: ../libsvn_client/conflicts.c:4357
#, c-format
msgid ""
"Directory switched from\n"
@@ -2505,7 +2506,7 @@ msgid ""
"%s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:4042
+#: ../libsvn_client/conflicts.c:4387
#, c-format
msgid ""
"Directory switched from\n"
@@ -2515,7 +2516,7 @@ msgid ""
"did not exist before it was added by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:4052
+#: ../libsvn_client/conflicts.c:4397
#, c-format
msgid ""
"File switched from\n"
@@ -2525,7 +2526,7 @@ msgid ""
"did not exist before it was added by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:4061
+#: ../libsvn_client/conflicts.c:4406
#, c-format
msgid ""
"Item switched from\n"
@@ -2535,7 +2536,7 @@ msgid ""
"did not exist before it was added by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:4089
+#: ../libsvn_client/conflicts.c:4434
#, c-format
msgid ""
"Directory merged from\n"
@@ -2545,7 +2546,7 @@ msgid ""
"was replaced with a file by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:4117
+#: ../libsvn_client/conflicts.c:4462
#, c-format
msgid ""
"File merged from\n"
@@ -2555,7 +2556,7 @@ msgid ""
"was replaced with a file from another line of history by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:4143
+#: ../libsvn_client/conflicts.c:4488
#, c-format
msgid ""
"Item merged from\n"
@@ -2565,7 +2566,7 @@ msgid ""
"was replaced with a file by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:4156
+#: ../libsvn_client/conflicts.c:4501
#, c-format
msgid ""
"Directory merged from\n"
@@ -2575,7 +2576,7 @@ msgid ""
"was replaced with a directory from another line of history by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:4185
+#: ../libsvn_client/conflicts.c:4530
#, c-format
msgid ""
"File merged from\n"
@@ -2585,7 +2586,7 @@ msgid ""
"was replaced with a directory by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:4212
+#: ../libsvn_client/conflicts.c:4557
#, c-format
msgid ""
"Item merged from\n"
@@ -2595,7 +2596,7 @@ msgid ""
"was replaced with a directory by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:4248
+#: ../libsvn_client/conflicts.c:4593
#, c-format
msgid ""
"Directory merged from\n"
@@ -2605,7 +2606,7 @@ msgid ""
"was moved to '^/%s' by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:4262
+#: ../libsvn_client/conflicts.c:4607
#, c-format
msgid ""
"Directory merged from\n"
@@ -2615,7 +2616,7 @@ msgid ""
"was deleted by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:4280
+#: ../libsvn_client/conflicts.c:4625
#, c-format
msgid ""
"File merged from\n"
@@ -2625,7 +2626,7 @@ msgid ""
"was moved to '^/%s' by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:4294
+#: ../libsvn_client/conflicts.c:4639
#, c-format
msgid ""
"File merged from\n"
@@ -2635,7 +2636,7 @@ msgid ""
"was deleted by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:4311
+#: ../libsvn_client/conflicts.c:4656
#, c-format
msgid ""
"Item merged from\n"
@@ -2645,7 +2646,7 @@ msgid ""
"was moved to '^/%s' by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:4325
+#: ../libsvn_client/conflicts.c:4670
#, c-format
msgid ""
"Item merged from\n"
@@ -2655,7 +2656,7 @@ msgid ""
"was deleted by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:4350 ../libsvn_client/conflicts.c:4389
+#: ../libsvn_client/conflicts.c:4695 ../libsvn_client/conflicts.c:4734
#, c-format
msgid ""
"Directory reverse-merged from\n"
@@ -2663,7 +2664,7 @@ msgid ""
"to ^/%s@%ld was a file before the replacement made by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:4359
+#: ../libsvn_client/conflicts.c:4704
#, c-format
msgid ""
"File reverse-merged from\n"
@@ -2674,7 +2675,7 @@ msgid ""
"r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:4368
+#: ../libsvn_client/conflicts.c:4713
#, c-format
msgid ""
"Item reverse-merged from\n"
@@ -2684,7 +2685,7 @@ msgid ""
"was replaced with a file by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:4379
+#: ../libsvn_client/conflicts.c:4724
#, c-format
msgid ""
"Directory reverse-merged from\n"
@@ -2693,7 +2694,7 @@ msgid ""
"replacement made by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:4397
+#: ../libsvn_client/conflicts.c:4742
#, c-format
msgid ""
"Item reverse-merged from\n"
@@ -2703,7 +2704,7 @@ msgid ""
"was replaced with a directory by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:4408
+#: ../libsvn_client/conflicts.c:4753
#, c-format
msgid ""
"Directory reverse-merged from\n"
@@ -2711,7 +2712,7 @@ msgid ""
"to ^/%s@%ld did not exist before it was added by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:4417
+#: ../libsvn_client/conflicts.c:4762
#, c-format
msgid ""
"File reverse-merged from\n"
@@ -2721,7 +2722,7 @@ msgid ""
"did not exist before it was added by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:4426
+#: ../libsvn_client/conflicts.c:4771
#, c-format
msgid ""
"Item reverse-merged from\n"
@@ -2731,62 +2732,62 @@ msgid ""
"did not exist before it was added by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:5278
+#: ../libsvn_client/conflicts.c:5495
#, c-format
msgid ""
"A new directory appeared during update to r%ld; it was added by %s in r%ld "
"and later deleted by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:5285
+#: ../libsvn_client/conflicts.c:5502
#, c-format
msgid ""
"A new directory appeared during update to r%ld; it was added by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:5290
+#: ../libsvn_client/conflicts.c:5507
#, c-format
msgid ""
"A new directory appeared during update to r%ld; it was deleted by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:5300
+#: ../libsvn_client/conflicts.c:5517
#, c-format
msgid ""
"A new file appeared during update to r%ld; it was added by %s in r%ld and "
"later deleted by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:5307
+#: ../libsvn_client/conflicts.c:5524
#, c-format
msgid "A new file appeared during update to r%ld; it was added by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:5312
+#: ../libsvn_client/conflicts.c:5529
#, c-format
msgid ""
"A new file appeared during update to r%ld; it was deleted by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:5321
+#: ../libsvn_client/conflicts.c:5538
#, c-format
msgid ""
"A new item appeared during update to r%ld; it was added by %s in r%ld and "
"later deleted by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:5328
+#: ../libsvn_client/conflicts.c:5545
#, c-format
msgid "A new item appeared during update to r%ld; it was added by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:5333
+#: ../libsvn_client/conflicts.c:5550
#, c-format
msgid ""
"A new item appeared during update to r%ld; it was deleted by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:5352
+#: ../libsvn_client/conflicts.c:5569
#, c-format
msgid ""
"A new directory appeared during switch to\n"
@@ -2794,7 +2795,7 @@ msgid ""
"It was added by %s in r%ld and later deleted by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:5360
+#: ../libsvn_client/conflicts.c:5577
#, c-format
msgid ""
"A new directory appeared during switch to\n"
@@ -2802,7 +2803,7 @@ msgid ""
"It was added by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:5366
+#: ../libsvn_client/conflicts.c:5583
#, c-format
msgid ""
"A new directory appeared during switch to\n"
@@ -2810,7 +2811,7 @@ msgid ""
"It was deleted by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:5377
+#: ../libsvn_client/conflicts.c:5594
#, c-format
msgid ""
"A new file appeared during switch to\n"
@@ -2818,7 +2819,7 @@ msgid ""
"It was added by %s in r%ld and later deleted by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:5385
+#: ../libsvn_client/conflicts.c:5602
#, c-format
msgid ""
"A new file appeared during switch to\n"
@@ -2826,7 +2827,7 @@ msgid ""
"It was added by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:5392
+#: ../libsvn_client/conflicts.c:5609
#, c-format
msgid ""
"A new file appeared during switch to\n"
@@ -2834,7 +2835,7 @@ msgid ""
"It was deleted by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:5403
+#: ../libsvn_client/conflicts.c:5620
#, c-format
msgid ""
"A new item appeared during switch to\n"
@@ -2842,7 +2843,7 @@ msgid ""
"It was added by %s in r%ld and later deleted by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:5411
+#: ../libsvn_client/conflicts.c:5628
#, c-format
msgid ""
"A new item appeared during switch to\n"
@@ -2850,7 +2851,7 @@ msgid ""
"It was added by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:5418
+#: ../libsvn_client/conflicts.c:5635
#, c-format
msgid ""
"A new item appeared during switch to\n"
@@ -2858,7 +2859,7 @@ msgid ""
"It was deleted by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:5439
+#: ../libsvn_client/conflicts.c:5656
#, c-format
msgid ""
"A new directory appeared during merge of\n"
@@ -2866,7 +2867,7 @@ msgid ""
"It was added by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:5445
+#: ../libsvn_client/conflicts.c:5662
#, c-format
msgid ""
"A new directory appeared during merge of\n"
@@ -2874,7 +2875,7 @@ msgid ""
"It was added by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:5455
+#: ../libsvn_client/conflicts.c:5672
#, c-format
msgid ""
"A new file appeared during merge of\n"
@@ -2882,7 +2883,7 @@ msgid ""
"It was added by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:5461
+#: ../libsvn_client/conflicts.c:5678
#, c-format
msgid ""
"A new file appeared during merge of\n"
@@ -2890,7 +2891,7 @@ msgid ""
"It was added by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:5470
+#: ../libsvn_client/conflicts.c:5687
#, c-format
msgid ""
"A new item appeared during merge of\n"
@@ -2898,7 +2899,7 @@ msgid ""
"It was added by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:5476
+#: ../libsvn_client/conflicts.c:5693
#, c-format
msgid ""
"A new item appeared during merge of\n"
@@ -2906,7 +2907,7 @@ msgid ""
"It was added by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:5496
+#: ../libsvn_client/conflicts.c:5713
#, c-format
msgid ""
"A new directory appeared during reverse-merge of\n"
@@ -2914,7 +2915,7 @@ msgid ""
"It was deleted by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:5503
+#: ../libsvn_client/conflicts.c:5720
#, c-format
msgid ""
"A new directory appeared during reverse-merge of\n"
@@ -2922,7 +2923,7 @@ msgid ""
"It was deleted by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:5515
+#: ../libsvn_client/conflicts.c:5732
#, c-format
msgid ""
"A new file appeared during reverse-merge of\n"
@@ -2930,7 +2931,7 @@ msgid ""
"It was deleted by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:5522
+#: ../libsvn_client/conflicts.c:5739
#, c-format
msgid ""
"A new file appeared during reverse-merge of\n"
@@ -2938,7 +2939,7 @@ msgid ""
"It was deleted by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:5532
+#: ../libsvn_client/conflicts.c:5749
#, c-format
msgid ""
"A new item appeared during reverse-merge of\n"
@@ -2946,7 +2947,7 @@ msgid ""
"It was deleted by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:5539
+#: ../libsvn_client/conflicts.c:5756
#, c-format
msgid ""
"A new item appeared during reverse-merge of\n"
@@ -2954,48 +2955,48 @@ msgid ""
"It was deleted by %s in r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:5850
+#: ../libsvn_client/conflicts.c:6070
#, c-format
msgid ""
"Changes destined for a directory arrived via the following revisions during "
"update from r%ld to r%ld."
msgstr ""
-#: ../libsvn_client/conflicts.c:5856
+#: ../libsvn_client/conflicts.c:6076
#, c-format
msgid ""
"Changes destined for a file arrived via the following revisions during "
"update from r%ld to r%ld"
msgstr ""
-#: ../libsvn_client/conflicts.c:5861
+#: ../libsvn_client/conflicts.c:6081
#, c-format
msgid ""
"Changes from the following revisions arrived during update from r%ld to r%ld"
msgstr ""
-#: ../libsvn_client/conflicts.c:5869
+#: ../libsvn_client/conflicts.c:6089
#, c-format
msgid ""
"Changes destined for a directory arrived via the following revisions during "
"backwards update from r%ld to r%ld"
msgstr ""
-#: ../libsvn_client/conflicts.c:5876
+#: ../libsvn_client/conflicts.c:6096
#, c-format
msgid ""
"Changes destined for a file arrived via the following revisions during "
"backwards update from r%ld to r%ld"
msgstr ""
-#: ../libsvn_client/conflicts.c:5882
+#: ../libsvn_client/conflicts.c:6102
#, c-format
msgid ""
"Changes from the following revisions arrived during backwards update from r"
"%ld to r%ld"
msgstr ""
-#: ../libsvn_client/conflicts.c:5896 ../libsvn_client/conflicts.c:5903
+#: ../libsvn_client/conflicts.c:6116 ../libsvn_client/conflicts.c:6123
#, c-format
msgid ""
"Changes destined for a directory arrived via the following revisions during "
@@ -3003,48 +3004,52 @@ msgid ""
"'^/%s@r%ld'"
msgstr ""
-#: ../libsvn_client/conflicts.c:5909
+#: ../libsvn_client/conflicts.c:6129
#, c-format
msgid ""
"Changes from the following revisions arrived during switch to\n"
"'^/%s@r%ld'"
msgstr ""
-#: ../libsvn_client/conflicts.c:5952 ../libsvn_client/conflicts.c:5966
-#: ../libsvn_client/conflicts.c:5972
+#: ../libsvn_client/conflicts.c:6172 ../libsvn_client/conflicts.c:6189
+#: ../libsvn_client/conflicts.c:6195
#, c-format
msgid "%s r%ld by %s%s"
msgstr ""
-#: ../libsvn_client/conflicts.c:5962
+#: ../libsvn_client/conflicts.c:6182
#, c-format
msgid ""
"%s\n"
+" [%d revision omitted for brevity],\n"
+msgid_plural ""
+"%s\n"
" [%d revisions omitted for brevity],\n"
-msgstr ""
+msgstr[0] ""
+msgstr[1] ""
-#: ../libsvn_client/conflicts.c:6031
+#: ../libsvn_client/conflicts.c:6254
#, c-format
msgid ""
"Changes destined for a directory arrived during merge of\n"
"'^/%s:%ld'."
msgstr ""
-#: ../libsvn_client/conflicts.c:6038
+#: ../libsvn_client/conflicts.c:6261
#, c-format
msgid ""
"Changes destined for a file arrived during merge of\n"
"'^/%s:%ld'."
msgstr ""
-#: ../libsvn_client/conflicts.c:6044
+#: ../libsvn_client/conflicts.c:6267
#, c-format
msgid ""
"Changes arrived during merge of\n"
"'^/%s:%ld'."
msgstr ""
-#: ../libsvn_client/conflicts.c:6056
+#: ../libsvn_client/conflicts.c:6279
#, c-format
msgid ""
"Changes destined for a directory arrived via the following revisions during "
@@ -3052,7 +3057,7 @@ msgid ""
"'^/%s:%ld-%ld'"
msgstr ""
-#: ../libsvn_client/conflicts.c:6063
+#: ../libsvn_client/conflicts.c:6286
#, c-format
msgid ""
"Changes destined for a file arrived via the following revisions during merge "
@@ -3060,35 +3065,35 @@ msgid ""
"'^/%s:%ld-%ld'"
msgstr ""
-#: ../libsvn_client/conflicts.c:6069
+#: ../libsvn_client/conflicts.c:6292
#, c-format
msgid ""
"Changes from the following revisions arrived during merge of\n"
"'^/%s:%ld-%ld'"
msgstr ""
-#: ../libsvn_client/conflicts.c:6081
+#: ../libsvn_client/conflicts.c:6304
#, c-format
msgid ""
"Changes destined for a directory arrived during reverse-merge of\n"
"'^/%s:%ld'."
msgstr ""
-#: ../libsvn_client/conflicts.c:6088
+#: ../libsvn_client/conflicts.c:6311
#, c-format
msgid ""
"Changes destined for a file arrived during reverse-merge of\n"
"'^/%s:%ld'."
msgstr ""
-#: ../libsvn_client/conflicts.c:6094
+#: ../libsvn_client/conflicts.c:6317
#, c-format
msgid ""
"Changes arrived during reverse-merge of\n"
"'^/%s:%ld'."
msgstr ""
-#: ../libsvn_client/conflicts.c:6106
+#: ../libsvn_client/conflicts.c:6329
#, c-format
msgid ""
"Changes destined for a directory arrived via the following revisions during "
@@ -3096,7 +3101,7 @@ msgid ""
"'^/%s:%ld-%ld'"
msgstr ""
-#: ../libsvn_client/conflicts.c:6114
+#: ../libsvn_client/conflicts.c:6337
#, c-format
msgid ""
"Changes destined for a file arrived via the following revisions during "
@@ -3104,432 +3109,461 @@ msgid ""
"'^/%s:%ld-%ld'"
msgstr ""
-#: ../libsvn_client/conflicts.c:6122
+#: ../libsvn_client/conflicts.c:6345
#, c-format
msgid ""
"Changes from the following revisions arrived during reverse-merge of\n"
"'^/%s:%ld-%ld'"
msgstr ""
-#: ../libsvn_client/conflicts.c:6311
+#: ../libsvn_client/conflicts.c:6534
#, c-format
msgid ""
"Tree conflict on '%s' can only be resolved to the current working copy state"
msgstr ""
-#: ../libsvn_client/conflicts.c:6495 ../libsvn_client/conflicts.c:6501
+#: ../libsvn_client/conflicts.c:6718 ../libsvn_client/conflicts.c:6724
#, c-format
msgid ""
"Cannot resolve tree conflict on '%s' (expected a base node but found none)"
msgstr ""
-#: ../libsvn_client/conflicts.c:6506 ../libsvn_client/conflicts.c:6532
-#: ../libsvn_client/conflicts.c:6559 ../libsvn_client/conflicts.c:6582
+#: ../libsvn_client/conflicts.c:6729 ../libsvn_client/conflicts.c:6755
+#: ../libsvn_client/conflicts.c:6782 ../libsvn_client/conflicts.c:6805
#, c-format
msgid "Unexpected option id '%d'"
msgstr ""
-#: ../libsvn_client/conflicts.c:6515 ../libsvn_client/conflicts.c:6524
+#: ../libsvn_client/conflicts.c:6738 ../libsvn_client/conflicts.c:6747
#, c-format
msgid ""
"Cannot resolve tree conflict on '%s' (expected base node kind '%s', but "
"found '%s')"
msgstr ""
-#: ../libsvn_client/conflicts.c:6540 ../libsvn_client/conflicts.c:6550
+#: ../libsvn_client/conflicts.c:6763 ../libsvn_client/conflicts.c:6773
#, c-format
msgid ""
"Cannot resolve tree conflict on '%s' (expected base node from '^/%s@%ld', "
"but found '^/%s@%ld')"
msgstr ""
-#: ../libsvn_client/conflicts.c:6568 ../libsvn_client/conflicts.c:6576
+#: ../libsvn_client/conflicts.c:6791 ../libsvn_client/conflicts.c:6799
#, c-format
msgid ""
"Cannot resolve tree conflict on '%s' (expected an added item, but the item "
"is not added)"
msgstr ""
-#: ../libsvn_client/conflicts.c:6746 ../libsvn_client/conflicts.c:8561
+#: ../libsvn_client/conflicts.c:6970 ../libsvn_client/conflicts.c:8807
#, c-format
msgid "If needed, a backup copy of '%s' can be found at '%s'"
msgstr ""
-#: ../libsvn_client/conflicts.c:7609
+#: ../libsvn_client/conflicts.c:7832
#, c-format
msgid ""
"Conflict resolution option '%d' requires details for tree conflict at '%s' "
"to be fetched from the repository"
msgstr ""
-#: ../libsvn_client/conflicts.c:7633
+#: ../libsvn_client/conflicts.c:7856
#, c-format
msgid "Could not determine when '%s' was added the repository"
msgstr ""
-#: ../libsvn_client/conflicts.c:7648
+#: ../libsvn_client/conflicts.c:7871
#, c-format
msgid "Could not determine when '%s' was deleted from the repository"
msgstr ""
-#: ../libsvn_client/conflicts.c:7937
+#: ../libsvn_client/conflicts.c:8160
#, c-format
msgid ""
"Could not determine the revision in which '^/%s' was added to the "
"repository.\n"
msgstr ""
-#: ../libsvn_client/conflicts.c:8041
-#, c-format
-msgid ""
-"Conflict resolution option '%d' requires details for tree conflict at '%s' "
-"to be fetched from the repository."
-msgstr ""
-
-#: ../libsvn_client/conflicts.c:8058
+#: ../libsvn_client/conflicts.c:8256
#, c-format
msgid ""
"Cannot resolve tree conflict on '%s' (expected a copied item, but the item "
"is not a copy)"
msgstr ""
-#: ../libsvn_client/conflicts.c:8069
-#, c-format
-msgid ""
-"Could not find the revision in which '%s' was deleted from the repository"
-msgstr ""
-
-#: ../libsvn_client/conflicts.c:8079
+#: ../libsvn_client/conflicts.c:8267
#, c-format
msgid ""
"Cannot resolve tree conflict on '%s' (expected an item copied from a "
"revision smaller than r%ld, but the item was copied from r%ld)"
msgstr ""
-#: ../libsvn_client/conflicts.c:8092
+#: ../libsvn_client/conflicts.c:8279
#, c-format
msgid ""
"Cannot resolve tree conflict on '%s' (expected an item copied from a "
"revision larger than r%ld, but the item was copied from r%ld)"
msgstr ""
-#: ../libsvn_client/conflicts.c:8111
+#: ../libsvn_client/conflicts.c:8298
#, c-format
msgid ""
"Cannot resolve tree conflict on '%s' (expected an item copied from '^/%s' or "
"from '^/%s' but the item was copied from '^/%s@%ld')"
msgstr ""
-#: ../libsvn_client/conflicts.c:8133
+#: ../libsvn_client/conflicts.c:8320
#, c-format
msgid ""
"Cannot resolve tree conflict on '%s' (expected an item copied from '^/%s', "
"but the item was copied from '^/%s@%ld')"
msgstr ""
-#: ../libsvn_client/conflicts.c:8158
+#: ../libsvn_client/conflicts.c:8369
+#, c-format
+msgid ""
+"Conflict resolution option '%d' requires details for tree conflict at '%s' "
+"to be fetched from the repository."
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:8379
+#, c-format
+msgid ""
+"Could not find the revision in which '%s' was deleted from the repository"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:8404
#, c-format
msgid ""
"Cannot resolve tree conflict on '%s' (expected node kind '%s' but found '%s')"
msgstr ""
-#: ../libsvn_client/conflicts.c:8325 ../libsvn_client/conflicts.c:8608
+#: ../libsvn_client/conflicts.c:8571 ../libsvn_client/conflicts.c:8854
#, c-format
msgid ""
"The specified conflict resolution option requires details for tree conflict "
"at '%s' to be fetched from the repository first."
msgstr ""
-#: ../libsvn_client/conflicts.c:8332
+#: ../libsvn_client/conflicts.c:8578
#, c-format
msgid "Invalid operation code '%d' recorded for conflict at '%s'"
msgstr ""
-#: ../libsvn_client/conflicts.c:8669
+#: ../libsvn_client/conflicts.c:8915
#, c-format
msgid ""
"Cannot resolve tree conflict on '%s' (expected a copied item at '%s', but "
"the item is not a copy)"
msgstr ""
-#: ../libsvn_client/conflicts.c:8682
+#: ../libsvn_client/conflicts.c:8928
#, c-format
msgid ""
"Cannot resolve tree conflict on '%s' (could not determine origin of '%s')"
msgstr ""
-#: ../libsvn_client/conflicts.c:8702
+#: ../libsvn_client/conflicts.c:8948
#, c-format
msgid ""
"Cannot resolve tree conflict on '%s' (could not find common ancestor of '^/"
"%s@%ld' and '^/%s@%ld')"
msgstr ""
-#: ../libsvn_client/conflicts.c:9057 ../libsvn_client/conflicts.c:9140
-#: ../libsvn_client/conflicts.c:10306
+#: ../libsvn_client/conflicts.c:9134
+#, c-format
+msgid "Corresponding working copy node not found for '%s'"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:9456 ../libsvn_client/conflicts.c:9539
+#: ../libsvn_client/conflicts.c:11122
msgid "Postpone"
msgstr ""
-#: ../libsvn_client/conflicts.c:9058 ../libsvn_client/conflicts.c:9141
-#: ../libsvn_client/conflicts.c:10307
+#: ../libsvn_client/conflicts.c:9457 ../libsvn_client/conflicts.c:9540
+#: ../libsvn_client/conflicts.c:11123
msgid "skip this conflict and leave it unresolved"
msgstr ""
-#: ../libsvn_client/conflicts.c:9067 ../libsvn_client/conflicts.c:9088
-#: ../libsvn_client/conflicts.c:9146
+#: ../libsvn_client/conflicts.c:9466 ../libsvn_client/conflicts.c:9487
+#: ../libsvn_client/conflicts.c:9545
msgid "Accept base"
msgstr ""
-#: ../libsvn_client/conflicts.c:9068
+#: ../libsvn_client/conflicts.c:9467
msgid "discard local and incoming changes for this binary file"
msgstr ""
-#: ../libsvn_client/conflicts.c:9073 ../libsvn_client/conflicts.c:9094
-#: ../libsvn_client/conflicts.c:9152
+#: ../libsvn_client/conflicts.c:9472 ../libsvn_client/conflicts.c:9493
+#: ../libsvn_client/conflicts.c:9551
msgid "Accept incoming"
msgstr ""
-#: ../libsvn_client/conflicts.c:9074
+#: ../libsvn_client/conflicts.c:9473
msgid "accept incoming version of binary file"
msgstr ""
-#: ../libsvn_client/conflicts.c:9079 ../libsvn_client/conflicts.c:9118
-#: ../libsvn_client/conflicts.c:9158 ../libsvn_client/conflicts.c:9215
+#: ../libsvn_client/conflicts.c:9478 ../libsvn_client/conflicts.c:9517
+#: ../libsvn_client/conflicts.c:9557 ../libsvn_client/conflicts.c:9614
msgid "Mark as resolved"
msgstr ""
-#: ../libsvn_client/conflicts.c:9080
+#: ../libsvn_client/conflicts.c:9479
msgid "accept binary file as it appears in the working copy"
msgstr ""
-#: ../libsvn_client/conflicts.c:9089
+#: ../libsvn_client/conflicts.c:9488
msgid "discard local and incoming changes for this file"
msgstr ""
-#: ../libsvn_client/conflicts.c:9095
+#: ../libsvn_client/conflicts.c:9494
msgid "accept incoming version of entire file"
msgstr ""
-#: ../libsvn_client/conflicts.c:9100
+#: ../libsvn_client/conflicts.c:9499
msgid "Reject incoming"
msgstr ""
-#: ../libsvn_client/conflicts.c:9101
+#: ../libsvn_client/conflicts.c:9500
msgid "reject all incoming changes for this file"
msgstr ""
-#: ../libsvn_client/conflicts.c:9106 ../libsvn_client/conflicts.c:9164
+#: ../libsvn_client/conflicts.c:9505 ../libsvn_client/conflicts.c:9563
msgid "Accept incoming for conflicts"
msgstr ""
-#: ../libsvn_client/conflicts.c:9107
-msgid "accept changes only where they conflict"
+#: ../libsvn_client/conflicts.c:9506 ../libsvn_client/conflicts.c:9564
+msgid "accept incoming changes only where they conflict"
msgstr ""
-#: ../libsvn_client/conflicts.c:9112 ../libsvn_client/conflicts.c:9170
+#: ../libsvn_client/conflicts.c:9511 ../libsvn_client/conflicts.c:9569
msgid "Reject conflicts"
msgstr ""
-#: ../libsvn_client/conflicts.c:9113 ../libsvn_client/conflicts.c:9171
-msgid "reject changes which conflict and accept the rest"
+#: ../libsvn_client/conflicts.c:9512
+msgid "reject incoming changes which conflict and accept the rest"
msgstr ""
-#: ../libsvn_client/conflicts.c:9119
+#: ../libsvn_client/conflicts.c:9518
msgid "accept the file as it appears in the working copy"
msgstr ""
-#: ../libsvn_client/conflicts.c:9147
+#: ../libsvn_client/conflicts.c:9546
msgid "discard local and incoming changes for this property"
msgstr ""
-#: ../libsvn_client/conflicts.c:9153
+#: ../libsvn_client/conflicts.c:9552
msgid "accept incoming version of entire property value"
msgstr ""
-#: ../libsvn_client/conflicts.c:9159
+#: ../libsvn_client/conflicts.c:9558
msgid "accept working copy version of entire property value"
msgstr ""
-#: ../libsvn_client/conflicts.c:9165
-msgid "accept incoming changes only where they conflict"
+#: ../libsvn_client/conflicts.c:9570
+msgid "reject changes which conflict and accept the rest"
msgstr ""
-#: ../libsvn_client/conflicts.c:9176
+#: ../libsvn_client/conflicts.c:9575
msgid "Accept merged"
msgstr ""
-#: ../libsvn_client/conflicts.c:9177
+#: ../libsvn_client/conflicts.c:9576
msgid "accept merged version of property value"
msgstr ""
-#: ../libsvn_client/conflicts.c:9216
+#: ../libsvn_client/conflicts.c:9615
msgid "accept current working copy state"
msgstr ""
-#: ../libsvn_client/conflicts.c:9243
+#: ../libsvn_client/conflicts.c:9642
msgid "Update move destination"
msgstr ""
-#: ../libsvn_client/conflicts.c:9244
+#: ../libsvn_client/conflicts.c:9643
msgid "apply incoming changes to move destination"
msgstr ""
-#: ../libsvn_client/conflicts.c:9278
+#: ../libsvn_client/conflicts.c:9677
msgid "Update any moved-away children"
msgstr ""
-#: ../libsvn_client/conflicts.c:9279
+#: ../libsvn_client/conflicts.c:9678
msgid "prepare for updating moved-away children, if any"
msgstr ""
-#: ../libsvn_client/conflicts.c:9324
+#: ../libsvn_client/conflicts.c:9723
#, c-format
msgid "ignore and do not add '^/%s@%ld' here"
msgstr ""
-#: ../libsvn_client/conflicts.c:9332
+#: ../libsvn_client/conflicts.c:9731
#, c-format
msgid "replace '^/%s@%ld' with the locally added file"
msgstr ""
-#: ../libsvn_client/conflicts.c:9337
+#: ../libsvn_client/conflicts.c:9736
#, c-format
msgid "replace '^/%s@%ld' with the locally added directory"
msgstr ""
-#: ../libsvn_client/conflicts.c:9343
+#: ../libsvn_client/conflicts.c:9742
#, c-format
msgid "replace '^/%s@%ld' with the locally added item"
msgstr ""
-#: ../libsvn_client/conflicts.c:9348
+#: ../libsvn_client/conflicts.c:9747
#, c-format
msgid "unexpected operation code '%d'"
msgstr ""
-#: ../libsvn_client/conflicts.c:9352
+#: ../libsvn_client/conflicts.c:9751
msgid "Ignore incoming addition"
msgstr ""
-#: ../libsvn_client/conflicts.c:9398 ../libsvn_client/conflicts.c:9523
+#: ../libsvn_client/conflicts.c:9797 ../libsvn_client/conflicts.c:9926
#, c-format
msgid "merge '^/%s@%ld' into '%s'"
msgstr ""
-#: ../libsvn_client/conflicts.c:9406 ../libsvn_client/conflicts.c:9531
+#: ../libsvn_client/conflicts.c:9805 ../libsvn_client/conflicts.c:9935
#, c-format
msgid "merge local '%s' and '^/%s@%ld'"
msgstr ""
-#: ../libsvn_client/conflicts.c:9416
+#: ../libsvn_client/conflicts.c:9815
msgid "Merge the files"
msgstr ""
-#: ../libsvn_client/conflicts.c:9465
+#: ../libsvn_client/conflicts.c:9864
#, c-format
msgid "delete '%s', copy '^/%s@%ld' here, and merge the files"
msgstr ""
-#: ../libsvn_client/conflicts.c:9475 ../libsvn_client/conflicts.c:9653
+#: ../libsvn_client/conflicts.c:9874 ../libsvn_client/conflicts.c:10057
msgid "Replace and merge"
msgstr ""
-#: ../libsvn_client/conflicts.c:9540
+#: ../libsvn_client/conflicts.c:9944
msgid "Merge the directories"
msgstr ""
-#: ../libsvn_client/conflicts.c:9587
+#: ../libsvn_client/conflicts.c:9991
#, c-format
msgid "delete '%s' and copy '^/%s@%ld' here"
msgstr ""
-#: ../libsvn_client/conflicts.c:9596
+#: ../libsvn_client/conflicts.c:10000
msgid "Delete my directory and replace it with incoming directory"
msgstr ""
-#: ../libsvn_client/conflicts.c:9643
+#: ../libsvn_client/conflicts.c:10047
#, c-format
msgid "delete '%s', copy '^/%s@%ld' here, and merge the directories"
msgstr ""
-#: ../libsvn_client/conflicts.c:9723
+#: ../libsvn_client/conflicts.c:10127
#, c-format
msgid "ignore the deletion of '^/%s@%ld'"
msgstr ""
-#: ../libsvn_client/conflicts.c:9728
+#: ../libsvn_client/conflicts.c:10132
msgid "Ignore incoming deletion"
msgstr ""
-#: ../libsvn_client/conflicts.c:9781
+#: ../libsvn_client/conflicts.c:10185
#, c-format
msgid "accept the deletion of '%s'"
msgstr ""
-#: ../libsvn_client/conflicts.c:9788
+#: ../libsvn_client/conflicts.c:10192
msgid "Accept incoming deletion"
msgstr ""
-#: ../libsvn_client/conflicts.c:9827
+#: ../libsvn_client/conflicts.c:10231
#, c-format
msgid "move '%s' to '%s' and merge"
msgstr ""
-#: ../libsvn_client/conflicts.c:9837
+#: ../libsvn_client/conflicts.c:10241
#, c-format
msgid "move and merge local changes from '%s' into '%s'"
msgstr ""
-#: ../libsvn_client/conflicts.c:9898 ../libsvn_client/conflicts.c:9958
+#: ../libsvn_client/conflicts.c:10302 ../libsvn_client/conflicts.c:10362
msgid "Move and merge"
msgstr ""
-#: ../libsvn_client/conflicts.c:10042
+#: ../libsvn_client/conflicts.c:10426
#, c-format
msgid "apply changes to move destination '%s'"
msgstr ""
-#: ../libsvn_client/conflicts.c:10051
+#: ../libsvn_client/conflicts.c:10439 ../libsvn_client/conflicts.c:10447
msgid "Apply to move destination"
msgstr ""
-#: ../libsvn_client/conflicts.c:10084 ../libsvn_client/conflicts.c:10212
+#: ../libsvn_client/conflicts.c:10510 ../libsvn_client/conflicts.c:11021
+#, c-format
+msgid "apply changes to '%s'"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:10523 ../libsvn_client/conflicts.c:10531
+msgid "Apply to corresponding local location"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:10614 ../libsvn_client/conflicts.c:10634
+#: ../libsvn_client/conflicts.c:10906
#, c-format
msgid ""
"Getting a list of possible move targets requires details for tree conflict "
"at '%s' to be fetched from the repository first"
msgstr ""
-#: ../libsvn_client/conflicts.c:10137 ../libsvn_client/conflicts.c:10260
+#: ../libsvn_client/conflicts.c:10679 ../libsvn_client/conflicts.c:11036
+#: ../libsvn_client/conflicts.c:11072
+#, c-format
+msgid "Index '%d' is out of bounds of the possible move target list for '%s'"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:10707
+#, c-format
+msgid ""
+"Repository path '%s' not found in list of possible move targets for '%s'"
+msgstr ""
+
+#: ../libsvn_client/conflicts.c:10751 ../libsvn_client/conflicts.c:10775
+#: ../libsvn_client/conflicts.c:10996 ../libsvn_client/conflicts.c:11059
#, c-format
msgid ""
"Setting a move target requires details for tree conflict at '%s' to be "
"fetched from the repository first"
msgstr ""
-#: ../libsvn_client/conflicts.c:10146 ../libsvn_client/conflicts.c:10273
+#: ../libsvn_client/conflicts.c:10858
#, c-format
-msgid "Index '%d' is out of bounds of the possible move target list for '%s'"
+msgid ""
+"Getting a list of possible move siblings requires details for tree conflict "
+"at '%s' to be fetched from the repository first"
msgstr ""
-#: ../libsvn_client/conflicts.c:10183
+#: ../libsvn_client/conflicts.c:11007
#, c-format
-msgid ""
-"Repository path '%s' not found in list of possible move targets for '%s'"
+msgid "Index '%d' is out of bounds of the possible move sibling list for '%s'"
msgstr ""
-#: ../libsvn_client/conflicts.c:10490 ../libsvn_client/conflicts.c:10539
-#: ../libsvn_client/conflicts.c:10592
+#: ../libsvn_client/conflicts.c:11309 ../libsvn_client/conflicts.c:11358
+#: ../libsvn_client/conflicts.c:11411
#, c-format
msgid "Inapplicable conflict resolution option given for conflicted path '%s'"
msgstr ""
-#: ../libsvn_client/conflicts.c:10812
+#: ../libsvn_client/conflicts.c:11631
#, c-format
msgid "Property '%s' is not in conflict."
msgstr ""
-#: ../libsvn_client/conflicts.c:11202 ../libsvn_wc/conflicts.c:3292
+#: ../libsvn_client/conflicts.c:12021 ../libsvn_wc/conflicts.c:3327
#, c-format
msgid "Unable to resolve pending conflict on '%s'"
msgstr ""
@@ -3575,7 +3609,7 @@ msgstr ""
#: ../libsvn_client/copy.c:991 ../libsvn_client/copy.c:1715
#: ../libsvn_client/copy.c:2090 ../libsvn_client/copy.c:2732
#: ../libsvn_client/import.c:911 ../libsvn_client/mtcc.c:456
-#: ../libsvn_client/mtcc.c:473 ../libsvn_ra_serf/util.c:1900
+#: ../libsvn_client/mtcc.c:473 ../libsvn_ra_serf/util.c:1920
#, c-format
msgid "Path '%s' already exists"
msgstr ""
@@ -3596,8 +3630,8 @@ msgstr ""
msgid "Path '%s' is not a directory"
msgstr ""
-#: ../libsvn_client/copy.c:1131 ../libsvn_client/merge.c:10252
-#: ../svnlook/svnlook.c:1411
+#: ../libsvn_client/copy.c:1131 ../libsvn_client/merge.c:10270
+#: ../svnlook/svnlook.c:1445
#, c-format
msgid "Path '%s' does not exist"
msgstr ""
@@ -3669,11 +3703,11 @@ msgid "Path '%s' is not in the working copy"
msgstr ""
#: ../libsvn_client/copy_foreign.c:373 ../libsvn_client/export.c:814
-#: ../libsvn_client/repos_diff.c:1002 ../libsvn_fs_fs/dag.c:1107
+#: ../libsvn_client/repos_diff.c:997 ../libsvn_fs_fs/dag.c:1107
#: ../libsvn_fs_x/dag.c:904 ../libsvn_ra_serf/commit.c:2229
#: ../libsvn_ra_svn/client.c:1506 ../libsvn_wc/diff_editor.c:2109
#: ../libsvn_wc/diff_editor.c:2195 ../libsvn_wc/externals.c:711
-#: ../libsvn_wc/update_editor.c:4228
+#: ../libsvn_wc/update_editor.c:4239
#, c-format
msgid "Checksum mismatch for '%s'"
msgstr ""
@@ -3719,90 +3753,90 @@ msgstr ""
msgid "Cannot specify revisions (except HEAD) with move operations"
msgstr ""
-#: ../libsvn_client/deprecated.c:1667
+#: ../libsvn_client/deprecated.c:1750
msgid "No commits in repository"
msgstr ""
-#: ../libsvn_client/deprecated.c:3052 ../libsvn_wc/deprecated.c:4202
+#: ../libsvn_client/deprecated.c:3151 ../libsvn_wc/deprecated.c:4228
msgid "Non-recursive relocation not supported"
msgstr ""
-#: ../libsvn_client/diff.c:66
+#: ../libsvn_client/diff.c:69
#, c-format
msgid "Path '%s' must be an immediate child of the directory '%s'"
msgstr ""
-#: ../libsvn_client/diff.c:241
+#: ../libsvn_client/diff.c:292
#, c-format
msgid "%s\t(revision %ld)"
msgstr ""
-#: ../libsvn_client/diff.c:243
+#: ../libsvn_client/diff.c:294
#, c-format
msgid "%s\t(nonexistent)"
msgstr ""
#. SVN_INVALID_REVNUM
-#: ../libsvn_client/diff.c:245
+#: ../libsvn_client/diff.c:296
#, c-format
msgid "%s\t(working copy)"
msgstr ""
-#: ../libsvn_client/diff.c:934
+#: ../libsvn_client/diff.c:978
#, c-format
msgid "Cannot display: file marked as a binary type.%s"
msgstr ""
-#: ../libsvn_client/diff.c:1471 ../libsvn_client/merge.c:7301
-#: ../libsvn_client/merge.c:10654
+#: ../libsvn_client/diff.c:1474 ../libsvn_client/merge.c:7344
+#: ../libsvn_client/merge.c:10672
msgid "Not all required revisions are specified"
msgstr ""
-#: ../libsvn_client/diff.c:1485
+#: ../libsvn_client/diff.c:1488
msgid ""
"At least one revision must be something other than BASE or WORKING when "
"diffing a URL"
msgstr ""
-#: ../libsvn_client/diff.c:1522
+#: ../libsvn_client/diff.c:1525
#, c-format
msgid "Diff target '%s' was not found in the repository at revision '%ld'"
msgstr ""
-#: ../libsvn_client/diff.c:1527
+#: ../libsvn_client/diff.c:1530
#, c-format
msgid ""
"Diff target '%s' was not found in the repository at revision '%ld' or '%ld'"
msgstr ""
-#: ../libsvn_client/diff.c:1703
+#: ../libsvn_client/diff.c:1717
#, c-format
msgid ""
"Diff target '%s' was not found in the repository at revisions '%ld' and '%ld'"
msgstr ""
-#: ../libsvn_client/diff.c:1708
+#: ../libsvn_client/diff.c:1722
#, c-format
msgid ""
"Diff targets '%s' and '%s' were not found in the repository at revisions "
"'%ld' and '%ld'"
msgstr ""
-#: ../libsvn_client/diff.c:1807
-msgid "Sorry, svn_client_diff6 was called in a way that is not yet supported"
+#: ../libsvn_client/diff.c:1821
+msgid "Sorry, svn_client_diff7 was called in a way that is not yet supported"
msgstr ""
-#: ../libsvn_client/diff.c:1847
+#: ../libsvn_client/diff.c:1863
msgid ""
-"Only diffs between a path's text-base and its working files are supported at "
-"this time"
+"A non-URL diff at this time must be either from a path's base to the same "
+"path's working version or between the working versions of two paths"
msgstr ""
-#: ../libsvn_client/diff.c:2551 ../libsvn_client/diff.c:2638
+#: ../libsvn_client/diff.c:2794 ../libsvn_client/diff.c:2857
msgid "Cannot ignore properties and show only properties at the same time"
msgstr ""
-#: ../libsvn_client/diff_local.c:789 ../libsvn_wc/props.c:1675
+#: ../libsvn_client/diff_local.c:733 ../libsvn_wc/props.c:1675
#, c-format
msgid "'%s' is not a file or directory"
msgstr ""
@@ -3816,7 +3850,7 @@ msgstr ""
msgid "Destination directory exists, and will not be overwritten unless forced"
msgstr ""
-#: ../libsvn_client/export.c:265 ../libsvn_client/export.c:1529
+#: ../libsvn_client/export.c:265 ../libsvn_client/export.c:1526
#: ../libsvn_wc/adm_crawler.c:1270 ../libsvn_wc/copy.c:651
#: ../libsvn_wc/crop.c:239 ../libsvn_wc/crop.c:342 ../libsvn_wc/info.c:377
#: ../libsvn_wc/node.c:529 ../libsvn_wc/props.c:202 ../libsvn_wc/status.c:2728
@@ -3837,14 +3871,14 @@ msgstr ""
msgid "The node '%s' was not found."
msgstr ""
-#: ../libsvn_client/export.c:285 ../libsvn_client/export.c:1182
-#: ../libsvn_client/export.c:1237
+#: ../libsvn_client/export.c:285 ../libsvn_client/export.c:1181
+#: ../libsvn_client/export.c:1235
#, c-format
msgid "Destination file '%s' exists, and will not be overwritten unless forced"
msgstr ""
-#: ../libsvn_client/export.c:291 ../libsvn_client/export.c:1187
-#: ../libsvn_client/export.c:1242
+#: ../libsvn_client/export.c:291 ../libsvn_client/export.c:1186
+#: ../libsvn_client/export.c:1240
#, c-format
msgid "Destination '%s' exists. Cannot overwrite directory with non-directory"
msgstr ""
@@ -3921,8 +3955,8 @@ msgstr ""
msgid "New entry name required when importing a file"
msgstr ""
-#: ../libsvn_client/import.c:787 ../libsvn_client/patch.c:3752
-#: ../libsvn_client/patch.c:3764 ../libsvn_wc/delete.c:93
+#: ../libsvn_client/import.c:787 ../libsvn_client/patch.c:3754
+#: ../libsvn_client/patch.c:3766 ../libsvn_wc/delete.c:93
#: ../libsvn_wc/lock.c:121 ../libsvn_wc/wc_db_wcroot.c:78
#, c-format
msgid "'%s' does not exist"
@@ -3995,12 +4029,12 @@ msgstr ""
msgid "Missing required revision specification"
msgstr ""
-#: ../libsvn_client/merge.c:416
+#: ../libsvn_client/merge.c:436
#, c-format
msgid "URL '%s' of '%s' is not in repository '%s'"
msgstr ""
-#: ../libsvn_client/merge.c:453
+#: ../libsvn_client/merge.c:473
#, c-format
msgid "'%s' must be from the same repository as '%s'"
msgstr ""
@@ -4008,28 +4042,28 @@ msgstr ""
#. xgettext: the '.working', '.merge-left.r%ld' and
#. '.merge-right.r%ld' strings are used to tag onto a file
#. name in case of a merge conflict
-#: ../libsvn_client/merge.c:2111
+#: ../libsvn_client/merge.c:2108
#, c-format
msgid ".working%s%s"
msgstr ""
-#: ../libsvn_client/merge.c:2114
+#: ../libsvn_client/merge.c:2111
#, c-format
msgid ".merge-left.r%ld%s%s"
msgstr ""
-#: ../libsvn_client/merge.c:2118
+#: ../libsvn_client/merge.c:2115
#, c-format
msgid ".merge-right.r%ld%s%s"
msgstr ""
-#: ../libsvn_client/merge.c:4816
+#: ../libsvn_client/merge.c:4859
msgid ""
"Cannot reverse-merge a range from a path's own future history; try updating "
"first"
msgstr ""
-#: ../libsvn_client/merge.c:5537
+#: ../libsvn_client/merge.c:5580
#, c-format
msgid ""
"One or more conflicts were produced while merging r%ld:%ld into\n"
@@ -4038,87 +4072,87 @@ msgid ""
"unmerged revisions"
msgstr ""
-#: ../libsvn_client/merge.c:6353
+#: ../libsvn_client/merge.c:6396
#, c-format
msgid "Invalid mergeinfo detected on '%s', merge tracking not possible"
msgstr ""
-#: ../libsvn_client/merge.c:6504
+#: ../libsvn_client/merge.c:6547
msgid ""
"Merge tracking not allowed with missing subtrees; try restoring these items "
"first:\n"
msgstr ""
-#: ../libsvn_client/merge.c:7505
+#: ../libsvn_client/merge.c:7548
#, c-format
msgid ""
"Invalid mergeinfo detected on merge target '%s', merge tracking not possible"
msgstr ""
-#: ../libsvn_client/merge.c:9823
+#: ../libsvn_client/merge.c:9856
msgid "Use of two URLs is not compatible with mergeinfo modification"
msgstr ""
-#: ../libsvn_client/merge.c:9830 ../libsvn_client/merge.c:10166
+#: ../libsvn_client/merge.c:9863 ../libsvn_client/merge.c:10184
msgid ""
"Merge from foreign repository is not compatible with mergeinfo modification"
msgstr ""
-#: ../libsvn_client/merge.c:10259 ../libsvn_client/merge.c:10402
+#: ../libsvn_client/merge.c:10277 ../libsvn_client/merge.c:10420
#, c-format
msgid "Merge target '%s' does not exist in the working copy"
msgstr ""
-#: ../libsvn_client/merge.c:10282
+#: ../libsvn_client/merge.c:10300
msgid "Cannot determine revision of working copy"
msgstr ""
-#: ../libsvn_client/merge.c:10288
+#: ../libsvn_client/merge.c:10306
#, c-format
msgid ""
"Cannot merge into mixed-revision working copy [%ld:%ld]; try updating first"
msgstr ""
-#: ../libsvn_client/merge.c:10303
+#: ../libsvn_client/merge.c:10321
msgid "Cannot merge into a working copy with a switched subtree"
msgstr ""
-#: ../libsvn_client/merge.c:10319
+#: ../libsvn_client/merge.c:10337
msgid "Cannot merge into a working copy that has local modifications"
msgstr ""
-#: ../libsvn_client/merge.c:10339 ../svn/merge-cmd.c:56
+#: ../libsvn_client/merge.c:10357 ../svn/merge-cmd.c:56
#, c-format
msgid ""
"Invalid merge source '%s'; a working copy path can only be used with a "
"repository revision (a number, a date, or head)"
msgstr ""
-#: ../libsvn_client/merge.c:10657 ../svn/merge-cmd.c:123
+#: ../libsvn_client/merge.c:10675 ../svn/merge-cmd.c:123
msgid "Merge sources must both be either paths or URLs"
msgstr ""
-#: ../libsvn_client/merge.c:11427 ../libsvn_client/merge.c:11589
-#: ../libsvn_client/merge.c:12507
+#: ../libsvn_client/merge.c:11445 ../libsvn_client/merge.c:11607
+#: ../libsvn_client/merge.c:12525
#, c-format
msgid "'%s@%ld' must be ancestrally related to '%s@%ld'"
msgstr ""
-#: ../libsvn_client/merge.c:11539
+#: ../libsvn_client/merge.c:11557
#, c-format
msgid ""
"Neither the reintegrate source nor target can be the root of the repository"
msgstr ""
-#: ../libsvn_client/merge.c:11549
+#: ../libsvn_client/merge.c:11567
msgid "Reintegrate merge not possible"
msgstr ""
-#: ../libsvn_client/merge.c:11619
+#: ../libsvn_client/merge.c:11637
msgid " Missing ranges: "
msgstr ""
-#: ../libsvn_client/merge.c:11622
+#: ../libsvn_client/merge.c:11640
#, c-format
msgid ""
"Reintegrate can only be used if revisions %ld through %ld were previously "
@@ -4126,37 +4160,37 @@ msgid ""
"%s"
msgstr ""
-#: ../libsvn_client/merge.c:11681
+#: ../libsvn_client/merge.c:11699
#, c-format
msgid ""
"Can't reintegrate into '%s' because it is locally added and therefore not "
"related to the merge source"
msgstr ""
-#: ../libsvn_client/merge.c:11969
+#: ../libsvn_client/merge.c:11987
msgid "Cannot merge automatically while ignoring mergeinfo"
msgstr ""
-#: ../libsvn_client/merge.c:12637
+#: ../libsvn_client/merge.c:12655
#, c-format
msgid ""
"Can't perform automatic merge into '%s' because it is locally added and "
"therefore not related to the merge source"
msgstr ""
-#: ../libsvn_client/merge.c:12736
+#: ../libsvn_client/merge.c:12754
msgid ""
"The required merge is reintegrate-like, and the record-only option cannot be "
"used with this kind of merge"
msgstr ""
-#: ../libsvn_client/merge.c:12742
+#: ../libsvn_client/merge.c:12760
msgid ""
"The required merge is reintegrate-like, and the depth option cannot be used "
"with this kind of merge"
msgstr ""
-#: ../libsvn_client/merge.c:12748
+#: ../libsvn_client/merge.c:12766
msgid ""
"The required merge is reintegrate-like, and the force_delete option cannot "
"be used with this kind of merge"
@@ -4285,20 +4319,22 @@ msgstr ""
#: ../libsvn_client/patch.c:346
#, c-format
-msgid "Cannot strip %u components from '%s'"
-msgstr ""
+msgid "Cannot strip %u component from '%s'"
+msgid_plural "Cannot strip %u components from '%s'"
+msgstr[0] ""
+msgstr[1] ""
-#: ../libsvn_client/patch.c:1296 ../libsvn_client/patch.c:1342
+#: ../libsvn_client/patch.c:1298 ../libsvn_client/patch.c:1344
#, c-format
msgid ""
"Invalid patch: specifies contradicting mode changes and %s changes (for '%s')"
msgstr ""
-#: ../libsvn_client/patch.c:3741
+#: ../libsvn_client/patch.c:3743
msgid "strip count must be positive"
msgstr ""
-#: ../libsvn_client/patch.c:3757 ../libsvn_fs_base/tree.c:4112
+#: ../libsvn_client/patch.c:3759 ../libsvn_fs_base/tree.c:4112
#: ../libsvn_fs_base/tree.c:4117 ../libsvn_fs_fs/tree.c:3245
#: ../libsvn_fs_fs/tree.c:3251 ../libsvn_fs_x/tree.c:2188
#: ../libsvn_fs_x/tree.c:2194 ../libsvn_ra/compat.c:677
@@ -4307,7 +4343,7 @@ msgstr ""
msgid "'%s' is not a file"
msgstr ""
-#: ../libsvn_client/patch.c:3769 ../libsvn_wc/util.c:59
+#: ../libsvn_client/patch.c:3771 ../libsvn_wc/util.c:59
#, c-format
msgid "'%s' is not a directory"
msgstr ""
@@ -4402,7 +4438,7 @@ msgstr ""
msgid "The repository at '%s' has uuid '%s', but the WC has '%s'"
msgstr ""
-#: ../libsvn_client/repos_diff.c:935 ../libsvn_wc/externals.c:629
+#: ../libsvn_client/repos_diff.c:930 ../libsvn_wc/externals.c:629
#, c-format
msgid "Base checksum mismatch for '%s'"
msgstr ""
@@ -4417,23 +4453,47 @@ msgstr ""
msgid "Unrecognized revision type requested for '%s'"
msgstr ""
-#: ../libsvn_client/shelve.c:56
+#: ../libsvn_client/shelf.c:58
msgid "Shelf name cannot be the empty string"
msgstr ""
-#: ../libsvn_client/shelve.c:84
+#: ../libsvn_client/shelf.c:86
#, c-format
msgid "Shelve: Bad encoded name '%s'"
msgstr ""
-#: ../libsvn_client/status.c:422 ../libsvn_client/status.c:601
+#: ../libsvn_client/shelf.c:1207
+#, c-format
+msgid "Shelf '%s' not found"
+msgstr ""
+
+#. xgettext: the '.working', '.merge-left' and '.merge-right' strings
+#. are used to tag onto a file name in case of a merge conflict
+#: ../libsvn_client/shelf.c:1385 ../libsvn_wc/wc_db_update_move.c:1627
+msgid ".working"
+msgstr ""
+
+#: ../libsvn_client/shelf.c:1386
+msgid ".merge-left"
+msgstr ""
+
+#: ../libsvn_client/shelf.c:1387
+msgid ".merge-right"
+msgstr ""
+
+#: ../libsvn_client/shelf.c:2054
+#, c-format
+msgid "Shelf '%s' version %d not found"
+msgstr ""
+
+#: ../libsvn_client/status.c:498 ../libsvn_client/status.c:680
#: ../libsvn_wc/lock.c:564 ../libsvn_wc/lock.c:856 ../libsvn_wc/lock.c:1542
-#: ../libsvn_wc/wc_db.c:13629 ../libsvn_wc/wc_db_wcroot.c:722
+#: ../libsvn_wc/wc_db.c:13629 ../libsvn_wc/wc_db_wcroot.c:727
#, c-format
msgid "'%s' is not a working copy"
msgstr ""
-#: ../libsvn_client/status.c:469
+#: ../libsvn_client/status.c:545
#, c-format
msgid "Entry '%s' has no URL"
msgstr ""
@@ -4454,7 +4514,7 @@ msgid "Directory '%s' has no URL"
msgstr ""
#: ../libsvn_client/switch.c:215 ../libsvn_ra_local/ra_plugin.c:236
-#: ../libsvn_ra_local/ra_plugin.c:326 ../libsvn_wc/update_editor.c:4921
+#: ../libsvn_ra_local/ra_plugin.c:326 ../libsvn_wc/update_editor.c:4932
#, c-format
msgid ""
"'%s'\n"
@@ -4607,15 +4667,15 @@ msgstr ""
msgid "Failed to delete mmap '%s'"
msgstr ""
-#: ../libsvn_diff/parse-diff.c:368
+#: ../libsvn_diff/parse-diff.c:373
msgid "Unexpected data in base85 section"
msgstr ""
-#: ../libsvn_diff/parse-diff.c:437
+#: ../libsvn_diff/parse-diff.c:442
msgid "Base85 data expands to longer than declared filesize"
msgstr ""
-#: ../libsvn_diff/parse-diff.c:441
+#: ../libsvn_diff/parse-diff.c:446
msgid "Base85 data expands to smaller than declared filesize"
msgstr ""
@@ -5901,13 +5961,13 @@ msgid "Destination '%s' is not a directory"
msgstr ""
#: ../libsvn_fs_fs/hotcopy.c:226 ../libsvn_fs_x/hotcopy.c:228
-#: ../libsvn_subr/io.c:1172 ../libsvn_subr/io.c:2868
+#: ../libsvn_subr/io.c:1172 ../libsvn_subr/io.c:2869
#, c-format
msgid "Can't read directory '%s'"
msgstr ""
#: ../libsvn_fs_fs/hotcopy.c:231 ../libsvn_fs_x/hotcopy.c:233
-#: ../libsvn_subr/io.c:1177 ../libsvn_subr/io.c:2873 ../libsvn_subr/io.c:4659
+#: ../libsvn_subr/io.c:1177 ../libsvn_subr/io.c:2874 ../libsvn_subr/io.c:4660
#, c-format
msgid "Error closing directory '%s'"
msgstr ""
@@ -6916,12 +6976,12 @@ msgid "URL '%s' is not a child of the session's repository root URL '%s'"
msgstr ""
#: ../libsvn_ra_local/ra_plugin.c:1285 ../libsvn_ra_local/ra_plugin.c:1740
-#: ../libsvn_ra_serf/util.c:1844 ../svnserve/serve.c:3554
+#: ../libsvn_ra_serf/util.c:1864 ../svnserve/serve.c:3554
#, c-format
msgid "'%s' path not found"
msgstr ""
-#: ../libsvn_ra_local/ra_plugin.c:1692 ../libsvn_ra_serf/options.c:759
+#: ../libsvn_ra_local/ra_plugin.c:1692 ../libsvn_ra_serf/options.c:777
#: ../libsvn_ra_svn/client.c:3093
#, c-format
msgid "Don't know anything about capability '%s'"
@@ -6997,7 +7057,7 @@ msgstr ""
msgid "Got unrecognized encoding '%s'"
msgstr ""
-#: ../libsvn_ra_serf/list.c:126 ../libsvn_ra_serf/log.c:172
+#: ../libsvn_ra_serf/list.c:113 ../libsvn_ra_serf/log.c:172
#, c-format
msgid "Unsupported encoding '%s'"
msgstr ""
@@ -7064,36 +7124,41 @@ msgstr ""
msgid "While handling the '%s' path:"
msgstr ""
-#: ../libsvn_ra_serf/options.c:473
+#: ../libsvn_ra_serf/options.c:413
+#, c-format
+msgid "The server at '%s' does not support the HTTP/DAV protocol"
+msgstr ""
+
+#: ../libsvn_ra_serf/options.c:491
msgid "The OPTIONS response did not include the youngest revision"
msgstr ""
-#: ../libsvn_ra_serf/options.c:514
+#: ../libsvn_ra_serf/options.c:532
msgid ""
"The OPTIONS response did not include the requested activity-collection-set "
"value"
msgstr ""
-#: ../libsvn_ra_serf/options.c:556
+#: ../libsvn_ra_serf/options.c:574
msgid "Location header not set on redirect response"
msgstr ""
-#: ../libsvn_ra_serf/options.c:586 ../libsvn_ra_serf/util.c:1835
+#: ../libsvn_ra_serf/options.c:604 ../libsvn_ra_serf/util.c:1855
#, c-format
msgid "Repository moved permanently to '%s'"
msgstr ""
-#: ../libsvn_ra_serf/options.c:587 ../libsvn_ra_serf/util.c:1836
+#: ../libsvn_ra_serf/options.c:605 ../libsvn_ra_serf/util.c:1856
#, c-format
msgid "Repository moved temporarily to '%s'"
msgstr ""
-#: ../libsvn_ra_serf/options.c:742
+#: ../libsvn_ra_serf/options.c:760
#, c-format
msgid "Don't know how to handle '%s' for capability '%s'"
msgstr ""
-#: ../libsvn_ra_serf/options.c:766
+#: ../libsvn_ra_serf/options.c:784
#, c-format
msgid "Attempt to fetch capability '%s' resulted in '%s'"
msgstr ""
@@ -7246,62 +7311,62 @@ msgstr ""
msgid "Invalid config: unable to load certificate file '%s'"
msgstr ""
-#: ../libsvn_ra_serf/util.c:955 ../libsvn_ra_serf/util.c:958
+#: ../libsvn_ra_serf/util.c:958 ../libsvn_ra_serf/util.c:961
msgid "Error running context"
msgstr ""
-#: ../libsvn_ra_serf/util.c:1230
+#: ../libsvn_ra_serf/util.c:1233
msgid ""
"No more credentials or we tried too many times.\n"
"Authentication failed"
msgstr ""
-#: ../libsvn_ra_serf/util.c:1252
+#: ../libsvn_ra_serf/util.c:1255
msgid "Proxy authentication failed"
msgstr ""
-#: ../libsvn_ra_serf/util.c:1307
+#: ../libsvn_ra_serf/util.c:1310
#, c-format
msgid "%s request on '%s' failed"
msgstr ""
-#: ../libsvn_ra_serf/util.c:1383
+#: ../libsvn_ra_serf/util.c:1386
#, c-format
msgid "Premature EOF seen from server (http status=%d)"
msgstr ""
-#: ../libsvn_ra_serf/util.c:1734
+#: ../libsvn_ra_serf/util.c:1754
msgid ""
"The PROPFIND response did not include the requested version-controlled-"
"configuration value"
msgstr ""
-#: ../libsvn_ra_serf/util.c:1840
+#: ../libsvn_ra_serf/util.c:1860
#, c-format
msgid "Access to '%s' forbidden"
msgstr ""
-#: ../libsvn_ra_serf/util.c:1847
+#: ../libsvn_ra_serf/util.c:1867
#, c-format
msgid "HTTP method is not allowed on '%s'"
msgstr ""
-#: ../libsvn_ra_serf/util.c:1851
+#: ../libsvn_ra_serf/util.c:1871
#, c-format
msgid "'%s' conflicts"
msgstr ""
-#: ../libsvn_ra_serf/util.c:1854
+#: ../libsvn_ra_serf/util.c:1874
#, c-format
msgid "Precondition on '%s' failed"
msgstr ""
-#: ../libsvn_ra_serf/util.c:1857
+#: ../libsvn_ra_serf/util.c:1877
#, c-format
msgid "'%s': no lock token available"
msgstr ""
-#: ../libsvn_ra_serf/util.c:1861
+#: ../libsvn_ra_serf/util.c:1881
#, c-format
msgid ""
"DAV request failed: 411 Content length required. The server or an "
@@ -7309,37 +7374,37 @@ msgid ""
"chunked-requests' to 'auto' or 'no' in your client configuration."
msgstr ""
-#: ../libsvn_ra_serf/util.c:1867
+#: ../libsvn_ra_serf/util.c:1887
#, c-format
msgid "Unexpected server error %d '%s' on '%s'"
msgstr ""
-#: ../libsvn_ra_serf/util.c:1871
+#: ../libsvn_ra_serf/util.c:1891
#, c-format
msgid "The requested feature is not supported by '%s'"
msgstr ""
-#: ../libsvn_ra_serf/util.c:1877
+#: ../libsvn_ra_serf/util.c:1897
#, c-format
msgid "Unexpected HTTP status %d '%s' on '%s'"
msgstr ""
-#: ../libsvn_ra_serf/util.c:1896
+#: ../libsvn_ra_serf/util.c:1916
#, c-format
msgid "Path '%s' unexpectedly created"
msgstr ""
-#: ../libsvn_ra_serf/util.c:1905
+#: ../libsvn_ra_serf/util.c:1925
#, c-format
msgid "The HTTP method '%s' is not allowed on '%s'"
msgstr ""
-#: ../libsvn_ra_serf/util.c:1910
+#: ../libsvn_ra_serf/util.c:1930
#, c-format
msgid "Unexpected HTTP status %d '%s' on '%s' request to '%s'"
msgstr ""
-#: ../libsvn_ra_serf/util.c:2013
+#: ../libsvn_ra_serf/util.c:2033
#, c-format
msgid "Illegal URL '%s'"
msgstr ""
@@ -7928,17 +7993,17 @@ msgid ""
"and there was no source entry"
msgstr ""
-#: ../libsvn_repos/deprecated.c:715 ../svnadmin/svnadmin.c:988
+#: ../libsvn_repos/deprecated.c:715 ../svnadmin/svnadmin.c:1054
#, c-format
msgid "* Dumped revision %ld.\n"
msgstr ""
-#: ../libsvn_repos/deprecated.c:721 ../svnadmin/svnadmin.c:994
+#: ../libsvn_repos/deprecated.c:721 ../svnadmin/svnadmin.c:1060
#, c-format
msgid "* Verified revision %ld.\n"
msgstr ""
-#: ../libsvn_repos/deprecated.c:729 ../svnadmin/svnadmin.c:1042
+#: ../libsvn_repos/deprecated.c:729 ../svnadmin/svnadmin.c:1108
#, c-format
msgid ""
"\n"
@@ -7946,7 +8011,7 @@ msgid ""
"\n"
msgstr ""
-#: ../libsvn_repos/deprecated.c:735 ../svnadmin/svnadmin.c:1048
+#: ../libsvn_repos/deprecated.c:735 ../svnadmin/svnadmin.c:1114
#, c-format
msgid ""
"\n"
@@ -7954,36 +8019,36 @@ msgid ""
"\n"
msgstr ""
-#: ../libsvn_repos/deprecated.c:748 ../svnadmin/svnadmin.c:1061
+#: ../libsvn_repos/deprecated.c:748 ../svnadmin/svnadmin.c:1127
#, c-format
msgid " * editing path : %s ..."
msgstr ""
-#: ../libsvn_repos/deprecated.c:754 ../svnadmin/svnadmin.c:1067
+#: ../libsvn_repos/deprecated.c:754 ../svnadmin/svnadmin.c:1133
#, c-format
msgid " * deleting path : %s ..."
msgstr ""
-#: ../libsvn_repos/deprecated.c:760 ../svnadmin/svnadmin.c:1073
+#: ../libsvn_repos/deprecated.c:760 ../svnadmin/svnadmin.c:1139
#, c-format
msgid " * adding path : %s ..."
msgstr ""
-#: ../libsvn_repos/deprecated.c:766 ../svnadmin/svnadmin.c:1079
+#: ../libsvn_repos/deprecated.c:766 ../svnadmin/svnadmin.c:1145
#, c-format
msgid " * replacing path : %s ..."
msgstr ""
-#: ../libsvn_repos/deprecated.c:776 ../svnadmin/svnadmin.c:1088
+#: ../libsvn_repos/deprecated.c:776 ../svnadmin/svnadmin.c:1154
msgid " done.\n"
msgstr ""
-#: ../libsvn_repos/deprecated.c:786 ../svnadmin/svnadmin.c:1097
+#: ../libsvn_repos/deprecated.c:786 ../svnadmin/svnadmin.c:1163
#, c-format
msgid "<<< Started new transaction, based on original revision %ld\n"
msgstr ""
-#: ../libsvn_repos/deprecated.c:793 ../svnadmin/svnadmin.c:1110
+#: ../libsvn_repos/deprecated.c:793 ../svnadmin/svnadmin.c:1176
#, c-format
msgid " removing '\\r' from %s ..."
msgstr ""
@@ -8052,44 +8117,44 @@ msgid ""
"revision (r%ld). Loading this dump into an empty repository will fail."
msgstr ""
-#: ../libsvn_repos/dump.c:2045 ../libsvn_repos/dump.c:2475
+#: ../libsvn_repos/dump.c:2031 ../libsvn_repos/dump.c:2461
#, c-format
msgid "Start revision %ld is greater than end revision %ld"
msgstr ""
-#: ../libsvn_repos/dump.c:2050 ../libsvn_repos/dump.c:2480
+#: ../libsvn_repos/dump.c:2036 ../libsvn_repos/dump.c:2466
#, c-format
msgid "End revision %ld is invalid (youngest revision is %ld)"
msgstr ""
-#: ../libsvn_repos/dump.c:2178
+#: ../libsvn_repos/dump.c:2164
msgid ""
"The range of revisions dumped contained references to copy sources outside "
"that range."
msgstr ""
-#: ../libsvn_repos/dump.c:2190
+#: ../libsvn_repos/dump.c:2176
msgid ""
"The range of revisions dumped contained mergeinfo which reference revisions "
"outside that range."
msgstr ""
-#: ../libsvn_repos/dump.c:2244
+#: ../libsvn_repos/dump.c:2230
#, c-format
msgid "Node '%s' is not a directory."
msgstr ""
-#: ../libsvn_repos/dump.c:2252
+#: ../libsvn_repos/dump.c:2238
#, c-format
msgid "Node '%s' is not a file."
msgstr ""
-#: ../libsvn_repos/dump.c:2257
+#: ../libsvn_repos/dump.c:2243
#, c-format
msgid "Unexpected node kind %d for '%s'"
msgstr ""
-#: ../libsvn_repos/dump.c:2304
+#: ../libsvn_repos/dump.c:2290
#, c-format
msgid "Duplicate representation of path '%s'"
msgstr ""
@@ -8224,7 +8289,7 @@ msgid ""
"ask the administrator to create a pre-revprop-change hook"
msgstr ""
-#: ../libsvn_repos/list.c:314 ../libsvn_subr/io.c:2977
+#: ../libsvn_repos/list.c:314 ../libsvn_subr/io.c:2978
#, c-format
msgid "Path '%s' not found"
msgstr ""
@@ -8895,26 +8960,38 @@ msgstr ""
msgid "Can't expand time"
msgstr ""
-#: ../libsvn_subr/deprecated.c:365 ../libsvn_subr/opt.c:302
+#: ../libsvn_subr/deprecated.c:365 ../libsvn_subr/deprecated.c:605
+#: ../libsvn_subr/opt.c:269
msgid ""
"\n"
"Valid options:\n"
msgstr ""
-#: ../libsvn_subr/deprecated.c:441 ../libsvn_subr/opt.c:426
+#: ../libsvn_subr/deprecated.c:545 ../libsvn_subr/opt.c:174
+msgid " ARG"
+msgstr ""
+
+#: ../libsvn_subr/deprecated.c:627 ../libsvn_subr/opt.c:291
+msgid ""
+"\n"
+"Global options:\n"
+msgstr ""
+
+#: ../libsvn_subr/deprecated.c:769 ../libsvn_subr/deprecated.c:803
+#: ../libsvn_subr/opt.c:393
#, c-format
msgid ""
"\"%s\": unknown command.\n"
"\n"
msgstr ""
-#: ../libsvn_subr/deprecated.c:619 ../libsvn_subr/opt.c:1241
-#: ../svnrdump/svnrdump.c:597
+#: ../libsvn_subr/deprecated.c:931 ../libsvn_subr/deprecated.c:1031
+#: ../libsvn_subr/opt.c:1208 ../svnrdump/svnrdump.c:603
#, c-format
msgid "Type '%s help' for usage.\n"
msgstr ""
-#: ../libsvn_subr/deprecated.c:1047
+#: ../libsvn_subr/deprecated.c:1459
#, c-format
msgid "'%s' is neither a file nor a directory name"
msgstr ""
@@ -9025,7 +9102,7 @@ msgstr ""
msgid "Can't check path '%s'"
msgstr ""
-#: ../libsvn_subr/io.c:604 ../libsvn_subr/io.c:5213
+#: ../libsvn_subr/io.c:604 ../libsvn_subr/io.c:5214
#, c-format
msgid "Can't open '%s'"
msgstr ""
@@ -9061,13 +9138,13 @@ msgid "Can't copy '%s' to '%s'"
msgstr ""
#: ../libsvn_subr/io.c:964 ../libsvn_subr/io.c:986 ../libsvn_subr/io.c:1032
-#: ../libsvn_subr/io.c:5346
+#: ../libsvn_subr/io.c:5347
#, c-format
msgid "Can't set permissions on '%s'"
msgstr ""
#: ../libsvn_subr/io.c:982 ../libsvn_subr/io.c:2322 ../libsvn_subr/io.c:2382
-#: ../libsvn_subr/io.c:2471 ../libsvn_subr/io.c:5251
+#: ../libsvn_subr/io.c:2471 ../libsvn_subr/io.c:5252
#, c-format
msgid "Can't get file name"
msgstr ""
@@ -9107,12 +9184,12 @@ msgstr ""
msgid "Can't set attributes of file '%s'"
msgstr ""
-#: ../libsvn_subr/io.c:2027 ../libsvn_subr/io.c:2688
+#: ../libsvn_subr/io.c:2027 ../libsvn_subr/io.c:2689
#, c-format
msgid "Can't remove file '%s'"
msgstr ""
-#: ../libsvn_subr/io.c:2097 ../libsvn_subr/io.c:4291
+#: ../libsvn_subr/io.c:2097 ../libsvn_subr/io.c:4292
#, c-format
msgid "Can't move '%s' to '%s'"
msgstr ""
@@ -9147,106 +9224,106 @@ msgstr ""
msgid "Can't flush file '%s' to disk"
msgstr ""
-#: ../libsvn_subr/io.c:2602 ../libsvn_subr/prompt.c:197
+#: ../libsvn_subr/io.c:2603 ../libsvn_subr/prompt.c:197
#, c-format
msgid "Can't open stdin"
msgstr ""
-#: ../libsvn_subr/io.c:2622
+#: ../libsvn_subr/io.c:2623
msgid "Reading from stdin is disallowed"
msgstr ""
-#: ../libsvn_subr/io.c:2775
+#: ../libsvn_subr/io.c:2776
#, c-format
msgid "Can't remove '%s'"
msgstr ""
-#: ../libsvn_subr/io.c:2938
+#: ../libsvn_subr/io.c:2939
#, c-format
msgid "Path '%s' not found, case obstructed by '%s'"
msgstr ""
-#: ../libsvn_subr/io.c:3051
+#: ../libsvn_subr/io.c:3052
#, c-format
msgid "Can't create process '%s' attributes"
msgstr ""
-#: ../libsvn_subr/io.c:3058
+#: ../libsvn_subr/io.c:3059
#, c-format
msgid "Can't set process '%s' cmdtype"
msgstr ""
-#: ../libsvn_subr/io.c:3074
+#: ../libsvn_subr/io.c:3075
#, c-format
msgid "Can't set process '%s' directory"
msgstr ""
-#: ../libsvn_subr/io.c:3088
+#: ../libsvn_subr/io.c:3089
#, c-format
msgid "Can't set process '%s' child input"
msgstr ""
-#: ../libsvn_subr/io.c:3096
+#: ../libsvn_subr/io.c:3097
#, c-format
msgid "Can't set process '%s' child outfile"
msgstr ""
-#: ../libsvn_subr/io.c:3104
+#: ../libsvn_subr/io.c:3105
#, c-format
msgid "Can't set process '%s' child errfile"
msgstr ""
-#: ../libsvn_subr/io.c:3118
+#: ../libsvn_subr/io.c:3119
#, c-format
msgid "Can't set process '%s' stdio pipes"
msgstr ""
-#: ../libsvn_subr/io.c:3126
+#: ../libsvn_subr/io.c:3127
#, c-format
msgid "Can't set process '%s' child errfile for error handler"
msgstr ""
-#: ../libsvn_subr/io.c:3133
+#: ../libsvn_subr/io.c:3134
#, c-format
msgid "Can't set process '%s' error handler"
msgstr ""
-#: ../libsvn_subr/io.c:3156
+#: ../libsvn_subr/io.c:3157
#, c-format
msgid "Can't start process '%s'"
msgstr ""
-#: ../libsvn_subr/io.c:3180
+#: ../libsvn_subr/io.c:3181
#, c-format
msgid "Error waiting for process '%s'"
msgstr ""
-#: ../libsvn_subr/io.c:3189
+#: ../libsvn_subr/io.c:3190
#, c-format
msgid "Process '%s' failed (signal %d, core dumped)"
msgstr ""
-#: ../libsvn_subr/io.c:3194
+#: ../libsvn_subr/io.c:3195
#, c-format
msgid "Process '%s' failed (signal %d)"
msgstr ""
-#: ../libsvn_subr/io.c:3200
+#: ../libsvn_subr/io.c:3201
#, c-format
msgid "Process '%s' failed (exitwhy %d, exitcode %d)"
msgstr ""
-#: ../libsvn_subr/io.c:3208
+#: ../libsvn_subr/io.c:3209
#, c-format
msgid "Process '%s' returned error exitcode %d"
msgstr ""
-#: ../libsvn_subr/io.c:3315
+#: ../libsvn_subr/io.c:3316
#, c-format
msgid "'%s' returned %d"
msgstr ""
-#: ../libsvn_subr/io.c:3436
+#: ../libsvn_subr/io.c:3437
#, c-format
msgid ""
"Error running '%s': exitcode was %d, args were:\n"
@@ -9256,188 +9333,188 @@ msgid ""
"%s"
msgstr ""
-#: ../libsvn_subr/io.c:3577
+#: ../libsvn_subr/io.c:3578
#, c-format
msgid "Can't detect MIME type of non-file '%s'"
msgstr ""
-#: ../libsvn_subr/io.c:3672
+#: ../libsvn_subr/io.c:3673
#, c-format
msgid "Can't open file '%s'"
msgstr ""
-#: ../libsvn_subr/io.c:3712
+#: ../libsvn_subr/io.c:3713
#, c-format
msgid "Can't close file '%s'"
msgstr ""
-#: ../libsvn_subr/io.c:3713
+#: ../libsvn_subr/io.c:3714
#, c-format
msgid "Can't close stream"
msgstr ""
-#: ../libsvn_subr/io.c:3722 ../libsvn_subr/io.c:3784 ../libsvn_subr/io.c:3809
-#: ../libsvn_subr/io.c:3899
+#: ../libsvn_subr/io.c:3723 ../libsvn_subr/io.c:3785 ../libsvn_subr/io.c:3810
+#: ../libsvn_subr/io.c:3900
#, c-format
msgid "Can't read file '%s'"
msgstr ""
-#: ../libsvn_subr/io.c:3723 ../libsvn_subr/io.c:3785 ../libsvn_subr/io.c:3810
-#: ../libsvn_subr/io.c:3900
+#: ../libsvn_subr/io.c:3724 ../libsvn_subr/io.c:3786 ../libsvn_subr/io.c:3811
+#: ../libsvn_subr/io.c:3901
#, c-format
msgid "Can't read stream"
msgstr ""
-#: ../libsvn_subr/io.c:3732
+#: ../libsvn_subr/io.c:3733
#, c-format
msgid "Can't write file '%s'"
msgstr ""
-#: ../libsvn_subr/io.c:3733
+#: ../libsvn_subr/io.c:3734
#, c-format
msgid "Can't write stream"
msgstr ""
-#: ../libsvn_subr/io.c:3747
+#: ../libsvn_subr/io.c:3748
#, c-format
msgid "Can't get attribute information from file '%s'"
msgstr ""
-#: ../libsvn_subr/io.c:3748
+#: ../libsvn_subr/io.c:3749
#, c-format
msgid "Can't get attribute information from stream"
msgstr ""
-#: ../libsvn_subr/io.c:3821
+#: ../libsvn_subr/io.c:3822
#, c-format
msgid "Can't set position pointer in file '%s'"
msgstr ""
-#: ../libsvn_subr/io.c:3822
+#: ../libsvn_subr/io.c:3823
#, c-format
msgid "Can't set position pointer in stream"
msgstr ""
-#: ../libsvn_subr/io.c:3909
+#: ../libsvn_subr/io.c:3910
#, c-format
msgid "Can't seek in file '%s'"
msgstr ""
-#: ../libsvn_subr/io.c:3910
+#: ../libsvn_subr/io.c:3911
#, c-format
msgid "Can't seek in stream"
msgstr ""
-#: ../libsvn_subr/io.c:3927 ../libsvn_subr/io.c:3983
+#: ../libsvn_subr/io.c:3928 ../libsvn_subr/io.c:3984
#, c-format
msgid "Can't write to file '%s'"
msgstr ""
-#: ../libsvn_subr/io.c:3928 ../libsvn_subr/io.c:3984
+#: ../libsvn_subr/io.c:3929 ../libsvn_subr/io.c:3985
#, c-format
msgid "Can't write to stream"
msgstr ""
-#: ../libsvn_subr/io.c:3938 ../libsvn_subr/io.c:4095
+#: ../libsvn_subr/io.c:3939 ../libsvn_subr/io.c:4096
#, c-format
msgid "Can't flush file '%s'"
msgstr ""
-#: ../libsvn_subr/io.c:3939 ../libsvn_subr/io.c:4096
+#: ../libsvn_subr/io.c:3940 ../libsvn_subr/io.c:4097
#, c-format
msgid "Can't flush stream"
msgstr ""
-#: ../libsvn_subr/io.c:4060
+#: ../libsvn_subr/io.c:4061
#, c-format
msgid "Can't write '%s' atomically"
msgstr ""
-#: ../libsvn_subr/io.c:4100
+#: ../libsvn_subr/io.c:4101
#, c-format
msgid "Can't truncate file '%s'"
msgstr ""
-#: ../libsvn_subr/io.c:4101
+#: ../libsvn_subr/io.c:4102
#, c-format
msgid "Can't truncate stream"
msgstr ""
-#: ../libsvn_subr/io.c:4181
+#: ../libsvn_subr/io.c:4182
#, c-format
msgid "Can't read length line in file '%s'"
msgstr ""
-#: ../libsvn_subr/io.c:4185
+#: ../libsvn_subr/io.c:4186
msgid "Can't read length line in stream"
msgstr ""
-#: ../libsvn_subr/io.c:4207
+#: ../libsvn_subr/io.c:4208
#, c-format
msgid "Can't stat '%s'"
msgstr ""
-#: ../libsvn_subr/io.c:4385
+#: ../libsvn_subr/io.c:4386
#, c-format
msgid "Can't create directory '%s'"
msgstr ""
-#: ../libsvn_subr/io.c:4397 ../libsvn_subr/io.c:4411
+#: ../libsvn_subr/io.c:4398 ../libsvn_subr/io.c:4412
#, c-format
msgid "Can't hide directory '%s'"
msgstr ""
-#: ../libsvn_subr/io.c:4472 ../libsvn_subr/io.c:4595
+#: ../libsvn_subr/io.c:4473 ../libsvn_subr/io.c:4596
#, c-format
msgid "Can't open directory '%s'"
msgstr ""
-#: ../libsvn_subr/io.c:4507
+#: ../libsvn_subr/io.c:4508
#, c-format
msgid "Can't remove directory '%s'"
msgstr ""
-#: ../libsvn_subr/io.c:4525
+#: ../libsvn_subr/io.c:4526
#, c-format
msgid "Can't read directory"
msgstr ""
-#: ../libsvn_subr/io.c:4545
+#: ../libsvn_subr/io.c:4546
#, c-format
msgid "Error closing directory"
msgstr ""
-#: ../libsvn_subr/io.c:4614
+#: ../libsvn_subr/io.c:4615
#, c-format
msgid "Can't read directory entry in '%s'"
msgstr ""
-#: ../libsvn_subr/io.c:4740
+#: ../libsvn_subr/io.c:4741
#, c-format
msgid "Can't check directory '%s'"
msgstr ""
-#: ../libsvn_subr/io.c:4802
+#: ../libsvn_subr/io.c:4803
#, c-format
msgid "Reading '%s'"
msgstr ""
-#: ../libsvn_subr/io.c:4821
+#: ../libsvn_subr/io.c:4822
#, c-format
msgid "First line of '%s' contains non-digit"
msgstr ""
-#: ../libsvn_subr/io.c:5136
+#: ../libsvn_subr/io.c:5137
#, c-format
msgid "Can't create temporary file from template '%s'"
msgstr ""
-#: ../libsvn_subr/io.c:5223
+#: ../libsvn_subr/io.c:5224
#, c-format
msgid "Can't set aside '%s'"
msgstr ""
-#: ../libsvn_subr/io.c:5235 ../libsvn_subr/stream.c:2231
+#: ../libsvn_subr/io.c:5236 ../libsvn_subr/stream.c:2231
#, c-format
msgid "Unable to make name in '%s'"
msgstr ""
@@ -9526,47 +9603,37 @@ msgstr ""
msgid "Can't get module file name"
msgstr ""
-#: ../libsvn_subr/opt.c:189
-msgid " ARG"
-msgstr ""
-
-#: ../libsvn_subr/opt.c:324
-msgid ""
-"\n"
-"Global options:\n"
-msgstr ""
-
-#: ../libsvn_subr/opt.c:827
+#: ../libsvn_subr/opt.c:794
#, c-format
msgid "Syntax error parsing peg revision '%s'; did you mean '%s@'?"
msgstr ""
-#: ../libsvn_subr/opt.c:833
+#: ../libsvn_subr/opt.c:800
#, c-format
msgid "Syntax error parsing peg revision '%s'"
msgstr ""
-#: ../libsvn_subr/opt.c:970
+#: ../libsvn_subr/opt.c:937
msgid "Revision property pair is empty"
msgstr ""
-#: ../libsvn_subr/opt.c:990 ../svn/propedit-cmd.c:87 ../svn/propget-cmd.c:337
+#: ../libsvn_subr/opt.c:957 ../svn/propedit-cmd.c:87 ../svn/propget-cmd.c:337
#: ../svn/propset-cmd.c:68
#, c-format
msgid "'%s' is not a valid Subversion property name"
msgstr ""
-#: ../libsvn_subr/opt.c:1066
+#: ../libsvn_subr/opt.c:1033
#, c-format
msgid "URL '%s' contains a '..' element"
msgstr ""
-#: ../libsvn_subr/opt.c:1099
+#: ../libsvn_subr/opt.c:1066
#, c-format
msgid "Error resolving case of '%s'"
msgstr ""
-#: ../libsvn_subr/opt.c:1121
+#: ../libsvn_subr/opt.c:1088
#, c-format
msgid ""
"%s, version %s\n"
@@ -9574,27 +9641,27 @@ msgid ""
"\n"
msgstr ""
-#: ../libsvn_subr/opt.c:1138
+#: ../libsvn_subr/opt.c:1105
msgid ""
"System information:\n"
"\n"
msgstr ""
-#: ../libsvn_subr/opt.c:1139
+#: ../libsvn_subr/opt.c:1106
#, c-format
msgid "* running on %s\n"
msgstr ""
-#: ../libsvn_subr/opt.c:1143
+#: ../libsvn_subr/opt.c:1110
#, c-format
msgid " - %s\n"
msgstr ""
-#: ../libsvn_subr/opt.c:1153
+#: ../libsvn_subr/opt.c:1120
msgid "* linked dependencies:\n"
msgstr ""
-#: ../libsvn_subr/opt.c:1178
+#: ../libsvn_subr/opt.c:1145
msgid "* loaded shared libraries:\n"
msgstr ""
@@ -9769,7 +9836,7 @@ msgid "Password for '%s' GNOME keyring: "
msgstr ""
#: ../libsvn_subr/simple_providers.c:444
-#: ../libsvn_subr/ssl_client_cert_pw_providers.c:286
+#: ../libsvn_subr/ssl_client_cert_pw_providers.c:294
#, c-format
msgid "Config error: invalid value '%s' for option '%s'"
msgstr ""
@@ -10091,17 +10158,17 @@ msgid ""
"URL '%s' (uuid: '%s') doesn't match existing URL '%s' (uuid: '%s') in '%s'"
msgstr ""
-#: ../libsvn_wc/adm_ops.c:313 ../libsvn_wc/update_editor.c:5334
+#: ../libsvn_wc/adm_ops.c:313 ../libsvn_wc/update_editor.c:5345
#, c-format
msgid "Can't find parent directory's node while trying to add '%s'"
msgstr ""
-#: ../libsvn_wc/adm_ops.c:322 ../libsvn_wc/update_editor.c:5328
+#: ../libsvn_wc/adm_ops.c:322 ../libsvn_wc/update_editor.c:5339
#, c-format
msgid "Can't add '%s' to a parent directory scheduled for deletion"
msgstr ""
-#: ../libsvn_wc/adm_ops.c:329 ../libsvn_wc/update_editor.c:5341
+#: ../libsvn_wc/adm_ops.c:329 ../libsvn_wc/update_editor.c:5352
#, c-format
msgid "Can't schedule an addition of '%s' below a not-directory node"
msgstr ""
@@ -10141,87 +10208,87 @@ msgstr ""
msgid "Not a conflict skel"
msgstr ""
-#: ../libsvn_wc/conflicts.c:608 ../libsvn_wc/conflicts.c:705
+#: ../libsvn_wc/conflicts.c:624 ../libsvn_wc/conflicts.c:721
msgid "Not a completed conflict skel"
msgstr ""
-#: ../libsvn_wc/conflicts.c:786 ../libsvn_wc/conflicts.c:859
-#: ../libsvn_wc/conflicts.c:949
+#: ../libsvn_wc/conflicts.c:802 ../libsvn_wc/conflicts.c:875
+#: ../libsvn_wc/conflicts.c:966
msgid "Conflict not set"
msgstr ""
-#: ../libsvn_wc/conflicts.c:1316 ../libsvn_wc/conflicts.c:1991
-#: ../libsvn_wc/conflicts.c:2036
+#: ../libsvn_wc/conflicts.c:1350 ../libsvn_wc/conflicts.c:2025
+#: ../libsvn_wc/conflicts.c:2070
msgid "Conflict callback violated API: returned no results"
msgstr ""
-#: ../libsvn_wc/conflicts.c:1359
+#: ../libsvn_wc/conflicts.c:1393
msgid "Conflict callback violated API: returned no merged file"
msgstr ""
-#: ../libsvn_wc/conflicts.c:1646
+#: ../libsvn_wc/conflicts.c:1680
#, c-format
msgid ""
"Conflict on '%s' cannot be resolved to 'theirs-conflict' or 'mine-conflict' "
"because a merged version of the file cannot be created."
msgstr ""
-#: ../libsvn_wc/conflicts.c:1691
+#: ../libsvn_wc/conflicts.c:1725
#, c-format
msgid ""
"Conflict on '%s' could not be resolved because the chosen version of the "
"file is not available."
msgstr ""
-#: ../libsvn_wc/conflicts.c:2506
+#: ../libsvn_wc/conflicts.c:2540
msgid "Invalid 'conflict_result' argument"
msgstr ""
-#: ../libsvn_wc/conflicts.c:2768 ../libsvn_wc/conflicts.c:2813
+#: ../libsvn_wc/conflicts.c:2803 ../libsvn_wc/conflicts.c:2848
#, c-format
msgid ""
"Tree conflict can only be resolved to 'working' or 'mine-conflict' state; "
"'%s' not resolved"
msgstr ""
-#: ../libsvn_wc/conflicts.c:2840
+#: ../libsvn_wc/conflicts.c:2875
#, c-format
msgid ""
"Tree conflict can only be resolved to 'working' state; '%s' is no longer "
"moved"
msgstr ""
-#: ../libsvn_wc/conflicts.c:2858
+#: ../libsvn_wc/conflicts.c:2893
#, c-format
msgid ""
"Tree conflict can only be resolved to 'working' state; '%s' not resolved"
msgstr ""
-#: ../libsvn_wc/conflicts.c:3035
+#: ../libsvn_wc/conflicts.c:3070
msgid "No conflict-callback and no pre-defined conflict-choice provided"
msgstr ""
-#: ../libsvn_wc/conflicts.c:3304
+#: ../libsvn_wc/conflicts.c:3339
#, c-format
msgid "Unable to resolve conflicts on '%s'"
msgstr ""
-#: ../libsvn_wc/conflicts.c:3495 ../libsvn_wc/conflicts.c:3581
-#: ../libsvn_wc/conflicts.c:3660 ../libsvn_wc/conflicts.c:3746
-#: ../libsvn_wc/conflicts.c:3813
+#: ../libsvn_wc/conflicts.c:3530 ../libsvn_wc/conflicts.c:3616
+#: ../libsvn_wc/conflicts.c:3695 ../libsvn_wc/conflicts.c:3781
+#: ../libsvn_wc/conflicts.c:3848
#, c-format
msgid "Unexpected conflict operation '%s' on '%s'"
msgstr ""
-#: ../libsvn_wc/conflicts.c:3503 ../libsvn_wc/conflicts.c:3588
-#: ../libsvn_wc/conflicts.c:3666 ../libsvn_wc/conflicts.c:3752
-#: ../libsvn_wc/conflicts.c:3819
+#: ../libsvn_wc/conflicts.c:3538 ../libsvn_wc/conflicts.c:3623
+#: ../libsvn_wc/conflicts.c:3701 ../libsvn_wc/conflicts.c:3787
+#: ../libsvn_wc/conflicts.c:3854
#, c-format
msgid "Unexpected conflict reason '%s' on '%s'"
msgstr ""
-#: ../libsvn_wc/conflicts.c:3594 ../libsvn_wc/conflicts.c:3672
-#: ../libsvn_wc/conflicts.c:3758 ../libsvn_wc/conflicts.c:3825
+#: ../libsvn_wc/conflicts.c:3629 ../libsvn_wc/conflicts.c:3707
+#: ../libsvn_wc/conflicts.c:3793 ../libsvn_wc/conflicts.c:3860
#, c-format
msgid "Unexpected conflict action '%s' on '%s'"
msgstr ""
@@ -10357,7 +10424,7 @@ msgstr ""
msgid "File '%s' has local modifications"
msgstr ""
-#: ../libsvn_wc/deprecated.c:2393
+#: ../libsvn_wc/deprecated.c:2419
#, c-format
msgid "Unexpectedly found '%s': path is marked 'missing'"
msgstr ""
@@ -10790,15 +10857,17 @@ msgstr ""
#. scratch_
#: ../libsvn_wc/props.c:2239
#, c-format
-msgid " (%d more duplicate targets found)"
-msgstr ""
+msgid " (%d more duplicate target found)"
+msgid_plural " (%d more duplicate targets found)"
+msgstr[0] ""
+msgstr[1] ""
-#: ../libsvn_wc/props.c:2244
+#: ../libsvn_wc/props.c:2246
#, c-format
msgid "Invalid %s property on '%s': target '%s' appears more than once%s"
msgstr ""
-#: ../libsvn_wc/props.c:2275
+#: ../libsvn_wc/props.c:2277
#, c-format
msgid "Cannot set non-inheritable mergeinfo on a non-directory ('%s')"
msgstr ""
@@ -10873,35 +10942,35 @@ msgstr ""
msgid "'%s' is not valid as filename in directory '%s'"
msgstr ""
-#: ../libsvn_wc/update_editor.c:1507
+#: ../libsvn_wc/update_editor.c:1511
#, c-format
msgid "Unexpected attempt to add a node at path '%s'"
msgstr ""
-#: ../libsvn_wc/update_editor.c:1518
+#: ../libsvn_wc/update_editor.c:1522
#, c-format
msgid "Unexpected attempt to edit, delete, or replace a node at path '%s'"
msgstr ""
-#: ../libsvn_wc/update_editor.c:1899
+#: ../libsvn_wc/update_editor.c:1904
#, c-format
msgid ""
"Failed to add directory '%s': object of the same name as the administrative "
"directory"
msgstr ""
-#: ../libsvn_wc/update_editor.c:2572
+#: ../libsvn_wc/update_editor.c:2580
msgid "Couldn't do property merge"
msgstr ""
-#: ../libsvn_wc/update_editor.c:3111
+#: ../libsvn_wc/update_editor.c:3119
#, c-format
msgid ""
"Failed to add file '%s': object of the same name as the administrative "
"directory"
msgstr ""
-#: ../libsvn_wc/update_editor.c:3650
+#: ../libsvn_wc/update_editor.c:3661
#, c-format
msgid ""
"Checksum mismatch for '%s':\n"
@@ -10909,22 +10978,22 @@ msgid ""
" recorded: %s\n"
msgstr ""
-#: ../libsvn_wc/update_editor.c:5309
+#: ../libsvn_wc/update_editor.c:5320
#, c-format
msgid "Node '%s' exists."
msgstr ""
-#: ../libsvn_wc/update_editor.c:5369
+#: ../libsvn_wc/update_editor.c:5380
#, c-format
msgid "Copyfrom-url '%s' has different repository root than '%s'"
msgstr ""
-#: ../libsvn_wc/update_editor.c:5581
+#: ../libsvn_wc/update_editor.c:5592
#, c-format
msgid "'%s' is not an unmodified copied directory"
msgstr ""
-#: ../libsvn_wc/update_editor.c:5592
+#: ../libsvn_wc/update_editor.c:5603
#, c-format
msgid "Copyfrom '%s' doesn't match original location of '%s'"
msgstr ""
@@ -11236,52 +11305,48 @@ msgstr ""
msgid "'%s' is not deleted"
msgstr ""
-#: ../libsvn_wc/wc_db_update_move.c:459 ../libsvn_wc/wc_db_update_move.c:483
+#: ../libsvn_wc/wc_db_update_move.c:464 ../libsvn_wc/wc_db_update_move.c:488
#, c-format
msgid "'%s' already in conflict"
msgstr ""
-#: ../libsvn_wc/wc_db_update_move.c:1621
-msgid ".working"
-msgstr ""
-
-#: ../libsvn_wc/wc_db_update_move.c:2183
+#: ../libsvn_wc/wc_db_update_move.c:2189
#, c-format
msgid ""
"Cannot apply update because '%s' is a switched path (please switch it back "
"to its original URL and try again)"
msgstr ""
-#: ../libsvn_wc/wc_db_update_move.c:2192
+#: ../libsvn_wc/wc_db_update_move.c:2198
#, c-format
msgid ""
"Cannot apply update because '%s' is a mixed-revision working copy (please "
"update and try again)"
msgstr ""
-#: ../libsvn_wc/wc_db_update_move.c:2245
+#: ../libsvn_wc/wc_db_update_move.c:2251
#, c-format
msgid "The node '%s' has not been moved away"
msgstr ""
-#: ../libsvn_wc/wc_db_update_move.c:2709
+#: ../libsvn_wc/wc_db_update_move.c:2715
#, c-format
msgid ""
"Cannot merge local changes from '%s' because '%s' already contains other "
"local changes (please commit or revert these other changes and try again)"
msgstr ""
-#: ../libsvn_wc/wc_db_update_move.c:4083
+#: ../libsvn_wc/wc_db_update_move.c:4089
#, c-format
msgid "'%s' is not in conflict"
msgstr ""
-#: ../libsvn_wc/wc_db_update_move.c:4096
+#: ../libsvn_wc/wc_db_update_move.c:4102
#, c-format
msgid "'%s' is not a valid tree-conflict victim"
msgstr ""
-#: ../libsvn_wc/wc_db_update_move.c:4109
+#: ../libsvn_wc/wc_db_update_move.c:4115
#, c-format
msgid "'%s' is already a moved away tree-conflict"
msgstr ""
@@ -11329,27 +11394,27 @@ msgstr ""
msgid "The symlink at '%s' points nowhere"
msgstr ""
-#: ../libsvn_wc/wc_db_wcroot.c:757
+#: ../libsvn_wc/wc_db_wcroot.c:762
#, c-format
msgid "Missing a row in WCROOT for '%s'."
msgstr ""
-#: ../libsvn_wc/wc_db_wcroot.c:811
+#: ../libsvn_wc/wc_db_wcroot.c:816
#, c-format
msgid "The working copy at '%s' is corrupt."
msgstr ""
-#: ../libsvn_wc/wc_db_wcroot.c:827
+#: ../libsvn_wc/wc_db_wcroot.c:832
#, c-format
msgid "The working copy database at '%s' is missing."
msgstr ""
-#: ../libsvn_wc/wc_db_wcroot.c:836
+#: ../libsvn_wc/wc_db_wcroot.c:841
#, c-format
msgid "The working copy database at '%s' is corrupt."
msgstr ""
-#: ../libsvn_wc/wc_db_wcroot.c:994
+#: ../libsvn_wc/wc_db_wcroot.c:1000
#, c-format
msgid "'%s' is not a working copy root"
msgstr ""
@@ -11487,25 +11552,31 @@ msgstr ""
msgid "Credentials cache in '%s' is empty\n"
msgstr ""
-#: ../svn/auth-cmd.c:450 ../svn/auth-cmd.c:473
+#: ../svn/auth-cmd.c:450 ../svn/auth-cmd.c:476
#, c-format
msgid "Credentials cache in '%s' contains no matching credentials"
msgstr ""
#: ../svn/auth-cmd.c:458
#, c-format
-msgid "Credentials cache in '%s' contains %d credentials\n"
-msgstr ""
+msgid "Credentials cache in '%s' contains %d credential\n"
+msgid_plural "Credentials cache in '%s' contains %d credentials\n"
+msgstr[0] ""
+msgstr[1] ""
-#: ../svn/auth-cmd.c:462
+#: ../svn/auth-cmd.c:464
#, c-format
-msgid "Credentials cache in '%s' contains %d matching credentials\n"
-msgstr ""
+msgid "Credentials cache in '%s' contains %d matching credential\n"
+msgid_plural "Credentials cache in '%s' contains %d matching credentials\n"
+msgstr[0] ""
+msgstr[1] ""
-#: ../svn/auth-cmd.c:477
+#: ../svn/auth-cmd.c:481
#, c-format
-msgid "Deleted %d matching credentials from '%s'\n"
-msgstr ""
+msgid "Deleted %d matching credential from '%s'\n"
+msgid_plural "Deleted %d matching credentials from '%s'\n"
+msgstr[0] ""
+msgstr[1] ""
#: ../svn/blame-cmd.c:314 ../svn/list-cmd.c:310
msgid "'verbose' option invalid in XML mode"
@@ -11786,200 +11857,200 @@ msgstr ""
#. Translators: keep long_desc below 70 characters (wrap with a left
#. margin of 9 spaces if needed)
-#: ../svn/conflict-callbacks.c:452
+#: ../svn/conflict-callbacks.c:457
msgid "Quit resolution"
msgstr ""
-#: ../svn/conflict-callbacks.c:452
+#: ../svn/conflict-callbacks.c:457
msgid "postpone all remaining conflicts"
msgstr ""
#. Translators: keep long_desc below 70 characters (wrap with a left
#. margin of 9 spaces if needed)
-#: ../svn/conflict-callbacks.c:463
+#: ../svn/conflict-callbacks.c:468
msgid "Edit file"
msgstr ""
-#: ../svn/conflict-callbacks.c:463
+#: ../svn/conflict-callbacks.c:468
msgid "change merged file in an editor"
msgstr ""
-#: ../svn/conflict-callbacks.c:466
+#: ../svn/conflict-callbacks.c:471
msgid "Show diff"
msgstr ""
-#: ../svn/conflict-callbacks.c:466
+#: ../svn/conflict-callbacks.c:471
msgid "show all changes made to merged file"
msgstr ""
#. Translators: keep long_desc below 70 characters (wrap with a left
#. margin of 9 spaces if needed)
-#: ../svn/conflict-callbacks.c:468 ../svn/conflict-callbacks.c:490
+#: ../svn/conflict-callbacks.c:473 ../svn/conflict-callbacks.c:495
msgid "Display conflict"
msgstr ""
-#: ../svn/conflict-callbacks.c:468
+#: ../svn/conflict-callbacks.c:473
msgid "show all conflicts (ignoring merged version)"
msgstr ""
-#: ../svn/conflict-callbacks.c:471
+#: ../svn/conflict-callbacks.c:476
msgid "Merge"
msgstr ""
-#: ../svn/conflict-callbacks.c:471
+#: ../svn/conflict-callbacks.c:476
msgid "use merge tool to resolve conflict"
msgstr ""
-#: ../svn/conflict-callbacks.c:473
+#: ../svn/conflict-callbacks.c:478
msgid "Launch tool"
msgstr ""
-#: ../svn/conflict-callbacks.c:473
+#: ../svn/conflict-callbacks.c:478
msgid "launch external merge tool to resolve conflict"
msgstr ""
-#: ../svn/conflict-callbacks.c:477
+#: ../svn/conflict-callbacks.c:482
msgid "Internal merge tool"
msgstr ""
-#: ../svn/conflict-callbacks.c:477
+#: ../svn/conflict-callbacks.c:482
msgid "use built-in merge tool to resolve conflict"
msgstr ""
-#: ../svn/conflict-callbacks.c:480
+#: ../svn/conflict-callbacks.c:485
msgid "Show all options"
msgstr ""
-#: ../svn/conflict-callbacks.c:480
+#: ../svn/conflict-callbacks.c:485
msgid "show this list (also 'h', '?')"
msgstr ""
-#: ../svn/conflict-callbacks.c:490
+#: ../svn/conflict-callbacks.c:495
msgid "show conflicts in this property"
msgstr ""
-#: ../svn/conflict-callbacks.c:492
+#: ../svn/conflict-callbacks.c:497
msgid "Edit property"
msgstr ""
-#: ../svn/conflict-callbacks.c:492
+#: ../svn/conflict-callbacks.c:497
msgid "change merged property value in an editor"
msgstr ""
-#: ../svn/conflict-callbacks.c:496 ../svn/conflict-callbacks.c:514
+#: ../svn/conflict-callbacks.c:501 ../svn/conflict-callbacks.c:519
msgid "Help"
msgstr ""
-#: ../svn/conflict-callbacks.c:496 ../svn/conflict-callbacks.c:514
+#: ../svn/conflict-callbacks.c:501 ../svn/conflict-callbacks.c:519
msgid "show this help (also '?')"
msgstr ""
#. Translators: keep long_desc below 70 characters (wrap with a left
#. margin of 9 spaces if needed)
-#: ../svn/conflict-callbacks.c:506
+#: ../svn/conflict-callbacks.c:511
msgid "Set repository move destination path"
msgstr ""
-#: ../svn/conflict-callbacks.c:507
+#: ../svn/conflict-callbacks.c:512
msgid "pick repository move target from list of possible targets"
msgstr ""
-#: ../svn/conflict-callbacks.c:510
+#: ../svn/conflict-callbacks.c:515
msgid "Set working copy move destination path"
msgstr ""
-#: ../svn/conflict-callbacks.c:511
+#: ../svn/conflict-callbacks.c:516
msgid "pick working copy move target from list of possible targets"
msgstr ""
-#: ../svn/conflict-callbacks.c:613
+#: ../svn/conflict-callbacks.c:618
msgid "Select:"
msgstr ""
-#: ../svn/conflict-callbacks.c:699
+#: ../svn/conflict-callbacks.c:704
msgid ""
"Words in square brackets are the corresponding --accept option arguments.\n"
msgstr ""
-#: ../svn/conflict-callbacks.c:744
+#: ../svn/conflict-callbacks.c:749
#, c-format
msgid ""
"Unrecognized option.\n"
"\n"
msgstr ""
-#: ../svn/conflict-callbacks.c:909
+#: ../svn/conflict-callbacks.c:914
#, c-format
msgid "Merge conflict discovered in binary file '%s'.\n"
msgstr ""
-#: ../svn/conflict-callbacks.c:914
+#: ../svn/conflict-callbacks.c:919
#, c-format
msgid "Merge conflict discovered in file '%s'.\n"
msgstr ""
-#: ../svn/conflict-callbacks.c:997
+#: ../svn/conflict-callbacks.c:1002
#, c-format
msgid ""
"Invalid option; cannot display conflicts for a binary file.\n"
"\n"
msgstr ""
-#: ../svn/conflict-callbacks.c:1005
+#: ../svn/conflict-callbacks.c:1010
#, c-format
msgid ""
"Invalid option; original files not available.\n"
"\n"
msgstr ""
-#: ../svn/conflict-callbacks.c:1021
+#: ../svn/conflict-callbacks.c:1026
#, c-format
msgid ""
"Invalid option; there's no merged version to diff.\n"
"\n"
msgstr ""
-#: ../svn/conflict-callbacks.c:1047
+#: ../svn/conflict-callbacks.c:1052
#, c-format
msgid ""
"Invalid option; there's no base path to merge.\n"
"\n"
msgstr ""
-#: ../svn/conflict-callbacks.c:1140
+#: ../svn/conflict-callbacks.c:1145
#, c-format
msgid ""
"Invalid option.\n"
"\n"
msgstr ""
-#: ../svn/conflict-callbacks.c:1169
+#: ../svn/conflict-callbacks.c:1174
#, c-format
msgid ""
"Invalid option; cannot choose based on conflicts in a binary file.\n"
"\n"
msgstr ""
-#: ../svn/conflict-callbacks.c:1183
+#: ../svn/conflict-callbacks.c:1188
#, c-format
msgid ""
"Invalid option; use diff/edit/merge/launch before choosing 'mark resolved'.\n"
"\n"
msgstr ""
-#: ../svn/conflict-callbacks.c:1296
+#: ../svn/conflict-callbacks.c:1301
#, c-format
msgid "Conflict for property '%s' discovered on '%s'.\n"
msgstr ""
-#: ../svn/conflict-callbacks.c:1365
+#: ../svn/conflict-callbacks.c:1370
#, c-format
msgid ""
"Invalid option; please edit the property first.\n"
"\n"
msgstr ""
-#: ../svn/conflict-callbacks.c:1625
+#: ../svn/conflict-callbacks.c:1629
#, c-format
msgid ""
"Possible working copy destinations for moved-away '%s' are:\n"
@@ -11987,7 +12058,7 @@ msgid ""
"Specify the correct move target path by number: "
msgstr ""
-#: ../svn/conflict-callbacks.c:1634
+#: ../svn/conflict-callbacks.c:1638
#, c-format
msgid ""
"Possible repository destinations for moved-away '%s' are:\n"
@@ -11995,19 +12066,19 @@ msgid ""
"Specify the correct move target path by number: "
msgstr ""
-#: ../svn/conflict-callbacks.c:1716
+#: ../svn/conflict-callbacks.c:1783
#, c-format
msgid ""
"Tree conflict on '%s':\n"
"%s\n"
msgstr ""
-#: ../svn/conflict-callbacks.c:1736
+#: ../svn/conflict-callbacks.c:1803
#, c-format
msgid "Applying recommended resolution '%s':\n"
msgstr ""
-#: ../svn/conflict-callbacks.c:1761
+#: ../svn/conflict-callbacks.c:1828
#, c-format
msgid ""
"\n"
@@ -12016,13 +12087,13 @@ msgid ""
"\n"
msgstr ""
-#: ../svn/conflict-callbacks.c:1776
+#: ../svn/conflict-callbacks.c:1843
#, c-format
msgid ""
"Ambiguous move destinations exist in the repository; try the 'd' option\n"
msgstr ""
-#: ../svn/conflict-callbacks.c:1781
+#: ../svn/conflict-callbacks.c:1848
#, c-format
msgid ""
"Ambiguous move destinations exist in the working copy; try the 'w' option\n"
@@ -12039,29 +12110,29 @@ msgid ""
"Local, non-commit operations do not take a log message or revision properties"
msgstr ""
-#: ../svn/diff-cmd.c:227
+#: ../svn/diff-cmd.c:242
msgid "'--xml' option only valid with '--summarize' option"
msgstr ""
-#: ../svn/diff-cmd.c:240 ../svn/diff-cmd.c:244 ../svn/diff-cmd.c:248
-#: ../svn/diff-cmd.c:252 ../svn/diff-cmd.c:256 ../svn/diff-cmd.c:260
-#: ../svn/diff-cmd.c:264 ../svn/diff-cmd.c:268
+#: ../svn/diff-cmd.c:255 ../svn/diff-cmd.c:259 ../svn/diff-cmd.c:263
+#: ../svn/diff-cmd.c:267 ../svn/diff-cmd.c:271 ../svn/diff-cmd.c:275
+#: ../svn/diff-cmd.c:279 ../svn/diff-cmd.c:283
#, c-format
msgid "'%s' not valid with '--summarize' option"
msgstr ""
-#: ../svn/diff-cmd.c:355
+#: ../svn/diff-cmd.c:370
msgid "'--new' option only valid with '--old' option"
msgstr ""
-#: ../svn/diff-cmd.c:373
+#: ../svn/diff-cmd.c:388
msgid ""
"'svn diff [-r N[:M]] [TARGET[@REV]...]' does not support mixed target types. "
"Try using the --old and --new options or one of the shorthand invocations "
"listed in 'svn help diff'."
msgstr ""
-#: ../svn/diff-cmd.c:430
+#: ../svn/diff-cmd.c:445
#, c-format
msgid "Path '%s' not relative to base URLs"
msgstr ""
@@ -12163,8 +12234,8 @@ msgid ""
"For additional information, see http://subversion.apache.org/\n"
msgstr ""
-#: ../svn/help-cmd.c:71 ../svnbench/help-cmd.c:66 ../svnrdump/svnrdump.c:610
-#: ../svnsync/svnsync.c:1933
+#: ../svn/help-cmd.c:71 ../svnbench/help-cmd.c:66 ../svnrdump/svnrdump.c:616
+#: ../svnsync/svnsync.c:1938
msgid ""
"The following repository access (RA) modules are available:\n"
"\n"
@@ -12206,236 +12277,249 @@ msgstr ""
msgid "Invalid URL '%s'"
msgstr ""
-#: ../svn/info-cmd.c:210
+#: ../svn/info-cmd.c:219
+#, c-format
+msgid ""
+"svn-viewspec.py format 1 does not support the 'not-present' state found at "
+"'%s'"
+msgstr ""
+
+#: ../svn/info-cmd.c:228
+#, c-format
+msgid ""
+"svn-viewspec.py format 1 does not support the 'switched' state found at '%s'"
+msgstr ""
+
+#: ../svn/info-cmd.c:466
#, c-format
msgid "'%s' is not a valid value for --show-item"
msgstr ""
-#: ../svn/info-cmd.c:218
+#: ../svn/info-cmd.c:474
#, c-format
msgid "'%s' is not a valid value for --show-item; did you mean '%s'?"
msgstr ""
-#: ../svn/info-cmd.c:228
+#: ../svn/info-cmd.c:484
#, c-format
msgid "'%s' is not a valid value for --show-item; did you mean '%s' or '%s'?"
msgstr ""
-#: ../svn/info-cmd.c:239
+#: ../svn/info-cmd.c:495
#, c-format
msgid ""
"'%s' is not a valid value for --show-item; did you mean '%s', '%s' or '%s'?"
msgstr ""
-#: ../svn/info-cmd.c:260
+#: ../svn/info-cmd.c:516
msgid "Resource is not under version control."
msgstr ""
-#: ../svn/info-cmd.c:436 ../svnadmin/svnadmin.c:2304
-#: ../svnadmin/svnadmin.c:2540
+#: ../svn/info-cmd.c:692 ../svnadmin/svnadmin.c:2371
+#: ../svnadmin/svnadmin.c:2607
#, c-format
msgid "Path: %s\n"
msgstr ""
-#: ../svn/info-cmd.c:443
+#: ../svn/info-cmd.c:699
#, c-format
msgid "Name: %s\n"
msgstr ""
-#: ../svn/info-cmd.c:447
+#: ../svn/info-cmd.c:703
#, c-format
msgid "Working Copy Root Path: %s\n"
msgstr ""
-#: ../svn/info-cmd.c:453
+#: ../svn/info-cmd.c:709
#, c-format
msgid "URL: %s\n"
msgstr ""
-#: ../svn/info-cmd.c:456
+#: ../svn/info-cmd.c:712
#, c-format
msgid "Relative URL: %s\n"
msgstr ""
-#: ../svn/info-cmd.c:460
+#: ../svn/info-cmd.c:716
#, c-format
msgid "Repository Root: %s\n"
msgstr ""
-#: ../svn/info-cmd.c:464
+#: ../svn/info-cmd.c:720
#, c-format
msgid "Repository UUID: %s\n"
msgstr ""
-#: ../svn/info-cmd.c:468
+#: ../svn/info-cmd.c:724
#, c-format
msgid "Revision: %ld\n"
msgstr ""
-#: ../svn/info-cmd.c:473
+#: ../svn/info-cmd.c:729
#, c-format
msgid "Node Kind: file\n"
msgstr ""
-#: ../svn/info-cmd.c:477
+#: ../svn/info-cmd.c:733
#, c-format
msgid "Node Kind: directory\n"
msgstr ""
-#: ../svn/info-cmd.c:481
+#: ../svn/info-cmd.c:737
#, c-format
msgid "Node Kind: none\n"
msgstr ""
-#: ../svn/info-cmd.c:486
+#: ../svn/info-cmd.c:742
#, c-format
msgid "Node Kind: unknown\n"
msgstr ""
-#: ../svn/info-cmd.c:495
+#: ../svn/info-cmd.c:751
#, c-format
msgid "Schedule: normal\n"
msgstr ""
-#: ../svn/info-cmd.c:499
+#: ../svn/info-cmd.c:755
#, c-format
msgid "Schedule: add\n"
msgstr ""
-#: ../svn/info-cmd.c:503
+#: ../svn/info-cmd.c:759
#, c-format
msgid "Schedule: delete\n"
msgstr ""
-#: ../svn/info-cmd.c:507
+#: ../svn/info-cmd.c:763
#, c-format
msgid "Schedule: replace\n"
msgstr ""
-#: ../svn/info-cmd.c:523
+#: ../svn/info-cmd.c:779
#, c-format
msgid "Depth: empty\n"
msgstr ""
-#: ../svn/info-cmd.c:527
+#: ../svn/info-cmd.c:783
#, c-format
msgid "Depth: files\n"
msgstr ""
-#: ../svn/info-cmd.c:531
+#: ../svn/info-cmd.c:787
#, c-format
msgid "Depth: immediates\n"
msgstr ""
-#: ../svn/info-cmd.c:535
+#: ../svn/info-cmd.c:791
#, c-format
msgid "Depth: exclude\n"
msgstr ""
#. Other depths should never happen here.
-#: ../svn/info-cmd.c:546
+#: ../svn/info-cmd.c:802
#, c-format
msgid "Depth: INVALID\n"
msgstr ""
-#: ../svn/info-cmd.c:550
+#: ../svn/info-cmd.c:806
#, c-format
msgid "Copied From URL: %s\n"
msgstr ""
-#: ../svn/info-cmd.c:554
+#: ../svn/info-cmd.c:810
#, c-format
msgid "Copied From Rev: %ld\n"
msgstr ""
-#: ../svn/info-cmd.c:557
+#: ../svn/info-cmd.c:813
#, c-format
msgid "Moved From: %s\n"
msgstr ""
-#: ../svn/info-cmd.c:564
+#: ../svn/info-cmd.c:820
#, c-format
msgid "Moved To: %s\n"
msgstr ""
-#: ../svn/info-cmd.c:572
+#: ../svn/info-cmd.c:828
#, c-format
msgid "Last Changed Author: %s\n"
msgstr ""
-#: ../svn/info-cmd.c:576
+#: ../svn/info-cmd.c:832
#, c-format
msgid "Last Changed Rev: %ld\n"
msgstr ""
-#: ../svn/info-cmd.c:581
+#: ../svn/info-cmd.c:837
msgid "Last Changed Date"
msgstr ""
-#: ../svn/info-cmd.c:587
+#: ../svn/info-cmd.c:843
msgid "Text Last Updated"
msgstr ""
-#: ../svn/info-cmd.c:590
+#: ../svn/info-cmd.c:846
#, c-format
msgid "Checksum: %s\n"
msgstr ""
-#: ../svn/info-cmd.c:624
+#: ../svn/info-cmd.c:880
#, c-format
msgid "Conflict Previous Base File: %s\n"
msgstr ""
-#: ../svn/info-cmd.c:632
+#: ../svn/info-cmd.c:888
#, c-format
msgid "Conflict Previous Working File: %s\n"
msgstr ""
-#: ../svn/info-cmd.c:640
+#: ../svn/info-cmd.c:896
#, c-format
msgid "Conflict Current Base File: %s\n"
msgstr ""
-#: ../svn/info-cmd.c:676
+#: ../svn/info-cmd.c:932
msgid "Tree conflict"
msgstr ""
-#: ../svn/info-cmd.c:680
+#: ../svn/info-cmd.c:936
#, c-format
msgid "Conflicted Properties: %s\n"
msgstr ""
-#: ../svn/info-cmd.c:706
+#: ../svn/info-cmd.c:962
msgid "Conflict Details"
msgstr ""
-#: ../svn/info-cmd.c:727
+#: ../svn/info-cmd.c:983
msgid "Source left"
msgstr ""
-#: ../svn/info-cmd.c:736
+#: ../svn/info-cmd.c:992
msgid "Source right"
msgstr ""
-#: ../svn/info-cmd.c:745
+#: ../svn/info-cmd.c:1001
#, c-format
msgid "Lock Token: %s\n"
msgstr ""
-#: ../svn/info-cmd.c:749
+#: ../svn/info-cmd.c:1005
#, c-format
msgid "Lock Owner: %s\n"
msgstr ""
-#: ../svn/info-cmd.c:754
+#: ../svn/info-cmd.c:1010
msgid "Lock Created"
msgstr ""
-#: ../svn/info-cmd.c:758
+#: ../svn/info-cmd.c:1014
msgid "Lock Expires"
msgstr ""
-#: ../svn/info-cmd.c:766
+#: ../svn/info-cmd.c:1022
#, c-format
msgid ""
"Lock Comment (%i line):\n"
@@ -12446,34 +12530,34 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: ../svn/info-cmd.c:775
+#: ../svn/info-cmd.c:1031
#, c-format
msgid "Changelist: %s\n"
msgstr ""
-#: ../svn/info-cmd.c:933
+#: ../svn/info-cmd.c:1209
msgid "--show-item is not valid in --xml mode"
msgstr ""
-#: ../svn/info-cmd.c:937
+#: ../svn/info-cmd.c:1213
msgid "--no-newline is not valid in --xml mode"
msgstr ""
-#: ../svn/info-cmd.c:952 ../svn/info-cmd.c:972
+#: ../svn/info-cmd.c:1228 ../svn/info-cmd.c:1248
msgid "--incremental is only valid in --xml mode"
msgstr ""
-#: ../svn/info-cmd.c:959
+#: ../svn/info-cmd.c:1235
msgid ""
"--no-newline is only available for single-target, non-recursive info "
"operations"
msgstr ""
-#: ../svn/info-cmd.c:976
+#: ../svn/info-cmd.c:1252
msgid "--no-newline' is only valid with --show-item"
msgstr ""
-#: ../svn/info-cmd.c:1049 ../svnbench/null-info-cmd.c:283
+#: ../svn/info-cmd.c:1325 ../svnbench/null-info-cmd.c:283
msgid "Could not display info for all targets because some targets don't exist"
msgstr ""
@@ -12506,93 +12590,93 @@ msgstr ""
msgid "One or more locks could not be obtained"
msgstr ""
-#: ../svn/log-cmd.c:110
+#: ../svn/log-cmd.c:111 ../svn/svn.c:1147 ../svn/svn.c:1219 ../svn/svn.c:1285
msgid "\n"
msgstr ""
-#: ../svn/log-cmd.c:340
+#: ../svn/log-cmd.c:341
msgid "(no author)"
msgstr ""
-#: ../svn/log-cmd.c:346
+#: ../svn/log-cmd.c:347
msgid "(no date)"
msgstr ""
-#: ../svn/log-cmd.c:376
+#: ../svn/log-cmd.c:377
#, c-format
msgid " | %d line"
msgid_plural " | %d lines"
msgstr[0] ""
msgstr[1] ""
-#: ../svn/log-cmd.c:393
+#: ../svn/log-cmd.c:394
#, c-format
msgid "Changed paths:\n"
msgstr ""
-#: ../svn/log-cmd.c:413
+#: ../svn/log-cmd.c:414
#, c-format
msgid " (from %s:%ld)"
msgstr ""
-#: ../svn/log-cmd.c:431
+#: ../svn/log-cmd.c:432
#, c-format
msgid "Reverse merged via:"
msgstr ""
-#: ../svn/log-cmd.c:433
+#: ../svn/log-cmd.c:434
#, c-format
msgid "Merged via:"
msgstr ""
-#: ../svn/log-cmd.c:716
+#: ../svn/log-cmd.c:717
msgid "'with-all-revprops' option only valid in XML mode"
msgstr ""
-#: ../svn/log-cmd.c:720
+#: ../svn/log-cmd.c:721
msgid "'with-no-revprops' option only valid in XML mode"
msgstr ""
-#: ../svn/log-cmd.c:724
+#: ../svn/log-cmd.c:725
msgid "'with-revprop' option only valid in XML mode"
msgstr ""
-#: ../svn/log-cmd.c:731
+#: ../svn/log-cmd.c:732
msgid "'diff' option is not supported in XML mode"
msgstr ""
-#: ../svn/log-cmd.c:737
+#: ../svn/log-cmd.c:738
msgid "'quiet' and 'diff' options are mutually exclusive"
msgstr ""
-#: ../svn/log-cmd.c:741
+#: ../svn/log-cmd.c:742
msgid "'diff-cmd' option requires 'diff' option"
msgstr ""
-#: ../svn/log-cmd.c:745
+#: ../svn/log-cmd.c:746
msgid "'internal-diff' option requires 'diff' option"
msgstr ""
-#: ../svn/log-cmd.c:749
+#: ../svn/log-cmd.c:750
msgid "'extensions' option requires 'diff' option"
msgstr ""
-#: ../svn/log-cmd.c:754
+#: ../svn/log-cmd.c:755
msgid "'depth' option requires 'diff' option"
msgstr ""
-#: ../svn/log-cmd.c:770 ../svnbench/null-log-cmd.c:158
+#: ../svn/log-cmd.c:771 ../svnbench/null-log-cmd.c:158
msgid "-c and -r are mutually exclusive"
msgstr ""
-#: ../svn/log-cmd.c:802
+#: ../svn/log-cmd.c:803
#, c-format
msgid ""
"Only relative paths can be specified after a URL for 'svn log', but '%s' is "
"not a relative path"
msgstr ""
-#: ../svn/log-cmd.c:849
+#: ../svn/log-cmd.c:850
#, c-format
msgid "cannot assign with 'with-revprop' option (drop the '=')"
msgstr ""
@@ -12620,9 +12704,9 @@ msgid "Second revision required"
msgstr ""
#: ../svn/merge-cmd.c:368 ../svn/merge-cmd.c:395 ../svn/mergeinfo-cmd.c:361
-#: ../svnadmin/svnadmin.c:2508 ../svnlook/svnlook.c:2052
-#: ../svnlook/svnlook.c:2246 ../svnlook/svnlook.c:2350
-#: ../svnlook/svnlook.c:2385
+#: ../svnadmin/svnadmin.c:2575 ../svnlook/svnlook.c:2086
+#: ../svnlook/svnlook.c:2280 ../svnlook/svnlook.c:2384
+#: ../svnlook/svnlook.c:2419
msgid "Too many arguments given"
msgstr ""
@@ -13069,7 +13153,7 @@ msgstr ""
msgid "Transmitting file data "
msgstr ""
-#: ../svn/notify.c:968 ../svnadmin/svnadmin.c:2485 ../svnbench/notify.c:749
+#: ../svn/notify.c:968 ../svnadmin/svnadmin.c:2552 ../svnbench/notify.c:749
#, c-format
msgid "'%s' locked by user '%s'.\n"
msgstr ""
@@ -13270,7 +13354,7 @@ msgid "Error writing to stream"
msgstr ""
#: ../svn/propget-cmd.c:187 ../svn/proplist-cmd.c:156 ../svn/proplist-cmd.c:160
-#: ../svnlook/svnlook.c:1743 ../svnlook/svnlook.c:1898
+#: ../svnlook/svnlook.c:1777 ../svnlook/svnlook.c:1932
#, c-format
msgid ""
"Inherited properties on '%s',\n"
@@ -13278,8 +13362,8 @@ msgid ""
msgstr ""
#. Not a --revprop
-#: ../svn/propget-cmd.c:197 ../svn/proplist-cmd.c:175 ../svnlook/svnlook.c:1778
-#: ../svnlook/svnlook.c:1933
+#: ../svn/propget-cmd.c:197 ../svn/proplist-cmd.c:175 ../svnlook/svnlook.c:1812
+#: ../svnlook/svnlook.c:1967
#, c-format
msgid "Properties on '%s':\n"
msgstr ""
@@ -13412,37 +13496,155 @@ msgstr ""
msgid "invalid 'accept' ARG"
msgstr ""
-#: ../svn/revert-cmd.c:80
+#: ../svn/revert-cmd.c:81
msgid "Try 'svn revert --depth infinity' instead?"
msgstr ""
-#: ../svn/shelve-cmd.c:112
+#: ../svn/shelf-cmd.c:56
#, c-format
-msgid "Could not run external command '%s'"
+msgid "Shelf '%s': no versions found"
msgstr ""
-#: ../svn/shelve-cmd.c:143
+#: ../svn/shelf-cmd.c:144
+msgid "All targets must be in the same WC"
+msgstr ""
+
+#: ../svn/shelf-cmd.c:164
+#, c-format
+msgid "%d day ago"
+msgid_plural "%d days ago"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../svn/shelf-cmd.c:169
#, c-format
-msgid "%-30s %6d mins old %10ld bytes %4d paths changed\n"
+msgid "%d hour ago"
+msgid_plural "%d hours ago"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../svn/shelf-cmd.c:174
+#, c-format
+msgid "%d minute ago"
+msgid_plural "%d minutes ago"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../svn/shelf-cmd.c:233
+#, c-format
+msgid "version %d"
msgstr ""
-#: ../svn/shelve-cmd.c:147
+#: ../svn/shelf-cmd.c:236
+#, c-format
+msgid "version %d of %d"
+msgid_plural "version %d of %d"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../svn/shelf-cmd.c:242
+#, c-format
+msgid "%d path changed"
+msgid_plural "%d paths changed"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../svn/shelf-cmd.c:258
#, c-format
msgid " %.50s\n"
msgstr ""
-#: ../svn/shelve-cmd.c:189
-msgid "No shelved changes found"
+#: ../svn/shelf-cmd.c:351
+msgid "No shelves found"
+msgstr ""
+
+#: ../svn/shelf-cmd.c:467
+#, c-format
+msgid "--- Save a new version of '%s' in WC root '%s'\n"
+msgstr ""
+
+#: ../svn/shelf-cmd.c:468
+#, c-format
+msgid "--- Shelve '%s' in WC root '%s'\n"
+msgstr ""
+
+#: ../svn/shelf-cmd.c:483
+#, c-format
+msgid "--- Saving...\n"
+msgstr ""
+
+#: ../svn/shelf-cmd.c:484
+#, c-format
+msgid "--- Shelving...\n"
+msgstr ""
+
+#: ../svn/shelf-cmd.c:496
+#, c-format
+msgid "%d path could not be shelved"
+msgid_plural "%d paths could not be shelved"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../svn/shelf-cmd.c:506
+#, c-format
+msgid "No local modifications could be saved"
+msgstr ""
+
+#: ../svn/shelf-cmd.c:507
+#, c-format
+msgid "No local modifications could be shelved"
+msgstr ""
+
+#: ../svn/shelf-cmd.c:611
+#, c-format
+msgid "Shelved path '%s' already has status '%c' in the working copy"
+msgstr ""
+
+#: ../svn/shelf-cmd.c:664
+#, c-format
+msgid "--- Unshelve '%s' in WC root '%s'\n"
+msgstr ""
+
+#: ../svn/shelf-cmd.c:672
+msgid ""
+"Cannot unshelve/restore, as at least one shelved path would conflict with a "
+"local modification or other status in the working copy"
+msgstr ""
+
+#: ../svn/shelf-cmd.c:690
+#, c-format
+msgid "restored '%s' version %d and deleted %d newer version\n"
+msgid_plural "restored '%s' version %d and deleted %d newer versions\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../svn/shelf-cmd.c:696
+#, c-format
+msgid "restored '%s' version %d (the newest version)\n"
+msgstr ""
+
+#: ../svn/shelf-cmd.c:797
+#, c-format
+msgid "deleted '%s'\n"
msgstr ""
-#: ../svn/shelve-cmd.c:285
+#: ../svn/shelf-cmd.c:897
#, c-format
-msgid "No changes were shelved"
+msgid "saved '%s' version %d\n"
msgstr ""
-#: ../svn/shelve-cmd.c:327
+#: ../svn/shelf-cmd.c:901
#, c-format
-msgid "unshelving the youngest change, '%s'\n"
+msgid "shelved '%s' version %d\n"
+msgstr ""
+
+#: ../svn/shelf-cmd.c:932
+#, c-format
+msgid "unshelving the youngest shelf, '%s'\n"
+msgstr ""
+
+#: ../svn/shelf-cmd.c:942 ../svn/shelf-cmd.c:1127 ../svnadmin/svnadmin.c:769
+msgid "Too many arguments"
msgstr ""
#: ../svn/status-cmd.c:97
@@ -13486,40 +13688,40 @@ msgstr ""
msgid "moved to %s"
msgstr ""
-#: ../svn/svn.c:161
+#: ../svn/svn.c:160
msgid "force operation to run"
msgstr ""
-#: ../svn/svn.c:163
+#: ../svn/svn.c:162
msgid "force validity of log message source"
msgstr ""
-#: ../svn/svn.c:164 ../svn/svn.c:165 ../svnadmin/svnadmin.c:168
+#: ../svn/svn.c:163 ../svn/svn.c:164 ../svnadmin/svnadmin.c:168
#: ../svnadmin/svnadmin.c:171 ../svnbench/svnbench.c:83
#: ../svnbench/svnbench.c:84 ../svndumpfilter/svndumpfilter.c:944
#: ../svndumpfilter/svndumpfilter.c:947 ../svnfsfs/svnfsfs.c:89
#: ../svnfsfs/svnfsfs.c:92 ../svnlook/svnlook.c:115 ../svnlook/svnlook.c:127
-#: ../svnsync/svnsync.c:284 ../svnsync/svnsync.c:286
+#: ../svnsync/svnsync.c:289 ../svnsync/svnsync.c:291
msgid "show help on a subcommand"
msgstr ""
-#: ../svn/svn.c:166
+#: ../svn/svn.c:165
msgid "specify log message ARG"
msgstr ""
-#: ../svn/svn.c:167 ../svnbench/svnbench.c:85
+#: ../svn/svn.c:166 ../svnbench/svnbench.c:85
msgid "print nothing, or only summary information"
msgstr ""
-#: ../svn/svn.c:168 ../svnbench/svnbench.c:86
+#: ../svn/svn.c:167 ../svnbench/svnbench.c:86
msgid "descend recursively, same as --depth=infinity"
msgstr ""
-#: ../svn/svn.c:169 ../svnbench/svnbench.c:87
+#: ../svn/svn.c:168 ../svnbench/svnbench.c:87
msgid "obsolete; try --depth=files or --depth=immediates"
msgstr ""
-#: ../svn/svn.c:171 ../svnbench/svnbench.c:89
+#: ../svn/svn.c:170 ../svnbench/svnbench.c:89
msgid ""
"the change made by revision ARG (like -r ARG-1:ARG)\n"
" If ARG is negative this is like -r ARG:ARG-1\n"
@@ -13528,7 +13730,7 @@ msgid ""
" ARG1:ARG2, where ARG1 is inclusive"
msgstr ""
-#: ../svn/svn.c:179 ../svnbench/svnbench.c:97
+#: ../svn/svn.c:178 ../svnbench/svnbench.c:97
msgid ""
"ARG (some commands also take ARG1:ARG2 range)\n"
" A revision argument can be one of:\n"
@@ -13541,49 +13743,49 @@ msgid ""
" 'PREV' revision just before COMMITTED"
msgstr ""
-#: ../svn/svn.c:194
+#: ../svn/svn.c:193
msgid "read log message from file ARG"
msgstr ""
-#: ../svn/svn.c:196
+#: ../svn/svn.c:195
msgid "give output suitable for concatenation"
msgstr ""
-#: ../svn/svn.c:198
+#: ../svn/svn.c:197
msgid "treat value as being in charset encoding ARG"
msgstr ""
-#: ../svn/svn.c:199 ../svnadmin/svnadmin.c:174 ../svnbench/svnbench.c:112
+#: ../svn/svn.c:198 ../svnadmin/svnadmin.c:174 ../svnbench/svnbench.c:112
#: ../svndumpfilter/svndumpfilter.c:950 ../svnfsfs/svnfsfs.c:95
-#: ../svnlook/svnlook.c:179 ../svnrdump/svnrdump.c:134
-#: ../svnserve/svnserve.c:419 ../svnsync/svnsync.c:282
+#: ../svnlook/svnlook.c:179 ../svnrdump/svnrdump.c:140
+#: ../svnserve/svnserve.c:419 ../svnsync/svnsync.c:287
#: ../svnversion/svnversion.c:144
msgid "show program version information"
msgstr ""
-#: ../svn/svn.c:200 ../svnbench/svnbench.c:113
+#: ../svn/svn.c:199 ../svnbench/svnbench.c:113
msgid "print extra information"
msgstr ""
-#: ../svn/svn.c:201
+#: ../svn/svn.c:200
msgid "display update information"
msgstr ""
-#: ../svn/svn.c:202 ../svnbench/svnbench.c:114 ../svnrdump/svnrdump.c:116
+#: ../svn/svn.c:201 ../svnbench/svnbench.c:114 ../svnrdump/svnrdump.c:122
msgid "specify a username ARG"
msgstr ""
-#: ../svn/svn.c:204
+#: ../svn/svn.c:203
msgid ""
"specify a password ARG (caution: on many operating\n"
" systems, other users will be able to see this)"
msgstr ""
-#: ../svn/svn.c:209 ../svnbench/svnbench.c:117 ../svnrdump/svnrdump.c:120
+#: ../svn/svn.c:208 ../svnbench/svnbench.c:117 ../svnrdump/svnrdump.c:126
msgid "read password from stdin"
msgstr ""
-#: ../svn/svn.c:211
+#: ../svn/svn.c:210
msgid ""
"Specify differencing options for external diff or\n"
" internal diff or blame. Default: '-u'. Options "
@@ -13603,52 +13805,52 @@ msgid ""
" -p, --show-c-function: Show C function name"
msgstr ""
-#: ../svn/svn.c:231 ../svnbench/svnbench.c:119
+#: ../svn/svn.c:230 ../svnbench/svnbench.c:119
msgid "pass contents of file ARG as additional args"
msgstr ""
-#: ../svn/svn.c:233 ../svnbench/svnbench.c:121
+#: ../svn/svn.c:232 ../svnbench/svnbench.c:121
msgid ""
"limit operation by depth ARG ('empty', 'files',\n"
" 'immediates', or 'infinity')"
msgstr ""
-#: ../svn/svn.c:237
+#: ../svn/svn.c:236
msgid ""
"set new working copy depth to ARG ('exclude',\n"
" 'empty', 'files', 'immediates', or 'infinity')"
msgstr ""
-#: ../svn/svn.c:240 ../svnlook/svnlook.c:182
+#: ../svn/svn.c:239 ../svnlook/svnlook.c:182
msgid "output in XML"
msgstr ""
-#: ../svn/svn.c:241
+#: ../svn/svn.c:240
msgid "DEPRECATED"
msgstr ""
-#: ../svn/svn.c:243 ../svnbench/svnbench.c:126
+#: ../svn/svn.c:242 ../svnbench/svnbench.c:126
msgid "do not cross copies while traversing history"
msgstr ""
-#: ../svn/svn.c:245
+#: ../svn/svn.c:244
msgid ""
"disregard default and svn:ignore and\n"
" svn:global-ignores property ignores"
msgstr ""
-#: ../svn/svn.c:249 ../svnbench/svnbench.c:128 ../svnrdump/svnrdump.c:130
-#: ../svnsync/svnsync.c:198
+#: ../svn/svn.c:248 ../svnbench/svnbench.c:128 ../svnrdump/svnrdump.c:136
+#: ../svnsync/svnsync.c:203
msgid "do not cache authentication tokens"
msgstr ""
-#: ../svn/svn.c:251 ../svnbench/svnbench.c:130 ../svnrdump/svnrdump.c:144
+#: ../svn/svn.c:250 ../svnbench/svnbench.c:130 ../svnrdump/svnrdump.c:150
msgid ""
"deprecated; same as\n"
" --trust-server-cert-failures=unknown-ca"
msgstr ""
-#: ../svn/svn.c:255 ../svnbench/svnbench.c:134 ../svnrdump/svnrdump.c:148
+#: ../svn/svn.c:254 ../svnbench/svnbench.c:134 ../svnrdump/svnrdump.c:154
msgid ""
"with --non-interactive, accept SSL server\n"
" certificates with failures; ARG is comma-"
@@ -13661,65 +13863,65 @@ msgid ""
" separately classified certificate errors)."
msgstr ""
-#: ../svn/svn.c:269 ../svnrdump/svnrdump.c:122 ../svnsync/svnsync.c:190
+#: ../svn/svn.c:268 ../svnrdump/svnrdump.c:128 ../svnsync/svnsync.c:195
msgid ""
"do no interactive prompting (default is to prompt\n"
" only if standard input is a terminal device)"
msgstr ""
-#: ../svn/svn.c:273 ../svnrdump/svnrdump.c:126 ../svnsync/svnsync.c:194
+#: ../svn/svn.c:272 ../svnrdump/svnrdump.c:132 ../svnsync/svnsync.c:199
msgid ""
"do interactive prompting even if standard input\n"
" is not a terminal device"
msgstr ""
-#: ../svn/svn.c:277
+#: ../svn/svn.c:276
msgid "try operation but make no changes"
msgstr ""
-#: ../svn/svn.c:279
+#: ../svn/svn.c:278
msgid "disable merge tracking; diff nodes as if related"
msgstr ""
-#: ../svn/svn.c:281
+#: ../svn/svn.c:280
msgid "ignore externals definitions"
msgstr ""
-#: ../svn/svn.c:282
+#: ../svn/svn.c:281
msgid "use ARG as merge command"
msgstr ""
-#: ../svn/svn.c:283
+#: ../svn/svn.c:282
msgid "use ARG as external editor"
msgstr ""
-#: ../svn/svn.c:285
+#: ../svn/svn.c:284
msgid "merge only mergeinfo differences"
msgstr ""
-#: ../svn/svn.c:286
+#: ../svn/svn.c:285
msgid "use ARG as the older target"
msgstr ""
-#: ../svn/svn.c:287
+#: ../svn/svn.c:286
msgid "use ARG as the newer target"
msgstr ""
-#: ../svn/svn.c:289
+#: ../svn/svn.c:288
msgid "operate on a revision property (use with -r)"
msgstr ""
-#: ../svn/svn.c:290
+#: ../svn/svn.c:289
msgid "relocate via URL-rewriting"
msgstr ""
-#: ../svn/svn.c:292 ../svnadmin/svnadmin.c:221 ../svnbench/svnbench.c:150
-#: ../svnrdump/svnrdump.c:114 ../svnsync/svnsync.c:248
+#: ../svn/svn.c:291 ../svnadmin/svnadmin.c:221 ../svnbench/svnbench.c:150
+#: ../svnrdump/svnrdump.c:120 ../svnsync/svnsync.c:253
msgid "read user configuration files from directory ARG"
msgstr ""
-#: ../svn/svn.c:294 ../svnbench/svnbench.c:152 ../svnrdump/svnrdump.c:136
-#: ../svnsync/svnsync.c:250
+#: ../svn/svn.c:293 ../svnbench/svnbench.c:152 ../svnrdump/svnrdump.c:142
+#: ../svnsync/svnsync.c:255
msgid ""
"set user configuration option in the format:\n"
" FILE:SECTION:OPTION=[VALUE]\n"
@@ -13727,15 +13929,15 @@ msgid ""
" servers:global:http-library=serf"
msgstr ""
-#: ../svn/svn.c:301
+#: ../svn/svn.c:300
msgid "enable automatic properties"
msgstr ""
-#: ../svn/svn.c:302
+#: ../svn/svn.c:301
msgid "disable automatic properties"
msgstr ""
-#: ../svn/svn.c:304
+#: ../svn/svn.c:303
msgid ""
"use a different EOL marker than the standard\n"
" system marker for files with the svn:eol-style\n"
@@ -13743,55 +13945,55 @@ msgid ""
" ARG may be one of 'LF', 'CR', 'CRLF'"
msgstr ""
-#: ../svn/svn.c:311 ../svnbench/svnbench.c:159
+#: ../svn/svn.c:310 ../svnbench/svnbench.c:159
msgid "maximum number of log entries"
msgstr ""
-#: ../svn/svn.c:312
+#: ../svn/svn.c:311
msgid "don't unlock the targets"
msgstr ""
-#: ../svn/svn.c:313
+#: ../svn/svn.c:312
msgid "remove changelist association"
msgstr ""
-#: ../svn/svn.c:315
+#: ../svn/svn.c:314
msgid "operate only on members of changelist ARG"
msgstr ""
-#: ../svn/svn.c:317
+#: ../svn/svn.c:316
msgid "don't delete changelists after commit"
msgstr ""
-#: ../svn/svn.c:318
+#: ../svn/svn.c:317
msgid "keep path in working copy"
msgstr ""
-#: ../svn/svn.c:320 ../svnbench/svnbench.c:161
+#: ../svn/svn.c:319 ../svnbench/svnbench.c:161
msgid "retrieve all revision properties"
msgstr ""
-#: ../svn/svn.c:322 ../svnbench/svnbench.c:163
+#: ../svn/svn.c:321 ../svnbench/svnbench.c:163
msgid "retrieve no revision properties"
msgstr ""
-#: ../svn/svn.c:324 ../svnbench/svnbench.c:165
+#: ../svn/svn.c:323 ../svnbench/svnbench.c:165
msgid ""
"set revision property ARG in new revision\n"
" using the name[=value] format"
msgstr ""
-#: ../svn/svn.c:327
+#: ../svn/svn.c:326
msgid "make intermediate directories"
msgstr ""
-#: ../svn/svn.c:329 ../svnbench/svnbench.c:169
+#: ../svn/svn.c:328 ../svnbench/svnbench.c:169
msgid ""
"use/display additional information from merge\n"
" history"
msgstr ""
-#: ../svn/svn.c:333
+#: ../svn/svn.c:332
msgid ""
"specify automatic conflict resolution action\n"
" ('postpone', 'working', 'base', 'mine-"
@@ -13801,17 +14003,17 @@ msgid ""
" 'p', 'mc', 'tc', 'mf', 'tf', 'e', 'l', 'r')"
msgstr ""
-#: ../svn/svn.c:344
+#: ../svn/svn.c:343
msgid ""
"specify which collection of revisions to display\n"
" ('merged', 'eligible')"
msgstr ""
-#: ../svn/svn.c:348
+#: ../svn/svn.c:347
msgid "deprecated"
msgstr ""
-#: ../svn/svn.c:350
+#: ../svn/svn.c:349
msgid ""
"number of leading path components to strip from\n"
" paths parsed from the patch file. --strip 0\n"
@@ -13825,89 +14027,89 @@ msgid ""
"component."
msgstr ""
-#: ../svn/svn.c:366
+#: ../svn/svn.c:365
msgid "don't expand keywords"
msgstr ""
-#: ../svn/svn.c:368
+#: ../svn/svn.c:367
msgid "apply the unidiff in reverse"
msgstr ""
-#: ../svn/svn.c:370
+#: ../svn/svn.c:369
msgid "ignore whitespace during pattern matching"
msgstr ""
-#: ../svn/svn.c:371
+#: ../svn/svn.c:370
msgid "produce diff output"
msgstr ""
#. maps to show_diff
#. diff options
-#: ../svn/svn.c:373 ../svnlook/svnlook.c:139
+#: ../svn/svn.c:372 ../svnlook/svnlook.c:139
msgid "use ARG as diff command"
msgstr ""
-#: ../svn/svn.c:375
+#: ../svn/svn.c:374
msgid "override diff-cmd specified in config file"
msgstr ""
-#: ../svn/svn.c:377 ../svnlook/svnlook.c:133
+#: ../svn/svn.c:376 ../svnlook/svnlook.c:133
msgid "do not print differences for added files"
msgstr ""
-#: ../svn/svn.c:379 ../svnlook/svnlook.c:136
+#: ../svn/svn.c:378 ../svnlook/svnlook.c:136
msgid "do not print differences for deleted files"
msgstr ""
-#: ../svn/svn.c:381
+#: ../svn/svn.c:380
msgid "don't diff copied or moved files with their source"
msgstr ""
-#: ../svn/svn.c:383
+#: ../svn/svn.c:382
msgid "diff unrelated nodes as delete and add"
msgstr ""
-#: ../svn/svn.c:384
+#: ../svn/svn.c:383
msgid "show a summary of the results"
msgstr ""
-#: ../svn/svn.c:386
+#: ../svn/svn.c:385
msgid "use git's extended diff format"
msgstr ""
-#: ../svn/svn.c:388 ../svnlook/svnlook.c:142
+#: ../svn/svn.c:387 ../svnlook/svnlook.c:142
msgid "ignore properties during the operation"
msgstr ""
-#: ../svn/svn.c:390 ../svnlook/svnlook.c:145
+#: ../svn/svn.c:389 ../svnlook/svnlook.c:145
msgid "show only properties during the operation"
msgstr ""
-#: ../svn/svn.c:392
+#: ../svn/svn.c:391
msgid ""
"generate diff suitable for generic third-party\n"
" patch tools; currently the same as\n"
" --show-copies-as-adds --ignore-properties"
msgstr ""
-#: ../svn/svn.c:400
+#: ../svn/svn.c:399
msgid ""
"Allow operation on mixed-revision working copy.\n"
" Use of this option is not recommended!\n"
" Please run 'svn update' instead."
msgstr ""
-#: ../svn/svn.c:406
+#: ../svn/svn.c:405
msgid ""
"also operate on externals defined by\n"
" svn:externals properties"
msgstr ""
-#: ../svn/svn.c:410
+#: ../svn/svn.c:409
msgid "retrieve properties set on parents of the target"
msgstr ""
-#: ../svn/svn.c:412
+#: ../svn/svn.c:411
msgid ""
"use ARG as search pattern (glob syntax, case-\n"
" and accent-insensitive, may require quotation "
@@ -13915,37 +14117,37 @@ msgid ""
" to prevent shell expansion)"
msgstr ""
-#: ../svn/svn.c:418
+#: ../svn/svn.c:417
msgid "combine ARG with the previous search pattern"
msgstr ""
-#: ../svn/svn.c:420
+#: ../svn/svn.c:419
msgid "show revision log message, author and date"
msgstr ""
-#: ../svn/svn.c:422
+#: ../svn/svn.c:421
msgid "remove unversioned items"
msgstr ""
-#: ../svn/svn.c:423
+#: ../svn/svn.c:422
msgid "remove ignored items"
msgstr ""
-#: ../svn/svn.c:424 ../svnlook/svnlook.c:155 ../svnversion/svnversion.c:140
+#: ../svn/svn.c:423 ../svnlook/svnlook.c:155 ../svnversion/svnversion.c:140
msgid "do not output the trailing newline"
msgstr ""
-#: ../svn/svn.c:425
+#: ../svn/svn.c:424
msgid "show cached passwords"
msgstr ""
-#: ../svn/svn.c:427
+#: ../svn/svn.c:426
msgid ""
"pin externals with no explicit revision to their\n"
" current revision (recommended when tagging)"
msgstr ""
-#: ../svn/svn.c:431
+#: ../svn/svn.c:430
msgid ""
"print only the item identified by ARG:\n"
" 'kind' node kind of TARGET\n"
@@ -13968,10 +14170,13 @@ msgid ""
" 'last-changed-author'\n"
" author of 'last-changed-"
"revision'\n"
-" 'wc-root' root of TARGET's working copy"
+" 'wc-root' root of TARGET's working copy\n"
+" 'schedule' "
+"'normal','add','delete','replace'\n"
+" 'depth' checkout depth of TARGET in WC"
msgstr ""
-#: ../svn/svn.c:466
+#: ../svn/svn.c:469
msgid ""
"Local additions are merged with incoming additions\n"
" instead of causing a tree conflict. Use of "
@@ -13981,39 +14186,41 @@ msgid ""
" resolve tree conflicts instead."
msgstr ""
-#: ../svn/svn.c:475
+#: ../svn/svn.c:478
msgid "remove unreferenced pristines from .svn directory"
msgstr ""
-#: ../svn/svn.c:477
-msgid "list shelved patches"
-msgstr ""
-
-#: ../svn/svn.c:478
-msgid "do not delete the shelved patch"
+#: ../svn/svn.c:481
+msgid "drop shelf after successful unshelve"
msgstr ""
-#: ../svn/svn.c:479
-msgid "delete the shelved patch"
+#: ../svn/svn.c:484
+msgid ""
+"print the working copy layout, formatted according\n"
+" to ARG: 'classic' or 'svn11'"
msgstr ""
-#: ../svn/svn.c:529
+#: ../svn/svn.c:536
msgid ""
"Put files and directories under version control, scheduling\n"
"them for addition to repository. They will be added in next commit.\n"
"usage: add PATH...\n"
msgstr ""
-#: ../svn/svn.c:534
+#: ../svn/svn.c:542
msgid "add intermediate parents"
msgstr ""
-#: ../svn/svn.c:537
+#: ../svn/svn.c:545
msgid ""
"Manage cached authentication credentials.\n"
"usage: 1. svn auth [PATTERN ...]\n"
"usage: 2. svn auth --remove PATTERN [PATTERN ...]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:549
+msgid ""
" With no arguments, list all cached authentication credentials.\n"
" Authentication credentials include usernames, passwords,\n"
" SSL certificates, and SSL client-certificate passphrases.\n"
@@ -14022,6 +14229,10 @@ msgid ""
" or more patterns. With the --remove option, remove cached authentication\n"
" credentials matching one or more patterns.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:556
+msgid ""
" If more than one pattern is specified credentials are considered only if "
"they\n"
" match all specified patterns. Patterns are matched case-sensitively and "
@@ -14035,64 +14246,99 @@ msgid ""
" expand them.\n"
msgstr ""
-#: ../svn/svn.c:558
+#: ../svn/svn.c:567
msgid "remove matching authentication credentials"
msgstr ""
-#: ../svn/svn.c:563
+#: ../svn/svn.c:572
msgid ""
"Show when each line of a file was last (or\n"
"next) changed.\n"
"usage: blame [-rM:N] TARGET[@REV]...\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:576
+msgid ""
" Annotate each line of a file with the revision number and author of the\n"
" last change (or optionally the next change) to that line.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:579 ../svnbench/svnbench.c:222
+msgid ""
" With no revision range (same as -r0:REV), or with '-r M:N' where M < N,\n"
" annotate each line that is present in revision N of the file, with\n"
" the last revision at or before rN that changed or added the line,\n"
" looking back no further than rM.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:584 ../svnbench/svnbench.c:227
+msgid ""
" With a reverse revision range '-r M:N' where M > N,\n"
" annotate each line that is present in revision N of the file, with\n"
" the next revision after rN that changed or deleted the line,\n"
" looking forward no further than rM.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:589 ../svnbench/svnbench.c:232
+msgid ""
" If specified, REV determines in which revision the target is first\n"
" looked up.\n"
"\n"
-" Write the annotated result to standard output.\n"
msgstr ""
-#: ../svn/svn.c:587
+#: ../svn/svn.c:592 ../svnbench/svnbench.c:235
+msgid " Write the annotated result to standard output.\n"
+msgstr ""
+
+#: ../svn/svn.c:597
msgid ""
"Output the content of specified files or URLs.\n"
"usage: cat TARGET[@REV]...\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:600
+msgid ""
" If specified, REV determines in which revision the target is first\n"
" looked up.\n"
msgstr ""
-#: ../svn/svn.c:595
+#: ../svn/svn.c:606
msgid ""
"Associate (or dissociate) changelist CLNAME with the named files.\n"
"usage: 1. changelist CLNAME PATH...\n"
" 2. changelist --remove PATH...\n"
msgstr ""
-#: ../svn/svn.c:601
+#: ../svn/svn.c:613
msgid ""
"Check out a working copy from a repository.\n"
"usage: checkout URL[@REV]... [PATH]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:616
+msgid ""
" If specified, REV determines in which revision the URL is first\n"
" looked up.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:619
+msgid ""
" If PATH is omitted, the basename of the URL will be used as\n"
" the destination. If multiple URLs are given each will be checked\n"
" out into a sub-directory of PATH, with the name of the sub-directory\n"
" being the basename of the URL.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:624
+msgid ""
" If --force is used, unversioned obstructing paths in the working\n"
" copy destination do not automatically cause the check out to fail.\n"
" If the obstructing path is the same type (file or directory) as the\n"
@@ -14104,11 +14350,15 @@ msgid ""
" to the working copy. All properties from the repository are applied\n"
" to the obstructing path.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:635
+msgid ""
" See also 'svn help update' for a list of possible characters\n"
" reporting the action taken.\n"
msgstr ""
-#: ../svn/svn.c:628
+#: ../svn/svn.c:641
msgid ""
"Either recover from an interrupted operation that left the working copy "
"locked,\n"
@@ -14118,6 +14368,10 @@ msgid ""
" cleanup --remove-ignored [WCPATH...]\n"
" 3. cleanup --vacuum-pristines [WCPATH...]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:648
+msgid ""
" 1. When none of the options --remove-unversioned, --remove-ignored, and\n"
" --vacuum-pristines is specified, remove all write locks (shown as 'L' "
"by\n"
@@ -14126,47 +14380,75 @@ msgid ""
"copy,\n"
" leaving it in an unusable state.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:654
+msgid ""
" WARNING: There is no mechanism that will protect write locks still\n"
" being used by other Subversion clients. Running this command\n"
" without any options while another client is using the working\n"
" copy can corrupt the working copy beyond repair!\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:659
+msgid ""
" 2. If the --remove-unversioned option or the --remove-ignored option\n"
" is given, remove any unversioned or ignored items within WCPATH.\n"
" Note that the 'svn status' command shows unversioned items as '?',\n"
" and ignored items as 'I' if the --no-ignore option is given to it.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:664
+msgid ""
" 3. If the --vacuum-pristines option is given, remove pristine copies of\n"
" files which are stored inside the .svn directory and which are no "
"longer\n"
" referenced by any file in the working copy.\n"
msgstr ""
-#: ../svn/svn.c:656
+#: ../svn/svn.c:670
msgid "deprecated and ignored"
msgstr ""
-#: ../svn/svn.c:659
+#: ../svn/svn.c:673
msgid ""
"Send changes from your working copy to the repository.\n"
"usage: commit [PATH...]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:676
+msgid ""
" A log message must be provided, but it can be empty. If it is not\n"
" given by a --message or --file option, an editor will be started.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:679
+msgid ""
" If any targets are (or contain) locked items, those will be\n"
" unlocked after a successful commit, unless --no-unlock is given.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:682
+msgid ""
" If --include-externals is given, also commit file and directory\n"
" externals reached by recursion. Do not commit externals with a\n"
" fixed revision.\n"
msgstr ""
-#: ../svn/svn.c:675
+#: ../svn/svn.c:690
msgid ""
"Copy files and directories in a working copy or repository.\n"
"usage: copy SRC[@REV]... DST\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:693
+msgid ""
" SRC and DST can each be either a working copy (WC) path or URL:\n"
" WC -> WC: copy and schedule for addition (with history)\n"
" WC -> URL: immediately commit a copy of WC to URL\n"
@@ -14176,6 +14458,10 @@ msgid ""
" the sources will be added as children of DST. When copying multiple\n"
" sources, DST must be an existing directory.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:702
+msgid ""
" WARNING: For compatibility with previous versions of Subversion,\n"
" copies performed using two working copy paths (WC -> WC) will not\n"
" contact the repository. As such, they may not, by default, be able\n"
@@ -14183,12 +14469,16 @@ msgid ""
" to the destination.\n"
msgstr ""
-#: ../svn/svn.c:696
+#: ../svn/svn.c:712
msgid ""
"Remove files and directories from version control.\n"
"usage: 1. delete PATH...\n"
" 2. delete URL...\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:716
+msgid ""
" 1. Each item specified by a PATH is scheduled for deletion upon\n"
" the next commit. Files, and directories that have not been\n"
" committed, are immediately removed from the working copy\n"
@@ -14196,11 +14486,15 @@ msgid ""
" PATHs that are, or contain, unversioned or modified items will\n"
" not be removed unless the --force or --keep-local option is given.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:723
+msgid ""
" 2. Each item specified by a URL is deleted from the repository\n"
" via an immediate commit.\n"
msgstr ""
-#: ../svn/svn.c:712
+#: ../svn/svn.c:729
msgid ""
"Display local changes or differences between two revisions or paths.\n"
"usage: 1. diff\n"
@@ -14212,8 +14506,16 @@ msgid ""
" 5. diff OLD-URL[@OLDREV] NEW-PATH[@NEWREV]\n"
" 6. diff OLD-PATH[@OLDREV] NEW-URL[@NEWREV]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:738
+msgid ""
" 1. Use just 'svn diff' to display local modifications in a working copy.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:740
+msgid ""
" 2. Display the changes made to TARGETs as they are seen in REV between\n"
" two revisions. TARGETs may be all working copy paths or all URLs.\n"
" If TARGETs are working copy paths, N defaults to BASE and M to the\n"
@@ -14221,6 +14523,10 @@ msgid ""
" The '-c M' option is equivalent to '-r N:M' where N = M-1.\n"
" Using '-c -M' does the reverse: '-r M:N' where N = M-1.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:747
+msgid ""
" 3. Display the differences between OLD-TGT as it was seen in OLDREV and\n"
" NEW-TGT as it was seen in NEWREV. PATHs, if given, are relative to\n"
" OLD-TGT and NEW-TGT and restrict the output to differences for those\n"
@@ -14231,11 +14537,19 @@ msgid ""
" If OLDREV or NEWREV are not specified, they default to WORKING for\n"
" working copy targets and to HEAD for URL targets.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:756
+msgid ""
" Either or both OLD-TGT and NEW-TGT may also be paths to unversioned\n"
" targets. Revisions cannot be specified for unversioned targets.\n"
" Both targets must be of the same node kind (file or directory).\n"
" Diffing unversioned targets against URL targets is not supported.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:761
+msgid ""
" 4. Shorthand for 'svn diff --old=OLD-URL[@OLDREV] --new=NEW-URL[@NEWREV]'\n"
" 5. Shorthand for 'svn diff --old=OLD-URL[@OLDREV] --new=NEW-"
"PATH[@NEWREV]'\n"
@@ -14243,17 +14557,25 @@ msgid ""
"URL[@NEWREV]'\n"
msgstr ""
-#: ../svn/svn.c:753
+#: ../svn/svn.c:771
msgid ""
"Create an unversioned copy of a tree.\n"
"usage: 1. export [-r REV] URL[@PEGREV] [PATH]\n"
" 2. export [-r REV] PATH1[@PEGREV] [PATH2]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:775
+msgid ""
" 1. Exports a clean directory tree from the repository specified by\n"
" URL, at revision REV if it is given, otherwise at HEAD, into\n"
" PATH. If PATH is omitted, the last component of the URL is used\n"
" for the local directory name.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:780
+msgid ""
" 2. Exports a clean directory tree from the working copy specified by\n"
" PATH1, at revision REV if it is given, otherwise at WORKING, into\n"
" PATH2. If PATH2 is omitted, the last component of the PATH1 is used\n"
@@ -14261,21 +14583,29 @@ msgid ""
" changes will be preserved. Files not under version control will\n"
" not be copied.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:787 ../svnbench/svnbench.c:246
+msgid ""
" If specified, PEGREV determines in which revision the target is first\n"
" looked up.\n"
msgstr ""
-#: ../svn/svn.c:775 ../svnbench/svnbench.c:212
+#: ../svn/svn.c:794 ../svnbench/svnbench.c:212
msgid ""
"Describe the usage of this program or its subcommands.\n"
"usage: help [SUBCOMMAND...]\n"
msgstr ""
-#: ../svn/svn.c:781
+#: ../svn/svn.c:801
msgid ""
"Commit an unversioned file or tree into the repository.\n"
"usage: import [PATH] URL\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:804
+msgid ""
" Recursively commit a copy of PATH to URL.\n"
" If PATH is omitted '.' is assumed.\n"
" Parent directories are created as necessary in the repository.\n"
@@ -14285,40 +14615,75 @@ msgid ""
" if --force is specified.\n"
msgstr ""
-#: ../svn/svn.c:795
+#: ../svn/svn.c:816
msgid ""
"Display information about a local or remote item.\n"
"usage: info [TARGET[@REV]...]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:819
+msgid ""
" Print information about each TARGET (default: '.').\n"
" TARGET may be either a working-copy path or a URL. If specified, REV\n"
" determines in which revision the target is first looked up; the default\n"
" is HEAD for a URL or BASE for a WC path.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:824
+msgid ""
" With --show-item, print only the value of one item of information\n"
" about TARGET.\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:827
+msgid ""
+" EXPERIMENTAL:\n"
+" With --x-viewspec, print the working copy layout.\n"
msgstr ""
-#: ../svn/svn.c:812
+#: ../svn/svn.c:838 ../svn/svn.c:864
msgid ""
"List directory entries in the repository.\n"
"usage: list [TARGET[@REV]...]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:841 ../svn/svn.c:867 ../svnbench/svnbench.c:255
+msgid ""
" List each TARGET file and the contents of each TARGET directory as\n"
" they exist in the repository. If TARGET is a working copy path, the\n"
" corresponding repository URL will be used. If specified, REV determines\n"
" in which revision the target is first looked up.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:846 ../svn/svn.c:872 ../svnbench/svnbench.c:260
+msgid ""
" The default TARGET is '.', meaning the repository URL of the current\n"
" working directory.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:849
+msgid ""
" Multiple --search patterns may be specified and the output will be\n"
" reduced to those paths whose last segment - i.e. the file or directory\n"
" name - contains a sub-string matching at least one of these patterns\n"
" (Windows only).\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:854 ../svn/svn.c:879
+msgid ""
" With --verbose, the following fields will be shown for each item:\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:856 ../svn/svn.c:881 ../svnbench/svnbench.c:265
+msgid ""
" Revision number of the last commit\n"
" Author of the last commit\n"
" If locked, the letter 'O'. (Use 'svn info URL' to see details)\n"
@@ -14326,79 +14691,80 @@ msgid ""
" Date and time of the last commit\n"
msgstr ""
-#: ../svn/svn.c:837
+#: ../svn/svn.c:875
msgid ""
-"List directory entries in the repository.\n"
-"usage: list [TARGET[@REV]...]\n"
-"\n"
-" List each TARGET file and the contents of each TARGET directory as\n"
-" they exist in the repository. If TARGET is a working copy path, the\n"
-" corresponding repository URL will be used. If specified, REV determines\n"
-" in which revision the target is first looked up.\n"
-"\n"
-" The default TARGET is '.', meaning the repository URL of the current\n"
-" working directory.\n"
-"\n"
" Multiple --search patterns may be specified and the output will be\n"
" reduced to those paths whose last segment - i.e. the file or directory\n"
" name - matches at least one of these patterns.\n"
"\n"
-" With --verbose, the following fields will be shown for each item:\n"
-"\n"
-" Revision number of the last commit\n"
-" Author of the last commit\n"
-" If locked, the letter 'O'. (Use 'svn info URL' to see details)\n"
-" Size (in bytes)\n"
-" Date and time of the last commit\n"
msgstr ""
-#: ../svn/svn.c:864
+#: ../svn/svn.c:892
msgid ""
"Lock working copy paths or URLs in the repository, so that\n"
"no other user can commit changes to them.\n"
"usage: lock TARGET...\n"
"\n"
-" Use --force to steal a lock from another user or working copy.\n"
msgstr ""
-#: ../svn/svn.c:870
+#: ../svn/svn.c:896
+msgid " Use --force to steal a lock from another user or working copy.\n"
+msgstr ""
+
+#: ../svn/svn.c:899
msgid "read lock comment from file ARG"
msgstr ""
-#: ../svn/svn.c:871
+#: ../svn/svn.c:900
msgid "specify lock comment ARG"
msgstr ""
-#: ../svn/svn.c:872
+#: ../svn/svn.c:901
msgid "force validity of lock comment source"
msgstr ""
-#: ../svn/svn.c:873
+#: ../svn/svn.c:902
msgid "steal locks"
msgstr ""
-#: ../svn/svn.c:876
+#: ../svn/svn.c:905
msgid ""
"Show the log messages for a set of revision(s) and/or path(s).\n"
"usage: 1. log [PATH][@REV]\n"
" 2. log URL[@REV] [PATH...]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:909
+msgid ""
" 1. Print the log messages for the URL corresponding to PATH\n"
" (default: '.'). If specified, REV is the revision in which the\n"
" URL is first looked up, and the default revision range is REV:1.\n"
" If REV is not specified, the default revision range is BASE:1,\n"
" since the URL might not exist in the HEAD revision.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:915
+msgid ""
" 2. Print the log messages for the PATHs (default: '.') under URL.\n"
" If specified, REV is the revision in which the URL is first\n"
" looked up, and the default revision range is REV:1; otherwise,\n"
" the URL is looked up in HEAD, and the default revision range is\n"
" HEAD:1.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:921 ../svnbench/svnbench.c:290
+msgid ""
" Multiple '-c' or '-r' options may be specified (but not a\n"
" combination of '-c' and '-r' options), and mixing of forward and\n"
" reverse ranges is allowed.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:925
+msgid ""
" With -v, also print all affected paths with each log message.\n"
" Each changed path is preceded with a symbol describing the change:\n"
" A: The path was added or copied.\n"
@@ -14411,17 +14777,33 @@ msgid ""
" the old path will be listed as deleted and the new path will be listed\n"
" as copied from the old path at a prior revision.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:937
+msgid ""
" With -q, don't print the log message body itself (note that this is\n"
" compatible with -v).\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:940
+msgid ""
" Each log message is printed just once, even if more than one of the\n"
" affected paths for that revision were explicitly requested. Logs\n"
" follow copy history by default. Use --stop-on-copy to disable this\n"
" behavior, which can be useful for determining branchpoints.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:945
+msgid ""
" The --depth option is only valid in combination with the --diff option\n"
" and limits the scope of the displayed diff to the specified depth.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:948
+msgid ""
" If the --search option is used, log messages are displayed only if the\n"
" provided search pattern matches any of the author, date, log message\n"
" text (unless --quiet is used), or, if the --verbose option is also\n"
@@ -14439,32 +14821,72 @@ msgid ""
" number of log messages searched, rather than restricting the output\n"
" to a particular number of matching log messages.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:965
+msgid ""
" Examples:\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:967
+msgid ""
" Show the latest 5 log messages for the current working copy\n"
" directory and display paths changed in each commit:\n"
" svn log -l 5 -v\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:971
+msgid ""
" Show the log for bar.c as of revision 42:\n"
" svn log bar.c@42\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:974
+msgid ""
" Show log messages and diffs for each commit to foo.c:\n"
" svn log --diff http://www.example.com/repo/project/foo.c\n"
" (Because the above command uses a full URL it does not require\n"
" a working copy.)\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:979
+msgid ""
" Show log messages for the children foo.c and bar.c of the directory\n"
" '/trunk' as it appeared in revision 50, using the ^/ URL shortcut:\n"
" svn log ^/trunk@50 foo.c bar.c\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:983
+msgid ""
" Show the log messages for any incoming changes to foo.c during the\n"
" next 'svn update':\n"
" svn log -r BASE:HEAD foo.c\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:987
+msgid ""
" Show the log message for the revision in which /branches/foo\n"
" was created:\n"
" svn log --stop-on-copy --limit 1 -r0:HEAD ^/branches/foo\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:991
+msgid ""
+" Show all log messages for commits between the tags ^/tags/2.0 and\n"
+" ^/tags/3.0; assuming that tag 2.0 was created in revision 100:\n"
+" svn log -rHEAD:100 ^/tags/3.0\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:995
+msgid ""
" If ^/trunk/foo.c was moved to ^/trunk/bar.c' in revision 22, 'svn log -"
"v'\n"
" shows a deletion and a copy in its changed paths list, such as:\n"
@@ -14472,26 +14894,26 @@ msgid ""
" A /trunk/bar.c (from /trunk/foo.c:21)\n"
msgstr ""
-#: ../svn/svn.c:970 ../svnbench/svnbench.c:300
+#: ../svn/svn.c:1004 ../svnbench/svnbench.c:305
msgid "retrieve revision property ARG"
msgstr ""
-#: ../svn/svn.c:971 ../svnbench/svnbench.c:301
+#: ../svn/svn.c:1005 ../svnbench/svnbench.c:306
msgid "the change made in revision ARG"
msgstr ""
-#: ../svn/svn.c:972
+#: ../svn/svn.c:1006
msgid "also print all affected paths"
msgstr ""
-#: ../svn/svn.c:973
+#: ../svn/svn.c:1007
msgid "do not print the log message"
msgstr ""
#. For this large section, let's keep it unindented for easier
#. * viewing/editing. It has been vim-treated with a textwidth=75 and 'gw'
#. * (with quotes and newlines removed).
-#: ../svn/svn.c:979
+#: ../svn/svn.c:1013
msgid ""
"Merge changes into a working copy.\n"
"usage: 1. merge SOURCE[@REV] [TARGET_WCPATH]\n"
@@ -14501,17 +14923,33 @@ msgid ""
" 3. merge SOURCE1[@REV1] SOURCE2[@REV2] [TARGET_WCPATH]\n"
" (the '2-URL' merge)\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1021
+msgid ""
" 1. This form, with one source path and no revision range, is called\n"
" a 'complete' merge:\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1024
+msgid ""
" svn merge SOURCE[@REV] [TARGET_WCPATH]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1026
+msgid ""
" The complete merge is used for the 'sync' and 'reintegrate' merges\n"
" in the 'feature branch' pattern described below. It finds all the\n"
" changes on the source branch that have not already been merged to the\n"
" target branch, and merges them into the working copy. Merge tracking\n"
" is used to know which changes have already been merged.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1032
+msgid ""
" SOURCE specifies the branch from where the changes will be pulled, and\n"
" TARGET_WCPATH specifies a working copy of the target branch to which\n"
" the changes will be applied. Normally SOURCE and TARGET_WCPATH should\n"
@@ -14519,6 +14957,10 @@ msgid ""
" subtree, then the subtree path must be included in both SOURCE and\n"
" TARGET_WCPATH; this is discouraged, to avoid subtree mergeinfo.)\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1039
+msgid ""
" SOURCE is usually a URL. The optional '@REV' specifies both the peg\n"
" revision of the URL and the latest revision that will be considered\n"
" for merging; if REV is not specified, the HEAD revision is assumed. If\n"
@@ -14526,28 +14968,60 @@ msgid ""
" used, and the default value of 'REV' is the base revision (usually the\n"
" revision last updated to).\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1046
+msgid ""
" TARGET_WCPATH is a working copy path; if omitted, '.' is generally\n"
" assumed. There are some special cases:\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1049
+msgid ""
" - If SOURCE is a URL:\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1051
+msgid ""
" - If the basename of the URL and the basename of '.' are the\n"
" same, then the differences are applied to '.'. Otherwise,\n"
" if a file with the same basename as that of the URL is found\n"
" within '.', then the differences are applied to that file.\n"
" In all other cases, the target defaults to '.'.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1057
+msgid ""
" - If SOURCE is a working copy path:\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1059
+msgid ""
" - If the source is a file, then differences are applied to that\n"
" file (useful for reverse-merging earlier changes). Otherwise,\n"
" if the source is a directory, then the target defaults to '.'.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1063
+msgid ""
" In normal usage the working copy should be up to date, at a single\n"
" revision, with no local modifications and no switched subtrees.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1066
+msgid ""
" - The 'Feature Branch' Merging Pattern -\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1068
+msgid ""
" In this commonly used work flow, known also as the 'development\n"
" branch' pattern, a developer creates a branch and commits a series of\n"
" changes that implement a new feature. The developer periodically\n"
@@ -14556,16 +15030,28 @@ msgid ""
" complete, the developer performs a merge from the feature branch to\n"
" the parent branch to re-integrate the changes.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1076
+msgid ""
" parent --+----------o------o-o-------------o--\n"
" \\ \\ \\ /\n"
" \\ merge merge merge\n"
" \\ \\ \\ /\n"
" feature +--o-o-------o----o-o----o-------\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1082
+msgid ""
" A merge from the parent branch to the feature branch is called a\n"
" 'sync' or 'catch-up' merge, and a merge from the feature branch to the\n"
" parent branch is called a 'reintegrate' merge.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1086
+msgid ""
" - Sync Merge Example -\n"
" ............\n"
" . .\n"
@@ -14576,6 +15062,10 @@ msgid ""
" feature +------------------------o-----\n"
" r100 r200\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1096
+msgid ""
" Subversion will locate all the changes on 'trunk' that have not yet\n"
" been merged into the 'feature' branch. In this case that is a single\n"
" range, r100:200. In the diagram above, L marks the left side "
@@ -14585,23 +15075,47 @@ msgid ""
" path. In this case, the working copy is a clean checkout of the entire\n"
" 'feature' branch.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1104
+msgid ""
" To perform this sync merge, have a clean working copy of the feature\n"
" branch and run the following command in its top-level directory:\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1107
+msgid ""
" svn merge ^/trunk\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1109
+msgid ""
" Note that the merge is now only in your local working copy and still\n"
" needs to be committed to the repository so that it can be seen by\n"
" others. You can review the changes and you may have to resolve\n"
" conflicts before you commit the merge.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1114
+msgid ""
" - Reintegrate Merge Example -\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1116
+msgid ""
" The feature branch was last synced with trunk up to revision X. So the\n"
" difference between trunk@X and feature@HEAD contains the complete set\n"
" of changes that implement the feature, and no other changes. These\n"
" changes are applied to trunk.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1121
+msgid ""
" rW rX\n"
" trunk ------+--------------------L------------------o\n"
" \\ . ^\n"
@@ -14609,57 +15123,108 @@ msgid ""
" \\ . /\n"
" feature +--------------------------------R\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1128
+msgid ""
" In the diagram above, L marks the left side (trunk@X) and R marks the\n"
" right side (feature@HEAD) of the merge. The difference between the\n"
" left and right side is merged into trunk, the target.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1132
+msgid ""
" To perform the merge, have a clean working copy of trunk and run the\n"
" following command in its top-level directory:\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1135
+msgid ""
" svn merge ^/feature\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1137
+msgid ""
" To prevent unnecessary merge conflicts, a reintegrate merge requires\n"
" that TARGET_WCPATH is not a mixed-revision working copy, has no local\n"
" modifications, and has no switched subtrees.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1141
+msgid ""
" A reintegrate merge also requires that the source branch is coherently\n"
" synced with the target -- in the above example, this means that all\n"
" revisions between the branch point W and the last merged revision X\n"
" are merged to the feature branch, so that there are no unmerged\n"
" revisions in-between.\n"
"\n"
-"\n"
+msgstr ""
+
+#: ../svn/svn.c:1148
+msgid ""
" 2. This form is called a 'cherry-pick' merge:\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1150
+msgid ""
" svn merge [-c M[,N...] | -r N:M ...] SOURCE[@REV] [TARGET_WCPATH]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1152
+msgid ""
" A cherry-pick merge is used to merge specific revisions (or revision\n"
" ranges) from one branch to another. By default, this uses merge\n"
" tracking to automatically skip any revisions that have already been\n"
" merged to the target; you can use the --ignore-ancestry option to\n"
" disable such skipping.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1158
+msgid ""
" SOURCE is usually a URL. The optional '@REV' specifies only the peg\n"
" revision of the URL and does not affect the merge range; if REV is not\n"
" specified, the HEAD revision is assumed. If SOURCE is a working copy\n"
" path, the corresponding URL of the path is used, and the default value\n"
" of 'REV' is the base revision (usually the revision last updated to).\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1164 ../svn/svn.c:1235
+msgid ""
" TARGET_WCPATH is a working copy path; if omitted, '.' is generally\n"
" assumed. The special cases noted above in the 'complete' merge form\n"
" also apply here.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1168
+msgid ""
" The revision ranges to be merged are specified by the '-r' and/or '-c'\n"
" options. '-r N:M' refers to the difference in the history of the\n"
" source branch between revisions N and M. You can use '-c M' to merge\n"
" single revisions: '-c M' is equivalent to '-r <M-1>:M'. Each such\n"
" difference is applied to TARGET_WCPATH.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1174
+msgid ""
" If the mergeinfo in TARGET_WCPATH indicates that revisions within the\n"
" range were already merged, changes made in those revisions are not\n"
" merged again. If needed, the range is broken into multiple sub-ranges,\n"
" and each sub-range is merged separately.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1179
+msgid ""
" A 'reverse range' can be used to undo changes. For example, when\n"
" source and target refer to the same branch, a previously committed\n"
" revision can be 'undone'. In a reverse range, N is greater than M in\n"
@@ -14667,14 +15232,30 @@ msgid ""
" is equivalent to '-r M:<M-1>'. Undoing changes like this is also known\n"
" as performing a 'reverse merge'.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1186
+msgid ""
" Multiple '-c' and/or '-r' options may be specified and mixing of\n"
" forward and reverse ranges is allowed.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1189
+msgid ""
" - Cherry-pick Merge Example -\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1191
+msgid ""
" A bug has been fixed on trunk in revision 50. This fix needs to\n"
" be merged from trunk onto the release branch.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1194
+msgid ""
" 1.x-release +-----------------------o-----\n"
" / ^\n"
" / |\n"
@@ -14682,33 +15263,72 @@ msgid ""
" trunk ------+--------------------------LR-----\n"
" r50\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1201
+msgid ""
" In the above diagram, L marks the left side (trunk@49) and R marks the\n"
" right side (trunk@50) of the merge. The difference between the left\n"
" and right side is applied to the target working copy path.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1205
+msgid ""
" Note that the difference between revision 49 and 50 is exactly those\n"
" changes that were committed in revision 50, not including changes\n"
" committed in revision 49.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1209
+msgid ""
" To perform the merge, have a clean working copy of the release branch\n"
" and run the following command in its top-level directory; remember\n"
" that the default target is '.':\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1213
+msgid ""
" svn merge -c50 ^/trunk\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1215
+msgid ""
" You can also cherry-pick several revisions and/or revision ranges:\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1217
+msgid ""
" svn merge -c50,54,60 -r65:68 ^/trunk\n"
"\n"
-"\n"
+msgstr ""
+
+#: ../svn/svn.c:1220
+msgid ""
" 3. This form is called a '2-URL merge':\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1222
+msgid ""
" svn merge SOURCE1[@REV1] SOURCE2[@REV2] [TARGET_WCPATH]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1224
+msgid ""
" You should use this merge variant only if the other variants do not\n"
" apply to your situation, as this variant can be quite complex to\n"
" master.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1228
+msgid ""
" Two source URLs are specified, identifying two trees on the same\n"
" branch or on different branches. The trees are compared and the\n"
" difference from SOURCE1@REV1 to SOURCE2@REV2 is applied to the\n"
@@ -14716,23 +15336,39 @@ msgid ""
" branch may be the same as one or both sources, or different again.\n"
" The three branches involved can be completely unrelated.\n"
"\n"
-" TARGET_WCPATH is a working copy path; if omitted, '.' is generally\n"
-" assumed. The special cases noted above in the 'complete' merge form\n"
-" also apply here.\n"
-"\n"
+msgstr ""
+
+#: ../svn/svn.c:1239
+msgid ""
" SOURCE1 and/or SOURCE2 can also be specified as a working copy path,\n"
" in which case the merge source URL is derived from the working copy.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1242
+msgid ""
" - 2-URL Merge Example -\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1244
+msgid ""
" Two features have been developed on separate branches called 'foo' and\n"
" 'bar'. It has since become clear that 'bar' should be combined with\n"
" the 'foo' branch for further development before reintegration.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1248
+msgid ""
" Although both feature branches originate from trunk, they are not\n"
" directly related -- one is not a direct copy of the other. A 2-URL\n"
" merge is necessary.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1252
+msgid ""
" The 'bar' branch has been synced with trunk up to revision 500.\n"
" (If this revision number is not known, it can be located using the\n"
" 'svn log' and/or 'svn mergeinfo' commands.)\n"
@@ -14740,6 +15376,10 @@ msgid ""
" set of changes related to feature 'bar', and no other changes. These\n"
" changes are applied to the 'foo' branch.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1259
+msgid ""
" foo +-----------------------------------o\n"
" / ^\n"
" / /\n"
@@ -14750,40 +15390,83 @@ msgid ""
" \\ . /\n"
" bar +-----------------------------------R\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1269
+msgid ""
" In the diagram above, L marks the left side (trunk@500) and R marks\n"
" the right side (bar@HEAD) of the merge. The difference between the\n"
" left and right side is applied to the target working copy path, in\n"
" this case a working copy of the 'foo' branch.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1274
+msgid ""
" To perform the merge, have a clean working copy of the 'foo' branch\n"
" and run the following command in its top-level directory:\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1277
+msgid ""
" svn merge ^/trunk@500 ^/bar\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1279
+msgid ""
" The exact changes applied by a 2-URL merge can be previewed with svn's\n"
" diff command, which is a good idea to verify if you do not have the\n"
" luxury of a clean working copy to merge to. In this case:\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1283
+msgid ""
" svn diff ^/trunk@500 ^/bar@HEAD\n"
"\n"
-"\n"
+msgstr ""
+
+#: ../svn/svn.c:1286
+msgid ""
" The following applies to all types of merges:\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1288
+msgid ""
" To prevent unnecessary merge conflicts, svn merge requires that\n"
" TARGET_WCPATH is not a mixed-revision working copy. Running 'svn update'\n"
" before starting a merge ensures that all items in the working copy are\n"
" based on the same revision.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1293
+msgid ""
" If possible, you should have no local modifications in the merge's target\n"
" working copy prior to the merge, to keep things simpler. It will be\n"
" easier to revert the merge and to understand the branch's history.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1297
+msgid ""
" Switched sub-paths should also be avoided during merging, as they may\n"
" cause incomplete merges and create subtree mergeinfo.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1300
+msgid ""
" For each merged item a line will be printed with characters reporting the\n"
" action taken. These characters have the following meaning:\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1303 ../svn/svn.c:1907
+msgid ""
" A Added\n"
" D Deleted\n"
" U Updated\n"
@@ -14792,14 +15475,26 @@ msgid ""
" E Existed\n"
" R Replaced\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1311
+msgid ""
" Characters in the first column report about the item itself.\n"
" Characters in the second column report about properties of the item.\n"
" A 'C' in the third column indicates a tree conflict, while a 'C' in\n"
" the first and second columns indicate textual conflicts in files\n"
" and in property values, respectively.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1317
+msgid ""
" - Merge Tracking -\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1319
+msgid ""
" Subversion uses the svn:mergeinfo property to track merge history. This\n"
" property is considered at the start of a merge to determine what to merge\n"
" and it is updated at the conclusion of the merge to describe the merge\n"
@@ -14809,11 +15504,23 @@ msgid ""
" other). This is verified and enforced when using sync merges and\n"
" reintegrate merges.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1328
+msgid ""
" The --ignore-ancestry option prevents merge tracking and thus ignores\n"
" mergeinfo, neither considering it nor recording it.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1331
+msgid ""
" - Merging from foreign repositories -\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1333
+msgid ""
" Subversion does support merging from foreign repositories.\n"
" While all merge source URLs must point to the same repository, the merge\n"
" target working copy may come from a different repository than the source.\n"
@@ -14823,16 +15530,20 @@ msgid ""
" repositories.\n"
msgstr ""
-#: ../svn/svn.c:1309
+#: ../svn/svn.c:1344
msgid "force deletions even if deleted contents don't match"
msgstr ""
-#: ../svn/svn.c:1313
+#: ../svn/svn.c:1348
msgid ""
"Display merge-related information.\n"
"usage: 1. mergeinfo SOURCE[@REV] [TARGET[@REV]]\n"
" 2. mergeinfo --show-revs=WHICH SOURCE[@REV] [TARGET[@REV]]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1352
+msgid ""
" 1. Summarize the history of merging between SOURCE and TARGET. The graph\n"
" shows, from left to right:\n"
" the youngest common ancestor of the branches;\n"
@@ -14840,48 +15551,83 @@ msgid ""
" that will be used for the next complete merge;\n"
" the repository path and revision number of the tip of each branch.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1359
+msgid ""
" 2. Print the revision numbers on SOURCE that have been merged to TARGET\n"
" (with --show-revs=merged), or that have not been merged to TARGET\n"
" (with --show-revs=eligible). Print only revisions in which there was\n"
" at least one change in SOURCE.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1364
+msgid ""
" If --revision (-r) is provided, filter the displayed information to\n"
" show only that which is associated with the revisions within the\n"
" specified range. Revision numbers, dates, and the 'HEAD' keyword are\n"
" valid range values.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1369
+msgid ""
" SOURCE and TARGET are the source and target branch URLs, respectively.\n"
" (If a WC path is given, the corresponding base URL is used.) The default\n"
" TARGET is the current working directory ('.'). REV specifies the revision\n"
" to be considered the tip of the branch; the default for SOURCE is HEAD,\n"
" and the default for TARGET is HEAD for a URL or BASE for a WC path.\n"
"\n"
-" The depth can be 'empty' or 'infinity'; the default is 'empty'.\n"
msgstr ""
-#: ../svn/svn.c:1345
+#: ../svn/svn.c:1375
+msgid " The depth can be 'empty' or 'infinity'; the default is 'empty'.\n"
+msgstr ""
+
+#: ../svn/svn.c:1381
msgid ""
"Create a new directory under version control.\n"
"usage: 1. mkdir PATH...\n"
" 2. mkdir URL...\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1385
+msgid ""
" Create version controlled directories.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1387
+msgid ""
" 1. Each directory specified by a working copy PATH is created locally\n"
" and scheduled for addition upon the next commit.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1390
+msgid ""
" 2. Each directory specified by a URL is created in the repository via\n"
" an immediate commit.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1393
+msgid ""
" In both cases, all the intermediate directories must already exist,\n"
" unless the --parents option is given.\n"
msgstr ""
-#: ../svn/svn.c:1362
+#: ../svn/svn.c:1399
msgid ""
"Move (rename) an item in a working copy or repository.\n"
"usage: move SRC... DST\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1402
+msgid ""
" SRC and DST can both be working copy (WC) paths or URLs:\n"
" WC -> WC: move an item in a working copy, as a local change to\n"
" be committed later (with or without further changes)\n"
@@ -14891,6 +15637,10 @@ msgid ""
" the sources will be added as children of DST. When moving multiple\n"
" sources, DST must be an existing directory.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1411
+msgid ""
" SRC and DST of WC -> WC moves must be committed in the same revision.\n"
" Furthermore, WC -> WC moves will refuse to move a mixed-revision subtree.\n"
" To avoid unnecessary conflicts, it is recommended to run 'svn update'\n"
@@ -14899,19 +15649,31 @@ msgid ""
"compatibility.\n"
msgstr ""
-#: ../svn/svn.c:1384
+#: ../svn/svn.c:1422
msgid ""
"Apply a patch to a working copy.\n"
"usage: patch PATCHFILE [WCPATH]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1425
+msgid ""
" Apply a unidiff patch in PATCHFILE to the working copy WCPATH.\n"
" If WCPATH is omitted, '.' is assumed.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1428
+msgid ""
" A unidiff patch suitable for application to a working copy can be\n"
" produced with the 'svn diff' command or third-party diffing tools.\n"
" Any non-unidiff content of PATCHFILE is ignored, except for Subversion\n"
" property diffs as produced by 'svn diff'.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1433
+msgid ""
" Changes listed in the patch will either be applied or rejected.\n"
" If a change does not match at its exact line offset, it may be applied\n"
" earlier or later in the file if a match is found elsewhere for the\n"
@@ -14921,23 +15683,43 @@ msgid ""
" If no matching context can be found for a change, the change conflicts\n"
" and will be written to a reject file with the extension .svnpatch.rej.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1442
+msgid ""
" For each patched file a line will be printed with characters reporting\n"
" the action taken. These characters have the following meaning:\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1445
+msgid ""
" A Added\n"
" D Deleted\n"
" U Updated\n"
" C Conflict\n"
" G Merged (with local uncommitted changes)\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1451
+msgid ""
" Changes applied with an offset or fuzz are reported on lines starting\n"
" with the '>' symbol. You should review such changes carefully.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1454
+msgid ""
" If the patch removes all content from a file, that file is scheduled\n"
" for deletion. If the patch creates a new file, that file is scheduled\n"
" for addition. Use 'svn revert' to undo deletions and additions you\n"
" do not agree with.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1459
+msgid ""
" Hint: If the patch file was created with Subversion, it will contain\n"
" the number of a revision N the patch will cleanly apply to\n"
" (look for lines like '--- foo/bar.txt (revision N)').\n"
@@ -14946,99 +15728,140 @@ msgid ""
" HEAD revision. This way, conflicts can be resolved interactively.\n"
msgstr ""
-#: ../svn/svn.c:1432
+#: ../svn/svn.c:1470
msgid ""
"Remove a property from files, dirs, or revisions.\n"
"usage: 1. propdel PROPNAME [PATH...]\n"
" 2. propdel PROPNAME --revprop -r REV [TARGET]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1474
+msgid ""
" 1. Removes versioned props in working copy.\n"
" 2. Removes unversioned remote prop on repos revision.\n"
" TARGET only determines which repository to access.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1478 ../svn/svn.c:1491 ../svn/svn.c:1515 ../svn/svn.c:1535
+msgid ""
" See 'svn help propset' for descriptions of the svn:* special properties.\n"
msgstr ""
-#: ../svn/svn.c:1444
+#: ../svn/svn.c:1483
msgid ""
"Edit a property with an external editor.\n"
"usage: 1. propedit PROPNAME TARGET...\n"
" 2. propedit PROPNAME --revprop -r REV [TARGET]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1487
+msgid ""
" 1. Edits versioned prop in working copy or repository.\n"
" 2. Edits unversioned remote prop on repos revision.\n"
" TARGET only determines which repository to access.\n"
"\n"
-" See 'svn help propset' for descriptions of the svn:* special properties.\n"
msgstr ""
-#: ../svn/svn.c:1456
+#: ../svn/svn.c:1496
msgid ""
"Print the value of a property on files, dirs, or revisions.\n"
"usage: 1. propget PROPNAME [TARGET[@REV]...]\n"
" 2. propget PROPNAME --revprop -r REV [TARGET]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1500
+msgid ""
" 1. Prints versioned props. If specified, REV determines in which\n"
" revision the target is first looked up.\n"
" 2. Prints unversioned remote prop on repos revision.\n"
" TARGET only determines which repository to access.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1505
+msgid ""
" With --verbose, the target path and the property name are printed on\n"
" separate lines before each value, like 'svn proplist --verbose'.\n"
" Otherwise, if there is more than one TARGET or a depth other than\n"
" 'empty', the target path is printed on the same line before each value.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1510
+msgid ""
" By default, an extra newline is printed after the property value so that\n"
" the output looks pretty. With a single TARGET, depth 'empty' and without\n"
" --show-inherited-props, you can use the --no-newline option to disable "
"this\n"
" (useful when redirecting a binary property value to a file, for example).\n"
"\n"
-" See 'svn help propset' for descriptions of the svn:* special properties.\n"
msgstr ""
-#: ../svn/svn.c:1478 ../svn/svn.c:1497
+#: ../svn/svn.c:1519 ../svn/svn.c:1539
msgid "print path, name and value on separate lines"
msgstr ""
-#: ../svn/svn.c:1479
+#: ../svn/svn.c:1520
msgid "(deprecated; use --no-newline)"
msgstr ""
-#: ../svn/svn.c:1482
+#: ../svn/svn.c:1523
msgid ""
"List all properties on files, dirs, or revisions.\n"
"usage: 1. proplist [TARGET[@REV]...]\n"
" 2. proplist --revprop -r REV [TARGET]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1527
+msgid ""
" 1. Lists versioned props. If specified, REV determines in which\n"
" revision the target is first looked up.\n"
" 2. Lists unversioned remote props on repos revision.\n"
" TARGET only determines which repository to access.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1532
+msgid ""
" With --verbose, the property values are printed as well, like 'svn "
"propget\n"
" --verbose'. With --quiet, the paths are not printed.\n"
"\n"
-" See 'svn help propset' for descriptions of the svn:* special properties.\n"
msgstr ""
-#: ../svn/svn.c:1498
+#: ../svn/svn.c:1540
msgid "don't print the path"
msgstr ""
-#: ../svn/svn.c:1501
+#: ../svn/svn.c:1543
msgid ""
"Set the value of a property on files, dirs, or revisions.\n"
"usage: 1. propset PROPNAME PROPVAL PATH...\n"
" 2. propset PROPNAME --revprop -r REV PROPVAL [TARGET]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1547
+msgid ""
" 1. Changes a versioned file or directory property in a working copy.\n"
" 2. Changes an unversioned property on a repository revision.\n"
" (TARGET only determines which repository to access.)\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1551
+msgid ""
" The value may be provided with the --file option instead of PROPVAL.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1553
+msgid ""
" Property names starting with 'svn:' are reserved. Subversion recognizes\n"
" the following special versioned properties on a file:\n"
" svn:keywords - Keywords to be expanded. Valid keywords are:\n"
@@ -15050,6 +15873,10 @@ msgid ""
" Id - A compressed summary of the previous four.\n"
" Header - Similar to Id but includes the full URL.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1564
+msgid ""
" Custom keywords can be defined with a format string separated from\n"
" the keyword name with '='. Valid format substitutions are:\n"
" %a - The author of the revision given by %r.\n"
@@ -15069,6 +15896,10 @@ msgid ""
" Once a custom keyword has been defined for a file, it can be used\n"
" within the file like any other keyword: $MyKeyword$\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1582
+msgid ""
" svn:executable - If present, make the file executable. Use\n"
" 'svn propdel svn:executable PATH...' to clear.\n"
" svn:eol-style - One of 'native', 'LF', 'CR', 'CRLF'.\n"
@@ -15081,6 +15912,10 @@ msgid ""
" when it is not locked. Use 'svn propdel svn:needs-lock PATH...'\n"
" to clear.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1594
+msgid ""
" Subversion recognizes the following special versioned properties on a\n"
" directory:\n"
" svn:ignore - A list of file glob patterns to ignore, one per "
@@ -15124,52 +15959,88 @@ msgid ""
" Lines starting with a '#' character are ignored.\n"
msgstr ""
-#: ../svn/svn.c:1588
+#: ../svn/svn.c:1631
msgid "read property value from file ARG"
msgstr ""
-#: ../svn/svn.c:1591
+#: ../svn/svn.c:1634
msgid ""
"Relocate the working copy to point to a different repository root URL.\n"
"usage: 1. relocate FROM-PREFIX TO-PREFIX [PATH...]\n"
" 2. relocate TO-URL [PATH]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1638
+msgid ""
" Rewrite working copy URL metadata to reflect a syntactic change only.\n"
" This is used when a repository's root URL changes (such as a scheme\n"
" or hostname change) but your working copy still reflects the same\n"
" directory within the same repository.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1643
+msgid ""
" 1. FROM-PREFIX and TO-PREFIX are initial substrings of the working\n"
" copy's current and new URLs, respectively. (You may specify the\n"
" complete old and new URLs if you wish.) Use 'svn info' to determine\n"
" the current working copy URL.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1648
+msgid ""
" 2. TO-URL is the (complete) new repository URL to use for PATH.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1650
+msgid ""
" Examples:\n"
" svn relocate http:// svn:// project1 project2\n"
" svn relocate http://www.example.com/repo/project \\\n"
" svn://svn.example.com/repo/project\n"
msgstr ""
-#: ../svn/svn.c:1614
+#: ../svn/svn.c:1658
msgid ""
"Resolve conflicts on working copy files or directories.\n"
"usage: resolve [PATH...]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1661
+msgid ""
" By default, perform interactive conflict resolution on PATH.\n"
" In this mode, the command is recursive by default (depth 'infinity').\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1664
+msgid ""
" The --accept=ARG option prevents interactive prompting and forces\n"
" conflicts on PATH to be resolved in the manner specified by ARG.\n"
" In this mode, the command is not recursive by default (depth 'empty').\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1668
+msgid ""
" A conflicted path cannot be committed with 'svn commit' until it\n"
" has been marked as resolved with 'svn resolve'.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1671
+msgid ""
" Subversion knows three types of conflicts:\n"
" Text conflicts, Property conflicts, and Tree conflicts.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1674
+msgid ""
" Text conflicts occur when overlapping changes to file contents were\n"
" made. Text conflicts are usually resolved by editing the conflicted\n"
" file or by using a merge tool (which may be an external program).\n"
@@ -15178,11 +16049,19 @@ msgid ""
" only useful in situations where it is acceptable to discard local or\n"
" incoming changes altogether.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1682
+msgid ""
" Property conflicts are usually resolved by editing the value of the\n"
" conflicted property (either from the interactive prompt, or with\n"
" 'svn propedit'). As with text conflicts, options exist to edit a\n"
" property automatically, discarding some changes in favour of others.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1687
+msgid ""
" Tree conflicts occur when a change to the directory structure was\n"
" made, and when this change cannot be applied to the working copy\n"
" without affecting other changes (text changes, property changes,\n"
@@ -15194,6 +16073,10 @@ msgid ""
" It is recommended to use these automatic options whenever possible,\n"
" rather than attempting manual tree conflict resolution.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1697
+msgid ""
" If a tree conflict cannot be resolved automatically, it is recommended\n"
" to figure out why the conflict occurred before attempting to resolve it.\n"
" The 'svn log -v' command can be used to inspect structural changes\n"
@@ -15208,47 +16091,67 @@ msgid ""
" copied, deleted, or moved.\n"
msgstr ""
-#: ../svn/svn.c:1665
+#: ../svn/svn.c:1710
msgid ""
"specify automatic conflict resolution source\n"
" ('base', 'working', 'mine-conflict',\n"
" 'theirs-conflict', 'mine-full', 'theirs-full')"
msgstr ""
-#: ../svn/svn.c:1672
+#: ../svn/svn.c:1717
msgid ""
"Remove 'conflicted' state on working copy files or directories.\n"
"usage: resolved PATH...\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1720
+msgid ""
" Note: this subcommand does not semantically resolve conflicts or\n"
" remove conflict markers; it merely removes the conflict-related\n"
" artifact files and allows PATH to be committed again. It has been\n"
" deprecated in favor of running 'svn resolve --accept working'.\n"
msgstr ""
-#: ../svn/svn.c:1682
+#: ../svn/svn.c:1728
msgid ""
"Restore pristine working copy state (undo local changes).\n"
"usage: revert PATH...\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1731
+msgid ""
" Revert changes in the working copy at or within PATH, and remove\n"
" conflict markers as well, if any.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1734
+msgid ""
" This subcommand does not revert already committed changes.\n"
" For information about undoing already committed changes, search\n"
" the output of 'svn help merge' for 'undo'.\n"
msgstr ""
-#: ../svn/svn.c:1694
+#: ../svn/svn.c:1741
msgid ""
"Print the status of working copy files and directories.\n"
"usage: status [PATH...]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1744
+msgid ""
" With no args, print only locally modified items (no network access).\n"
" With -q, print only summary information about locally modified items.\n"
" With -u, add working revision and server out-of-date information.\n"
" With -v, print full revision information on every item.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1749
+msgid ""
" The first seven columns in the output are each one character wide:\n"
" First column: Says if item was added, deleted, or otherwise changed\n"
" ' ' no modifications\n"
@@ -15296,33 +16199,57 @@ msgid ""
" If the item is a tree conflict victim, an additional line is printed\n"
" after the item's status line, explaining the nature of the conflict.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1793
+msgid ""
" The out-of-date information appears in the ninth column (with -u):\n"
" '*' a newer revision exists on the server\n"
" ' ' the working copy is up to date\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1797
+msgid ""
" Remaining fields are variable width and delimited by spaces:\n"
" The working revision (with -u or -v; '-' if the item is copied)\n"
" The last committed revision and last committed author (with -v)\n"
" The working copy path is always the final field, so it can\n"
" include spaces.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1803
+msgid ""
" The presence of a question mark ('?') where a working revision, last\n"
" committed revision, or last committed author was expected indicates\n"
" that the information is unknown or irrelevant given the state of the\n"
" item (for example, when the item is the result of a copy operation).\n"
" The question mark serves as a visual placeholder to facilitate parsing.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1809
+msgid ""
" Example output:\n"
" svn status wc\n"
" M wc/bar.c\n"
" A + wc/qax.c\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1814
+msgid ""
" svn status -u wc\n"
" M 965 wc/bar.c\n"
" * 965 wc/foo.c\n"
" A + - wc/qax.c\n"
" Status against revision: 981\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1820
+msgid ""
" svn status --show-updates --verbose wc\n"
" M 965 938 kfogel wc/bar.c\n"
" * 965 922 sussman wc/foo.c\n"
@@ -15330,6 +16257,10 @@ msgid ""
" 965 687 joe wc/zig.c\n"
" Status against revision: 981\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1827
+msgid ""
" svn status\n"
" M wc/bar.c\n"
" ! C wc/qaz.c\n"
@@ -15337,22 +16268,30 @@ msgid ""
" D wc/qax.c\n"
msgstr ""
-#: ../svn/svn.c:1787
+#: ../svn/svn.c:1835
msgid "don't print unversioned items"
msgstr ""
-#: ../svn/svn.c:1790
+#: ../svn/svn.c:1838
msgid ""
"Update the working copy to a different URL within the same repository.\n"
"usage: 1. switch URL[@PEGREV] [PATH]\n"
" 2. switch --relocate FROM-PREFIX TO-PREFIX [PATH...]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1842
+msgid ""
" 1. Update the working copy to mirror a new URL within the repository.\n"
" This behavior is similar to 'svn update', and is the way to\n"
" move a working copy to a branch or tag within the same repository.\n"
" If specified, PEGREV determines in which revision the target is first\n"
" looked up.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1848
+msgid ""
" If --force is used, unversioned obstructing paths in the working\n"
" copy do not automatically cause a failure if the switch attempts to\n"
" add the same path. If the obstructing path is the same type (file\n"
@@ -15365,19 +16304,39 @@ msgid ""
" modification to the working copy. All properties from the repository\n"
" are applied to the obstructing path.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1859
+msgid ""
" Use the --set-depth option to set a new working copy depth on the\n"
" targets of this operation.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1862
+msgid ""
" By default, Subversion will refuse to switch a working copy path to\n"
" a new URL with which it shares no common version control ancestry.\n"
" Use the '--ignore-ancestry' option to override this sanity check.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1866
+msgid ""
" 2. The '--relocate' option is deprecated. This syntax is equivalent to\n"
" 'svn relocate FROM-PREFIX TO-PREFIX [PATH]'.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1869
+msgid ""
" See also 'svn help update' for a list of possible characters\n"
" reporting the action taken.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1872
+msgid ""
" Examples:\n"
" svn switch ^/branches/1.x-release\n"
" svn switch --relocate http:// svn://\n"
@@ -15385,49 +16344,56 @@ msgid ""
" svn://svn.example.com/repo/project\n"
msgstr ""
-#: ../svn/svn.c:1833
+#: ../svn/svn.c:1882
msgid "allow switching to a node with no common ancestor"
msgstr ""
-#: ../svn/svn.c:1835 ../svn/svn.c:1897
+#: ../svn/svn.c:1884 ../svn/svn.c:1948
msgid "handle unversioned obstructions as changes"
msgstr ""
-#: ../svn/svn.c:1836
+#: ../svn/svn.c:1885
msgid "deprecated; use 'svn relocate'"
msgstr ""
-#: ../svn/svn.c:1840
+#: ../svn/svn.c:1889
msgid ""
"Unlock working copy paths or URLs.\n"
"usage: unlock TARGET...\n"
"\n"
-" Use --force to break a lock held by another user or working copy.\n"
msgstr ""
-#: ../svn/svn.c:1845
+#: ../svn/svn.c:1892
+msgid " Use --force to break a lock held by another user or working copy.\n"
+msgstr ""
+
+#: ../svn/svn.c:1895
msgid "break locks"
msgstr ""
-#: ../svn/svn.c:1848
+#: ../svn/svn.c:1898
msgid ""
"Bring changes from the repository into the working copy.\n"
"usage: update [PATH...]\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1901
+msgid ""
" If no revision is given, bring working copy up-to-date with HEAD rev.\n"
" Else synchronize working copy to revision given by -r.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1904
+msgid ""
" For each updated item a line will be printed with characters reporting\n"
" the action taken. These characters have the following meaning:\n"
"\n"
-" A Added\n"
-" D Deleted\n"
-" U Updated\n"
-" C Conflict\n"
-" G Merged\n"
-" E Existed\n"
-" R Replaced\n"
-"\n"
+msgstr ""
+
+#: ../svn/svn.c:1915
+msgid ""
" Characters in the first column report about the item itself.\n"
" Characters in the second column report about properties of the item.\n"
" A 'B' in the third column signifies that the lock for the file has\n"
@@ -15436,6 +16402,10 @@ msgid ""
" the first and second columns indicate textual conflicts in files\n"
" and in property values, respectively.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1923
+msgid ""
" If --force is used, unversioned obstructing paths in the working\n"
" copy do not automatically cause a failure if the update attempts to\n"
" add the same path. If the obstructing path is the same type (file\n"
@@ -15448,297 +16418,448 @@ msgid ""
" are applied to the obstructing path. Obstructing paths are reported\n"
" in the first column with code 'E'.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1935
+msgid ""
" If the specified update target is missing from the working copy but its\n"
" immediate parent directory is present, checkout the target into its\n"
" parent directory at the specified depth. If --parents is specified,\n"
" create any missing parent directories of the target by checking them\n"
" out, too, at depth=empty.\n"
"\n"
+msgstr ""
+
+#: ../svn/svn.c:1941
+msgid ""
" Use the --set-depth option to set a new working copy depth on the\n"
" targets of this operation.\n"
msgstr ""
-#: ../svn/svn.c:1900
+#: ../svn/svn.c:1951
msgid ""
"Upgrade the metadata storage format for a working copy.\n"
"usage: upgrade [WCPATH...]\n"
"\n"
-" Local modifications are preserved.\n"
msgstr ""
-#: ../svn/svn.c:1907
+#: ../svn/svn.c:1954
+msgid " Local modifications are preserved.\n"
+msgstr ""
+
+#: ../svn/svn.c:1959
msgid ""
-"Put a local change aside, as if putting it on a shelf.\n"
-"usage: 1. x-shelve [--keep-local] NAME [PATH...]\n"
-" 2. x-shelve --delete NAME\n"
-" 3. x-shelve --list\n"
+"Show shelved changes as a diff.\n"
+"usage: x-shelf-diff SHELF [VERSION]\n"
"\n"
-" 1. Save the local change in the given PATHs to a patch file, and\n"
-" revert that change from the WC unless '--keep-local' is given.\n"
-" If a log message is given with '-m' or '-F', include it at the\n"
-" beginning of the patch file.\n"
+msgstr ""
+
+#: ../svn/svn.c:1962
+msgid ""
+" Show the changes in SHELF:VERSION (default: latest) as a diff.\n"
"\n"
-" 2. Delete the shelved change NAME.\n"
-" (A backup is kept, named with a '.bak' extension.)\n"
+msgstr ""
+
+#: ../svn/svn.c:1964
+msgid ""
+" See also: 'svn diff --cl=svn:shelf:SHELF' which supports most options of\n"
+" 'svn diff'.\n"
"\n"
-" 3. List shelved changes. Include the first line of any log message\n"
-" and some details about the contents of the change, unless '-q' is\n"
-" given.\n"
+msgstr ""
+
+#: ../svn/svn.c:1967 ../svn/svn.c:1980 ../svn/svn.c:1993 ../svn/svn.c:2005
+#: ../svn/svn.c:2017 ../svn/svn.c:2032 ../svn/svn.c:2066 ../svn/svn.c:2099
+msgid ""
+" The shelving feature is EXPERIMENTAL. This command is likely to change\n"
+" in the next release, and there is no promise of backward compatibility.\n"
+msgstr ""
+
+#: ../svn/svn.c:1974
+msgid ""
+"Delete a shelf.\n"
+"usage: x-shelf-drop SHELF [PATH ...]\n"
"\n"
-" The kinds of change you can shelve are those supported by 'svn diff'\n"
-" and 'svn patch'. The following are currently NOT supported:\n"
-" mergeinfo changes, copies, moves, mkdir, rmdir,\n"
-" 'binary' content, uncommittable states\n"
+msgstr ""
+
+#: ../svn/svn.c:1977
+msgid ""
+" Delete the shelves named SHELF from the working copies containing PATH\n"
+" (default PATH is '.')\n"
"\n"
-" To bring back a shelved change, use 'svn x-unshelve NAME'.\n"
+msgstr ""
+
+#: ../svn/svn.c:1986
+msgid ""
+"List shelves.\n"
+"usage: x-shelf-list [PATH ...]\n"
"\n"
-" Shelved changes are stored in <WC>/.svn/shelves/\n"
+msgstr ""
+
+#: ../svn/svn.c:1989
+msgid ""
+" List shelves for each working copy containing PATH (default is '.')\n"
+" Include the first line of any log message and some details about the\n"
+" contents of the shelf, unless '-q' is given.\n"
"\n"
-" The shelving feature is EXPERIMENTAL. This command is likely to change\n"
-" in the next release, and there is no promise of backward compatibility.\n"
msgstr ""
-#: ../svn/svn.c:1943
+#: ../svn/svn.c:2000
msgid ""
-"Bring a shelved change back to a local change in the WC.\n"
-"usage: 1. x-unshelve [--keep-shelved] [NAME]\n"
-" 2. x-unshelve --list\n"
+"List which shelf affects each path.\n"
+"usage: x-shelf-list-by-paths [PATH...]\n"
"\n"
-" 1. Apply the shelved change NAME to the working copy.\n"
-" Delete the patch unless the '--keep-shelved' option is given.\n"
-" (A backup is kept, named with a '.bak' extension.)\n"
-" NAME defaults to the most recent shelved change.\n"
+msgstr ""
+
+#: ../svn/svn.c:2003
+msgid ""
+" List which shelf most recently affects each path below the given PATHs.\n"
"\n"
-" 2. List shelved changes. Include the first line of any log message\n"
-" and some details about the contents of the change, unless '-q' is\n"
-" given.\n"
+msgstr ""
+
+#: ../svn/svn.c:2011
+msgid ""
+"Show the versions of a shelf.\n"
+"usage: x-shelf-log SHELF [PATH...]\n"
"\n"
-" Any conflict between the change being unshelved and a change\n"
-" already in the WC is handled the same way as by 'svn patch',\n"
-" creating a 'reject' file.\n"
+msgstr ""
+
+#: ../svn/svn.c:2014
+msgid ""
+" Show all versions of SHELF for each working copy containing PATH (the\n"
+" default PATH is '.').\n"
"\n"
-" The shelving feature is EXPERIMENTAL. This command is likely to change\n"
-" in the next release, and there is no promise of backward compatibility.\n"
msgstr ""
-#: ../svn/svn.c:1966
+#: ../svn/svn.c:2024
msgid ""
-"List shelved changes.\n"
-"usage: x-shelves\n"
+"Copy local changes onto a new version of a shelf.\n"
+"usage: x-shelf-save SHELF [PATH...]\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:2027
+msgid ""
+" Save local changes in the given PATHs as a new version of SHELF.\n"
+" The shelf's log message can be set with -m, -F, etc.\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:2030
+msgid ""
+" The same as 'svn shelve --keep-local'.\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:2042
+msgid ""
+"Move local changes onto a shelf.\n"
+"usage: x-shelve [--keep-local] SHELF [PATH...]\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:2045
+msgid ""
+" Save the local changes in the given PATHs to a new or existing SHELF.\n"
+" Revert those changes from the WC unless '--keep-local' is given.\n"
+" The shelf's log message can be set with -m, -F, etc.\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:2049
+msgid ""
+" 'svn shelve --keep-local' is the same as 'svn shelf-save'.\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:2051
+msgid ""
+" The kinds of change you can shelve are committable changes to files and\n"
+" properties, except the following kinds which are not yet supported:\n"
+" * copies and moves\n"
+" * mkdir and rmdir\n"
+" Uncommittable states such as conflicts, unversioned and missing cannot\n"
+" be shelved.\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:2058
+msgid ""
+" To bring back shelved changes, use 'svn unshelve SHELF'.\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:2060
+msgid ""
+" Shelves are currently stored under <WC>/.svn/experimental/shelves/ .\n"
+" (In Subversion 1.10, shelves were stored under <WC>/.svn/shelves/ as\n"
+" patch files. To recover a shelf created by 1.10, either use a 1.10\n"
+" client to find and unshelve it, or find the patch file and use any\n"
+" 1.10 or later 'svn patch' to apply it.)\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:2075
+msgid ""
+"Copy shelved changes back into the WC.\n"
+"usage: x-unshelve [--drop] [SHELF [VERSION]]\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:2078
+msgid ""
+" Apply the changes stored in SHELF to the working copy.\n"
+" SHELF defaults to the newest shelf.\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:2081
+msgid ""
+" Apply the newest version of the shelf, by default. If VERSION is\n"
+" specified, apply that version and discard all versions newer than that.\n"
+" In any case, retain the unshelved version and versions older than that\n"
+" (unless --drop is specified).\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:2086
+msgid ""
+" With --drop, delete the entire shelf (like 'svn shelf-drop') after\n"
+" successfully unshelving with no conflicts.\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:2089
+msgid ""
+" The working files involved should be in a clean, unmodified state\n"
+" before using this command. To roll back to an older version of the\n"
+" shelf, first ensure any current working changes are removed, such as\n"
+" by shelving or reverting them, and then unshelve the desired version.\n"
"\n"
-" The shelving feature is EXPERIMENTAL. This command is likely to change\n"
-" in the next release, and there is no promise of backward compatibility.\n"
msgstr ""
-#: ../svn/svn.c:2146 ../svnbench/svnbench.c:468 ../svnlook/svnlook.c:2556
+#: ../svn/svn.c:2094
+msgid ""
+" Unshelve normally refuses to apply any changes if any path involved is\n"
+" already modified (or has any other abnormal status) in the WC. With\n"
+" --force, it does not check and may error out and/or produce partial or\n"
+" unexpected results.\n"
+"\n"
+msgstr ""
+
+#: ../svn/svn.c:2180
+#, c-format
+msgid "'%s' is not a valid --x-viewspec value"
+msgstr ""
+
+#: ../svn/svn.c:2292 ../svnbench/svnbench.c:474 ../svnlook/svnlook.c:2590
msgid "Non-numeric limit argument given"
msgstr ""
-#: ../svn/svn.c:2151 ../svnbench/svnbench.c:473 ../svnlook/svnlook.c:2561
+#: ../svn/svn.c:2297 ../svnbench/svnbench.c:479 ../svnlook/svnlook.c:2595
msgid "Argument to --limit must be positive"
msgstr ""
-#: ../svn/svn.c:2171 ../svn/svn.c:2449
+#: ../svn/svn.c:2317 ../svn/svn.c:2592
msgid "Can't specify -c with --old"
msgstr ""
-#: ../svn/svn.c:2201 ../svnbench/svnbench.c:509
+#: ../svn/svn.c:2347 ../svnbench/svnbench.c:515
#, c-format
msgid "Negative number in range (%s) not supported with -c"
msgstr ""
-#: ../svn/svn.c:2213 ../svnbench/svnbench.c:521
+#: ../svn/svn.c:2359 ../svnbench/svnbench.c:527
#, c-format
msgid "Non-numeric change argument (%s) given to -c"
msgstr ""
-#: ../svn/svn.c:2220 ../svnbench/svnbench.c:528
+#: ../svn/svn.c:2366 ../svnbench/svnbench.c:534
msgid "There is no change 0"
msgstr ""
-#: ../svn/svn.c:2261 ../svnadmin/svnadmin.c:2865 ../svnbench/svnbench.c:570
-#: ../svnfsfs/svnfsfs.c:291 ../svnrdump/svnrdump.c:855
-#: ../svnsync/svnsync.c:2141
+#: ../svn/svn.c:2407 ../svnadmin/svnadmin.c:2932 ../svnbench/svnbench.c:576
+#: ../svnfsfs/svnfsfs.c:303 ../svnrdump/svnrdump.c:861
+#: ../svnsync/svnsync.c:2146
#, c-format
msgid "Syntax error in revision argument '%s'"
msgstr ""
-#: ../svn/svn.c:2327 ../svn/svn.c:2344 ../svnbench/svnbench.c:609
+#: ../svn/svn.c:2470 ../svn/svn.c:2487 ../svnbench/svnbench.c:615
#, c-format
msgid "Error converting depth from locale to UTF-8"
msgstr ""
-#: ../svn/svn.c:2334 ../svnbench/svnbench.c:616
+#: ../svn/svn.c:2477 ../svnbench/svnbench.c:622
#, c-format
msgid ""
"'%s' is not a valid depth; try 'empty', 'files', 'immediates', or 'infinity'"
msgstr ""
-#: ../svn/svn.c:2351
+#: ../svn/svn.c:2494
#, c-format
msgid ""
"'%s' is not a valid depth; try 'exclude', 'empty', 'files', 'immediates', or "
"'infinity'"
msgstr ""
-#: ../svn/svn.c:2486
+#: ../svn/svn.c:2629
#, c-format
msgid "Syntax error in native-eol argument '%s'"
msgstr ""
-#: ../svn/svn.c:2505
+#: ../svn/svn.c:2650
msgid "Changelist names must not be empty"
msgstr ""
-#: ../svn/svn.c:2539
+#: ../svn/svn.c:2683
#, c-format
msgid "'%s' is not a valid --accept value"
msgstr ""
-#: ../svn/svn.c:2547
+#: ../svn/svn.c:2691
#, c-format
msgid "'%s' is not a valid --show-revs value"
msgstr ""
-#: ../svn/svn.c:2563
+#: ../svn/svn.c:2707
#, c-format
msgid "Invalid strip count '%s'"
msgstr ""
-#: ../svn/svn.c:2569
+#: ../svn/svn.c:2713
msgid "Argument to --strip must be positive"
msgstr ""
-#: ../svn/svn.c:2660 ../svnmucc/svnmucc.c:666 ../svnrdump/svnrdump.c:934
-#: ../svnsync/svnsync.c:2199
+#: ../svn/svn.c:2809 ../svnmucc/svnmucc.c:666 ../svnrdump/svnrdump.c:940
+#: ../svnsync/svnsync.c:2204
msgid "--non-interactive and --force-interactive are mutually exclusive"
msgstr ""
-#: ../svn/svn.c:2713 ../svnbench/svnbench.c:750
-#: ../svndumpfilter/svndumpfilter.c:1425 ../svnlook/svnlook.c:2660
+#: ../svn/svn.c:2862 ../svnbench/svnbench.c:756
+#: ../svndumpfilter/svndumpfilter.c:1428 ../svnlook/svnlook.c:2694
#, c-format
msgid "Subcommand argument required\n"
msgstr ""
-#: ../svn/svn.c:2731 ../svnadmin/svnadmin.c:3091 ../svnbench/svnbench.c:768
-#: ../svndumpfilter/svndumpfilter.c:1442 ../svnfsfs/svnfsfs.c:367
-#: ../svnlook/svnlook.c:2677 ../svnrdump/svnrdump.c:978
+#: ../svn/svn.c:2880 ../svnadmin/svnadmin.c:3158 ../svnbench/svnbench.c:774
+#: ../svndumpfilter/svndumpfilter.c:1445 ../svnfsfs/svnfsfs.c:379
+#: ../svnlook/svnlook.c:2711 ../svnrdump/svnrdump.c:984
#, c-format
msgid "Unknown subcommand: '%s'\n"
msgstr ""
-#: ../svn/svn.c:2740
+#: ../svn/svn.c:2889
#, c-format
msgid ""
"Undo is done using either the 'svn revert' or the 'svn merge' command.\n"
msgstr ""
-#: ../svn/svn.c:2776
+#: ../svn/svn.c:2925
#, c-format
msgid ""
"Subcommand '%s' doesn't accept option '%s'\n"
"Type 'svn help %s' for usage.\n"
msgstr ""
-#: ../svn/svn.c:2791 ../svnbench/svnbench.c:816
+#: ../svn/svn.c:2940 ../svnbench/svnbench.c:822
msgid ""
"Multiple revision arguments encountered; can't specify -c twice, or both -c "
"and -r"
msgstr ""
-#: ../svn/svn.c:2802
+#: ../svn/svn.c:2951
msgid "--depth and --set-depth are mutually exclusive"
msgstr ""
-#: ../svn/svn.c:2811 ../svnbench/svnbench.c:827
+#: ../svn/svn.c:2960 ../svnbench/svnbench.c:833
msgid "--with-all-revprops and --with-no-revprops are mutually exclusive"
msgstr ""
-#: ../svn/svn.c:2820 ../svnbench/svnbench.c:836
+#: ../svn/svn.c:2969 ../svnbench/svnbench.c:842
msgid "--with-revprop and --with-no-revprops are mutually exclusive"
msgstr ""
-#: ../svn/svn.c:2850
+#: ../svn/svn.c:2999
msgid "--message (-m) and --file (-F) are mutually exclusive"
msgstr ""
-#: ../svn/svn.c:2863 ../svnbench/svnbench.c:849 ../svnmucc/svnmucc.c:678
-#: ../svnrdump/svnrdump.c:1037
+#: ../svn/svn.c:3012 ../svnbench/svnbench.c:855 ../svnmucc/svnmucc.c:678
+#: ../svnrdump/svnrdump.c:1043
msgid "--trust-server-cert-failures requires --non-interactive"
msgstr ""
-#: ../svn/svn.c:2871 ../svnbench/svnbench.c:857 ../svnmucc/svnmucc.c:686
-#: ../svnrdump/svnrdump.c:1044
+#: ../svn/svn.c:3020 ../svnbench/svnbench.c:863 ../svnmucc/svnmucc.c:686
+#: ../svnrdump/svnrdump.c:1050
msgid "--password-from-stdin requires --non-interactive"
msgstr ""
-#: ../svn/svn.c:2880
+#: ../svn/svn.c:3029
msgid "--diff-cmd and --internal-diff are mutually exclusive"
msgstr ""
-#: ../svn/svn.c:2922
+#: ../svn/svn.c:3071
msgid "--relocate and --depth are mutually exclusive"
msgstr ""
-#: ../svn/svn.c:2929
+#: ../svn/svn.c:3078
msgid "--relocate and --non-recursive (-N) are mutually exclusive"
msgstr ""
-#: ../svn/svn.c:3050
+#: ../svn/svn.c:3201
msgid "Log message file is a versioned file; use '--force-log' to override"
msgstr ""
-#: ../svn/svn.c:3057
+#: ../svn/svn.c:3208
msgid "Lock comment file is a versioned file; use '--force-log' to override"
msgstr ""
-#: ../svn/svn.c:3077
+#: ../svn/svn.c:3228
msgid ""
"The log message is a pathname (was -F intended?); use '--force-log' to "
"override"
msgstr ""
-#: ../svn/svn.c:3084
+#: ../svn/svn.c:3235
msgid ""
"The lock comment is a pathname (was -F intended?); use '--force-log' to "
"override"
msgstr ""
-#: ../svn/svn.c:3107
+#: ../svn/svn.c:3258
msgid "--auto-props and --no-auto-props are mutually exclusive"
msgstr ""
-#: ../svn/svn.c:3200 ../svn/svn.c:3207
+#: ../svn/svn.c:3351 ../svn/svn.c:3358
#, c-format
msgid "--accept=%s incompatible with --non-interactive"
msgstr ""
-#: ../svn/svn.c:3256
+#: ../svn/svn.c:3407
#, c-format
msgid "Try 'svn help %s' for more information"
msgstr ""
-#: ../svn/svn.c:3262 ../svnbench/svnbench.c:1000
+#: ../svn/svn.c:3413 ../svnbench/svnbench.c:1006
msgid "Please see the 'svn upgrade' command"
msgstr ""
-#: ../svn/svn.c:3268 ../svnmucc/svnmucc.c:971 ../svnrdump/svnrdump.c:1137
+#: ../svn/svn.c:3419 ../svnmucc/svnmucc.c:971 ../svnrdump/svnrdump.c:1143
msgid ""
"Authentication failed and interactive prompting is disabled; see the --force-"
"interactive option"
msgstr ""
-#: ../svn/svn.c:3273
+#: ../svn/svn.c:3424
msgid ""
"Reading file from standard input because of -F option; this can interfere "
"with interactive prompting"
msgstr ""
-#: ../svn/svn.c:3284 ../svnbench/svnbench.c:1008
+#: ../svn/svn.c:3435 ../svnbench/svnbench.c:1014
msgid "Run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)"
msgstr ""
-#: ../svn/svn.c:3291
+#: ../svn/svn.c:3442
msgid ""
"Another process is blocking the working copy database, or the underlying "
"filesystem does not support file locking; if the working copy is on a "
@@ -15746,7 +16867,7 @@ msgid ""
"server"
msgstr ""
-#: ../svn/svn.c:3304
+#: ../svn/svn.c:3455
msgid ""
"When using svn+ssh:// URLs, keep in mind that the --username and --password "
"options are ignored because authentication is performed by SSH, not "
@@ -15898,7 +17019,7 @@ msgid ""
msgstr ""
#: ../svnadmin/svnadmin.c:177 ../svnfsfs/svnfsfs.c:101
-#: ../svnrdump/svnrdump.c:106
+#: ../svnrdump/svnrdump.c:112
msgid "specify revision number ARG (or X:Y range)"
msgstr ""
@@ -16007,7 +17128,7 @@ msgid ""
" version ARG (\"1.5.5\", \"1.7\", etc.)"
msgstr ""
-#: ../svnadmin/svnadmin.c:264 ../svnadmin/svnadmin.c:382
+#: ../svnadmin/svnadmin.c:264 ../svnadmin/svnadmin.c:402
msgid "read repository paths from file ARG"
msgstr ""
@@ -16060,38 +17181,64 @@ msgstr ""
msgid ""
"usage: svnadmin crashtest REPOS_PATH\n"
"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:309
+msgid ""
"Open the repository at REPOS_PATH, then abort, thus simulating\n"
"a process that crashes while holding an open repository handle.\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:313
+#: ../svnadmin/svnadmin.c:315
msgid ""
"usage: svnadmin create REPOS_PATH\n"
"\n"
-"Create a new, empty repository at REPOS_PATH.\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:322
+#: ../svnadmin/svnadmin.c:317
+msgid "Create a new, empty repository at REPOS_PATH.\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:326
msgid ""
"usage: 1. svnadmin delrevprop REPOS_PATH -r REVISION NAME\n"
" 2. svnadmin delrevprop REPOS_PATH -t TXN NAME\n"
"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:329
+msgid ""
"1. Delete the property NAME on revision REVISION.\n"
"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:331 ../svnadmin/svnadmin.c:556
+msgid ""
"Use --use-pre-revprop-change-hook/--use-post-revprop-change-hook to\n"
"trigger the revision property-related hooks (for example, if you want\n"
"an email notification sent from your post-revprop-change hook).\n"
"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:335
+msgid ""
"NOTE: Revision properties are not versioned, so this command will\n"
"irreversibly destroy the previous value of the property.\n"
"\n"
-"2. Delete the property NAME on transaction TXN.\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:335
+#: ../svnadmin/svnadmin.c:338
+msgid "2. Delete the property NAME on transaction TXN.\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:344
msgid ""
"usage: svnadmin deltify [-r LOWER[:UPPER]] REPOS_PATH\n"
"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:346
+msgid ""
"Run over the requested revision range, performing predecessor delti-\n"
"fication on the paths changed in those revisions. Deltification in\n"
"essence compresses the repository by only storing the differences or\n"
@@ -16099,10 +17246,14 @@ msgid ""
"this will simply deltify the HEAD revision.\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:344
+#: ../svnadmin/svnadmin.c:355
msgid ""
"usage: svnadmin dump REPOS_PATH [-r LOWER[:UPPER] [--incremental]]\n"
"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:357
+msgid ""
"Dump the contents of filesystem to stdout in a 'dumpfile'\n"
"portable format, sending feedback to stderr. Dump revisions\n"
"LOWER rev through UPPER rev. If no revisions are given, dump all\n"
@@ -16113,19 +17264,27 @@ msgid ""
"case, the second and subsequent revisions, if any, describe only paths\n"
"changed in those revisions.)\n"
"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:367
+msgid ""
"Using --exclude or --include gives results equivalent to authz-based\n"
"path exclusions. In particular, when the source of a copy is\n"
"excluded, the copy is transformed into an add (unlike in 'svndumpfilter').\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:360 ../svnadmin/svnadmin.c:370
+#: ../svnadmin/svnadmin.c:373 ../svnadmin/svnadmin.c:385
msgid "write to file ARG instead of stdout"
msgstr ""
-#: ../svnadmin/svnadmin.c:363
+#: ../svnadmin/svnadmin.c:376
msgid ""
"usage: svnadmin dump-revprops REPOS_PATH [-r LOWER[:UPPER]]\n"
"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:378
+msgid ""
"Dump the revision properties of filesystem to stdout in a 'dumpfile'\n"
"portable format, sending feedback to stderr. Dump revisions\n"
"LOWER rev through UPPER rev. If no revisions are given, dump the\n"
@@ -16133,65 +17292,101 @@ msgid ""
"properties for that one revision.\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:373
+#: ../svnadmin/svnadmin.c:388
msgid ""
-"usage: 1. svnadmin freeze REPOS_PATH PROGRAM [ARG...]\n"
-" 2. svnadmin freeze -F FILE PROGRAM [ARG...]\n"
+"usage: 1. svnadmin freeze REPOS_PATH -- PROGRAM [ARG...]\n"
+" 2. svnadmin freeze -F FILE -- PROGRAM [ARG...]\n"
"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:391
+msgid ""
"1. Run PROGRAM passing ARGS while holding a write-lock on REPOS_PATH.\n"
" Allows safe use of third-party backup tools on a live repository.\n"
"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:394
+msgid ""
"2. Like 1 except all repositories listed in FILE are locked. The file\n"
" format is repository paths separated by newlines. Repositories are\n"
" locked in the same order as they are listed in the file.\n"
+"\n"
+"The '--' tells svnadmin to stop looking for svnadmin options and pass\n"
+"all later arguments to PROGRAM even if they begin with '-'.\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:385
+#: ../svnadmin/svnadmin.c:405
msgid ""
"usage: svnadmin help [SUBCOMMAND...]\n"
"\n"
-"Describe the usage of this program or its subcommands.\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:390
+#: ../svnadmin/svnadmin.c:407 ../svnfsfs/svnfsfs.c:119 ../svnlook/svnlook.c:273
+#: ../svnrdump/svnrdump.c:103 ../svnsync/svnsync.c:172
+msgid "Describe the usage of this program or its subcommands.\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:412
msgid ""
"usage: svnadmin hotcopy REPOS_PATH NEW_REPOS_PATH\n"
"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:414
+msgid ""
"Make a hot copy of a repository.\n"
"If --incremental is passed, data which already exists at the destination\n"
"is not copied again. Incremental mode is implemented for FSFS "
"repositories.\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:397
+#: ../svnadmin/svnadmin.c:421
msgid ""
"usage: svnadmin info REPOS_PATH\n"
"\n"
-"Print information about the repository at REPOS_PATH.\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:402
+#: ../svnadmin/svnadmin.c:423
+msgid "Print information about the repository at REPOS_PATH.\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:428
msgid ""
"usage: svnadmin list-dblogs REPOS_PATH\n"
"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:430
+msgid ""
"List all Berkeley DB log files.\n"
"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:432
+msgid ""
"WARNING: Modifying or deleting logfiles which are still in use\n"
"will cause your repository to be corrupted.\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:409
+#: ../svnadmin/svnadmin.c:438
msgid ""
"usage: svnadmin list-unused-dblogs REPOS_PATH\n"
"\n"
-"List unused Berkeley DB log files.\n"
-"\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:414
+#: ../svnadmin/svnadmin.c:440
+msgid "List unused Berkeley DB log files.\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:445
msgid ""
"usage: svnadmin load REPOS_PATH\n"
"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:447
+msgid ""
"Read a 'dumpfile'-formatted stream from stdin, committing\n"
"new revisions into the repository's filesystem. If the repository\n"
"was previously empty, its UUID will, by default, be changed to the\n"
@@ -16200,14 +17395,18 @@ msgid ""
"in the dump stream whose revision numbers match the specified range.\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:427 ../svnadmin/svnadmin.c:438
+#: ../svnadmin/svnadmin.c:460 ../svnadmin/svnadmin.c:473
msgid "read from file ARG instead of stdin"
msgstr ""
-#: ../svnadmin/svnadmin.c:430
+#: ../svnadmin/svnadmin.c:463
msgid ""
"usage: svnadmin load-revprops REPOS_PATH\n"
"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:465
+msgid ""
"Read a 'dumpfile'-formatted stream from stdin, setting the revision\n"
"properties in the repository's filesystem. Revisions not found in the\n"
"repository will cause an error. Progress feedback is sent to stdout.\n"
@@ -16215,69 +17414,99 @@ msgid ""
"in the dump stream whose revision numbers match the specified range.\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:441
+#: ../svnadmin/svnadmin.c:476
msgid ""
"usage: svnadmin lock REPOS_PATH PATH USERNAME COMMENT-FILE [TOKEN]\n"
"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:478
+msgid ""
"Lock PATH by USERNAME setting comments from COMMENT-FILE.\n"
"If provided, use TOKEN as lock token. Use --bypass-hooks to avoid\n"
"triggering the pre-lock and post-lock hook scripts.\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:448
+#: ../svnadmin/svnadmin.c:485
msgid ""
"usage: svnadmin lslocks REPOS_PATH [PATH-IN-REPOS]\n"
"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:487
+msgid ""
"Print descriptions of all locks on or under PATH-IN-REPOS (which,\n"
"if not provided, is the root of the repository).\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:454
+#: ../svnadmin/svnadmin.c:493
msgid ""
"usage: svnadmin lstxns REPOS_PATH\n"
"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:495
+msgid ""
"Print the names of uncommitted transactions. With -rN skip the output\n"
"of those that have a base revision more recent than rN. Transactions\n"
"with base revisions much older than HEAD are likely to have been\n"
"abandonded and are candidates to be removed.\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:463
+#: ../svnadmin/svnadmin.c:504
msgid ""
"usage: svnadmin pack REPOS_PATH\n"
"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:506
+msgid ""
"Possibly compact the repository into a more efficient storage model.\n"
"This may not apply to all repositories, in which case, exit.\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:469
+#: ../svnadmin/svnadmin.c:512
msgid ""
"usage: svnadmin recover REPOS_PATH\n"
"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:514
+msgid ""
"Run the recovery procedure on a repository. Do this if you've\n"
"been getting errors indicating that recovery ought to be run.\n"
"Berkeley DB recovery requires exclusive access and will\n"
"exit if the repository is in use by another process.\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:477
+#: ../svnadmin/svnadmin.c:522
msgid ""
"usage: svnadmin rmlocks REPOS_PATH LOCKED_PATH...\n"
"\n"
-"Unconditionally remove lock from each LOCKED_PATH.\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:482
+#: ../svnadmin/svnadmin.c:524
+msgid "Unconditionally remove lock from each LOCKED_PATH.\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:529
msgid ""
"usage: svnadmin rmtxns REPOS_PATH TXN_NAME...\n"
"\n"
-"Delete the named transaction(s).\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:487
+#: ../svnadmin/svnadmin.c:531
+msgid "Delete the named transaction(s).\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:536
msgid ""
"usage: svnadmin setlog REPOS_PATH -r REVISION FILE\n"
"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:538
+msgid ""
"Set the log-message on revision REVISION to the contents of FILE. Use\n"
"--bypass-hooks to avoid triggering the revision-property-related hooks\n"
"(for example, if you do not want an email notification sent\n"
@@ -16285,52 +17514,79 @@ msgid ""
"revision properties has not been enabled in the pre-revprop-change\n"
"hook).\n"
"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:545
+msgid ""
"NOTE: Revision properties are not versioned, so this command will\n"
"overwrite the previous log message.\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:499
+#: ../svnadmin/svnadmin.c:551
msgid ""
"usage: 1. svnadmin setrevprop REPOS_PATH -r REVISION NAME FILE\n"
" 2. svnadmin setrevprop REPOS_PATH -t TXN NAME FILE\n"
"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:554
+msgid ""
"1. Set the property NAME on revision REVISION to the contents of FILE.\n"
"\n"
-"Use --use-pre-revprop-change-hook/--use-post-revprop-change-hook to\n"
-"trigger the revision property-related hooks (for example, if you want\n"
-"an email notification sent from your post-revprop-change hook).\n"
-"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:560
+msgid ""
"NOTE: Revision properties are not versioned, so this command will\n"
"overwrite the previous value of the property.\n"
"\n"
-"2. Set the property NAME on transaction TXN to the contents of FILE.\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:512
+#: ../svnadmin/svnadmin.c:563
+msgid "2. Set the property NAME on transaction TXN to the contents of FILE.\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:569
msgid ""
"usage: svnadmin setuuid REPOS_PATH [NEW_UUID]\n"
"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:571
+msgid ""
"Reset the repository UUID for the repository located at REPOS_PATH. If\n"
"NEW_UUID is provided, use that as the new repository UUID; otherwise,\n"
"generate a brand new UUID for the repository.\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:519
+#: ../svnadmin/svnadmin.c:578
msgid ""
"usage: svnadmin unlock REPOS_PATH LOCKED_PATH USERNAME TOKEN\n"
"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:580
+msgid ""
"Unlock LOCKED_PATH (as USERNAME) after verifying that the token\n"
"associated with the lock matches TOKEN. Use --bypass-hooks to avoid\n"
"triggering the pre-unlock and post-unlock hook scripts.\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:526
+#: ../svnadmin/svnadmin.c:587
msgid ""
"usage: svnadmin upgrade REPOS_PATH\n"
"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:589
+msgid ""
"Upgrade the repository located at REPOS_PATH to the latest supported\n"
"schema version.\n"
"\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:592
+msgid ""
"This functionality is provided as a convenience for repository\n"
"administrators who wish to make use of new Subversion functionality\n"
"without having to undertake a potentially costly full repository dump\n"
@@ -16340,165 +17596,164 @@ msgid ""
"repository state as a dump and subsequent load would.\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:539
+#: ../svnadmin/svnadmin.c:603
msgid ""
"usage: svnadmin verify REPOS_PATH\n"
"\n"
-"Verify the data stored in the repository.\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:640
+#: ../svnadmin/svnadmin.c:605
+msgid "Verify the data stored in the repository.\n"
+msgstr ""
+
+#: ../svnadmin/svnadmin.c:706
msgid "Invalid revision specifier"
msgstr ""
-#: ../svnadmin/svnadmin.c:644
+#: ../svnadmin/svnadmin.c:710
#, c-format
msgid "Revisions must not be greater than the youngest revision (%ld)"
msgstr ""
-#: ../svnadmin/svnadmin.c:671
+#: ../svnadmin/svnadmin.c:737
#, c-format
msgid "Path '%s' is not a local path"
msgstr ""
-#: ../svnadmin/svnadmin.c:700
+#: ../svnadmin/svnadmin.c:766
msgid "Not enough arguments"
msgstr ""
-#: ../svnadmin/svnadmin.c:703
-msgid "Too many arguments"
-msgstr ""
-
-#: ../svnadmin/svnadmin.c:743
+#: ../svnadmin/svnadmin.c:809
#, c-format
msgid ""
"Successfully opened repository '%s'.\n"
"Will now crash to simulate a crashing server process.\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:782
+#: ../svnadmin/svnadmin.c:848
#, c-format
msgid ""
"%swarning: The \"%s\" repository back-end is deprecated, consider using \"%s"
"\" instead.\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:823
+#: ../svnadmin/svnadmin.c:889
msgid "Repositories compatible with 1.0.x must use --fs-type=bdb"
msgstr ""
-#: ../svnadmin/svnadmin.c:831
+#: ../svnadmin/svnadmin.c:897
#, c-format
msgid "Repositories compatible with 1.8.x or earlier cannot use --fs-type=%s"
msgstr ""
-#: ../svnadmin/svnadmin.c:876 ../svnadmin/svnadmin.c:1276
-#: ../svnadmin/svnadmin.c:1606
+#: ../svnadmin/svnadmin.c:942 ../svnadmin/svnadmin.c:1342
+#: ../svnadmin/svnadmin.c:1672
msgid "First revision cannot be higher than second"
msgstr ""
-#: ../svnadmin/svnadmin.c:885
+#: ../svnadmin/svnadmin.c:951
#, c-format
msgid "Deltifying revision %ld..."
msgstr ""
-#: ../svnadmin/svnadmin.c:889 ../svnadmin/svnadmin.c:1020
-#: ../svnadmin/svnadmin.c:1035
+#: ../svnadmin/svnadmin.c:955 ../svnadmin/svnadmin.c:1086
+#: ../svnadmin/svnadmin.c:1101
#, c-format
msgid "done.\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:938
+#: ../svnadmin/svnadmin.c:1004
msgid "* Error verifying repository metadata.\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:944
+#: ../svnadmin/svnadmin.c:1010
#, c-format
msgid "* Error verifying revision %ld.\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:1001
+#: ../svnadmin/svnadmin.c:1067
msgid "* Verifying repository metadata ...\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:1004
+#: ../svnadmin/svnadmin.c:1070
#, c-format
msgid "* Verifying metadata at revision %ld ...\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:1014
+#: ../svnadmin/svnadmin.c:1080
#, c-format
msgid "Packing revisions in shard %s..."
msgstr ""
-#: ../svnadmin/svnadmin.c:1029
+#: ../svnadmin/svnadmin.c:1095
#, c-format
msgid "Packing revprops in shard %s..."
msgstr ""
-#: ../svnadmin/svnadmin.c:1104
+#: ../svnadmin/svnadmin.c:1170
#, c-format
msgid "<<< Skipped original revision %ld\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:1120
+#: ../svnadmin/svnadmin.c:1186
msgid ""
"Repository lock acquired.\n"
"Please wait; recovering the repository may take some time...\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:1127
+#: ../svnadmin/svnadmin.c:1193
msgid ""
"Repository lock acquired.\n"
"Please wait; upgrading the repository may take some time...\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:1138
+#: ../svnadmin/svnadmin.c:1204
#, c-format
msgid "Packed revision properties in shard %s\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:1149
+#: ../svnadmin/svnadmin.c:1215
#, c-format
msgid "Removed non-packed revision properties in shard %s\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:1157
+#: ../svnadmin/svnadmin.c:1223
#, c-format
msgid "Bumped repository format to %ld\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:1165
+#: ../svnadmin/svnadmin.c:1231
#, c-format
msgid "* Copied revision %ld.\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:1171
+#: ../svnadmin/svnadmin.c:1237
#, c-format
msgid "* Copied revisions from %ld to %ld.\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:1182
+#: ../svnadmin/svnadmin.c:1248
#, c-format
msgid ""
"svnadmin: Warning - this repository is not sharded. Packing has no effect.\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:1189
+#: ../svnadmin/svnadmin.c:1255
#, c-format
msgid "Properties set on revision %ld.\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:1384
+#: ../svnadmin/svnadmin.c:1450
#, c-format
msgid "'--exclude' and '--include' options cannot be used simultaneously"
msgstr ""
-#: ../svnadmin/svnadmin.c:1488
+#: ../svnadmin/svnadmin.c:1554
msgid "No program provided"
msgstr ""
-#: ../svnadmin/svnadmin.c:1528
+#: ../svnadmin/svnadmin.c:1594
msgid ""
"general usage: svnadmin SUBCOMMAND REPOS_PATH [ARGS & OPTIONS ...]\n"
"Subversion repository administration tool.\n"
@@ -16508,197 +17763,197 @@ msgid ""
"Available subcommands:\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:1536 ../svnlook/svnlook.c:2218
+#: ../svnadmin/svnadmin.c:1602 ../svnlook/svnlook.c:2252
#: ../svnserve/svnserve.c:470
msgid ""
"The following repository back-end (FS) modules are available:\n"
"\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:1565
+#: ../svnadmin/svnadmin.c:1631
#, c-format
msgid "Invalid revision number (%ld) specified"
msgstr ""
-#: ../svnadmin/svnadmin.c:1575
+#: ../svnadmin/svnadmin.c:1641
msgid "Non-numeric revision specified"
msgstr ""
-#: ../svnadmin/svnadmin.c:1657 ../svnadmin/svnadmin.c:1715
+#: ../svnadmin/svnadmin.c:1723 ../svnadmin/svnadmin.c:1781
msgid ""
"A property with invalid line ending found in dumpstream; consider using --"
"normalize-props while loading."
msgstr ""
-#: ../svnadmin/svnadmin.c:1664 ../svnadmin/svnadmin.c:1722
+#: ../svnadmin/svnadmin.c:1730 ../svnadmin/svnadmin.c:1788
msgid ""
"Invalid property value found in dumpstream; consider repairing the source or "
"using --bypass-prop-validation while loading."
msgstr ""
-#: ../svnadmin/svnadmin.c:1814 ../svnadmin/svnadmin.c:2713
+#: ../svnadmin/svnadmin.c:1880 ../svnadmin/svnadmin.c:2780
msgid ""
"Failed to get exclusive repository access; perhaps another process\n"
"such as httpd, svnserve or svn has it open?"
msgstr ""
-#: ../svnadmin/svnadmin.c:1819 ../svnadmin/svnadmin.c:2718
+#: ../svnadmin/svnadmin.c:1885 ../svnadmin/svnadmin.c:2785
#, c-format
msgid "Waiting on repository lock; perhaps another process has it open?\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:1827
+#: ../svnadmin/svnadmin.c:1893
#, c-format
msgid ""
"\n"
"Recovery completed.\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:1834
+#: ../svnadmin/svnadmin.c:1900
#, c-format
msgid "The latest repos revision is %ld.\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:1946
+#: ../svnadmin/svnadmin.c:2012
#, c-format
msgid "Transaction '%s' removed.\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:2028 ../svnadmin/svnadmin.c:2142
-#: ../svnadmin/svnadmin.c:2763
+#: ../svnadmin/svnadmin.c:2094 ../svnadmin/svnadmin.c:2208
+#: ../svnadmin/svnadmin.c:2830
#, c-format
msgid "--revision (-r) and --transaction (-t) are mutually exclusive"
msgstr ""
-#: ../svnadmin/svnadmin.c:2034 ../svnadmin/svnadmin.c:2769
+#: ../svnadmin/svnadmin.c:2100 ../svnadmin/svnadmin.c:2836
#, c-format
msgid "Calling hooks is incompatible with --transaction (-t)"
msgstr ""
-#: ../svnadmin/svnadmin.c:2039 ../svnadmin/svnadmin.c:2084
-#: ../svnadmin/svnadmin.c:2774
+#: ../svnadmin/svnadmin.c:2105 ../svnadmin/svnadmin.c:2150
+#: ../svnadmin/svnadmin.c:2841
#, c-format
msgid "Missing revision"
msgstr ""
-#: ../svnadmin/svnadmin.c:2042 ../svnadmin/svnadmin.c:2087
-#: ../svnadmin/svnadmin.c:2777
+#: ../svnadmin/svnadmin.c:2108 ../svnadmin/svnadmin.c:2153
+#: ../svnadmin/svnadmin.c:2844
#, c-format
msgid "Only one revision allowed"
msgstr ""
-#: ../svnadmin/svnadmin.c:2205
+#: ../svnadmin/svnadmin.c:2272
msgid ""
"\n"
"-----Summary of corrupt revisions-----\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:2257
+#: ../svnadmin/svnadmin.c:2324
#, c-format
msgid "Failed to verify repository '%s'"
msgstr ""
-#: ../svnadmin/svnadmin.c:2309
+#: ../svnadmin/svnadmin.c:2376
#, c-format
msgid "UUID: %s\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:2312
+#: ../svnadmin/svnadmin.c:2379
#, c-format
msgid "Revisions: %ld\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:2318
+#: ../svnadmin/svnadmin.c:2385
#, c-format
msgid "Repository Format: %d\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:2332
+#: ../svnadmin/svnadmin.c:2399
#, c-format
msgid "Compatible With Version: %d.%d.0\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:2351
+#: ../svnadmin/svnadmin.c:2418
#, c-format
msgid "Repository Capability: %s\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:2360
+#: ../svnadmin/svnadmin.c:2427
#, c-format
msgid "Filesystem Type: %s\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:2362
+#: ../svnadmin/svnadmin.c:2429
#, c-format
msgid "Filesystem Format: %d\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:2369
+#: ../svnadmin/svnadmin.c:2436
#, c-format
msgid "FSFS Sharded: yes\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:2371
+#: ../svnadmin/svnadmin.c:2438
#, c-format
msgid "FSFS Sharded: no\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:2374
+#: ../svnadmin/svnadmin.c:2441
#, c-format
msgid "FSFS Shard Size: %d\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:2383
+#: ../svnadmin/svnadmin.c:2450
#, c-format
msgid "FSFS Shards Packed: %ld/%ld\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:2388
+#: ../svnadmin/svnadmin.c:2455
#, c-format
msgid "FSFS Logical Addressing: yes\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:2390
+#: ../svnadmin/svnadmin.c:2457
#, c-format
msgid "FSFS Logical Addressing: no\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:2400
+#: ../svnadmin/svnadmin.c:2467
#, c-format
msgid "FSX Shard Size: %d\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:2402
+#: ../svnadmin/svnadmin.c:2469
#, c-format
msgid "FSX Shards Packed: %ld/%ld\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:2413
+#: ../svnadmin/svnadmin.c:2480
#, c-format
msgid "Configuration File: %s\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:2541 ../svnlook/svnlook.c:2281
+#: ../svnadmin/svnadmin.c:2608 ../svnlook/svnlook.c:2315
#, c-format
msgid "UUID Token: %s\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:2542 ../svnlook/svnlook.c:2282
+#: ../svnadmin/svnadmin.c:2609 ../svnlook/svnlook.c:2316
#, c-format
msgid "Owner: %s\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:2543 ../svnlook/svnlook.c:2283
+#: ../svnadmin/svnadmin.c:2610 ../svnlook/svnlook.c:2317
#, c-format
msgid "Created: %s\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:2544 ../svnlook/svnlook.c:2284
+#: ../svnadmin/svnadmin.c:2611 ../svnlook/svnlook.c:2318
#, c-format
msgid "Expires: %s\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:2546
+#: ../svnadmin/svnadmin.c:2613
#, c-format
msgid ""
"Comment (%i line):\n"
@@ -16711,82 +17966,82 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: ../svnadmin/svnadmin.c:2594
+#: ../svnadmin/svnadmin.c:2661
msgid "No paths to unlock provided"
msgstr ""
-#: ../svnadmin/svnadmin.c:2612
+#: ../svnadmin/svnadmin.c:2679
#, c-format
msgid "Path '%s' isn't locked.\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:2626
+#: ../svnadmin/svnadmin.c:2693
#, c-format
msgid "Removed lock on '%s'.\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:2680
+#: ../svnadmin/svnadmin.c:2747
#, c-format
msgid "'%s' unlocked by user '%s'.\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:2728
+#: ../svnadmin/svnadmin.c:2795
msgid ""
"Upgrade of this repository's underlying versioned filesystem is not "
"supported; consider dumping and loading the data elsewhere"
msgstr ""
-#: ../svnadmin/svnadmin.c:2735
+#: ../svnadmin/svnadmin.c:2802
msgid ""
"Upgrade of this repository is not supported; consider dumping and loading "
"the data elsewhere"
msgstr ""
-#: ../svnadmin/svnadmin.c:2741
+#: ../svnadmin/svnadmin.c:2808
#, c-format
msgid ""
"\n"
"Upgrade completed.\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:2855 ../svnfsfs/svnfsfs.c:281
-#: ../svnrdump/svnrdump.c:843
+#: ../svnadmin/svnadmin.c:2922 ../svnfsfs/svnfsfs.c:293
+#: ../svnrdump/svnrdump.c:849
msgid ""
"Multiple revision arguments encountered; try '-r N:M' instead of '-r N -r M'"
msgstr ""
-#: ../svnadmin/svnadmin.c:2938
+#: ../svnadmin/svnadmin.c:3005
#, c-format
msgid "Cannot create pre-1.0-compatible repositories"
msgstr ""
-#: ../svnadmin/svnadmin.c:2950
+#: ../svnadmin/svnadmin.c:3017
#, c-format
msgid "Cannot guarantee compatibility beyond the current running version (%s)"
msgstr ""
-#: ../svnadmin/svnadmin.c:3074 ../svnfsfs/svnfsfs.c:350
+#: ../svnadmin/svnadmin.c:3141 ../svnfsfs/svnfsfs.c:362
#, c-format
msgid "subcommand argument required\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:3111 ../svnfsfs/svnfsfs.c:385
+#: ../svnadmin/svnadmin.c:3178 ../svnfsfs/svnfsfs.c:397
msgid "Repository argument required"
msgstr ""
-#: ../svnadmin/svnadmin.c:3119 ../svnfsfs/svnfsfs.c:393
+#: ../svnadmin/svnadmin.c:3186 ../svnfsfs/svnfsfs.c:405
#, c-format
msgid "'%s' is a URL when it should be a local path"
msgstr ""
-#: ../svnadmin/svnadmin.c:3149
+#: ../svnadmin/svnadmin.c:3216
#, c-format
msgid ""
"Subcommand '%s' doesn't accept option '%s'\n"
"Type 'svnadmin help %s' for usage.\n"
msgstr ""
-#: ../svnadmin/svnadmin.c:3180
+#: ../svnadmin/svnadmin.c:3247
msgid "Try 'svnadmin help' for more info"
msgstr ""
@@ -16859,7 +18114,7 @@ msgid ""
"%15s changes\n"
msgstr ""
-#: ../svnbench/svnbench.c:115 ../svnrdump/svnrdump.c:118
+#: ../svnbench/svnbench.c:115 ../svnrdump/svnrdump.c:124
msgid "specify a password ARG"
msgstr ""
@@ -16875,121 +18130,116 @@ msgstr ""
msgid "use ARG as search pattern (glob syntax)"
msgstr ""
-#: ../svnbench/svnbench.c:218
+#: ../svnbench/svnbench.c:219
msgid ""
"Fetch all versions of a file in a batch.\n"
"usage: null-blame [-rM:N] TARGET[@REV]...\n"
"\n"
-" With no revision range (same as -r0:REV), or with '-r M:N' where M < N,\n"
-" annotate each line that is present in revision N of the file, with\n"
-" the last revision at or before rN that changed or added the line,\n"
-" looking back no further than rM.\n"
-"\n"
-" With a reverse revision range '-r M:N' where M > N,\n"
-" annotate each line that is present in revision N of the file, with\n"
-" the next revision after rN that changed or deleted the line,\n"
-" looking forward no further than rM.\n"
-"\n"
-" If specified, REV determines in which revision the target is first\n"
-" looked up.\n"
-"\n"
-" Write the annotated result to standard output.\n"
msgstr ""
-#: ../svnbench/svnbench.c:238
+#: ../svnbench/svnbench.c:240
msgid ""
"Create an unversioned copy of a tree.\n"
"usage: null-export [-r REV] URL[@PEGREV]\n"
"\n"
+msgstr ""
+
+#: ../svnbench/svnbench.c:243
+msgid ""
" Exports a clean directory tree from the repository specified by\n"
" URL, at revision REV if it is given, otherwise at HEAD.\n"
"\n"
-" If specified, PEGREV determines in which revision the target is first\n"
-" looked up.\n"
msgstr ""
-#: ../svnbench/svnbench.c:249
+#: ../svnbench/svnbench.c:252
msgid ""
"List directory entries in the repository.\n"
"usage: null-list [TARGET[@REV]...]\n"
"\n"
-" List each TARGET file and the contents of each TARGET directory as\n"
-" they exist in the repository. If TARGET is a working copy path, the\n"
-" corresponding repository URL will be used. If specified, REV determines\n"
-" in which revision the target is first looked up.\n"
-"\n"
-" The default TARGET is '.', meaning the repository URL of the current\n"
-" working directory.\n"
-"\n"
+msgstr ""
+
+#: ../svnbench/svnbench.c:263
+msgid ""
" With --verbose, the following fields will be fetched for each item:\n"
"\n"
-" Revision number of the last commit\n"
-" Author of the last commit\n"
-" If locked, the letter 'O'. (Use 'svn info URL' to see details)\n"
-" Size (in bytes)\n"
-" Date and time of the last commit\n"
msgstr ""
-#: ../svnbench/svnbench.c:270
+#: ../svnbench/svnbench.c:274
msgid ""
"Fetch the log messages for a set of revision(s) and/or path(s).\n"
"usage: 1. null-log [PATH][@REV]\n"
" 2. null-log URL[@REV] [PATH...]\n"
"\n"
+msgstr ""
+
+#: ../svnbench/svnbench.c:278
+msgid ""
" 1. Fetch the log messages for the URL corresponding to PATH\n"
" (default: '.'). If specified, REV is the revision in which the\n"
" URL is first looked up, and the default revision range is REV:1.\n"
" If REV is not specified, the default revision range is BASE:1,\n"
" since the URL might not exist in the HEAD revision.\n"
"\n"
+msgstr ""
+
+#: ../svnbench/svnbench.c:284
+msgid ""
" 2. Fetch the log messages for the PATHs (default: '.') under URL.\n"
" If specified, REV is the revision in which the URL is first\n"
" looked up, and the default revision range is REV:1; otherwise,\n"
" the URL is looked up in HEAD, and the default revision range is\n"
" HEAD:1.\n"
"\n"
-" Multiple '-c' or '-r' options may be specified (but not a\n"
-" combination of '-c' and '-r' options), and mixing of forward and\n"
-" reverse ranges is allowed.\n"
-"\n"
+msgstr ""
+
+#: ../svnbench/svnbench.c:294
+msgid ""
" With -v, also print all affected paths with each log message.\n"
" With -q, don't print the log message body itself (note that this is\n"
" compatible with -v).\n"
"\n"
+msgstr ""
+
+#: ../svnbench/svnbench.c:298
+msgid ""
" Each log message is printed just once, even if more than one of the\n"
" affected paths for that revision were explicitly requested. Logs\n"
" follow copy history by default. Use --stop-on-copy to disable this\n"
" behavior, which can be useful for determining branchpoints.\n"
msgstr ""
-#: ../svnbench/svnbench.c:304
+#: ../svnbench/svnbench.c:309
msgid ""
"Display information about a local or remote item.\n"
"usage: null-info [TARGET[@REV]...]\n"
"\n"
+msgstr ""
+
+#: ../svnbench/svnbench.c:312
+msgid ""
" Print information about each TARGET (default: '.').\n"
" TARGET may be either a working-copy path or URL. If specified, REV\n"
" determines in which revision the target is first looked up.\n"
msgstr ""
-#: ../svnbench/svnbench.c:802
+#: ../svnbench/svnbench.c:808
#, c-format
msgid ""
"Subcommand '%s' doesn't accept option '%s'\n"
"Type 'svnbench help %s' for usage.\n"
msgstr ""
-#: ../svnbench/svnbench.c:994
+#: ../svnbench/svnbench.c:1000
#, c-format
msgid "Try 'svnbench help %s' for more information"
msgstr ""
-#: ../svnbench/svnbench.c:1019
+#: ../svnbench/svnbench.c:1025
#, c-format
msgid "%15.6f seconds taken\n"
msgstr ""
-#: ../svnbench/svnbench.c:1026
+#: ../svnbench/svnbench.c:1032
#, c-format
msgid "%15s bytes transferred over network\n"
msgstr ""
@@ -17093,19 +18343,19 @@ msgid ""
"usage: svndumpfilter exclude PATH_PREFIX...\n"
msgstr ""
-#: ../svndumpfilter/svndumpfilter.c:992
+#: ../svndumpfilter/svndumpfilter.c:993
msgid ""
"Filter out nodes without given prefixes from dumpstream.\n"
"usage: svndumpfilter include PATH_PREFIX...\n"
msgstr ""
-#: ../svndumpfilter/svndumpfilter.c:1001
+#: ../svndumpfilter/svndumpfilter.c:1003
msgid ""
"Describe the usage of this program or its subcommands.\n"
"usage: svndumpfilter help [SUBCOMMAND...]\n"
msgstr ""
-#: ../svndumpfilter/svndumpfilter.c:1075
+#: ../svndumpfilter/svndumpfilter.c:1078
msgid ""
"general usage: svndumpfilter SUBCOMMAND [ARGS & OPTIONS ...]\n"
"Subversion repository dump filtering tool.\n"
@@ -17115,47 +18365,47 @@ msgid ""
"Available subcommands:\n"
msgstr ""
-#: ../svndumpfilter/svndumpfilter.c:1134
+#: ../svndumpfilter/svndumpfilter.c:1137
#, c-format
msgid "Excluding (and dropping empty revisions for) prefix patterns:\n"
msgstr ""
-#: ../svndumpfilter/svndumpfilter.c:1136
+#: ../svndumpfilter/svndumpfilter.c:1139
#, c-format
msgid "Excluding prefix patterns:\n"
msgstr ""
-#: ../svndumpfilter/svndumpfilter.c:1139
+#: ../svndumpfilter/svndumpfilter.c:1142
#, c-format
msgid "Including (and dropping empty revisions for) prefix patterns:\n"
msgstr ""
-#: ../svndumpfilter/svndumpfilter.c:1141
+#: ../svndumpfilter/svndumpfilter.c:1144
#, c-format
msgid "Including prefix patterns:\n"
msgstr ""
-#: ../svndumpfilter/svndumpfilter.c:1149
+#: ../svndumpfilter/svndumpfilter.c:1152
#, c-format
msgid "Excluding (and dropping empty revisions for) prefixes:\n"
msgstr ""
-#: ../svndumpfilter/svndumpfilter.c:1151
+#: ../svndumpfilter/svndumpfilter.c:1154
#, c-format
msgid "Excluding prefixes:\n"
msgstr ""
-#: ../svndumpfilter/svndumpfilter.c:1154
+#: ../svndumpfilter/svndumpfilter.c:1157
#, c-format
msgid "Including (and dropping empty revisions for) prefixes:\n"
msgstr ""
-#: ../svndumpfilter/svndumpfilter.c:1156
+#: ../svndumpfilter/svndumpfilter.c:1159
#, c-format
msgid "Including prefixes:\n"
msgstr ""
-#: ../svndumpfilter/svndumpfilter.c:1184
+#: ../svndumpfilter/svndumpfilter.c:1187
#, c-format
msgid ""
"Dropped %d revision.\n"
@@ -17166,41 +18416,41 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: ../svndumpfilter/svndumpfilter.c:1192
+#: ../svndumpfilter/svndumpfilter.c:1195
msgid "Revisions renumbered as follows:\n"
msgstr ""
-#: ../svndumpfilter/svndumpfilter.c:1219
+#: ../svndumpfilter/svndumpfilter.c:1222
#, c-format
msgid " %ld => (dropped)\n"
msgstr ""
-#: ../svndumpfilter/svndumpfilter.c:1234
+#: ../svndumpfilter/svndumpfilter.c:1237
#, c-format
msgid "Dropped %d node:\n"
msgid_plural "Dropped %d nodes:\n"
msgstr[0] ""
msgstr[1] ""
-#: ../svndumpfilter/svndumpfilter.c:1393
+#: ../svndumpfilter/svndumpfilter.c:1396
msgid "--drop-empty-revs cannot be used with --drop-all-empty-revs"
msgstr ""
-#: ../svndumpfilter/svndumpfilter.c:1504
+#: ../svndumpfilter/svndumpfilter.c:1507
#, c-format
msgid ""
"\n"
"Error: no prefixes supplied.\n"
msgstr ""
-#: ../svndumpfilter/svndumpfilter.c:1535
+#: ../svndumpfilter/svndumpfilter.c:1538
#, c-format
msgid ""
"Subcommand '%s' doesn't accept option '%s'\n"
"Type 'svndumpfilter help %s' for usage.\n"
msgstr ""
-#: ../svndumpfilter/svndumpfilter.c:1553
+#: ../svndumpfilter/svndumpfilter.c:1556
msgid "Try 'svndumpfilter help' for more info"
msgstr ""
@@ -17295,13 +18545,16 @@ msgstr ""
msgid ""
"usage: svnfsfs help [SUBCOMMAND...]\n"
"\n"
-"Describe the usage of this program or its subcommands.\n"
msgstr ""
-#: ../svnfsfs/svnfsfs.c:122
+#: ../svnfsfs/svnfsfs.c:124
msgid ""
"usage: svnfsfs dump-index REPOS_PATH -r REV\n"
"\n"
+msgstr ""
+
+#: ../svnfsfs/svnfsfs.c:126
+msgid ""
"Dump the index contents for the revision / pack file containing revision "
"REV\n"
"to console. This is only available for FSFS format 7 (SVN 1.9+) "
@@ -17309,10 +18562,18 @@ msgid ""
"The table produced contains a header in the first line followed by one line\n"
"per index entry, ordered by location in the revision / pack file. Columns:\n"
"\n"
+msgstr ""
+
+#: ../svnfsfs/svnfsfs.c:131
+msgid ""
" * Byte offset (hex) at which the item starts\n"
" * Length (hex) of the item in bytes\n"
" * Item type (string) is one of the following:\n"
"\n"
+msgstr ""
+
+#: ../svnfsfs/svnfsfs.c:135
+msgid ""
" none ... Unused section. File contents shall be NULs.\n"
" frep ... File representation.\n"
" drep ... Directory representation.\n"
@@ -17323,21 +18584,33 @@ msgid ""
" rep .... Representation of unknown type. Should not be used.\n"
" ??? .... Invalid. Index data is corrupt.\n"
"\n"
+msgstr ""
+
+#: ../svnfsfs/svnfsfs.c:145
+msgid ""
" The distinction between frep, drep, fprop and dprop is a mere "
"internal\n"
" classification used for various optimizations and does not affect "
"the\n"
" operational correctness.\n"
"\n"
+msgstr ""
+
+#: ../svnfsfs/svnfsfs.c:149
+msgid ""
" * Revision that the item belongs to (decimal)\n"
" * Item number (decimal) within that revision\n"
" * Modified FNV1a checksum (8 hex digits)\n"
msgstr ""
-#: ../svnfsfs/svnfsfs.c:148
+#: ../svnfsfs/svnfsfs.c:156
msgid ""
"usage: svnfsfs load-index REPOS_PATH\n"
"\n"
+msgstr ""
+
+#: ../svnfsfs/svnfsfs.c:158
+msgid ""
"Read index contents from console. The format is the same as produced by "
"the\n"
"dump-index command, except that checksum as well as header are optional and "
@@ -17348,19 +18621,22 @@ msgid ""
"required.\n"
msgstr ""
-#: ../svnfsfs/svnfsfs.c:156
+#: ../svnfsfs/svnfsfs.c:166
msgid ""
"usage: svnfsfs stats REPOS_PATH\n"
"\n"
-"Write object size statistics to console.\n"
msgstr ""
-#: ../svnfsfs/svnfsfs.c:176
+#: ../svnfsfs/svnfsfs.c:168
+msgid "Write object size statistics to console.\n"
+msgstr ""
+
+#: ../svnfsfs/svnfsfs.c:188
#, c-format
msgid "%s repositories are not supported"
msgstr ""
-#: ../svnfsfs/svnfsfs.c:192
+#: ../svnfsfs/svnfsfs.c:204
msgid ""
"general usage: svnfsfs SUBCOMMAND REPOS_PATH [ARGS & OPTIONS ...]\n"
"Subversion FSFS repository manipulation tool.\n"
@@ -17370,14 +18646,14 @@ msgid ""
"Available subcommands:\n"
msgstr ""
-#: ../svnfsfs/svnfsfs.c:423
+#: ../svnfsfs/svnfsfs.c:435
#, c-format
msgid ""
"Subcommand '%s' doesn't accept option '%s'\n"
"Type 'svnfsfs help %s' for usage.\n"
msgstr ""
-#: ../svnfsfs/svnfsfs.c:455
+#: ../svnfsfs/svnfsfs.c:467
msgid "Try 'svnfsfs help' for more info"
msgstr ""
@@ -17439,7 +18715,7 @@ msgid ""
" -p, --show-c-function: Show C function name"
msgstr ""
-#: ../svnlook/svnlook.c:206 ../svnrdump/svnrdump.c:108
+#: ../svnlook/svnlook.c:206 ../svnrdump/svnrdump.c:114
#: ../svnserve/svnserve.c:421 ../svnversion/svnversion.c:146
msgid "no progress (only errors) to stderr"
msgstr ""
@@ -17448,238 +18724,291 @@ msgstr ""
msgid ""
"usage: svnlook author REPOS_PATH\n"
"\n"
-"Print the author.\n"
msgstr ""
-#: ../svnlook/svnlook.c:223
+#: ../svnlook/svnlook.c:220
+msgid "Print the author.\n"
+msgstr ""
+
+#: ../svnlook/svnlook.c:225
msgid ""
"usage: svnlook cat REPOS_PATH FILE_PATH\n"
"\n"
-"Print the contents of a file. Leading '/' on FILE_PATH is optional.\n"
msgstr ""
-#: ../svnlook/svnlook.c:228
+#: ../svnlook/svnlook.c:227
+msgid "Print the contents of a file. Leading '/' on FILE_PATH is optional.\n"
+msgstr ""
+
+#: ../svnlook/svnlook.c:232
msgid ""
"usage: svnlook changed REPOS_PATH\n"
"\n"
-"Print the paths that were changed.\n"
msgstr ""
-#: ../svnlook/svnlook.c:233
+#: ../svnlook/svnlook.c:234
+msgid "Print the paths that were changed.\n"
+msgstr ""
+
+#: ../svnlook/svnlook.c:239
msgid ""
"usage: svnlook date REPOS_PATH\n"
"\n"
-"Print the datestamp.\n"
msgstr ""
-#: ../svnlook/svnlook.c:238
+#: ../svnlook/svnlook.c:241
+msgid "Print the datestamp.\n"
+msgstr ""
+
+#: ../svnlook/svnlook.c:246
msgid ""
"usage: svnlook diff REPOS_PATH\n"
"\n"
-"Print GNU-style diffs of changed files and properties.\n"
msgstr ""
-#: ../svnlook/svnlook.c:245
+#: ../svnlook/svnlook.c:248
+msgid "Print GNU-style diffs of changed files and properties.\n"
+msgstr ""
+
+#: ../svnlook/svnlook.c:255
msgid ""
"usage: svnlook dirs-changed REPOS_PATH\n"
"\n"
+msgstr ""
+
+#: ../svnlook/svnlook.c:257
+msgid ""
"Print the directories that were themselves changed (property edits)\n"
"or whose file children were changed.\n"
msgstr ""
-#: ../svnlook/svnlook.c:251
+#: ../svnlook/svnlook.c:263
msgid ""
"usage: svnlook filesize REPOS_PATH PATH_IN_REPOS\n"
"\n"
+msgstr ""
+
+#: ../svnlook/svnlook.c:265
+msgid ""
"Print the size (in bytes) of the file located at PATH_IN_REPOS as\n"
"it is represented in the repository.\n"
msgstr ""
-#: ../svnlook/svnlook.c:257
+#: ../svnlook/svnlook.c:271
msgid ""
"usage: svnlook help [SUBCOMMAND...]\n"
"\n"
-"Describe the usage of this program or its subcommands.\n"
msgstr ""
-#: ../svnlook/svnlook.c:262
+#: ../svnlook/svnlook.c:278
msgid ""
"usage: svnlook history REPOS_PATH [PATH_IN_REPOS]\n"
"\n"
+msgstr ""
+
+#: ../svnlook/svnlook.c:280
+msgid ""
"Print information about the history of a path in the repository (or\n"
"the root directory if no path is supplied).\n"
msgstr ""
-#: ../svnlook/svnlook.c:268
+#: ../svnlook/svnlook.c:286
msgid ""
"usage: svnlook info REPOS_PATH\n"
"\n"
-"Print the author, datestamp, log message size, and log message.\n"
msgstr ""
-#: ../svnlook/svnlook.c:273
+#: ../svnlook/svnlook.c:288
+msgid "Print the author, datestamp, log message size, and log message.\n"
+msgstr ""
+
+#: ../svnlook/svnlook.c:293
msgid ""
"usage: svnlook lock REPOS_PATH PATH_IN_REPOS\n"
"\n"
-"If a lock exists on a path in the repository, describe it.\n"
msgstr ""
-#: ../svnlook/svnlook.c:278
+#: ../svnlook/svnlook.c:295
+msgid "If a lock exists on a path in the repository, describe it.\n"
+msgstr ""
+
+#: ../svnlook/svnlook.c:300
msgid ""
"usage: svnlook log REPOS_PATH\n"
"\n"
-"Print the log message.\n"
msgstr ""
-#: ../svnlook/svnlook.c:283
+#: ../svnlook/svnlook.c:302
+msgid "Print the log message.\n"
+msgstr ""
+
+#: ../svnlook/svnlook.c:307
msgid ""
"usage: 1. svnlook propget REPOS_PATH PROPNAME PATH_IN_REPOS\n"
" 2. svnlook propget --revprop REPOS_PATH PROPNAME\n"
"\n"
+msgstr ""
+
+#: ../svnlook/svnlook.c:312
+msgid ""
"Print the raw value of a property on a path in the repository.\n"
"With --revprop, print the raw value of a revision property.\n"
msgstr ""
-#: ../svnlook/svnlook.c:292
+#: ../svnlook/svnlook.c:318
msgid ""
"usage: 1. svnlook proplist REPOS_PATH PATH_IN_REPOS\n"
" 2. svnlook proplist --revprop REPOS_PATH\n"
"\n"
+msgstr ""
+
+#: ../svnlook/svnlook.c:323
+msgid ""
"List the properties of a path in the repository, or\n"
"with the --revprop option, revision properties.\n"
"With -v, show the property values too.\n"
msgstr ""
-#: ../svnlook/svnlook.c:303
+#: ../svnlook/svnlook.c:331
msgid ""
"usage: svnlook tree REPOS_PATH [PATH_IN_REPOS]\n"
"\n"
+msgstr ""
+
+#: ../svnlook/svnlook.c:333
+msgid ""
"Print the tree, starting at PATH_IN_REPOS (if supplied, at the root\n"
"of the tree otherwise), optionally showing node revision ids.\n"
msgstr ""
-#: ../svnlook/svnlook.c:309
+#: ../svnlook/svnlook.c:339
msgid ""
"usage: svnlook uuid REPOS_PATH\n"
"\n"
-"Print the repository's UUID.\n"
msgstr ""
-#: ../svnlook/svnlook.c:314
+#: ../svnlook/svnlook.c:341
+msgid "Print the repository's UUID.\n"
+msgstr ""
+
+#: ../svnlook/svnlook.c:346
msgid ""
"usage: svnlook youngest REPOS_PATH\n"
"\n"
-"Print the youngest revision number.\n"
msgstr ""
-#: ../svnlook/svnlook.c:790
+#: ../svnlook/svnlook.c:348
+msgid "Print the youngest revision number.\n"
+msgstr ""
+
+#: ../svnlook/svnlook.c:824
#, c-format
msgid "%sProperty changes on: %s%s"
msgstr ""
-#: ../svnlook/svnlook.c:857
+#: ../svnlook/svnlook.c:891
#, c-format
msgid "Copied: %s (from rev %ld, %s)\n"
msgstr ""
-#: ../svnlook/svnlook.c:925
+#: ../svnlook/svnlook.c:959
msgid "Added"
msgstr ""
-#: ../svnlook/svnlook.c:926
+#: ../svnlook/svnlook.c:960
msgid "Deleted"
msgstr ""
-#: ../svnlook/svnlook.c:927
+#: ../svnlook/svnlook.c:961
msgid "Modified"
msgstr ""
-#: ../svnlook/svnlook.c:928
+#: ../svnlook/svnlook.c:962
msgid "Index"
msgstr ""
-#: ../svnlook/svnlook.c:939
+#: ../svnlook/svnlook.c:973
msgid ""
"(Binary files differ)\n"
"\n"
msgstr ""
-#: ../svnlook/svnlook.c:1208
+#: ../svnlook/svnlook.c:1242
msgid "unknown"
msgstr ""
-#: ../svnlook/svnlook.c:1265
+#: ../svnlook/svnlook.c:1299
#, c-format
msgid "Transaction '%s' is not based on a revision; how odd"
msgstr ""
-#: ../svnlook/svnlook.c:1408
+#: ../svnlook/svnlook.c:1442
#, c-format
msgid "'%s' is a URL, probably should be a path"
msgstr ""
-#: ../svnlook/svnlook.c:1431 ../svnlook/svnlook.c:1454
+#: ../svnlook/svnlook.c:1465 ../svnlook/svnlook.c:1488
#, c-format
msgid "Path '%s' is not a file"
msgstr ""
-#: ../svnlook/svnlook.c:1588
+#: ../svnlook/svnlook.c:1622
msgid "History item limit reached"
msgstr ""
-#: ../svnlook/svnlook.c:1607
+#: ../svnlook/svnlook.c:1641
#, c-format
msgid ""
"REVISION PATH <ID>\n"
"-------- ---------\n"
msgstr ""
-#: ../svnlook/svnlook.c:1612
+#: ../svnlook/svnlook.c:1646
#, c-format
msgid ""
"REVISION PATH\n"
"-------- ----\n"
msgstr ""
-#: ../svnlook/svnlook.c:1685
+#: ../svnlook/svnlook.c:1719
#, c-format
msgid "Property '%s' not found on revision %ld"
msgstr ""
-#: ../svnlook/svnlook.c:1689
+#: ../svnlook/svnlook.c:1723
#, c-format
msgid "Property '%s' not found on transaction %s"
msgstr ""
-#: ../svnlook/svnlook.c:1698
+#: ../svnlook/svnlook.c:1732
#, c-format
msgid ""
"Property '%s' not found on path '%s' or inherited from a parent in revision "
"%ld"
msgstr ""
-#: ../svnlook/svnlook.c:1704
+#: ../svnlook/svnlook.c:1738
#, c-format
msgid "Property '%s' not found on path '%s' in revision %ld"
msgstr ""
-#: ../svnlook/svnlook.c:1712
+#: ../svnlook/svnlook.c:1746
#, c-format
msgid ""
"Property '%s' not found on path '%s' or inherited from a parent in "
"transaction %s"
msgstr ""
-#: ../svnlook/svnlook.c:1718
+#: ../svnlook/svnlook.c:1752
#, c-format
msgid "Property '%s' not found on path '%s' in transaction %s"
msgstr ""
-#: ../svnlook/svnlook.c:2055
+#: ../svnlook/svnlook.c:2089
msgid "Missing repository path argument"
msgstr ""
-#: ../svnlook/svnlook.c:2207
+#: ../svnlook/svnlook.c:2241
msgid ""
"general usage: svnlook SUBCOMMAND REPOS_PATH [ARGS & OPTIONS ...]\n"
"Subversion repository inspection tool.\n"
@@ -17692,7 +19021,7 @@ msgid ""
"Available subcommands:\n"
msgstr ""
-#: ../svnlook/svnlook.c:2286
+#: ../svnlook/svnlook.c:2320
#, c-format
msgid ""
"Comment (%i line):\n"
@@ -17703,57 +19032,57 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: ../svnlook/svnlook.c:2338
+#: ../svnlook/svnlook.c:2372
#, c-format
msgid "Missing propname argument"
msgstr ""
-#: ../svnlook/svnlook.c:2339
+#: ../svnlook/svnlook.c:2373
#, c-format
msgid "Missing propname and repository path arguments"
msgstr ""
-#: ../svnlook/svnlook.c:2345
+#: ../svnlook/svnlook.c:2379
msgid "Missing propname or repository path argument"
msgstr ""
-#: ../svnlook/svnlook.c:2499
+#: ../svnlook/svnlook.c:2533
msgid "Invalid revision number supplied"
msgstr ""
-#: ../svnlook/svnlook.c:2622
+#: ../svnlook/svnlook.c:2656
msgid ""
"The '--transaction' (-t) and '--revision' (-r) arguments cannot co-exist"
msgstr ""
-#: ../svnlook/svnlook.c:2629
+#: ../svnlook/svnlook.c:2663
msgid ""
"Cannot use the '--show-inherited-props' option with the '--revprop' option"
msgstr ""
-#: ../svnlook/svnlook.c:2686
+#: ../svnlook/svnlook.c:2720
#, c-format
msgid "Try 'svnadmin verify' instead.\n"
msgstr ""
-#: ../svnlook/svnlook.c:2719
+#: ../svnlook/svnlook.c:2753
#, c-format
msgid "Repository argument required\n"
msgstr ""
-#: ../svnlook/svnlook.c:2728
+#: ../svnlook/svnlook.c:2762
#, c-format
msgid "'%s' is a URL when it should be a path\n"
msgstr ""
-#: ../svnlook/svnlook.c:2778
+#: ../svnlook/svnlook.c:2812
#, c-format
msgid ""
"Subcommand '%s' doesn't accept option '%s'\n"
"Type 'svnlook help %s' for usage.\n"
msgstr ""
-#: ../svnlook/svnlook.c:2809
+#: ../svnlook/svnlook.c:2843
msgid "Try 'svnlook help' for more info"
msgstr ""
@@ -17827,7 +19156,7 @@ msgstr ""
msgid "Invalid revision number '%s'"
msgstr ""
-#: ../svnrdump/load_editor.c:230 ../svnsync/svnsync.c:353
+#: ../svnrdump/load_editor.c:230 ../svnsync/svnsync.c:358
#, c-format
msgid "Failed to get lock on destination repos, currently held by '%s'\n"
msgstr ""
@@ -17842,43 +19171,49 @@ msgstr ""
msgid ""
"usage: svnrdump dump URL [-r LOWER[:UPPER]]\n"
"\n"
+msgstr ""
+
+#: ../svnrdump/svnrdump.c:89
+msgid ""
"Dump revisions LOWER to UPPER of repository at remote URL to stdout\n"
"in a 'dumpfile' portable format. If only LOWER is given, dump that\n"
"one revision.\n"
msgstr ""
-#: ../svnrdump/svnrdump.c:93
+#: ../svnrdump/svnrdump.c:95
msgid ""
"usage: svnrdump load URL\n"
"\n"
-"Load a 'dumpfile' given on stdin to a repository at remote URL.\n"
msgstr ""
#: ../svnrdump/svnrdump.c:97
+msgid "Load a 'dumpfile' given on stdin to a repository at remote URL.\n"
+msgstr ""
+
+#: ../svnrdump/svnrdump.c:101
msgid ""
"usage: svnrdump help [SUBCOMMAND...]\n"
"\n"
-"Describe the usage of this program or its subcommands.\n"
msgstr ""
-#: ../svnrdump/svnrdump.c:110
+#: ../svnrdump/svnrdump.c:116
msgid "dump incrementally"
msgstr ""
-#: ../svnrdump/svnrdump.c:112
+#: ../svnrdump/svnrdump.c:118
msgid "skip revision property ARG (e.g., \"svn:author\")"
msgstr ""
-#: ../svnrdump/svnrdump.c:132 ../svnserve/svnserve.c:413
+#: ../svnrdump/svnrdump.c:138 ../svnserve/svnserve.c:413
#: ../svnversion/svnversion.c:142
msgid "display this help"
msgstr ""
-#: ../svnrdump/svnrdump.c:161
+#: ../svnrdump/svnrdump.c:167
msgid "Read or write to a dumpfile instead of stdin/stdout"
msgstr ""
-#: ../svnrdump/svnrdump.c:667
+#: ../svnrdump/svnrdump.c:673
msgid ""
"general usage: svnrdump SUBCOMMAND URL [-r LOWER[:UPPER]]\n"
"Subversion remote repository dump and load tool.\n"
@@ -17888,29 +19223,29 @@ msgid ""
"Available subcommands:\n"
msgstr ""
-#: ../svnrdump/svnrdump.c:712 ../svnrdump/svnrdump.c:746
+#: ../svnrdump/svnrdump.c:718 ../svnrdump/svnrdump.c:752
msgid "Unsupported revision specifier used; use only integer values or 'HEAD'"
msgstr ""
-#: ../svnrdump/svnrdump.c:720 ../svnrdump/svnrdump.c:754
+#: ../svnrdump/svnrdump.c:726 ../svnrdump/svnrdump.c:760
#, c-format
msgid "Revision '%ld' does not exist"
msgstr ""
-#: ../svnrdump/svnrdump.c:764
+#: ../svnrdump/svnrdump.c:770
msgid ""
"LOWER revision cannot be greater than UPPER revision; consider reversing "
"your revision range"
msgstr ""
-#: ../svnrdump/svnrdump.c:1011
+#: ../svnrdump/svnrdump.c:1017
#, c-format
msgid ""
"Subcommand '%s' doesn't accept option '%s'\n"
"Type 'svnrdump help %s' for usage.\n"
msgstr ""
-#: ../svnrdump/svnrdump.c:1054
+#: ../svnrdump/svnrdump.c:1060
msgid "load subcommand with --password-from-stdin requires -F"
msgstr ""
@@ -18306,12 +19641,24 @@ msgstr ""
msgid ""
"usage: svnsync initialize DEST_URL SOURCE_URL\n"
"\n"
+msgstr ""
+
+#: ../svnsync/svnsync.c:97
+msgid ""
"Initialize a destination repository for synchronization from\n"
"another repository.\n"
"\n"
+msgstr ""
+
+#: ../svnsync/svnsync.c:100
+msgid ""
"If the source URL is not the root of a repository, only the\n"
"specified part of the repository will be synchronized.\n"
"\n"
+msgstr ""
+
+#: ../svnsync/svnsync.c:103
+msgid ""
"The destination URL must point to the root of a repository which\n"
"has been configured to allow revision property changes. In\n"
"the general case, the destination repository must contain no\n"
@@ -18322,19 +19669,31 @@ msgid ""
"when initializing a copy of a repository as a mirror of that same\n"
"repository, for example.)\n"
"\n"
+msgstr ""
+
+#: ../svnsync/svnsync.c:113
+msgid ""
"You should not commit to, or make revision property changes in,\n"
"the destination repository by any method other than 'svnsync'.\n"
"In other words, the destination repository should be a read-only\n"
"mirror of the source repository.\n"
msgstr ""
-#: ../svnsync/svnsync.c:121
+#: ../svnsync/svnsync.c:122
msgid ""
"usage: svnsync synchronize DEST_URL [SOURCE_URL]\n"
"\n"
+msgstr ""
+
+#: ../svnsync/svnsync.c:124
+msgid ""
"Transfer all pending revisions to the destination from the source\n"
"with which it was initialized.\n"
"\n"
+msgstr ""
+
+#: ../svnsync/svnsync.c:127
+msgid ""
"If SOURCE_URL is provided, use that as the source repository URL,\n"
"ignoring what is recorded in the destination repository as the\n"
"source URL. Specifying SOURCE_URL is recommended in particular\n"
@@ -18342,52 +19701,75 @@ msgid ""
"DEST_URL repository.\n"
msgstr ""
-#: ../svnsync/svnsync.c:134
+#: ../svnsync/svnsync.c:136
msgid ""
"usage:\n"
"\n"
+msgstr ""
+
+#: ../svnsync/svnsync.c:138
+msgid ""
" 1. svnsync copy-revprops DEST_URL [SOURCE_URL]\n"
" 2. svnsync copy-revprops DEST_URL REV[:REV2]\n"
"\n"
+msgstr ""
+
+#: ../svnsync/svnsync.c:141
+msgid ""
"Copy the revision properties in a given range of revisions to the\n"
"destination from the source with which it was initialized. If the\n"
"revision range is not specified, it defaults to all revisions in\n"
"the DEST_URL repository. Note also that the 'HEAD' revision is the\n"
"latest in DEST_URL, not necessarily the latest in SOURCE_URL.\n"
"\n"
+msgstr ""
+
+#: ../svnsync/svnsync.c:147
+msgid ""
"If SOURCE_URL is provided, use that as the source repository URL,\n"
"ignoring what is recorded in the destination repository as the\n"
"source URL. Specifying SOURCE_URL is recommended in particular\n"
"if untrusted users/administrators may have write access to the\n"
"DEST_URL repository.\n"
"\n"
+msgstr ""
+
+#: ../svnsync/svnsync.c:153
+msgid ""
"Unless you need to trigger the destination repositoy's revprop\n"
"change hooks for all revision properties, it is recommended to use\n"
"the --skip-unchanged option for best performance.\n"
"\n"
+msgstr ""
+
+#: ../svnsync/svnsync.c:157
+msgid ""
"Form 2 is deprecated syntax, equivalent to specifying \"-rREV[:REV2]\".\n"
msgstr ""
-#: ../svnsync/svnsync.c:160
+#: ../svnsync/svnsync.c:163
msgid ""
"usage: svnsync info DEST_URL\n"
"\n"
+msgstr ""
+
+#: ../svnsync/svnsync.c:165
+msgid ""
"Print information about the synchronization destination repository\n"
"located at DEST_URL.\n"
msgstr ""
-#: ../svnsync/svnsync.c:166
+#: ../svnsync/svnsync.c:170
msgid ""
"usage: svnsync help [SUBCOMMAND...]\n"
"\n"
-"Describe the usage of this program or its subcommands.\n"
msgstr ""
-#: ../svnsync/svnsync.c:176
+#: ../svnsync/svnsync.c:181
msgid "print as little as possible"
msgstr ""
-#: ../svnsync/svnsync.c:178
+#: ../svnsync/svnsync.c:183
msgid ""
"operate on revision ARG (or range ARG1:ARG2)\n"
" A revision argument can be one of:\n"
@@ -18395,34 +19777,34 @@ msgid ""
" 'HEAD' latest in repository"
msgstr ""
-#: ../svnsync/svnsync.c:186
+#: ../svnsync/svnsync.c:191
msgid "allow a non-empty destination repository"
msgstr ""
-#: ../svnsync/svnsync.c:188
+#: ../svnsync/svnsync.c:193
msgid "don't copy unchanged revision properties"
msgstr ""
-#: ../svnsync/svnsync.c:200
+#: ../svnsync/svnsync.c:205
msgid ""
"specify a username ARG (deprecated;\n"
" see --source-username and --sync-username)"
msgstr ""
-#: ../svnsync/svnsync.c:204
+#: ../svnsync/svnsync.c:209
msgid ""
"specify a password ARG (deprecated;\n"
" see --source-password and --sync-password)"
msgstr ""
-#: ../svnsync/svnsync.c:208
+#: ../svnsync/svnsync.c:213
msgid ""
"deprecated; same as\n"
" --source-trust-server-cert-failures=unknown-ca\n"
" --sync-trust-server-cert-failures=unknown-ca"
msgstr ""
-#: ../svnsync/svnsync.c:214
+#: ../svnsync/svnsync.c:219
msgid ""
"with --non-interactive, accept SSL\n"
" server certificates with failures.\n"
@@ -18436,30 +19818,30 @@ msgid ""
" Applied to the source URL."
msgstr ""
-#: ../svnsync/svnsync.c:234
+#: ../svnsync/svnsync.c:239
msgid ""
"Like\n"
" --source-trust-server-cert-failures,\n"
" but applied to the destination URL."
msgstr ""
-#: ../svnsync/svnsync.c:240
+#: ../svnsync/svnsync.c:245
msgid "connect to source repository with username ARG"
msgstr ""
-#: ../svnsync/svnsync.c:242
+#: ../svnsync/svnsync.c:247
msgid "connect to source repository with password ARG"
msgstr ""
-#: ../svnsync/svnsync.c:244
+#: ../svnsync/svnsync.c:249
msgid "connect to sync repository with username ARG"
msgstr ""
-#: ../svnsync/svnsync.c:246
+#: ../svnsync/svnsync.c:251
msgid "connect to sync repository with password ARG"
msgstr ""
-#: ../svnsync/svnsync.c:258
+#: ../svnsync/svnsync.c:263
msgid ""
"convert translatable properties from encoding ARG\n"
" to UTF-8. If not specified, then properties "
@@ -18467,7 +19849,7 @@ msgid ""
" presumed to be encoded in UTF-8."
msgstr ""
-#: ../svnsync/svnsync.c:264
+#: ../svnsync/svnsync.c:269
msgid ""
"Disable built-in locking. Use of this option can\n"
" corrupt the mirror unless you ensure that no "
@@ -18475,7 +19857,7 @@ msgid ""
" instance of svnsync is running concurrently."
msgstr ""
-#: ../svnsync/svnsync.c:270
+#: ../svnsync/svnsync.c:275
msgid ""
"Steal locks as necessary. Use, with caution,\n"
" if your mirror repository contains stale locks\n"
@@ -18484,83 +19866,83 @@ msgid ""
" svnsync instance."
msgstr ""
-#: ../svnsync/svnsync.c:278
+#: ../svnsync/svnsync.c:283
msgid ""
"size of the extra in-memory cache in MB used to\n"
" minimize operations for local 'file' scheme.\n"
msgstr ""
-#: ../svnsync/svnsync.c:383
+#: ../svnsync/svnsync.c:388
msgid ""
"Target server does not support atomic revision property edits; consider "
"upgrading it to 1.7 or using an external locking program"
msgstr ""
-#: ../svnsync/svnsync.c:397
+#: ../svnsync/svnsync.c:402
#, c-format
msgid "Stole lock previously held by '%s'\n"
msgstr ""
-#: ../svnsync/svnsync.c:487
+#: ../svnsync/svnsync.c:492
#, c-format
msgid "Session is rooted at '%s' but the repos root is '%s'"
msgstr ""
-#: ../svnsync/svnsync.c:645
+#: ../svnsync/svnsync.c:650
#, c-format
msgid "Copied properties for revision %ld (%s* properties skipped).\n"
msgstr ""
-#: ../svnsync/svnsync.c:650
+#: ../svnsync/svnsync.c:655
#, c-format
msgid "Copied properties for revision %ld.\n"
msgstr ""
-#: ../svnsync/svnsync.c:666
+#: ../svnsync/svnsync.c:671
#, c-format
msgid ""
"NOTE: Normalized %s* properties to LF line endings (%d rev-props, %d node-"
"props).\n"
msgstr ""
-#: ../svnsync/svnsync.c:805
+#: ../svnsync/svnsync.c:810
msgid ""
"Destination repository already contains revision history; consider using --"
"allow-non-empty if the repository's revisions are known to mirror their "
"respective revisions in the source repository"
msgstr ""
-#: ../svnsync/svnsync.c:814
+#: ../svnsync/svnsync.c:819
#, c-format
msgid "Destination repository is already synchronizing from '%s'"
msgstr ""
-#: ../svnsync/svnsync.c:849
+#: ../svnsync/svnsync.c:854
msgid "Destination repository has more revisions than source repository"
msgstr ""
-#: ../svnsync/svnsync.c:914 ../svnsync/svnsync.c:917 ../svnsync/svnsync.c:1590
-#: ../svnsync/svnsync.c:1597 ../svnsync/svnsync.c:1837
-#: ../svnsync/svnsync.c:1840 ../svnsync/svnsync.c:1884
+#: ../svnsync/svnsync.c:919 ../svnsync/svnsync.c:922 ../svnsync/svnsync.c:1595
+#: ../svnsync/svnsync.c:1602 ../svnsync/svnsync.c:1842
+#: ../svnsync/svnsync.c:1845 ../svnsync/svnsync.c:1889
#, c-format
msgid "Path '%s' is not a URL"
msgstr ""
-#: ../svnsync/svnsync.c:944
+#: ../svnsync/svnsync.c:949
#, c-format
msgid "Committed revision %ld.\n"
msgstr ""
-#: ../svnsync/svnsync.c:987
+#: ../svnsync/svnsync.c:992
msgid "Destination repository has not been initialized"
msgstr ""
-#: ../svnsync/svnsync.c:1362
+#: ../svnsync/svnsync.c:1367
#, c-format
msgid "Commit created r%ld but should have created r%ld"
msgstr ""
-#: ../svnsync/svnsync.c:1482
+#: ../svnsync/svnsync.c:1487
#, c-format
msgid ""
"Revision being currently copied (%ld), last merged revision (%ld), and "
@@ -18568,57 +19950,57 @@ msgid ""
"destination without using svnsync?"
msgstr ""
-#: ../svnsync/svnsync.c:1520
+#: ../svnsync/svnsync.c:1525
#, c-format
msgid ""
"Destination HEAD (%ld) is not the last merged revision (%ld); have you "
"committed to the destination without using svnsync?"
msgstr ""
-#: ../svnsync/svnsync.c:1650 ../svnsync/svnsync.c:1655
+#: ../svnsync/svnsync.c:1655 ../svnsync/svnsync.c:1660
#, c-format
msgid ""
"Cannot copy revprops for a revision (%ld) that has not been synchronized yet"
msgstr ""
-#: ../svnsync/svnsync.c:1720 ../svnsync/svnsync.c:1740
+#: ../svnsync/svnsync.c:1725 ../svnsync/svnsync.c:1745
#, c-format
msgid "Invalid revision number (%ld)"
msgstr ""
-#: ../svnsync/svnsync.c:1790
+#: ../svnsync/svnsync.c:1795
msgid ""
"Cannot specify revisions via both command-line arguments and the --revision "
"(-r) option"
msgstr ""
-#: ../svnsync/svnsync.c:1798 ../svnsync/svnsync.c:2154
+#: ../svnsync/svnsync.c:1803 ../svnsync/svnsync.c:2159
#, c-format
msgid "Invalid revision range '%s' provided"
msgstr ""
-#: ../svnsync/svnsync.c:1897
+#: ../svnsync/svnsync.c:1902
#, c-format
msgid "Repository '%s' is not initialized for synchronization"
msgstr ""
#. Print the info.
-#: ../svnsync/svnsync.c:1903
+#: ../svnsync/svnsync.c:1908
#, c-format
msgid "Source URL: %s\n"
msgstr ""
-#: ../svnsync/svnsync.c:1905
+#: ../svnsync/svnsync.c:1910
#, c-format
msgid "Source Repository UUID: %s\n"
msgstr ""
-#: ../svnsync/svnsync.c:1908
+#: ../svnsync/svnsync.c:1913
#, c-format
msgid "Last Merged Revision: %s\n"
msgstr ""
-#: ../svnsync/svnsync.c:1925
+#: ../svnsync/svnsync.c:1930
msgid ""
"general usage: svnsync SUBCOMMAND DEST_URL [ARGS & OPTIONS ...]\n"
"Subversion repository replication tool.\n"
@@ -18628,30 +20010,30 @@ msgid ""
"Available subcommands:\n"
msgstr ""
-#: ../svnsync/svnsync.c:2216
+#: ../svnsync/svnsync.c:2221
msgid ""
"Cannot use --username or --password with any of --source-username, --source-"
"password, --sync-username, or --sync-password.\n"
msgstr ""
-#: ../svnsync/svnsync.c:2239
+#: ../svnsync/svnsync.c:2244
msgid "--disable-locking and --steal-lock are mutually exclusive"
msgstr ""
-#: ../svnsync/svnsync.c:2257
+#: ../svnsync/svnsync.c:2262
msgid ""
"--source-trust-server-cert-failures and --sync-trust-server-cert-failures "
"require --non-interactive"
msgstr ""
-#: ../svnsync/svnsync.c:2326
+#: ../svnsync/svnsync.c:2331
#, c-format
msgid ""
"Subcommand '%s' doesn't accept option '%s'\n"
"Type 'svnsync help %s' for usage.\n"
msgstr ""
-#: ../svnsync/svnsync.c:2390
+#: ../svnsync/svnsync.c:2395
msgid "Try 'svnsync help' for more info"
msgstr ""
diff --git a/subversion/po/sv.po b/subversion/po/sv.po
index a6d4292..2024fe8 100644
--- a/subversion/po/sv.po
+++ b/subversion/po/sv.po
@@ -110,8 +110,8 @@ msgid ""
msgstr ""
"Project-Id-Version: subversion 1.9\n"
"Report-Msgid-Bugs-To: dev@subversion.apache.org\n"
-"POT-Creation-Date: 2018-04-06 16:24+0200\n"
-"PO-Revision-Date: 2018-04-06 16:27+0200\n"
+"POT-Creation-Date: 2018-09-19 11:06+0200\n"
+"PO-Revision-Date: 2018-09-19 13:05+0200\n"
"Last-Translator: Subversion Developers <dev@subversion.apache.org>\n"
"Language-Team: Swedish <dev@subversion.apache.org>\n"
"Language: sv\n"
@@ -324,7 +324,7 @@ msgstr "Läsfel i rör"
#. is errno on POSIX
#: ../include/svn_error_codes.h:306 ../libsvn_subr/cmdline.c:435
#: ../libsvn_subr/cmdline.c:466 ../libsvn_subr/cmdline.c:489 ../svn/util.c:571
-#: ../svnlook/svnlook.c:2000
+#: ../svnlook/svnlook.c:2034
#, c-format
msgid "Write error"
msgstr "Fel vid skrivning"
@@ -962,7 +962,7 @@ msgstr "Kunde inte läsa data från responshuvud"
msgid "Repository has been moved"
msgstr "Arkivet har flyttats"
-#: ../include/svn_error_codes.h:1072 ../libsvn_ra_serf/util.c:937
+#: ../include/svn_error_codes.h:1072 ../libsvn_ra_serf/util.c:940
msgid "Connection timed out"
msgstr "Nätverksanslutningen gick ut"
@@ -1062,7 +1062,7 @@ msgstr "Operationen tillåter ej att källan är modifierad"
msgid "Operation does not apply to directory"
msgstr "Operationen kan ej utföras på en katalog"
-#: ../include/svn_error_codes.h:1185 ../svnadmin/svnadmin.c:1747
+#: ../include/svn_error_codes.h:1185 ../svnadmin/svnadmin.c:1813
#, c-format
msgid "Revision range is not allowed"
msgstr "Revisionsområde otillåtet"
@@ -1559,12 +1559,12 @@ msgstr "Certifikatssignaturen stämmer ej"
msgid "Certficate verification failed"
msgstr "Certifikatskontrollen misslyckades"
-#: ../libsvn_auth_gnome_keyring/gnome_keyring.c:290
+#: ../libsvn_auth_gnome_keyring/gnome_keyring.c:296
msgid "GNOME Keyring is locked and we are non-interactive"
msgstr "GNOMEs nyckelkedja är låst och vi är inte interaktiva"
#: ../libsvn_client/add.c:609 ../libsvn_client/cmdline.c:365
-#: ../libsvn_subr/opt.c:941
+#: ../libsvn_subr/opt.c:908
#, c-format
msgid "'%s' ends in a reserved name"
msgstr "\"%s\" slutar med ett reserverat namn"
@@ -1592,13 +1592,14 @@ msgid "Unsupported node kind for path '%s'"
msgstr "Nodtypen för sökvägen \"%s\" stöds inte"
#: ../libsvn_client/add.c:908 ../libsvn_client/changelist.c:65
-#: ../libsvn_client/changelist.c:104 ../libsvn_client/deprecated.c:3098
-#: ../libsvn_client/export.c:1392 ../libsvn_client/import.c:861
-#: ../libsvn_client/patch.c:3745 ../libsvn_client/relocate.c:155
-#: ../libsvn_client/resolved.c:120 ../libsvn_client/revert.c:149
-#: ../libsvn_client/shelve.c:194 ../libsvn_client/status.c:368
-#: ../libsvn_client/switch.c:471 ../libsvn_client/update.c:701
-#: ../libsvn_client/upgrade.c:111 ../svn/util.c:990 ../svnbench/util.c:76
+#: ../libsvn_client/changelist.c:104 ../libsvn_client/deprecated.c:3197
+#: ../libsvn_client/export.c:1389 ../libsvn_client/import.c:861
+#: ../libsvn_client/patch.c:3747 ../libsvn_client/relocate.c:155
+#: ../libsvn_client/resolved.c:120 ../libsvn_client/revert.c:152
+#: ../libsvn_client/shelf.c:1105 ../libsvn_client/status.c:444
+#: ../libsvn_client/switch.c:471 ../libsvn_client/update.c:749
+#: ../libsvn_client/upgrade.c:111 ../svn/shelf-cmd.c:1023 ../svn/util.c:990
+#: ../svnbench/util.c:76
#, c-format
msgid "'%s' is not a local path"
msgstr "\"%s\" är ingen lokal sökväg"
@@ -1653,7 +1654,7 @@ msgstr "URL:en \"%s\" pekar på en katalog"
msgid "Target changelist name must not be empty"
msgstr "Ändringslistan får inte ha tomt namn"
-#: ../libsvn_client/checkout.c:133 ../libsvn_client/export.c:1449
+#: ../libsvn_client/checkout.c:133 ../libsvn_client/export.c:1446
#: ../svnbench/null-export-cmd.c:293
#, c-format
msgid "URL '%s' doesn't exist"
@@ -1801,39 +1802,39 @@ msgstr "Arkiveringsobjektet \"%s\" har kopieringsflagga men ogiltig revision"
msgid "Standard properties can't be set explicitly as revision properties"
msgstr "Standardegenskaper kan inte sättas direkt som revisionsegenskaper"
-#: ../libsvn_client/conflicts.c:734 ../libsvn_client/conflicts.c:1095
-#: ../libsvn_client/conflicts.c:1688 ../libsvn_client/conflicts.c:4625
-#: ../libsvn_client/conflicts.c:5124 ../libsvn_client/conflicts.c:5146
-#: ../libsvn_client/conflicts.c:5197 ../libsvn_client/conflicts.c:5674
+#: ../libsvn_client/conflicts.c:734 ../libsvn_client/conflicts.c:1100
+#: ../libsvn_client/conflicts.c:1693 ../libsvn_client/conflicts.c:4767
+#: ../libsvn_client/conflicts.c:5268 ../libsvn_client/conflicts.c:5290
+#: ../libsvn_client/conflicts.c:5342 ../libsvn_client/conflicts.c:5815
msgid "unknown author"
msgstr "okänd författare"
-#: ../libsvn_client/conflicts.c:1126
+#: ../libsvn_client/conflicts.c:1131
msgid "A file containing uncommitted changes was found in the working copy."
msgstr "En fil med oarkiverade ändringar hittades i arbetskopian."
-#: ../libsvn_client/conflicts.c:1129
+#: ../libsvn_client/conflicts.c:1134
msgid "A file which differs from the corresponding file on the merge source branch was found in the working copy."
msgstr "En fil som skiljer sig från motsvarande fil i källgrenen för sammanslagningen hittades i arbetskopian."
-#: ../libsvn_client/conflicts.c:1134
+#: ../libsvn_client/conflicts.c:1139
msgid "A file which already occupies this path was found in the working copy."
msgstr "En fil som redan upptar denna sökväg hittades i arbetskopian."
-#: ../libsvn_client/conflicts.c:1138
+#: ../libsvn_client/conflicts.c:1143
msgid "An unversioned file was found in the working copy."
msgstr "En icke versionshanterad fil fanns i arbetskopian."
-#: ../libsvn_client/conflicts.c:1142
+#: ../libsvn_client/conflicts.c:1147
msgid "A deleted file was found in the working copy."
msgstr "En raderad fil hittades i arbetskopian."
-#: ../libsvn_client/conflicts.c:1147
+#: ../libsvn_client/conflicts.c:1152
msgid "No such file was found in the working copy."
msgstr "Ingen sådan fil hittades i arbetskopian."
#. ### display deleted revision
-#: ../libsvn_client/conflicts.c:1151
+#: ../libsvn_client/conflicts.c:1156
msgid ""
"No such file was found in the merge target working copy.\n"
"Perhaps the file has been deleted or moved away in the repository's history?"
@@ -1842,7 +1843,7 @@ msgstr ""
"Kanske filen har raderats eller flyttas bort i arkivets historia?"
#. ### show more details about copies or replacements?
-#: ../libsvn_client/conflicts.c:1161
+#: ../libsvn_client/conflicts.c:1166
msgid "A file scheduled to be added to the repository in the next commit was found in the working copy."
msgstr "En fil schemalagd för att läggas till i nästa arkivering hittades i arbetskopian."
@@ -1851,11 +1852,11 @@ msgstr "En fil schemalagd för att läggas till i nästa arkivering hittades i a
#. * This case cannot happen until we detect incoming
#. * moves, which we currently don't do.
#. ### find deleted/moved revision?
-#: ../libsvn_client/conflicts.c:1192 ../libsvn_client/conflicts.c:1224
+#: ../libsvn_client/conflicts.c:1197 ../libsvn_client/conflicts.c:1229
msgid "The file in the working copy had been moved away at the time this conflict was recorded."
msgstr "Filen i arbetskopian var bortflyttad när denna konflikt registrerades."
-#: ../libsvn_client/conflicts.c:1207 ../libsvn_client/conflicts.c:1240
+#: ../libsvn_client/conflicts.c:1212 ../libsvn_client/conflicts.c:1245
#, c-format
msgid ""
"The file in the working copy was moved away to\n"
@@ -1869,11 +1870,11 @@ msgstr ""
#. * This case cannot happen until we detect incoming
#. * moves, which we currently don't do.
#. ### find deleted/moved revision?
-#: ../libsvn_client/conflicts.c:1266 ../libsvn_client/conflicts.c:1298
+#: ../libsvn_client/conflicts.c:1271 ../libsvn_client/conflicts.c:1303
msgid "A file had been moved here in the working copy at the time this conflict was recorded."
msgstr "En fil hade flyttats hit i arbetskopian när denna konflikt registrerades."
-#: ../libsvn_client/conflicts.c:1281 ../libsvn_client/conflicts.c:1314
+#: ../libsvn_client/conflicts.c:1286 ../libsvn_client/conflicts.c:1319
#, c-format
msgid ""
"A file was moved here in the working copy from\n"
@@ -1882,32 +1883,32 @@ msgstr ""
"En fil hade flyttats hit i arbetskopian från\n"
"\"%s\"."
-#: ../libsvn_client/conflicts.c:1350
+#: ../libsvn_client/conflicts.c:1355
msgid "A directory containing uncommitted changes was found in the working copy."
msgstr "En katalog med oarkiverade ändringar hittades i arbetskopian."
-#: ../libsvn_client/conflicts.c:1353
+#: ../libsvn_client/conflicts.c:1358
msgid "A directory which differs from the corresponding directory on the merge source branch was found in the working copy."
msgstr "En katalog som skiljer sig från motsvarande katalog i källgrenen för sammanslagningen hittades i arbetskopian."
-#: ../libsvn_client/conflicts.c:1358
+#: ../libsvn_client/conflicts.c:1363
msgid "A directory which already occupies this path was found in the working copy."
msgstr "En katalog som redan upptar denna sökväg hittades i arbetskopian."
-#: ../libsvn_client/conflicts.c:1362
+#: ../libsvn_client/conflicts.c:1367
msgid "An unversioned directory was found in the working copy."
msgstr "En icke versionshanterad katalog hittades i arbetskopian."
-#: ../libsvn_client/conflicts.c:1366
+#: ../libsvn_client/conflicts.c:1371
msgid "A deleted directory was found in the working copy."
msgstr "En raderad katalog hittades i arbetskopian."
-#: ../libsvn_client/conflicts.c:1372
+#: ../libsvn_client/conflicts.c:1377
msgid "No such directory was found in the working copy."
msgstr "Ingen sådan katalog hittades i arbetskopian."
#. ### display deleted revision
-#: ../libsvn_client/conflicts.c:1376
+#: ../libsvn_client/conflicts.c:1381
msgid ""
"No such directory was found in the merge target working copy.\n"
"Perhaps the directory has been deleted or moved away in the repository's history?"
@@ -1916,16 +1917,16 @@ msgstr ""
"Kanske katalogen har raderats eller flyttats bort i arkivets historia?"
#. ### show more details about copies or replacements?
-#: ../libsvn_client/conflicts.c:1386
+#: ../libsvn_client/conflicts.c:1391
msgid "A directory scheduled to be added to the repository in the next commit was found in the working copy."
msgstr "En katalog schemalagd för att läggas till i nästa arkivering hittades i arbetskopian."
#. The move no longer exists.
-#: ../libsvn_client/conflicts.c:1418
+#: ../libsvn_client/conflicts.c:1423
msgid "The directory in the working copy had been moved away at the time this conflict was recorded."
msgstr "Katalogen i arbetskopian hade flyttas bort när denna konflikt registrerades."
-#: ../libsvn_client/conflicts.c:1433
+#: ../libsvn_client/conflicts.c:1438
#, c-format
msgid ""
"The directory in the working copy was moved away to\n"
@@ -1938,11 +1939,11 @@ msgstr ""
#. * This case cannot happen until we detect incoming
#. * moves, which we currently don't do.
#. ### find deleted/moved revision?
-#: ../libsvn_client/conflicts.c:1450
+#: ../libsvn_client/conflicts.c:1455
msgid "The directory had been moved away at the time this conflict was recorded."
msgstr "Katalogen hade flyttats bort när denna konflikt registrerades."
-#: ../libsvn_client/conflicts.c:1466
+#: ../libsvn_client/conflicts.c:1471
#, c-format
msgid ""
"The directory was moved away to\n"
@@ -1956,11 +1957,11 @@ msgstr ""
#. * This case cannot happen until we detect incoming
#. * moves, which we currently don't do.
#. ### find deleted/moved revision?
-#: ../libsvn_client/conflicts.c:1492 ../libsvn_client/conflicts.c:1524
+#: ../libsvn_client/conflicts.c:1497 ../libsvn_client/conflicts.c:1529
msgid "A directory had been moved here at the time this conflict was recorded."
msgstr "En katalog hade flyttats hit när denna konflikt registrerades."
-#: ../libsvn_client/conflicts.c:1507
+#: ../libsvn_client/conflicts.c:1512
#, c-format
msgid ""
"A directory was moved here from\n"
@@ -1969,7 +1970,7 @@ msgstr ""
"En katalog hade flyttats hit från\n"
"\"%s\"."
-#: ../libsvn_client/conflicts.c:1540
+#: ../libsvn_client/conflicts.c:1545
#, c-format
msgid ""
"A directory was moved here in the working copy from\n"
@@ -1978,24 +1979,24 @@ msgstr ""
"En katalog hade flyttats hit i arbetskopian från\n"
"\"%s\"."
-#: ../libsvn_client/conflicts.c:2759
+#: ../libsvn_client/conflicts.c:2901
msgid "An item containing uncommitted changes was found in the working copy."
msgstr "Ett objekt med oarkiverade ändringar hittades i arbetskopian."
-#: ../libsvn_client/conflicts.c:2763
+#: ../libsvn_client/conflicts.c:2905
msgid "An item which already occupies this path was found in the working copy."
msgstr "Ett objekt som redan upptar denna sökväg hittades i arbetskopian."
-#: ../libsvn_client/conflicts.c:2767
+#: ../libsvn_client/conflicts.c:2909
msgid "A deleted item was found in the working copy."
msgstr "Ett raderat objekt hittades i arbetskopian."
-#: ../libsvn_client/conflicts.c:2772
+#: ../libsvn_client/conflicts.c:2914
msgid "No such file or directory was found in the working copy."
msgstr "Ingen sådan fil eller katalog hittades i arbetskopian."
#. ### display deleted revision
-#: ../libsvn_client/conflicts.c:2777
+#: ../libsvn_client/conflicts.c:2919
msgid ""
"No such file or directory was found in the merge target working copy.\n"
"The item may have been deleted or moved away in the repository's history."
@@ -2003,23 +2004,23 @@ msgstr ""
"Ingen sådan fil eller katalog hittades i sammanslagningsmålets arbetskopia.\n"
"Objektet kan ha raderats eller flyttats bort i arkivets historia."
-#: ../libsvn_client/conflicts.c:2784
+#: ../libsvn_client/conflicts.c:2926
msgid "An unversioned item was found in the working copy."
msgstr "Ett icke versionshanterat objekt hittades i arbetskopian."
-#: ../libsvn_client/conflicts.c:2789
+#: ../libsvn_client/conflicts.c:2931
msgid "An item scheduled to be added to the repository in the next commit was found in the working copy."
msgstr "Ett objekt schemalagt för att läggas till i nästa arkivering hittades i arbetskopian."
-#: ../libsvn_client/conflicts.c:2794
+#: ../libsvn_client/conflicts.c:2936
msgid "The item in the working copy had been moved away at the time this conflict was recorded."
msgstr "Objektet i arbetskopian hade flyttas bort när denna konflikt registrerades."
-#: ../libsvn_client/conflicts.c:2798
+#: ../libsvn_client/conflicts.c:2940
msgid "An item had been moved here in the working copy at the time this conflict was recorded."
msgstr "Ett objekt hade flyttats hit i arbetskopian när denna konflikt registrerades."
-#: ../libsvn_client/conflicts.c:2826
+#: ../libsvn_client/conflicts.c:2968
#, c-format
msgid ""
"%s\n"
@@ -2028,41 +2029,41 @@ msgstr ""
"%s\n"
"Och sedan flyttats bort till \"^/%s\" av %s i r%ld."
-#: ../libsvn_client/conflicts.c:2891
+#: ../libsvn_client/conflicts.c:3033
msgid "No such file or directory was found in the merge target working copy.\n"
msgstr "Ingen sådan fil eller katalog hittades i sammanslagningsmålets arbetskopia.\n"
-#: ../libsvn_client/conflicts.c:2900
+#: ../libsvn_client/conflicts.c:3042
#, c-format
msgid "%sThe file was moved to '^/%s' in r%ld by %s."
msgstr "%sFilen flyttades till \"^/%s\" i r%ld av %s."
-#: ../libsvn_client/conflicts.c:2906
+#: ../libsvn_client/conflicts.c:3048
#, c-format
msgid "%sThe directory was moved to '^/%s' in r%ld by %s."
msgstr "%sKatalogen flyttades till \"^/%s\" i r%ld av %s."
-#: ../libsvn_client/conflicts.c:2913
+#: ../libsvn_client/conflicts.c:3055
#, c-format
msgid "%sThe item was moved to '^/%s' in r%ld by %s."
msgstr "%sObjektet flyttades till \"^/%s\" i r%ld av %s."
-#: ../libsvn_client/conflicts.c:2929
+#: ../libsvn_client/conflicts.c:3071
#, c-format
msgid "%sThe file '^/%s' was moved to '^/%s' in r%ld by %s."
msgstr "%sFilen \"^/%s\" flyttades till \"^/%s\" i r%ld av %s."
-#: ../libsvn_client/conflicts.c:2937
+#: ../libsvn_client/conflicts.c:3079
#, c-format
msgid "%sThe directory '^/%s' was moved to '^/%s' in r%ld by %s."
msgstr "%sKatalogen \"^/%s\" flyttades till \"^/%s\" i r%ld av %s."
-#: ../libsvn_client/conflicts.c:2945
+#: ../libsvn_client/conflicts.c:3087
#, c-format
msgid "%sThe item '^/%s' was moved to '^/%s' in r%ld by %s."
msgstr "%sObjektet \"^/%s\" flyttades till \"^/%s\" i r%ld av %s."
-#: ../libsvn_client/conflicts.c:2959
+#: ../libsvn_client/conflicts.c:3101
#, c-format
msgid ""
"No such file or directory was found in the merge target working copy.\n"
@@ -2071,229 +2072,229 @@ msgstr ""
"Ingen sådan fil eller katalog hittades i sammanslagningsmålets arbetskopia.\n"
"\"^/%s\" raderades i r%ld av %s."
-#: ../libsvn_client/conflicts.c:2983
+#: ../libsvn_client/conflicts.c:3125
msgid "An update operation tried to edit a file."
msgstr "En uppdatering försökte ändra en fil."
-#: ../libsvn_client/conflicts.c:2985
+#: ../libsvn_client/conflicts.c:3127
msgid "An update operation tried to add a file."
msgstr "En uppdatering försökte lägga till en fil."
-#: ../libsvn_client/conflicts.c:2987
+#: ../libsvn_client/conflicts.c:3129
msgid "An update operation tried to delete or move a file."
msgstr "En uppdatering försökte radera eller flytta en fil."
-#: ../libsvn_client/conflicts.c:2990
+#: ../libsvn_client/conflicts.c:3132
msgid "An update operation tried to replace a file."
msgstr "En uppdatering försökte ersätta en fil."
-#: ../libsvn_client/conflicts.c:2998
+#: ../libsvn_client/conflicts.c:3140
msgid "A switch operation tried to edit a file."
msgstr "En växling försökte ändra en fil."
-#: ../libsvn_client/conflicts.c:3000
+#: ../libsvn_client/conflicts.c:3142
msgid "A switch operation tried to add a file."
msgstr "En växling försökte lägga till en fil."
-#: ../libsvn_client/conflicts.c:3002
+#: ../libsvn_client/conflicts.c:3144
msgid "A switch operation tried to delete or move a file."
msgstr "En växling försökte radera eller flytta en fil."
-#: ../libsvn_client/conflicts.c:3005
+#: ../libsvn_client/conflicts.c:3147
msgid "A switch operation tried to replace a file."
msgstr "En växling försökte ersätta en fil."
-#: ../libsvn_client/conflicts.c:3013
+#: ../libsvn_client/conflicts.c:3155
msgid "A merge operation tried to edit a file."
msgstr "En sammanslagning försökte ändra en fil."
-#: ../libsvn_client/conflicts.c:3015
+#: ../libsvn_client/conflicts.c:3157
msgid "A merge operation tried to add a file."
msgstr "En sammanslagning försökte lägga till en fil."
-#: ../libsvn_client/conflicts.c:3017
+#: ../libsvn_client/conflicts.c:3159
msgid "A merge operation tried to delete or move a file."
msgstr "En sammanslagning försökte radera eller flytta en fil."
-#: ../libsvn_client/conflicts.c:3020
+#: ../libsvn_client/conflicts.c:3162
msgid "A merge operation tried to replace a file."
msgstr "En sammanslagning försökte ersätta en fil."
-#: ../libsvn_client/conflicts.c:3030
+#: ../libsvn_client/conflicts.c:3172
msgid "An update operation tried to change a directory."
msgstr "En uppdatering försökte ändra en katalog."
-#: ../libsvn_client/conflicts.c:3032
+#: ../libsvn_client/conflicts.c:3174
msgid "An update operation tried to add a directory."
msgstr "En uppdatering försökte lägga till en katalog."
-#: ../libsvn_client/conflicts.c:3034
+#: ../libsvn_client/conflicts.c:3176
msgid "An update operation tried to delete or move a directory."
msgstr "En uppdatering försökte radera eller flytta en katalog."
-#: ../libsvn_client/conflicts.c:3037
+#: ../libsvn_client/conflicts.c:3179
msgid "An update operation tried to replace a directory."
msgstr "En uppdatering försökte ersätta en katalog."
-#: ../libsvn_client/conflicts.c:3045
+#: ../libsvn_client/conflicts.c:3187
msgid "A switch operation tried to edit a directory."
msgstr "En växling försökte ändra en katalog."
-#: ../libsvn_client/conflicts.c:3047
+#: ../libsvn_client/conflicts.c:3189
msgid "A switch operation tried to add a directory."
msgstr "En växling försökte lägga till en katalog."
-#: ../libsvn_client/conflicts.c:3049
+#: ../libsvn_client/conflicts.c:3191
msgid "A switch operation tried to delete or move a directory."
msgstr "En växling försökte radera eller flytta en katalog."
-#: ../libsvn_client/conflicts.c:3052
+#: ../libsvn_client/conflicts.c:3194
msgid "A switch operation tried to replace a directory."
msgstr "En växling försökte ersätta en katalog."
-#: ../libsvn_client/conflicts.c:3060
+#: ../libsvn_client/conflicts.c:3202
msgid "A merge operation tried to edit a directory."
msgstr "En sammanslagning försökte ändra en katalog."
-#: ../libsvn_client/conflicts.c:3062
+#: ../libsvn_client/conflicts.c:3204
msgid "A merge operation tried to add a directory."
msgstr "En sammanslagning försökte lägga till en katalog."
-#: ../libsvn_client/conflicts.c:3064
+#: ../libsvn_client/conflicts.c:3206
msgid "A merge operation tried to delete or move a directory."
msgstr "En sammanslagning försökte radera eller flytta en katalog."
-#: ../libsvn_client/conflicts.c:3067
+#: ../libsvn_client/conflicts.c:3209
msgid "A merge operation tried to replace a directory."
msgstr "En sammanslagning försökte ersätta en katalog."
-#: ../libsvn_client/conflicts.c:3078
+#: ../libsvn_client/conflicts.c:3220
msgid "An update operation tried to edit an item."
msgstr "En uppdatering försökte ändra ett objekt."
-#: ../libsvn_client/conflicts.c:3080
+#: ../libsvn_client/conflicts.c:3222
msgid "An update operation tried to add an item."
msgstr "En uppdatering försökte lägga till ett objekt."
-#: ../libsvn_client/conflicts.c:3082
+#: ../libsvn_client/conflicts.c:3224
msgid "An update operation tried to delete or move an item."
msgstr "En uppdatering försökte radera eller flytta ett objekt."
-#: ../libsvn_client/conflicts.c:3085
+#: ../libsvn_client/conflicts.c:3227
msgid "An update operation tried to replace an item."
msgstr "En uppdatering försökte ersätta ett objekt."
-#: ../libsvn_client/conflicts.c:3093
+#: ../libsvn_client/conflicts.c:3235
msgid "A switch operation tried to edit an item."
msgstr "En växling försökte ändra ett objekt."
-#: ../libsvn_client/conflicts.c:3095
+#: ../libsvn_client/conflicts.c:3237
msgid "A switch operation tried to add an item."
msgstr "En växling försökte lägga till ett objekt."
-#: ../libsvn_client/conflicts.c:3097
+#: ../libsvn_client/conflicts.c:3239
msgid "A switch operation tried to delete or move an item."
msgstr "En växling försökte radera eller flytta ett objekt."
-#: ../libsvn_client/conflicts.c:3100
+#: ../libsvn_client/conflicts.c:3242
msgid "A switch operation tried to replace an item."
msgstr "En växlig försökte ersätta ett objekt."
-#: ../libsvn_client/conflicts.c:3108
+#: ../libsvn_client/conflicts.c:3250
msgid "A merge operation tried to edit an item."
msgstr "En sammanslagning försökte ändra ett objekt."
-#: ../libsvn_client/conflicts.c:3110
+#: ../libsvn_client/conflicts.c:3252
msgid "A merge operation tried to add an item."
msgstr "En sammanslagning försökte lägga till ett objekt."
-#: ../libsvn_client/conflicts.c:3112
+#: ../libsvn_client/conflicts.c:3254
msgid "A merge operation tried to delete or move an item."
msgstr "En sammanslagning försökte radera eller flytta ett objekt."
-#: ../libsvn_client/conflicts.c:3115
+#: ../libsvn_client/conflicts.c:3257
msgid "A merge operation tried to replace an item."
msgstr "En sammanslagning försökte ersätta ett objekt."
-#: ../libsvn_client/conflicts.c:3131 ../svn/cl-conflicts.c:212
+#: ../libsvn_client/conflicts.c:3273 ../svn/cl-conflicts.c:212
msgid "upon update"
msgstr "vid uppdatering"
-#: ../libsvn_client/conflicts.c:3132 ../svn/cl-conflicts.c:213
+#: ../libsvn_client/conflicts.c:3274 ../svn/cl-conflicts.c:213
msgid "upon switch"
msgstr "vid växling"
-#: ../libsvn_client/conflicts.c:3133 ../svn/cl-conflicts.c:214
+#: ../libsvn_client/conflicts.c:3275 ../svn/cl-conflicts.c:214
msgid "upon merge"
msgstr "vid sammanslagning"
-#: ../libsvn_client/conflicts.c:3134 ../svn/cl-conflicts.c:215
+#: ../libsvn_client/conflicts.c:3276 ../svn/cl-conflicts.c:215
msgid "upon none"
msgstr "vid ingenting"
-#: ../libsvn_client/conflicts.c:3153 ../svn/cl-conflicts.c:127
+#: ../libsvn_client/conflicts.c:3295 ../svn/cl-conflicts.c:127
#: ../svn/cl-conflicts.c:234
msgid "local edit"
msgstr "lokal ändring"
-#: ../libsvn_client/conflicts.c:3156 ../svn/cl-conflicts.c:140
+#: ../libsvn_client/conflicts.c:3298 ../svn/cl-conflicts.c:140
#: ../svn/cl-conflicts.c:237
msgid "local add"
msgstr "lokalt tillägg"
-#: ../libsvn_client/conflicts.c:3159 ../svn/cl-conflicts.c:131
+#: ../libsvn_client/conflicts.c:3301 ../svn/cl-conflicts.c:131
#: ../svn/cl-conflicts.c:240
msgid "local delete"
msgstr "lokal radering"
-#: ../libsvn_client/conflicts.c:3162 ../svn/cl-conflicts.c:129
+#: ../libsvn_client/conflicts.c:3304 ../svn/cl-conflicts.c:129
#: ../svn/cl-conflicts.c:243
msgid "local obstruction"
msgstr "lokal blockering"
-#: ../libsvn_client/conflicts.c:3166 ../svn/cl-conflicts.c:247
+#: ../libsvn_client/conflicts.c:3308 ../svn/cl-conflicts.c:247
#, c-format
msgid "local %s"
msgstr "lokal %s"
-#: ../libsvn_client/conflicts.c:3175 ../svn/cl-conflicts.c:192
+#: ../libsvn_client/conflicts.c:3317 ../svn/cl-conflicts.c:192
#: ../svn/cl-conflicts.c:256
msgid "incoming edit"
msgstr "inkommande ändring"
-#: ../libsvn_client/conflicts.c:3178 ../svn/cl-conflicts.c:194
+#: ../libsvn_client/conflicts.c:3320 ../svn/cl-conflicts.c:194
#: ../svn/cl-conflicts.c:259
msgid "incoming add"
msgstr "inkommande tillägg"
-#: ../libsvn_client/conflicts.c:3181 ../svn/cl-conflicts.c:262
+#: ../libsvn_client/conflicts.c:3323 ../svn/cl-conflicts.c:262
msgid "incoming delete"
msgstr "inkommande radering"
-#: ../libsvn_client/conflicts.c:3185 ../svn/cl-conflicts.c:266
+#: ../libsvn_client/conflicts.c:3327 ../svn/cl-conflicts.c:266
#, c-format
msgid "incoming %s"
msgstr "inkommande %s"
-#: ../libsvn_client/conflicts.c:3193 ../svn/cl-conflicts.c:273
+#: ../libsvn_client/conflicts.c:3335 ../svn/cl-conflicts.c:273
#: ../svn/cl-conflicts.c:326
#, c-format
msgid "%s, %s %s"
msgstr "%s, %s %s"
-#: ../libsvn_client/conflicts.c:3252
+#: ../libsvn_client/conflicts.c:3394
#, c-format
msgid "incoming %s %s"
msgstr "inkommande %s %s"
-#: ../libsvn_client/conflicts.c:3355
+#: ../libsvn_client/conflicts.c:3497
#, c-format
msgid "Directory updated from r%ld to r%ld was replaced with a file by %s in r%ld."
msgstr "Katalog uppdaterad från r%ld till r%ld ersattes av en fil av %s i r%ld."
-#: ../libsvn_client/conflicts.c:3366 ../libsvn_client/conflicts.c:3446
-#: ../libsvn_client/conflicts.c:3700 ../libsvn_client/conflicts.c:3787
-#: ../libsvn_client/conflicts.c:4087 ../libsvn_client/conflicts.c:4155
+#: ../libsvn_client/conflicts.c:3508 ../libsvn_client/conflicts.c:3588
+#: ../libsvn_client/conflicts.c:3842 ../libsvn_client/conflicts.c:3929
+#: ../libsvn_client/conflicts.c:4229 ../libsvn_client/conflicts.c:4297
#, c-format
msgid ""
"%s\n"
@@ -2302,14 +2303,14 @@ msgstr ""
"%s\n"
"Den ersatta katalogen flyttades till \"^/%s\"."
-#: ../libsvn_client/conflicts.c:3381
+#: ../libsvn_client/conflicts.c:3523
#, c-format
msgid "File updated from r%ld to r%ld was replaced with a file from another line of history by %s in r%ld."
msgstr "Fil uppdaterad från r%ld till r%ld ersattes av en fil från en annan historielinje av %s i r%ld."
-#: ../libsvn_client/conflicts.c:3393 ../libsvn_client/conflicts.c:3472
-#: ../libsvn_client/conflicts.c:3729 ../libsvn_client/conflicts.c:3815
-#: ../libsvn_client/conflicts.c:4116 ../libsvn_client/conflicts.c:4183
+#: ../libsvn_client/conflicts.c:3535 ../libsvn_client/conflicts.c:3614
+#: ../libsvn_client/conflicts.c:3871 ../libsvn_client/conflicts.c:3957
+#: ../libsvn_client/conflicts.c:4258 ../libsvn_client/conflicts.c:4325
#, c-format
msgid ""
"%s\n"
@@ -2318,14 +2319,14 @@ msgstr ""
"%s\n"
"Den ersatta filen flyttades till \"^/%s\"."
-#: ../libsvn_client/conflicts.c:3407
+#: ../libsvn_client/conflicts.c:3549
#, c-format
msgid "Item updated from r%ld to r%ld was replaced with a file by %s in r%ld."
msgstr "Objekt uppdaterat från r%ld till r%ld ersattes av en fil av %s i r%ld."
-#: ../libsvn_client/conflicts.c:3417 ../libsvn_client/conflicts.c:3496
-#: ../libsvn_client/conflicts.c:3756 ../libsvn_client/conflicts.c:3842
-#: ../libsvn_client/conflicts.c:4210
+#: ../libsvn_client/conflicts.c:3559 ../libsvn_client/conflicts.c:3638
+#: ../libsvn_client/conflicts.c:3898 ../libsvn_client/conflicts.c:3984
+#: ../libsvn_client/conflicts.c:4352
#, c-format
msgid ""
"%s\n"
@@ -2334,97 +2335,97 @@ msgstr ""
"%s\n"
"Det ersatta objektet flyttades till \"^/%s\"."
-#: ../libsvn_client/conflicts.c:3434
+#: ../libsvn_client/conflicts.c:3576
#, c-format
msgid "Directory updated from r%ld to r%ld was replaced with a directory from another line of history by %s in r%ld."
msgstr "Katalog uppdaterad från r%ld till r%ld ersattes av en katalog från en annan historielinje av %s i r%ld."
-#: ../libsvn_client/conflicts.c:3461
+#: ../libsvn_client/conflicts.c:3603
#, c-format
msgid "File updated from r%ld to r%ld was replaced with a directory by %s in r%ld."
msgstr "Fil uppdaterad från r%ld till r%ld ersattes av en katalog av %s i r%ld."
-#: ../libsvn_client/conflicts.c:3486
+#: ../libsvn_client/conflicts.c:3628
#, c-format
msgid "Item updated from r%ld to r%ld was replaced by %s in r%ld."
msgstr "Objekt uppdaterat från r%ld till r%ld ersattes av %s i r%ld."
-#: ../libsvn_client/conflicts.c:3519
+#: ../libsvn_client/conflicts.c:3661
#, c-format
msgid "Directory updated from r%ld to r%ld was moved to '^/%s' by %s in r%ld."
msgstr "Katalog uppdaterad från r%ld till r%ld flyttades till \"^/%s\" av %s i r%ld."
-#: ../libsvn_client/conflicts.c:3531
+#: ../libsvn_client/conflicts.c:3673
#, c-format
msgid "Directory updated from r%ld to r%ld was deleted by %s in r%ld."
msgstr "Katalog uppdaterad från r%ld till r%ld raderades av %s i r%ld."
-#: ../libsvn_client/conflicts.c:3547
+#: ../libsvn_client/conflicts.c:3689
#, c-format
msgid "File updated from r%ld to r%ld was moved to '^/%s' by %s in r%ld."
msgstr "Fil uppdaterad från r%ld till r%ld flyttades till \"^/%s\" av %s i r%ld."
-#: ../libsvn_client/conflicts.c:3558
+#: ../libsvn_client/conflicts.c:3700
#, c-format
msgid "File updated from r%ld to r%ld was deleted by %s in r%ld."
msgstr "Fil uppdaterad från r%ld till r%ld raderades av %s i r%ld."
-#: ../libsvn_client/conflicts.c:3572
+#: ../libsvn_client/conflicts.c:3714
#, c-format
msgid "Item updated from r%ld to r%ld was moved to '^/%s' by %s in r%ld."
msgstr "Objekt uppdaterat från r%ld till r%ld flyttades till \"^/%s\" av %s i r%ld."
-#: ../libsvn_client/conflicts.c:3583
+#: ../libsvn_client/conflicts.c:3725
#, c-format
msgid "Item updated from r%ld to r%ld was deleted by %s in r%ld."
msgstr "Objekt uppdaterat från r%ld till r%ld raderades av %s i r%ld."
-#: ../libsvn_client/conflicts.c:3603
+#: ../libsvn_client/conflicts.c:3745
#, c-format
msgid "Directory updated backwards from r%ld to r%ld was a file before the replacement made by %s in r%ld."
msgstr "Katalog uppdaterad bakåt från r%ld till r%ld var en fil före ersättningen gjord av %s i r%ld."
-#: ../libsvn_client/conflicts.c:3610
+#: ../libsvn_client/conflicts.c:3752
#, c-format
msgid "File updated backwards from r%ld to r%ld was a file from another line of history before the replacement made by %s in r%ld."
msgstr "Fil uppdaterad bakåt från r%ld till r%ld var en fil från en annan historielinje före ersättningen gjord av %s i r%ld."
-#: ../libsvn_client/conflicts.c:3617
+#: ../libsvn_client/conflicts.c:3759
#, c-format
msgid "Item updated backwards from r%ld to r%ld was replaced with a file by %s in r%ld."
msgstr "Objekt uppdaterat bakåt från r%ld till r%ld ersattes av en fil av %s i r%ld."
-#: ../libsvn_client/conflicts.c:3626
+#: ../libsvn_client/conflicts.c:3768
#, c-format
msgid "Directory updated backwards from r%ld to r%ld was a directory from another line of history before the replacement made by %s in r%ld."
msgstr "Katalog uppdaterad bakåt från r%ld till r%ld var en katalog från en annan historielinje före ersättningen gjord av %s i r%ld."
-#: ../libsvn_client/conflicts.c:3634
+#: ../libsvn_client/conflicts.c:3776
#, c-format
msgid "File updated backwards from r%ld to r%ld was a directory before the replacement made by %s in r%ld."
msgstr "Fil uppdaterad bakåt från r%ld till r%ld var en katalog före ersättningen gjord av %s i r%ld."
-#: ../libsvn_client/conflicts.c:3640
+#: ../libsvn_client/conflicts.c:3782
#, c-format
msgid "Item updated backwards from r%ld to r%ld was replaced with a directory by %s in r%ld."
msgstr "Objekt uppdaterat bakåt från r%ld till r%ld ersattes av en katalog av %s i r%ld."
-#: ../libsvn_client/conflicts.c:3649
+#: ../libsvn_client/conflicts.c:3791
#, c-format
msgid "Directory updated backwards from r%ld to r%ld did not exist before it was added by %s in r%ld."
msgstr "Katalog uppdaterad bakåt från r%ld till r%ld fanns inte innan den lades till av %s i r%ld."
-#: ../libsvn_client/conflicts.c:3656
+#: ../libsvn_client/conflicts.c:3798
#, c-format
msgid "File updated backwards from r%ld to r%ld did not exist before it was added by %s in r%ld."
msgstr "Fil uppdaterad bakåt från r%ld till r%ld fanns inte innan den lades till av %s i r%ld."
-#: ../libsvn_client/conflicts.c:3662
+#: ../libsvn_client/conflicts.c:3804
#, c-format
msgid "Item updated backwards from r%ld to r%ld did not exist before it was added by %s in r%ld."
msgstr "Objekt uppdaterat bakåt från r%ld till r%ld fanns inte innan det lades till av %s i r%ld."
-#: ../libsvn_client/conflicts.c:3687
+#: ../libsvn_client/conflicts.c:3829
#, c-format
msgid ""
"Directory switched from\n"
@@ -2439,7 +2440,7 @@ msgstr ""
"\"^/%s@%ld\"\n"
"ersattes av en fil av %s i r%ld."
-#: ../libsvn_client/conflicts.c:3715
+#: ../libsvn_client/conflicts.c:3857
#, c-format
msgid ""
"File switched from\n"
@@ -2454,7 +2455,7 @@ msgstr ""
"\"^/%s@%ld\"\n"
"ersattes av en fil från en annan historielinje av %s i r%ld."
-#: ../libsvn_client/conflicts.c:3743 ../libsvn_client/conflicts.c:3986
+#: ../libsvn_client/conflicts.c:3885 ../libsvn_client/conflicts.c:4128
#, c-format
msgid ""
"Item switched from\n"
@@ -2469,7 +2470,7 @@ msgstr ""
"\"^/%s@%ld\"\n"
"ersattes av en fil av %s i r%ld."
-#: ../libsvn_client/conflicts.c:3773
+#: ../libsvn_client/conflicts.c:3915
#, c-format
msgid ""
"Directory switched from\n"
@@ -2484,7 +2485,7 @@ msgstr ""
"\"^/%s@%ld\"\n"
"ersattes av en katalog från en annan historielinje av %s i r%ld."
-#: ../libsvn_client/conflicts.c:3802
+#: ../libsvn_client/conflicts.c:3944
#, c-format
msgid ""
"File switched from\n"
@@ -2499,7 +2500,7 @@ msgstr ""
"\"^/%s@%ld\"\n"
"ersattes av en katalog av %s i r%ld."
-#: ../libsvn_client/conflicts.c:3829 ../libsvn_client/conflicts.c:4016
+#: ../libsvn_client/conflicts.c:3971 ../libsvn_client/conflicts.c:4158
#, c-format
msgid ""
"Item switched from\n"
@@ -2514,7 +2515,7 @@ msgstr ""
"\"^/%s@%ld\"\n"
"ersattes av en katalog av %s i r%ld."
-#: ../libsvn_client/conflicts.c:3865
+#: ../libsvn_client/conflicts.c:4007
#, c-format
msgid ""
"Directory switched from\n"
@@ -2529,7 +2530,7 @@ msgstr ""
"\"^/%s@%ld\"\n"
"flyttades till \"^/%s\" av %s i r%ld."
-#: ../libsvn_client/conflicts.c:3879
+#: ../libsvn_client/conflicts.c:4021
#, c-format
msgid ""
"Directory switched from\n"
@@ -2544,7 +2545,7 @@ msgstr ""
"\"^/%s@%ld\"\n"
"raderades av %s i r%ld."
-#: ../libsvn_client/conflicts.c:3897
+#: ../libsvn_client/conflicts.c:4039
#, c-format
msgid ""
"File switched from\n"
@@ -2559,7 +2560,7 @@ msgstr ""
"\"^/%s@%ld\"\n"
"flyttades till \"^/%s\" av %s i r%ld."
-#: ../libsvn_client/conflicts.c:3911
+#: ../libsvn_client/conflicts.c:4053
#, c-format
msgid ""
"File switched from\n"
@@ -2574,7 +2575,7 @@ msgstr ""
"\"^/%s@%ld\"\n"
"raderades av %s i r%ld."
-#: ../libsvn_client/conflicts.c:3928
+#: ../libsvn_client/conflicts.c:4070
#, c-format
msgid ""
"Item switched from\n"
@@ -2589,7 +2590,7 @@ msgstr ""
"\"^/%s@%ld\"\n"
"flyttades till \"^/%s\" av %s i r%ld."
-#: ../libsvn_client/conflicts.c:3942
+#: ../libsvn_client/conflicts.c:4084
#, c-format
msgid ""
"Item switched from\n"
@@ -2604,7 +2605,7 @@ msgstr ""
"\"^/%s@%ld\"\n"
"raderades av %s i r%ld."
-#: ../libsvn_client/conflicts.c:3967 ../libsvn_client/conflicts.c:4007
+#: ../libsvn_client/conflicts.c:4109 ../libsvn_client/conflicts.c:4149
#, c-format
msgid ""
"Directory switched from\n"
@@ -2619,7 +2620,7 @@ msgstr ""
"\"^/%s@%ld\"\n"
"var en fil före ersättningen gjord av %s i r%ld."
-#: ../libsvn_client/conflicts.c:3977
+#: ../libsvn_client/conflicts.c:4119
#, c-format
msgid ""
"File switched from\n"
@@ -2634,7 +2635,7 @@ msgstr ""
"\"^/%s@%ld\"\n"
"var en fil från en annan historielinje före ersättningen gjord av %s i r%ld."
-#: ../libsvn_client/conflicts.c:3997
+#: ../libsvn_client/conflicts.c:4139
#, c-format
msgid ""
"Directory switched from\n"
@@ -2649,7 +2650,7 @@ msgstr ""
"\"^/%s@%ld\"\n"
"var en katalog från en annan historielinje före ersättningen gjord av %s i r%ld."
-#: ../libsvn_client/conflicts.c:4027
+#: ../libsvn_client/conflicts.c:4169
#, c-format
msgid ""
"Directory switched from\n"
@@ -2664,7 +2665,7 @@ msgstr ""
"\"^/%s@%ld\"\n"
"fanns inte innan den lades till av %s i r%ld."
-#: ../libsvn_client/conflicts.c:4037
+#: ../libsvn_client/conflicts.c:4179
#, c-format
msgid ""
"File switched from\n"
@@ -2679,7 +2680,7 @@ msgstr ""
"\"^/%s@%ld\"\n"
"fanns inte innan den lades till av %s i r%ld."
-#: ../libsvn_client/conflicts.c:4046
+#: ../libsvn_client/conflicts.c:4188
#, c-format
msgid ""
"Item switched from\n"
@@ -2694,7 +2695,7 @@ msgstr ""
"\"^/%s@%ld\"\n"
"fanns inte innan det lades till av %s i r%ld."
-#: ../libsvn_client/conflicts.c:4074
+#: ../libsvn_client/conflicts.c:4216
#, c-format
msgid ""
"Directory merged from\n"
@@ -2709,7 +2710,7 @@ msgstr ""
"\"^/%s@%ld\"\n"
"ersattes av en fil av %s i r%ld."
-#: ../libsvn_client/conflicts.c:4102
+#: ../libsvn_client/conflicts.c:4244
#, c-format
msgid ""
"File merged from\n"
@@ -2724,7 +2725,7 @@ msgstr ""
"\"^/%s@%ld\"\n"
"ersattes av en fil från en annan historielinje av %s i r%ld."
-#: ../libsvn_client/conflicts.c:4128
+#: ../libsvn_client/conflicts.c:4270
#, c-format
msgid ""
"Item merged from\n"
@@ -2739,7 +2740,7 @@ msgstr ""
"\"^/%s@%ld\"\n"
"ersattes av en fil av %s i r%ld."
-#: ../libsvn_client/conflicts.c:4141
+#: ../libsvn_client/conflicts.c:4283
#, c-format
msgid ""
"Directory merged from\n"
@@ -2754,7 +2755,7 @@ msgstr ""
"\"^/%s@%ld\"\n"
"ersattes av en katalog från en annan historielinje av %s i r%ld."
-#: ../libsvn_client/conflicts.c:4170
+#: ../libsvn_client/conflicts.c:4312
#, c-format
msgid ""
"File merged from\n"
@@ -2769,7 +2770,7 @@ msgstr ""
"\"^/%s@%ld\"\n"
"ersattes av en katalog av %s i r%ld."
-#: ../libsvn_client/conflicts.c:4197
+#: ../libsvn_client/conflicts.c:4339
#, c-format
msgid ""
"Item merged from\n"
@@ -2784,7 +2785,7 @@ msgstr ""
"\"^/%s@%ld\"\n"
"ersattes av en katalog av %s i r%ld."
-#: ../libsvn_client/conflicts.c:4233
+#: ../libsvn_client/conflicts.c:4375
#, c-format
msgid ""
"Directory merged from\n"
@@ -2799,7 +2800,7 @@ msgstr ""
"\"^/%s@%ld\"\n"
"flyttades till \"^/%s\" av %s i r%ld."
-#: ../libsvn_client/conflicts.c:4247
+#: ../libsvn_client/conflicts.c:4389
#, c-format
msgid ""
"Directory merged from\n"
@@ -2814,7 +2815,7 @@ msgstr ""
"\"^/%s@%ld\"\n"
"raderades av %s i r%ld."
-#: ../libsvn_client/conflicts.c:4265
+#: ../libsvn_client/conflicts.c:4407
#, c-format
msgid ""
"File merged from\n"
@@ -2829,7 +2830,7 @@ msgstr ""
"\"^/%s@%ld\"\n"
"flyttades till \"^/%s\" av %s i r%ld."
-#: ../libsvn_client/conflicts.c:4279
+#: ../libsvn_client/conflicts.c:4421
#, c-format
msgid ""
"File merged from\n"
@@ -2844,7 +2845,7 @@ msgstr ""
"\"^/%s@%ld\"\n"
"raderades av %s i r%ld."
-#: ../libsvn_client/conflicts.c:4296
+#: ../libsvn_client/conflicts.c:4438
#, c-format
msgid ""
"Item merged from\n"
@@ -2859,7 +2860,7 @@ msgstr ""
"\"^/%s@%ld\"\n"
"flyttades till \"^/%s\" av %s i r%ld."
-#: ../libsvn_client/conflicts.c:4310
+#: ../libsvn_client/conflicts.c:4452
#, c-format
msgid ""
"Item merged from\n"
@@ -2874,7 +2875,7 @@ msgstr ""
"\"^/%s@%ld\"\n"
"raderades av %s i r%ld."
-#: ../libsvn_client/conflicts.c:4335 ../libsvn_client/conflicts.c:4374
+#: ../libsvn_client/conflicts.c:4477 ../libsvn_client/conflicts.c:4516
#, c-format
msgid ""
"Directory reverse-merged from\n"
@@ -2885,7 +2886,7 @@ msgstr ""
"\"^/%s@%ld\"\n"
"till ^/%s@%ld var en fil före ersättningen gjord av %s i r%ld."
-#: ../libsvn_client/conflicts.c:4344
+#: ../libsvn_client/conflicts.c:4486
#, c-format
msgid ""
"File reverse-merged from\n"
@@ -2900,7 +2901,7 @@ msgstr ""
"\"^/%s@%ld\"\n"
"var en fil från en annan historielinje före ersättningen gjord av %s i r%ld."
-#: ../libsvn_client/conflicts.c:4353
+#: ../libsvn_client/conflicts.c:4495
#, c-format
msgid ""
"Item reverse-merged from\n"
@@ -2915,7 +2916,7 @@ msgstr ""
"\"^/%s@%ld\"\n"
"ersattes av en fil av %s i r%ld."
-#: ../libsvn_client/conflicts.c:4364
+#: ../libsvn_client/conflicts.c:4506
#, c-format
msgid ""
"Directory reverse-merged from\n"
@@ -2926,7 +2927,7 @@ msgstr ""
"\"^/%s@%ld\"\n"
"till ^/%s@%ld var en katalog från en annan historielinje före ersättningen gjord av %s i r%ld."
-#: ../libsvn_client/conflicts.c:4382
+#: ../libsvn_client/conflicts.c:4524
#, c-format
msgid ""
"Item reverse-merged from\n"
@@ -2941,7 +2942,7 @@ msgstr ""
"\"^/%s@%ld\"\n"
"ersattes av en katalog av %s i r%ld."
-#: ../libsvn_client/conflicts.c:4393
+#: ../libsvn_client/conflicts.c:4535
#, c-format
msgid ""
"Directory reverse-merged from\n"
@@ -2952,7 +2953,7 @@ msgstr ""
"\"^/%s@%ld\"\n"
"till ^/%s@%ld fanns inte innan den lades till av %s i r%ld."
-#: ../libsvn_client/conflicts.c:4402
+#: ../libsvn_client/conflicts.c:4544
#, c-format
msgid ""
"File reverse-merged from\n"
@@ -2967,7 +2968,7 @@ msgstr ""
"\"^/%s@%ld\"\n"
"fanns inte innan den lades till av %s i r%ld."
-#: ../libsvn_client/conflicts.c:4411
+#: ../libsvn_client/conflicts.c:4553
#, c-format
msgid ""
"Item reverse-merged from\n"
@@ -2982,52 +2983,52 @@ msgstr ""
"\"^/%s@%ld\"\n"
"fanns inte innan det lades till av %s i r%ld."
-#: ../libsvn_client/conflicts.c:5263
+#: ../libsvn_client/conflicts.c:5404
#, c-format
msgid "A new directory appeared during update to r%ld; it was added by %s in r%ld and later deleted by %s in r%ld."
msgstr "En ny katalog dök upp under uppdatering till r%ld; den lades till av %s i r%ld och raderades senare av %s i r%ld."
-#: ../libsvn_client/conflicts.c:5270
+#: ../libsvn_client/conflicts.c:5411
#, c-format
msgid "A new directory appeared during update to r%ld; it was added by %s in r%ld."
msgstr "En ny katalog dök upp under uppdatering till r%ld; den lades till av %s i r%ld."
-#: ../libsvn_client/conflicts.c:5275
+#: ../libsvn_client/conflicts.c:5416
#, c-format
msgid "A new directory appeared during update to r%ld; it was deleted by %s in r%ld."
msgstr "En ny katalog dök upp under uppdatering till r%ld; den raderades av %s i r%ld."
-#: ../libsvn_client/conflicts.c:5285
+#: ../libsvn_client/conflicts.c:5426
#, c-format
msgid "A new file appeared during update to r%ld; it was added by %s in r%ld and later deleted by %s in r%ld."
msgstr "En ny fil dök upp under uppdatering till r%ld; den lades till av %s i r%ld och raderades senare av %s i r%ld."
-#: ../libsvn_client/conflicts.c:5292
+#: ../libsvn_client/conflicts.c:5433
#, c-format
msgid "A new file appeared during update to r%ld; it was added by %s in r%ld."
msgstr "En ny fil dök upp under uppdatering till r%ld; den lades till av %s i r%ld."
-#: ../libsvn_client/conflicts.c:5297
+#: ../libsvn_client/conflicts.c:5438
#, c-format
msgid "A new file appeared during update to r%ld; it was deleted by %s in r%ld."
msgstr "En ny katalog dök upp under uppdatering till r%ld; den raderades av %s i r%ld."
-#: ../libsvn_client/conflicts.c:5306
+#: ../libsvn_client/conflicts.c:5447
#, c-format
msgid "A new item appeared during update to r%ld; it was added by %s in r%ld and later deleted by %s in r%ld."
msgstr "Ett nytt objekt dök upp under uppdatering till r%ld; det lades till av %s i r%ld och raderades senare av %s i r%ld."
-#: ../libsvn_client/conflicts.c:5313
+#: ../libsvn_client/conflicts.c:5454
#, c-format
msgid "A new item appeared during update to r%ld; it was added by %s in r%ld."
msgstr "Ett nytt objekt dök upp under uppdatering till r%ld; det lades till av %s i r%ld."
-#: ../libsvn_client/conflicts.c:5318
+#: ../libsvn_client/conflicts.c:5459
#, c-format
msgid "A new item appeared during update to r%ld; it was deleted by %s in r%ld."
msgstr "Ett nytt objekt dök upp under uppdatering till r%ld; det raderades av %s i r%ld."
-#: ../libsvn_client/conflicts.c:5337
+#: ../libsvn_client/conflicts.c:5478
#, c-format
msgid ""
"A new directory appeared during switch to\n"
@@ -3038,7 +3039,7 @@ msgstr ""
"\"^/%s@%ld\".\n"
"Den lades till av %s i r%ld och raderades senare av %s i r%ld."
-#: ../libsvn_client/conflicts.c:5345
+#: ../libsvn_client/conflicts.c:5486
#, c-format
msgid ""
"A new directory appeared during switch to\n"
@@ -3049,7 +3050,7 @@ msgstr ""
"\"^/%s@%ld\".\n"
"Den lades till av %s i r%ld."
-#: ../libsvn_client/conflicts.c:5351
+#: ../libsvn_client/conflicts.c:5492
#, c-format
msgid ""
"A new directory appeared during switch to\n"
@@ -3060,7 +3061,7 @@ msgstr ""
"\"^/%s@%ld\".\n"
"Den raderades av %s i r%ld."
-#: ../libsvn_client/conflicts.c:5362
+#: ../libsvn_client/conflicts.c:5503
#, c-format
msgid ""
"A new file appeared during switch to\n"
@@ -3071,7 +3072,7 @@ msgstr ""
"\"^/%s@%ld\".\n"
"Den lades till av %s i r%ld och raderades senare av %s i r%ld."
-#: ../libsvn_client/conflicts.c:5370
+#: ../libsvn_client/conflicts.c:5511
#, c-format
msgid ""
"A new file appeared during switch to\n"
@@ -3082,7 +3083,7 @@ msgstr ""
"\"^/%s@%ld\".\n"
"Den lades till av %s i r%ld."
-#: ../libsvn_client/conflicts.c:5377
+#: ../libsvn_client/conflicts.c:5518
#, c-format
msgid ""
"A new file appeared during switch to\n"
@@ -3093,7 +3094,7 @@ msgstr ""
"\"^/%s@%ld\".\n"
"Den raderades av %s i r%ld."
-#: ../libsvn_client/conflicts.c:5388
+#: ../libsvn_client/conflicts.c:5529
#, c-format
msgid ""
"A new item appeared during switch to\n"
@@ -3104,7 +3105,7 @@ msgstr ""
"\"^/%s@%ld\".\n"
"Det lades till av %s i r%ld och raderades senare av %s i r%ld."
-#: ../libsvn_client/conflicts.c:5396
+#: ../libsvn_client/conflicts.c:5537
#, c-format
msgid ""
"A new item appeared during switch to\n"
@@ -3115,7 +3116,7 @@ msgstr ""
"\"^/%s@%ld\".\n"
"Det lades till av %s i r%ld."
-#: ../libsvn_client/conflicts.c:5403
+#: ../libsvn_client/conflicts.c:5544
#, c-format
msgid ""
"A new item appeared during switch to\n"
@@ -3126,7 +3127,7 @@ msgstr ""
"\"^/%s@%ld\".\n"
"Det raderades av %s i r%ld."
-#: ../libsvn_client/conflicts.c:5424
+#: ../libsvn_client/conflicts.c:5565
#, c-format
msgid ""
"A new directory appeared during merge of\n"
@@ -3137,7 +3138,7 @@ msgstr ""
"\"^/%s:%ld\".\n"
"Den lades till av %s i r%ld."
-#: ../libsvn_client/conflicts.c:5430
+#: ../libsvn_client/conflicts.c:5571
#, c-format
msgid ""
"A new directory appeared during merge of\n"
@@ -3148,7 +3149,7 @@ msgstr ""
"\"^/%s:%ld-%ld\".\n"
"Den lades till av %s i r%ld."
-#: ../libsvn_client/conflicts.c:5440
+#: ../libsvn_client/conflicts.c:5581
#, c-format
msgid ""
"A new file appeared during merge of\n"
@@ -3159,7 +3160,7 @@ msgstr ""
"\"^/%s:%ld\".\n"
"Den lades till av %s i r%ld."
-#: ../libsvn_client/conflicts.c:5446
+#: ../libsvn_client/conflicts.c:5587
#, c-format
msgid ""
"A new file appeared during merge of\n"
@@ -3170,7 +3171,7 @@ msgstr ""
"\"^/%s:%ld-%ld\".\n"
"Den lades till av %s i r%ld."
-#: ../libsvn_client/conflicts.c:5455
+#: ../libsvn_client/conflicts.c:5596
#, c-format
msgid ""
"A new item appeared during merge of\n"
@@ -3181,7 +3182,7 @@ msgstr ""
"\"^/%s:%ld\".\n"
"Det lades till av %s i r%ld."
-#: ../libsvn_client/conflicts.c:5461
+#: ../libsvn_client/conflicts.c:5602
#, c-format
msgid ""
"A new item appeared during merge of\n"
@@ -3192,7 +3193,7 @@ msgstr ""
"\"^/%s:%ld-%ld\".\n"
"Det lades till av %s i r%ld."
-#: ../libsvn_client/conflicts.c:5481
+#: ../libsvn_client/conflicts.c:5622
#, c-format
msgid ""
"A new directory appeared during reverse-merge of\n"
@@ -3203,7 +3204,7 @@ msgstr ""
"\"^/%s:%ld\".\n"
"Den raderades av %s i r%ld."
-#: ../libsvn_client/conflicts.c:5488
+#: ../libsvn_client/conflicts.c:5629
#, c-format
msgid ""
"A new directory appeared during reverse-merge of\n"
@@ -3214,7 +3215,7 @@ msgstr ""
"\"^/%s:%ld-%ld\".\n"
"Den raderades av %s i r%ld."
-#: ../libsvn_client/conflicts.c:5500
+#: ../libsvn_client/conflicts.c:5641
#, c-format
msgid ""
"A new file appeared during reverse-merge of\n"
@@ -3225,7 +3226,7 @@ msgstr ""
"\"^/%s:%ld\".\n"
"Den raderades av %s i r%ld."
-#: ../libsvn_client/conflicts.c:5507
+#: ../libsvn_client/conflicts.c:5648
#, c-format
msgid ""
"A new file appeared during reverse-merge of\n"
@@ -3236,7 +3237,7 @@ msgstr ""
"\"^/%s:%ld-%ld\".\n"
"Den raderades av %s i r%ld."
-#: ../libsvn_client/conflicts.c:5517
+#: ../libsvn_client/conflicts.c:5658
#, c-format
msgid ""
"A new item appeared during reverse-merge of\n"
@@ -3247,7 +3248,7 @@ msgstr ""
"\"^/%s:%ld\".\n"
"Det raderades av %s i r%ld."
-#: ../libsvn_client/conflicts.c:5524
+#: ../libsvn_client/conflicts.c:5665
#, c-format
msgid ""
"A new item appeared during reverse-merge of\n"
@@ -3258,37 +3259,37 @@ msgstr ""
"\"^/%s:%ld-%ld\".\n"
"Det raderades av %s i r%ld."
-#: ../libsvn_client/conflicts.c:5835
+#: ../libsvn_client/conflicts.c:5979
#, c-format
msgid "Changes destined for a directory arrived via the following revisions during update from r%ld to r%ld."
msgstr "Ändringar avsedda för en katalog kom genom följande revisioner under uppdatering från r%ld till r%ld."
-#: ../libsvn_client/conflicts.c:5841
+#: ../libsvn_client/conflicts.c:5985
#, c-format
msgid "Changes destined for a file arrived via the following revisions during update from r%ld to r%ld"
msgstr "Ändringar avsedda för en fil kom genom följande revisioner under uppdatering från r%ld till r%ld"
-#: ../libsvn_client/conflicts.c:5846
+#: ../libsvn_client/conflicts.c:5990
#, c-format
msgid "Changes from the following revisions arrived during update from r%ld to r%ld"
msgstr "Ändringar från följande revisioner kom under uppdatering från r%ld till r%ld"
-#: ../libsvn_client/conflicts.c:5854
+#: ../libsvn_client/conflicts.c:5998
#, c-format
msgid "Changes destined for a directory arrived via the following revisions during backwards update from r%ld to r%ld"
msgstr "Ändringar avsedda för en katalog kom genom följande revisioner under uppdatering bakåt från r%ld till r%ld"
-#: ../libsvn_client/conflicts.c:5861
+#: ../libsvn_client/conflicts.c:6005
#, c-format
msgid "Changes destined for a file arrived via the following revisions during backwards update from r%ld to r%ld"
msgstr "Ändringar avsedda för en fil kom genom följande revisioner under uppdatering bakåt från r%ld till r%ld"
-#: ../libsvn_client/conflicts.c:5867
+#: ../libsvn_client/conflicts.c:6011
#, c-format
msgid "Changes from the following revisions arrived during backwards update from r%ld to r%ld"
msgstr "Ändringar från följande revisioner kom under uppdatering bakåt från r%ld till r%ld"
-#: ../libsvn_client/conflicts.c:5881 ../libsvn_client/conflicts.c:5888
+#: ../libsvn_client/conflicts.c:6025 ../libsvn_client/conflicts.c:6032
#, c-format
msgid ""
"Changes destined for a directory arrived via the following revisions during switch to\n"
@@ -3297,7 +3298,7 @@ msgstr ""
"Ändringar avsedda för en katalog kom genom följande revisioner under växling till\n"
"\"^/%s@r%ld\""
-#: ../libsvn_client/conflicts.c:5894
+#: ../libsvn_client/conflicts.c:6038
#, c-format
msgid ""
"Changes from the following revisions arrived during switch to\n"
@@ -3306,22 +3307,28 @@ msgstr ""
"Ändringar från följande revisioner kom under växling till\n"
"\"^/%s@r%ld\""
-#: ../libsvn_client/conflicts.c:5937 ../libsvn_client/conflicts.c:5951
-#: ../libsvn_client/conflicts.c:5957
+#: ../libsvn_client/conflicts.c:6081 ../libsvn_client/conflicts.c:6098
+#: ../libsvn_client/conflicts.c:6104
#, c-format
msgid "%s r%ld by %s%s"
msgstr "%s r%ld av %s%s"
-#: ../libsvn_client/conflicts.c:5947
+#: ../libsvn_client/conflicts.c:6091
#, c-format
msgid ""
"%s\n"
+" [%d revision omitted for brevity],\n"
+msgid_plural ""
+"%s\n"
" [%d revisions omitted for brevity],\n"
-msgstr ""
+msgstr[0] ""
+"%s\n"
+" [%d revision utelämnad],\n"
+msgstr[1] ""
"%s\n"
" [%d revisioner utelämnade],\n"
-#: ../libsvn_client/conflicts.c:6016
+#: ../libsvn_client/conflicts.c:6163
#, c-format
msgid ""
"Changes destined for a directory arrived during merge of\n"
@@ -3330,7 +3337,7 @@ msgstr ""
"Ändringar avsedda för en katalog kom under sammanslagning av\n"
"\"^/%s:%ld\"."
-#: ../libsvn_client/conflicts.c:6023
+#: ../libsvn_client/conflicts.c:6170
#, c-format
msgid ""
"Changes destined for a file arrived during merge of\n"
@@ -3339,7 +3346,7 @@ msgstr ""
"Ändringar avsedda för en fil kom under sammanslagning av\n"
"\"^/%s:%ld\"."
-#: ../libsvn_client/conflicts.c:6029
+#: ../libsvn_client/conflicts.c:6176
#, c-format
msgid ""
"Changes arrived during merge of\n"
@@ -3348,7 +3355,7 @@ msgstr ""
"Ändringar kom under sammanslagning av\n"
"\"^/%s:%ld\"."
-#: ../libsvn_client/conflicts.c:6041
+#: ../libsvn_client/conflicts.c:6188
#, c-format
msgid ""
"Changes destined for a directory arrived via the following revisions during merge of\n"
@@ -3357,7 +3364,7 @@ msgstr ""
"Ändringar avsedda för en katalog kom genom följande revisioner under sammanslagning av\n"
"\"^/%s:%ld-%ld\""
-#: ../libsvn_client/conflicts.c:6048
+#: ../libsvn_client/conflicts.c:6195
#, c-format
msgid ""
"Changes destined for a file arrived via the following revisions during merge of\n"
@@ -3366,7 +3373,7 @@ msgstr ""
"Ändringar avsedda för en fil kom genom följande revisioner under sammanslagninv av\n"
"\"^/%s:%ld-%ld\""
-#: ../libsvn_client/conflicts.c:6054
+#: ../libsvn_client/conflicts.c:6201
#, c-format
msgid ""
"Changes from the following revisions arrived during merge of\n"
@@ -3375,7 +3382,7 @@ msgstr ""
"Ändringar från följande revisioner kom under sammanslagning av\n"
"\"^/%s:%ld-%ld\""
-#: ../libsvn_client/conflicts.c:6066
+#: ../libsvn_client/conflicts.c:6213
#, c-format
msgid ""
"Changes destined for a directory arrived during reverse-merge of\n"
@@ -3384,7 +3391,7 @@ msgstr ""
"Ändringar avsedda för en katalog kom under omvänd sammanslagning av\n"
"\"^/%s:%ld\"."
-#: ../libsvn_client/conflicts.c:6073
+#: ../libsvn_client/conflicts.c:6220
#, c-format
msgid ""
"Changes destined for a file arrived during reverse-merge of\n"
@@ -3393,7 +3400,7 @@ msgstr ""
"Ändringar kom under omvänd sammanslagning av\n"
"\"^/%s:%ld\"."
-#: ../libsvn_client/conflicts.c:6079
+#: ../libsvn_client/conflicts.c:6226
#, c-format
msgid ""
"Changes arrived during reverse-merge of\n"
@@ -3402,7 +3409,7 @@ msgstr ""
"Ändringar kom under omvänd sammanslagning av\n"
"\"^/%s:%ld\"."
-#: ../libsvn_client/conflicts.c:6091
+#: ../libsvn_client/conflicts.c:6238
#, c-format
msgid ""
"Changes destined for a directory arrived via the following revisions during reverse-merge of\n"
@@ -3411,7 +3418,7 @@ msgstr ""
"Ändringar avsedda för en katalog kom genom följande revisioner under omvänd sammanslagning av\n"
"\"^/%s:%ld-%ld\""
-#: ../libsvn_client/conflicts.c:6099
+#: ../libsvn_client/conflicts.c:6246
#, c-format
msgid ""
"Changes destined for a file arrived via the following revisions during reverse-merge of\n"
@@ -3420,7 +3427,7 @@ msgstr ""
"Ändringar avsedda för en fil kom genom följande revisioner under omvänd sammanslagning av\n"
"\"^/%s:%ld-%ld\""
-#: ../libsvn_client/conflicts.c:6107
+#: ../libsvn_client/conflicts.c:6254
#, c-format
msgid ""
"Changes from the following revisions arrived during reverse-merge of\n"
@@ -3429,387 +3436,411 @@ msgstr ""
"Ändringar från följande revisioner kom under omvänd sammanslagning av\n"
"\"^/%s:%ld-%ld\""
-#: ../libsvn_client/conflicts.c:6296
+#: ../libsvn_client/conflicts.c:6443
#, c-format
msgid "Tree conflict on '%s' can only be resolved to the current working copy state"
msgstr "Trädkonflikt på \"%s\" kan endast lösas till tillståndet i nuvarande arbetskopia"
-#: ../libsvn_client/conflicts.c:6480 ../libsvn_client/conflicts.c:6486
+#: ../libsvn_client/conflicts.c:6627 ../libsvn_client/conflicts.c:6633
#, c-format
msgid "Cannot resolve tree conflict on '%s' (expected a base node but found none)"
msgstr "Kan inte lösa trädkonflikten på \"%s\" (en basnod förväntades men hittades inte)"
-#: ../libsvn_client/conflicts.c:6491 ../libsvn_client/conflicts.c:6517
-#: ../libsvn_client/conflicts.c:6544 ../libsvn_client/conflicts.c:6567
+#: ../libsvn_client/conflicts.c:6638 ../libsvn_client/conflicts.c:6664
+#: ../libsvn_client/conflicts.c:6691 ../libsvn_client/conflicts.c:6714
#, c-format
msgid "Unexpected option id '%d'"
msgstr "Oväntad options-ID \"%d\""
-#: ../libsvn_client/conflicts.c:6500 ../libsvn_client/conflicts.c:6509
+#: ../libsvn_client/conflicts.c:6647 ../libsvn_client/conflicts.c:6656
#, c-format
msgid "Cannot resolve tree conflict on '%s' (expected base node kind '%s', but found '%s')"
msgstr "Kan inte lösa trädkonflikten på \"%s\" (basnodstyp \"%s\" förväntades, men \"%s\" hittades)"
-#: ../libsvn_client/conflicts.c:6525 ../libsvn_client/conflicts.c:6535
+#: ../libsvn_client/conflicts.c:6672 ../libsvn_client/conflicts.c:6682
#, c-format
msgid "Cannot resolve tree conflict on '%s' (expected base node from '^/%s@%ld', but found '^/%s@%ld')"
msgstr "Kan inte lösa trädkonflikten på \"%s\" (basnod från \"^/%s@%ld\" förväntades, men \"^/%s@%ld\" hittades)"
-#: ../libsvn_client/conflicts.c:6553 ../libsvn_client/conflicts.c:6561
+#: ../libsvn_client/conflicts.c:6700 ../libsvn_client/conflicts.c:6708
#, c-format
msgid "Cannot resolve tree conflict on '%s' (expected an added item, but the item is not added)"
msgstr "Kan inte lösa trädkonflikten på \"%s\" (tillagt objekt förväntades, men objektet är inte tillagt)"
-#: ../libsvn_client/conflicts.c:6731 ../libsvn_client/conflicts.c:8546
+#: ../libsvn_client/conflicts.c:6879 ../libsvn_client/conflicts.c:8716
#, c-format
msgid "If needed, a backup copy of '%s' can be found at '%s'"
msgstr "Vid behov finns en säkerhetskopia av \"%s\" vid \"%s\""
-#: ../libsvn_client/conflicts.c:7594
+#: ../libsvn_client/conflicts.c:7741
#, c-format
msgid "Conflict resolution option '%d' requires details for tree conflict at '%s' to be fetched from the repository"
msgstr "Konfliktlösningsvalet \"%d\" kräver att detaljer om trädkonflikten vid \"%s\" hämtas från arkivet"
-#: ../libsvn_client/conflicts.c:7618
+#: ../libsvn_client/conflicts.c:7765
#, c-format
msgid "Could not determine when '%s' was added the repository"
msgstr "Kunde inte avgöra när \"%s\" lades till arkivet"
-#: ../libsvn_client/conflicts.c:7633
+#: ../libsvn_client/conflicts.c:7780
#, c-format
msgid "Could not determine when '%s' was deleted from the repository"
msgstr "Kunde inte avgöra när \"%s\" raderades från arkivet"
-#: ../libsvn_client/conflicts.c:7922
+#: ../libsvn_client/conflicts.c:8069
#, c-format
msgid "Could not determine the revision in which '^/%s' was added to the repository.\n"
msgstr "Kunde inte avgöra i vilken revision \"^/%s\" lades till arkivet.\n"
-#: ../libsvn_client/conflicts.c:8026
-#, c-format
-msgid "Conflict resolution option '%d' requires details for tree conflict at '%s' to be fetched from the repository."
-msgstr "Konfliktlösningsvalet \"%d\" kräver att detaljer om trädkonflikten vid \"%s\" hämtas från arkivet."
-
-#: ../libsvn_client/conflicts.c:8043
+#: ../libsvn_client/conflicts.c:8165
#, c-format
msgid "Cannot resolve tree conflict on '%s' (expected a copied item, but the item is not a copy)"
msgstr "Kan inte lösa trädkonflikten på \"%s\" (förväntade ett kopierat objekt, men objektet är inte en kopia)"
-#: ../libsvn_client/conflicts.c:8054
-#, c-format
-msgid "Could not find the revision in which '%s' was deleted from the repository"
-msgstr "Kunde inte avgöra i vilken revision \"%s\" raderades från arkivet"
-
-#: ../libsvn_client/conflicts.c:8064
+#: ../libsvn_client/conflicts.c:8176
#, c-format
msgid "Cannot resolve tree conflict on '%s' (expected an item copied from a revision smaller than r%ld, but the item was copied from r%ld)"
msgstr "Kan inte lösa trädkonflikten på \"%s\" (förväntade ett objekt kopierat från en revision mindre än r%ld, men objektet kopierades från r%ld)"
-#: ../libsvn_client/conflicts.c:8077
+#: ../libsvn_client/conflicts.c:8188
#, c-format
msgid "Cannot resolve tree conflict on '%s' (expected an item copied from a revision larger than r%ld, but the item was copied from r%ld)"
msgstr "Kan inte lösa trädkonflikten på \"%s\" (förväntade ett objekt kopierat från en revision större än r%ld, men objektet kopierades från r%ld)"
-#: ../libsvn_client/conflicts.c:8096
+#: ../libsvn_client/conflicts.c:8207
#, c-format
msgid "Cannot resolve tree conflict on '%s' (expected an item copied from '^/%s' or from '^/%s' but the item was copied from '^/%s@%ld')"
msgstr "Kan inte lösa trädkonflikten på \"%s\" (förväntade ett objekt kopierat från \"^/%s\" eller från \"^/%s\" men objektet kopierades från \"^/%s@%ld\")"
-#: ../libsvn_client/conflicts.c:8118
+#: ../libsvn_client/conflicts.c:8229
#, c-format
msgid "Cannot resolve tree conflict on '%s' (expected an item copied from '^/%s', but the item was copied from '^/%s@%ld')"
msgstr "Kan inte lösa trädkonflikten på \"%s\" (förväntade ett objekt kopierat från \"^/%s\", men objektet kopierades från \"^/%s@%ld\")"
-#: ../libsvn_client/conflicts.c:8143
+#: ../libsvn_client/conflicts.c:8278
+#, c-format
+msgid "Conflict resolution option '%d' requires details for tree conflict at '%s' to be fetched from the repository."
+msgstr "Konfliktlösningsvalet \"%d\" kräver att detaljer om trädkonflikten vid \"%s\" hämtas från arkivet."
+
+#: ../libsvn_client/conflicts.c:8288
+#, c-format
+msgid "Could not find the revision in which '%s' was deleted from the repository"
+msgstr "Kunde inte avgöra i vilken revision \"%s\" raderades från arkivet"
+
+#: ../libsvn_client/conflicts.c:8313
#, c-format
msgid "Cannot resolve tree conflict on '%s' (expected node kind '%s' but found '%s')"
msgstr "Kan inte lösa trädkonflikten på \"%s\" (förväntade nodtyp \"%s\" men hittade \"%s\")"
-#: ../libsvn_client/conflicts.c:8310 ../libsvn_client/conflicts.c:8593
+#: ../libsvn_client/conflicts.c:8480 ../libsvn_client/conflicts.c:8763
#, c-format
msgid "The specified conflict resolution option requires details for tree conflict at '%s' to be fetched from the repository first."
msgstr "Det angivna konfliktlösningsvalet kräver att detaljer om trädkonflikten vid \"%s\" först hämtas från arkivet."
-#: ../libsvn_client/conflicts.c:8317
+#: ../libsvn_client/conflicts.c:8487
#, c-format
msgid "Invalid operation code '%d' recorded for conflict at '%s'"
msgstr "Ogiltig operationskod \"%d\" registrerad för konflikten vid \"%s\""
-#: ../libsvn_client/conflicts.c:8654
+#: ../libsvn_client/conflicts.c:8824
#, c-format
msgid "Cannot resolve tree conflict on '%s' (expected a copied item at '%s', but the item is not a copy)"
msgstr "Kan inte lösa trädkonflikten på \"%s\" (förväntade ett kopierat objekt vid \"%s\", men objektet är inte en kopia)"
-#: ../libsvn_client/conflicts.c:8667
+#: ../libsvn_client/conflicts.c:8837
#, c-format
msgid "Cannot resolve tree conflict on '%s' (could not determine origin of '%s')"
msgstr "Kan inte lösa trädkonflikten på \"%s\" (kunde inte avgöra ursprunget för \"%s\")"
-#: ../libsvn_client/conflicts.c:8687
+#: ../libsvn_client/conflicts.c:8857
#, c-format
msgid "Cannot resolve tree conflict on '%s' (could not find common ancestor of '^/%s@%ld' and '^/%s@%ld')"
msgstr "Kan inte lösa trädkonflikten på \"%s\" (kunde inte hitta gemensamt ursprung för \"^/%s@%ld\" och \"^/%s@%ld\")"
-#: ../libsvn_client/conflicts.c:9042 ../libsvn_client/conflicts.c:9125
-#: ../libsvn_client/conflicts.c:10291
+#: ../libsvn_client/conflicts.c:9334 ../libsvn_client/conflicts.c:9417
+#: ../libsvn_client/conflicts.c:10802
msgid "Postpone"
msgstr "Lös senare"
-#: ../libsvn_client/conflicts.c:9043 ../libsvn_client/conflicts.c:9126
-#: ../libsvn_client/conflicts.c:10292
+#: ../libsvn_client/conflicts.c:9335 ../libsvn_client/conflicts.c:9418
+#: ../libsvn_client/conflicts.c:10803
msgid "skip this conflict and leave it unresolved"
msgstr "hoppa över denna konflikt och lämna den olöst"
-#: ../libsvn_client/conflicts.c:9052 ../libsvn_client/conflicts.c:9073
-#: ../libsvn_client/conflicts.c:9131
+#: ../libsvn_client/conflicts.c:9344 ../libsvn_client/conflicts.c:9365
+#: ../libsvn_client/conflicts.c:9423
msgid "Accept base"
msgstr "Godta basen"
-#: ../libsvn_client/conflicts.c:9053
+#: ../libsvn_client/conflicts.c:9345
msgid "discard local and incoming changes for this binary file"
msgstr "släng bort lokala och inkommande ändringar för denna binärfil"
-#: ../libsvn_client/conflicts.c:9058 ../libsvn_client/conflicts.c:9079
-#: ../libsvn_client/conflicts.c:9137
+#: ../libsvn_client/conflicts.c:9350 ../libsvn_client/conflicts.c:9371
+#: ../libsvn_client/conflicts.c:9429
msgid "Accept incoming"
msgstr "Godta inkommande"
-#: ../libsvn_client/conflicts.c:9059
+#: ../libsvn_client/conflicts.c:9351
msgid "accept incoming version of binary file"
msgstr "godta inkommande version av binärfil"
-#: ../libsvn_client/conflicts.c:9064 ../libsvn_client/conflicts.c:9103
-#: ../libsvn_client/conflicts.c:9143 ../libsvn_client/conflicts.c:9200
+#: ../libsvn_client/conflicts.c:9356 ../libsvn_client/conflicts.c:9395
+#: ../libsvn_client/conflicts.c:9435 ../libsvn_client/conflicts.c:9492
msgid "Mark as resolved"
msgstr "Markera som löst"
-#: ../libsvn_client/conflicts.c:9065
+#: ../libsvn_client/conflicts.c:9357
msgid "accept binary file as it appears in the working copy"
msgstr "godta binärfilen som den är i arbetskopian"
-#: ../libsvn_client/conflicts.c:9074
+#: ../libsvn_client/conflicts.c:9366
msgid "discard local and incoming changes for this file"
msgstr "släng bort lokala och inkommande ändringar för denna fil"
-#: ../libsvn_client/conflicts.c:9080
+#: ../libsvn_client/conflicts.c:9372
msgid "accept incoming version of entire file"
msgstr "godta inkommande version av hela filen"
-#: ../libsvn_client/conflicts.c:9085
+#: ../libsvn_client/conflicts.c:9377
msgid "Reject incoming"
msgstr "Avslå inkommande"
-#: ../libsvn_client/conflicts.c:9086
+#: ../libsvn_client/conflicts.c:9378
msgid "reject all incoming changes for this file"
msgstr "avslå alla inkommande ändringar för denna fil"
-#: ../libsvn_client/conflicts.c:9091 ../libsvn_client/conflicts.c:9149
+#: ../libsvn_client/conflicts.c:9383 ../libsvn_client/conflicts.c:9441
msgid "Accept incoming for conflicts"
msgstr "Godta inkommande för konflikter"
-#: ../libsvn_client/conflicts.c:9092
+#: ../libsvn_client/conflicts.c:9384
msgid "accept changes only where they conflict"
msgstr "godta ändringar bara där konflikter uppstår"
-#: ../libsvn_client/conflicts.c:9097 ../libsvn_client/conflicts.c:9155
+#: ../libsvn_client/conflicts.c:9389 ../libsvn_client/conflicts.c:9447
msgid "Reject conflicts"
msgstr "Avslå konflikter"
-#: ../libsvn_client/conflicts.c:9098 ../libsvn_client/conflicts.c:9156
+#: ../libsvn_client/conflicts.c:9390 ../libsvn_client/conflicts.c:9448
msgid "reject changes which conflict and accept the rest"
msgstr "avslå ändringar som orsakar konflikter och godta resten"
-#: ../libsvn_client/conflicts.c:9104
+#: ../libsvn_client/conflicts.c:9396
msgid "accept the file as it appears in the working copy"
msgstr "godta filen som den är i arbetskopian"
-#: ../libsvn_client/conflicts.c:9132
+#: ../libsvn_client/conflicts.c:9424
msgid "discard local and incoming changes for this property"
msgstr "släng bort lokala och inkommande ändringar för denna egenskap"
-#: ../libsvn_client/conflicts.c:9138
+#: ../libsvn_client/conflicts.c:9430
msgid "accept incoming version of entire property value"
msgstr "godta inkommande version av hela egenskapsvärdet"
-#: ../libsvn_client/conflicts.c:9144
+#: ../libsvn_client/conflicts.c:9436
msgid "accept working copy version of entire property value"
msgstr "godta arbetskopians version av hela egenskapsvärdet"
-#: ../libsvn_client/conflicts.c:9150
+#: ../libsvn_client/conflicts.c:9442
msgid "accept incoming changes only where they conflict"
msgstr "godta inkommande ändringar bara där konflikter uppstår"
-#: ../libsvn_client/conflicts.c:9161
+#: ../libsvn_client/conflicts.c:9453
msgid "Accept merged"
msgstr "Godta sammanslaget"
-#: ../libsvn_client/conflicts.c:9162
+#: ../libsvn_client/conflicts.c:9454
msgid "accept merged version of property value"
msgstr "godta sammanslagen version av egenskapsvärde"
-#: ../libsvn_client/conflicts.c:9201
+#: ../libsvn_client/conflicts.c:9493
msgid "accept current working copy state"
msgstr "godta nuvarande tillstånd i arbetskopia"
-#: ../libsvn_client/conflicts.c:9228
+#: ../libsvn_client/conflicts.c:9520
msgid "Update move destination"
msgstr "Uppdatera flyttmålet"
-#: ../libsvn_client/conflicts.c:9229
+#: ../libsvn_client/conflicts.c:9521
msgid "apply incoming changes to move destination"
msgstr "utför inkommande ändringar på flyttmålet"
-#: ../libsvn_client/conflicts.c:9263
+#: ../libsvn_client/conflicts.c:9555
msgid "Update any moved-away children"
msgstr "Uppdatera bortflyttade barn om sådana finns"
-#: ../libsvn_client/conflicts.c:9264
+#: ../libsvn_client/conflicts.c:9556
msgid "prepare for updating moved-away children, if any"
msgstr "förbered för uppdatering av bortflyttade barn, om sådana finns"
-#: ../libsvn_client/conflicts.c:9309
+#: ../libsvn_client/conflicts.c:9601
#, c-format
msgid "ignore and do not add '^/%s@%ld' here"
msgstr "hoppa över och lägg inte till \"^/%s@%ld\" här"
-#: ../libsvn_client/conflicts.c:9317
+#: ../libsvn_client/conflicts.c:9609
#, c-format
msgid "replace '^/%s@%ld' with the locally added file"
msgstr "ersätt \"^/%s@%ld\" med den lokalt tillagda filen"
-#: ../libsvn_client/conflicts.c:9322
+#: ../libsvn_client/conflicts.c:9614
#, c-format
msgid "replace '^/%s@%ld' with the locally added directory"
msgstr "ersätt \"^/%s@%ld\" med den lokalt tillagda katalogen"
-#: ../libsvn_client/conflicts.c:9328
+#: ../libsvn_client/conflicts.c:9620
#, c-format
msgid "replace '^/%s@%ld' with the locally added item"
msgstr "ersätt \"^/%s@%ld\" med det lokalt tillagda objektet"
-#: ../libsvn_client/conflicts.c:9333
+#: ../libsvn_client/conflicts.c:9625
#, c-format
msgid "unexpected operation code '%d'"
msgstr "oväntad operationskod \"%d\""
-#: ../libsvn_client/conflicts.c:9337
+#: ../libsvn_client/conflicts.c:9629
msgid "Ignore incoming addition"
msgstr "Hoppa över inkommande tillägg"
-#: ../libsvn_client/conflicts.c:9383 ../libsvn_client/conflicts.c:9508
+#: ../libsvn_client/conflicts.c:9675 ../libsvn_client/conflicts.c:9804
#, c-format
msgid "merge '^/%s@%ld' into '%s'"
msgstr "slå samman \"^/%s@%ld\" in i \"%s\""
-#: ../libsvn_client/conflicts.c:9391 ../libsvn_client/conflicts.c:9516
+#: ../libsvn_client/conflicts.c:9683 ../libsvn_client/conflicts.c:9813
#, c-format
msgid "merge local '%s' and '^/%s@%ld'"
msgstr "slå samman lokala \"%s\" och \"^/%s@%ld\""
-#: ../libsvn_client/conflicts.c:9401
+#: ../libsvn_client/conflicts.c:9693
msgid "Merge the files"
msgstr "Slå samman filerna"
-#: ../libsvn_client/conflicts.c:9450
+#: ../libsvn_client/conflicts.c:9742
#, c-format
msgid "delete '%s', copy '^/%s@%ld' here, and merge the files"
msgstr "radera \"%s\", kopiera hit \"^/%s@%ld\", och slå samman filerna"
-#: ../libsvn_client/conflicts.c:9460 ../libsvn_client/conflicts.c:9638
+#: ../libsvn_client/conflicts.c:9752 ../libsvn_client/conflicts.c:9935
msgid "Replace and merge"
msgstr "Ersätt och slå samman"
-#: ../libsvn_client/conflicts.c:9525
+#: ../libsvn_client/conflicts.c:9822
msgid "Merge the directories"
msgstr "Slå samman katalogerna"
-#: ../libsvn_client/conflicts.c:9572
+#: ../libsvn_client/conflicts.c:9869
#, c-format
msgid "delete '%s' and copy '^/%s@%ld' here"
msgstr "radera \"%s\" och kopiera hit \"^/%s@%ld\""
-#: ../libsvn_client/conflicts.c:9581
+#: ../libsvn_client/conflicts.c:9878
msgid "Delete my directory and replace it with incoming directory"
msgstr "Radera min katalog och ersätt den med inkommande katalog"
-#: ../libsvn_client/conflicts.c:9628
+#: ../libsvn_client/conflicts.c:9925
#, c-format
msgid "delete '%s', copy '^/%s@%ld' here, and merge the directories"
msgstr "radera \"%s\", kopiera hit \"^/%s@%ld\", och slå samman katalogerna"
-#: ../libsvn_client/conflicts.c:9708
+#: ../libsvn_client/conflicts.c:10005
#, c-format
msgid "ignore the deletion of '^/%s@%ld'"
msgstr "hoppa över raderingen av \"^/%s@%ld\""
-#: ../libsvn_client/conflicts.c:9713
+#: ../libsvn_client/conflicts.c:10010
msgid "Ignore incoming deletion"
msgstr "Hoppa över inkommande radering"
-#: ../libsvn_client/conflicts.c:9766
+#: ../libsvn_client/conflicts.c:10063
#, c-format
msgid "accept the deletion of '%s'"
msgstr "godta borttagningen av \"%s\""
-#: ../libsvn_client/conflicts.c:9773
+#: ../libsvn_client/conflicts.c:10070
msgid "Accept incoming deletion"
msgstr "Godta inkommande radering"
-#: ../libsvn_client/conflicts.c:9812
+#: ../libsvn_client/conflicts.c:10109
#, c-format
msgid "move '%s' to '%s' and merge"
msgstr "flytta \"%s\" till \"%s\" och slå samman"
-#: ../libsvn_client/conflicts.c:9822
+#: ../libsvn_client/conflicts.c:10119
#, c-format
msgid "move and merge local changes from '%s' into '%s'"
msgstr "flytta och slå samman lokala ändringar från \"%s\" till \"%s\""
-#: ../libsvn_client/conflicts.c:9883 ../libsvn_client/conflicts.c:9943
+#: ../libsvn_client/conflicts.c:10180 ../libsvn_client/conflicts.c:10240
msgid "Move and merge"
msgstr "Flytta och slå samman"
-#: ../libsvn_client/conflicts.c:10027
+#: ../libsvn_client/conflicts.c:10338
#, c-format
msgid "apply changes to move destination '%s'"
msgstr "utför ändringar på flyttmålet \"%s\""
-#: ../libsvn_client/conflicts.c:10036
+#: ../libsvn_client/conflicts.c:10347
msgid "Apply to move destination"
msgstr "Utför ändringar på flyttmålet"
-#: ../libsvn_client/conflicts.c:10069 ../libsvn_client/conflicts.c:10197
+#: ../libsvn_client/conflicts.c:10412 ../libsvn_client/conflicts.c:10742
+#, c-format
+msgid "apply changes to '%s'"
+msgstr "utför ändringar på \"%s\""
+
+#: ../libsvn_client/conflicts.c:10425 ../libsvn_client/conflicts.c:10433
+msgid "Apply to corresponding local location"
+msgstr "Utför ändringar på motsvarande lokalt ställe"
+
+#: ../libsvn_client/conflicts.c:10464 ../libsvn_client/conflicts.c:10645
#, c-format
msgid "Getting a list of possible move targets requires details for tree conflict at '%s' to be fetched from the repository first"
msgstr "För att räkna upp möjliga flyttmål måste detaljer om trädkonflikten vid \"%s\" först hämtas från arkivet"
-#: ../libsvn_client/conflicts.c:10122 ../libsvn_client/conflicts.c:10245
+#: ../libsvn_client/conflicts.c:10517 ../libsvn_client/conflicts.c:10755
#, c-format
msgid "Setting a move target requires details for tree conflict at '%s' to be fetched from the repository first"
msgstr "För att ange ett flyttmål måste detaljer om trädkonflikten vid \"%s\" först hämtas från arkivet"
-#: ../libsvn_client/conflicts.c:10131 ../libsvn_client/conflicts.c:10258
+#: ../libsvn_client/conflicts.c:10526 ../libsvn_client/conflicts.c:10768
#, c-format
msgid "Index '%d' is out of bounds of the possible move target list for '%s'"
msgstr "Index \"%d\" är utanför listan av möjliga flyttmål för \"%s\""
-#: ../libsvn_client/conflicts.c:10168
+#: ../libsvn_client/conflicts.c:10563
#, c-format
msgid "Repository path '%s' not found in list of possible move targets for '%s'"
msgstr "Arkivsökvägen \"%s\" fanns inte i listan av möjliga flyttmål för \"%s\""
-#: ../libsvn_client/conflicts.c:10475 ../libsvn_client/conflicts.c:10524
-#: ../libsvn_client/conflicts.c:10577
+#: ../libsvn_client/conflicts.c:10610
+#, c-format
+msgid "Getting a list of possible move siblings requires details for tree conflict at '%s' to be fetched from the repository first"
+msgstr "För att få en lista på möjliga syskon att flytta måste detaljer om trädkonflikten vid \"%s\" först hämtas från arkivet"
+
+#: ../libsvn_client/conflicts.c:10719
+#, c-format
+msgid "Setting a move sibling requires details for tree conflict at '%s' to be fetched from the repository first"
+msgstr "För att ange ett syskon att flytta måste detaljer om trädkonflikten vid \"%s\" först hämtas från arkivet"
+
+#: ../libsvn_client/conflicts.c:10728
+#, c-format
+msgid "Index '%d' is out of bounds of the possible move sibling list for '%s'"
+msgstr "Index \"%d\" är utanför listan av möjliga syskon att flytta för \"%s\""
+
+#: ../libsvn_client/conflicts.c:10988 ../libsvn_client/conflicts.c:11037
+#: ../libsvn_client/conflicts.c:11090
#, c-format
msgid "Inapplicable conflict resolution option given for conflicted path '%s'"
msgstr "Ej tillämpbart konfliktlösningsval angivet för konfliktsökväg \"%s\""
-#: ../libsvn_client/conflicts.c:10797
+#: ../libsvn_client/conflicts.c:11310
#, c-format
msgid "Property '%s' is not in conflict."
msgstr "Egenskapen \"%s\" är inte i konflikt"
-#: ../libsvn_client/conflicts.c:11187 ../libsvn_wc/conflicts.c:3292
+#: ../libsvn_client/conflicts.c:11700 ../libsvn_wc/conflicts.c:3327
#, c-format
msgid "Unable to resolve pending conflict on '%s'"
msgstr "Kan inte lösa väntande konflikt på \"%s\""
@@ -3847,7 +3878,7 @@ msgstr "Sökvägen \"%s\" finns men är utesluten"
#: ../libsvn_client/copy.c:991 ../libsvn_client/copy.c:1715
#: ../libsvn_client/copy.c:2090 ../libsvn_client/copy.c:2732
#: ../libsvn_client/import.c:911 ../libsvn_client/mtcc.c:456
-#: ../libsvn_client/mtcc.c:473 ../libsvn_ra_serf/util.c:1900
+#: ../libsvn_client/mtcc.c:473 ../libsvn_ra_serf/util.c:1920
#, c-format
msgid "Path '%s' already exists"
msgstr "Sökvägen \"%s\" finns redan"
@@ -3868,8 +3899,8 @@ msgstr "Katalogen \"%s\" är inte versionshanterad"
msgid "Path '%s' is not a directory"
msgstr "Sökvägen \"%s\" är ingen katalog"
-#: ../libsvn_client/copy.c:1131 ../libsvn_client/merge.c:10252
-#: ../svnlook/svnlook.c:1411
+#: ../libsvn_client/copy.c:1131 ../libsvn_client/merge.c:10270
+#: ../svnlook/svnlook.c:1445
#, c-format
msgid "Path '%s' does not exist"
msgstr "Sökvägen \"%s\" finns inte"
@@ -3939,11 +3970,11 @@ msgid "Path '%s' is not in the working copy"
msgstr "Sökvägen \"%s\" finns inte i arbetskopian"
#: ../libsvn_client/copy_foreign.c:373 ../libsvn_client/export.c:814
-#: ../libsvn_client/repos_diff.c:1002 ../libsvn_fs_fs/dag.c:1107
+#: ../libsvn_client/repos_diff.c:997 ../libsvn_fs_fs/dag.c:1107
#: ../libsvn_fs_x/dag.c:904 ../libsvn_ra_serf/commit.c:2229
#: ../libsvn_ra_svn/client.c:1506 ../libsvn_wc/diff_editor.c:2109
#: ../libsvn_wc/diff_editor.c:2195 ../libsvn_wc/externals.c:711
-#: ../libsvn_wc/update_editor.c:4228
+#: ../libsvn_wc/update_editor.c:4239
#, c-format
msgid "Checksum mismatch for '%s'"
msgstr "Felaktig kontrollsumma för \"%s\""
@@ -3987,82 +4018,82 @@ msgstr "URL:en \"%s\" finns inte"
msgid "Cannot specify revisions (except HEAD) with move operations"
msgstr "Revisioner (förutom HEAD) kan ej anges vid flyttoperationer"
-#: ../libsvn_client/deprecated.c:1667
+#: ../libsvn_client/deprecated.c:1750
msgid "No commits in repository"
msgstr "Ingenting har arkiverats i arkivet"
-#: ../libsvn_client/deprecated.c:3052 ../libsvn_wc/deprecated.c:4202
+#: ../libsvn_client/deprecated.c:3151 ../libsvn_wc/deprecated.c:4228
msgid "Non-recursive relocation not supported"
msgstr "Icke-rekursiv omlokalisering otillåten"
-#: ../libsvn_client/diff.c:66
+#: ../libsvn_client/diff.c:69
#, c-format
msgid "Path '%s' must be an immediate child of the directory '%s'"
msgstr "Sökvägen \"%s\" måste stå omedelbart under katalogen \"%s\""
-#: ../libsvn_client/diff.c:241
+#: ../libsvn_client/diff.c:292
#, c-format
msgid "%s\t(revision %ld)"
msgstr "%s\t(revision %ld)"
-#: ../libsvn_client/diff.c:243
+#: ../libsvn_client/diff.c:294
#, c-format
msgid "%s\t(nonexistent)"
msgstr "%s\t(finns ej)"
#. SVN_INVALID_REVNUM
-#: ../libsvn_client/diff.c:245
+#: ../libsvn_client/diff.c:296
#, c-format
msgid "%s\t(working copy)"
msgstr "%s\t(arbetskopia)"
-#: ../libsvn_client/diff.c:934
+#: ../libsvn_client/diff.c:978
#, c-format
msgid "Cannot display: file marked as a binary type.%s"
msgstr "Kan inte visa: filen markerad som binär.%s"
-#: ../libsvn_client/diff.c:1471 ../libsvn_client/merge.c:7301
-#: ../libsvn_client/merge.c:10654
+#: ../libsvn_client/diff.c:1474 ../libsvn_client/merge.c:7344
+#: ../libsvn_client/merge.c:10672
msgid "Not all required revisions are specified"
msgstr "Alla revisioner som krävs angavs inte"
-#: ../libsvn_client/diff.c:1485
+#: ../libsvn_client/diff.c:1488
msgid "At least one revision must be something other than BASE or WORKING when diffing a URL"
msgstr "Åtminstone en revision måste vara något annat än BASE eller WORKING för diff av en URL"
-#: ../libsvn_client/diff.c:1522
+#: ../libsvn_client/diff.c:1525
#, c-format
msgid "Diff target '%s' was not found in the repository at revision '%ld'"
msgstr "\"%s\" fanns inte i revision %ld i arkivet"
-#: ../libsvn_client/diff.c:1527
+#: ../libsvn_client/diff.c:1530
#, c-format
msgid "Diff target '%s' was not found in the repository at revision '%ld' or '%ld'"
msgstr "\"%s\" fanns inte i revision %ld eller %ld i arkivet"
-#: ../libsvn_client/diff.c:1703
+#: ../libsvn_client/diff.c:1717
#, c-format
msgid "Diff target '%s' was not found in the repository at revisions '%ld' and '%ld'"
msgstr "\"%s\" fanns inte i revision %ld och %ld i arkivet"
-#: ../libsvn_client/diff.c:1708
+#: ../libsvn_client/diff.c:1722
#, c-format
msgid "Diff targets '%s' and '%s' were not found in the repository at revisions '%ld' and '%ld'"
msgstr "\"%s\" och \"%s\" fanns inte i revision %ld och %ld i arkivet"
-#: ../libsvn_client/diff.c:1807
-msgid "Sorry, svn_client_diff6 was called in a way that is not yet supported"
-msgstr "Tyvärr anropades svn_client_diff6 på ett sätt som inte stöds ännu"
+#: ../libsvn_client/diff.c:1821
+msgid "Sorry, svn_client_diff7 was called in a way that is not yet supported"
+msgstr "Tyvärr anropades svn_client_diff7 på ett sätt som inte stöds ännu"
-#: ../libsvn_client/diff.c:1847
-msgid "Only diffs between a path's text-base and its working files are supported at this time"
-msgstr "Endast skillnader mellan en arbetskopias textbas och arbetsfilerna stöds för närvarande"
+#: ../libsvn_client/diff.c:1863
+msgid "A non-URL diff at this time must be either from a path's base to the same path's working version or between the working versions of two paths"
+msgstr "En diff som inte är en URL måste antingen komma från sökvägens bas till samma sökvägs arbetsversion eller mellan två arbetsversioner av två sökvägar"
-#: ../libsvn_client/diff.c:2551 ../libsvn_client/diff.c:2638
+#: ../libsvn_client/diff.c:2794 ../libsvn_client/diff.c:2857
msgid "Cannot ignore properties and show only properties at the same time"
msgstr "Kan inte samtidigt bortse från egenskaper och bara visa egenskaper"
-#: ../libsvn_client/diff_local.c:789 ../libsvn_wc/props.c:1675
+#: ../libsvn_client/diff_local.c:733 ../libsvn_wc/props.c:1675
#, c-format
msgid "'%s' is not a file or directory"
msgstr "\"%s\" är ingen fil eller katalog"
@@ -4076,7 +4107,7 @@ msgstr "\"%s\" är inte ett giltigt radslutsvärde"
msgid "Destination directory exists, and will not be overwritten unless forced"
msgstr "Destinationskatalogen finns och kommer inte att skrivas över om det inte framtvingas"
-#: ../libsvn_client/export.c:265 ../libsvn_client/export.c:1529
+#: ../libsvn_client/export.c:265 ../libsvn_client/export.c:1526
#: ../libsvn_wc/adm_crawler.c:1270 ../libsvn_wc/copy.c:651
#: ../libsvn_wc/crop.c:239 ../libsvn_wc/crop.c:342 ../libsvn_wc/info.c:377
#: ../libsvn_wc/node.c:529 ../libsvn_wc/props.c:202 ../libsvn_wc/status.c:2728
@@ -4097,14 +4128,14 @@ msgstr "Destinationskatalogen finns och kommer inte att skrivas över om det int
msgid "The node '%s' was not found."
msgstr "Noden \"%s\" kunde inte hittas."
-#: ../libsvn_client/export.c:285 ../libsvn_client/export.c:1182
-#: ../libsvn_client/export.c:1237
+#: ../libsvn_client/export.c:285 ../libsvn_client/export.c:1181
+#: ../libsvn_client/export.c:1235
#, c-format
msgid "Destination file '%s' exists, and will not be overwritten unless forced"
msgstr "Destinationsfilen \"%s\" finns och kommer inte att skrivas över om det inte framtvingas"
-#: ../libsvn_client/export.c:291 ../libsvn_client/export.c:1187
-#: ../libsvn_client/export.c:1242
+#: ../libsvn_client/export.c:291 ../libsvn_client/export.c:1186
+#: ../libsvn_client/export.c:1240
#, c-format
msgid "Destination '%s' exists. Cannot overwrite directory with non-directory"
msgstr "Destinationen \"%s\" finns redan. En katalog kan inte skrivas över med något som inte är en katalog"
@@ -4175,8 +4206,8 @@ msgstr "\"%s\" är av en typ som är okänd eller ej kan versionshanteras"
msgid "New entry name required when importing a file"
msgstr "Nytt postnamn krävs vid import av en fil"
-#: ../libsvn_client/import.c:787 ../libsvn_client/patch.c:3752
-#: ../libsvn_client/patch.c:3764 ../libsvn_wc/delete.c:93
+#: ../libsvn_client/import.c:787 ../libsvn_client/patch.c:3754
+#: ../libsvn_client/patch.c:3766 ../libsvn_wc/delete.c:93
#: ../libsvn_wc/lock.c:121 ../libsvn_wc/wc_db_wcroot.c:78
#, c-format
msgid "'%s' does not exist"
@@ -4249,12 +4280,12 @@ msgstr "De speciella revisionerna PREV, BASE och COMMITTED kan inte användas fÃ
msgid "Missing required revision specification"
msgstr "Revisionsspecifikation saknas"
-#: ../libsvn_client/merge.c:416
+#: ../libsvn_client/merge.c:436
#, c-format
msgid "URL '%s' of '%s' is not in repository '%s'"
msgstr "URL:en \"%s\" för \"%s\" är inte i arkivet \"%s\""
-#: ../libsvn_client/merge.c:453
+#: ../libsvn_client/merge.c:473
#, c-format
msgid "'%s' must be from the same repository as '%s'"
msgstr "\"%s\" måste vara från samma arkiv som \"%s\""
@@ -4262,26 +4293,26 @@ msgstr "\"%s\" måste vara från samma arkiv som \"%s\""
#. xgettext: the '.working', '.merge-left.r%ld' and
#. '.merge-right.r%ld' strings are used to tag onto a file
#. name in case of a merge conflict
-#: ../libsvn_client/merge.c:2111
+#: ../libsvn_client/merge.c:2108
#, c-format
msgid ".working%s%s"
msgstr ".arbetskopia%s%s"
-#: ../libsvn_client/merge.c:2114
+#: ../libsvn_client/merge.c:2111
#, c-format
msgid ".merge-left.r%ld%s%s"
msgstr ".sammanslagning-vänster.r%ld%s%s"
-#: ../libsvn_client/merge.c:2118
+#: ../libsvn_client/merge.c:2115
#, c-format
msgid ".merge-right.r%ld%s%s"
msgstr ".sammanslagning-höger.r%ld%s%s"
-#: ../libsvn_client/merge.c:4816
+#: ../libsvn_client/merge.c:4859
msgid "Cannot reverse-merge a range from a path's own future history; try updating first"
msgstr "Det går inte att göra en omvänd sammanslagning av revisioner från en sökvägs egen framtid; försök att uppdatera först"
-#: ../libsvn_client/merge.c:5537
+#: ../libsvn_client/merge.c:5580
#, c-format
msgid ""
"One or more conflicts were produced while merging r%ld:%ld into\n"
@@ -4294,79 +4325,79 @@ msgstr ""
"lös alla konflikter och kör om sammanslagningen för att ta hand om\n"
"de återstående revisionerna"
-#: ../libsvn_client/merge.c:6353
+#: ../libsvn_client/merge.c:6396
#, c-format
msgid "Invalid mergeinfo detected on '%s', merge tracking not possible"
msgstr "Ogiltig sammanslagningsinformation (\"mergeinfo\") för \"%s\"; följning av sammanslagning ej möjlig"
-#: ../libsvn_client/merge.c:6504
+#: ../libsvn_client/merge.c:6547
msgid "Merge tracking not allowed with missing subtrees; try restoring these items first:\n"
msgstr "Följning av sammanslagning kräver att inga delträd saknas; försök att återställa dessa först:\n"
-#: ../libsvn_client/merge.c:7505
+#: ../libsvn_client/merge.c:7548
#, c-format
msgid "Invalid mergeinfo detected on merge target '%s', merge tracking not possible"
msgstr "Ogiltig sammanslagningsinformation (\"mergeinfo\") för målet \"%s\"; följning av sammanslagning ej möjlig"
-#: ../libsvn_client/merge.c:9823
+#: ../libsvn_client/merge.c:9856
msgid "Use of two URLs is not compatible with mergeinfo modification"
msgstr "Det går inte att använda två URL:er vid ändring av sammanslagningsinformationen"
-#: ../libsvn_client/merge.c:9830 ../libsvn_client/merge.c:10166
+#: ../libsvn_client/merge.c:9863 ../libsvn_client/merge.c:10184
msgid "Merge from foreign repository is not compatible with mergeinfo modification"
msgstr "Sammanslagning från annat arkiv går inte vid ändring av sammanslagningsinformationen"
-#: ../libsvn_client/merge.c:10259 ../libsvn_client/merge.c:10402
+#: ../libsvn_client/merge.c:10277 ../libsvn_client/merge.c:10420
#, c-format
msgid "Merge target '%s' does not exist in the working copy"
msgstr "Sammanslagningsmålet \"%s\" finns inte i arbetskopian"
-#: ../libsvn_client/merge.c:10282
+#: ../libsvn_client/merge.c:10300
msgid "Cannot determine revision of working copy"
msgstr "Arbetskopians revision kan inte bestämmas"
-#: ../libsvn_client/merge.c:10288
+#: ../libsvn_client/merge.c:10306
#, c-format
msgid "Cannot merge into mixed-revision working copy [%ld:%ld]; try updating first"
msgstr "Sammanslagning till en arbetskopia i blandad revision [%ld:%ld] går inte; försök med att uppdatera först"
-#: ../libsvn_client/merge.c:10303
+#: ../libsvn_client/merge.c:10321
msgid "Cannot merge into a working copy with a switched subtree"
msgstr "Kan inte slå samman till en arbetskopia med växlat delträd"
-#: ../libsvn_client/merge.c:10319
+#: ../libsvn_client/merge.c:10337
msgid "Cannot merge into a working copy that has local modifications"
msgstr "Kan inte slå samman till en arbetskopia som har lokala ändringar"
-#: ../libsvn_client/merge.c:10339 ../svn/merge-cmd.c:56
+#: ../libsvn_client/merge.c:10357 ../svn/merge-cmd.c:56
#, c-format
msgid "Invalid merge source '%s'; a working copy path can only be used with a repository revision (a number, a date, or head)"
msgstr "Ogiltig sammanslagningskälla \"%s\"; en sökväg i en arbetskopia kan bara användas med en arkivrevision (ett nummer, ett datum eller \"HEAD\")"
-#: ../libsvn_client/merge.c:10657 ../svn/merge-cmd.c:123
+#: ../libsvn_client/merge.c:10675 ../svn/merge-cmd.c:123
msgid "Merge sources must both be either paths or URLs"
msgstr "Båda sammanslagningskällorna måste vara antingen sökvägar eller URL:er"
-#: ../libsvn_client/merge.c:11427 ../libsvn_client/merge.c:11589
-#: ../libsvn_client/merge.c:12507
+#: ../libsvn_client/merge.c:11445 ../libsvn_client/merge.c:11607
+#: ../libsvn_client/merge.c:12525
#, c-format
msgid "'%s@%ld' must be ancestrally related to '%s@%ld'"
msgstr "\"%s@%ld\" måste ha samma ursprung som \"%s@%ld\""
-#: ../libsvn_client/merge.c:11539
+#: ../libsvn_client/merge.c:11557
#, c-format
msgid "Neither the reintegrate source nor target can be the root of the repository"
msgstr "Varken återföreningens källa eller mål kan vara arkivets rot"
-#: ../libsvn_client/merge.c:11549
+#: ../libsvn_client/merge.c:11567
msgid "Reintegrate merge not possible"
msgstr "Återförenande sammanslagning ej möjlig"
-#: ../libsvn_client/merge.c:11619
+#: ../libsvn_client/merge.c:11637
msgid " Missing ranges: "
msgstr " Saknade revisioner: "
-#: ../libsvn_client/merge.c:11622
+#: ../libsvn_client/merge.c:11640
#, c-format
msgid ""
"Reintegrate can only be used if revisions %ld through %ld were previously merged from %s to the reintegrate source, but this is not the case:\n"
@@ -4375,29 +4406,29 @@ msgstr ""
"Återförening kan bara ske om revisionerna %ld till %ld tidigare slogs samman från %s till återföreningens källa, men så är inte fallet:\n"
"%s"
-#: ../libsvn_client/merge.c:11681
+#: ../libsvn_client/merge.c:11699
#, c-format
msgid "Can't reintegrate into '%s' because it is locally added and therefore not related to the merge source"
msgstr "Kan inte återförena in i \"%s\" eftersom den har lagts till lokalt och är därför orelaterad till sammanslagningskällan"
-#: ../libsvn_client/merge.c:11969
+#: ../libsvn_client/merge.c:11987
msgid "Cannot merge automatically while ignoring mergeinfo"
msgstr "Automatisk sammanslagning ej möjlig utan användning av sammanslagningsinformation"
-#: ../libsvn_client/merge.c:12637
+#: ../libsvn_client/merge.c:12655
#, c-format
msgid "Can't perform automatic merge into '%s' because it is locally added and therefore not related to the merge source"
msgstr "Kan inte göra automatisk sammanslagning in i \"%s\" eftersom den har lagts till lokalt och är därför orelaterad till sammanslagningskällan"
-#: ../libsvn_client/merge.c:12736
+#: ../libsvn_client/merge.c:12754
msgid "The required merge is reintegrate-like, and the record-only option cannot be used with this kind of merge"
msgstr "Sammanslagningen som krävs är en återförening, och väljaren \"record-only\" kan inte användas för den här sortens sammanslagning"
-#: ../libsvn_client/merge.c:12742
+#: ../libsvn_client/merge.c:12760
msgid "The required merge is reintegrate-like, and the depth option cannot be used with this kind of merge"
msgstr "Sammanslagningen som krävs är en återförening, och väljaren för att ange djupet kan inte användas för den här sortens sammanslagning"
-#: ../libsvn_client/merge.c:12748
+#: ../libsvn_client/merge.c:12766
msgid "The required merge is reintegrate-like, and the force_delete option cannot be used with this kind of merge"
msgstr "Sammanslagningen som krävs är en återförening, och väljaren \"force_delete\" kan inte användas för den här sortens sammanslagning"
@@ -4524,19 +4555,21 @@ msgstr "Kan inte arkivera till \"%s\" eftersom det inte är en katalog"
#: ../libsvn_client/patch.c:346
#, c-format
-msgid "Cannot strip %u components from '%s'"
-msgstr "Kan inte ta bort %u sökvägsdelar från \"%s\""
+msgid "Cannot strip %u component from '%s'"
+msgid_plural "Cannot strip %u components from '%s'"
+msgstr[0] "Kan inte ta bort %u sökvägsdel från \"%s\""
+msgstr[1] "Kan inte ta bort %u sökvägsdelar från \"%s\""
-#: ../libsvn_client/patch.c:1296 ../libsvn_client/patch.c:1342
+#: ../libsvn_client/patch.c:1298 ../libsvn_client/patch.c:1344
#, c-format
msgid "Invalid patch: specifies contradicting mode changes and %s changes (for '%s')"
msgstr "Ogiltig patch: den anger motstridiga ändringar av filrättigheter och %s (för \"%s\")"
-#: ../libsvn_client/patch.c:3741
+#: ../libsvn_client/patch.c:3743
msgid "strip count must be positive"
msgstr "antal sökvägsdelar att ta bort måste vara positivt"
-#: ../libsvn_client/patch.c:3757 ../libsvn_fs_base/tree.c:4112
+#: ../libsvn_client/patch.c:3759 ../libsvn_fs_base/tree.c:4112
#: ../libsvn_fs_base/tree.c:4117 ../libsvn_fs_fs/tree.c:3245
#: ../libsvn_fs_fs/tree.c:3251 ../libsvn_fs_x/tree.c:2188
#: ../libsvn_fs_x/tree.c:2194 ../libsvn_ra/compat.c:677
@@ -4545,7 +4578,7 @@ msgstr "antal sökvägsdelar att ta bort måste vara positivt"
msgid "'%s' is not a file"
msgstr "\"%s\" är ingen fil"
-#: ../libsvn_client/patch.c:3769 ../libsvn_wc/util.c:59
+#: ../libsvn_client/patch.c:3771 ../libsvn_wc/util.c:59
#, c-format
msgid "'%s' is not a directory"
msgstr "\"%s\" är ingen katalog"
@@ -4631,7 +4664,7 @@ msgstr "\"%s\" är inte arkivets rot"
msgid "The repository at '%s' has uuid '%s', but the WC has '%s'"
msgstr "Arkivet på \"%s\" har uuid \"%s\", men arbetskopian har \"%s\""
-#: ../libsvn_client/repos_diff.c:935 ../libsvn_wc/externals.c:629
+#: ../libsvn_client/repos_diff.c:930 ../libsvn_wc/externals.c:629
#, c-format
msgid "Base checksum mismatch for '%s'"
msgstr "Felaktig baskontrollsumma för \"%s\""
@@ -4646,23 +4679,54 @@ msgstr "Sökvägen \"%s\" saknar senaste arkiveringsrevision"
msgid "Unrecognized revision type requested for '%s'"
msgstr "Okänd revisionstyp begärd för \"%s\""
-#: ../libsvn_client/shelve.c:56
+#: ../libsvn_client/shelf.c:58
msgid "Shelf name cannot be the empty string"
msgstr "Hyllnamnet kan inte vara tomma strängen"
-#: ../libsvn_client/shelve.c:84
+#: ../libsvn_client/shelf.c:86
#, c-format
msgid "Shelve: Bad encoded name '%s'"
msgstr "Shelve: Felaktigt kodat namn \"%s\""
-#: ../libsvn_client/status.c:422 ../libsvn_client/status.c:601
+#: ../libsvn_client/shelf.c:1207
+#, c-format
+msgid "Shelf '%s' not found"
+msgstr "Hylla \"%s\" finns inte"
+
+#. xgettext: the '.working', '.merge-left' and '.merge-right' strings
+#. are used to tag onto a file name in case of a merge conflict
+#: ../libsvn_client/shelf.c:1385 ../libsvn_wc/wc_db_update_move.c:1627
+msgid ".working"
+msgstr ".arbetskopia"
+
+#: ../libsvn_client/shelf.c:1386
+msgid ".merge-left"
+msgstr ".sammanslagning-vänster"
+
+#: ../libsvn_client/shelf.c:1387
+msgid ".merge-right"
+msgstr ".sammanslagning-höger"
+
+#: ../libsvn_client/shelf.c:2027 ../svn/shelf-cmd.c:496
+#, c-format
+msgid "%d path could not be shelved"
+msgid_plural "%d paths could not be shelved"
+msgstr[0] "%d sökväg kunde inte läggas på hyllan"
+msgstr[1] "%d sökvägar kunde inte läggas på hyllan"
+
+#: ../libsvn_client/shelf.c:2152
+#, c-format
+msgid "Shelf '%s' version %d not found"
+msgstr "Post \"%s\" med version %d finns inte"
+
+#: ../libsvn_client/status.c:498 ../libsvn_client/status.c:680
#: ../libsvn_wc/lock.c:564 ../libsvn_wc/lock.c:856 ../libsvn_wc/lock.c:1542
-#: ../libsvn_wc/wc_db.c:13629 ../libsvn_wc/wc_db_wcroot.c:722
+#: ../libsvn_wc/wc_db.c:13629 ../libsvn_wc/wc_db_wcroot.c:727
#, c-format
msgid "'%s' is not a working copy"
msgstr "\"%s\" är ingen arbetskopia"
-#: ../libsvn_client/status.c:469
+#: ../libsvn_client/status.c:545
#, c-format
msgid "Entry '%s' has no URL"
msgstr "Posten \"%s\" saknar URL"
@@ -4683,7 +4747,7 @@ msgid "Directory '%s' has no URL"
msgstr "Katalogen \"%s\" saknar URL"
#: ../libsvn_client/switch.c:215 ../libsvn_ra_local/ra_plugin.c:236
-#: ../libsvn_ra_local/ra_plugin.c:326 ../libsvn_wc/update_editor.c:4921
+#: ../libsvn_ra_local/ra_plugin.c:326 ../libsvn_wc/update_editor.c:4932
#, c-format
msgid ""
"'%s'\n"
@@ -4699,7 +4763,7 @@ msgstr ""
msgid "'%s' shares no common ancestry with '%s'"
msgstr "\"%s\" och \"%s\" saknar gemensamt ursprung"
-#: ../libsvn_client/update.c:762
+#: ../libsvn_client/update.c:810
msgid "None of the targets are working copies"
msgstr "Inget av målen är arbetskopior"
@@ -4838,15 +4902,15 @@ msgstr "Sökvägen \"%s\" måste vara inuti katalogen \"%s\""
msgid "Failed to delete mmap '%s'"
msgstr "Kunde inte ta bort minnesmappning \"%s\""
-#: ../libsvn_diff/parse-diff.c:368
+#: ../libsvn_diff/parse-diff.c:373
msgid "Unexpected data in base85 section"
msgstr "Oväntad data i base85-sektion"
-#: ../libsvn_diff/parse-diff.c:437
+#: ../libsvn_diff/parse-diff.c:442
msgid "Base85 data expands to longer than declared filesize"
msgstr "Base85-data expanderas till mer än deklarerad filstorlek"
-#: ../libsvn_diff/parse-diff.c:441
+#: ../libsvn_diff/parse-diff.c:446
msgid "Base85 data expands to smaller than declared filesize"
msgstr "Base85-data expanderas till mindre än deklarerad filstorlek"
@@ -5946,7 +6010,7 @@ msgstr "Fönsterlängd i svndiff är trasig"
#: ../libsvn_fs_fs/cached_data.c:2164
#, c-format
msgid "Length mismatch while reading representation: expected %s, got %s"
-msgstr "Längden stämmer inte vid läsning av representation: väntade %s, fick %s"
+msgstr "Längden stämde inte vid läsning av representation: väntade %s, fick %s"
#: ../libsvn_fs_fs/cached_data.c:2197 ../libsvn_fs_x/cached_data.c:2095
msgid "Checksum mismatch while reading representation"
@@ -6109,25 +6173,25 @@ msgid "Error converting entry in directory '%s' to UTF-8"
msgstr "Fel vid omvandling av en post i katalogen \"%s\" till UTF-8"
#: ../libsvn_fs_fs/hotcopy.c:147 ../libsvn_fs_x/hotcopy.c:148
-#: ../libsvn_subr/io.c:1084
+#: ../libsvn_subr/io.c:1089
#, c-format
msgid "Source '%s' is not a directory"
msgstr "Källan \"%s\" är ingen katalog"
#: ../libsvn_fs_fs/hotcopy.c:153 ../libsvn_fs_x/hotcopy.c:154
-#: ../libsvn_subr/io.c:1090
+#: ../libsvn_subr/io.c:1095
#, c-format
msgid "Destination '%s' is not a directory"
msgstr "Destinationen \"%s\" är ingen katalog"
#: ../libsvn_fs_fs/hotcopy.c:226 ../libsvn_fs_x/hotcopy.c:228
-#: ../libsvn_subr/io.c:1167 ../libsvn_subr/io.c:2863
+#: ../libsvn_subr/io.c:1172 ../libsvn_subr/io.c:2869
#, c-format
msgid "Can't read directory '%s'"
msgstr "Kan inte läsa katalogen \"%s\""
#: ../libsvn_fs_fs/hotcopy.c:231 ../libsvn_fs_x/hotcopy.c:233
-#: ../libsvn_subr/io.c:1172 ../libsvn_subr/io.c:2868 ../libsvn_subr/io.c:4654
+#: ../libsvn_subr/io.c:1177 ../libsvn_subr/io.c:2874 ../libsvn_subr/io.c:4660
#, c-format
msgid "Error closing directory '%s'"
msgstr "Fel vid stängning av katalogen \"%s\""
@@ -6614,7 +6678,7 @@ msgstr ""
"tidigare representation just skrivs av en annan process"
#: ../libsvn_fs_fs/transaction.c:358 ../libsvn_fs_x/transaction.c:640
-#: ../libsvn_subr/io.c:2347
+#: ../libsvn_subr/io.c:2352
#, c-format
msgid "Can't get exclusive lock on file '%s'"
msgstr "Kan inte ta ut exklusivt lås på filen \"%s\""
@@ -7103,12 +7167,12 @@ msgid "URL '%s' is not a child of the session's repository root URL '%s'"
msgstr "URL:en \"%s\" är inte ett barn av sessionens arkivrots-URL \"%s\""
#: ../libsvn_ra_local/ra_plugin.c:1285 ../libsvn_ra_local/ra_plugin.c:1740
-#: ../libsvn_ra_serf/util.c:1844 ../svnserve/serve.c:3554
+#: ../libsvn_ra_serf/util.c:1864 ../svnserve/serve.c:3554
#, c-format
msgid "'%s' path not found"
msgstr "Sökvägen \"%s\" finns inte"
-#: ../libsvn_ra_local/ra_plugin.c:1692 ../libsvn_ra_serf/options.c:759
+#: ../libsvn_ra_local/ra_plugin.c:1692 ../libsvn_ra_serf/options.c:777
#: ../libsvn_ra_svn/client.c:3093
#, c-format
msgid "Don't know anything about capability '%s'"
@@ -7184,7 +7248,7 @@ msgstr "REPORT-svaret innehöll inte de efterfrågade egenskaperna"
msgid "Got unrecognized encoding '%s'"
msgstr "Okänd kodning \"%s\""
-#: ../libsvn_ra_serf/list.c:126 ../libsvn_ra_serf/log.c:172
+#: ../libsvn_ra_serf/list.c:113 ../libsvn_ra_serf/log.c:172
#, c-format
msgid "Unsupported encoding '%s'"
msgstr "Kodningen \"%s\" stöds ej"
@@ -7251,34 +7315,39 @@ msgstr "När egenskapen \"%s\" på \"%s\" behandlades:"
msgid "While handling the '%s' path:"
msgstr "När sökvägen \"%s\" behandlades:"
-#: ../libsvn_ra_serf/options.c:473
+#: ../libsvn_ra_serf/options.c:413
+#, c-format
+msgid "The server at '%s' does not support the HTTP/DAV protocol"
+msgstr "Servern på \"%s\" stöder inte protokollet HTTP/DAV"
+
+#: ../libsvn_ra_serf/options.c:491
msgid "The OPTIONS response did not include the youngest revision"
msgstr "OPTIONS-svaret innehöll inte den yngsta revisionen"
-#: ../libsvn_ra_serf/options.c:514
+#: ../libsvn_ra_serf/options.c:532
msgid "The OPTIONS response did not include the requested activity-collection-set value"
msgstr "OPTIONS-svaret innehöll inte det efterfrågade värdet på \"activity-collection-set\""
-#: ../libsvn_ra_serf/options.c:556
+#: ../libsvn_ra_serf/options.c:574
msgid "Location header not set on redirect response"
msgstr "Platshuvud inte satt i omriktningssvar"
-#: ../libsvn_ra_serf/options.c:586 ../libsvn_ra_serf/util.c:1835
+#: ../libsvn_ra_serf/options.c:604 ../libsvn_ra_serf/util.c:1855
#, c-format
msgid "Repository moved permanently to '%s'"
msgstr "Arkivet har permanent flyttats till \"%s\""
-#: ../libsvn_ra_serf/options.c:587 ../libsvn_ra_serf/util.c:1836
+#: ../libsvn_ra_serf/options.c:605 ../libsvn_ra_serf/util.c:1856
#, c-format
msgid "Repository moved temporarily to '%s'"
msgstr "Arkivet har tillfälligt flyttats till \"%s\""
-#: ../libsvn_ra_serf/options.c:742
+#: ../libsvn_ra_serf/options.c:760
#, c-format
msgid "Don't know how to handle '%s' for capability '%s'"
msgstr "Kan inte hantera \"%s\" för förmåga \"%s\""
-#: ../libsvn_ra_serf/options.c:766
+#: ../libsvn_ra_serf/options.c:784
#, c-format
msgid "Attempt to fetch capability '%s' resulted in '%s'"
msgstr "Ett försök att hämta förmåga \"%s\" resulterade i \"%s\""
@@ -7429,11 +7498,11 @@ msgstr "och andra orsaker"
msgid "Invalid config: unable to load certificate file '%s'"
msgstr "Felaktig konfiguration: kan inte ladda certifikatfilen \"%s\""
-#: ../libsvn_ra_serf/util.c:955 ../libsvn_ra_serf/util.c:958
+#: ../libsvn_ra_serf/util.c:958 ../libsvn_ra_serf/util.c:961
msgid "Error running context"
msgstr "Fel vid körning av kontext"
-#: ../libsvn_ra_serf/util.c:1230
+#: ../libsvn_ra_serf/util.c:1233
msgid ""
"No more credentials or we tried too many times.\n"
"Authentication failed"
@@ -7441,85 +7510,85 @@ msgstr ""
"Inga fler klientreferenser eller så försökte vi för många gånger.\n"
"Autentisering misslyckades"
-#: ../libsvn_ra_serf/util.c:1252
+#: ../libsvn_ra_serf/util.c:1255
msgid "Proxy authentication failed"
msgstr "Proxy-autentisering misslyckades"
-#: ../libsvn_ra_serf/util.c:1307
+#: ../libsvn_ra_serf/util.c:1310
#, c-format
msgid "%s request on '%s' failed"
msgstr "%s-förfrågan på \"%s\" misslyckades"
-#: ../libsvn_ra_serf/util.c:1383
+#: ../libsvn_ra_serf/util.c:1386
#, c-format
msgid "Premature EOF seen from server (http status=%d)"
msgstr "För tidigt filslut från server (HTTP-felkod %d)"
-#: ../libsvn_ra_serf/util.c:1734
+#: ../libsvn_ra_serf/util.c:1754
msgid "The PROPFIND response did not include the requested version-controlled-configuration value"
msgstr "PROPFIND-svaret innehöll inte det efterfrågade värdet på \"version-controlled-configuration\""
-#: ../libsvn_ra_serf/util.c:1840
+#: ../libsvn_ra_serf/util.c:1860
#, c-format
msgid "Access to '%s' forbidden"
msgstr "Åtkomst till \"%s\" ej tillåten"
-#: ../libsvn_ra_serf/util.c:1847
+#: ../libsvn_ra_serf/util.c:1867
#, c-format
msgid "HTTP method is not allowed on '%s'"
msgstr "HTTP-metod inte tillåten för \"%s\""
-#: ../libsvn_ra_serf/util.c:1851
+#: ../libsvn_ra_serf/util.c:1871
#, c-format
msgid "'%s' conflicts"
msgstr "\"%s\" orsakar konflikt"
-#: ../libsvn_ra_serf/util.c:1854
+#: ../libsvn_ra_serf/util.c:1874
#, c-format
msgid "Precondition on '%s' failed"
msgstr "Förhandsvillkor för \"%s\" misslyckades"
-#: ../libsvn_ra_serf/util.c:1857
+#: ../libsvn_ra_serf/util.c:1877
#, c-format
msgid "'%s': no lock token available"
msgstr "\"%s\": ingen låsidentifierare tillgänglig"
-#: ../libsvn_ra_serf/util.c:1861
+#: ../libsvn_ra_serf/util.c:1881
#, c-format
msgid "DAV request failed: 411 Content length required. The server or an intermediate proxy does not accept chunked encoding. Try setting 'http-chunked-requests' to 'auto' or 'no' in your client configuration."
msgstr "DAV-begäran misslyckades: 411, innehållslängd krävs. Servern eller en mellanliggande proxy godtar inte styckvis kodning. Försök med att sätta \"http-chunked-requests\" till \"auto\" eller \"no\" i klientinställningarna."
-#: ../libsvn_ra_serf/util.c:1867
+#: ../libsvn_ra_serf/util.c:1887
#, c-format
msgid "Unexpected server error %d '%s' on '%s'"
msgstr "Oväntat serverfel %d \"%s\" för \"%s\""
-#: ../libsvn_ra_serf/util.c:1871
+#: ../libsvn_ra_serf/util.c:1891
#, c-format
msgid "The requested feature is not supported by '%s'"
msgstr "Den begärda funktionen stöds inte av \"%s\""
-#: ../libsvn_ra_serf/util.c:1877
+#: ../libsvn_ra_serf/util.c:1897
#, c-format
msgid "Unexpected HTTP status %d '%s' on '%s'"
msgstr "Oväntat HTTP-fel %d \"%s\" för \"%s\""
-#: ../libsvn_ra_serf/util.c:1896
+#: ../libsvn_ra_serf/util.c:1916
#, c-format
msgid "Path '%s' unexpectedly created"
msgstr "Sökvägen \"%s\" skapades oväntat"
-#: ../libsvn_ra_serf/util.c:1905
+#: ../libsvn_ra_serf/util.c:1925
#, c-format
msgid "The HTTP method '%s' is not allowed on '%s'"
msgstr "HTTP-metoden \"%s\" tillåts inte för \"%s\""
-#: ../libsvn_ra_serf/util.c:1910
+#: ../libsvn_ra_serf/util.c:1930
#, c-format
msgid "Unexpected HTTP status %d '%s' on '%s' request to '%s'"
msgstr "Oväntat HTTP-fel %d \"%s\" för \"%s\" vid begäran till \"%s\""
-#: ../libsvn_ra_serf/util.c:2013
+#: ../libsvn_ra_serf/util.c:2033
#, c-format
msgid "Illegal URL '%s'"
msgstr "Otillåten URL \"%s\""
@@ -8016,17 +8085,17 @@ msgstr "Åtkomstposten för enbart skrivning \"%s\" i regel [%s] är ogiltig"
msgid "Recursive definition of group '%s'"
msgstr "Rekursiv definition av grupp \"%s\""
-#: ../libsvn_repos/authz_parse.c:1044 ../libsvn_repos/authz_parse.c:1102
+#: ../libsvn_repos/authz_parse.c:1044 ../libsvn_repos/authz_parse.c:1103
#, c-format
msgid "Alias '%s' was never defined"
msgstr "Alias \"%s\" definierades aldrig"
-#: ../libsvn_repos/authz_parse.c:1065
+#: ../libsvn_repos/authz_parse.c:1066
#, c-format
msgid "Undefined group '%s'"
msgstr "Odefinierad grupp \"%s\""
-#: ../libsvn_repos/authz_parse.c:1158
+#: ../libsvn_repos/authz_parse.c:1159
#, c-format
msgid "Access entry refers to undefined group '%s'"
msgstr "Åtkomstpost syftar på odefinierad grupp \"%s\""
@@ -8108,17 +8177,17 @@ msgstr "Delta-djupet \"exclude\" stöds ej"
msgid "Invalid editor anchoring; at least one of the input paths is not a directory and there was no source entry"
msgstr "Editeringen börjar på ett ogiltigt ställe; minst en av sökvägarna är ingen katalog och det fanns ingen källpost"
-#: ../libsvn_repos/deprecated.c:715 ../svnadmin/svnadmin.c:988
+#: ../libsvn_repos/deprecated.c:715 ../svnadmin/svnadmin.c:1054
#, c-format
msgid "* Dumped revision %ld.\n"
msgstr "* Dumpade revision %ld.\n"
-#: ../libsvn_repos/deprecated.c:721 ../svnadmin/svnadmin.c:994
+#: ../libsvn_repos/deprecated.c:721 ../svnadmin/svnadmin.c:1060
#, c-format
msgid "* Verified revision %ld.\n"
msgstr "* Verifierade revision %ld.\n"
-#: ../libsvn_repos/deprecated.c:729 ../svnadmin/svnadmin.c:1042
+#: ../libsvn_repos/deprecated.c:729 ../svnadmin/svnadmin.c:1108
#, c-format
msgid ""
"\n"
@@ -8129,7 +8198,7 @@ msgstr ""
"------- Arkiverade revision %ld >>>\n"
"\n"
-#: ../libsvn_repos/deprecated.c:735 ../svnadmin/svnadmin.c:1048
+#: ../libsvn_repos/deprecated.c:735 ../svnadmin/svnadmin.c:1114
#, c-format
msgid ""
"\n"
@@ -8140,36 +8209,36 @@ msgstr ""
"------- Arkiverade ny revision %ld (från originalrevisionen %ld) >>>\n"
"\n"
-#: ../libsvn_repos/deprecated.c:748 ../svnadmin/svnadmin.c:1061
+#: ../libsvn_repos/deprecated.c:748 ../svnadmin/svnadmin.c:1127
#, c-format
msgid " * editing path : %s ..."
msgstr " * editerar sökvägen: %s ..."
-#: ../libsvn_repos/deprecated.c:754 ../svnadmin/svnadmin.c:1067
+#: ../libsvn_repos/deprecated.c:754 ../svnadmin/svnadmin.c:1133
#, c-format
msgid " * deleting path : %s ..."
msgstr " * raderar sökvägen: %s ..."
-#: ../libsvn_repos/deprecated.c:760 ../svnadmin/svnadmin.c:1073
+#: ../libsvn_repos/deprecated.c:760 ../svnadmin/svnadmin.c:1139
#, c-format
msgid " * adding path : %s ..."
msgstr " * lägger till sökvägen: %s ..."
-#: ../libsvn_repos/deprecated.c:766 ../svnadmin/svnadmin.c:1079
+#: ../libsvn_repos/deprecated.c:766 ../svnadmin/svnadmin.c:1145
#, c-format
msgid " * replacing path : %s ..."
msgstr " * ersätter sökvägen: %s ..."
-#: ../libsvn_repos/deprecated.c:776 ../svnadmin/svnadmin.c:1088
+#: ../libsvn_repos/deprecated.c:776 ../svnadmin/svnadmin.c:1154
msgid " done.\n"
msgstr " klart.\n"
-#: ../libsvn_repos/deprecated.c:786 ../svnadmin/svnadmin.c:1097
+#: ../libsvn_repos/deprecated.c:786 ../svnadmin/svnadmin.c:1163
#, c-format
msgid "<<< Started new transaction, based on original revision %ld\n"
msgstr "<<< Startade ny transaktion, baserad på originalrevisionen %ld\n"
-#: ../libsvn_repos/deprecated.c:793 ../svnadmin/svnadmin.c:1110
+#: ../libsvn_repos/deprecated.c:793 ../svnadmin/svnadmin.c:1176
#, c-format
msgid " removing '\\r' from %s ..."
msgstr " tar bort \"\\r\" från %s ..."
@@ -8234,40 +8303,40 @@ msgstr "Kopierar från ogiltig sökväg till \"%s\" i r%ld"
msgid "Referencing data in revision %ld, which is older than the oldest dumped revision (r%ld). Loading this dump into an empty repository will fail."
msgstr "Refererar till data i revision %ld, vilken är äldre än den äldsta dumpade revisionen (r%ld). Ett försök att läsa in denna dump i ett tomt arkiv kommer att misslyckas."
-#: ../libsvn_repos/dump.c:2045 ../libsvn_repos/dump.c:2475
+#: ../libsvn_repos/dump.c:2031 ../libsvn_repos/dump.c:2461
#, c-format
msgid "Start revision %ld is greater than end revision %ld"
msgstr "Startrevisionen %ld är större än slutrevisionen %ld"
-#: ../libsvn_repos/dump.c:2050 ../libsvn_repos/dump.c:2480
+#: ../libsvn_repos/dump.c:2036 ../libsvn_repos/dump.c:2466
#, c-format
msgid "End revision %ld is invalid (youngest revision is %ld)"
msgstr "Slutrevisionen %ld är ogiltig (den yngsta revisionen är %ld)"
-#: ../libsvn_repos/dump.c:2178
+#: ../libsvn_repos/dump.c:2164
msgid "The range of revisions dumped contained references to copy sources outside that range."
msgstr "De dumpade revisionerna innehöll referenser till kopior med källa utanför det revisionsområdet."
-#: ../libsvn_repos/dump.c:2190
+#: ../libsvn_repos/dump.c:2176
msgid "The range of revisions dumped contained mergeinfo which reference revisions outside that range."
msgstr "De dumpade revisionerna innehöll sammanslagningsinformation med referenser till revisioner utanför det revisionsområdet."
-#: ../libsvn_repos/dump.c:2244
+#: ../libsvn_repos/dump.c:2230
#, c-format
msgid "Node '%s' is not a directory."
msgstr "Noden \"%s\" är ingen katalog."
-#: ../libsvn_repos/dump.c:2252
+#: ../libsvn_repos/dump.c:2238
#, c-format
msgid "Node '%s' is not a file."
msgstr "Noden \"%s\" är inte en fil."
-#: ../libsvn_repos/dump.c:2257
+#: ../libsvn_repos/dump.c:2243
#, c-format
msgid "Unexpected node kind %d for '%s'"
msgstr "Oväntad nodtyp %d för \"%s\""
-#: ../libsvn_repos/dump.c:2304
+#: ../libsvn_repos/dump.c:2290
#, c-format
msgid "Duplicate representation of path '%s'"
msgstr "Duplicerad representation av sökväg \"%s\""
@@ -8398,7 +8467,7 @@ msgstr ""
"Ändring av revisionsegenskaper är ej påslaget i arkivet;\n"
"be förvaltaren skapa krokskriptet \"pre-revprop-change\""
-#: ../libsvn_repos/list.c:314 ../libsvn_subr/io.c:2972
+#: ../libsvn_repos/list.c:314 ../libsvn_subr/io.c:2978
#, c-format
msgid "Path '%s' not found"
msgstr "Sökvägen \"%s\" finns inte"
@@ -9071,7 +9140,8 @@ msgstr "Kan inte beräkna begärt datum"
msgid "Can't expand time"
msgstr "Kan inte dela upp tid"
-#: ../libsvn_subr/deprecated.c:365 ../libsvn_subr/opt.c:302
+#: ../libsvn_subr/deprecated.c:365 ../libsvn_subr/deprecated.c:605
+#: ../libsvn_subr/opt.c:269
msgid ""
"\n"
"Valid options:\n"
@@ -9079,7 +9149,20 @@ msgstr ""
"\n"
"Giltiga flaggor:\n"
-#: ../libsvn_subr/deprecated.c:441 ../libsvn_subr/opt.c:426
+#: ../libsvn_subr/deprecated.c:545 ../libsvn_subr/opt.c:174
+msgid " ARG"
+msgstr " ARG"
+
+#: ../libsvn_subr/deprecated.c:627 ../libsvn_subr/opt.c:291
+msgid ""
+"\n"
+"Global options:\n"
+msgstr ""
+"\n"
+"Globala flaggor:\n"
+
+#: ../libsvn_subr/deprecated.c:769 ../libsvn_subr/deprecated.c:803
+#: ../libsvn_subr/opt.c:393
#, c-format
msgid ""
"\"%s\": unknown command.\n"
@@ -9088,13 +9171,13 @@ msgstr ""
"\"%s\": okänt kommando.\n"
"\n"
-#: ../libsvn_subr/deprecated.c:619 ../libsvn_subr/opt.c:1241
-#: ../svnrdump/svnrdump.c:597
+#: ../libsvn_subr/deprecated.c:931 ../libsvn_subr/deprecated.c:1031
+#: ../libsvn_subr/opt.c:1208 ../svnrdump/svnrdump.c:603
#, c-format
msgid "Type '%s help' for usage.\n"
msgstr "Skriv \"%s help\" för användning.\n"
-#: ../libsvn_subr/deprecated.c:1047
+#: ../libsvn_subr/deprecated.c:1459
#, c-format
msgid "'%s' is neither a file nor a directory name"
msgstr "\"%s\" är varken ett fil- eller katalognamn"
@@ -9200,233 +9283,233 @@ msgstr "Felaktig serialiserad hashtabell"
msgid "Cannot serialize negative length"
msgstr "Kan inte serialisera negativ längd"
-#: ../libsvn_subr/io.c:354
+#: ../libsvn_subr/io.c:359
#, c-format
msgid "Can't check path '%s'"
msgstr "Kan inte kontrollera sökvägen \"%s\""
-#: ../libsvn_subr/io.c:599 ../libsvn_subr/io.c:5208
+#: ../libsvn_subr/io.c:604 ../libsvn_subr/io.c:5214
#, c-format
msgid "Can't open '%s'"
msgstr "Kan inte öppna \"%s\""
-#: ../libsvn_subr/io.c:625 ../libsvn_subr/io.c:711
+#: ../libsvn_subr/io.c:630 ../libsvn_subr/io.c:716
#, c-format
msgid "Unable to make name for '%s'"
msgstr "Kunde inte skapa namn för \"%s\""
-#: ../libsvn_subr/io.c:698
+#: ../libsvn_subr/io.c:703
#, c-format
msgid "Can't create symbolic link '%s'"
msgstr "Kan inte skapa symbolisk länk \"%s\""
-#: ../libsvn_subr/io.c:715 ../libsvn_subr/io.c:750 ../libsvn_subr/io.c:778
-#: ../libsvn_subr/io.c:1971
+#: ../libsvn_subr/io.c:720 ../libsvn_subr/io.c:755 ../libsvn_subr/io.c:783
+#: ../libsvn_subr/io.c:1976
msgid "Symbolic links are not supported on this platform"
msgstr "Symboliska länkar stöds inte på denna plattform"
-#: ../libsvn_subr/io.c:738 ../libsvn_subr/io.c:1930 ../libsvn_subr/io.c:1950
+#: ../libsvn_subr/io.c:743 ../libsvn_subr/io.c:1935 ../libsvn_subr/io.c:1955
#, c-format
msgid "Can't read contents of link"
msgstr "Kan inte läsa innehållet i länk"
-#: ../libsvn_subr/io.c:798
+#: ../libsvn_subr/io.c:803
#, c-format
msgid "Can't find a temporary directory"
msgstr "Kan inte hitta temporär katalog"
-#: ../libsvn_subr/io.c:916
+#: ../libsvn_subr/io.c:921
#, c-format
msgid "Can't copy '%s' to '%s'"
msgstr "Kan inte kopiera \"%s\" till \"%s\""
-#: ../libsvn_subr/io.c:959 ../libsvn_subr/io.c:981 ../libsvn_subr/io.c:1027
-#: ../libsvn_subr/io.c:5341
+#: ../libsvn_subr/io.c:964 ../libsvn_subr/io.c:986 ../libsvn_subr/io.c:1032
+#: ../libsvn_subr/io.c:5347
#, c-format
msgid "Can't set permissions on '%s'"
msgstr "Kan inte sätta rättigheter på \"%s\""
-#: ../libsvn_subr/io.c:977 ../libsvn_subr/io.c:2317 ../libsvn_subr/io.c:2377
-#: ../libsvn_subr/io.c:2466 ../libsvn_subr/io.c:5246
+#: ../libsvn_subr/io.c:982 ../libsvn_subr/io.c:2322 ../libsvn_subr/io.c:2382
+#: ../libsvn_subr/io.c:2471 ../libsvn_subr/io.c:5252
#, c-format
msgid "Can't get file name"
msgstr "Kan inte erhålla filnamn"
-#: ../libsvn_subr/io.c:1050
+#: ../libsvn_subr/io.c:1055
#, c-format
msgid "Can't append '%s' to '%s'"
msgstr "Kan inte lägga till \"%s\" till \"%s\""
-#: ../libsvn_subr/io.c:1096
+#: ../libsvn_subr/io.c:1101
#, c-format
msgid "Destination '%s' already exists"
msgstr "Destinationen \"%s\" finns redan"
-#: ../libsvn_subr/io.c:1205
+#: ../libsvn_subr/io.c:1210
#, c-format
msgid "Can't make directory '%s'"
msgstr "Kan inte skapa katalogen \"%s\""
-#: ../libsvn_subr/io.c:1309
+#: ../libsvn_subr/io.c:1314
#, c-format
msgid "Can't set access time of '%s'"
msgstr "Kan inte sätta åtkomsttiden på \"%s\""
-#: ../libsvn_subr/io.c:1647 ../libsvn_subr/io.c:1749
+#: ../libsvn_subr/io.c:1652 ../libsvn_subr/io.c:1754
#, c-format
msgid "Can't change perms of file '%s'"
msgstr "Kan inte ändra rättigheter på filen \"%s\""
-#: ../libsvn_subr/io.c:1877
+#: ../libsvn_subr/io.c:1882
#, c-format
msgid "Can't get attributes of file '%s'"
msgstr "Kan inte hämta attribut från filen \"%s\""
-#: ../libsvn_subr/io.c:1885
+#: ../libsvn_subr/io.c:1890
#, c-format
msgid "Can't set attributes of file '%s'"
msgstr "Kan inte sätta attribut i filen \"%s\""
-#: ../libsvn_subr/io.c:2022 ../libsvn_subr/io.c:2683
+#: ../libsvn_subr/io.c:2027 ../libsvn_subr/io.c:2689
#, c-format
msgid "Can't remove file '%s'"
msgstr "Kan inte radera filen \"%s\""
-#: ../libsvn_subr/io.c:2092 ../libsvn_subr/io.c:4286
+#: ../libsvn_subr/io.c:2097 ../libsvn_subr/io.c:4292
#, c-format
msgid "Can't move '%s' to '%s'"
msgstr "Kan inte flytta \"%s\" till \"%s\""
-#: ../libsvn_subr/io.c:2138
+#: ../libsvn_subr/io.c:2143
#, c-format
msgid "Can't set file '%s' read-only"
msgstr "Kan inte göra \"%s\" skrivskyddad"
-#: ../libsvn_subr/io.c:2170
+#: ../libsvn_subr/io.c:2175
#, c-format
msgid "Can't set file '%s' read-write"
msgstr "Kan inte ta bort skrivskyddet på \"%s\""
-#: ../libsvn_subr/io.c:2209 ../libsvn_subr/io.c:2243
+#: ../libsvn_subr/io.c:2214 ../libsvn_subr/io.c:2248
#, c-format
msgid "Error getting UID of process"
msgstr "Fel vid läsning av processens användar-id"
-#: ../libsvn_subr/io.c:2343
+#: ../libsvn_subr/io.c:2348
#, c-format
msgid "Can't get shared lock on file '%s'"
msgstr "Kan inte ta ut delat lås på filen \"%s\""
-#: ../libsvn_subr/io.c:2382
+#: ../libsvn_subr/io.c:2387
#, c-format
msgid "Can't unlock file '%s'"
msgstr "Kan inte låsa upp filen \"%s\""
-#: ../libsvn_subr/io.c:2484 ../libsvn_subr/io.c:2506
+#: ../libsvn_subr/io.c:2489 ../libsvn_subr/io.c:2511
#, c-format
msgid "Can't flush file '%s' to disk"
msgstr "Kan inte tömma filbuffertar för \"%s\" till disk"
-#: ../libsvn_subr/io.c:2597 ../libsvn_subr/prompt.c:197
+#: ../libsvn_subr/io.c:2603 ../libsvn_subr/prompt.c:197
#, c-format
msgid "Can't open stdin"
msgstr "Kan inte öppna standard in"
-#: ../libsvn_subr/io.c:2617
+#: ../libsvn_subr/io.c:2623
msgid "Reading from stdin is disallowed"
msgstr "Att läsa från standardinmatningen tillåts ej"
-#: ../libsvn_subr/io.c:2770
+#: ../libsvn_subr/io.c:2776
#, c-format
msgid "Can't remove '%s'"
msgstr "Kan inte radera \"%s\""
-#: ../libsvn_subr/io.c:2933
+#: ../libsvn_subr/io.c:2939
#, c-format
msgid "Path '%s' not found, case obstructed by '%s'"
msgstr "Sökvägen \"%s\" hittades inte, skiftlägesblockerad av \"%s\""
-#: ../libsvn_subr/io.c:3046
+#: ../libsvn_subr/io.c:3052
#, c-format
msgid "Can't create process '%s' attributes"
msgstr "Kan inte skapa attribut för processen \"%s\""
-#: ../libsvn_subr/io.c:3053
+#: ../libsvn_subr/io.c:3059
#, c-format
msgid "Can't set process '%s' cmdtype"
msgstr "Kan inte sätta cmdtype för processen \"%s\""
-#: ../libsvn_subr/io.c:3069
+#: ../libsvn_subr/io.c:3075
#, c-format
msgid "Can't set process '%s' directory"
msgstr "Kan inte sätta katalog för processen \"%s\""
-#: ../libsvn_subr/io.c:3083
+#: ../libsvn_subr/io.c:3089
#, c-format
msgid "Can't set process '%s' child input"
msgstr "Kan inte sätta standard in för processen \"%s\""
-#: ../libsvn_subr/io.c:3091
+#: ../libsvn_subr/io.c:3097
#, c-format
msgid "Can't set process '%s' child outfile"
msgstr "Kan inte sätta standard ut för processen \"%s\""
-#: ../libsvn_subr/io.c:3099
+#: ../libsvn_subr/io.c:3105
#, c-format
msgid "Can't set process '%s' child errfile"
msgstr "Kan inte sätta standard fel för processen \"%s\""
-#: ../libsvn_subr/io.c:3113
+#: ../libsvn_subr/io.c:3119
#, c-format
msgid "Can't set process '%s' stdio pipes"
msgstr "Kan inte sätta rör för standardin- och utmatning för processen \"%s\""
-#: ../libsvn_subr/io.c:3121
+#: ../libsvn_subr/io.c:3127
#, c-format
msgid "Can't set process '%s' child errfile for error handler"
msgstr "Kan inte sätta standard fel för processen \"%s\" för felhanteraren"
-#: ../libsvn_subr/io.c:3128
+#: ../libsvn_subr/io.c:3134
#, c-format
msgid "Can't set process '%s' error handler"
msgstr "Kan inte sätta felhanterare för processen \"%s\""
-#: ../libsvn_subr/io.c:3151
+#: ../libsvn_subr/io.c:3157
#, c-format
msgid "Can't start process '%s'"
msgstr "Kan inte starta processen \"%s\""
-#: ../libsvn_subr/io.c:3175
+#: ../libsvn_subr/io.c:3181
#, c-format
msgid "Error waiting for process '%s'"
msgstr "Fel då processen \"%s\" inväntades"
-#: ../libsvn_subr/io.c:3184
+#: ../libsvn_subr/io.c:3190
#, c-format
msgid "Process '%s' failed (signal %d, core dumped)"
msgstr "Processen \"%s\" misslyckades (signal %d, minnesutskrift skapad)"
-#: ../libsvn_subr/io.c:3189
+#: ../libsvn_subr/io.c:3195
#, c-format
msgid "Process '%s' failed (signal %d)"
msgstr "Processen \"%s\" misslyckades (signal %d)"
-#: ../libsvn_subr/io.c:3195
+#: ../libsvn_subr/io.c:3201
#, c-format
msgid "Process '%s' failed (exitwhy %d, exitcode %d)"
msgstr "Processen \"%s\" misslyckades (orsak %d, slutkod %d)"
-#: ../libsvn_subr/io.c:3203
+#: ../libsvn_subr/io.c:3209
#, c-format
msgid "Process '%s' returned error exitcode %d"
msgstr "Processen \"%s\" returnerade felstatus %d"
-#: ../libsvn_subr/io.c:3310
+#: ../libsvn_subr/io.c:3316
#, c-format
msgid "'%s' returned %d"
msgstr "\"%s\" returnerade %d"
-#: ../libsvn_subr/io.c:3431
+#: ../libsvn_subr/io.c:3437
#, c-format
msgid ""
"Error running '%s': exitcode was %d, args were:\n"
@@ -9441,188 +9524,188 @@ msgstr ""
"%s\n"
"%s"
-#: ../libsvn_subr/io.c:3572
+#: ../libsvn_subr/io.c:3578
#, c-format
msgid "Can't detect MIME type of non-file '%s'"
msgstr "Kan inte känna av MIME-typ på \"%s\", som inte är en fil"
-#: ../libsvn_subr/io.c:3667
+#: ../libsvn_subr/io.c:3673
#, c-format
msgid "Can't open file '%s'"
msgstr "Kan inte öppna filen \"%s\""
-#: ../libsvn_subr/io.c:3707
+#: ../libsvn_subr/io.c:3713
#, c-format
msgid "Can't close file '%s'"
msgstr "Kan inte stänga filen \"%s\""
-#: ../libsvn_subr/io.c:3708
+#: ../libsvn_subr/io.c:3714
#, c-format
msgid "Can't close stream"
msgstr "Kan inte stänga ström"
-#: ../libsvn_subr/io.c:3717 ../libsvn_subr/io.c:3779 ../libsvn_subr/io.c:3804
-#: ../libsvn_subr/io.c:3894
+#: ../libsvn_subr/io.c:3723 ../libsvn_subr/io.c:3785 ../libsvn_subr/io.c:3810
+#: ../libsvn_subr/io.c:3900
#, c-format
msgid "Can't read file '%s'"
msgstr "Kan inte läsa filen \"%s\""
-#: ../libsvn_subr/io.c:3718 ../libsvn_subr/io.c:3780 ../libsvn_subr/io.c:3805
-#: ../libsvn_subr/io.c:3895
+#: ../libsvn_subr/io.c:3724 ../libsvn_subr/io.c:3786 ../libsvn_subr/io.c:3811
+#: ../libsvn_subr/io.c:3901
#, c-format
msgid "Can't read stream"
msgstr "Kan inte läsa från ström"
-#: ../libsvn_subr/io.c:3727
+#: ../libsvn_subr/io.c:3733
#, c-format
msgid "Can't write file '%s'"
msgstr "Kan inte skriva till filen \"%s\""
-#: ../libsvn_subr/io.c:3728
+#: ../libsvn_subr/io.c:3734
#, c-format
msgid "Can't write stream"
msgstr "Kan inte skriva till ström"
-#: ../libsvn_subr/io.c:3742
+#: ../libsvn_subr/io.c:3748
#, c-format
msgid "Can't get attribute information from file '%s'"
msgstr "Kan inte erhålla attributinformation från filen \"%s\""
-#: ../libsvn_subr/io.c:3743
+#: ../libsvn_subr/io.c:3749
#, c-format
msgid "Can't get attribute information from stream"
msgstr "Kan inte erhålla attributinformation från ström"
-#: ../libsvn_subr/io.c:3816
+#: ../libsvn_subr/io.c:3822
#, c-format
msgid "Can't set position pointer in file '%s'"
msgstr "Kan inte sätta filpekaren i filen \"%s\""
-#: ../libsvn_subr/io.c:3817
+#: ../libsvn_subr/io.c:3823
#, c-format
msgid "Can't set position pointer in stream"
msgstr "Kan inte sätta filpekaren i ström"
-#: ../libsvn_subr/io.c:3904
+#: ../libsvn_subr/io.c:3910
#, c-format
msgid "Can't seek in file '%s'"
msgstr "Kan inte flytta position i filen \"%s\""
-#: ../libsvn_subr/io.c:3905
+#: ../libsvn_subr/io.c:3911
#, c-format
msgid "Can't seek in stream"
msgstr "Kan inte flytta position i ström"
-#: ../libsvn_subr/io.c:3922 ../libsvn_subr/io.c:3978
+#: ../libsvn_subr/io.c:3928 ../libsvn_subr/io.c:3984
#, c-format
msgid "Can't write to file '%s'"
msgstr "Kan inte skriva till filen \"%s\""
-#: ../libsvn_subr/io.c:3923 ../libsvn_subr/io.c:3979
+#: ../libsvn_subr/io.c:3929 ../libsvn_subr/io.c:3985
#, c-format
msgid "Can't write to stream"
msgstr "Kan inte skriva till ström"
-#: ../libsvn_subr/io.c:3933 ../libsvn_subr/io.c:4090
+#: ../libsvn_subr/io.c:3939 ../libsvn_subr/io.c:4096
#, c-format
msgid "Can't flush file '%s'"
msgstr "Kan inte tömma buffertar för filen \"%s\""
-#: ../libsvn_subr/io.c:3934 ../libsvn_subr/io.c:4091
+#: ../libsvn_subr/io.c:3940 ../libsvn_subr/io.c:4097
#, c-format
msgid "Can't flush stream"
msgstr "Kan inte tömma buffertar för ström"
-#: ../libsvn_subr/io.c:4055
+#: ../libsvn_subr/io.c:4061
#, c-format
msgid "Can't write '%s' atomically"
msgstr "Kan inte skriva atomiskt till \"%s\""
-#: ../libsvn_subr/io.c:4095
+#: ../libsvn_subr/io.c:4101
#, c-format
msgid "Can't truncate file '%s'"
msgstr "Kan inte hugga av filen \"%s\""
-#: ../libsvn_subr/io.c:4096
+#: ../libsvn_subr/io.c:4102
#, c-format
msgid "Can't truncate stream"
msgstr "Kan inte hugga av ström"
-#: ../libsvn_subr/io.c:4176
+#: ../libsvn_subr/io.c:4182
#, c-format
msgid "Can't read length line in file '%s'"
msgstr "Kan inte läsa längdrad i filen \"%s\""
-#: ../libsvn_subr/io.c:4180
+#: ../libsvn_subr/io.c:4186
msgid "Can't read length line in stream"
msgstr "Kan inte läsa längdrad i ström"
-#: ../libsvn_subr/io.c:4202
+#: ../libsvn_subr/io.c:4208
#, c-format
msgid "Can't stat '%s'"
msgstr "Kan inte ta status på \"%s\""
-#: ../libsvn_subr/io.c:4380
+#: ../libsvn_subr/io.c:4386
#, c-format
msgid "Can't create directory '%s'"
msgstr "Kan inte skapa katalogen \"%s\""
-#: ../libsvn_subr/io.c:4392 ../libsvn_subr/io.c:4406
+#: ../libsvn_subr/io.c:4398 ../libsvn_subr/io.c:4412
#, c-format
msgid "Can't hide directory '%s'"
msgstr "Kan inte dölja katalogen \"%s\""
-#: ../libsvn_subr/io.c:4467 ../libsvn_subr/io.c:4590
+#: ../libsvn_subr/io.c:4473 ../libsvn_subr/io.c:4596
#, c-format
msgid "Can't open directory '%s'"
msgstr "Kan inte öppna katalogen \"%s\""
-#: ../libsvn_subr/io.c:4502
+#: ../libsvn_subr/io.c:4508
#, c-format
msgid "Can't remove directory '%s'"
msgstr "Kan inte radera katalogen \"%s\""
-#: ../libsvn_subr/io.c:4520
+#: ../libsvn_subr/io.c:4526
#, c-format
msgid "Can't read directory"
msgstr "Kan inte läsa katalog"
-#: ../libsvn_subr/io.c:4540
+#: ../libsvn_subr/io.c:4546
#, c-format
msgid "Error closing directory"
msgstr "Fel vid stängning av katalog"
-#: ../libsvn_subr/io.c:4609
+#: ../libsvn_subr/io.c:4615
#, c-format
msgid "Can't read directory entry in '%s'"
msgstr "Kan inte läsa katalogpost i \"%s\""
-#: ../libsvn_subr/io.c:4735
+#: ../libsvn_subr/io.c:4741
#, c-format
msgid "Can't check directory '%s'"
msgstr "Kan inte kontrollera katalogen \"%s\""
-#: ../libsvn_subr/io.c:4797
+#: ../libsvn_subr/io.c:4803
#, c-format
msgid "Reading '%s'"
msgstr "Läser \"%s\""
-#: ../libsvn_subr/io.c:4816
+#: ../libsvn_subr/io.c:4822
#, c-format
msgid "First line of '%s' contains non-digit"
msgstr "Första raden i \"%s\" innehåller något som inte är en siffra"
-#: ../libsvn_subr/io.c:5131
+#: ../libsvn_subr/io.c:5137
#, c-format
msgid "Can't create temporary file from template '%s'"
msgstr "Kan inte skapa temporärfil från mallen \"%s\""
-#: ../libsvn_subr/io.c:5218
+#: ../libsvn_subr/io.c:5224
#, c-format
msgid "Can't set aside '%s'"
msgstr "Kan inte flytta \"%s\" åt sidan"
-#: ../libsvn_subr/io.c:5230 ../libsvn_subr/stream.c:2231
+#: ../libsvn_subr/io.c:5236 ../libsvn_subr/stream.c:2231
#, c-format
msgid "Unable to make name in '%s'"
msgstr "Kunde inte skapa namn i \"%s\""
@@ -9708,49 +9791,37 @@ msgstr "Kan inte låsa upp mutex"
msgid "Can't get module file name"
msgstr "Kan inte erhålla modulens filnamn"
-#: ../libsvn_subr/opt.c:189
-msgid " ARG"
-msgstr " ARG"
-
-#: ../libsvn_subr/opt.c:324
-msgid ""
-"\n"
-"Global options:\n"
-msgstr ""
-"\n"
-"Globala flaggor:\n"
-
-#: ../libsvn_subr/opt.c:827
+#: ../libsvn_subr/opt.c:794
#, c-format
msgid "Syntax error parsing peg revision '%s'; did you mean '%s@'?"
msgstr "Syntaxfel i den fixerade revisionen \"%s\"; menade du \"%s@\"?"
-#: ../libsvn_subr/opt.c:833
+#: ../libsvn_subr/opt.c:800
#, c-format
msgid "Syntax error parsing peg revision '%s'"
msgstr "Syntaxfel i den fixerade revisionen \"%s\""
-#: ../libsvn_subr/opt.c:970
+#: ../libsvn_subr/opt.c:937
msgid "Revision property pair is empty"
msgstr "Revisionsegenskapsparet är tomt"
-#: ../libsvn_subr/opt.c:990 ../svn/propedit-cmd.c:87 ../svn/propget-cmd.c:337
+#: ../libsvn_subr/opt.c:957 ../svn/propedit-cmd.c:87 ../svn/propget-cmd.c:337
#: ../svn/propset-cmd.c:68
#, c-format
msgid "'%s' is not a valid Subversion property name"
msgstr "\"%s\" är inget giltigt namn på en Subversion-egenskap"
-#: ../libsvn_subr/opt.c:1066
+#: ../libsvn_subr/opt.c:1033
#, c-format
msgid "URL '%s' contains a '..' element"
msgstr "URL:en \"%s\" innehåller ett \"..\"-element"
-#: ../libsvn_subr/opt.c:1099
+#: ../libsvn_subr/opt.c:1066
#, c-format
msgid "Error resolving case of '%s'"
msgstr "Kunde inte ta reda på skiftläge för \"%s\""
-#: ../libsvn_subr/opt.c:1121
+#: ../libsvn_subr/opt.c:1088
#, c-format
msgid ""
"%s, version %s\n"
@@ -9761,7 +9832,7 @@ msgstr ""
" kompilerad %s %s på %s\n"
"\n"
-#: ../libsvn_subr/opt.c:1138
+#: ../libsvn_subr/opt.c:1105
msgid ""
"System information:\n"
"\n"
@@ -9769,21 +9840,21 @@ msgstr ""
"Systeminformation:\n"
"\n"
-#: ../libsvn_subr/opt.c:1139
+#: ../libsvn_subr/opt.c:1106
#, c-format
msgid "* running on %s\n"
msgstr "* kör på %s\n"
-#: ../libsvn_subr/opt.c:1143
+#: ../libsvn_subr/opt.c:1110
#, c-format
msgid " - %s\n"
msgstr " - %s\n"
-#: ../libsvn_subr/opt.c:1153
+#: ../libsvn_subr/opt.c:1120
msgid "* linked dependencies:\n"
msgstr "* länkade beroenden:\n"
-#: ../libsvn_subr/opt.c:1178
+#: ../libsvn_subr/opt.c:1145
msgid "* loaded shared libraries:\n"
msgstr "* inlästa delat bibliotek:\n"
@@ -9993,7 +10064,7 @@ msgid "Password for '%s' GNOME keyring: "
msgstr "Lösenord för GNOME-nyckelring \"%s\": "
#: ../libsvn_subr/simple_providers.c:444
-#: ../libsvn_subr/ssl_client_cert_pw_providers.c:286
+#: ../libsvn_subr/ssl_client_cert_pw_providers.c:294
#, c-format
msgid "Config error: invalid value '%s' for option '%s'"
msgstr "Konfigurationsfel: felaktigt värde \"%s\" för inställningen \"%s\""
@@ -10318,17 +10389,17 @@ msgstr "Revisionen %ld stämmer inte med den existerande revisionen %ld i \"%s\"
msgid "URL '%s' (uuid: '%s') doesn't match existing URL '%s' (uuid: '%s') in '%s'"
msgstr "URL:en \"%s\" (UUID: \"%s\") stämmer inte med den existerande URL:en \"%s\" (UUID: \"%s\") i \"%s\""
-#: ../libsvn_wc/adm_ops.c:313 ../libsvn_wc/update_editor.c:5334
+#: ../libsvn_wc/adm_ops.c:313 ../libsvn_wc/update_editor.c:5345
#, c-format
msgid "Can't find parent directory's node while trying to add '%s'"
msgstr "Kunde inte hitta föräldrakatalogens nod när \"%s\" skulle läggas till"
-#: ../libsvn_wc/adm_ops.c:322 ../libsvn_wc/update_editor.c:5328
+#: ../libsvn_wc/adm_ops.c:322 ../libsvn_wc/update_editor.c:5339
#, c-format
msgid "Can't add '%s' to a parent directory scheduled for deletion"
msgstr "Kan inte lägga till \"%s\" i en föräldrakatalog som är schemalagd för radering"
-#: ../libsvn_wc/adm_ops.c:329 ../libsvn_wc/update_editor.c:5341
+#: ../libsvn_wc/adm_ops.c:329 ../libsvn_wc/update_editor.c:5352
#, c-format
msgid "Can't schedule an addition of '%s' below a not-directory node"
msgstr "Kan inte schemalägga ett tillägg av \"%s\" under en nod som inte är en katalog"
@@ -10366,78 +10437,78 @@ msgstr "För gammalt loggformat; var god använd Subversion 1.6 eller äldre"
msgid "Not a conflict skel"
msgstr "Inte ett konfliktskelett"
-#: ../libsvn_wc/conflicts.c:608 ../libsvn_wc/conflicts.c:705
+#: ../libsvn_wc/conflicts.c:624 ../libsvn_wc/conflicts.c:721
msgid "Not a completed conflict skel"
msgstr "Inte ett fullständigt konfliktskelett"
-#: ../libsvn_wc/conflicts.c:786 ../libsvn_wc/conflicts.c:859
-#: ../libsvn_wc/conflicts.c:949
+#: ../libsvn_wc/conflicts.c:802 ../libsvn_wc/conflicts.c:875
+#: ../libsvn_wc/conflicts.c:966
msgid "Conflict not set"
msgstr "Konflikt inte satt"
-#: ../libsvn_wc/conflicts.c:1316 ../libsvn_wc/conflicts.c:1991
-#: ../libsvn_wc/conflicts.c:2036
+#: ../libsvn_wc/conflicts.c:1350 ../libsvn_wc/conflicts.c:2025
+#: ../libsvn_wc/conflicts.c:2070
msgid "Conflict callback violated API: returned no results"
msgstr "Konfliktprocedur bröt mot API:et: returnerade inga resultat"
-#: ../libsvn_wc/conflicts.c:1359
+#: ../libsvn_wc/conflicts.c:1393
msgid "Conflict callback violated API: returned no merged file"
msgstr "Konfliktprocedur bröt mot API:et: returnerade ingen sammanslagen fil"
-#: ../libsvn_wc/conflicts.c:1646
+#: ../libsvn_wc/conflicts.c:1680
#, c-format
msgid "Conflict on '%s' cannot be resolved to 'theirs-conflict' or 'mine-conflict' because a merged version of the file cannot be created."
msgstr "Konflikt på \"%s\" kan inte lösas till \"theirs-conflict\" eller \"mine-conflict\" eftersom en sammanslagen version av filen inte kan skapas."
-#: ../libsvn_wc/conflicts.c:1691
+#: ../libsvn_wc/conflicts.c:1725
#, c-format
msgid "Conflict on '%s' could not be resolved because the chosen version of the file is not available."
msgstr "Konflikt på \"%s\" kan inte lösas eftersom den valda versionen av filen inte finns."
-#: ../libsvn_wc/conflicts.c:2506
+#: ../libsvn_wc/conflicts.c:2540
msgid "Invalid 'conflict_result' argument"
msgstr "Ogiltigt \"conflict_result\"-argument"
-#: ../libsvn_wc/conflicts.c:2768 ../libsvn_wc/conflicts.c:2813
+#: ../libsvn_wc/conflicts.c:2803 ../libsvn_wc/conflicts.c:2848
#, c-format
msgid "Tree conflict can only be resolved to 'working' or 'mine-conflict' state; '%s' not resolved"
msgstr "Trädkonflikt kan endast lösas till tillstånden \"working\" eller \"mine-conflict\"; \"%s\" ej löst"
-#: ../libsvn_wc/conflicts.c:2840
+#: ../libsvn_wc/conflicts.c:2875
#, c-format
msgid "Tree conflict can only be resolved to 'working' state; '%s' is no longer moved"
msgstr "Trädkonflikt kan endast lösas till tillståndet \"working\"; \"%s\" har inte längre flyttats"
-#: ../libsvn_wc/conflicts.c:2858
+#: ../libsvn_wc/conflicts.c:2893
#, c-format
msgid "Tree conflict can only be resolved to 'working' state; '%s' not resolved"
msgstr "Trädkonflikt kan endast lösas till tillståndet \"working\"; \"%s\" ej löst"
-#: ../libsvn_wc/conflicts.c:3035
+#: ../libsvn_wc/conflicts.c:3070
msgid "No conflict-callback and no pre-defined conflict-choice provided"
msgstr "Ingen konfliktprocedur och inget fördefinierad konfliktval tillhandahölls"
-#: ../libsvn_wc/conflicts.c:3304
+#: ../libsvn_wc/conflicts.c:3339
#, c-format
msgid "Unable to resolve conflicts on '%s'"
msgstr "Kan inte lösa konflikten på \"%s\""
-#: ../libsvn_wc/conflicts.c:3495 ../libsvn_wc/conflicts.c:3581
-#: ../libsvn_wc/conflicts.c:3660 ../libsvn_wc/conflicts.c:3746
-#: ../libsvn_wc/conflicts.c:3813
+#: ../libsvn_wc/conflicts.c:3530 ../libsvn_wc/conflicts.c:3616
+#: ../libsvn_wc/conflicts.c:3695 ../libsvn_wc/conflicts.c:3781
+#: ../libsvn_wc/conflicts.c:3848
#, c-format
msgid "Unexpected conflict operation '%s' on '%s'"
msgstr "Oväntad konfliktsoperation \"%s\" på \"%s\""
-#: ../libsvn_wc/conflicts.c:3503 ../libsvn_wc/conflicts.c:3588
-#: ../libsvn_wc/conflicts.c:3666 ../libsvn_wc/conflicts.c:3752
-#: ../libsvn_wc/conflicts.c:3819
+#: ../libsvn_wc/conflicts.c:3538 ../libsvn_wc/conflicts.c:3623
+#: ../libsvn_wc/conflicts.c:3701 ../libsvn_wc/conflicts.c:3787
+#: ../libsvn_wc/conflicts.c:3854
#, c-format
msgid "Unexpected conflict reason '%s' on '%s'"
msgstr "Oväntad konfliktorsak \"%s\" på \"%s\""
-#: ../libsvn_wc/conflicts.c:3594 ../libsvn_wc/conflicts.c:3672
-#: ../libsvn_wc/conflicts.c:3758 ../libsvn_wc/conflicts.c:3825
+#: ../libsvn_wc/conflicts.c:3629 ../libsvn_wc/conflicts.c:3707
+#: ../libsvn_wc/conflicts.c:3793 ../libsvn_wc/conflicts.c:3860
#, c-format
msgid "Unexpected conflict action '%s' on '%s'"
msgstr "Oväntad konflikthandling \"%s\" på \"%s\""
@@ -10566,7 +10637,7 @@ msgstr "\"%s\" representerar arkivroten och kan inte raderas"
msgid "File '%s' has local modifications"
msgstr "Filen \"%s\" har lokala ändringar"
-#: ../libsvn_wc/deprecated.c:2393
+#: ../libsvn_wc/deprecated.c:2419
#, c-format
msgid "Unexpectedly found '%s': path is marked 'missing'"
msgstr "Hittade \"%s\", vilket var oväntat: sökvägen är markerad som \"saknad\""
@@ -11017,15 +11088,17 @@ msgstr "Okänt sätt att markera radslut \"%s\" för \"%s\""
#. scratch_
#: ../libsvn_wc/props.c:2239
#, c-format
-msgid " (%d more duplicate targets found)"
-msgstr " (ytterligare %d mål förekommer flera gånger)"
+msgid " (%d more duplicate target found)"
+msgid_plural " (%d more duplicate targets found)"
+msgstr[0] " (ytterligare %d mål förekommer flera gånger)"
+msgstr[1] " (ytterligare %d mål förekommer flera gånger)"
-#: ../libsvn_wc/props.c:2244
+#: ../libsvn_wc/props.c:2246
#, c-format
msgid "Invalid %s property on '%s': target '%s' appears more than once%s"
msgstr "Ogiltig egenskap %s på \"%s\": målet \"%s\" förekommer mer än en gång%s"
-#: ../libsvn_wc/props.c:2275
+#: ../libsvn_wc/props.c:2277
#, c-format
msgid "Cannot set non-inheritable mergeinfo on a non-directory ('%s')"
msgstr "Kan inte sätta icke-ärftlig sammanslagningsinformation på en icke-katalog (\"%s\")"
@@ -11101,31 +11174,31 @@ msgstr ""
msgid "'%s' is not valid as filename in directory '%s'"
msgstr "\"%s\" är inte giltig som filnamn i katalogen \"%s\""
-#: ../libsvn_wc/update_editor.c:1507
+#: ../libsvn_wc/update_editor.c:1511
#, c-format
msgid "Unexpected attempt to add a node at path '%s'"
msgstr "Oväntat försök att lägga till en nod vid sökvägen \"%s\""
-#: ../libsvn_wc/update_editor.c:1518
+#: ../libsvn_wc/update_editor.c:1522
#, c-format
msgid "Unexpected attempt to edit, delete, or replace a node at path '%s'"
msgstr "Oväntat försök att ändra, radera eller ersätta en nod vid sökvägen \"%s\""
-#: ../libsvn_wc/update_editor.c:1899
+#: ../libsvn_wc/update_editor.c:1904
#, c-format
msgid "Failed to add directory '%s': object of the same name as the administrative directory"
msgstr "Kunde inte lägga till katalogen \"%s\": objektet har samma namn som förvaltningskatalogen"
-#: ../libsvn_wc/update_editor.c:2572
+#: ../libsvn_wc/update_editor.c:2580
msgid "Couldn't do property merge"
msgstr "Kunde inte slå ihop egenskaper"
-#: ../libsvn_wc/update_editor.c:3111
+#: ../libsvn_wc/update_editor.c:3119
#, c-format
msgid "Failed to add file '%s': object of the same name as the administrative directory"
msgstr "Misslyckades att lägga till filen \"%s\": objektet har samma namn som förvaltningskatalogen"
-#: ../libsvn_wc/update_editor.c:3650
+#: ../libsvn_wc/update_editor.c:3661
#, c-format
msgid ""
"Checksum mismatch for '%s':\n"
@@ -11136,22 +11209,22 @@ msgstr ""
" väntad: %s\n"
" lagrad: %s\n"
-#: ../libsvn_wc/update_editor.c:5309
+#: ../libsvn_wc/update_editor.c:5320
#, c-format
msgid "Node '%s' exists."
msgstr "Noden \"%s\" finns redan."
-#: ../libsvn_wc/update_editor.c:5369
+#: ../libsvn_wc/update_editor.c:5380
#, c-format
msgid "Copyfrom-url '%s' has different repository root than '%s'"
msgstr "URL:en för kopieringskällan till \"%s\" har annan arkivrot än \"%s\""
-#: ../libsvn_wc/update_editor.c:5581
+#: ../libsvn_wc/update_editor.c:5592
#, c-format
msgid "'%s' is not an unmodified copied directory"
msgstr "\"%s\" är inte en oförändrad kopierad katalog"
-#: ../libsvn_wc/update_editor.c:5592
+#: ../libsvn_wc/update_editor.c:5603
#, c-format
msgid "Copyfrom '%s' doesn't match original location of '%s'"
msgstr "Kopieringskällan \"%s\" motsvarar inte den ursprungliga platsen \"%s\""
@@ -11439,46 +11512,42 @@ msgstr "Den orörda texten med MD5-kontrollsumma \"%s\" hittades inte"
msgid "'%s' is not deleted"
msgstr "\"%s\" är inte raderad"
-#: ../libsvn_wc/wc_db_update_move.c:459 ../libsvn_wc/wc_db_update_move.c:483
+#: ../libsvn_wc/wc_db_update_move.c:464 ../libsvn_wc/wc_db_update_move.c:488
#, c-format
msgid "'%s' already in conflict"
msgstr "\"%s\" är redan i konflikt"
-#: ../libsvn_wc/wc_db_update_move.c:1621
-msgid ".working"
-msgstr ".arbetskopia"
-
-#: ../libsvn_wc/wc_db_update_move.c:2183
+#: ../libsvn_wc/wc_db_update_move.c:2189
#, c-format
msgid "Cannot apply update because '%s' is a switched path (please switch it back to its original URL and try again)"
msgstr "Kan inte utföra uppdatering eftersom \"%s\" är en växlad sökväg (växla den tillbaka till dess ursprungliga URL och försök igen)"
-#: ../libsvn_wc/wc_db_update_move.c:2192
+#: ../libsvn_wc/wc_db_update_move.c:2198
#, c-format
msgid "Cannot apply update because '%s' is a mixed-revision working copy (please update and try again)"
msgstr "Kan inte utföra uppdatering eftersom \"%s\" är en arbetskopia med blandad revision (uppdatera och försök igen)"
-#: ../libsvn_wc/wc_db_update_move.c:2245
+#: ../libsvn_wc/wc_db_update_move.c:2251
#, c-format
msgid "The node '%s' has not been moved away"
msgstr "Noden \"%s\" har inte flyttats bort"
-#: ../libsvn_wc/wc_db_update_move.c:2709
+#: ../libsvn_wc/wc_db_update_move.c:2715
#, c-format
msgid "Cannot merge local changes from '%s' because '%s' already contains other local changes (please commit or revert these other changes and try again)"
msgstr "Kan inte slå samman lokala ändringar från \"%s\" eftersom \"%s\" redan innehåller andra lokala ändringar (arkivera eller återställ dessa andra ändringar och försök igen)"
-#: ../libsvn_wc/wc_db_update_move.c:4083
+#: ../libsvn_wc/wc_db_update_move.c:4089
#, c-format
msgid "'%s' is not in conflict"
msgstr "\"%s\" är inte i konflikt"
-#: ../libsvn_wc/wc_db_update_move.c:4096
+#: ../libsvn_wc/wc_db_update_move.c:4102
#, c-format
msgid "'%s' is not a valid tree-conflict victim"
msgstr "\"%s\" är inte ett giltigt offer för trädkonflikt"
-#: ../libsvn_wc/wc_db_update_move.c:4109
+#: ../libsvn_wc/wc_db_update_move.c:4115
#, c-format
msgid "'%s' is already a moved away tree-conflict"
msgstr "\"%s\" är redan en bortflyttad trädkonflikt"
@@ -11529,27 +11598,27 @@ msgstr ""
msgid "The symlink at '%s' points nowhere"
msgstr "Den symboliska länken vid \"%s\" pekar ingenstans"
-#: ../libsvn_wc/wc_db_wcroot.c:757
+#: ../libsvn_wc/wc_db_wcroot.c:762
#, c-format
msgid "Missing a row in WCROOT for '%s'."
msgstr "En rad i \"WCROOT\" saknas för \"%s\"."
-#: ../libsvn_wc/wc_db_wcroot.c:811
+#: ../libsvn_wc/wc_db_wcroot.c:816
#, c-format
msgid "The working copy at '%s' is corrupt."
msgstr "Förstörd arbetskopia \"%s\"."
-#: ../libsvn_wc/wc_db_wcroot.c:827
+#: ../libsvn_wc/wc_db_wcroot.c:832
#, c-format
msgid "The working copy database at '%s' is missing."
msgstr "Arbetskopians databas \"%s\" saknas."
-#: ../libsvn_wc/wc_db_wcroot.c:836
+#: ../libsvn_wc/wc_db_wcroot.c:841
#, c-format
msgid "The working copy database at '%s' is corrupt."
msgstr "Arbetskopians databas \"%s\" är trasig."
-#: ../libsvn_wc/wc_db_wcroot.c:994
+#: ../libsvn_wc/wc_db_wcroot.c:1000
#, c-format
msgid "'%s' is not a working copy root"
msgstr "\"%s\" är inte rot till en arbetskopia"
@@ -11682,25 +11751,31 @@ msgstr "Raderar klientreferens av typ %s för autentiseringsregion \"%s\"\n"
msgid "Credentials cache in '%s' is empty\n"
msgstr "Klientreferenscache i \"%s\" är tom\n"
-#: ../svn/auth-cmd.c:450 ../svn/auth-cmd.c:473
+#: ../svn/auth-cmd.c:450 ../svn/auth-cmd.c:476
#, c-format
msgid "Credentials cache in '%s' contains no matching credentials"
msgstr "Klientreferenscache i \"%s\" innehåller inga passande klientreferenser"
#: ../svn/auth-cmd.c:458
#, c-format
-msgid "Credentials cache in '%s' contains %d credentials\n"
-msgstr "Klientreferenscache i \"%s\" innehåller %d klientreferenser\n"
+msgid "Credentials cache in '%s' contains %d credential\n"
+msgid_plural "Credentials cache in '%s' contains %d credentials\n"
+msgstr[0] "Klientreferenscache i \"%s\" innehåller %d klientreferens\n"
+msgstr[1] "Klientreferenscache i \"%s\" innehåller %d klientreferenser\n"
-#: ../svn/auth-cmd.c:462
+#: ../svn/auth-cmd.c:464
#, c-format
-msgid "Credentials cache in '%s' contains %d matching credentials\n"
-msgstr "Klientreferenscache i \"%s\" innehåller %d passande klientreferenser\n"
+msgid "Credentials cache in '%s' contains %d matching credential\n"
+msgid_plural "Credentials cache in '%s' contains %d matching credentials\n"
+msgstr[0] "Klientreferenscache i \"%s\" innehåller %d passande klientreferens\n"
+msgstr[1] "Klientreferenscache i \"%s\" innehåller %d passande klientreferenser\n"
-#: ../svn/auth-cmd.c:477
+#: ../svn/auth-cmd.c:481
#, c-format
-msgid "Deleted %d matching credentials from '%s'\n"
-msgstr "Raderade %d passande klientreferenser från \"%s\"\n"
+msgid "Deleted %d matching credential from '%s'\n"
+msgid_plural "Deleted %d matching credentials from '%s'\n"
+msgstr[0] "Raderade %d passande klientreferens från \"%s\"\n"
+msgstr[1] "Raderade %d passande klientreferenser från \"%s\"\n"
#: ../svn/blame-cmd.c:314 ../svn/list-cmd.c:310
msgid "'verbose' option invalid in XML mode"
@@ -11971,121 +12046,121 @@ msgstr ""
#. Translators: keep long_desc below 70 characters (wrap with a left
#. margin of 9 spaces if needed)
-#: ../svn/conflict-callbacks.c:452
+#: ../svn/conflict-callbacks.c:457
msgid "Quit resolution"
msgstr "Avbryt lösning"
-#: ../svn/conflict-callbacks.c:452
+#: ../svn/conflict-callbacks.c:457
msgid "postpone all remaining conflicts"
msgstr "skjut upp lösningen av återstående konflikter"
#. Translators: keep long_desc below 70 characters (wrap with a left
#. margin of 9 spaces if needed)
-#: ../svn/conflict-callbacks.c:463
+#: ../svn/conflict-callbacks.c:468
msgid "Edit file"
msgstr "Redigera fil"
-#: ../svn/conflict-callbacks.c:463
+#: ../svn/conflict-callbacks.c:468
msgid "change merged file in an editor"
msgstr "redigera sammanslagen fil i en editor"
-#: ../svn/conflict-callbacks.c:466
+#: ../svn/conflict-callbacks.c:471
msgid "Show diff"
msgstr "Visa skillnader"
-#: ../svn/conflict-callbacks.c:466
+#: ../svn/conflict-callbacks.c:471
msgid "show all changes made to merged file"
msgstr "visa alla ändringar i sammanslagen fil"
#. Translators: keep long_desc below 70 characters (wrap with a left
#. margin of 9 spaces if needed)
-#: ../svn/conflict-callbacks.c:468 ../svn/conflict-callbacks.c:490
+#: ../svn/conflict-callbacks.c:473 ../svn/conflict-callbacks.c:495
msgid "Display conflict"
msgstr "Visa konflikt"
-#: ../svn/conflict-callbacks.c:468
+#: ../svn/conflict-callbacks.c:473
msgid "show all conflicts (ignoring merged version)"
msgstr "visa alla konflikter (utom sammanslagen version)"
-#: ../svn/conflict-callbacks.c:471
+#: ../svn/conflict-callbacks.c:476
msgid "Merge"
msgstr "Sammanslagning"
-#: ../svn/conflict-callbacks.c:471
+#: ../svn/conflict-callbacks.c:476
msgid "use merge tool to resolve conflict"
msgstr "använd sammanslagningsverktyget för att lösa konflikten"
-#: ../svn/conflict-callbacks.c:473
+#: ../svn/conflict-callbacks.c:478
msgid "Launch tool"
msgstr "Kör verktyg"
-#: ../svn/conflict-callbacks.c:473
+#: ../svn/conflict-callbacks.c:478
msgid "launch external merge tool to resolve conflict"
msgstr "kör externt sammanslagningsverktyg för att lösa konflikten"
-#: ../svn/conflict-callbacks.c:477
+#: ../svn/conflict-callbacks.c:482
msgid "Internal merge tool"
msgstr "Internt sammanslagningsverktyg"
-#: ../svn/conflict-callbacks.c:477
+#: ../svn/conflict-callbacks.c:482
msgid "use built-in merge tool to resolve conflict"
msgstr "använd inbyggt sammanslagningsverktyg för att lösa konflikten"
-#: ../svn/conflict-callbacks.c:480
+#: ../svn/conflict-callbacks.c:485
msgid "Show all options"
msgstr "Visa alla val"
-#: ../svn/conflict-callbacks.c:480
+#: ../svn/conflict-callbacks.c:485
msgid "show this list (also 'h', '?')"
msgstr "visa denna lista (även \"h\" och \"?\")"
-#: ../svn/conflict-callbacks.c:490
+#: ../svn/conflict-callbacks.c:495
msgid "show conflicts in this property"
msgstr "visa konflikter i denna egenskap"
-#: ../svn/conflict-callbacks.c:492
+#: ../svn/conflict-callbacks.c:497
msgid "Edit property"
msgstr "Redigera egenskap"
-#: ../svn/conflict-callbacks.c:492
+#: ../svn/conflict-callbacks.c:497
msgid "change merged property value in an editor"
msgstr "redigera sammanslagen egenskap i en editor"
-#: ../svn/conflict-callbacks.c:496 ../svn/conflict-callbacks.c:514
+#: ../svn/conflict-callbacks.c:501 ../svn/conflict-callbacks.c:519
msgid "Help"
msgstr "Hjälp"
-#: ../svn/conflict-callbacks.c:496 ../svn/conflict-callbacks.c:514
+#: ../svn/conflict-callbacks.c:501 ../svn/conflict-callbacks.c:519
msgid "show this help (also '?')"
msgstr "visa denna hjälp (även \"?\")"
#. Translators: keep long_desc below 70 characters (wrap with a left
#. margin of 9 spaces if needed)
-#: ../svn/conflict-callbacks.c:506
+#: ../svn/conflict-callbacks.c:511
msgid "Set repository move destination path"
msgstr "Ange flyttmålets arkivsökväg"
-#: ../svn/conflict-callbacks.c:507
+#: ../svn/conflict-callbacks.c:512
msgid "pick repository move target from list of possible targets"
msgstr "välj arkivflyttmål från lista av möjliga mål"
-#: ../svn/conflict-callbacks.c:510
+#: ../svn/conflict-callbacks.c:515
msgid "Set working copy move destination path"
msgstr "Ange flyttmålets sökväg i arbetskopia"
-#: ../svn/conflict-callbacks.c:511
+#: ../svn/conflict-callbacks.c:516
msgid "pick working copy move target from list of possible targets"
msgstr "välj arbetskopians flyttmål från lista av möjliga mål"
-#: ../svn/conflict-callbacks.c:613
+#: ../svn/conflict-callbacks.c:618
msgid "Select:"
msgstr "Välj:"
-#: ../svn/conflict-callbacks.c:699
+#: ../svn/conflict-callbacks.c:704
msgid "Words in square brackets are the corresponding --accept option arguments.\n"
msgstr "Ord inom hakparenteser är motsvarande argument till flaggan --accept.\n"
-#: ../svn/conflict-callbacks.c:744
+#: ../svn/conflict-callbacks.c:749
#, c-format
msgid ""
"Unrecognized option.\n"
@@ -12094,17 +12169,17 @@ msgstr ""
"Okänd väljare.\n"
"\n"
-#: ../svn/conflict-callbacks.c:909
+#: ../svn/conflict-callbacks.c:914
#, c-format
msgid "Merge conflict discovered in binary file '%s'.\n"
msgstr "Sammanslagningskonflikt upptäckt i binärfilen \"%s\".\n"
-#: ../svn/conflict-callbacks.c:914
+#: ../svn/conflict-callbacks.c:919
#, c-format
msgid "Merge conflict discovered in file '%s'.\n"
msgstr "Sammanslagningskonflikt upptäckt i filen \"%s\".\n"
-#: ../svn/conflict-callbacks.c:997
+#: ../svn/conflict-callbacks.c:1002
#, c-format
msgid ""
"Invalid option; cannot display conflicts for a binary file.\n"
@@ -12113,7 +12188,7 @@ msgstr ""
"Ogiltig väljare; kan inte visa konflikter för en binärfil.\n"
"\n"
-#: ../svn/conflict-callbacks.c:1005
+#: ../svn/conflict-callbacks.c:1010
#, c-format
msgid ""
"Invalid option; original files not available.\n"
@@ -12122,7 +12197,7 @@ msgstr ""
"Ogiltig väljare; ursprungliga filerna ej tillgängliga.\n"
"\n"
-#: ../svn/conflict-callbacks.c:1021
+#: ../svn/conflict-callbacks.c:1026
#, c-format
msgid ""
"Invalid option; there's no merged version to diff.\n"
@@ -12131,7 +12206,7 @@ msgstr ""
"Ogiltig väljare; det finns ingen sammanslagen version att jämföra med.\n"
"\n"
-#: ../svn/conflict-callbacks.c:1047
+#: ../svn/conflict-callbacks.c:1052
#, c-format
msgid ""
"Invalid option; there's no base path to merge.\n"
@@ -12140,7 +12215,7 @@ msgstr ""
"Felaktig väljare; det finns ingen bassökväg att slå samman.\n"
"\n"
-#: ../svn/conflict-callbacks.c:1140
+#: ../svn/conflict-callbacks.c:1145
#, c-format
msgid ""
"Invalid option.\n"
@@ -12149,7 +12224,7 @@ msgstr ""
"Ogiltig väljare.\n"
"\n"
-#: ../svn/conflict-callbacks.c:1169
+#: ../svn/conflict-callbacks.c:1174
#, c-format
msgid ""
"Invalid option; cannot choose based on conflicts in a binary file.\n"
@@ -12158,7 +12233,7 @@ msgstr ""
"Ogiltig väljare; kan inte välja utifrån konflikter i en binärfil.\n"
"\n"
-#: ../svn/conflict-callbacks.c:1183
+#: ../svn/conflict-callbacks.c:1188
#, c-format
msgid ""
"Invalid option; use diff/edit/merge/launch before choosing 'mark resolved'.\n"
@@ -12167,12 +12242,12 @@ msgstr ""
"Ogiltig väljare; använd diff/edit/merge/launch före \"markera löst\".\n"
"\n"
-#: ../svn/conflict-callbacks.c:1296
+#: ../svn/conflict-callbacks.c:1301
#, c-format
msgid "Conflict for property '%s' discovered on '%s'.\n"
msgstr "Konflikt för egenskapen \"%s\" upptäcktes på \"%s\".\n"
-#: ../svn/conflict-callbacks.c:1365
+#: ../svn/conflict-callbacks.c:1370
#, c-format
msgid ""
"Invalid option; please edit the property first.\n"
@@ -12181,7 +12256,7 @@ msgstr ""
"Felaktigt val; redigera egenskapen först.\n"
"\n"
-#: ../svn/conflict-callbacks.c:1625
+#: ../svn/conflict-callbacks.c:1637
#, c-format
msgid ""
"Possible working copy destinations for moved-away '%s' are:\n"
@@ -12192,7 +12267,7 @@ msgstr ""
"%sBara ett mål kan vara en flytt; de andra är kopieringar.\n"
"Ange numret för rätt sökväg för flyttmålet: "
-#: ../svn/conflict-callbacks.c:1634
+#: ../svn/conflict-callbacks.c:1646
#, c-format
msgid ""
"Possible repository destinations for moved-away '%s' are:\n"
@@ -12203,7 +12278,7 @@ msgstr ""
"%sBara ett mål kan vara en flytt; de andra är kopieringar.\n"
"Ange numret för rätt sökväg för flyttmålet: "
-#: ../svn/conflict-callbacks.c:1716
+#: ../svn/conflict-callbacks.c:1728
#, c-format
msgid ""
"Tree conflict on '%s':\n"
@@ -12212,12 +12287,12 @@ msgstr ""
"Trädkonflikt på \"%s\":\n"
"%s\n"
-#: ../svn/conflict-callbacks.c:1736
+#: ../svn/conflict-callbacks.c:1748
#, c-format
msgid "Applying recommended resolution '%s':\n"
msgstr "Utför den rekommenderade lösningen \"%s\":\n"
-#: ../svn/conflict-callbacks.c:1761
+#: ../svn/conflict-callbacks.c:1773
#, c-format
msgid ""
"\n"
@@ -12231,12 +12306,12 @@ msgstr ""
"Se \"svn help resolve\" för vidare information.\n"
"\n"
-#: ../svn/conflict-callbacks.c:1776
+#: ../svn/conflict-callbacks.c:1788
#, c-format
msgid "Ambiguous move destinations exist in the repository; try the 'd' option\n"
msgstr "Flertydiga flyttmål finns i arkivet; försök med valet \"d\"\n"
-#: ../svn/conflict-callbacks.c:1781
+#: ../svn/conflict-callbacks.c:1793
#, c-format
msgid "Ambiguous move destinations exist in the working copy; try the 'w' option\n"
msgstr "Flertydiga flyttmål finns i arbetskopian; försök med valet \"w\"\n"
@@ -12251,26 +12326,26 @@ msgstr "\"%s\": en fixerad revision är inte tillåten här"
msgid "Local, non-commit operations do not take a log message or revision properties"
msgstr "Lokala operationer, som ej medför arkivering, behöver inga loggmeddelanden eller revisionsegenskaper"
-#: ../svn/diff-cmd.c:227
+#: ../svn/diff-cmd.c:242
msgid "'--xml' option only valid with '--summarize' option"
msgstr "Flaggan \"--xml\" är endast tillåten tillsammans med \"--summarize\""
-#: ../svn/diff-cmd.c:240 ../svn/diff-cmd.c:244 ../svn/diff-cmd.c:248
-#: ../svn/diff-cmd.c:252 ../svn/diff-cmd.c:256 ../svn/diff-cmd.c:260
-#: ../svn/diff-cmd.c:264 ../svn/diff-cmd.c:268
+#: ../svn/diff-cmd.c:255 ../svn/diff-cmd.c:259 ../svn/diff-cmd.c:263
+#: ../svn/diff-cmd.c:267 ../svn/diff-cmd.c:271 ../svn/diff-cmd.c:275
+#: ../svn/diff-cmd.c:279 ../svn/diff-cmd.c:283
#, c-format
msgid "'%s' not valid with '--summarize' option"
msgstr "\"%s\" kan inte användas tillsammans med \"--summarize\""
-#: ../svn/diff-cmd.c:355
+#: ../svn/diff-cmd.c:370
msgid "'--new' option only valid with '--old' option"
msgstr "Flaggan \"--new\" är endast tillåten tillsammans med \"--old\""
-#: ../svn/diff-cmd.c:373
+#: ../svn/diff-cmd.c:388
msgid "'svn diff [-r N[:M]] [TARGET[@REV]...]' does not support mixed target types. Try using the --old and --new options or one of the shorthand invocations listed in 'svn help diff'."
msgstr "\"svn diff [-r N[:M]] [MÅL[@REV]...]\" stöder inte blandade måltyper. Försök med flaggorna \"--old\" och \"--new\" eller en av kortformerna som nämns i \"svn help diff\"."
-#: ../svn/diff-cmd.c:430
+#: ../svn/diff-cmd.c:445
#, c-format
msgid "Path '%s' not relative to base URLs"
msgstr "Sökvägen \"%s\" är inte relativ mot bas-URL:erna"
@@ -12396,8 +12471,8 @@ msgstr ""
"Subversion är ett verktyg för versionshantering.\n"
"Se http://subversion.apache.org/ för ytterligare information\n"
-#: ../svn/help-cmd.c:71 ../svnbench/help-cmd.c:66 ../svnrdump/svnrdump.c:610
-#: ../svnsync/svnsync.c:1933
+#: ../svn/help-cmd.c:71 ../svnbench/help-cmd.c:66 ../svnrdump/svnrdump.c:616
+#: ../svnsync/svnsync.c:1938
msgid ""
"The following repository access (RA) modules are available:\n"
"\n"
@@ -12446,237 +12521,247 @@ msgstr "För många argument till import-kommandot"
msgid "Invalid URL '%s'"
msgstr "Ogiltig URL \"%s\""
-#: ../svn/info-cmd.c:210
+#: ../svn/info-cmd.c:219
+#, c-format
+msgid "svn-viewspec.py format 1 does not support the 'not-present' state found at '%s'"
+msgstr "svn-viewspec.py format 1 stöder inte \"not-present\"-tillståndet som finns vid \"%s\""
+
+#: ../svn/info-cmd.c:228
+#, c-format
+msgid "svn-viewspec.py format 1 does not support the 'switched' state found at '%s'"
+msgstr "svn-viewspect.py format 1 stöder inte \"switched\"-tillståndet som fanns vid \"%s\""
+
+#: ../svn/info-cmd.c:457
#, c-format
msgid "'%s' is not a valid value for --show-item"
msgstr "\"%s\" är inte ett giltigt värde för --show-item"
-#: ../svn/info-cmd.c:218
+#: ../svn/info-cmd.c:465
#, c-format
msgid "'%s' is not a valid value for --show-item; did you mean '%s'?"
msgstr "\"%s\" är inget giltigt värde för --show-item; menade du \"%s\"?"
-#: ../svn/info-cmd.c:228
+#: ../svn/info-cmd.c:475
#, c-format
msgid "'%s' is not a valid value for --show-item; did you mean '%s' or '%s'?"
msgstr "\"%s\" är inget giltigt värde för --show-item; menade du \"%s\" eller \"%s\"?"
-#: ../svn/info-cmd.c:239
+#: ../svn/info-cmd.c:486
#, c-format
msgid "'%s' is not a valid value for --show-item; did you mean '%s', '%s' or '%s'?"
msgstr "\"%s\" är inget giltigt värde för --show-item; menade du \"%s\", \"%s\" eller \"%s\"?"
-#: ../svn/info-cmd.c:260
+#: ../svn/info-cmd.c:507
msgid "Resource is not under version control."
msgstr "Resursen är inte versionshanterad."
-#: ../svn/info-cmd.c:436 ../svnadmin/svnadmin.c:2304
-#: ../svnadmin/svnadmin.c:2540
+#: ../svn/info-cmd.c:683 ../svnadmin/svnadmin.c:2371
+#: ../svnadmin/svnadmin.c:2607
#, c-format
msgid "Path: %s\n"
msgstr "Sökväg: %s\n"
-#: ../svn/info-cmd.c:443
+#: ../svn/info-cmd.c:690
#, c-format
msgid "Name: %s\n"
msgstr "Namn: %s\n"
-#: ../svn/info-cmd.c:447
+#: ../svn/info-cmd.c:694
#, c-format
msgid "Working Copy Root Path: %s\n"
msgstr "Sökväg till arbetskopians rot: %s\n"
-#: ../svn/info-cmd.c:453
+#: ../svn/info-cmd.c:700
#, c-format
msgid "URL: %s\n"
msgstr "URL: %s\n"
-#: ../svn/info-cmd.c:456
+#: ../svn/info-cmd.c:703
#, c-format
msgid "Relative URL: %s\n"
msgstr "Relativ URL: %s\n"
-#: ../svn/info-cmd.c:460
+#: ../svn/info-cmd.c:707
#, c-format
msgid "Repository Root: %s\n"
msgstr "Arkivrot: %s\n"
-#: ../svn/info-cmd.c:464
+#: ../svn/info-cmd.c:711
#, c-format
msgid "Repository UUID: %s\n"
msgstr "Arkivets UUID: %s\n"
-#: ../svn/info-cmd.c:468
+#: ../svn/info-cmd.c:715
#, c-format
msgid "Revision: %ld\n"
msgstr "Revision: %ld\n"
-#: ../svn/info-cmd.c:473
+#: ../svn/info-cmd.c:720
#, c-format
msgid "Node Kind: file\n"
msgstr "Nodtyp: fil\n"
-#: ../svn/info-cmd.c:477
+#: ../svn/info-cmd.c:724
#, c-format
msgid "Node Kind: directory\n"
msgstr "Nodtyp: katalog\n"
-#: ../svn/info-cmd.c:481
+#: ../svn/info-cmd.c:728
#, c-format
msgid "Node Kind: none\n"
msgstr "Nodtyp: ingen\n"
-#: ../svn/info-cmd.c:486
+#: ../svn/info-cmd.c:733
#, c-format
msgid "Node Kind: unknown\n"
msgstr "Nodtyp: okänd\n"
-#: ../svn/info-cmd.c:495
+#: ../svn/info-cmd.c:742
#, c-format
msgid "Schedule: normal\n"
msgstr "Schemalagd: normal\n"
-#: ../svn/info-cmd.c:499
+#: ../svn/info-cmd.c:746
#, c-format
msgid "Schedule: add\n"
msgstr "Schemalagd: att läggas till\n"
-#: ../svn/info-cmd.c:503
+#: ../svn/info-cmd.c:750
#, c-format
msgid "Schedule: delete\n"
msgstr "Schemalagd: att raderas\n"
-#: ../svn/info-cmd.c:507
+#: ../svn/info-cmd.c:754
#, c-format
msgid "Schedule: replace\n"
msgstr "Schemalagd: att ersättas\n"
-#: ../svn/info-cmd.c:523
+#: ../svn/info-cmd.c:770
#, c-format
msgid "Depth: empty\n"
msgstr "Djup: \"empty\"\n"
-#: ../svn/info-cmd.c:527
+#: ../svn/info-cmd.c:774
#, c-format
msgid "Depth: files\n"
msgstr "Djup: \"files\"\n"
-#: ../svn/info-cmd.c:531
+#: ../svn/info-cmd.c:778
#, c-format
msgid "Depth: immediates\n"
msgstr "Djup: \"immediates\"\n"
-#: ../svn/info-cmd.c:535
+#: ../svn/info-cmd.c:782
#, c-format
msgid "Depth: exclude\n"
msgstr "Djup: \"exclude\"\n"
#. Other depths should never happen here.
-#: ../svn/info-cmd.c:546
+#: ../svn/info-cmd.c:793
#, c-format
msgid "Depth: INVALID\n"
msgstr "Djup: OGILTIGT\n"
-#: ../svn/info-cmd.c:550
+#: ../svn/info-cmd.c:797
#, c-format
msgid "Copied From URL: %s\n"
msgstr "Kopierad från URL: %s\n"
-#: ../svn/info-cmd.c:554
+#: ../svn/info-cmd.c:801
#, c-format
msgid "Copied From Rev: %ld\n"
msgstr "Kopierad från revision: %ld\n"
-#: ../svn/info-cmd.c:557
+#: ../svn/info-cmd.c:804
#, c-format
msgid "Moved From: %s\n"
msgstr "Flyttad från: %s\n"
# ###
-#: ../svn/info-cmd.c:564
+#: ../svn/info-cmd.c:811
#, c-format
msgid "Moved To: %s\n"
msgstr "Flyttad till: %s\n"
-#: ../svn/info-cmd.c:572
+#: ../svn/info-cmd.c:819
#, c-format
msgid "Last Changed Author: %s\n"
msgstr "Författare till senaste ändringen: %s\n"
-#: ../svn/info-cmd.c:576
+#: ../svn/info-cmd.c:823
#, c-format
msgid "Last Changed Rev: %ld\n"
msgstr "Senast ändrad i revision: %ld\n"
-#: ../svn/info-cmd.c:581
+#: ../svn/info-cmd.c:828
msgid "Last Changed Date"
msgstr "Datum för senaste ändringen"
-#: ../svn/info-cmd.c:587
+#: ../svn/info-cmd.c:834
msgid "Text Last Updated"
msgstr "Innehållet senast uppdaterat"
-#: ../svn/info-cmd.c:590
+#: ../svn/info-cmd.c:837
#, c-format
msgid "Checksum: %s\n"
msgstr "Kontrollsumma: %s\n"
-#: ../svn/info-cmd.c:624
+#: ../svn/info-cmd.c:871
#, c-format
msgid "Conflict Previous Base File: %s\n"
msgstr "Konflikt: föregående basfil: %s\n"
-#: ../svn/info-cmd.c:632
+#: ../svn/info-cmd.c:879
#, c-format
msgid "Conflict Previous Working File: %s\n"
msgstr "Konflikt: föregående arbetsfil: %s\n"
-#: ../svn/info-cmd.c:640
+#: ../svn/info-cmd.c:887
#, c-format
msgid "Conflict Current Base File: %s\n"
msgstr "Konflikt: nuvarande basfil: %s\n"
-#: ../svn/info-cmd.c:676
+#: ../svn/info-cmd.c:923
msgid "Tree conflict"
msgstr "Trädkonflikt"
-#: ../svn/info-cmd.c:680
+#: ../svn/info-cmd.c:927
#, c-format
msgid "Conflicted Properties: %s\n"
msgstr "Konfliktegenskaper: %s\n"
-#: ../svn/info-cmd.c:706
+#: ../svn/info-cmd.c:953
msgid "Conflict Details"
msgstr "Konfliktdetaljer"
-#: ../svn/info-cmd.c:727
+#: ../svn/info-cmd.c:974
msgid "Source left"
msgstr "Källa vänster"
-#: ../svn/info-cmd.c:736
+#: ../svn/info-cmd.c:983
msgid "Source right"
msgstr "Källa höger"
# ###
-#: ../svn/info-cmd.c:745
+#: ../svn/info-cmd.c:992
#, c-format
msgid "Lock Token: %s\n"
msgstr "LÃ¥sidentifierare: %s\n"
-#: ../svn/info-cmd.c:749
+#: ../svn/info-cmd.c:996
#, c-format
msgid "Lock Owner: %s\n"
msgstr "Låsägare: %s\n"
-#: ../svn/info-cmd.c:754
+#: ../svn/info-cmd.c:1001
msgid "Lock Created"
msgstr "LÃ¥s skapat"
-#: ../svn/info-cmd.c:758
+#: ../svn/info-cmd.c:1005
msgid "Lock Expires"
msgstr "Låset går ut"
-#: ../svn/info-cmd.c:766
+#: ../svn/info-cmd.c:1013
#, c-format
msgid ""
"Lock Comment (%i line):\n"
@@ -12691,32 +12776,32 @@ msgstr[1] ""
"LÃ¥skommentar (%i rader):\n"
"%s\n"
-#: ../svn/info-cmd.c:775
+#: ../svn/info-cmd.c:1022
#, c-format
msgid "Changelist: %s\n"
msgstr "Ändringslista: %s\n"
-#: ../svn/info-cmd.c:933
+#: ../svn/info-cmd.c:1200
msgid "--show-item is not valid in --xml mode"
msgstr "--show-item är inte giltig i läget --xml"
-#: ../svn/info-cmd.c:937
+#: ../svn/info-cmd.c:1204
msgid "--no-newline is not valid in --xml mode"
msgstr "--new-newline är inte giltig i läget --xml"
-#: ../svn/info-cmd.c:952 ../svn/info-cmd.c:972
+#: ../svn/info-cmd.c:1219 ../svn/info-cmd.c:1239
msgid "--incremental is only valid in --xml mode"
msgstr "--incremental är endast tillåten i läget --xml"
-#: ../svn/info-cmd.c:959
+#: ../svn/info-cmd.c:1226
msgid "--no-newline is only available for single-target, non-recursive info operations"
msgstr "--no-newline är endast tillgänglig för icke-rekursiva informationsoperationer på ett enda mål"
-#: ../svn/info-cmd.c:976
+#: ../svn/info-cmd.c:1243
msgid "--no-newline' is only valid with --show-item"
msgstr "--no-newline är endast tillåten tillsammans med --show-item"
-#: ../svn/info-cmd.c:1049 ../svnbench/null-info-cmd.c:283
+#: ../svn/info-cmd.c:1316 ../svnbench/null-info-cmd.c:283
msgid "Could not display info for all targets because some targets don't exist"
msgstr "Kunde inte visa information för alla mål eftersom några mål inte finns"
@@ -12749,91 +12834,91 @@ msgstr "Låskommentaren innehåller en noll-byte"
msgid "One or more locks could not be obtained"
msgstr "Ett eller flera lås kunde inte tas"
-#: ../svn/log-cmd.c:110
+#: ../svn/log-cmd.c:111 ../svn/svn.c:1145 ../svn/svn.c:1217 ../svn/svn.c:1283
msgid "\n"
msgstr "\n"
-#: ../svn/log-cmd.c:340
+#: ../svn/log-cmd.c:341
msgid "(no author)"
msgstr "(författare saknas)"
-#: ../svn/log-cmd.c:346
+#: ../svn/log-cmd.c:347
msgid "(no date)"
msgstr "(datum saknas)"
-#: ../svn/log-cmd.c:376
+#: ../svn/log-cmd.c:377
#, c-format
msgid " | %d line"
msgid_plural " | %d lines"
msgstr[0] " | %d rad"
msgstr[1] " | %d rader"
-#: ../svn/log-cmd.c:393
+#: ../svn/log-cmd.c:394
#, c-format
msgid "Changed paths:\n"
msgstr "Ändrade sökvägar:\n"
-#: ../svn/log-cmd.c:413
+#: ../svn/log-cmd.c:414
#, c-format
msgid " (from %s:%ld)"
msgstr " (från %s:%ld)"
-#: ../svn/log-cmd.c:431
+#: ../svn/log-cmd.c:432
#, c-format
msgid "Reverse merged via:"
msgstr "Omvänt sammanslaget från:"
-#: ../svn/log-cmd.c:433
+#: ../svn/log-cmd.c:434
#, c-format
msgid "Merged via:"
msgstr "Sammanslaget från:"
-#: ../svn/log-cmd.c:716
+#: ../svn/log-cmd.c:717
msgid "'with-all-revprops' option only valid in XML mode"
msgstr "Flaggan \"with-all-revprops\" är endast tillåten i XML-läge"
-#: ../svn/log-cmd.c:720
+#: ../svn/log-cmd.c:721
msgid "'with-no-revprops' option only valid in XML mode"
msgstr "Flaggan \"with-no-revprops\" är endast tillåten i XML-läge"
-#: ../svn/log-cmd.c:724
+#: ../svn/log-cmd.c:725
msgid "'with-revprop' option only valid in XML mode"
msgstr "Flaggan \"with-revprop\" är endast tillåten i XML-läge"
-#: ../svn/log-cmd.c:731
+#: ../svn/log-cmd.c:732
msgid "'diff' option is not supported in XML mode"
msgstr "Flaggan \"diff\" stöds ej i XML-läge"
-#: ../svn/log-cmd.c:737
+#: ../svn/log-cmd.c:738
msgid "'quiet' and 'diff' options are mutually exclusive"
msgstr "Flaggorna \"quiet\" och \"quit\" kan inte användas samtidigt"
-#: ../svn/log-cmd.c:741
+#: ../svn/log-cmd.c:742
msgid "'diff-cmd' option requires 'diff' option"
msgstr "Flaggan \"diff-cmd\" måste användas med flaggan \"diff\""
-#: ../svn/log-cmd.c:745
+#: ../svn/log-cmd.c:746
msgid "'internal-diff' option requires 'diff' option"
msgstr "Flaggan \"internal-diff\" måste användas med flaggan \"diff\""
-#: ../svn/log-cmd.c:749
+#: ../svn/log-cmd.c:750
msgid "'extensions' option requires 'diff' option"
msgstr "Flaggan \"extensions\" måste användas med flaggan \"diff\""
-#: ../svn/log-cmd.c:754
+#: ../svn/log-cmd.c:755
msgid "'depth' option requires 'diff' option"
msgstr "Flaggan \"depth\" måste användas med flaggan \"diff\""
-#: ../svn/log-cmd.c:770 ../svnbench/null-log-cmd.c:158
+#: ../svn/log-cmd.c:771 ../svnbench/null-log-cmd.c:158
msgid "-c and -r are mutually exclusive"
msgstr "-c och -r kan inte användas samtidigt"
-#: ../svn/log-cmd.c:802
+#: ../svn/log-cmd.c:803
#, c-format
msgid "Only relative paths can be specified after a URL for 'svn log', but '%s' is not a relative path"
msgstr "Endast relativa sökvägar kan anges efter en URL för \"svn log\", men \"%s\" är inte en relativ sökväg"
-#: ../svn/log-cmd.c:849
+#: ../svn/log-cmd.c:850
#, c-format
msgid "cannot assign with 'with-revprop' option (drop the '=')"
msgstr "kan inte tilldela med flaggan \"with-revprop\" (ta bort \"=\")"
@@ -12861,9 +12946,9 @@ msgid "Second revision required"
msgstr "En andra revision måste anges"
#: ../svn/merge-cmd.c:368 ../svn/merge-cmd.c:395 ../svn/mergeinfo-cmd.c:361
-#: ../svnadmin/svnadmin.c:2508 ../svnlook/svnlook.c:2052
-#: ../svnlook/svnlook.c:2246 ../svnlook/svnlook.c:2350
-#: ../svnlook/svnlook.c:2385
+#: ../svnadmin/svnadmin.c:2575 ../svnlook/svnlook.c:2086
+#: ../svnlook/svnlook.c:2280 ../svnlook/svnlook.c:2384
+#: ../svnlook/svnlook.c:2419
msgid "Too many arguments given"
msgstr "För många argument"
@@ -13318,7 +13403,7 @@ msgstr "Ersätter %s\n"
msgid "Transmitting file data "
msgstr "Skickar filinnehåll "
-#: ../svn/notify.c:968 ../svnadmin/svnadmin.c:2485 ../svnbench/notify.c:749
+#: ../svn/notify.c:968 ../svnadmin/svnadmin.c:2552 ../svnbench/notify.c:749
#, c-format
msgid "'%s' locked by user '%s'.\n"
msgstr "\"%s\" låstes av användaren \"%s\".\n"
@@ -13516,7 +13601,7 @@ msgid "Error writing to stream"
msgstr "Fel vid skrivning till ström"
#: ../svn/propget-cmd.c:187 ../svn/proplist-cmd.c:156 ../svn/proplist-cmd.c:160
-#: ../svnlook/svnlook.c:1743 ../svnlook/svnlook.c:1898
+#: ../svnlook/svnlook.c:1777 ../svnlook/svnlook.c:1932
#, c-format
msgid ""
"Inherited properties on '%s',\n"
@@ -13526,8 +13611,8 @@ msgstr ""
"från \"%s\":\n"
#. Not a --revprop
-#: ../svn/propget-cmd.c:197 ../svn/proplist-cmd.c:175 ../svnlook/svnlook.c:1778
-#: ../svnlook/svnlook.c:1933
+#: ../svn/propget-cmd.c:197 ../svn/proplist-cmd.c:175 ../svnlook/svnlook.c:1812
+#: ../svnlook/svnlook.c:1967
#, c-format
msgid "Properties on '%s':\n"
msgstr "Egenskaper på \"%s\":\n"
@@ -13655,38 +13740,147 @@ msgstr "flaggan --accept saknas"
msgid "invalid 'accept' ARG"
msgstr "ogiltigt \"accept\"-argument"
-#: ../svn/revert-cmd.c:80
+#: ../svn/revert-cmd.c:81
msgid "Try 'svn revert --depth infinity' instead?"
msgstr "Försök med \"svn revert --depth infinity\" istället?"
-#: ../svn/shelve-cmd.c:112
+#: ../svn/shelf-cmd.c:56
#, c-format
-msgid "Could not run external command '%s'"
-msgstr "Kunde inte köra externa kommandot \"%s\""
+msgid "Shelf '%s': no versions found"
+msgstr "Hylla \"%s\": inga versioner funna"
+
+#: ../svn/shelf-cmd.c:144
+msgid "All targets must be in the same WC"
+msgstr "Alla mål måste vara i samma arbetskopia"
-#: ../svn/shelve-cmd.c:143
+#: ../svn/shelf-cmd.c:164
#, c-format
-msgid "%-30s %6d mins old %10ld bytes %4d paths changed\n"
-msgstr "%-30s %6d min gammal %10ld byte %4d sökvägar ändrade\n"
+msgid "%d day ago"
+msgid_plural "%d days ago"
+msgstr[0] "för %d dag sedan"
+msgstr[1] "för %d dagar sedan"
-#: ../svn/shelve-cmd.c:147
+#: ../svn/shelf-cmd.c:169
+#, c-format
+msgid "%d hour ago"
+msgid_plural "%d hours ago"
+msgstr[0] "för %d timme sedan"
+msgstr[1] "för %d timmar sedan"
+
+#: ../svn/shelf-cmd.c:174
+#, c-format
+msgid "%d minute ago"
+msgid_plural "%d minutes ago"
+msgstr[0] "för %d minut sedan"
+msgstr[1] "för %d minuter sedan"
+
+#: ../svn/shelf-cmd.c:233
+#, c-format
+msgid "version %d"
+msgstr "version %d"
+
+#: ../svn/shelf-cmd.c:236
+#, c-format
+msgid "version %d of %d"
+msgid_plural "version %d of %d"
+msgstr[0] "version %d av %d"
+msgstr[1] "version %d av %d"
+
+#: ../svn/shelf-cmd.c:242
+#, c-format
+msgid "%d path changed"
+msgid_plural "%d paths changed"
+msgstr[0] ", %d sökväg ändrade"
+msgstr[1] ", %d sökvägar ändrade"
+
+#: ../svn/shelf-cmd.c:258
#, c-format
msgid " %.50s\n"
msgstr " %.50s\n"
-#: ../svn/shelve-cmd.c:189
-msgid "No shelved changes found"
-msgstr "Inga ändringar lagda på hyllan"
+#: ../svn/shelf-cmd.c:351
+msgid "No shelves found"
+msgstr "Inga hyllor finns"
+
+#: ../svn/shelf-cmd.c:467
+#, c-format
+msgid "--- Save a new version of '%s' in WC root '%s'\n"
+msgstr "--- Spara en ny version av \"%s\" i arbetskopians rot \"%s\"\n"
+
+#: ../svn/shelf-cmd.c:468
+#, c-format
+msgid "--- Shelve '%s' in WC root '%s'\n"
+msgstr "--- Lägg \"%s\" på hyllan i arbetskopian \"%s\"\n"
+
+#: ../svn/shelf-cmd.c:483
+#, c-format
+msgid "--- Saving...\n"
+msgstr "--- Sparar...\n"
+
+#: ../svn/shelf-cmd.c:484
+#, c-format
+msgid "--- Shelving...\n"
+msgstr "--- Lägger på hyllan...\n"
+
+#: ../svn/shelf-cmd.c:506
+#, c-format
+msgid "No local modifications could be saved"
+msgstr "Inga lokala ändringar kunde sparas"
+
+#: ../svn/shelf-cmd.c:507
+#, c-format
+msgid "No local modifications could be shelved"
+msgstr "Inga lokala ändringar kunde läggas på hyllan"
+
+#: ../svn/shelf-cmd.c:611
+#, c-format
+msgid "Shelved path '%s' already has status '%c' in the working copy"
+msgstr "Sökvägen \"%s\" på hyllan är redan i redan tillstånd \"%c\" i arbetskopian"
+
+#: ../svn/shelf-cmd.c:664
+#, c-format
+msgid "--- Unshelve '%s' in WC root '%s'\n"
+msgstr "--- Ta \"%s\" från hyllan i arbetskopian med rot \"%s\"\n"
+
+#: ../svn/shelf-cmd.c:672
+msgid "Cannot unshelve/restore, as at least one shelved path would conflict with a local modification or other status in the working copy"
+msgstr "Kan inte ta från hyllan eller återställa, eftersom minst en sökväg skulle strida mot en lokal ändring eller annat tillstånd i arbetskopian"
+
+#: ../svn/shelf-cmd.c:690
+#, c-format
+msgid "restored '%s' version %d and deleted %d newer version\n"
+msgid_plural "restored '%s' version %d and deleted %d newer versions\n"
+msgstr[0] "återställde \"%s\" version %d och raderade %d nyare version\n"
+msgstr[1] "återställde \"%s\" version %d och raderade %d nyare versioner\n"
+
+#: ../svn/shelf-cmd.c:696
+#, c-format
+msgid "restored '%s' version %d (the newest version)\n"
+msgstr "återställde \"%s\" version %d (senaste versionen)\n"
+
+#: ../svn/shelf-cmd.c:797
+#, c-format
+msgid "deleted '%s'\n"
+msgstr "raderade \"%s\"\n"
+
+#: ../svn/shelf-cmd.c:897
+#, c-format
+msgid "saved '%s' version %d\n"
+msgstr "sparade \"%s\" version %d\n"
-#: ../svn/shelve-cmd.c:285
+#: ../svn/shelf-cmd.c:901
#, c-format
-msgid "No changes were shelved"
-msgstr "Inga ändringar lades på hyllan"
+msgid "shelved '%s' version %d\n"
+msgstr "lade \"%s\" version %d på hyllan\n"
-#: ../svn/shelve-cmd.c:327
+#: ../svn/shelf-cmd.c:932
#, c-format
-msgid "unshelving the youngest change, '%s'\n"
-msgstr "tar bort den yngsta ändringen från hyllan, \"%s\"\n"
+msgid "unshelving the youngest shelf, '%s'\n"
+msgstr "tar bort den yngsta hyllan, \"%s\"\n"
+
+#: ../svn/shelf-cmd.c:942 ../svn/shelf-cmd.c:1127 ../svnadmin/svnadmin.c:769
+msgid "Too many arguments"
+msgstr "För många argument"
#: ../svn/status-cmd.c:97
#, c-format
@@ -13731,42 +13925,42 @@ msgstr "flyttad från %s"
msgid "moved to %s"
msgstr "flyttad till %s"
-#: ../svn/svn.c:161
+#: ../svn/svn.c:160
msgid "force operation to run"
msgstr "tvinga operationen att utföras"
-#: ../svn/svn.c:163
+#: ../svn/svn.c:162
msgid "force validity of log message source"
msgstr "acceptera alltid det angivna loggmeddelandet"
-#: ../svn/svn.c:164 ../svn/svn.c:165 ../svnadmin/svnadmin.c:168
+#: ../svn/svn.c:163 ../svn/svn.c:164 ../svnadmin/svnadmin.c:168
#: ../svnadmin/svnadmin.c:171 ../svnbench/svnbench.c:83
#: ../svnbench/svnbench.c:84 ../svndumpfilter/svndumpfilter.c:944
#: ../svndumpfilter/svndumpfilter.c:947 ../svnfsfs/svnfsfs.c:89
#: ../svnfsfs/svnfsfs.c:92 ../svnlook/svnlook.c:115 ../svnlook/svnlook.c:127
-#: ../svnsync/svnsync.c:284 ../svnsync/svnsync.c:286
+#: ../svnsync/svnsync.c:289 ../svnsync/svnsync.c:291
msgid "show help on a subcommand"
msgstr "visa hjälp för ett underkommando"
-#: ../svn/svn.c:166
+#: ../svn/svn.c:165
msgid "specify log message ARG"
msgstr "ange loggmeddelande ARG"
-#: ../svn/svn.c:167 ../svnbench/svnbench.c:85
+#: ../svn/svn.c:166 ../svnbench/svnbench.c:85
msgid "print nothing, or only summary information"
msgstr "ingen utmatning, eller bara sammanfattning"
-#: ../svn/svn.c:168 ../svnbench/svnbench.c:86
+#: ../svn/svn.c:167 ../svnbench/svnbench.c:86
msgid "descend recursively, same as --depth=infinity"
msgstr "gå ner rekursivt, som --depth=infinity"
-#: ../svn/svn.c:169 ../svnbench/svnbench.c:87
+#: ../svn/svn.c:168 ../svnbench/svnbench.c:87
msgid "obsolete; try --depth=files or --depth=immediates"
msgstr ""
"föråldrat; försök med --depth=files\n"
" eller --depth=immediates"
-#: ../svn/svn.c:171 ../svnbench/svnbench.c:89
+#: ../svn/svn.c:170 ../svnbench/svnbench.c:89
msgid ""
"the change made by revision ARG (like -r ARG-1:ARG)\n"
" If ARG is negative this is like -r ARG:ARG-1\n"
@@ -13779,7 +13973,7 @@ msgstr ""
" Om ARG är på formen ARG1-ARG2 så är detta samma\n"
" som ARG1:ARG2, där ARG1 ingår"
-#: ../svn/svn.c:179 ../svnbench/svnbench.c:97
+#: ../svn/svn.c:178 ../svnbench/svnbench.c:97
msgid ""
"ARG (some commands also take ARG1:ARG2 range)\n"
" A revision argument can be one of:\n"
@@ -13803,41 +13997,41 @@ msgstr ""
" arkiveringen vid eller före BASE\n"
" \"PREV\" revisionen före COMMITTED"
-#: ../svn/svn.c:194
+#: ../svn/svn.c:193
msgid "read log message from file ARG"
msgstr "läs loggmeddelande från filen ARG"
-#: ../svn/svn.c:196
+#: ../svn/svn.c:195
msgid "give output suitable for concatenation"
msgstr "skapa utdata som kan slås ihop"
-#: ../svn/svn.c:198
+#: ../svn/svn.c:197
msgid "treat value as being in charset encoding ARG"
msgstr ""
"betrakta värdet som om det använder\n"
" teckenkodningen ARG"
-#: ../svn/svn.c:199 ../svnadmin/svnadmin.c:174 ../svnbench/svnbench.c:112
+#: ../svn/svn.c:198 ../svnadmin/svnadmin.c:174 ../svnbench/svnbench.c:112
#: ../svndumpfilter/svndumpfilter.c:950 ../svnfsfs/svnfsfs.c:95
-#: ../svnlook/svnlook.c:179 ../svnrdump/svnrdump.c:134
-#: ../svnserve/svnserve.c:419 ../svnsync/svnsync.c:282
+#: ../svnlook/svnlook.c:179 ../svnrdump/svnrdump.c:140
+#: ../svnserve/svnserve.c:419 ../svnsync/svnsync.c:287
#: ../svnversion/svnversion.c:144
msgid "show program version information"
msgstr "visa programversionsinformation"
-#: ../svn/svn.c:200 ../svnbench/svnbench.c:113
+#: ../svn/svn.c:199 ../svnbench/svnbench.c:113
msgid "print extra information"
msgstr "visa extrainformation"
-#: ../svn/svn.c:201
+#: ../svn/svn.c:200
msgid "display update information"
msgstr "visa uppdateringsinformation"
-#: ../svn/svn.c:202 ../svnbench/svnbench.c:114 ../svnrdump/svnrdump.c:116
+#: ../svn/svn.c:201 ../svnbench/svnbench.c:114 ../svnrdump/svnrdump.c:122
msgid "specify a username ARG"
msgstr "ange ett användarnamn ARG"
-#: ../svn/svn.c:204
+#: ../svn/svn.c:203
msgid ""
"specify a password ARG (caution: on many operating\n"
" systems, other users will be able to see this)"
@@ -13845,11 +14039,11 @@ msgstr ""
"ange lösenordet ARG (varning: på många system\n"
" kan andra användare se detta)"
-#: ../svn/svn.c:209 ../svnbench/svnbench.c:117 ../svnrdump/svnrdump.c:120
+#: ../svn/svn.c:208 ../svnbench/svnbench.c:117 ../svnrdump/svnrdump.c:126
msgid "read password from stdin"
msgstr "läs lösenord från standard in"
-#: ../svn/svn.c:211
+#: ../svn/svn.c:210
msgid ""
"Specify differencing options for external diff or\n"
" internal diff or blame. Default: '-u'. Options are\n"
@@ -13877,13 +14071,13 @@ msgstr ""
" -U N, --context N: Visa N rader sammanhang\n"
" -p, --show-c-function: Visa funktionsnamn i C"
-#: ../svn/svn.c:231 ../svnbench/svnbench.c:119
+#: ../svn/svn.c:230 ../svnbench/svnbench.c:119
msgid "pass contents of file ARG as additional args"
msgstr ""
"använd innehållet i filen ARG som ytterligare\n"
" argument"
-#: ../svn/svn.c:233 ../svnbench/svnbench.c:121
+#: ../svn/svn.c:232 ../svnbench/svnbench.c:121
msgid ""
"limit operation by depth ARG ('empty', 'files',\n"
" 'immediates', or 'infinity')"
@@ -13891,7 +14085,7 @@ msgstr ""
"begränsa kommandot till djupet ARG (\"empty\",\n"
" \"files\", \"immediates\" eller \"infinity\")"
-#: ../svn/svn.c:237
+#: ../svn/svn.c:236
msgid ""
"set new working copy depth to ARG ('exclude',\n"
" 'empty', 'files', 'immediates', or 'infinity')"
@@ -13899,19 +14093,19 @@ msgstr ""
"sätt arbetskopians djup till ARG (\"exclude\",\n"
" \"empty\", \"files\", \"immediates\" eller \"infinity\")"
-#: ../svn/svn.c:240 ../svnlook/svnlook.c:182
+#: ../svn/svn.c:239 ../svnlook/svnlook.c:182
msgid "output in XML"
msgstr "visa information som XML"
-#: ../svn/svn.c:241
+#: ../svn/svn.c:240
msgid "DEPRECATED"
msgstr "FÖRÅLDRAT"
-#: ../svn/svn.c:243 ../svnbench/svnbench.c:126
+#: ../svn/svn.c:242 ../svnbench/svnbench.c:126
msgid "do not cross copies while traversing history"
msgstr "följ inte kopieringar när historiken gås igenom"
-#: ../svn/svn.c:245
+#: ../svn/svn.c:244
msgid ""
"disregard default and svn:ignore and\n"
" svn:global-ignores property ignores"
@@ -13919,12 +14113,12 @@ msgstr ""
"bortse ifrån svn:ignore, svn:global-ignores och\n"
" standarduteslutningar"
-#: ../svn/svn.c:249 ../svnbench/svnbench.c:128 ../svnrdump/svnrdump.c:130
-#: ../svnsync/svnsync.c:198
+#: ../svn/svn.c:248 ../svnbench/svnbench.c:128 ../svnrdump/svnrdump.c:136
+#: ../svnsync/svnsync.c:203
msgid "do not cache authentication tokens"
msgstr "spara inte autentiseringsinformation"
-#: ../svn/svn.c:251 ../svnbench/svnbench.c:130 ../svnrdump/svnrdump.c:144
+#: ../svn/svn.c:250 ../svnbench/svnbench.c:130 ../svnrdump/svnrdump.c:150
msgid ""
"deprecated; same as\n"
" --trust-server-cert-failures=unknown-ca"
@@ -13932,7 +14126,7 @@ msgstr ""
"föråldrat; samma som\n"
" --trust-server-cert-failures=unknown-ca"
-#: ../svn/svn.c:255 ../svnbench/svnbench.c:134 ../svnrdump/svnrdump.c:148
+#: ../svn/svn.c:254 ../svnbench/svnbench.c:134 ../svnrdump/svnrdump.c:154
msgid ""
"with --non-interactive, accept SSL server\n"
" certificates with failures; ARG is comma-separated\n"
@@ -13949,7 +14143,7 @@ msgstr ""
" certifikat), \"not-yet-valid\" (certifikatet ännu\n"
" ej giltigt) och \"other\" (alla andra fel)."
-#: ../svn/svn.c:269 ../svnrdump/svnrdump.c:122 ../svnsync/svnsync.c:190
+#: ../svn/svn.c:268 ../svnrdump/svnrdump.c:128 ../svnsync/svnsync.c:195
msgid ""
"do no interactive prompting (default is to prompt\n"
" only if standard input is a terminal device)"
@@ -13957,7 +14151,7 @@ msgstr ""
"ingen interaktiv fråga (vanligtvis ställs frågor\n"
" bara om standardinmatningen är en terminal)"
-#: ../svn/svn.c:273 ../svnrdump/svnrdump.c:126 ../svnsync/svnsync.c:194
+#: ../svn/svn.c:272 ../svnrdump/svnrdump.c:132 ../svnsync/svnsync.c:199
msgid ""
"do interactive prompting even if standard input\n"
" is not a terminal device"
@@ -13965,59 +14159,59 @@ msgstr ""
"ställ interaktiva frågor även om\n"
" standardinmatningen inte är en terminal"
-#: ../svn/svn.c:277
+#: ../svn/svn.c:276
msgid "try operation but make no changes"
msgstr "testa operationen, men gör inga ändringar"
-#: ../svn/svn.c:279
+#: ../svn/svn.c:278
msgid "disable merge tracking; diff nodes as if related"
msgstr ""
"stäng av sammanslagningsföljning; jämför som om\n"
" noderna var besläktade"
-#: ../svn/svn.c:281
+#: ../svn/svn.c:280
msgid "ignore externals definitions"
msgstr "bortse ifrån externals-definitioner"
-#: ../svn/svn.c:282
+#: ../svn/svn.c:281
msgid "use ARG as merge command"
msgstr "använd ARG som merge-kommando"
-#: ../svn/svn.c:283
+#: ../svn/svn.c:282
msgid "use ARG as external editor"
msgstr "använd ARG som extern editor"
-#: ../svn/svn.c:285
+#: ../svn/svn.c:284
msgid "merge only mergeinfo differences"
msgstr ""
"slå bara ihop skillnader i\n"
" sammanslagningsinformationen"
-#: ../svn/svn.c:286
+#: ../svn/svn.c:285
msgid "use ARG as the older target"
msgstr "använd ARG som det äldre målet"
-#: ../svn/svn.c:287
+#: ../svn/svn.c:286
msgid "use ARG as the newer target"
msgstr "använd ARG som det nyare målet"
-#: ../svn/svn.c:289
+#: ../svn/svn.c:288
msgid "operate on a revision property (use with -r)"
msgstr "arbeta med en revisionsegenskap (används med -r)"
-#: ../svn/svn.c:290
+#: ../svn/svn.c:289
msgid "relocate via URL-rewriting"
msgstr "omlokalisera genom att skriva om URL:er"
-#: ../svn/svn.c:292 ../svnadmin/svnadmin.c:221 ../svnbench/svnbench.c:150
-#: ../svnrdump/svnrdump.c:114 ../svnsync/svnsync.c:248
+#: ../svn/svn.c:291 ../svnadmin/svnadmin.c:221 ../svnbench/svnbench.c:150
+#: ../svnrdump/svnrdump.c:120 ../svnsync/svnsync.c:253
msgid "read user configuration files from directory ARG"
msgstr ""
"läs användarens konfigurationsfiler från katalogen\n"
" ARG"
-#: ../svn/svn.c:294 ../svnbench/svnbench.c:152 ../svnrdump/svnrdump.c:136
-#: ../svnsync/svnsync.c:250
+#: ../svn/svn.c:293 ../svnbench/svnbench.c:152 ../svnrdump/svnrdump.c:142
+#: ../svnsync/svnsync.c:255
msgid ""
"set user configuration option in the format:\n"
" FILE:SECTION:OPTION=[VALUE]\n"
@@ -14029,15 +14223,15 @@ msgstr ""
" Till exempel:\n"
" servers:global:http-library=serf"
-#: ../svn/svn.c:301
+#: ../svn/svn.c:300
msgid "enable automatic properties"
msgstr "aktivera automatiska egenskaper"
-#: ../svn/svn.c:302
+#: ../svn/svn.c:301
msgid "disable automatic properties"
msgstr "deaktivera automatiska egenskaper"
-#: ../svn/svn.c:304
+#: ../svn/svn.c:303
msgid ""
"use a different EOL marker than the standard\n"
" system marker for files with the svn:eol-style\n"
@@ -14049,39 +14243,39 @@ msgstr ""
" \"eol-style\" satt till \"native\". ARG kan vara\n"
" något av \"LF\", \"CR\" och \"CRLF\""
-#: ../svn/svn.c:311 ../svnbench/svnbench.c:159
+#: ../svn/svn.c:310 ../svnbench/svnbench.c:159
msgid "maximum number of log entries"
msgstr "maximalt antal loggposter"
-#: ../svn/svn.c:312
+#: ../svn/svn.c:311
msgid "don't unlock the targets"
msgstr "lås inte upp målen"
-#: ../svn/svn.c:313
+#: ../svn/svn.c:312
msgid "remove changelist association"
msgstr "ta bort koppling till ändringslista"
-#: ../svn/svn.c:315
+#: ../svn/svn.c:314
msgid "operate only on members of changelist ARG"
msgstr "arbeta endast med medlemmar av ändringslistan ARG"
-#: ../svn/svn.c:317
+#: ../svn/svn.c:316
msgid "don't delete changelists after commit"
msgstr "ta inte bort ändringslistor efter arkivering"
-#: ../svn/svn.c:318
+#: ../svn/svn.c:317
msgid "keep path in working copy"
msgstr "behåll sökväg i arbetskopia"
-#: ../svn/svn.c:320 ../svnbench/svnbench.c:161
+#: ../svn/svn.c:319 ../svnbench/svnbench.c:161
msgid "retrieve all revision properties"
msgstr "hämta alla revisionsegenskaper"
-#: ../svn/svn.c:322 ../svnbench/svnbench.c:163
+#: ../svn/svn.c:321 ../svnbench/svnbench.c:163
msgid "retrieve no revision properties"
msgstr "hämta inga revisionsegenskaper"
-#: ../svn/svn.c:324 ../svnbench/svnbench.c:165
+#: ../svn/svn.c:323 ../svnbench/svnbench.c:165
msgid ""
"set revision property ARG in new revision\n"
" using the name[=value] format"
@@ -14089,11 +14283,11 @@ msgstr ""
"sätt revisionsegenskapen ARG i ny revision\n"
" på formatet namn[=värde]"
-#: ../svn/svn.c:327
+#: ../svn/svn.c:326
msgid "make intermediate directories"
msgstr "skapa mellanliggande kataloger"
-#: ../svn/svn.c:329 ../svnbench/svnbench.c:169
+#: ../svn/svn.c:328 ../svnbench/svnbench.c:169
msgid ""
"use/display additional information from merge\n"
" history"
@@ -14101,7 +14295,7 @@ msgstr ""
"använd/visa ytterligare information från\n"
" sammanslagningshistoriken"
-#: ../svn/svn.c:333
+#: ../svn/svn.c:332
msgid ""
"specify automatic conflict resolution action\n"
" ('postpone', 'working', 'base', 'mine-conflict',\n"
@@ -14116,7 +14310,7 @@ msgstr ""
" (förkortningar: \"p\", \"mc\", \"tc\", \"mf\", \"tf\",\n"
" \"e\", \"l\", \"r\")"
-#: ../svn/svn.c:344
+#: ../svn/svn.c:343
msgid ""
"specify which collection of revisions to display\n"
" ('merged', 'eligible')"
@@ -14124,11 +14318,11 @@ msgstr ""
"ange slag av revisioner att visa\n"
" (\"merged\", \"eligible\")"
-#: ../svn/svn.c:348
+#: ../svn/svn.c:347
msgid "deprecated"
msgstr "avrådes"
-#: ../svn/svn.c:350
+#: ../svn/svn.c:349
msgid ""
"number of leading path components to strip from\n"
" paths parsed from the patch file. --strip 0\n"
@@ -14148,67 +14342,67 @@ msgstr ""
" Katalogseparatorn är \"/\" på alla plattformar.\n"
" Ett \"/\" i början räknas som en katalog."
-#: ../svn/svn.c:366
+#: ../svn/svn.c:365
msgid "don't expand keywords"
msgstr "expandera inte nyckelord"
-#: ../svn/svn.c:368
+#: ../svn/svn.c:367
msgid "apply the unidiff in reverse"
msgstr "anbringa unidiffen baklänges"
-#: ../svn/svn.c:370
+#: ../svn/svn.c:369
msgid "ignore whitespace during pattern matching"
msgstr "strunta i tomrum vid mönstermatchning"
-#: ../svn/svn.c:371
+#: ../svn/svn.c:370
msgid "produce diff output"
msgstr "utdata i form av skillnader"
#. maps to show_diff
#. diff options
-#: ../svn/svn.c:373 ../svnlook/svnlook.c:139
+#: ../svn/svn.c:372 ../svnlook/svnlook.c:139
msgid "use ARG as diff command"
msgstr "använd ARG som diff-kommando"
-#: ../svn/svn.c:375
+#: ../svn/svn.c:374
msgid "override diff-cmd specified in config file"
msgstr "kringgå \"diff-cmd\" angiven i inställningsfilen"
-#: ../svn/svn.c:377 ../svnlook/svnlook.c:133
+#: ../svn/svn.c:376 ../svnlook/svnlook.c:133
msgid "do not print differences for added files"
msgstr "visa inte skillnader för tillagda filer"
-#: ../svn/svn.c:379 ../svnlook/svnlook.c:136
+#: ../svn/svn.c:378 ../svnlook/svnlook.c:136
msgid "do not print differences for deleted files"
msgstr "visa inte skillnader för raderade filer"
-#: ../svn/svn.c:381
+#: ../svn/svn.c:380
msgid "don't diff copied or moved files with their source"
msgstr ""
"jämför inte kopierade eller flyttade filer\n"
" med deras källa"
-#: ../svn/svn.c:383
+#: ../svn/svn.c:382
msgid "diff unrelated nodes as delete and add"
msgstr "jämför obesläktade noder som radering och tillägg"
-#: ../svn/svn.c:384
+#: ../svn/svn.c:383
msgid "show a summary of the results"
msgstr "visa en sammanfattning av resultatet"
-#: ../svn/svn.c:386
+#: ../svn/svn.c:385
msgid "use git's extended diff format"
msgstr "använd git:s utökade format"
-#: ../svn/svn.c:388 ../svnlook/svnlook.c:142
+#: ../svn/svn.c:387 ../svnlook/svnlook.c:142
msgid "ignore properties during the operation"
msgstr "strunta i egenskaper"
-#: ../svn/svn.c:390 ../svnlook/svnlook.c:145
+#: ../svn/svn.c:389 ../svnlook/svnlook.c:145
msgid "show only properties during the operation"
msgstr "visa endast egenskaper"
-#: ../svn/svn.c:392
+#: ../svn/svn.c:391
msgid ""
"generate diff suitable for generic third-party\n"
" patch tools; currently the same as\n"
@@ -14218,7 +14412,7 @@ msgstr ""
" patch-verktyg; för närvarande samma som\n"
" \"--show-copies-as-adds --ignore-properties\""
-#: ../svn/svn.c:400
+#: ../svn/svn.c:399
msgid ""
"Allow operation on mixed-revision working copy.\n"
" Use of this option is not recommended!\n"
@@ -14228,7 +14422,7 @@ msgstr ""
" Användning av denna flagga rekommenderas inte!\n"
" Kör \"svn update\" istället."
-#: ../svn/svn.c:406
+#: ../svn/svn.c:405
msgid ""
"also operate on externals defined by\n"
" svn:externals properties"
@@ -14236,11 +14430,11 @@ msgstr ""
"verka även på externa objekt\n"
" definierade av egenskaperna svn:externals"
-#: ../svn/svn.c:410
+#: ../svn/svn.c:409
msgid "retrieve properties set on parents of the target"
msgstr "hämta egenskaper satta på målets föräldrar"
-#: ../svn/svn.c:412
+#: ../svn/svn.c:411
msgid ""
"use ARG as search pattern (glob syntax, case-\n"
" and accent-insensitive, may require quotation marks\n"
@@ -14251,31 +14445,31 @@ msgstr ""
" behöva citattecken för att hindra expansion i\n"
" skalet)"
-#: ../svn/svn.c:418
+#: ../svn/svn.c:417
msgid "combine ARG with the previous search pattern"
msgstr "kombinera ARG med föregående sökmönster"
-#: ../svn/svn.c:420
+#: ../svn/svn.c:419
msgid "show revision log message, author and date"
msgstr "visa loggmeddelande, författare och datum"
-#: ../svn/svn.c:422
+#: ../svn/svn.c:421
msgid "remove unversioned items"
msgstr "visa icke versionshanterade objekt"
-#: ../svn/svn.c:423
+#: ../svn/svn.c:422
msgid "remove ignored items"
msgstr "ta bort ej beaktade objekt"
-#: ../svn/svn.c:424 ../svnlook/svnlook.c:155 ../svnversion/svnversion.c:140
+#: ../svn/svn.c:423 ../svnlook/svnlook.c:155 ../svnversion/svnversion.c:140
msgid "do not output the trailing newline"
msgstr "skriv inte ut det avslutande radslutet"
-#: ../svn/svn.c:425
+#: ../svn/svn.c:424
msgid "show cached passwords"
msgstr "visa cachade lösenord"
-#: ../svn/svn.c:427
+#: ../svn/svn.c:426
msgid ""
"pin externals with no explicit revision to their\n"
" current revision (recommended when tagging)"
@@ -14284,7 +14478,7 @@ msgstr ""
" vid deras nuvarande revision (rekommenderas\n"
" vid märkning)"
-#: ../svn/svn.c:431
+#: ../svn/svn.c:430
msgid ""
"print only the item identified by ARG:\n"
" 'kind' node kind of TARGET\n"
@@ -14302,7 +14496,9 @@ msgid ""
" date of 'last-changed-revision'\n"
" 'last-changed-author'\n"
" author of 'last-changed-revision'\n"
-" 'wc-root' root of TARGET's working copy"
+" 'wc-root' root of TARGET's working copy\n"
+" 'schedule' 'normal','add','delete','replace'\n"
+" 'depth' checkout depth of TARGET in WC"
msgstr ""
"visa bara elementet namngivet av ARG:\n"
" \"kind\" MÃ…Lets nodtyp\n"
@@ -14319,9 +14515,13 @@ msgstr ""
" datum för \"last-changed-revision\"\n"
" \"last-changed-author\"\n"
" författare till \"last-changed-revision\"\n"
-" \"wc-root\" rot för MÅLets arbetskopia"
+" \"wc-root\" rot för MÅLets arbetskopia\n"
+" \"schedule\" \"normal\", \"add\", \"delete\",\n"
+" \"replace\"\n"
+" \"depth\" hämtningsdjup av MÅL i\n"
+" arbetskopia"
-#: ../svn/svn.c:466
+#: ../svn/svn.c:469
msgid ""
"Local additions are merged with incoming additions\n"
" instead of causing a tree conflict. Use of this\n"
@@ -14333,25 +14533,21 @@ msgstr ""
" väljare rekommenderas inte! Använd \"svn resolve\"\n"
" för att lösa trädkonflikter istället."
-#: ../svn/svn.c:475
+#: ../svn/svn.c:478
msgid "remove unreferenced pristines from .svn directory"
msgstr ""
"ta bort orörda filer som inte används\n"
" från .svn-katalogen"
-#: ../svn/svn.c:477
-msgid "list shelved patches"
-msgstr "lista patchar på hyllan"
+#: ../svn/svn.c:481
+msgid "drop shelf after successful unshelve"
+msgstr "ta bort hyllan efter lyckad återställning"
-#: ../svn/svn.c:478
-msgid "do not delete the shelved patch"
-msgstr "radera inte patchen på hyllan"
+#: ../svn/svn.c:484
+msgid "print the working copy layout"
+msgstr "visa arbetskopians omfattning"
-#: ../svn/svn.c:479
-msgid "delete the shelved patch"
-msgstr "radera patchen på hyllan"
-
-#: ../svn/svn.c:529
+#: ../svn/svn.c:534
msgid ""
"Put files and directories under version control, scheduling\n"
"them for addition to repository. They will be added in next commit.\n"
@@ -14361,16 +14557,24 @@ msgstr ""
"läggas till i arkivet. De kommer att läggas till vid nästa arkivering.\n"
"användning: add PATH...\n"
-#: ../svn/svn.c:534
+#: ../svn/svn.c:540
msgid "add intermediate parents"
msgstr "skapa mellanliggande föräldrakataloger"
-#: ../svn/svn.c:537
+#: ../svn/svn.c:543
msgid ""
"Manage cached authentication credentials.\n"
"usage: 1. svn auth [PATTERN ...]\n"
"usage: 2. svn auth --remove PATTERN [PATTERN ...]\n"
"\n"
+msgstr ""
+"Hantera cachade autentiseringsreferenser.\n"
+"användning: 1. svn auth [MÖNSTER ...]\n"
+"användning: 2. svn auth --remove MÖNSTER [MÖNSTER ...]\n"
+"\n"
+
+#: ../svn/svn.c:547
+msgid ""
" With no arguments, list all cached authentication credentials.\n"
" Authentication credentials include usernames, passwords,\n"
" SSL certificates, and SSL client-certificate passphrases.\n"
@@ -14378,6 +14582,17 @@ msgid ""
" or more patterns. With the --remove option, remove cached authentication\n"
" credentials matching one or more patterns.\n"
"\n"
+msgstr ""
+" Utan argument, lista alla cachade autentiseringsreferenser.\n"
+" Autentiseringsreferenser omfattar användarnamn, lösenord, SSL-certifikat,\n"
+" och lösenordsfraser för SSL-klientreferenser.\n"
+" Om MÖNSTER angivits, lista bara referenser med attribut som motsvarar\n"
+" ett eller flera mönster. Med väljaren --remove, ta bort cachade\n"
+" autentiseringsreferenser som motsvarar ett eller flera mönster.\n"
+"\n"
+
+#: ../svn/svn.c:554
+msgid ""
" If more than one pattern is specified credentials are considered only if they\n"
" match all specified patterns. Patterns are matched case-sensitively and may\n"
" contain glob wildcards:\n"
@@ -14388,17 +14603,6 @@ msgid ""
" command line because many command shells will interfere by trying to\n"
" expand them.\n"
msgstr ""
-"Hantera cachade autentiseringsreferenser.\n"
-"användning: 1. svn auth [MÖNSTER ...]\n"
-"användning: 2. svn auth --remove MÖNSTER [MÖNSTER ...]\n"
-"\n"
-" Utan argument, lista alla cachade autentiseringsreferenser.\n"
-" Autentiseringsreferenser omfattar användarnamn, lösenord, SSL-certifikat,\n"
-" och lösenordsfraser för SSL-klientreferenser.\n"
-" Om MÖNSTER angivits, lista bara referenser med attribut som motsvarar\n"
-" ett eller flera mönster. Med väljaren --remove, ta bort cachade\n"
-" autentiseringsreferenser som motsvarar ett eller flera mönster.\n"
-"\n"
" Om mer än ett mönster angivits så beaktas bara referenser som motsvarar alla\n"
" angivna mönster. Mönster är skiftlägesokänsliga och kan innehålla\n"
" jokertecken:\n"
@@ -14408,68 +14612,89 @@ msgstr ""
" Observera att jokertecken vanligtvis behöver citeras på kommandoraden\n"
" eftersom många kommandoskal annars försöker expandera dem.\n"
-#: ../svn/svn.c:558
+#: ../svn/svn.c:565
msgid "remove matching authentication credentials"
msgstr "ta bort motsvarande autentiseringsreferenser"
-#: ../svn/svn.c:563
+#: ../svn/svn.c:570
msgid ""
"Show when each line of a file was last (or\n"
"next) changed.\n"
"usage: blame [-rM:N] TARGET[@REV]...\n"
"\n"
+msgstr ""
+"Visa när varje rad i en fil senast\n"
+"ändrades, eller när den ändras därefter.\n"
+"användning: blame [-rM:N] MÅL[@REV]...\n"
+"\n"
+
+#: ../svn/svn.c:574
+msgid ""
" Annotate each line of a file with the revision number and author of the\n"
" last change (or optionally the next change) to that line.\n"
"\n"
+msgstr ""
+" Kommentera varje rad i en fil med revisionsnumret och författaren till\n"
+" den senaste ändringen (eller nästa ändring) av raden.\n"
+"\n"
+
+#: ../svn/svn.c:577 ../svnbench/svnbench.c:222
+msgid ""
" With no revision range (same as -r0:REV), or with '-r M:N' where M < N,\n"
" annotate each line that is present in revision N of the file, with\n"
" the last revision at or before rN that changed or added the line,\n"
" looking back no further than rM.\n"
"\n"
-" With a reverse revision range '-r M:N' where M > N,\n"
-" annotate each line that is present in revision N of the file, with\n"
-" the next revision after rN that changed or deleted the line,\n"
-" looking forward no further than rM.\n"
-"\n"
-" If specified, REV determines in which revision the target is first\n"
-" looked up.\n"
-"\n"
-" Write the annotated result to standard output.\n"
msgstr ""
-"Visa när varje rad i en fil senast\n"
-"ändrades, eller när den ändras därefter.\n"
-"användning: blame [-rM:N] MÅL[@REV]...\n"
-"\n"
-" Kommentera varje rad i en fil med revisionsnumret och författaren till\n"
-" den senaste ändringen (eller nästa ändring) av raden.\n"
-"\n"
" Utan revisionsintervall (samma som -r0:REV), eller med \"-r M:N\" där M < N,\n"
" kommentera varje rad som finns i revision N av filen, med den senaste\n"
" revisionen i eller före rN som ändrade eller lade till raden, utan att\n"
" gå längre bakåt i tiden än rM.\n"
"\n"
+
+#: ../svn/svn.c:582 ../svnbench/svnbench.c:227
+msgid ""
+" With a reverse revision range '-r M:N' where M > N,\n"
+" annotate each line that is present in revision N of the file, with\n"
+" the next revision after rN that changed or deleted the line,\n"
+" looking forward no further than rM.\n"
+"\n"
+msgstr ""
" Med ett bakvänt revisionsintervall \"-r M:N\" där M > N, kommentera varje rad\n"
" som finns i revision N av filen, med nästa revision efter rN som ändrade\n"
" eller raderade raden, utan att gå längre framåt i tiden än rM.\n"
"\n"
+
+#: ../svn/svn.c:587 ../svnbench/svnbench.c:232
+msgid ""
+" If specified, REV determines in which revision the target is first\n"
+" looked up.\n"
+"\n"
+msgstr ""
" Om REV anges, bestämmer den i vilken revision målet först letas upp.\n"
"\n"
-" Det kommenterade resultatet skrivs till standardutmatningen.\n"
-#: ../svn/svn.c:587
+#: ../svn/svn.c:590 ../svnbench/svnbench.c:235
+msgid " Write the annotated result to standard output.\n"
+msgstr " Det kommenterade resultatet skrivs till standardutmatningen.\n"
+
+#: ../svn/svn.c:595
msgid ""
"Output the content of specified files or URLs.\n"
"usage: cat TARGET[@REV]...\n"
"\n"
-" If specified, REV determines in which revision the target is first\n"
-" looked up.\n"
msgstr ""
"Visa innehållet i angivna filer eller URL:er.\n"
"användning: cat MÅL[@REV]...\n"
"\n"
-" Om REV anges, bestämmer den i vilken revision målet först letas upp.\n"
-#: ../svn/svn.c:595
+#: ../svn/svn.c:598
+msgid ""
+" If specified, REV determines in which revision the target is first\n"
+" looked up.\n"
+msgstr " Om REV anges, bestämmer den i vilken revision målet först letas upp.\n"
+
+#: ../svn/svn.c:604
msgid ""
"Associate (or dissociate) changelist CLNAME with the named files.\n"
"usage: 1. changelist CLNAME PATH...\n"
@@ -14480,19 +14705,40 @@ msgstr ""
"användning: 1. changelist ÄLNAMN SÖKVÄG...\n"
" 2. changelist --remove SÖKVÄG...\n"
-#: ../svn/svn.c:601
+#: ../svn/svn.c:611
msgid ""
"Check out a working copy from a repository.\n"
"usage: checkout URL[@REV]... [PATH]\n"
"\n"
+msgstr ""
+"Checka ut en arbetskopia från ett arkiv.\n"
+"användning: checkout URL[@REV]... [SÖKVÄG]\n"
+"\n"
+
+#: ../svn/svn.c:614
+msgid ""
" If specified, REV determines in which revision the URL is first\n"
" looked up.\n"
"\n"
+msgstr ""
+" Om REV anges, bestämmer den i vilken revision målet först letas upp.\n"
+"\n"
+
+#: ../svn/svn.c:617
+msgid ""
" If PATH is omitted, the basename of the URL will be used as\n"
" the destination. If multiple URLs are given each will be checked\n"
" out into a sub-directory of PATH, with the name of the sub-directory\n"
" being the basename of the URL.\n"
"\n"
+msgstr ""
+" Om SÖKVÄG utelämnas, används URL:s basnamn som destination. Om flera\n"
+" URL:er anges, kommer varje URL att checkas ut i en underkatalog till\n"
+" SÖKVÄG som får URL:ens basnamn som katalognamn.\n"
+"\n"
+
+#: ../svn/svn.c:622
+msgid ""
" If --force is used, unversioned obstructing paths in the working\n"
" copy destination do not automatically cause the check out to fail.\n"
" If the obstructing path is the same type (file or directory) as the\n"
@@ -14504,18 +14750,7 @@ msgid ""
" to the working copy. All properties from the repository are applied\n"
" to the obstructing path.\n"
"\n"
-" See also 'svn help update' for a list of possible characters\n"
-" reporting the action taken.\n"
msgstr ""
-"Checka ut en arbetskopia från ett arkiv.\n"
-"användning: checkout URL[@REV]... [SÖKVÄG]\n"
-"\n"
-" Om den anges, bestämmer REV i vilken revision URL först letas upp.\n"
-"\n"
-" Om SÖKVÄG utelämnas, används URL:s basnamn som destination. Om flera\n"
-" URL:er anges, kommer varje URL att checkas ut i en underkatalog till\n"
-" SÖKVÄG som får URL:ens basnamn som katalognamn.\n"
-"\n"
" Om --force används, orsakar icke versionshanterade sökvägar som är i\n"
" vägen inte automatiskt att utcheckningen misslyckas vid försök att lägga till\n"
" dem. Om sökvägen som är i vägen är av samma typ (fil eller katalog)\n"
@@ -14527,10 +14762,16 @@ msgstr ""
" ändringar i arbetskopian. Samtliga egenskaper i arkivet läggs till för\n"
" sökvägar som är i vägen.\n"
"\n"
+
+#: ../svn/svn.c:633
+msgid ""
+" See also 'svn help update' for a list of possible characters\n"
+" reporting the action taken.\n"
+msgstr ""
" Se även \"svn help update\" för en lista av möjliga tecken i rapporten\n"
" om vilken åtgärd som utfördes.\n"
-#: ../svn/svn.c:628
+#: ../svn/svn.c:639
msgid ""
"Either recover from an interrupted operation that left the working copy locked,\n"
"or remove unwanted files.\n"
@@ -14539,25 +14780,6 @@ msgid ""
" cleanup --remove-ignored [WCPATH...]\n"
" 3. cleanup --vacuum-pristines [WCPATH...]\n"
"\n"
-" 1. When none of the options --remove-unversioned, --remove-ignored, and\n"
-" --vacuum-pristines is specified, remove all write locks (shown as 'L' by\n"
-" the 'svn status' command) from the working copy. Usually, this is only\n"
-" necessary if a Subversion client has crashed while using the working copy,\n"
-" leaving it in an unusable state.\n"
-"\n"
-" WARNING: There is no mechanism that will protect write locks still\n"
-" being used by other Subversion clients. Running this command\n"
-" without any options while another client is using the working\n"
-" copy can corrupt the working copy beyond repair!\n"
-"\n"
-" 2. If the --remove-unversioned option or the --remove-ignored option\n"
-" is given, remove any unversioned or ignored items within WCPATH.\n"
-" Note that the 'svn status' command shows unversioned items as '?',\n"
-" and ignored items as 'I' if the --no-ignore option is given to it.\n"
-"\n"
-" 3. If the --vacuum-pristines option is given, remove pristine copies of\n"
-" files which are stored inside the .svn directory and which are no longer\n"
-" referenced by any file in the working copy.\n"
msgstr ""
"Återställ efter en avbruten operation som försatte arbetskopian i lås,\n"
"eller ta bort oönskade filer.\n"
@@ -14566,61 +14788,115 @@ msgstr ""
" cleanup --remove-ignored [AKSÖKVÄG...]\n"
" 3. cleanup --vacuum-pristines [AKSÖKVÄG...]\n"
"\n"
+
+#: ../svn/svn.c:646
+msgid ""
+" 1. When none of the options --remove-unversioned, --remove-ignored, and\n"
+" --vacuum-pristines is specified, remove all write locks (shown as 'L' by\n"
+" the 'svn status' command) from the working copy. Usually, this is only\n"
+" necessary if a Subversion client has crashed while using the working copy,\n"
+" leaving it in an unusable state.\n"
+"\n"
+msgstr ""
" 1. Utan väljarna --remove-unversioned, --remove-ignored och\n"
" --vacuum-pristines, ta bort alla skrivlås (visade som \"L\" av kommandot\n"
" \"svn status\") från arbetskopian. Detta behövs oftast bara om en\n"
" Subversionklient kraschade när arbetskopian användes och denna fastnade\n"
" i ett oanvändbart tillstånd.\n"
"\n"
+
+#: ../svn/svn.c:652
+msgid ""
+" WARNING: There is no mechanism that will protect write locks still\n"
+" being used by other Subversion clients. Running this command\n"
+" without any options while another client is using the working\n"
+" copy can corrupt the working copy beyond repair!\n"
+"\n"
+msgstr ""
" VARNING: Det finns ingen mekanism som skyddar skrivlås som fortfarande\n"
" används av en annan Subversionklient. Om detta kommando körs\n"
" medan en annan klient använder arbetskopian kan denna förstöras\n"
" utan möjlighet till reparation!\n"
"\n"
+
+#: ../svn/svn.c:657
+msgid ""
+" 2. If the --remove-unversioned option or the --remove-ignored option\n"
+" is given, remove any unversioned or ignored items within WCPATH.\n"
+" Note that the 'svn status' command shows unversioned items as '?',\n"
+" and ignored items as 'I' if the --no-ignore option is given to it.\n"
+"\n"
+msgstr ""
" 2. Om --remove-unversioned eller --remove-ignored anges, ta bort ej\n"
" versionshanterade eller ej beaktade objekt inom AKSÖKVÄG.\n"
" Observera att kommandot \"svn status\" visare ej versionshanterade objekt\n"
" som \"?\" och ej beaktade objekt som \"I\" om väljaren --no-ignore används.\n"
"\n"
+
+#: ../svn/svn.c:662
+msgid ""
+" 3. If the --vacuum-pristines option is given, remove pristine copies of\n"
+" files which are stored inside the .svn directory and which are no longer\n"
+" referenced by any file in the working copy.\n"
+msgstr ""
" 3. Om väljaren --vacuum-pristines anges, ta bort orörda kopior av filer\n"
" i katalogen \".svn\" som inte längre används av någon fil i arbetskopian.\n"
-#: ../svn/svn.c:656
+#: ../svn/svn.c:668
msgid "deprecated and ignored"
msgstr "föråldrad och har ingen verkan"
-#: ../svn/svn.c:659
+#: ../svn/svn.c:671
msgid ""
"Send changes from your working copy to the repository.\n"
"usage: commit [PATH...]\n"
"\n"
-" A log message must be provided, but it can be empty. If it is not\n"
-" given by a --message or --file option, an editor will be started.\n"
-"\n"
-" If any targets are (or contain) locked items, those will be\n"
-" unlocked after a successful commit, unless --no-unlock is given.\n"
-"\n"
-" If --include-externals is given, also commit file and directory\n"
-" externals reached by recursion. Do not commit externals with a\n"
-" fixed revision.\n"
msgstr ""
"Skicka ändringar från arbetskopian till arkivet.\n"
"användning: commit [SÖKVÄG...]\n"
"\n"
+
+#: ../svn/svn.c:674
+msgid ""
+" A log message must be provided, but it can be empty. If it is not\n"
+" given by a --message or --file option, an editor will be started.\n"
+"\n"
+msgstr ""
" Ett loggmeddelande måste anges, men det kan vara tomt. Om det inte anges\n"
" med en --message- eller --file-flagga, startas en editor.\n"
"\n"
+
+#: ../svn/svn.c:677
+msgid ""
+" If any targets are (or contain) locked items, those will be\n"
+" unlocked after a successful commit, unless --no-unlock is given.\n"
+"\n"
+msgstr ""
" Om något mål är låst (eller innehåller låsta objekt) kommer dessa att\n"
" låsas upp efter en lyckad arkivering, såvida inte --no-unlock anges.\n"
"\n"
+
+#: ../svn/svn.c:680
+msgid ""
+" If --include-externals is given, also commit file and directory\n"
+" externals reached by recursion. Do not commit externals with a\n"
+" fixed revision.\n"
+msgstr ""
" Om --include-externals anges, arkivera också externa filer och kataloger\n"
" som nås rekursivt. Arkivera inte externa objekt med en fixerad revision.\n"
-#: ../svn/svn.c:675
+#: ../svn/svn.c:688
msgid ""
"Copy files and directories in a working copy or repository.\n"
"usage: copy SRC[@REV]... DST\n"
"\n"
+msgstr ""
+"Kopiera filer och kataloger i en arbetskopia eller ett arkiv.\n"
+"användning: copy KÄLLA[@REV]... MÅL\n"
+"\n"
+
+#: ../svn/svn.c:691
+msgid ""
" SRC and DST can each be either a working copy (WC) path or URL:\n"
" WC -> WC: copy and schedule for addition (with history)\n"
" WC -> URL: immediately commit a copy of WC to URL\n"
@@ -14630,15 +14906,7 @@ msgid ""
" the sources will be added as children of DST. When copying multiple\n"
" sources, DST must be an existing directory.\n"
"\n"
-" WARNING: For compatibility with previous versions of Subversion,\n"
-" copies performed using two working copy paths (WC -> WC) will not\n"
-" contact the repository. As such, they may not, by default, be able\n"
-" to propagate merge tracking information from the source of the copy\n"
-" to the destination.\n"
msgstr ""
-"Kopiera filer och kataloger i en arbetskopia eller ett arkiv.\n"
-"användning: copy KÄLLA[@REV]... MÅL\n"
-"\n"
" KÄLLA och MÅL kan vardera vara antingen en sökväg i en arbetskopia (AK)\n"
" eller en URL:\n"
" AK -> AK: kopiera och schemalägg för tillägg (med historik)\n"
@@ -14650,17 +14918,34 @@ msgstr ""
" så kommer källorna läggas till som barn till MÅL. När flera källor kopieras\n"
" måste MÅL vara en befintlig katalog.\n"
"\n"
+
+#: ../svn/svn.c:700
+msgid ""
+" WARNING: For compatibility with previous versions of Subversion,\n"
+" copies performed using two working copy paths (WC -> WC) will not\n"
+" contact the repository. As such, they may not, by default, be able\n"
+" to propagate merge tracking information from the source of the copy\n"
+" to the destination.\n"
+msgstr ""
" VARNING: För kompatibilitet med tidigare versioner av Subversion kommer\n"
" arkivet inte kontaktas vid kopiering mellan två arbetskopiesökvägar\n"
" (AK -> AK). Därför kommer normalt inte information för sammanslagnings-\n"
" följning överföras från kopieringens källa till dess mål.\n"
-#: ../svn/svn.c:696
+#: ../svn/svn.c:710
msgid ""
"Remove files and directories from version control.\n"
"usage: 1. delete PATH...\n"
" 2. delete URL...\n"
"\n"
+msgstr ""
+"Radera filer och kataloger från versionshantering.\n"
+"användning: 1. delete SÖKVÄG...\n"
+" 2. delete URL...\n"
+"\n"
+
+#: ../svn/svn.c:714
+msgid ""
" 1. Each item specified by a PATH is scheduled for deletion upon\n"
" the next commit. Files, and directories that have not been\n"
" committed, are immediately removed from the working copy\n"
@@ -14668,13 +14953,7 @@ msgid ""
" PATHs that are, or contain, unversioned or modified items will\n"
" not be removed unless the --force or --keep-local option is given.\n"
"\n"
-" 2. Each item specified by a URL is deleted from the repository\n"
-" via an immediate commit.\n"
msgstr ""
-"Radera filer och kataloger från versionshantering.\n"
-"användning: 1. delete SÖKVÄG...\n"
-" 2. delete URL...\n"
-"\n"
" 1. Varje objekt som angivits med en sökväg schemaläggs för radering vid\n"
" nästa arkivering. Filer och kataloger som aldrig arkiverats tas\n"
" genast bort från arbetskopian såvida inte flaggan --keep-local anges.\n"
@@ -14682,10 +14961,16 @@ msgstr ""
" eller som är ändrade raderas bara om flaggan --force eller\n"
" --keep-local används.\n"
"\n"
+
+#: ../svn/svn.c:721
+msgid ""
+" 2. Each item specified by a URL is deleted from the repository\n"
+" via an immediate commit.\n"
+msgstr ""
" 2. Varje objekt som anges med en URL raderas från arkivet genom en\n"
" omedelbar arkivering.\n"
-#: ../svn/svn.c:712
+#: ../svn/svn.c:727
msgid ""
"Display local changes or differences between two revisions or paths.\n"
"usage: 1. diff\n"
@@ -14696,32 +14981,6 @@ msgid ""
" 5. diff OLD-URL[@OLDREV] NEW-PATH[@NEWREV]\n"
" 6. diff OLD-PATH[@OLDREV] NEW-URL[@NEWREV]\n"
"\n"
-" 1. Use just 'svn diff' to display local modifications in a working copy.\n"
-"\n"
-" 2. Display the changes made to TARGETs as they are seen in REV between\n"
-" two revisions. TARGETs may be all working copy paths or all URLs.\n"
-" If TARGETs are working copy paths, N defaults to BASE and M to the\n"
-" working copy; if URLs, N must be specified and M defaults to HEAD.\n"
-" The '-c M' option is equivalent to '-r N:M' where N = M-1.\n"
-" Using '-c -M' does the reverse: '-r M:N' where N = M-1.\n"
-"\n"
-" 3. Display the differences between OLD-TGT as it was seen in OLDREV and\n"
-" NEW-TGT as it was seen in NEWREV. PATHs, if given, are relative to\n"
-" OLD-TGT and NEW-TGT and restrict the output to differences for those\n"
-" paths. OLD-TGT and NEW-TGT may be working copy paths or URL[@REV].\n"
-" NEW-TGT defaults to OLD-TGT if not specified. -r N makes OLDREV default\n"
-" to N, -r N:M makes OLDREV default to N and NEWREV default to M.\n"
-" If OLDREV or NEWREV are not specified, they default to WORKING for\n"
-" working copy targets and to HEAD for URL targets.\n"
-"\n"
-" Either or both OLD-TGT and NEW-TGT may also be paths to unversioned\n"
-" targets. Revisions cannot be specified for unversioned targets.\n"
-" Both targets must be of the same node kind (file or directory).\n"
-" Diffing unversioned targets against URL targets is not supported.\n"
-"\n"
-" 4. Shorthand for 'svn diff --old=OLD-URL[@OLDREV] --new=NEW-URL[@NEWREV]'\n"
-" 5. Shorthand for 'svn diff --old=OLD-URL[@OLDREV] --new=NEW-PATH[@NEWREV]'\n"
-" 6. Shorthand for 'svn diff --old=OLD-PATH[@OLDREV] --new=NEW-URL[@NEWREV]'\n"
msgstr ""
"Visa lokala ändringar eller skillnader mellan två revisioner\n"
"eller sökvägar.\n"
@@ -14733,8 +14992,25 @@ msgstr ""
" 5. diff GAMMAL-URL[@GAMMALREV] NY-SÖKVÄG[@NYREV]\n"
" 6. diff GAMMAL-SÖKVÄG[@GAMMALREV] NY-URL[@NYREV]\n"
"\n"
+
+#: ../svn/svn.c:736
+msgid ""
+" 1. Use just 'svn diff' to display local modifications in a working copy.\n"
+"\n"
+msgstr ""
" 1. Använd bara \"svn diff\" för att visa lokala ändringar i en arbetskopia.\n"
"\n"
+
+#: ../svn/svn.c:738
+msgid ""
+" 2. Display the changes made to TARGETs as they are seen in REV between\n"
+" two revisions. TARGETs may be all working copy paths or all URLs.\n"
+" If TARGETs are working copy paths, N defaults to BASE and M to the\n"
+" working copy; if URLs, N must be specified and M defaults to HEAD.\n"
+" The '-c M' option is equivalent to '-r N:M' where N = M-1.\n"
+" Using '-c -M' does the reverse: '-r M:N' where N = M-1.\n"
+"\n"
+msgstr ""
" 2. Visa ändringarna mellan två revisioner i målen MÅL som de ser ut i\n"
" revision REV. MÃ¥len kan vara arbetskopior eller URL:er.\n"
" Standardvärdet för N är BASE om målen är sökvägar till en\n"
@@ -14744,6 +15020,19 @@ msgstr ""
" Flaggan \"-c M\" fungerar som \"-r N:M\" där N = M-1.\n"
" Det omvända fås med \"-c -M\", dvs \"-r M:N\" där N = M-1.\n"
"\n"
+
+#: ../svn/svn.c:745
+msgid ""
+" 3. Display the differences between OLD-TGT as it was seen in OLDREV and\n"
+" NEW-TGT as it was seen in NEWREV. PATHs, if given, are relative to\n"
+" OLD-TGT and NEW-TGT and restrict the output to differences for those\n"
+" paths. OLD-TGT and NEW-TGT may be working copy paths or URL[@REV].\n"
+" NEW-TGT defaults to OLD-TGT if not specified. -r N makes OLDREV default\n"
+" to N, -r N:M makes OLDREV default to N and NEWREV default to M.\n"
+" If OLDREV or NEWREV are not specified, they default to WORKING for\n"
+" working copy targets and to HEAD for URL targets.\n"
+"\n"
+msgstr ""
" 3. Visa skillnaden mellan GAMMALT-MÅL som det såg ut i GAMMALREV och\n"
" NYTT-MÅL som det såg ut i NYREV. Om en eller flera SÖKVÄGar anges,\n"
" ska dessa vara relativa GAMMALT-MÅL och NYTT-MÅL och de begränsar\n"
@@ -14755,12 +15044,28 @@ msgstr ""
" Om flaggan -r inte anges är standardvärdet för GAMMALREV och NYREV\n"
" WORKING för arbetskopior och HEAD för URL:er.\n"
"\n"
+
+#: ../svn/svn.c:754
+msgid ""
+" Either or both OLD-TGT and NEW-TGT may also be paths to unversioned\n"
+" targets. Revisions cannot be specified for unversioned targets.\n"
+" Both targets must be of the same node kind (file or directory).\n"
+" Diffing unversioned targets against URL targets is not supported.\n"
+"\n"
+msgstr ""
" GAMMALT-MÅL och/eller NYTT-MÅL kan också vara sökvägar till mål som\n"
" inte är versionshanterade. Revisioner kan bara anges för\n"
" versionshanterade mål. Båda målen måste vara av samma nodtyp (fil\n"
" eller katalog). Att jämföra icke versionshanterade mål mot URL-mål\n"
" stöds ej.\n"
"\n"
+
+#: ../svn/svn.c:759
+msgid ""
+" 4. Shorthand for 'svn diff --old=OLD-URL[@OLDREV] --new=NEW-URL[@NEWREV]'\n"
+" 5. Shorthand for 'svn diff --old=OLD-URL[@OLDREV] --new=NEW-PATH[@NEWREV]'\n"
+" 6. Shorthand for 'svn diff --old=OLD-PATH[@OLDREV] --new=NEW-URL[@NEWREV]'\n"
+msgstr ""
" 4. Kortare sätt att skriva\n"
" \"svn diff --old=GAMMAL-URL[@GAMMALREV] --new=NY-URL[@NYREV]\".\n"
" 5. Kortare sätt att skriva\n"
@@ -14768,17 +15073,33 @@ msgstr ""
" 6. Kortare sätt att skriva\n"
" \"svn diff --old=GAMMAL-SÖKVÄG[@GAMMALREV] --new=NY-URL[@NYREV]\".\n"
-#: ../svn/svn.c:753
+#: ../svn/svn.c:769
msgid ""
"Create an unversioned copy of a tree.\n"
"usage: 1. export [-r REV] URL[@PEGREV] [PATH]\n"
" 2. export [-r REV] PATH1[@PEGREV] [PATH2]\n"
"\n"
+msgstr ""
+"Skapa en icke versionshanterad kopia av ett träd.\n"
+"användning: 1. export [-r REV] URL[@FIXREV] [SÖKVÄG]\n"
+" 2. export [-r REV] SÖKVÄG1[@FIXREV] [SÖKVÄG2]\n"
+"\n"
+
+#: ../svn/svn.c:773
+msgid ""
" 1. Exports a clean directory tree from the repository specified by\n"
" URL, at revision REV if it is given, otherwise at HEAD, into\n"
" PATH. If PATH is omitted, the last component of the URL is used\n"
" for the local directory name.\n"
"\n"
+msgstr ""
+" 1. Exporterar ett rent katalogträd från arkivet som anges av URL, vid\n"
+" revisionen REV, eller HEAD om REV inte anges, till SÖKVÄG. Om SÖKVÄG\n"
+" utelämnas används den sista delen av URL som lokalt katalognamn.\n"
+"\n"
+
+#: ../svn/svn.c:778
+msgid ""
" 2. Exports a clean directory tree from the working copy specified by\n"
" PATH1, at revision REV if it is given, otherwise at WORKING, into\n"
" PATH2. If PATH2 is omitted, the last component of the PATH1 is used\n"
@@ -14786,26 +15107,21 @@ msgid ""
" changes will be preserved. Files not under version control will\n"
" not be copied.\n"
"\n"
-" If specified, PEGREV determines in which revision the target is first\n"
-" looked up.\n"
msgstr ""
-"Skapa en icke versionshanterad kopia av ett träd.\n"
-"användning: 1. export [-r REV] URL[@FIXREV] [SÖKVÄG]\n"
-" 2. export [-r REV] SÖKVÄG1[@FIXREV] [SÖKVÄG2]\n"
-"\n"
-" 1. Exporterar ett rent katalogträd från arkivet som anges av URL, vid\n"
-" revisionen REV, eller HEAD om REV inte anges, till SÖKVÄG. Om SÖKVÄG\n"
-" utelämnas används den sista delen av URL som lokalt katalognamn.\n"
-"\n"
" 2. Exporterar ett rent katalogträd från arbetskopian SÖKVÄG1, vid revision\n"
" REV, eller WORKING om REV inte anges, till SÖKVÄG2. Om PATH2 utelämnas\n"
" används den sista delen av PATH1 som lokalt katalognamn. Om REV inte\n"
" är angiven kommer lokala ändringar att bevaras, men filer som inte är\n"
" versionshanterade kopieras inte.\n"
"\n"
-" Om FIXREV är angiven, anger den i vilken revision målet först letas upp.\n"
-#: ../svn/svn.c:775 ../svnbench/svnbench.c:212
+#: ../svn/svn.c:785 ../svnbench/svnbench.c:246
+msgid ""
+" If specified, PEGREV determines in which revision the target is first\n"
+" looked up.\n"
+msgstr " Om FIXREV är angiven, anger den i vilken revision målet först letas upp.\n"
+
+#: ../svn/svn.c:792 ../svnbench/svnbench.c:212
msgid ""
"Describe the usage of this program or its subcommands.\n"
"usage: help [SUBCOMMAND...]\n"
@@ -14813,11 +15129,18 @@ msgstr ""
"Visa hur detta program eller dess underkommandon används.\n"
"användning: help [UNDERKOMMANDO...]\n"
-#: ../svn/svn.c:781
+#: ../svn/svn.c:799
msgid ""
"Commit an unversioned file or tree into the repository.\n"
"usage: import [PATH] URL\n"
"\n"
+msgstr ""
+"Arkivera en icke versionshanterad fil eller katalog.\n"
+"användning: import [SÖKVÄG] URL\n"
+"\n"
+
+#: ../svn/svn.c:802
+msgid ""
" Recursively commit a copy of PATH to URL.\n"
" If PATH is omitted '.' is assumed.\n"
" Parent directories are created as necessary in the repository.\n"
@@ -14826,9 +15149,6 @@ msgid ""
" Unversionable items such as device files and pipes are ignored\n"
" if --force is specified.\n"
msgstr ""
-"Arkivera en icke versionshanterad fil eller katalog.\n"
-"användning: import [SÖKVÄG] URL\n"
-"\n"
" Arkivera en kopia av SÖKVÄG till URL rekursivt.\n"
" Om SÖKVÄG utelämnas används \".\". Föräldrakataloger skapas där det behövs\n"
" i arkivet.\n"
@@ -14836,178 +15156,218 @@ msgstr ""
" Objekt som ej kan versionshanteras, såsom enhetsfiler och rörledningar,\n"
" hoppas över om --force anges.\n"
-#: ../svn/svn.c:795
+#: ../svn/svn.c:814
msgid ""
"Display information about a local or remote item.\n"
"usage: info [TARGET[@REV]...]\n"
"\n"
+msgstr ""
+"Visa information om en fil eller katalog - lokal eller från ett arkiv.\n"
+"användning: info [MÅL[@REV]...]\n"
+"\n"
+
+#: ../svn/svn.c:817
+msgid ""
" Print information about each TARGET (default: '.').\n"
" TARGET may be either a working-copy path or a URL. If specified, REV\n"
" determines in which revision the target is first looked up; the default\n"
" is HEAD for a URL or BASE for a WC path.\n"
"\n"
-" With --show-item, print only the value of one item of information\n"
-" about TARGET.\n"
msgstr ""
-"Visa information om en fil eller katalog - lokal eller från ett arkiv.\n"
-"användning: info [MÅL[@REV]...]\n"
-"\n"
" Skriv ut information om varje angivet MÃ…L (\".\" om inget anges).\n"
" MÅL kan antingen vara en arbetskopia eller en URL. Om REV anges, avgör\n"
" den i vilken revision målet letas upp; normalt HEAD för en URL eller BASE\n"
" för en sökväg i en arbetskopia.\n"
"\n"
+
+#: ../svn/svn.c:822
+msgid ""
+" With --show-item, print only the value of one item of information\n"
+" about TARGET.\n"
+"\n"
+msgstr ""
" Med --show-item, skriv bara ut värdet på en specifik sorts information\n"
" om MÃ…L.\n"
+"\n"
-#: ../svn/svn.c:812
+#: ../svn/svn.c:825
+msgid ""
+" EXPERIMENTAL:\n"
+" With --viewspec, print the working copy layout.\n"
+msgstr ""
+" EXPERIMENTELLT:\n"
+" Med --viewspec, visa arbetskopians omfattning.\n"
+
+#: ../svn/svn.c:836 ../svn/svn.c:862
msgid ""
"List directory entries in the repository.\n"
"usage: list [TARGET[@REV]...]\n"
"\n"
+msgstr ""
+"Lista kataloginnehåll i arkivet.\n"
+"användning: list [MÅL[@REV]...]\n"
+"\n"
+
+#: ../svn/svn.c:839 ../svn/svn.c:865 ../svnbench/svnbench.c:255
+msgid ""
" List each TARGET file and the contents of each TARGET directory as\n"
" they exist in the repository. If TARGET is a working copy path, the\n"
" corresponding repository URL will be used. If specified, REV determines\n"
" in which revision the target is first looked up.\n"
"\n"
+msgstr ""
+" Lista varje fil MÅL och innehållet i varje katalog MÅL som de ser ut i\n"
+" arkivet. Om MÅL är en sökväg i en arbetskopia, används motsvarande URL\n"
+" till arkivet. OM REV anges, avgör den var MÅL först letas upp.\n"
+"\n"
+
+#: ../svn/svn.c:844 ../svn/svn.c:870 ../svnbench/svnbench.c:260
+msgid ""
" The default TARGET is '.', meaning the repository URL of the current\n"
" working directory.\n"
"\n"
+msgstr ""
+" Standardvärdet för MÅL är \".\", vilket innebär arkiv-URL:en till\n"
+" arbetskopian i aktuell katalog.\n"
+"\n"
+
+#: ../svn/svn.c:847
+msgid ""
" Multiple --search patterns may be specified and the output will be\n"
" reduced to those paths whose last segment - i.e. the file or directory\n"
" name - contains a sub-string matching at least one of these patterns\n"
" (Windows only).\n"
"\n"
+msgstr ""
+" Flera mönster kan ges med --search och utmatningen begränsas då till\n"
+" sökvägarna vars sista komponent, dvs fil- eller katalognamnet, innehåller\n"
+" en delsträng som matchar minst ett av dessa mönster (endast Windows).\n"
+"\n"
+
+#: ../svn/svn.c:852 ../svn/svn.c:877
+msgid ""
" With --verbose, the following fields will be shown for each item:\n"
"\n"
+msgstr ""
+" Om --verbose används, visas status med följande fält:\n"
+"\n"
+
+#: ../svn/svn.c:854 ../svn/svn.c:879 ../svnbench/svnbench.c:265
+msgid ""
" Revision number of the last commit\n"
" Author of the last commit\n"
" If locked, the letter 'O'. (Use 'svn info URL' to see details)\n"
" Size (in bytes)\n"
" Date and time of the last commit\n"
msgstr ""
-"Lista kataloginnehåll i arkivet.\n"
-"användning: list [MÅL[@REV]...]\n"
-"\n"
-" Lista varje fil MÅL och innehållet i varje katalog MÅL som de ser ut i\n"
-" arkivet. Om MÅL är en sökväg i en arbetskopia, används motsvarande URL\n"
-" till arkivet. OM REV anges, avgör den var MÅL först letas upp.\n"
-"\n"
-" Standardvärdet för MÅL är \".\", vilket innebär arkiv-URL:en till\n"
-" arbetskopian i aktuell katalog.\n"
-"\n"
-" Flera mönster kan ges med --search och utmatningen begränsas då till\n"
-" sökvägarna vars sista komponent, dvs fil- eller katalognamnet, innehåller\n"
-" en delsträng som matchar minst ett av dessa mönster (endast Windows).\n"
-"\n"
-" Om --verbose används, visas status med följande fält:\n"
-"\n"
" Revisionsnummer för senaste arkiveringen\n"
" Författare till senaste arkiveringen\n"
" Om filen är låst, bokstaven \"O\". (Använd \"svn info URL\" för mer info)\n"
" Storlek (i byte)\n"
" Datum och tid för senaste arkiveringen\n"
-#: ../svn/svn.c:837
+#: ../svn/svn.c:873
msgid ""
-"List directory entries in the repository.\n"
-"usage: list [TARGET[@REV]...]\n"
-"\n"
-" List each TARGET file and the contents of each TARGET directory as\n"
-" they exist in the repository. If TARGET is a working copy path, the\n"
-" corresponding repository URL will be used. If specified, REV determines\n"
-" in which revision the target is first looked up.\n"
-"\n"
-" The default TARGET is '.', meaning the repository URL of the current\n"
-" working directory.\n"
-"\n"
" Multiple --search patterns may be specified and the output will be\n"
" reduced to those paths whose last segment - i.e. the file or directory\n"
" name - matches at least one of these patterns.\n"
"\n"
-" With --verbose, the following fields will be shown for each item:\n"
-"\n"
-" Revision number of the last commit\n"
-" Author of the last commit\n"
-" If locked, the letter 'O'. (Use 'svn info URL' to see details)\n"
-" Size (in bytes)\n"
-" Date and time of the last commit\n"
msgstr ""
-"Lista kataloginnehåll i arkivet.\n"
-"användning: list [MÅL[@REV]...]\n"
-"\n"
-" Lista varje fil MÅL och innehållet i varje katalog MÅL som de ser ut i\n"
-" arkivet. Om MÅL är en sökväg i en arbetskopia, används motsvarande URL\n"
-" till arkivet. OM REV anges, avgör den var MÅL först letas upp.\n"
-"\n"
-" Standardvärdet för MÅL är \".\", vilket innebär arkiv-URL:en till\n"
-" arbetskopian i aktuell katalog.\n"
-"\n"
" Flera mönster kan ges med --search och utmatningen begränsas då till\n"
" sökvägarna vars sista komponent, dvs fil- eller katalognamnet, matchar\n"
" minst ett av dessa mönster.\n"
"\n"
-" Om --verbose används, visas status med följande fält:\n"
-"\n"
-" Revisionsnummer för senaste arkiveringen\n"
-" Författare till senaste arkiveringen\n"
-" Om filen är låst, bokstaven \"O\". (Använd \"svn info URL\" för mer info)\n"
-" Storlek (i byte)\n"
-" Datum och tid för senaste arkiveringen\n"
-#: ../svn/svn.c:864
+#: ../svn/svn.c:890
msgid ""
"Lock working copy paths or URLs in the repository, so that\n"
"no other user can commit changes to them.\n"
"usage: lock TARGET...\n"
"\n"
-" Use --force to steal a lock from another user or working copy.\n"
msgstr ""
"Lås sökvägar till arbetskopior, eller URL:er, i arkivet så att ingen\n"
"annan användare kan arkivera ändringar till dem.\n"
"användning: lock MÅL...\n"
"\n"
+
+#: ../svn/svn.c:894
+msgid " Use --force to steal a lock from another user or working copy.\n"
+msgstr ""
" Använd flaggan --force för att stjäla ett lås från en annan användare eller\n"
" arbetskopia.\n"
-#: ../svn/svn.c:870
+#: ../svn/svn.c:897
msgid "read lock comment from file ARG"
msgstr "läs låskommentar från filen ARG"
-#: ../svn/svn.c:871
+#: ../svn/svn.c:898
msgid "specify lock comment ARG"
msgstr "ange låskommentar ARG"
-#: ../svn/svn.c:872
+#: ../svn/svn.c:899
msgid "force validity of lock comment source"
msgstr "acceptera alltid den angivna låskommentaren"
-#: ../svn/svn.c:873
+#: ../svn/svn.c:900
msgid "steal locks"
msgstr "stjäl lås"
-#: ../svn/svn.c:876
+#: ../svn/svn.c:903
msgid ""
"Show the log messages for a set of revision(s) and/or path(s).\n"
"usage: 1. log [PATH][@REV]\n"
" 2. log URL[@REV] [PATH...]\n"
"\n"
+msgstr ""
+"Visa loggmeddelanden för revisioner och/eller filer.\n"
+"användning: 1. log [SÖKVÄG][@REV]\n"
+" 2. log URL[@REV] [SÖKVÄG...]\n"
+"\n"
+
+#: ../svn/svn.c:907
+msgid ""
" 1. Print the log messages for the URL corresponding to PATH\n"
" (default: '.'). If specified, REV is the revision in which the\n"
" URL is first looked up, and the default revision range is REV:1.\n"
" If REV is not specified, the default revision range is BASE:1,\n"
" since the URL might not exist in the HEAD revision.\n"
"\n"
+msgstr ""
+" 1. Visa loggmeddelanden för URL:en som motsvarar SÖKVÄG (\".\" om ej\n"
+" angiven). Om REV anges avgör den var SÖKVÄG letas upp, och standard-\n"
+" värdet för revisionsområdet är då REV:1. Annars är standardvärdet\n"
+" för revisionsområdet BASE:1 då URL:en kanske inte finns i\n"
+" HEAD-revisionen.\n"
+"\n"
+
+#: ../svn/svn.c:913
+msgid ""
" 2. Print the log messages for the PATHs (default: '.') under URL.\n"
" If specified, REV is the revision in which the URL is first\n"
" looked up, and the default revision range is REV:1; otherwise,\n"
" the URL is looked up in HEAD, and the default revision range is\n"
" HEAD:1.\n"
"\n"
+msgstr ""
+" 2. Visa loggmeddelanden för varje SÖKVÄG (\".\" om ingen angiven) under\n"
+" URL. Om REV anges avgör den var SÖKVÄG letas upp, och standardvärdet\n"
+" för revisionsområdet är då REV:1. Annars letas URL upp i HEAD och\n"
+" standardvärdet för revisionsområdet är HEAD:1.\n"
+"\n"
+
+#: ../svn/svn.c:919 ../svnbench/svnbench.c:290
+msgid ""
" Multiple '-c' or '-r' options may be specified (but not a\n"
" combination of '-c' and '-r' options), and mixing of forward and\n"
" reverse ranges is allowed.\n"
"\n"
+msgstr ""
+" Flaggorna \"-c\" och \"-r\" kan förekomma flera gånger (men inte blandas),\n"
+" och det går att blanda områden angivna framlänges och baklänges.\n"
+"\n"
+
+#: ../svn/svn.c:923
+msgid ""
" With -v, also print all affected paths with each log message.\n"
" Each changed path is preceded with a symbol describing the change:\n"
" A: The path was added or copied.\n"
@@ -15020,17 +15380,56 @@ msgid ""
" the old path will be listed as deleted and the new path will be listed\n"
" as copied from the old path at a prior revision.\n"
"\n"
+msgstr ""
+" Om -v används skrivs även alla berörda sökvägar ut med varje loggmeddelande.\n"
+" Varje ändrade sökväg föregås av en symbol som beskriver ändringen:\n"
+" A: Sökvägen lades till eller kopierades.\n"
+" D: Sökvägen raderades.\n"
+" R: Sökvägen ersattes (raderades och lades till igen i samma revision).\n"
+" M: Sökvägens fil och/eller egenskapsinnehåll ändrades.\n"
+" Om en tillagd eller ersatt sökväg kopierades från någon annanstans så\n"
+" visas kopians källsökväg och revision inom parenteser.\n"
+" Om en fil eller katalog flyttades från en sökväg till en annan med\n"
+" \"svn move\" så visas den gamla sökvägen som raderad och den nya som\n"
+" kopierad från den gamla sökvägen vid en tidigare revision.\n"
+"\n"
+
+#: ../svn/svn.c:935
+msgid ""
" With -q, don't print the log message body itself (note that this is\n"
" compatible with -v).\n"
"\n"
+msgstr ""
+" Om -q används, skrivs inte loggmeddelanden ut (kan användas tillsammans med\n"
+" -v).\n"
+"\n"
+
+#: ../svn/svn.c:938
+msgid ""
" Each log message is printed just once, even if more than one of the\n"
" affected paths for that revision were explicitly requested. Logs\n"
" follow copy history by default. Use --stop-on-copy to disable this\n"
" behavior, which can be useful for determining branchpoints.\n"
"\n"
+msgstr ""
+" Varje loggmeddelande skrivs endast ut en gång, även om flera av de\n"
+" berörda sökvägarna angavs explicit. Loggar följer kopieringshistorik som\n"
+" standard. Använd --stop-on-copy för att slå av detta, vilket kan vara\n"
+" användbart för att avgöra förgreningspunkter.\n"
+"\n"
+
+#: ../svn/svn.c:943
+msgid ""
" The --depth option is only valid in combination with the --diff option\n"
" and limits the scope of the displayed diff to the specified depth.\n"
"\n"
+msgstr ""
+" Väljaren --depth kan bara användas tillsammans med --diff, och begränsar\n"
+" omfattningen av den visade skillnaden till det angivna djupet.\n"
+"\n"
+
+#: ../svn/svn.c:946
+msgid ""
" If the --search option is used, log messages are displayed only if the\n"
" provided search pattern matches any of the author, date, log message\n"
" text (unless --quiet is used), or, if the --verbose option is also\n"
@@ -15048,78 +15447,7 @@ msgid ""
" number of log messages searched, rather than restricting the output\n"
" to a particular number of matching log messages.\n"
"\n"
-" Examples:\n"
-"\n"
-" Show the latest 5 log messages for the current working copy\n"
-" directory and display paths changed in each commit:\n"
-" svn log -l 5 -v\n"
-"\n"
-" Show the log for bar.c as of revision 42:\n"
-" svn log bar.c@42\n"
-"\n"
-" Show log messages and diffs for each commit to foo.c:\n"
-" svn log --diff http://www.example.com/repo/project/foo.c\n"
-" (Because the above command uses a full URL it does not require\n"
-" a working copy.)\n"
-"\n"
-" Show log messages for the children foo.c and bar.c of the directory\n"
-" '/trunk' as it appeared in revision 50, using the ^/ URL shortcut:\n"
-" svn log ^/trunk@50 foo.c bar.c\n"
-"\n"
-" Show the log messages for any incoming changes to foo.c during the\n"
-" next 'svn update':\n"
-" svn log -r BASE:HEAD foo.c\n"
-"\n"
-" Show the log message for the revision in which /branches/foo\n"
-" was created:\n"
-" svn log --stop-on-copy --limit 1 -r0:HEAD ^/branches/foo\n"
-"\n"
-" If ^/trunk/foo.c was moved to ^/trunk/bar.c' in revision 22, 'svn log -v'\n"
-" shows a deletion and a copy in its changed paths list, such as:\n"
-" D /trunk/foo.c\n"
-" A /trunk/bar.c (from /trunk/foo.c:21)\n"
msgstr ""
-"Visa loggmeddelanden för revisioner och/eller filer.\n"
-"användning: 1. log [SÖKVÄG][@REV]\n"
-" 2. log URL[@REV] [SÖKVÄG...]\n"
-"\n"
-" 1. Visa loggmeddelanden för URL:en som motsvarar SÖKVÄG (\".\" om ej\n"
-" angiven). Om REV anges avgör den var SÖKVÄG letas upp, och standard-\n"
-" värdet för revisionsområdet är då REV:1. Annars är standardvärdet\n"
-" för revisionsområdet BASE:1 då URL:en kanske inte finns i\n"
-" HEAD-revisionen.\n"
-"\n"
-" 2. Visa loggmeddelanden för varje SÖKVÄG (\".\" om ingen angiven) under\n"
-" URL. Om REV anges avgör den var SÖKVÄG letas upp, och standardvärdet\n"
-" för revisionsområdet är då REV:1. Annars letas URL upp i HEAD och\n"
-" standardvärdet för revisionsområdet är HEAD:1.\n"
-"\n"
-" Flaggorna \"-c\" och \"-r\" kan förekomma flera gånger (men inte blandas),\n"
-" och det går att blanda områden angivna framlänges och baklänges.\n"
-"\n"
-" Om -v används skrivs även alla berörda sökvägar ut med varje loggmeddelande.\n"
-" Varje ändrade sökväg föregås av en symbol som beskriver ändringen:\n"
-" A: Sökvägen lades till eller kopierades.\n"
-" D: Sökvägen raderades.\n"
-" R: Sökvägen ersattes (raderades och lades till igen i samma revision).\n"
-" M: Sökvägens fil och/eller egenskapsinnehåll ändrades.\n"
-" Om en tillagd eller ersatt sökväg kopierades från någon annanstans så\n"
-" visas kopians källsökväg och revision inom parenteser.\n"
-" Om en fil eller katalog flyttades från en sökväg till en annan med\n"
-" \"svn move\" så visas den gamla sökvägen som raderad och den nya som\n"
-" kopierad från den gamla sökvägen vid en tidigare revision.\n"
-"\n"
-" Om -q används, skrivs inte loggmeddelanden ut (kan användas tillsammans med\n"
-" -v).\n"
-"\n"
-" Varje loggmeddelande skrivs endast ut en gång, även om flera av de\n"
-" berörda sökvägarna angavs explicit. Loggar följer kopieringshistorik som\n"
-" standard. Använd --stop-on-copy för att slå av detta, vilket kan vara\n"
-" användbart för att avgöra förgreningspunkter.\n"
-"\n"
-" Väljaren --depth kan bara användas tillsammans med --diff, och begränsar\n"
-" omfattningen av den visade skillnaden till det angivna djupet.\n"
-"\n"
" Om flaggan --search anges, kommer loggmeddelanden bara visas om sökmönstret\n"
" matchar författaren, datumet, loggmeddelandets (utom med --quiet),\n"
" eller, med --verbose, en ändrad sökväg.\n"
@@ -15135,56 +15463,130 @@ msgstr ""
" Om --limit används tillsammans med --search, så kommer --limit begränsa\n"
" antal genomsökta loggmeddelanden och inte antal matchande.\n"
"\n"
+
+#: ../svn/svn.c:963
+msgid ""
+" Examples:\n"
+"\n"
+msgstr ""
" Exempel:\n"
"\n"
+
+#: ../svn/svn.c:965
+msgid ""
+" Show the latest 5 log messages for the current working copy\n"
+" directory and display paths changed in each commit:\n"
+" svn log -l 5 -v\n"
+"\n"
+msgstr ""
" Visa de 5 senaste loggmeddelandena för den aktuella arbetskopians\n"
" katalog och visa sökvägar ändrade i varje arkivering:\n"
" svn log -l 5 -v\n"
"\n"
+
+#: ../svn/svn.c:969
+msgid ""
+" Show the log for bar.c as of revision 42:\n"
+" svn log bar.c@42\n"
+"\n"
+msgstr ""
" Visa loggen för fil.c sådan den var i revision 42:\n"
" svn log fil.c@42\n"
"\n"
+
+#: ../svn/svn.c:972
+msgid ""
+" Show log messages and diffs for each commit to foo.c:\n"
+" svn log --diff http://www.example.com/repo/project/foo.c\n"
+" (Because the above command uses a full URL it does not require\n"
+" a working copy.)\n"
+"\n"
+msgstr ""
" Visa loggmeddelanden och skillnader för varje arkivering av fil.c:\n"
" svn log --diff http://www.exempel.se/arkiv/projekt/fil.c\n"
" (Eftersom detta kommando anger en full URL behövs ingen arbetskopia.)\n"
"\n"
+
+#: ../svn/svn.c:977
+msgid ""
+" Show log messages for the children foo.c and bar.c of the directory\n"
+" '/trunk' as it appeared in revision 50, using the ^/ URL shortcut:\n"
+" svn log ^/trunk@50 foo.c bar.c\n"
+"\n"
+msgstr ""
" Visa loggmeddelanden för filerna adam.c och bertil.c i katalogen\n"
" \"/trunk\" sådan den var i revision 50, med hjälp av URL-förkortningen\n"
" \"^/\":\n"
" svn log ^/trunk@50 adam.c bertil.c\n"
"\n"
+
+#: ../svn/svn.c:981
+msgid ""
+" Show the log messages for any incoming changes to foo.c during the\n"
+" next 'svn update':\n"
+" svn log -r BASE:HEAD foo.c\n"
+"\n"
+msgstr ""
" Visa loggmeddelanden för ändringar av fil.c som kommer ske vid nästa\n"
" \"svn update\":\n"
" svn log -r BASE:HEAD fil.c\n"
"\n"
+
+#: ../svn/svn.c:985
+msgid ""
+" Show the log message for the revision in which /branches/foo\n"
+" was created:\n"
+" svn log --stop-on-copy --limit 1 -r0:HEAD ^/branches/foo\n"
+"\n"
+msgstr ""
" Visa loggmeddelandet för revisionen då /branches/gren skapades:\n"
" svn log --stop-on-copy --limit 1 -r0:HEAD ^/branches/gren\n"
"\n"
+
+#: ../svn/svn.c:989
+msgid ""
+" Show all log messages for commits between the tags ^/tags/2.0 and\n"
+" ^/tags/3.0; assuming that tag 2.0 was created in revision 100:\n"
+" svn log -rHEAD:100 ^/tags/3.0\n"
+"\n"
+msgstr ""
+" Visa alla loggmeddelanden för arkiveringar mellan märkena ^/tags/2.0\n"
+" och ^/tags/3.0, med antagandet att märket 2.0 skapades i revision 100:\n"
+" svn log -rHEAD:100 ^/tags/3.0\n"
+"\n"
+
+#: ../svn/svn.c:993
+msgid ""
+" If ^/trunk/foo.c was moved to ^/trunk/bar.c' in revision 22, 'svn log -v'\n"
+" shows a deletion and a copy in its changed paths list, such as:\n"
+" D /trunk/foo.c\n"
+" A /trunk/bar.c (from /trunk/foo.c:21)\n"
+msgstr ""
" Om ^/trunk/adam.c flyttats till ^/trunk/bertil.c i revision 22, så\n"
" visar \"svn log -v\" en radering och en kopia i listan av ändrade sökvägar:\n"
" D /trunk/adam.c\n"
" A /trunk/bertil.c (från /trunk/adam.c:21)\n"
-#: ../svn/svn.c:970 ../svnbench/svnbench.c:300
+#: ../svn/svn.c:1002 ../svnbench/svnbench.c:305
msgid "retrieve revision property ARG"
msgstr "hämta revisionsegenskapen ARG"
-#: ../svn/svn.c:971 ../svnbench/svnbench.c:301
+#: ../svn/svn.c:1003 ../svnbench/svnbench.c:306
msgid "the change made in revision ARG"
msgstr "ändringen gjord i revision ARG"
-#: ../svn/svn.c:972
+#: ../svn/svn.c:1004
msgid "also print all affected paths"
msgstr "skriv även ut alla berörda sökvägar"
-#: ../svn/svn.c:973
+#: ../svn/svn.c:1005
msgid "do not print the log message"
msgstr "skriv inte up loggmeddelandet"
#. For this large section, let's keep it unindented for easier
#. * viewing/editing. It has been vim-treated with a textwidth=75 and 'gw'
#. * (with quotes and newlines removed).
-#: ../svn/svn.c:979
+#: ../svn/svn.c:1011
msgid ""
"Merge changes into a working copy.\n"
"usage: 1. merge SOURCE[@REV] [TARGET_WCPATH]\n"
@@ -15194,17 +15596,52 @@ msgid ""
" 3. merge SOURCE1[@REV1] SOURCE2[@REV2] [TARGET_WCPATH]\n"
" (the '2-URL' merge)\n"
"\n"
+msgstr ""
+"Sammanslagning av ändringar i en arbetskopia.\n"
+"användning: 1. merge KÄLLA[@REV] [AKSÖKVÄGSMÅL]\n"
+" (\"fullständig\" sammanslagning)\n"
+" 2. merge [-c M[,N...] | -r N:M ...] KÄLLA[@REV] [AKSÖKVÄGSMÅL]\n"
+" (sammanslagning av utvalda ändringar)\n"
+" 3. merge KÄLLA1[@REV1] KÄLLA2[@REV2] [AKSÖKVÄGSMÅL]\n"
+" (sammanslagning av skillnaden mellan 2 URL:er)\n"
+"\n"
+
+#: ../svn/svn.c:1019
+msgid ""
" 1. This form, with one source path and no revision range, is called\n"
" a 'complete' merge:\n"
"\n"
+msgstr ""
+" 1. Denna form, med en källsökväg och utan revisionsområde, kallas en\n"
+" \"fullständig\" sammanslagning:\n"
+"\n"
+
+#: ../svn/svn.c:1022
+msgid ""
" svn merge SOURCE[@REV] [TARGET_WCPATH]\n"
"\n"
+msgstr ""
+" svn merge KÄLLA[@REV] [AKSÖKVÄGSMÅL]\n"
+"\n"
+
+#: ../svn/svn.c:1024
+msgid ""
" The complete merge is used for the 'sync' and 'reintegrate' merges\n"
" in the 'feature branch' pattern described below. It finds all the\n"
" changes on the source branch that have not already been merged to the\n"
" target branch, and merges them into the working copy. Merge tracking\n"
" is used to know which changes have already been merged.\n"
"\n"
+msgstr ""
+" Den fullständiga sammanslagningen används för synkronisering och\n"
+" återförening enligt mönstret av \"karaktärsgrenar\" beskrivet nedan.\n"
+" Alla ändringar i källgrenen ännu ej införda i målgrenen kommer att\n"
+" slås samman med arbetskopian. Sammanslagningsföljning används\n"
+" för att hålla reda på vilka ändringar som redan införts.\n"
+"\n"
+
+#: ../svn/svn.c:1030
+msgid ""
" SOURCE specifies the branch from where the changes will be pulled, and\n"
" TARGET_WCPATH specifies a working copy of the target branch to which\n"
" the changes will be applied. Normally SOURCE and TARGET_WCPATH should\n"
@@ -15212,6 +15649,17 @@ msgid ""
" subtree, then the subtree path must be included in both SOURCE and\n"
" TARGET_WCPATH; this is discouraged, to avoid subtree mergeinfo.)\n"
"\n"
+msgstr ""
+" KÄLLA anger grenen varifrån ändringarna hämtas, och AKSÖKVÄGSMÅL en\n"
+" arbetskopia av målgrenen i vilken ändringarna kommer anbringas.\n"
+" Vanligtvis motsvarar KÄLLA och AKSÖKVÄGSMÅL var sin grenrot.\n"
+" (För sammanslagning av endast ett delträd så måste sökvägen för\n"
+" delträdet finnas med i både KÄLLA och AKSÖKVÄGSMÅL; detta rekommenderas\n"
+" inte för att undvika sammanslagningsinformation i delträd.)\n"
+"\n"
+
+#: ../svn/svn.c:1037
+msgid ""
" SOURCE is usually a URL. The optional '@REV' specifies both the peg\n"
" revision of the URL and the latest revision that will be considered\n"
" for merging; if REV is not specified, the HEAD revision is assumed. If\n"
@@ -15219,28 +15667,90 @@ msgid ""
" used, and the default value of 'REV' is the base revision (usually the\n"
" revision last updated to).\n"
"\n"
+msgstr ""
+" KÄLLA är vanligen en URL. Den valfria \"@REV\" anger både URL:ens\n"
+" fixerade revision och den senaste revisionen som kommer ifråga för\n"
+" sammanslagning; om REV inte anges så används revisionen HEAD. Om KÄLLA\n"
+" är en sökväg till en arbetskopia så används dess motsvarande URL, och\n"
+" standardvärdet för \"REV\" är då basrevisionen (normalt revisionen som\n"
+" arbetskopian senast uppdaterades till).\n"
+"\n"
+
+#: ../svn/svn.c:1044
+msgid ""
" TARGET_WCPATH is a working copy path; if omitted, '.' is generally\n"
" assumed. There are some special cases:\n"
"\n"
+msgstr ""
+" AKSÖKVÄGSMÅL är en sökväg till en arbetskopia; om inte angiven så\n"
+" används i allmänhet \".\". Det finns vissa särskilda fall:\n"
+"\n"
+
+#: ../svn/svn.c:1047
+msgid ""
" - If SOURCE is a URL:\n"
"\n"
+msgstr ""
+" - Om KÄLLA är en URL:\n"
+"\n"
+
+#: ../svn/svn.c:1049
+msgid ""
" - If the basename of the URL and the basename of '.' are the\n"
" same, then the differences are applied to '.'. Otherwise,\n"
" if a file with the same basename as that of the URL is found\n"
" within '.', then the differences are applied to that file.\n"
" In all other cases, the target defaults to '.'.\n"
"\n"
+msgstr ""
+" - Om URL:ens basnamn är samma som den aktuella arbetskatalogens\n"
+" basnamn så kommer skillnaderna anbringas i \".\". Annars om\n"
+" det finns en fil med samma basnamn som URL:en i \".\", så\n"
+" kommer skillnaderna anbringas i den filen. I alla andra fall\n"
+" är målet \".\" om inget annat anges.\n"
+"\n"
+
+#: ../svn/svn.c:1055
+msgid ""
" - If SOURCE is a working copy path:\n"
"\n"
+msgstr ""
+" - Om KÄLLA är en sökväg till en arbetskopia:\n"
+"\n"
+
+#: ../svn/svn.c:1057
+msgid ""
" - If the source is a file, then differences are applied to that\n"
" file (useful for reverse-merging earlier changes). Otherwise,\n"
" if the source is a directory, then the target defaults to '.'.\n"
"\n"
+msgstr ""
+" - Om källan är en fil så anbringas skillnaderna i den filen\n"
+" (vilket är användbart för omvänd sammanslagning av tidigare\n"
+" ändringar). Annars, om källan är en katalog, så är målet \".\"\n"
+" om inget annat anges.\n"
+"\n"
+
+#: ../svn/svn.c:1061
+msgid ""
" In normal usage the working copy should be up to date, at a single\n"
" revision, with no local modifications and no switched subtrees.\n"
"\n"
+msgstr ""
+" Vid normal användning bör arbetskopian bör vara uppdaterad, på en enda\n"
+" revision, utan lokala ändringar eller växlade delträd.\n"
+"\n"
+
+#: ../svn/svn.c:1064
+msgid ""
" - The 'Feature Branch' Merging Pattern -\n"
"\n"
+msgstr ""
+" - Sammanslagningsmönstret för \"funktionsgrenar\" -\n"
+"\n"
+
+#: ../svn/svn.c:1066
+msgid ""
" In this commonly used work flow, known also as the 'development\n"
" branch' pattern, a developer creates a branch and commits a series of\n"
" changes that implement a new feature. The developer periodically\n"
@@ -15249,16 +15759,45 @@ msgid ""
" complete, the developer performs a merge from the feature branch to\n"
" the parent branch to re-integrate the changes.\n"
"\n"
+msgstr ""
+" Med detta arbetsflöde, även kallat \"utvecklingsgrenar\", skapar en\n"
+" utvecklare en gren och arkiverar en följd av ändringar som avser en\n"
+" ny funktion. Utvecklaren inför då och då de senaste ändringarna från\n"
+" föräldragrenen för att hålla utvecklingsgrenen aktuell. När den nya\n"
+" funktionen är färdig gör utvecklaren en sammanslagning från funktions-\n"
+" grenen till föräldragrenen för att återinföra ändringarna.\n"
+"\n"
+
+#: ../svn/svn.c:1074
+msgid ""
" parent --+----------o------o-o-------------o--\n"
" \\ \\ \\ /\n"
" \\ merge merge merge\n"
" \\ \\ \\ /\n"
" feature +--o-o-------o----o-o----o-------\n"
"\n"
+msgstr ""
+" förälder --+----------o------o-o------------------o--\n"
+" \\ \\ \\ /\n"
+" \\ sammansl. sammansl. sammansl.\n"
+" \\ \\ \\ /\n"
+" funktion +--o-o-------o----o-o----o-----------\n"
+"\n"
+
+#: ../svn/svn.c:1080
+msgid ""
" A merge from the parent branch to the feature branch is called a\n"
" 'sync' or 'catch-up' merge, and a merge from the feature branch to the\n"
" parent branch is called a 'reintegrate' merge.\n"
"\n"
+msgstr ""
+" En sammanslagning från föräldragrenen till funktionsgrenen kallas en\n"
+" \"synkronisering\" eller att \"komma ikapp\", och en sammanslagning\n"
+" från funktionsgrenen till föräldragrenen kallas en \"återförening\".\n"
+"\n"
+
+#: ../svn/svn.c:1084
+msgid ""
" - Sync Merge Example -\n"
" ............\n"
" . .\n"
@@ -15269,6 +15808,20 @@ msgid ""
" feature +------------------------o-----\n"
" r100 r200\n"
"\n"
+msgstr ""
+" - Exempel på synkroniserande sammanslagning -\n"
+" ............\n"
+" . .\n"
+" trunk --+------------V--------------H------\n"
+" \\ \\\n"
+" \\ |\n"
+" \\ v\n"
+" funktion +------------------------o-----\n"
+" r100 r200\n"
+"\n"
+
+#: ../svn/svn.c:1094
+msgid ""
" Subversion will locate all the changes on 'trunk' that have not yet\n"
" been merged into the 'feature' branch. In this case that is a single\n"
" range, r100:200. In the diagram above, L marks the left side (trunk@100)\n"
@@ -15277,23 +15830,72 @@ msgid ""
" path. In this case, the working copy is a clean checkout of the entire\n"
" 'feature' branch.\n"
"\n"
+msgstr ""
+" Subversion kommer hitta alla ändringar i \"trunk\" som ännu ej införts\n"
+" i grenen \"funktion\". I detta fall är det ett enda område, r100:200.\n"
+" I diagrammet ovan står V för vänstersidan (trunk@100) och H högersidan\n"
+" (trunk@200) av sammanslagningskällan. Skillnaden mellan V och H kommer\n"
+" anbringas i arbetskopian. I detta fall är arbetsträdet en ren\n"
+" utcheckning av hela grenen \"funktion\".\n"
+"\n"
+
+#: ../svn/svn.c:1102
+msgid ""
" To perform this sync merge, have a clean working copy of the feature\n"
" branch and run the following command in its top-level directory:\n"
"\n"
+msgstr ""
+" För att göra en synkroniserande sammanslagning behövs en ren\n"
+" arbetskopia av funktionsgrenen. Kör följande kommando i dess\n"
+" rotkatalog:\n"
+"\n"
+
+#: ../svn/svn.c:1105
+msgid ""
" svn merge ^/trunk\n"
"\n"
+msgstr ""
+" svn merge ^/trunk\n"
+"\n"
+
+#: ../svn/svn.c:1107
+msgid ""
" Note that the merge is now only in your local working copy and still\n"
" needs to be committed to the repository so that it can be seen by\n"
" others. You can review the changes and you may have to resolve\n"
" conflicts before you commit the merge.\n"
"\n"
+msgstr ""
+" Sammanslagningen är nu bara gjord i din egna arbetskopia och behöver\n"
+" fortfarande arkiveras så att andra kan se den. Du kan granska\n"
+" ändringarna och kan behöva lösa konflikter innan sammanslagningen\n"
+" arkiveras.\n"
+"\n"
+
+#: ../svn/svn.c:1112
+msgid ""
" - Reintegrate Merge Example -\n"
"\n"
+msgstr ""
+" - Exempel på återförening -\n"
+"\n"
+
+#: ../svn/svn.c:1114
+msgid ""
" The feature branch was last synced with trunk up to revision X. So the\n"
" difference between trunk@X and feature@HEAD contains the complete set\n"
" of changes that implement the feature, and no other changes. These\n"
" changes are applied to trunk.\n"
"\n"
+msgstr ""
+" Funktionsgrenen synkroniserades senast med \\\"trunk\\\" vid revision X.\n"
+" Skillnaden mellan trunk@X och funktion@HEAD innehåller alltså alla\n"
+" ändringar i funktionsgrenen och inga andra. Dessa anbringas i\n"
+" \"trunk\".\n"
+"\n"
+
+#: ../svn/svn.c:1119
+msgid ""
" rW rX\n"
" trunk ------+--------------------L------------------o\n"
" \\ . ^\n"
@@ -15301,57 +15903,166 @@ msgid ""
" \\ . /\n"
" feature +--------------------------------R\n"
"\n"
+msgstr ""
+" rW rX\n"
+" trunk ------+--------------------V------------------o\n"
+" \\ . ^\n"
+" \\ ............. /\n"
+" \\ . /\n"
+" funktion +--------------------------------H\n"
+"\n"
+
+#: ../svn/svn.c:1126
+msgid ""
" In the diagram above, L marks the left side (trunk@X) and R marks the\n"
" right side (feature@HEAD) of the merge. The difference between the\n"
" left and right side is merged into trunk, the target.\n"
"\n"
+msgstr ""
+" I diagrammet ovan står V för vänstersidan (trunk@X) och H högersidan\n"
+" (funktion@HEAD) av sammanslagningen. Skillnaden mellan vänstra och\n"
+" högra sidan införs i målet \"trunk\".\n"
+"\n"
+
+#: ../svn/svn.c:1130
+msgid ""
" To perform the merge, have a clean working copy of trunk and run the\n"
" following command in its top-level directory:\n"
"\n"
+msgstr ""
+" För sammanslagningen behövs en ren arbetskopia av \"trunk\".\n"
+" Kör följande kommando i dess rotkatalog:\n"
+"\n"
+
+#: ../svn/svn.c:1133
+msgid ""
" svn merge ^/feature\n"
"\n"
+msgstr ""
+" svn merge ^/funktion\n"
+"\n"
+
+#: ../svn/svn.c:1135
+msgid ""
" To prevent unnecessary merge conflicts, a reintegrate merge requires\n"
" that TARGET_WCPATH is not a mixed-revision working copy, has no local\n"
" modifications, and has no switched subtrees.\n"
"\n"
+msgstr ""
+" För att förhindra onödiga konflikter kräver en återförening att\n"
+" AKSÖKVÄGSMÅL inte är en arbetskopia med blandad revision och saknar\n"
+" lokala ändringar och växlade delträd.\n"
+"\n"
+
+#: ../svn/svn.c:1139
+msgid ""
" A reintegrate merge also requires that the source branch is coherently\n"
" synced with the target -- in the above example, this means that all\n"
" revisions between the branch point W and the last merged revision X\n"
" are merged to the feature branch, so that there are no unmerged\n"
" revisions in-between.\n"
"\n"
+msgstr ""
+" En återförening kräver också att källgrenen har genomgående\n"
+" synkroniserats med målet -- i exemplet ovan innebär det att alla\n"
+" revisioner mellan grenpunkten W och den sist sammanslagna revisionen X\n"
+" införs till funktionsgrenen, så att det inte finns kvar några\n"
+" revisioner därimellan.\n"
"\n"
+
+#: ../svn/svn.c:1146
+msgid ""
" 2. This form is called a 'cherry-pick' merge:\n"
"\n"
+msgstr ""
+" 2. Denna form är en sammanslagning av utvalda ändringar:\n"
+"\n"
+
+#: ../svn/svn.c:1148
+msgid ""
" svn merge [-c M[,N...] | -r N:M ...] SOURCE[@REV] [TARGET_WCPATH]\n"
"\n"
+msgstr ""
+" svn merge [-c M[,N...] | -r N:M ...] KÄLLA[@REV] [AKSÖKVÄGSMÅL]\n"
+"\n"
+
+#: ../svn/svn.c:1150
+msgid ""
" A cherry-pick merge is used to merge specific revisions (or revision\n"
" ranges) from one branch to another. By default, this uses merge\n"
" tracking to automatically skip any revisions that have already been\n"
" merged to the target; you can use the --ignore-ancestry option to\n"
" disable such skipping.\n"
"\n"
+msgstr ""
+" Denna form av sammanslagning används för att överföra enskilda\n"
+" ändringar (eller revisionsintervall) mellan grenar. Normalt används\n"
+" sammanslagningsföljning för att automatiskt hoppa över revisioner som\n"
+" redan införts i målet; använd flaggan --ignore-ancestry för att stänga\n"
+" av denna automatik.\n"
+"\n"
+
+#: ../svn/svn.c:1156
+msgid ""
" SOURCE is usually a URL. The optional '@REV' specifies only the peg\n"
" revision of the URL and does not affect the merge range; if REV is not\n"
" specified, the HEAD revision is assumed. If SOURCE is a working copy\n"
" path, the corresponding URL of the path is used, and the default value\n"
" of 'REV' is the base revision (usually the revision last updated to).\n"
"\n"
+msgstr ""
+" KÄLLA är vanligen en URL. Den valfria \"@REV\" anger bara URL:ens\n"
+" fixerade revision och påverkar inte sammanslagningens område; om REV\n"
+" inte angivits används revisionen HEAD. Om KÄLLA är en sökväg till en\n"
+" arbetskopia så används dess motsvarande URL, och standardvärdet för\n"
+" \"REV\" är basrevisionen (normalt revisionen för den senaste\n"
+" uppdateringen).\n"
+"\n"
+
+#: ../svn/svn.c:1162 ../svn/svn.c:1233
+msgid ""
" TARGET_WCPATH is a working copy path; if omitted, '.' is generally\n"
" assumed. The special cases noted above in the 'complete' merge form\n"
" also apply here.\n"
"\n"
+msgstr ""
+" AKSÖKVÄGSMÅL är en sökväg till en arbetskopia; om ej angiven antas \".\".\n"
+" De särskilda fallen ovan för den \"fullständiga\" sammanslagningsformen\n"
+" gäller även här.\n"
+"\n"
+
+#: ../svn/svn.c:1166
+msgid ""
" The revision ranges to be merged are specified by the '-r' and/or '-c'\n"
" options. '-r N:M' refers to the difference in the history of the\n"
" source branch between revisions N and M. You can use '-c M' to merge\n"
" single revisions: '-c M' is equivalent to '-r <M-1>:M'. Each such\n"
" difference is applied to TARGET_WCPATH.\n"
"\n"
+msgstr ""
+" Revisionerna som införas anges med flaggorna \"-r\" och/eller \"-c\".\n"
+" \"-r N:M\" betyder skillnaden i källgrenens historik mellan\n"
+" revisionerna N och M. För att införa enstaka revisioner, använd\n"
+" \"-c M\", vilket är detsamma som \"-r <M-1>:M\". Varje sådan skillnad\n"
+" eller ändring anbringas i AKSÖKVÄGSMÅL.\n"
+"\n"
+
+#: ../svn/svn.c:1172
+msgid ""
" If the mergeinfo in TARGET_WCPATH indicates that revisions within the\n"
" range were already merged, changes made in those revisions are not\n"
" merged again. If needed, the range is broken into multiple sub-ranges,\n"
" and each sub-range is merged separately.\n"
"\n"
+msgstr ""
+" Om revisioner inom ett intervall redan är införda, enligt samman-\n"
+" slagningsinformationen i AKSÖKVÄGSMÅL, så kommer de inte införas\n"
+" igen. Om det behövs kommer intervall delas upp och varje delintervall\n"
+" behandlas separat.\n"
+"\n"
+
+#: ../svn/svn.c:1177
+msgid ""
" A 'reverse range' can be used to undo changes. For example, when\n"
" source and target refer to the same branch, a previously committed\n"
" revision can be 'undone'. In a reverse range, N is greater than M in\n"
@@ -15359,14 +16070,45 @@ msgid ""
" is equivalent to '-r M:<M-1>'. Undoing changes like this is also known\n"
" as performing a 'reverse merge'.\n"
"\n"
+msgstr ""
+" Ett \"omvänt område\" kan användas för att upphäva ändringar. Till\n"
+" exempel kan en tidigare arkiverad revision \"göras ogjord\" när både\n"
+" källa och mål är i samma gren. I ett omvänt område är N större än M\n"
+" i \"-r N:M\", eller flaggan \"-c\" används med ett negativt värde:\n"
+" \"-c -M\" är samma som \"-r M:<M-1>\". Att upphäva ändringar på detta\n"
+" sätt kallas även \"omvänd sammanslagning\".\n"
+"\n"
+
+#: ../svn/svn.c:1184
+msgid ""
" Multiple '-c' and/or '-r' options may be specified and mixing of\n"
" forward and reverse ranges is allowed.\n"
"\n"
+msgstr ""
+" Flaggorna \"-c\" och/eller \"-r\" kan anges flera gånger, och det går\n"
+" att på samma gång ange raka och omvända revisionsområden.\n"
+"\n"
+
+#: ../svn/svn.c:1187
+msgid ""
" - Cherry-pick Merge Example -\n"
"\n"
+msgstr ""
+" - Exempel på sammanslagning av utvalda ändringar -\n"
+"\n"
+
+#: ../svn/svn.c:1189
+msgid ""
" A bug has been fixed on trunk in revision 50. This fix needs to\n"
" be merged from trunk onto the release branch.\n"
"\n"
+msgstr ""
+" Ett fel har rättats i \"trunk\" i revision 50. Denna rättelse behöver\n"
+" införas i grenen för utgåvor.\n"
+"\n"
+
+#: ../svn/svn.c:1192
+msgid ""
" 1.x-release +-----------------------o-----\n"
" / ^\n"
" / |\n"
@@ -15374,33 +16116,104 @@ msgid ""
" trunk ------+--------------------------LR-----\n"
" r50\n"
"\n"
+msgstr ""
+" 1.x-utgåva +-----------------------o-----\n"
+" / ^\n"
+" / |\n"
+" / |\n"
+" trunk ------+--------------------------VH-----\n"
+" r50\n"
+"\n"
+
+#: ../svn/svn.c:1199
+msgid ""
" In the above diagram, L marks the left side (trunk@49) and R marks the\n"
" right side (trunk@50) of the merge. The difference between the left\n"
" and right side is applied to the target working copy path.\n"
"\n"
+msgstr ""
+" I diagrammet ovan står V för vänstra sidan (trunk@49) och H för högra\n"
+" sidan (trunk@50) av sammanslagningen. Skillnaden mellan vänstra och\n"
+" högra sidan anbringas i målets arbetskopia.\n"
+"\n"
+
+#: ../svn/svn.c:1203
+msgid ""
" Note that the difference between revision 49 and 50 is exactly those\n"
" changes that were committed in revision 50, not including changes\n"
" committed in revision 49.\n"
"\n"
+msgstr ""
+" Observera att skillnaden mellan revision 49 och 50 är bara ändringarna\n"
+" som arkiverades i revision 50, och inkluderar inte ändringarna i\n"
+" revision 49.\n"
+"\n"
+
+#: ../svn/svn.c:1207
+msgid ""
" To perform the merge, have a clean working copy of the release branch\n"
" and run the following command in its top-level directory; remember\n"
" that the default target is '.':\n"
"\n"
+msgstr ""
+" För att göra sammanslagningen, börja med en ren arbetskopia av\n"
+" grenen \"1.x-utgåva\" och kör följande kommando i dess rotkatalog.\n"
+" Standardvärdet för målet är \".\":\n"
+"\n"
+
+#: ../svn/svn.c:1211
+msgid ""
+" svn merge -c50 ^/trunk\n"
+"\n"
+msgstr ""
" svn merge -c50 ^/trunk\n"
"\n"
+
+#: ../svn/svn.c:1213
+msgid ""
" You can also cherry-pick several revisions and/or revision ranges:\n"
"\n"
+msgstr ""
+" Det går också att plocka flera revisioner och/eller intervall:\n"
+"\n"
+
+#: ../svn/svn.c:1215
+msgid ""
" svn merge -c50,54,60 -r65:68 ^/trunk\n"
"\n"
+msgstr ""
+" svn merge -c50,54,60 -r65:68 ^/trunk\n"
"\n"
+
+#: ../svn/svn.c:1218
+msgid ""
" 3. This form is called a '2-URL merge':\n"
"\n"
+msgstr ""
+" 3. Denna form är en sammanslagning av skillnaden mellan 2 URL:er:\n"
+"\n"
+
+#: ../svn/svn.c:1220
+msgid ""
" svn merge SOURCE1[@REV1] SOURCE2[@REV2] [TARGET_WCPATH]\n"
"\n"
+msgstr ""
+" svn merge KÄLLA1[@REV1] KÄLLA2[@REV2] [AKSÖKVÄGSMÅL]\n"
+"\n"
+
+#: ../svn/svn.c:1222
+msgid ""
" You should use this merge variant only if the other variants do not\n"
" apply to your situation, as this variant can be quite complex to\n"
" master.\n"
"\n"
+msgstr ""
+" Använd bara denna form om de andra varianterna inte passad den\n"
+" aktuella situationen, eftersom den är förhållandevis komplicerad.\n"
+"\n"
+
+#: ../svn/svn.c:1226
+msgid ""
" Two source URLs are specified, identifying two trees on the same\n"
" branch or on different branches. The trees are compared and the\n"
" difference from SOURCE1@REV1 to SOURCE2@REV2 is applied to the\n"
@@ -15408,23 +16221,58 @@ msgid ""
" branch may be the same as one or both sources, or different again.\n"
" The three branches involved can be completely unrelated.\n"
"\n"
-" TARGET_WCPATH is a working copy path; if omitted, '.' is generally\n"
-" assumed. The special cases noted above in the 'complete' merge form\n"
-" also apply here.\n"
+msgstr ""
+" Två käll-URL:er anges, som betecknar två träd på samma gren eller\n"
+" på olika grenar. Träden jämförs och skillnaden från KÄLLA1@REV1 till\n"
+" KÄLLA2@REV2 anbringas i arbetskopian för målgrenen i AKSÖKVÄGSMÅL.\n"
+" Målgrenen kan vara samma som endera källan, eller något annat.\n"
+" De tre inblandade grenarna kan vara helt obesläktade.\n"
"\n"
+
+#: ../svn/svn.c:1237
+msgid ""
" SOURCE1 and/or SOURCE2 can also be specified as a working copy path,\n"
" in which case the merge source URL is derived from the working copy.\n"
"\n"
+msgstr ""
+" KÄLLA1 och/eller KÄLLA2 kan också anges som sökvägar i en arbetskopia,\n"
+" och då tas käll-URL:en för sammanslagningen från arbetskopian.\n"
+"\n"
+
+#: ../svn/svn.c:1240
+msgid ""
" - 2-URL Merge Example -\n"
"\n"
+msgstr ""
+" - Exempel på sammanslagning med 2 URL:er -\n"
+"\n"
+
+#: ../svn/svn.c:1242
+msgid ""
" Two features have been developed on separate branches called 'foo' and\n"
" 'bar'. It has since become clear that 'bar' should be combined with\n"
" the 'foo' branch for further development before reintegration.\n"
"\n"
+msgstr ""
+" Två funktioner har utvecklats på skilda grenar, \"apelsin\" och\n"
+" \"banan\". Det står nu klart att \"banan\" borde kombineras med grenen\n"
+" \"apelsin\" för vidare utveckling före återförening.\n"
+"\n"
+
+#: ../svn/svn.c:1246
+msgid ""
" Although both feature branches originate from trunk, they are not\n"
" directly related -- one is not a direct copy of the other. A 2-URL\n"
" merge is necessary.\n"
"\n"
+msgstr ""
+" Trots att båda funktionsgrenarna har sitt ursprung i trunk så är de\n"
+" inte direkt besläktade -- den ena är inte en direkt kopia av den andra.\n"
+" En sammanslagning med 2 URL:er krävs.\n"
+"\n"
+
+#: ../svn/svn.c:1250
+msgid ""
" The 'bar' branch has been synced with trunk up to revision 500.\n"
" (If this revision number is not known, it can be located using the\n"
" 'svn log' and/or 'svn mergeinfo' commands.)\n"
@@ -15432,6 +16280,17 @@ msgid ""
" set of changes related to feature 'bar', and no other changes. These\n"
" changes are applied to the 'foo' branch.\n"
"\n"
+msgstr ""
+" Grenen \"banan\" har synkroniserats med \"trunk\" upp till revision\n"
+" 500. (Om revisionsnumret inte är känt kan det hittas med hjälp av\n"
+" kommandona \"svn log\" och/eller \"svn mergeinfo\".)\n"
+" Skillnaden mellan trunk@500 och banan@HEAD innehåller alla ändringar\n"
+" som har med funktionen \"banan\" att göra, och inga andra. Dessa\n"
+" ändringar anbringas i grenen \"apelsin\".\n"
+"\n"
+
+#: ../svn/svn.c:1257
+msgid ""
" foo +-----------------------------------o\n"
" / ^\n"
" / /\n"
@@ -15442,323 +16301,7 @@ msgid ""
" \\ . /\n"
" bar +-----------------------------------R\n"
"\n"
-" In the diagram above, L marks the left side (trunk@500) and R marks\n"
-" the right side (bar@HEAD) of the merge. The difference between the\n"
-" left and right side is applied to the target working copy path, in\n"
-" this case a working copy of the 'foo' branch.\n"
-"\n"
-" To perform the merge, have a clean working copy of the 'foo' branch\n"
-" and run the following command in its top-level directory:\n"
-"\n"
-" svn merge ^/trunk@500 ^/bar\n"
-"\n"
-" The exact changes applied by a 2-URL merge can be previewed with svn's\n"
-" diff command, which is a good idea to verify if you do not have the\n"
-" luxury of a clean working copy to merge to. In this case:\n"
-"\n"
-" svn diff ^/trunk@500 ^/bar@HEAD\n"
-"\n"
-"\n"
-" The following applies to all types of merges:\n"
-"\n"
-" To prevent unnecessary merge conflicts, svn merge requires that\n"
-" TARGET_WCPATH is not a mixed-revision working copy. Running 'svn update'\n"
-" before starting a merge ensures that all items in the working copy are\n"
-" based on the same revision.\n"
-"\n"
-" If possible, you should have no local modifications in the merge's target\n"
-" working copy prior to the merge, to keep things simpler. It will be\n"
-" easier to revert the merge and to understand the branch's history.\n"
-"\n"
-" Switched sub-paths should also be avoided during merging, as they may\n"
-" cause incomplete merges and create subtree mergeinfo.\n"
-"\n"
-" For each merged item a line will be printed with characters reporting the\n"
-" action taken. These characters have the following meaning:\n"
-"\n"
-" A Added\n"
-" D Deleted\n"
-" U Updated\n"
-" C Conflict\n"
-" G Merged\n"
-" E Existed\n"
-" R Replaced\n"
-"\n"
-" Characters in the first column report about the item itself.\n"
-" Characters in the second column report about properties of the item.\n"
-" A 'C' in the third column indicates a tree conflict, while a 'C' in\n"
-" the first and second columns indicate textual conflicts in files\n"
-" and in property values, respectively.\n"
-"\n"
-" - Merge Tracking -\n"
-"\n"
-" Subversion uses the svn:mergeinfo property to track merge history. This\n"
-" property is considered at the start of a merge to determine what to merge\n"
-" and it is updated at the conclusion of the merge to describe the merge\n"
-" that took place. Mergeinfo is used only if the two sources are on the\n"
-" same line of history -- if the first source is an ancestor of the second,\n"
-" or vice-versa (i.e. if one has originally been created by copying the\n"
-" other). This is verified and enforced when using sync merges and\n"
-" reintegrate merges.\n"
-"\n"
-" The --ignore-ancestry option prevents merge tracking and thus ignores\n"
-" mergeinfo, neither considering it nor recording it.\n"
-"\n"
-" - Merging from foreign repositories -\n"
-"\n"
-" Subversion does support merging from foreign repositories.\n"
-" While all merge source URLs must point to the same repository, the merge\n"
-" target working copy may come from a different repository than the source.\n"
-" However, there are some caveats. Most notably, copies made in the\n"
-" merge source will be transformed into plain additions in the merge\n"
-" target. Also, merge-tracking is not supported for merges from foreign\n"
-" repositories.\n"
msgstr ""
-"Sammanslagning av ändringar i en arbetskopia.\n"
-"användning: 1. merge KÄLLA[@REV] [AKSÖKVÄGSMÅL]\n"
-" (\"fullständig\" sammanslagning)\n"
-" 2. merge [-c M[,N...] | -r N:M ...] KÄLLA[@REV] [AKSÖKVÄGSMÅL]\n"
-" (sammanslagning av utvalda ändringar)\n"
-" 3. merge KÄLLA1[@REV1] KÄLLA2[@REV2] [AKSÖKVÄGSMÅL]\n"
-" (sammanslagning av skillnaden mellan 2 URL:er)\n"
-"\n"
-" 1. Denna form, med en källsökväg och utan revisionsområde, kallas en\n"
-" \"fullständig\" sammanslagning:\n"
-"\n"
-" svn merge KÄLLA[@REV] [AKSÖKVÄGSMÅL]\n"
-"\n"
-" Den fullständiga sammanslagningen används för synkronisering och\n"
-" återförening enligt mönstret av \"karaktärsgrenar\" beskrivet nedan.\n"
-" Alla ändringar i källgrenen ännu ej införda i målgrenen kommer att\n"
-" slås samman med arbetskopian. Sammanslagningsföljning används\n"
-" för att hålla reda på vilka ändringar som redan införts.\n"
-"\n"
-" KÄLLA anger grenen varifrån ändringarna hämtas, och AKSÖKVÄGSMÅL en\n"
-" arbetskopia av målgrenen i vilken ändringarna kommer anbringas.\n"
-" Vanligtvis motsvarar KÄLLA och AKSÖKVÄGSMÅL var sin grenrot.\n"
-" (För sammanslagning av endast ett delträd så måste sökvägen för\n"
-" delträdet finnas med i både KÄLLA och AKSÖKVÄGSMÅL; detta rekommenderas\n"
-" inte för att undvika sammanslagningsinformation i delträd.)\n"
-"\n"
-" KÄLLA är vanligen en URL. Den valfria \"@REV\" anger både URL:ens\n"
-" fixerade revision och den senaste revisionen som kommer ifråga för\n"
-" sammanslagning; om REV inte anges så används revisionen HEAD. Om KÄLLA\n"
-" är en sökväg till en arbetskopia så används dess motsvarande URL, och\n"
-" standardvärdet för \"REV\" är då basrevisionen (normalt revisionen som\n"
-" arbetskopian senast uppdaterades till).\n"
-"\n"
-" AKSÖKVÄGSMÅL är en sökväg till en arbetskopia; om inte angiven så\n"
-" används i allmänhet \".\". Det finns vissa särskilda fall:\n"
-"\n"
-" - Om KÄLLA är en URL:\n"
-"\n"
-" - Om URL:ens basnamn är samma som den aktuella arbetskatalogens\n"
-" basnamn så kommer skillnaderna anbringas i \".\". Annars om\n"
-" det finns en fil med samma basnamn som URL:en i \".\", så\n"
-" kommer skillnaderna anbringas i den filen. I alla andra fall\n"
-" är målet \".\" om inget annat anges.\n"
-"\n"
-" - Om KÄLLA är en sökväg till en arbetskopia:\n"
-"\n"
-" - Om källan är en fil så anbringas skillnaderna i den filen\n"
-" (vilket är användbart för omvänd sammanslagning av tidigare\n"
-" ändringar). Annars, om källan är en katalog, så är målet \".\"\n"
-" om inget annat anges.\n"
-"\n"
-" Vid normal användning bör arbetskopian bör vara uppdaterad, på en enda\n"
-" revision, utan lokala ändringar eller växlade delträd.\n"
-"\n"
-" - Sammanslagningsmönstret för \"funktionsgrenar\" -\n"
-"\n"
-" Med detta arbetsflöde, även kallat \"utvecklingsgrenar\", skapar en\n"
-" utvecklare en gren och arkiverar en följd av ändringar som avser en\n"
-" ny funktion. Utvecklaren inför då och då de senaste ändringarna från\n"
-" föräldragrenen för att hålla utvecklingsgrenen aktuell. När den nya\n"
-" funktionen är färdig gör utvecklaren en sammanslagning från funktions-\n"
-" grenen till föräldragrenen för att återinföra ändringarna.\n"
-"\n"
-" förälder --+----------o------o-o------------------o--\n"
-" \\ \\ \\ /\n"
-" \\ sammansl. sammansl. sammansl.\n"
-" \\ \\ \\ /\n"
-" funktion +--o-o-------o----o-o----o-----------\n"
-"\n"
-" En sammanslagning från föräldragrenen till funktionsgrenen kallas en\n"
-" \"synkronisering\" eller att \"komma ikapp\", och en sammanslagning\n"
-" från funktionsgrenen till föräldragrenen kallas en \"återförening\".\n"
-"\n"
-" - Exempel på synkroniserande sammanslagning -\n"
-" ............\n"
-" . .\n"
-" trunk --+------------V--------------H------\n"
-" \\ \\\n"
-" \\ |\n"
-" \\ v\n"
-" funktion +------------------------o-----\n"
-" r100 r200\n"
-"\n"
-" Subversion kommer hitta alla ändringar i \"trunk\" som ännu ej införts\n"
-" i grenen \"funktion\". I detta fall är det ett enda område, r100:200.\n"
-" I diagrammet ovan står V för vänstersidan (trunk@100) och H högersidan\n"
-" (trunk@200) av sammanslagningskällan. Skillnaden mellan V och H kommer\n"
-" anbringas i arbetskopian. I detta fall är arbetsträdet en ren\n"
-" utcheckning av hela grenen \"funktion\".\n"
-"\n"
-" För att göra en synkroniserande sammanslagning behövs en ren\n"
-" arbetskopia av funktionsgrenen. Kör följande kommando i dess\n"
-" rotkatalog:\n"
-"\n"
-" svn merge ^/trunk\n"
-"\n"
-" Sammanslagningen är nu bara gjord i din egna arbetskopia och behöver\n"
-" fortfarande arkiveras så att andra kan se den. Du kan granska\n"
-" ändringarna och kan behöva lösa konflikter innan sammanslagningen\n"
-" arkiveras.\n"
-"\n"
-" - Exempel på återförening -\n"
-"\n"
-" Funktionsgrenen synkroniserades senast med \"trunk\" vid revision X.\n"
-" Skillnaden mellan trunk@X och funktion@HEAD innehåller alltså alla\n"
-" ändringar i funktionsgrenen och inga andra. Dessa anbringas i\n"
-" \"trunk\".\n"
-"\n"
-" rW rX\n"
-" trunk ------+--------------------V------------------o\n"
-" \\ . ^\n"
-" \\ ............. /\n"
-" \\ . /\n"
-" funktion +--------------------------------H\n"
-"\n"
-" I diagrammet ovan står V för vänstersidan (trunk@X) och H högersidan\n"
-" (funktion@HEAD) av sammanslagningen. Skillnaden mellan vänstra och\n"
-" högra sidan införs i målet \"trunk\".\n"
-"\n"
-" För sammanslagningen behövs en ren arbetskopia av \"trunk\".\n"
-" Kör följande kommando i dess rotkatalog:\n"
-"\n"
-" svn merge ^/funktion\n"
-"\n"
-" För att förhindra onödiga konflikter kräver en återförening att\n"
-" AKSÖKVÄGSMÅL inte är en arbetskopia med blandad revision och saknar\n"
-" lokala ändringar och växlade delträd.\n"
-"\n"
-" En återförening kräver också att källgrenen har genomgående\n"
-" synkroniserats med målet -- i exemplet ovan innebär det att alla\n"
-" revisioner mellan grenpunkten W och den sist sammanslagna revisionen X\n"
-" införs till funktionsgrenen, så att det inte finns kvar några\n"
-" revisioner därimellan.\n"
-"\n"
-"\n"
-" 2. Denna form är en sammanslagning av utvalda ändringar:\n"
-"\n"
-" svn merge [-c M[,N...] | -r N:M ...] KÄLLA[@REV] [AKSÖKVÄGSMÅL]\n"
-"\n"
-" Denna form av sammanslagning används för att överföra enskilda\n"
-" ändringar (eller revisionsintervall) mellan grenar. Normalt används\n"
-" sammanslagningsföljning för att automatiskt hoppa över revisioner som\n"
-" redan införts i målet; använd flaggan --ignore-ancestry för att stänga\n"
-" av denna automatik.\n"
-"\n"
-" KÄLLA är vanligen en URL. Den valfria \"@REV\" anger bara URL:ens\n"
-" fixerade revision och påverkar inte sammanslagningens område; om REV\n"
-" inte angivits används revisionen HEAD. Om KÄLLA är en sökväg till en\n"
-" arbetskopia så används dess motsvarande URL, och standardvärdet för\n"
-" \"REV\" är basrevisionen (normalt revisionen för den senaste\n"
-" uppdateringen).\n"
-"\n"
-" AKSÖKVÄGSMÅL är en sökväg till en arbetskopia; om ej angiven antas \".\".\n"
-" De särskilda fallen ovan för den \"fullständiga\" sammanslagningsformen\n"
-" gäller även här.\n"
-"\n"
-" Revisionerna som införas anges med flaggorna \"-r\" och/eller \"-c\".\n"
-" \"-r N:M\" betyder skillnaden i källgrenens historik mellan\n"
-" revisionerna N och M. För att införa enstaka revisioner, använd\n"
-" \"-c M\", vilket är detsamma som \"-r <M-1>:M\". Varje sådan skillnad\n"
-" eller ändring anbringas i AKSÖKVÄGSMÅL.\n"
-"\n"
-" Om revisioner inom ett intervall redan är införda, enligt samman-\n"
-" slagningsinformationen i AKSÖKVÄGSMÅL, så kommer de inte införas\n"
-" igen. Om det behövs kommer intervall delas upp och varje delintervall\n"
-" behandlas separat.\n"
-"\n"
-" Ett \"omvänt område\" kan användas för att upphäva ändringar. Till\n"
-" exempel kan en tidigare arkiverad revision \"göras ogjord\" när både\n"
-" källa och mål är i samma gren. I ett omvänt område är N större än M\n"
-" i \"-r N:M\", eller flaggan \"-c\" används med ett negativt värde:\n"
-" \"-c -M\" är samma som \"-r M:<M-1>\". Att upphäva ändringar på detta\n"
-" sätt kallas även \"omvänd sammanslagning\".\n"
-"\n"
-" Flaggorna \"-c\" och/eller \"-r\" kan anges flera gånger, och det går\n"
-" att på samma gång ange raka och omvända revisionsområden.\n"
-"\n"
-" - Exempel på sammanslagning av utvalda ändringar -\n"
-"\n"
-" Ett fel har rättats i \"trunk\" i revision 50. Denna rättelse behöver\n"
-" införas i grenen för utgåvor.\n"
-"\n"
-" 1.x-utgåva +-----------------------o-----\n"
-" / ^\n"
-" / |\n"
-" / |\n"
-" trunk ------+--------------------------VH-----\n"
-" r50\n"
-"\n"
-" I diagrammet ovan står V för vänstra sidan (trunk@49) och H för högra\n"
-" sidan (trunk@50) av sammanslagningen. Skillnaden mellan vänstra och\n"
-" högra sidan anbringas i målets arbetskopia.\n"
-"\n"
-" Observera att skillnaden mellan revision 49 och 50 är bara ändringarna\n"
-" som arkiverades i revision 50, och inkluderar inte ändringarna i\n"
-" revision 49.\n"
-"\n"
-" För att göra sammanslagningen, börja med en ren arbetskopia av\n"
-" grenen \"1.x-utgåva\" och kör följande kommando i dess rotkatalog.\n"
-" Standardvärdet för målet är \".\":\n"
-"\n"
-" svn merge -c50 ^/trunk\n"
-"\n"
-" Det går också att plocka flera revisioner och/eller intervall:\n"
-"\n"
-" svn merge -c50,54,60 -r65:68 ^/trunk\n"
-"\n"
-"\n"
-" 3. Denna form är en sammanslagning av skillnaden mellan 2 URL:er:\n"
-"\n"
-" svn merge KÄLLA1[@REV1] KÄLLA2[@REV2] [AKSÖKVÄGSMÅL]\n"
-"\n"
-" Använd bara denna form om de andra varianterna inte passad den\n"
-" aktuella situationen, eftersom den är förhållandevis komplicerad.\n"
-"\n"
-" Två käll-URL:er anges, som betecknar två träd på samma gren eller\n"
-" på olika grenar. Träden jämförs och skillnaden från KÄLLA1@REV1 till\n"
-" KÄLLA2@REV2 anbringas i arbetskopian för målgrenen i AKSÖKVÄGSMÅL.\n"
-" Målgrenen kan vara samma som endera källan, eller något annat.\n"
-" De tre inblandade grenarna kan vara helt obesläktade.\n"
-"\n"
-" AKSÖKVÄGSMÅL är en sökväg till en arbetskopia; om ej angiven antas \".\".\n"
-" De särskilda fallen ovan för den \"fullständiga\" sammanslagningsformen\n"
-" gäller även här.\n"
-"\n"
-" KÄLLA1 och/eller KÄLLA2 kan också anges som sökvägar i en arbetskopia,\n"
-" och då tas käll-URL:en för sammanslagningen från arbetskopian.\n"
-"\n"
-" - Exempel på sammanslagning med 2 URL:er -\n"
-"\n"
-" Två funktioner har utvecklats på skilda grenar, \"apelsin\" och\n"
-" \"banan\". Det står nu klart att \"banan\" borde kombineras med grenen\n"
-" \"apelsin\" för vidare utveckling före återförening.\n"
-"\n"
-" Trots att båda funktionsgrenarna har sitt ursprung i trunk så är de\n"
-" inte direkt besläktade -- den ena är inte en direkt kopia av den andra.\n"
-" En sammanslagning med 2 URL:er krävs.\n"
-"\n"
-" Grenen \"banan\" har synkroniserats med \"trunk\" upp till revision\n"
-" 500. (Om revisionsnumret inte är känt kan det hittas med hjälp av\n"
-" kommandona \"svn log\" och/eller \"svn mergeinfo\".)\n"
-" Skillnaden mellan trunk@500 och banan@HEAD innehåller alla ändringar\n"
-" som har med funktionen \"banan\" att göra, och inga andra. Dessa\n"
-" ändringar anbringas i grenen \"apelsin\".\n"
-"\n"
" apelsin +-----------------------------------o\n"
" / ^\n"
" / /\n"
@@ -15769,41 +16312,125 @@ msgstr ""
" \\ . /\n"
" banan +-----------------------------------H\n"
"\n"
+
+#: ../svn/svn.c:1267
+msgid ""
+" In the diagram above, L marks the left side (trunk@500) and R marks\n"
+" the right side (bar@HEAD) of the merge. The difference between the\n"
+" left and right side is applied to the target working copy path, in\n"
+" this case a working copy of the 'foo' branch.\n"
+"\n"
+msgstr ""
" I diagrammet ovan betecknar V vänstersidan (trunk@500) och H högersidan\n"
" (banan@HEAD) av sammanslagningen. Skillnaden mellan vänstra och högra\n"
" sidan anbringas i målets arbetskopia, i detta fall en arbetskopia av\n"
" grenen \"apelsin\".\n"
"\n"
+
+#: ../svn/svn.c:1272
+msgid ""
+" To perform the merge, have a clean working copy of the 'foo' branch\n"
+" and run the following command in its top-level directory:\n"
+"\n"
+msgstr ""
" För att göra sammanslagningen, kör följande kommando i rotkatalogen\n"
" till en ren arbetskopia av grenen \"apelsin\":\n"
"\n"
+
+#: ../svn/svn.c:1275
+msgid ""
+" svn merge ^/trunk@500 ^/bar\n"
+"\n"
+msgstr ""
" svn merge ^/trunk@500 ^/banan\n"
"\n"
+
+#: ../svn/svn.c:1277
+msgid ""
+" The exact changes applied by a 2-URL merge can be previewed with svn's\n"
+" diff command, which is a good idea to verify if you do not have the\n"
+" luxury of a clean working copy to merge to. In this case:\n"
+"\n"
+msgstr ""
" Precis vilka ändringar som en 2-URL-sammanslagning gör kan förhands-\n"
" granskas med hjälp av \"svn diff\". Detta kräver ingen arbetskopia.\n"
" I detta fall:\n"
"\n"
+
+#: ../svn/svn.c:1281
+msgid ""
+" svn diff ^/trunk@500 ^/bar@HEAD\n"
+"\n"
+msgstr ""
" svn diff ^/trunk@500 ^/banan@HEAD\n"
"\n"
+
+#: ../svn/svn.c:1284
+msgid ""
+" The following applies to all types of merges:\n"
"\n"
+msgstr ""
" Följande gäller alla sorters sammanslagningar:\n"
"\n"
+
+#: ../svn/svn.c:1286
+msgid ""
+" To prevent unnecessary merge conflicts, svn merge requires that\n"
+" TARGET_WCPATH is not a mixed-revision working copy. Running 'svn update'\n"
+" before starting a merge ensures that all items in the working copy are\n"
+" based on the same revision.\n"
+"\n"
+msgstr ""
" För att undvika onödiga konflikter kräver \"svn merge\" att AKSÖKVÄGSMÅL\n"
" inte är en arbetskopia med blandad revision. Kör \"svn update\" innan\n"
" en sammanslagning påbörjas för att vara säker på att alla objekt i\n"
" arbetskopian utgår från samma revision.\n"
"\n"
+
+#: ../svn/svn.c:1291
+msgid ""
+" If possible, you should have no local modifications in the merge's target\n"
+" working copy prior to the merge, to keep things simpler. It will be\n"
+" easier to revert the merge and to understand the branch's history.\n"
+"\n"
+msgstr ""
" Undvik om möjligt lokala ändringar i sammanslagningsmålets arbetskopia\n"
" före sammanslagningen, för enkelhets skull. Det är då lättare att ångra\n"
" åtgärden och att förstå grenens historik.\n"
"\n"
+
+#: ../svn/svn.c:1295
+msgid ""
+" Switched sub-paths should also be avoided during merging, as they may\n"
+" cause incomplete merges and create subtree mergeinfo.\n"
+"\n"
+msgstr ""
" Växlade delträd bör också undvikas under sammanslagning, eftersom de\n"
" kan orsaka ofullständiga sammanslagningar och ge upphov till samman-\n"
" slagningsinformation i delträd.\n"
"\n"
+
+#: ../svn/svn.c:1298
+msgid ""
+" For each merged item a line will be printed with characters reporting the\n"
+" action taken. These characters have the following meaning:\n"
+"\n"
+msgstr ""
" För varje objekt som slagits samman skrivs en rad med en bokstav för\n"
" vad som gjordes. Dessa bokstäver betyder:\n"
"\n"
+
+#: ../svn/svn.c:1301 ../svn/svn.c:1905
+msgid ""
+" A Added\n"
+" D Deleted\n"
+" U Updated\n"
+" C Conflict\n"
+" G Merged\n"
+" E Existed\n"
+" R Replaced\n"
+"\n"
+msgstr ""
" A Tillagt\n"
" D Borttaget\n"
" U Uppdaterat\n"
@@ -15812,14 +16439,43 @@ msgstr ""
" E Befintligt\n"
" R Ersatt\n"
"\n"
+
+#: ../svn/svn.c:1309
+msgid ""
+" Characters in the first column report about the item itself.\n"
+" Characters in the second column report about properties of the item.\n"
+" A 'C' in the third column indicates a tree conflict, while a 'C' in\n"
+" the first and second columns indicate textual conflicts in files\n"
+" and in property values, respectively.\n"
+"\n"
+msgstr ""
" Ett tecken i den första kolumnen ger information om själva objektet.\n"
" Information om objektets egenskaper ges av tecken i andra kolumnen.\n"
" Ett \"C\" i tredje kolumnen påvisar en trädkonflikt, medan ett \"C\" i\n"
" första och andra kolumnen betyder textkonflikter i filer respektive\n"
" egenskapsvärden.\n"
"\n"
+
+#: ../svn/svn.c:1315
+msgid ""
+" - Merge Tracking -\n"
+"\n"
+msgstr ""
" - Sammanslagningsföljning -\n"
"\n"
+
+#: ../svn/svn.c:1317
+msgid ""
+" Subversion uses the svn:mergeinfo property to track merge history. This\n"
+" property is considered at the start of a merge to determine what to merge\n"
+" and it is updated at the conclusion of the merge to describe the merge\n"
+" that took place. Mergeinfo is used only if the two sources are on the\n"
+" same line of history -- if the first source is an ancestor of the second,\n"
+" or vice-versa (i.e. if one has originally been created by copying the\n"
+" other). This is verified and enforced when using sync merges and\n"
+" reintegrate merges.\n"
+"\n"
+msgstr ""
" Subversion använder egenskapen svn:mergeinfo för att följa samman-\n"
" slagningshistoriken. Denna egenskap läses i början av sammanslagningen\n"
" för att avgöra vad som skall ingå, och uppdateras vid sammanslagningens\n"
@@ -15829,12 +16485,36 @@ msgstr ""
" som en kopia av den andra). Detta kontrolleras i synkroniseringar och\n"
" återföreningar.\n"
"\n"
+
+#: ../svn/svn.c:1326
+msgid ""
+" The --ignore-ancestry option prevents merge tracking and thus ignores\n"
+" mergeinfo, neither considering it nor recording it.\n"
+"\n"
+msgstr ""
" Flaggan --ignore-ancestry hindrar sammanslagningsföljning från att\n"
" användas; sammanslagningsinformationen kommer varken användas eller\n"
" uppdateras.\n"
"\n"
+
+#: ../svn/svn.c:1329
+msgid ""
+" - Merging from foreign repositories -\n"
+"\n"
+msgstr ""
" - Sammanslagning från andra arkiv -\n"
"\n"
+
+#: ../svn/svn.c:1331
+msgid ""
+" Subversion does support merging from foreign repositories.\n"
+" While all merge source URLs must point to the same repository, the merge\n"
+" target working copy may come from a different repository than the source.\n"
+" However, there are some caveats. Most notably, copies made in the\n"
+" merge source will be transformed into plain additions in the merge\n"
+" target. Also, merge-tracking is not supported for merges from foreign\n"
+" repositories.\n"
+msgstr ""
" Subversion tillåter sammanslagning från andra arkiv.\n"
" Alla käll-URL:er måste peka på samma arkiv, men målets arbetskopia kan\n"
" komma från ett annat arkiv än källan. Följande måste dock beaktas:\n"
@@ -15842,18 +16522,26 @@ msgstr ""
" Vidare stöds inte sammanslagningsföljning för sammanslagningar från\n"
" andra arkiv.\n"
-#: ../svn/svn.c:1309
+#: ../svn/svn.c:1342
msgid "force deletions even if deleted contents don't match"
msgstr ""
"radera alltid även om raderat innehåll inte\n"
" stämmer överens"
-#: ../svn/svn.c:1313
+#: ../svn/svn.c:1346
msgid ""
"Display merge-related information.\n"
"usage: 1. mergeinfo SOURCE[@REV] [TARGET[@REV]]\n"
" 2. mergeinfo --show-revs=WHICH SOURCE[@REV] [TARGET[@REV]]\n"
"\n"
+msgstr ""
+"Visa information om sammanslagningar.\n"
+"användning: 1. mergeinfo KÄLLA[@REV] [MÅL[@REV]]\n"
+" 2. mergeinfo --show-revs=VILKA KÄLLA[@REV] [MÅL[@REV]]\n"
+"\n"
+
+#: ../svn/svn.c:1350
+msgid ""
" 1. Summarize the history of merging between SOURCE and TARGET. The graph\n"
" shows, from left to right:\n"
" the youngest common ancestor of the branches;\n"
@@ -15861,28 +16549,7 @@ msgid ""
" that will be used for the next complete merge;\n"
" the repository path and revision number of the tip of each branch.\n"
"\n"
-" 2. Print the revision numbers on SOURCE that have been merged to TARGET\n"
-" (with --show-revs=merged), or that have not been merged to TARGET\n"
-" (with --show-revs=eligible). Print only revisions in which there was\n"
-" at least one change in SOURCE.\n"
-"\n"
-" If --revision (-r) is provided, filter the displayed information to\n"
-" show only that which is associated with the revisions within the\n"
-" specified range. Revision numbers, dates, and the 'HEAD' keyword are\n"
-" valid range values.\n"
-"\n"
-" SOURCE and TARGET are the source and target branch URLs, respectively.\n"
-" (If a WC path is given, the corresponding base URL is used.) The default\n"
-" TARGET is the current working directory ('.'). REV specifies the revision\n"
-" to be considered the tip of the branch; the default for SOURCE is HEAD,\n"
-" and the default for TARGET is HEAD for a URL or BASE for a WC path.\n"
-"\n"
-" The depth can be 'empty' or 'infinity'; the default is 'empty'.\n"
msgstr ""
-"Visa information om sammanslagningar.\n"
-"användning: 1. mergeinfo KÄLLA[@REV] [MÅL[@REV]]\n"
-" 2. mergeinfo --show-revs=VILKA KÄLLA[@REV] [MÅL[@REV]]\n"
-"\n"
" 1. Sammanfatta sammanslagningshistoriken mellan KÄLLA och MÅL. Diagrammet\n"
" visar, från vänster till höger:\n"
" grenarnas yngsta gemensamma ursprung;\n"
@@ -15891,15 +16558,43 @@ msgstr ""
" sammanslagning;\n"
" arkivsökväg och revisionsnummer för varje grenspets.\n"
"\n"
+
+#: ../svn/svn.c:1357
+msgid ""
+" 2. Print the revision numbers on SOURCE that have been merged to TARGET\n"
+" (with --show-revs=merged), or that have not been merged to TARGET\n"
+" (with --show-revs=eligible). Print only revisions in which there was\n"
+" at least one change in SOURCE.\n"
+"\n"
+msgstr ""
" 2. Visa revisionsnumren i KÄLLA som har införts i MÅL\n"
" (med --show-revs=merged), eller som inte har införts i MÅL\n"
" (med --show-revs=eligible). Bara revisioner där minst en ändring\n"
" skedde i KÄLLA visas.\n"
"\n"
+
+#: ../svn/svn.c:1362
+msgid ""
+" If --revision (-r) is provided, filter the displayed information to\n"
+" show only that which is associated with the revisions within the\n"
+" specified range. Revision numbers, dates, and the 'HEAD' keyword are\n"
+" valid range values.\n"
+"\n"
+msgstr ""
" Om --revision (-r) anges, begränsa de visade revisionerna till det\n"
" angivna området. Revisionsnummer, datum och nyckelordet \"HEAD\" är\n"
" giltiga områdesvärden.\n"
"\n"
+
+#: ../svn/svn.c:1367
+msgid ""
+" SOURCE and TARGET are the source and target branch URLs, respectively.\n"
+" (If a WC path is given, the corresponding base URL is used.) The default\n"
+" TARGET is the current working directory ('.'). REV specifies the revision\n"
+" to be considered the tip of the branch; the default for SOURCE is HEAD,\n"
+" and the default for TARGET is HEAD for a URL or BASE for a WC path.\n"
+"\n"
+msgstr ""
" KÄLLA och MÅL är URL:er för käll- respektive målgrenen. (Om en sökväg\n"
" till en arbetskopia anges, så används motsvarande bas-URL istället.)\n"
" Standardvärdet på MÅL är den aktuella arbetskatalogen (\".\").\n"
@@ -15907,45 +16602,72 @@ msgstr ""
" är HEAD, och för MÅL är standardvärdet HEAD för en URL och BASE för en\n"
" arbetskopia.\n"
"\n"
-" Djupet kan vara \"empty\" eller \"infinity\"; standardvärdet är \"empty\".\n"
-#: ../svn/svn.c:1345
+#: ../svn/svn.c:1373
+msgid " The depth can be 'empty' or 'infinity'; the default is 'empty'.\n"
+msgstr " Djupet kan vara \"empty\" eller \"infinity\"; standardvärdet är \"empty\".\n"
+
+#: ../svn/svn.c:1379
msgid ""
"Create a new directory under version control.\n"
"usage: 1. mkdir PATH...\n"
" 2. mkdir URL...\n"
"\n"
-" Create version controlled directories.\n"
-"\n"
-" 1. Each directory specified by a working copy PATH is created locally\n"
-" and scheduled for addition upon the next commit.\n"
-"\n"
-" 2. Each directory specified by a URL is created in the repository via\n"
-" an immediate commit.\n"
-"\n"
-" In both cases, all the intermediate directories must already exist,\n"
-" unless the --parents option is given.\n"
msgstr ""
"Skapa en ny versionshanterad katalog.\n"
"användning: 1. mkdir SÖKVÄG...\n"
" 2. mkdir URL...\n"
"\n"
+
+#: ../svn/svn.c:1383
+msgid ""
+" Create version controlled directories.\n"
+"\n"
+msgstr ""
" Skapa versionshanterade kataloger.\n"
"\n"
+
+#: ../svn/svn.c:1385
+msgid ""
+" 1. Each directory specified by a working copy PATH is created locally\n"
+" and scheduled for addition upon the next commit.\n"
+"\n"
+msgstr ""
" 1. Varje katalog som anges av en sökväg i en arbetskopia, skapas lokalt\n"
" och schemaläggs att läggas till vid nästa arkivering.\n"
"\n"
+
+#: ../svn/svn.c:1388
+msgid ""
+" 2. Each directory specified by a URL is created in the repository via\n"
+" an immediate commit.\n"
+"\n"
+msgstr ""
" 2. Varje katalog som anges av en URL, skapas i arkivet och arkiveras\n"
" genast.\n"
"\n"
+
+#: ../svn/svn.c:1391
+msgid ""
+" In both cases, all the intermediate directories must already exist,\n"
+" unless the --parents option is given.\n"
+msgstr ""
" I båda fallen måste katalogerna ovanför de angivna redan finnas,\n"
" såvida inte flaggan --parents anges.\n"
-#: ../svn/svn.c:1362
+#: ../svn/svn.c:1397
msgid ""
"Move (rename) an item in a working copy or repository.\n"
"usage: move SRC... DST\n"
"\n"
+msgstr ""
+"Flytta (döp om) en fil eller katalog i en arbetskopia\n"
+"eller ett arkiv.\n"
+"användning: move KÄLLOR... MÅL\n"
+"\n"
+
+#: ../svn/svn.c:1400
+msgid ""
" SRC and DST can both be working copy (WC) paths or URLs:\n"
" WC -> WC: move an item in a working copy, as a local change to\n"
" be committed later (with or without further changes)\n"
@@ -15955,16 +16677,7 @@ msgid ""
" the sources will be added as children of DST. When moving multiple\n"
" sources, DST must be an existing directory.\n"
"\n"
-" SRC and DST of WC -> WC moves must be committed in the same revision.\n"
-" Furthermore, WC -> WC moves will refuse to move a mixed-revision subtree.\n"
-" To avoid unnecessary conflicts, it is recommended to run 'svn update'\n"
-" to update the subtree to a single revision before moving it.\n"
-" The --allow-mixed-revisions option is provided for backward compatibility.\n"
msgstr ""
-"Flytta (döp om) en fil eller katalog i en arbetskopia\n"
-"eller ett arkiv.\n"
-"användning: move KÄLLOR... MÅL\n"
-"\n"
" KÄLLOR och MÅL kan båda vara sökvägar till en arbetskopia (AK)\n"
" eller URL:er:\n"
" AK -> AK: flytta ett objekt i en arbetskopia, som en lokal ändring\n"
@@ -15975,6 +16688,15 @@ msgstr ""
" så kommer källorna läggas till som barn till MÅL. När flera källor flyttas\n"
" måste MÅL vara en befintlig katalog.\n"
"\n"
+
+#: ../svn/svn.c:1409
+msgid ""
+" SRC and DST of WC -> WC moves must be committed in the same revision.\n"
+" Furthermore, WC -> WC moves will refuse to move a mixed-revision subtree.\n"
+" To avoid unnecessary conflicts, it is recommended to run 'svn update'\n"
+" to update the subtree to a single revision before moving it.\n"
+" The --allow-mixed-revisions option is provided for backward compatibility.\n"
+msgstr ""
" KÄLLOR och MÅL i flyttningar mellan arbetskopior måste arkiveras i\n"
" samma revision, och kan inte flytta delträd med blandad revision.\n"
" För att undvika onödiga konflikter rekommenderas att \"svn update\"\n"
@@ -15982,19 +16704,42 @@ msgstr ""
" flyttas.\n"
" Flaggan --allow-mixed-revision finns till för bakåtkompatibilitet.\n"
-#: ../svn/svn.c:1384
+#: ../svn/svn.c:1420
msgid ""
"Apply a patch to a working copy.\n"
"usage: patch PATCHFILE [WCPATH]\n"
"\n"
+msgstr ""
+"Anbringa en ändringsfil (patch) i en arbetskopia.\n"
+"användning: patch PATCHFIL [AKSÖKVÄG]\n"
+"\n"
+
+#: ../svn/svn.c:1423
+msgid ""
" Apply a unidiff patch in PATCHFILE to the working copy WCPATH.\n"
" If WCPATH is omitted, '.' is assumed.\n"
"\n"
+msgstr ""
+" Anbringa ändringsfilen PATCHFIL, i unidiff-format, på\n"
+" arbetskopian AKSÖKVÄG. Om AKSÖKVÄG utelämnas så antas \".\".\n"
+"\n"
+
+#: ../svn/svn.c:1426
+msgid ""
" A unidiff patch suitable for application to a working copy can be\n"
" produced with the 'svn diff' command or third-party diffing tools.\n"
" Any non-unidiff content of PATCHFILE is ignored, except for Subversion\n"
" property diffs as produced by 'svn diff'.\n"
"\n"
+msgstr ""
+" En ändringsfil lämpad för att anbringas på en arbetskopia kan genereras\n"
+" med hjälp av kommandot \"svn diff\" eller ett externt verktyg.\n"
+" De delar av PATCHFIL som inte motsvarar unidiff-formatet hoppas över,\n"
+" utom egenskapsändringar som genererades av \"svn diff\".\n"
+"\n"
+
+#: ../svn/svn.c:1431
+msgid ""
" Changes listed in the patch will either be applied or rejected.\n"
" If a change does not match at its exact line offset, it may be applied\n"
" earlier or later in the file if a match is found elsewhere for the\n"
@@ -16004,41 +16749,7 @@ msgid ""
" If no matching context can be found for a change, the change conflicts\n"
" and will be written to a reject file with the extension .svnpatch.rej.\n"
"\n"
-" For each patched file a line will be printed with characters reporting\n"
-" the action taken. These characters have the following meaning:\n"
-"\n"
-" A Added\n"
-" D Deleted\n"
-" U Updated\n"
-" C Conflict\n"
-" G Merged (with local uncommitted changes)\n"
-"\n"
-" Changes applied with an offset or fuzz are reported on lines starting\n"
-" with the '>' symbol. You should review such changes carefully.\n"
-"\n"
-" If the patch removes all content from a file, that file is scheduled\n"
-" for deletion. If the patch creates a new file, that file is scheduled\n"
-" for addition. Use 'svn revert' to undo deletions and additions you\n"
-" do not agree with.\n"
-"\n"
-" Hint: If the patch file was created with Subversion, it will contain\n"
-" the number of a revision N the patch will cleanly apply to\n"
-" (look for lines like '--- foo/bar.txt (revision N)').\n"
-" To avoid rejects, first update to the revision N using\n"
-" 'svn update -r N', apply the patch, and then update back to the\n"
-" HEAD revision. This way, conflicts can be resolved interactively.\n"
msgstr ""
-"Anbringa en ändringsfil (patch) i en arbetskopia.\n"
-"användning: patch PATCHFIL [AKSÖKVÄG]\n"
-"\n"
-" Anbringa ändringsfilen PATCHFIL, i unidiff-format, på\n"
-" arbetskopian AKSÖKVÄG. Om AKSÖKVÄG utelämnas så antas \".\".\n"
-"\n"
-" En ändringsfil lämpad för att anbringas på en arbetskopia kan genereras\n"
-" med hjälp av kommandot \"svn diff\" eller ett externt verktyg.\n"
-" De delar av PATCHFIL som inte motsvarar unidiff-formatet hoppas över,\n"
-" utom egenskapsändringar som genererades av \"svn diff\".\n"
-"\n"
" Ändringarna i den angivna filen kommer antingen att anbringas eller\n"
" avslås. Om en ändring inte passar in på sin angivna plats men rätt\n"
" omgivande rader finns längre upp eller ner i filen så kan den anbringas\n"
@@ -16048,23 +16759,66 @@ msgstr ""
" Om ingen passande plats kan hittas för en ändring, så betraktas den som\n"
" en konflikt och skrivs till en avslagsfil med suffixet \".svnpatch.rej\".\n"
"\n"
+
+#: ../svn/svn.c:1440
+msgid ""
+" For each patched file a line will be printed with characters reporting\n"
+" the action taken. These characters have the following meaning:\n"
+"\n"
+msgstr ""
" För varje ändrad fil skrivs en rad med en bokstav för vad som gjordes.\n"
" Dessa bokstäver betyder:\n"
"\n"
+
+#: ../svn/svn.c:1443
+msgid ""
+" A Added\n"
+" D Deleted\n"
+" U Updated\n"
+" C Conflict\n"
+" G Merged (with local uncommitted changes)\n"
+"\n"
+msgstr ""
" A Tillagd\n"
" D Borttagen\n"
" U Uppdaterad\n"
" C Konflikt\n"
" G Sammanslagen (med lokala ändringar som inte har arkiverats)\n"
"\n"
+
+#: ../svn/svn.c:1449
+msgid ""
+" Changes applied with an offset or fuzz are reported on lines starting\n"
+" with the '>' symbol. You should review such changes carefully.\n"
+"\n"
+msgstr ""
" För ändringar som inte anbragdes exakt rapporteras detta på rader som\n"
" börjar med tecknet \">\". Sådana ändringar bör granskas noga.\n"
"\n"
+
+#: ../svn/svn.c:1452
+msgid ""
+" If the patch removes all content from a file, that file is scheduled\n"
+" for deletion. If the patch creates a new file, that file is scheduled\n"
+" for addition. Use 'svn revert' to undo deletions and additions you\n"
+" do not agree with.\n"
+"\n"
+msgstr ""
" Om allt innehåll tas bort från en fil, så kommer den filen schemaläggas\n"
" för radering. Om en ny fil skapas så kommer den schemaläggas att läggas\n"
" till. Använd \"svn revert\" för att förhindra oönskade raderingar och\n"
" tillägg.\n"
"\n"
+
+#: ../svn/svn.c:1457
+msgid ""
+" Hint: If the patch file was created with Subversion, it will contain\n"
+" the number of a revision N the patch will cleanly apply to\n"
+" (look for lines like '--- foo/bar.txt (revision N)').\n"
+" To avoid rejects, first update to the revision N using\n"
+" 'svn update -r N', apply the patch, and then update back to the\n"
+" HEAD revision. This way, conflicts can be resolved interactively.\n"
+msgstr ""
" Anm: Om ändringsfilen skapades av Subversion, innehåller den revisions-\n"
" numret N som den kan anbringas rent på (leta efter rader som liknar\n"
" \"--- katalog/fil.txt (revision N)\"). För att undvika avslag,\n"
@@ -16072,158 +16826,205 @@ msgstr ""
" anbringa ändringsfilen, och uppdatera sedan tillbaka till revisionen\n"
" HEAD. På så sätt kan konflikter lösas interaktivt.\n"
-#: ../svn/svn.c:1432
+#: ../svn/svn.c:1468
msgid ""
"Remove a property from files, dirs, or revisions.\n"
"usage: 1. propdel PROPNAME [PATH...]\n"
" 2. propdel PROPNAME --revprop -r REV [TARGET]\n"
"\n"
-" 1. Removes versioned props in working copy.\n"
-" 2. Removes unversioned remote prop on repos revision.\n"
-" TARGET only determines which repository to access.\n"
-"\n"
-" See 'svn help propset' for descriptions of the svn:* special properties.\n"
msgstr ""
"Radera en egenskap från filer, kataloger eller revisioner.\n"
"användning: 1. propdel PROPNAMN [SÖKVÄG...]\n"
" 2. propdel PROPNAMN --revprop -r REV [MÃ…L]\n"
"\n"
+
+#: ../svn/svn.c:1472
+msgid ""
+" 1. Removes versioned props in working copy.\n"
+" 2. Removes unversioned remote prop on repos revision.\n"
+" TARGET only determines which repository to access.\n"
+"\n"
+msgstr ""
" 1. Ta bort versionshanterade egenskaper i arbetskopian.\n"
" 2. Ta bort en icke versionshanterad revisionsegenskap på en revision i\n"
" arkivet.\n"
" MÅL används endast för att avgöra vilket arkiv som ska användas.\n"
"\n"
+
+#: ../svn/svn.c:1476 ../svn/svn.c:1489 ../svn/svn.c:1513 ../svn/svn.c:1533
+msgid " See 'svn help propset' for descriptions of the svn:* special properties.\n"
+msgstr ""
" Se \"svn help propset\" för beskrivning av de speciella egenskaperna som\n"
" börjar med \"svn:\".\n"
-#: ../svn/svn.c:1444
+#: ../svn/svn.c:1481
msgid ""
"Edit a property with an external editor.\n"
"usage: 1. propedit PROPNAME TARGET...\n"
" 2. propedit PROPNAME --revprop -r REV [TARGET]\n"
"\n"
-" 1. Edits versioned prop in working copy or repository.\n"
-" 2. Edits unversioned remote prop on repos revision.\n"
-" TARGET only determines which repository to access.\n"
-"\n"
-" See 'svn help propset' for descriptions of the svn:* special properties.\n"
msgstr ""
"Redigera en egenskap med en extern editor.\n"
"användning: 1. propedit EGENSKAPSNAMN MÅL...\n"
" 2. propedit EGENSKAPSNAMN --revprop -r REV [MÃ…L]\n"
"\n"
+
+#: ../svn/svn.c:1485
+msgid ""
+" 1. Edits versioned prop in working copy or repository.\n"
+" 2. Edits unversioned remote prop on repos revision.\n"
+" TARGET only determines which repository to access.\n"
+"\n"
+msgstr ""
" 1. Redigerar versionshanterade egenskaper i arbetskopian eller arkivet.\n"
" 2. Redigerar en icke versionshanterad revisionsegenskap på en revision i\n"
" arkivet.\n"
" MÅL används endast för att avgöra vilket arkiv som ska användas.\n"
"\n"
-" Se \"svn help propset\" för beskrivning av de speciella egenskaperna som\n"
-" börjar med \"svn:\".\n"
-#: ../svn/svn.c:1456
+#: ../svn/svn.c:1494
msgid ""
"Print the value of a property on files, dirs, or revisions.\n"
"usage: 1. propget PROPNAME [TARGET[@REV]...]\n"
" 2. propget PROPNAME --revprop -r REV [TARGET]\n"
"\n"
-" 1. Prints versioned props. If specified, REV determines in which\n"
-" revision the target is first looked up.\n"
-" 2. Prints unversioned remote prop on repos revision.\n"
-" TARGET only determines which repository to access.\n"
-"\n"
-" With --verbose, the target path and the property name are printed on\n"
-" separate lines before each value, like 'svn proplist --verbose'.\n"
-" Otherwise, if there is more than one TARGET or a depth other than\n"
-" 'empty', the target path is printed on the same line before each value.\n"
-"\n"
-" By default, an extra newline is printed after the property value so that\n"
-" the output looks pretty. With a single TARGET, depth 'empty' and without\n"
-" --show-inherited-props, you can use the --no-newline option to disable this\n"
-" (useful when redirecting a binary property value to a file, for example).\n"
-"\n"
-" See 'svn help propset' for descriptions of the svn:* special properties.\n"
msgstr ""
"Skriv ut värdet på en egenskap för filer, kataloger\n"
"eller revisioner.\n"
"användning: 1. propget PROPNAMN [MÅL[@REV]...]\n"
" 2. propget PROPNAMN --revprop -r REV [MÃ…L]\n"
"\n"
+
+#: ../svn/svn.c:1498
+msgid ""
+" 1. Prints versioned props. If specified, REV determines in which\n"
+" revision the target is first looked up.\n"
+" 2. Prints unversioned remote prop on repos revision.\n"
+" TARGET only determines which repository to access.\n"
+"\n"
+msgstr ""
" 1. Visa en versionshanterad egenskap i arbetskopian. Om REV anges, avgör\n"
" den i vilken revision MÅL söks upp.\n"
" 2. Visa en icke versionshanterad revisionsegenskap för en revision i\n"
" arkivet.\n"
" MÅL används endast för att avgöra vilket arkiv som ska användas.\n"
"\n"
+
+#: ../svn/svn.c:1503
+msgid ""
+" With --verbose, the target path and the property name are printed on\n"
+" separate lines before each value, like 'svn proplist --verbose'.\n"
+" Otherwise, if there is more than one TARGET or a depth other than\n"
+" 'empty', the target path is printed on the same line before each value.\n"
+"\n"
+msgstr ""
" Med --verbose kommer målsökvägen och egenskapsnamnet skrivas på skilda\n"
" rader före varje värde, som med \"svn proplist --verbose\". Annars, med\n"
" mer än ett MÅL eller ett djup annat än \"empty\", så skrivs målsökvägen\n"
" på samma rad framför varje värde.\n"
"\n"
+
+#: ../svn/svn.c:1508
+msgid ""
+" By default, an extra newline is printed after the property value so that\n"
+" the output looks pretty. With a single TARGET, depth 'empty' and without\n"
+" --show-inherited-props, you can use the --no-newline option to disable this\n"
+" (useful when redirecting a binary property value to a file, for example).\n"
+"\n"
+msgstr ""
" Normalt skrivs ett radslut ut efter värdena, så att utskrifterna ser\n"
" snyggare ut. Med ett enda MÃ…L, djupet \"empty\" och utan --show-inherited-props\n"
" så kan flaggan --no-newline användas för att slå av detta radslut\n"
" (bland annat användbart när binära egenskaper skickas till en fil).\n"
"\n"
-" Se \"svn help propset\" för beskrivning av de speciella egenskaperna som\n"
-" börjar med \"svn:\".\n"
-#: ../svn/svn.c:1478 ../svn/svn.c:1497
+#: ../svn/svn.c:1517 ../svn/svn.c:1537
msgid "print path, name and value on separate lines"
msgstr "skriv sökväg, namn och värde på skilda rader"
-#: ../svn/svn.c:1479
+#: ../svn/svn.c:1518
msgid "(deprecated; use --no-newline)"
msgstr "(föråldrat; se --no-newline)"
-#: ../svn/svn.c:1482
+#: ../svn/svn.c:1521
msgid ""
"List all properties on files, dirs, or revisions.\n"
"usage: 1. proplist [TARGET[@REV]...]\n"
" 2. proplist --revprop -r REV [TARGET]\n"
"\n"
-" 1. Lists versioned props. If specified, REV determines in which\n"
-" revision the target is first looked up.\n"
-" 2. Lists unversioned remote props on repos revision.\n"
-" TARGET only determines which repository to access.\n"
-"\n"
-" With --verbose, the property values are printed as well, like 'svn propget\n"
-" --verbose'. With --quiet, the paths are not printed.\n"
-"\n"
-" See 'svn help propset' for descriptions of the svn:* special properties.\n"
msgstr ""
"Lista alla egenskaper på filer, kataloger eller\n"
"revisioner.\n"
"användning: 1. proplist [MÅL[@REV]...]\n"
" 2. proplist --revprop -r REV [MÃ…L]\n"
"\n"
+
+#: ../svn/svn.c:1525
+msgid ""
+" 1. Lists versioned props. If specified, REV determines in which\n"
+" revision the target is first looked up.\n"
+" 2. Lists unversioned remote props on repos revision.\n"
+" TARGET only determines which repository to access.\n"
+"\n"
+msgstr ""
" 1. Listar versionshanterade egenskaper. Om REV är angiven, bestämmer den i\n"
" vilken revision MÅL först letas upp.\n"
" 2. Listar icke versionshanterade revisionsegenskaper för en revision i\n"
" ett arkiv.\n"
" MÅL används endast för att avgöra vilket arkiv som ska användas.\n"
"\n"
+
+#: ../svn/svn.c:1530
+msgid ""
+" With --verbose, the property values are printed as well, like 'svn propget\n"
+" --verbose'. With --quiet, the paths are not printed.\n"
+"\n"
+msgstr ""
" Med --verbose skrivs egenskapsvärdena också ut, som med \"svn propget\n"
" --verbose\". Med --quiet skrivs inte sökvägarna ut.\n"
"\n"
-" Se \"svn help propset\" för beskrivning av de speciella egenskaperna som\n"
-" börjar med \"svn:\".\n"
-#: ../svn/svn.c:1498
+#: ../svn/svn.c:1538
msgid "don't print the path"
msgstr "skriv inte sökvägen"
-#: ../svn/svn.c:1501
+#: ../svn/svn.c:1541
msgid ""
"Set the value of a property on files, dirs, or revisions.\n"
"usage: 1. propset PROPNAME PROPVAL PATH...\n"
" 2. propset PROPNAME --revprop -r REV PROPVAL [TARGET]\n"
"\n"
+msgstr ""
+"Sätt värdet på en egenskap på filer, kataloger\n"
+"eller revisioner.\n"
+"användning: 1. propset PROPNAMN VÄRDE SÖKVÄG...\n"
+" 2. propset PROPNAMN --revprop -r REV VÄRDE [MÅL]\n"
+"\n"
+
+#: ../svn/svn.c:1545
+msgid ""
" 1. Changes a versioned file or directory property in a working copy.\n"
" 2. Changes an unversioned property on a repository revision.\n"
" (TARGET only determines which repository to access.)\n"
"\n"
+msgstr ""
+" 1. Ändra en versionshanterad egenskap på en fil eller katalog\n"
+" i en arbetskopia.\n"
+" 2. Gör en ändring av en icke versionshanterad revisionsegenskap på en\n"
+" revision i arkivet.\n"
+" MÅL används endast för att avgöra vilket arkiv som ska användas.\n"
+"\n"
+
+#: ../svn/svn.c:1549
+msgid ""
" The value may be provided with the --file option instead of PROPVAL.\n"
"\n"
+msgstr ""
+" Värdet kan tillhandahållas med flaggan --file istället för som VÄRDE.\n"
+"\n"
+
+#: ../svn/svn.c:1551
+msgid ""
" Property names starting with 'svn:' are reserved. Subversion recognizes\n"
" the following special versioned properties on a file:\n"
" svn:keywords - Keywords to be expanded. Valid keywords are:\n"
@@ -16235,6 +17036,21 @@ msgid ""
" Id - A compressed summary of the previous four.\n"
" Header - Similar to Id but includes the full URL.\n"
"\n"
+msgstr ""
+" Egenskaper vars namn börjar med \"svn:\" är reserverade. Subversion\n"
+" känner igen följande särskilda versionshanterade egenskaper på filer:\n"
+" svn:keywords - Nyckelord som ska expanderas. Giltiga nyckelord är:\n"
+" URL, HeadURL - URL:en till filens senaste revision.\n"
+" Author, LastChangedBy - Personen som gjorde den senaste ändringen.\n"
+" Date, LastChangedDate - Datum/tid för den senaste ändringen.\n"
+" Rev, Revision, - Senaste revisionen där filen ändrades.\n"
+" LastChangedRevision\n"
+" Id - Ett sammandrag av de 4 nyckelorden ovan.\n"
+" Header - Som \"Id\" men med full URL.\n"
+"\n"
+
+#: ../svn/svn.c:1562
+msgid ""
" Custom keywords can be defined with a format string separated from\n"
" the keyword name with '='. Valid format substitutions are:\n"
" %a - The author of the revision given by %r.\n"
@@ -16253,6 +17069,29 @@ msgid ""
" Once a custom keyword has been defined for a file, it can be used\n"
" within the file like any other keyword: $MyKeyword$\n"
"\n"
+msgstr ""
+" Egna nyckelord kan definieras med en formatsträng som avskiljs från\n"
+" namnet med \"=\". Giltiga formatsubstitutioner är:\n"
+" %a - Författaren till revisionen som ges av %r.\n"
+" %b - Basnamnet för filens URL.\n"
+" %d - Datumet för revisionen som ges av %r, på kort form.\n"
+" %D - Datumet för revisionen som ges av %r, på lång form.\n"
+" %P - Filens sökväg relativt arkivroten.\n"
+" %r - Revisionsnumret för den senaste ändringen av filen.\n"
+" %R - Arkivrotens URL.\n"
+" %u - Filens URL.\n"
+" %_ - Ett mellanslag (nyckelordsdefinitioner kan inte bokstavligen\n"
+" innehålla mellanslag).\n"
+" %% - Ett procenttecken (\"%\").\n"
+" %H - Samma som %P%_%r%_%d%_%a.\n"
+" %I - Samma som %b%_%r%_%d%_%a.\n"
+" Exempel på definition av ett eget nyckelord: Mittnyckelord=%r%_%a%_%P\n"
+" När ett eget nyckelord har definierats för en fil kan det användas\n"
+" inom den filen som vilket annat nyckelord som helst: $Mittnyckelord$\n"
+"\n"
+
+#: ../svn/svn.c:1580
+msgid ""
" svn:executable - If present, make the file executable. Use\n"
" 'svn propdel svn:executable PATH...' to clear.\n"
" svn:eol-style - One of 'native', 'LF', 'CR', 'CRLF'.\n"
@@ -16265,6 +17104,22 @@ msgid ""
" when it is not locked. Use 'svn propdel svn:needs-lock PATH...'\n"
" to clear.\n"
"\n"
+msgstr ""
+" svn:executable - Om den finns, görs filen exekverbar. Använd\n"
+" \"svn propdel svn:executable SÖKVÄG...\" för att nollställa.\n"
+" svn:eol-style - NÃ¥got av \"native\", \"CR\", \"LF\" eller \"CRLF\".\n"
+" svn:mime-type - Filens MIME-typ. Används för att avgöra hur samman-\n"
+" slagningar av ändringar sker och hur den skickas från Apache. En\n"
+" MIME-typ som inleds med \"text/\" eller som saknas behandlas som text.\n"
+" Allt annat behandlas som binärdata.\n"
+" svn:needs-lock - Om den är satt, visar den att filen bör låsas innan\n"
+" den ändras. Gör att arbetsfilen blir skrivskyddad när den inte är\n"
+" låst. Använd \"svn propdel svn:needs-lock SÖKVÄG...\" för att\n"
+" nollställa.\n"
+"\n"
+
+#: ../svn/svn.c:1592
+msgid ""
" Subversion recognizes the following special versioned properties on a\n"
" directory:\n"
" svn:ignore - A list of file glob patterns to ignore, one per line.\n"
@@ -16300,61 +17155,6 @@ msgid ""
" 'relative_url relative_path' with peg revision support.\n"
" Lines starting with a '#' character are ignored.\n"
msgstr ""
-"Sätt värdet på en egenskap på filer, kataloger\n"
-"eller revisioner.\n"
-"användning: 1. propset PROPNAMN VÄRDE SÖKVÄG...\n"
-" 2. propset PROPNAMN --revprop -r REV VÄRDE [MÅL]\n"
-"\n"
-" 1. Ändra en versionshanterad egenskap på en fil eller katalog\n"
-" i en arbetskopia.\n"
-" 2. Gör en ändring av en icke versionshanterad revisionsegenskap på en\n"
-" revision i arkivet.\n"
-" MÅL används endast för att avgöra vilket arkiv som ska användas.\n"
-"\n"
-" Värdet kan tillhandahållas med flaggan --file istället för som VÄRDE.\n"
-"\n"
-" Egenskaper vars namn börjar med \"svn:\" är reserverade. Subversion\n"
-" känner igen följande särskilda versionshanterade egenskaper på filer:\n"
-" svn:keywords - Nyckelord som ska expanderas. Giltiga nyckelord är:\n"
-" URL, HeadURL - URL:en till filens senaste revision.\n"
-" Author, LastChangedBy - Personen som gjorde den senaste ändringen.\n"
-" Date, LastChangedDate - Datum/tid för den senaste ändringen.\n"
-" Rev, Revision, - Senaste revisionen där filen ändrades.\n"
-" LastChangedRevision\n"
-" Id - Ett sammandrag av de 4 nyckelorden ovan.\n"
-" Header - Som \"Id\" men med full URL.\n"
-"\n"
-" Egna nyckelord kan definieras med en formatsträng som avskiljs från\n"
-" namnet med \"=\". Giltiga formatsubstitutioner är:\n"
-" %a - Författaren till revisionen som ges av %r.\n"
-" %b - Basnamnet för filens URL.\n"
-" %d - Datumet för revisionen som ges av %r, på kort form.\n"
-" %D - Datumet för revisionen som ges av %r, på lång form.\n"
-" %P - Filens sökväg relativt arkivroten.\n"
-" %r - Revisionsnumret för den senaste ändringen av filen.\n"
-" %R - Arkivrotens URL.\n"
-" %u - Filens URL.\n"
-" %_ - Ett mellanslag (nyckelordsdefinitioner kan inte bokstavligen\n"
-" innehålla mellanslag).\n"
-" %% - Ett procenttecken (\"%\").\n"
-" %H - Samma som %P%_%r%_%d%_%a.\n"
-" %I - Samma som %b%_%r%_%d%_%a.\n"
-" Exempel på definition av ett eget nyckelord: Mittnyckelord=%r%_%a%_%P\n"
-" När ett eget nyckelord har definierats för en fil kan det användas\n"
-" inom den filen som vilket annat nyckelord som helst: $Mittnyckelord$\n"
-"\n"
-" svn:executable - Om den finns, görs filen exekverbar. Använd\n"
-" \"svn propdel svn:executable SÖKVÄG...\" för att nollställa.\n"
-" svn:eol-style - NÃ¥got av \"native\", \"CR\", \"LF\" eller \"CRLF\".\n"
-" svn:mime-type - Filens MIME-typ. Används för att avgöra hur samman-\n"
-" slagningar av ändringar sker och hur den skickas från Apache. En\n"
-" MIME-typ som inleds med \"text/\" eller som saknas behandlas som text.\n"
-" Allt annat behandlas som binärdata.\n"
-" svn:needs-lock - Om den är satt, visar den att filen bör låsas innan\n"
-" den ändras. Gör att arbetsfilen blir skrivskyddad när den inte är\n"
-" låst. Använd \"svn propdel svn:needs-lock SÖKVÄG...\" för att\n"
-" nollställa.\n"
-"\n"
" Subversion känner igen följande särskilda versionshanterade egenskaper på\n"
" kataloger:\n"
" svn:ignore - En lista med filmönster att ignorera, ett per rad.\n"
@@ -16392,72 +17192,124 @@ msgstr ""
" \"relativ_URL relativ_sökväg\" med stöd för fixerad revision.\n"
" Rader som börjar med tecknet \"#\" hoppas över.\n"
-#: ../svn/svn.c:1588
+#: ../svn/svn.c:1629
msgid "read property value from file ARG"
msgstr "läs egenskapsvärde från filen ARG"
-#: ../svn/svn.c:1591
+#: ../svn/svn.c:1632
msgid ""
"Relocate the working copy to point to a different repository root URL.\n"
"usage: 1. relocate FROM-PREFIX TO-PREFIX [PATH...]\n"
" 2. relocate TO-URL [PATH]\n"
"\n"
+msgstr ""
+"Omlokalisera arbetskopian till att använda en annan arkivrots-URL.\n"
+"användning: 1. relocate FRÅN-PREFIX TILL-PREFIX [SÖKVÄG...]\n"
+" 2. relocate TILL-URL [SÖKVÄG]\n"
+"\n"
+
+#: ../svn/svn.c:1636
+msgid ""
" Rewrite working copy URL metadata to reflect a syntactic change only.\n"
" This is used when a repository's root URL changes (such as a scheme\n"
" or hostname change) but your working copy still reflects the same\n"
" directory within the same repository.\n"
"\n"
-" 1. FROM-PREFIX and TO-PREFIX are initial substrings of the working\n"
-" copy's current and new URLs, respectively. (You may specify the\n"
-" complete old and new URLs if you wish.) Use 'svn info' to determine\n"
-" the current working copy URL.\n"
-"\n"
-" 2. TO-URL is the (complete) new repository URL to use for PATH.\n"
-"\n"
-" Examples:\n"
-" svn relocate http:// svn:// project1 project2\n"
-" svn relocate http://www.example.com/repo/project \\\n"
-" svn://svn.example.com/repo/project\n"
msgstr ""
-"Omlokalisera arbetskopian till att använda en annan arkivrots-URL.\n"
-"användning: 1. relocate FRÅN-PREFIX TILL-PREFIX [SÖKVÄG...]\n"
-" 2. relocate TILL-URL [SÖKVÄG]\n"
-"\n"
" Skriv om arbetskopians URL-metadata för att avspegla en ren syntaxändring.\n"
" Detta används när en arkivrots-URL ändras (t.ex. byte av schema eller\n"
" värddator) men arbetskopian representerar fortfarande samma katalog i\n"
" samma arkiv.\n"
"\n"
+
+#: ../svn/svn.c:1641
+msgid ""
+" 1. FROM-PREFIX and TO-PREFIX are initial substrings of the working\n"
+" copy's current and new URLs, respectively. (You may specify the\n"
+" complete old and new URLs if you wish.) Use 'svn info' to determine\n"
+" the current working copy URL.\n"
+"\n"
+msgstr ""
" 1. FRÅN-PREFIX och TILL-PREFIX är förled till arbetskopians aktuella\n"
" respektive nya URL:er. (Det går att ange hela de gamla och nya URL:erna\n"
" om man vill.) Använd \"svn info\" för att ta reda på aktuell URL till\n"
" arbetskopian.\n"
"\n"
+
+#: ../svn/svn.c:1646
+msgid ""
+" 2. TO-URL is the (complete) new repository URL to use for PATH.\n"
+"\n"
+msgstr ""
" 2. TILL-URL är den (fullständiga) nya arkiv-URL:en att använda för SÖKVÄG.\n"
"\n"
+
+#: ../svn/svn.c:1648
+msgid ""
+" Examples:\n"
+" svn relocate http:// svn:// project1 project2\n"
+" svn relocate http://www.example.com/repo/project \\\n"
+" svn://svn.example.com/repo/project\n"
+msgstr ""
" Exempel:\n"
" svn relocate http:// svn:// projekt1 projekt2\n"
" svn relocate http://www.exempel.se/arkiv/projekt \\\n"
" svn://svn.exempel.se/arkiv/projekt\n"
-#: ../svn/svn.c:1614
+#: ../svn/svn.c:1656
msgid ""
"Resolve conflicts on working copy files or directories.\n"
"usage: resolve [PATH...]\n"
"\n"
+msgstr ""
+"Lös konflikter i filer och kataloger i arbetskopian.\n"
+"användning: resolve [SÖKVÄG...]\n"
+"\n"
+
+#: ../svn/svn.c:1659
+msgid ""
" By default, perform interactive conflict resolution on PATH.\n"
" In this mode, the command is recursive by default (depth 'infinity').\n"
"\n"
+msgstr ""
+" Om inget annat anges, genomför interaktiv konfliktlösning på SÖKVÄG.\n"
+" I detta läge är kommandot normalt rekursivt (djup \"infinity\").\n"
+"\n"
+
+#: ../svn/svn.c:1662
+msgid ""
" The --accept=ARG option prevents interactive prompting and forces\n"
" conflicts on PATH to be resolved in the manner specified by ARG.\n"
" In this mode, the command is not recursive by default (depth 'empty').\n"
"\n"
+msgstr ""
+" Väljaren --accept=ARG förhindrar interaktiva frågor och tvingar lösning\n"
+" av alla konflikter enligt ARG. I detta läge är kommandot normalt inte\n"
+" rekursivt (djup \"empty\").\n"
+"\n"
+
+#: ../svn/svn.c:1666
+msgid ""
" A conflicted path cannot be committed with 'svn commit' until it\n"
" has been marked as resolved with 'svn resolve'.\n"
"\n"
+msgstr ""
+" En sökväg med konflikt kan inte arkiveras med \"svn commit\" förrän den har\n"
+" lösts med \"svn resolve\".\n"
+"\n"
+
+#: ../svn/svn.c:1669
+msgid ""
" Subversion knows three types of conflicts:\n"
" Text conflicts, Property conflicts, and Tree conflicts.\n"
"\n"
+msgstr ""
+" Subversion har tre sorters konflikter:\n"
+" Textkonflikter, egenskapskonflikter och trädkonflikter.\n"
+"\n"
+
+#: ../svn/svn.c:1672
+msgid ""
" Text conflicts occur when overlapping changes to file contents were\n"
" made. Text conflicts are usually resolved by editing the conflicted\n"
" file or by using a merge tool (which may be an external program).\n"
@@ -16466,11 +17318,34 @@ msgid ""
" only useful in situations where it is acceptable to discard local or\n"
" incoming changes altogether.\n"
"\n"
+msgstr ""
+" Textkonflikter inträffar när överlappande ändringar av filinnehållet\n"
+" görs. Textkonflikter löses vanligtvis genom att redigera filen med\n"
+" konflikt eller med ett sammanslagningsverktyg (som kan vara ett\n"
+" externt program).\n"
+" \"svn resolve\" har väljare som kan användas för att redigera filer\n"
+" automatiskt (som \"mine-full\" eller \"theirs-conflict\") men dessa är\n"
+" bara användbara i situationer då det går bra att förkasta lokala\n"
+" eller inkommande ändringar helt och hållet.\n"
+"\n"
+
+#: ../svn/svn.c:1680
+msgid ""
" Property conflicts are usually resolved by editing the value of the\n"
" conflicted property (either from the interactive prompt, or with\n"
" 'svn propedit'). As with text conflicts, options exist to edit a\n"
" property automatically, discarding some changes in favour of others.\n"
"\n"
+msgstr ""
+" Egenskapskonflikter löses vanligtvis genom att redigera värdet på\n"
+" egenskapen med konflikt (antingen från en interaktiv fråga eller\n"
+" med \"svn propedit\"). Liksom för textkonflikter finns väljare för\n"
+" automatisk redigering av en egenskap där vissa ändringar kan förkastas\n"
+" till förmån för andra.\n"
+"\n"
+
+#: ../svn/svn.c:1685
+msgid ""
" Tree conflicts occur when a change to the directory structure was\n"
" made, and when this change cannot be applied to the working copy\n"
" without affecting other changes (text changes, property changes,\n"
@@ -16481,6 +17356,20 @@ msgid ""
" It is recommended to use these automatic options whenever possible,\n"
" rather than attempting manual tree conflict resolution.\n"
"\n"
+msgstr ""
+" Trädkonflikter inträffar när en ändring av katalogstrukturen har\n"
+" gjorts och denna ändring inte kan utföras i arbetskopian utan att\n"
+" påverka andra ändringar (ändringar i text, egenskaper, eller\n"
+" andra ändringar av katalogstrukturen). Kortfattad information\n"
+" om trädkonflikter visas av kommandona \"svn status\" och \"svn info\".\n"
+" I interaktivt läge kommer \"svn resolve\" försökta beskriva\n"
+" trädkonflikter i detalj och kan erbjuda val för att lösa konflikten\n"
+" automatiskt. Det rekommenderas att dessa automatiska val används\n"
+" när det går, istället för att lösa trädkonflikten manuellt.\n"
+"\n"
+
+#: ../svn/svn.c:1695
+msgid ""
" If a tree conflict cannot be resolved automatically, it is recommended\n"
" to figure out why the conflict occurred before attempting to resolve it.\n"
" The 'svn log -v' command can be used to inspect structural changes\n"
@@ -16493,48 +17382,6 @@ msgid ""
" local changes with 'svn revert'. Files or directories might have to be\n"
" copied, deleted, or moved.\n"
msgstr ""
-"Lös konflikter i filer och kataloger i arbetskopian.\n"
-"användning: resolve [SÖKVÄG...]\n"
-"\n"
-" Om inget annat anges, genomför interaktiv konfliktlösning på SÖKVÄG.\n"
-" I detta läge är kommandot normalt rekursivt (djup \"infinity\").\n"
-"\n"
-" Väljaren --accept=ARG förhindrar interaktiva frågor och tvingar lösning\n"
-" av alla konflikter enligt ARG. I detta läge är kommandot normalt inte\n"
-" rekursivt (djup \"empty\").\n"
-"\n"
-" En sökväg med konflikt kan inte arkiveras med \"svn commit\" förrän den har\n"
-" lösts med \"svn resolve\".\n"
-"\n"
-" Subversion har tre sorters konflikter:\n"
-" Textkonflikter, egenskapskonflikter och trädkonflikter.\n"
-"\n"
-" Textkonflikter inträffar när överlappande ändringar av filinnehållet\n"
-" görs. Textkonflikter löses vanligtvis genom att redigera filen med\n"
-" konflikt eller med ett sammanslagningsverktyg (som kan vara ett\n"
-" externt program).\n"
-"\n"
-" \"svn resolve\" har väljare som kan användas för att redigera filer\n"
-" automatiskt (som \"mine-full\" eller \"theirs-conflict\") men dessa är\n"
-" bara användbara i situationer då det går bra att förkasta lokala\n"
-" eller inkommande ändringar helt och hållet.\n"
-"\n"
-" Egenskapskonflikter löses vanligtvis genom att redigera värdet på\n"
-" egenskapen med konflikt (antingen från en interaktiv fråga eller\n"
-" med \"svn propedit\"). Liksom för textkonflikter finns väljare för\n"
-" automatisk redigering av en egenskap där vissa ändringar kan förkastas\n"
-" till förmån för andra.\n"
-"\n"
-" Trädkonflikter inträffar när en ändring av katalogstrukturen har\n"
-" gjorts och denna ändring inte kan utföras i arbetskopian utan att\n"
-" påverka andra ändringar (ändringar i text, egenskaper, eller\n"
-" andra ändringar av katalogstrukturen). Kortfattad information\n"
-" om trädkonflikter visas av kommandona \"svn status\" och \"svn info\".\n"
-" I interaktivt läge kommer \"svn resolve\" försökta beskriva\n"
-" trädkonflikter i detalj och kan erbjuda val för att lösa konflikten\n"
-" automatiskt. Det rekommenderas att dessa automatiska val används\n"
-" när det går, istället för att lösa trädkonflikten manuellt.\n"
-"\n"
" Om en trädkonflikt inte kan lösas automatiskt är det bäst att ta\n"
" reda på varför konflikten inträffade innan försök görs att lösa den.\n"
" Kommandot \"svn log -v\" kan användas för att undersöka strukturändringar\n"
@@ -16547,7 +17394,7 @@ msgstr ""
" nödvändigt att slänga bort vissa lokala ändringar med \"svn revert\".\n"
" Filer eller kataloger kan behöva kopieras, raderas eller flyttas.\n"
-#: ../svn/svn.c:1665
+#: ../svn/svn.c:1708
msgid ""
"specify automatic conflict resolution source\n"
" ('base', 'working', 'mine-conflict',\n"
@@ -16557,56 +17404,85 @@ msgstr ""
" (\"base\", \"working\", \"mine-conflict\",\n"
" \"theirs-conflict\", \"mine-full\", \"theirs-full\")"
-#: ../svn/svn.c:1672
+#: ../svn/svn.c:1715
msgid ""
"Remove 'conflicted' state on working copy files or directories.\n"
"usage: resolved PATH...\n"
"\n"
+msgstr ""
+"Ta bort konflikttillstånd på filer eller kataloger i arbetskopian.\n"
+"användning: resolved SÖKVÄG...\n"
+"\n"
+
+#: ../svn/svn.c:1718
+msgid ""
" Note: this subcommand does not semantically resolve conflicts or\n"
" remove conflict markers; it merely removes the conflict-related\n"
" artifact files and allows PATH to be committed again. It has been\n"
" deprecated in favor of running 'svn resolve --accept working'.\n"
msgstr ""
-"Ta bort konflikttillstånd på filer eller kataloger i arbetskopian.\n"
-"användning: resolved SÖKVÄG...\n"
-"\n"
" Anmärkning: Det här underkommandot löser inga konflikter och tar inte bort\n"
" konfliktmarkörer; det tar endast bort filerna som skapades då konflikten\n"
" uppstod och gör så att det går att arkivera SÖKVÄG igen. Det rekommenderas\n"
" att använda \"svn resolve --accept working\" istället.\n"
-#: ../svn/svn.c:1682
+#: ../svn/svn.c:1726
msgid ""
"Restore pristine working copy state (undo local changes).\n"
"usage: revert PATH...\n"
"\n"
-" Revert changes in the working copy at or within PATH, and remove\n"
-" conflict markers as well, if any.\n"
-"\n"
-" This subcommand does not revert already committed changes.\n"
-" For information about undoing already committed changes, search\n"
-" the output of 'svn help merge' for 'undo'.\n"
msgstr ""
"Återställ arbetskopia till orört tillstånd (upphäv lokala ändringar).\n"
"användning: revert SÖKVÄG...\n"
"\n"
+
+#: ../svn/svn.c:1729
+msgid ""
+" Revert changes in the working copy at or within PATH, and remove\n"
+" conflict markers as well, if any.\n"
+"\n"
+msgstr ""
" Upphäv ändringar i arbetskopian på eller inom SÖKVÄG, och ta bort\n"
" konfliktmarkeringar om sådana finns.\n"
"\n"
+
+#: ../svn/svn.c:1732
+msgid ""
+" This subcommand does not revert already committed changes.\n"
+" For information about undoing already committed changes, search\n"
+" the output of 'svn help merge' for 'undo'.\n"
+msgstr ""
" Detta underkommando upphäver inte redan arkiverade ändringar.\n"
" För information om att göra det, kör \"svn help merge\" och sök efter\n"
" \"upphäva\".\n"
-#: ../svn/svn.c:1694
+#: ../svn/svn.c:1739
msgid ""
"Print the status of working copy files and directories.\n"
"usage: status [PATH...]\n"
"\n"
+msgstr ""
+"Visa status för filer och kataloger i en arbetskopia.\n"
+"användning: status [SÖKVÄG...]\n"
+"\n"
+
+#: ../svn/svn.c:1742
+msgid ""
" With no args, print only locally modified items (no network access).\n"
" With -q, print only summary information about locally modified items.\n"
" With -u, add working revision and server out-of-date information.\n"
" With -v, print full revision information on every item.\n"
"\n"
+msgstr ""
+" Utan argument visas endast lokala ändringar (kräver inte nätverksåtkomst).\n"
+" Med -q skrivs endast en sammanfattning om lokalt ändrade objekt.\n"
+" Med -u visas dessutom revisioner i arbetskopian och information\n"
+" om ändringar på servern.\n"
+" Med -v visas fullständig revisionsinformation för varje objekt.\n"
+"\n"
+
+#: ../svn/svn.c:1747
+msgid ""
" The first seven columns in the output are each one character wide:\n"
" First column: Says if item was added, deleted, or otherwise changed\n"
" ' ' no modifications\n"
@@ -16651,55 +17527,7 @@ msgid ""
" If the item is a tree conflict victim, an additional line is printed\n"
" after the item's status line, explaining the nature of the conflict.\n"
"\n"
-" The out-of-date information appears in the ninth column (with -u):\n"
-" '*' a newer revision exists on the server\n"
-" ' ' the working copy is up to date\n"
-"\n"
-" Remaining fields are variable width and delimited by spaces:\n"
-" The working revision (with -u or -v; '-' if the item is copied)\n"
-" The last committed revision and last committed author (with -v)\n"
-" The working copy path is always the final field, so it can\n"
-" include spaces.\n"
-"\n"
-" The presence of a question mark ('?') where a working revision, last\n"
-" committed revision, or last committed author was expected indicates\n"
-" that the information is unknown or irrelevant given the state of the\n"
-" item (for example, when the item is the result of a copy operation).\n"
-" The question mark serves as a visual placeholder to facilitate parsing.\n"
-"\n"
-" Example output:\n"
-" svn status wc\n"
-" M wc/bar.c\n"
-" A + wc/qax.c\n"
-"\n"
-" svn status -u wc\n"
-" M 965 wc/bar.c\n"
-" * 965 wc/foo.c\n"
-" A + - wc/qax.c\n"
-" Status against revision: 981\n"
-"\n"
-" svn status --show-updates --verbose wc\n"
-" M 965 938 kfogel wc/bar.c\n"
-" * 965 922 sussman wc/foo.c\n"
-" A + - 687 joe wc/qax.c\n"
-" 965 687 joe wc/zig.c\n"
-" Status against revision: 981\n"
-"\n"
-" svn status\n"
-" M wc/bar.c\n"
-" ! C wc/qaz.c\n"
-" > local missing, incoming edit upon update\n"
-" D wc/qax.c\n"
msgstr ""
-"Visa status för filer och kataloger i en arbetskopia.\n"
-"användning: status [SÖKVÄG...]\n"
-"\n"
-" Utan argument visas endast lokala ändringar (kräver inte nätverksåtkomst).\n"
-" Med -q skrivs endast en sammanfattning om lokalt ändrade objekt.\n"
-" Med -u visas dessutom revisioner i arbetskopian och information\n"
-" om ändringar på servern.\n"
-" Med -v visas fullständig revisionsinformation för varje objekt.\n"
-"\n"
" De sju första kolumnerna är vardera ett tecken breda:\n"
" Första kolumnen: Visar huruvida objektet har lagts till, raderats eller\n"
" ändrats\n"
@@ -16747,33 +17575,91 @@ msgstr ""
" Om objektet är föremål för en trädkonflikt kommer en extra rad om\n"
" konflikten skrivas efter objektets statusrad.\n"
"\n"
+
+#: ../svn/svn.c:1791
+msgid ""
+" The out-of-date information appears in the ninth column (with -u):\n"
+" '*' a newer revision exists on the server\n"
+" ' ' the working copy is up to date\n"
+"\n"
+msgstr ""
" Information om uppdateringar på servern visas i den nionde kolumnen\n"
" (om -u angivits):\n"
" \"*\" en nyare revision finns på servern\n"
" \" \" arbetskopian är aktuell\n"
"\n"
+
+#: ../svn/svn.c:1795
+msgid ""
+" Remaining fields are variable width and delimited by spaces:\n"
+" The working revision (with -u or -v; '-' if the item is copied)\n"
+" The last committed revision and last committed author (with -v)\n"
+" The working copy path is always the final field, so it can\n"
+" include spaces.\n"
+"\n"
+msgstr ""
" De återstående fälten har varierande längd och avgränsas med mellanslag:\n"
" Arbetskopians revision (med -u eller -v; \"-\" om objektet är kopierat)\n"
" Revision och författare för senaste arkivering (med -v)\n"
" Arbetskopians sökväg står alltid sist, så att den kan innehålla mellanslag.\n"
"\n"
+
+#: ../svn/svn.c:1801
+msgid ""
+" The presence of a question mark ('?') where a working revision, last\n"
+" committed revision, or last committed author was expected indicates\n"
+" that the information is unknown or irrelevant given the state of the\n"
+" item (for example, when the item is the result of a copy operation).\n"
+" The question mark serves as a visual placeholder to facilitate parsing.\n"
+"\n"
+msgstr ""
" Ett frågetecken (\"?\") i fältet för arbetskopians revision, eller\n"
" revision eller författare för senaste arkiveringen, betyder att\n"
" informationen är okänd eller utan betydelse i objektets nuvarande\n"
" tillstånd (till exempel när objektet kommer från en kopiering).\n"
" Frågetecknet fungerar som platshållare för att förenkla tolkning.\n"
"\n"
+
+#: ../svn/svn.c:1807
+msgid ""
+" Example output:\n"
+" svn status wc\n"
+" M wc/bar.c\n"
+" A + wc/qax.c\n"
+"\n"
+msgstr ""
" Exempel på vad som kan visas:\n"
" svn status ak\n"
" M ak/alfa.c\n"
" A + ak/gamma.c\n"
"\n"
+
+#: ../svn/svn.c:1812
+msgid ""
+" svn status -u wc\n"
+" M 965 wc/bar.c\n"
+" * 965 wc/foo.c\n"
+" A + - wc/qax.c\n"
+" Status against revision: 981\n"
+"\n"
+msgstr ""
" svn status -u ak\n"
" M 965 ak/alfa.c\n"
" * 965 ak/beta.c\n"
" A + - ak/gamma.c\n"
" Status gentemot revision: 981\n"
"\n"
+
+#: ../svn/svn.c:1818
+msgid ""
+" svn status --show-updates --verbose wc\n"
+" M 965 938 kfogel wc/bar.c\n"
+" * 965 922 sussman wc/foo.c\n"
+" A + - 687 joe wc/qax.c\n"
+" 965 687 joe wc/zig.c\n"
+" Status against revision: 981\n"
+"\n"
+msgstr ""
" svn status --show-updates --verbose ak\n"
" M 965 938 lindblom ak/alfa.c\n"
" * 965 922 bergstrand ak/beta.c\n"
@@ -16781,28 +17667,55 @@ msgstr ""
" 965 687 johan ak/jota.c\n"
" Status gentemot revision: 981\n"
"\n"
+
+#: ../svn/svn.c:1825
+msgid ""
+" svn status\n"
+" M wc/bar.c\n"
+" ! C wc/qaz.c\n"
+" > local missing, incoming edit upon update\n"
+" D wc/qax.c\n"
+msgstr ""
" svn status\n"
" M ak/alfa.c\n"
" ! C ak/delta.c\n"
" > lokal fil saknas, inkommande fil ändrad vid uppdatering\n"
" D ak/delta.c\n"
-#: ../svn/svn.c:1787
+#: ../svn/svn.c:1833
msgid "don't print unversioned items"
msgstr "visa inte icke versionshanterade objekt"
-#: ../svn/svn.c:1790
+#: ../svn/svn.c:1836
msgid ""
"Update the working copy to a different URL within the same repository.\n"
"usage: 1. switch URL[@PEGREV] [PATH]\n"
" 2. switch --relocate FROM-PREFIX TO-PREFIX [PATH...]\n"
"\n"
+msgstr ""
+"Uppdatera arbetskopian till en annan URL inom samma arkiv.\n"
+"användning: 1. switch URL[@FIXREV] [SÖKVÄG]\n"
+" 2. switch --relocate FRÅN-PREFIX TILL-PREFIX [SÖKVÄG...]\n"
+"\n"
+
+#: ../svn/svn.c:1840
+msgid ""
" 1. Update the working copy to mirror a new URL within the repository.\n"
" This behavior is similar to 'svn update', and is the way to\n"
" move a working copy to a branch or tag within the same repository.\n"
" If specified, PEGREV determines in which revision the target is first\n"
" looked up.\n"
"\n"
+msgstr ""
+" 1. Uppdatera arbetskopian så att den återspeglar en ny URL i arkivet.\n"
+" Detta liknar hur \"svn update\" beter sig och är det sätt på vilket\n"
+" man flyttar en arbetskopia till en gren eller ett märke inom ett\n"
+" och samma arkiv. Om FIXREV anges bestämmer den i vilken revision som\n"
+" målet ursprunglingen slås upp.\n"
+"\n"
+
+#: ../svn/svn.c:1846
+msgid ""
" If --force is used, unversioned obstructing paths in the working\n"
" copy do not automatically cause a failure if the switch attempts to\n"
" add the same path. If the obstructing path is the same type (file\n"
@@ -16814,35 +17727,7 @@ msgid ""
" modification to the working copy. All properties from the repository\n"
" are applied to the obstructing path.\n"
"\n"
-" Use the --set-depth option to set a new working copy depth on the\n"
-" targets of this operation.\n"
-"\n"
-" By default, Subversion will refuse to switch a working copy path to\n"
-" a new URL with which it shares no common version control ancestry.\n"
-" Use the '--ignore-ancestry' option to override this sanity check.\n"
-"\n"
-" 2. The '--relocate' option is deprecated. This syntax is equivalent to\n"
-" 'svn relocate FROM-PREFIX TO-PREFIX [PATH]'.\n"
-"\n"
-" See also 'svn help update' for a list of possible characters\n"
-" reporting the action taken.\n"
-"\n"
-" Examples:\n"
-" svn switch ^/branches/1.x-release\n"
-" svn switch --relocate http:// svn://\n"
-" svn switch --relocate http://www.example.com/repo/project \\\n"
-" svn://svn.example.com/repo/project\n"
msgstr ""
-"Uppdatera arbetskopian till en annan URL inom samma arkiv.\n"
-"användning: 1. switch URL[@FIXREV] [SÖKVÄG]\n"
-" 2. switch --relocate FRÅN-PREFIX TILL-PREFIX [SÖKVÄG...]\n"
-"\n"
-" 1. Uppdatera arbetskopian så att den återspeglar en ny URL i arkivet.\n"
-" Detta liknar hur \"svn update\" beter sig och är det sätt på vilket\n"
-" man flyttar en arbetskopia till en gren eller ett märke inom ett\n"
-" och samma arkiv. Om FIXREV anges bestämmer den i vilken revision som\n"
-" målet ursprunglingen slås upp.\n"
-"\n"
" Om --force används, orsakar icke versionshanterade sökvägar som är i\n"
" vägen inte automatiskt att operationen misslyckas vid försök att lägga\n"
" till dem. Om sökvägen som är i vägen är av samma typ (fil eller\n"
@@ -16854,75 +17739,129 @@ msgstr ""
" filer att betraktas som lokala ändringar i arbetskopian. Samtliga\n"
" egenskaper i arkivet läggs till för sökvägar som är i vägen.\n"
"\n"
+
+#: ../svn/svn.c:1857
+msgid ""
+" Use the --set-depth option to set a new working copy depth on the\n"
+" targets of this operation.\n"
+"\n"
+msgstr ""
" Använd väljaren --set-depth för att ange ett nytt arbetskopiedjup för\n"
" målet för denna handling.\n"
"\n"
+
+#: ../svn/svn.c:1860
+msgid ""
+" By default, Subversion will refuse to switch a working copy path to\n"
+" a new URL with which it shares no common version control ancestry.\n"
+" Use the '--ignore-ancestry' option to override this sanity check.\n"
+"\n"
+msgstr ""
" Normalt vägrar Subversion att växla en sökväg i en arbetskopia till\n"
" en ny URL utan gemensamt ursprung i versionshanteringen. Använd\n"
" flaggan \"--ignore-ancestry\" för att kringgå denna kontroll.\n"
"\n"
+
+#: ../svn/svn.c:1864
+msgid ""
+" 2. The '--relocate' option is deprecated. This syntax is equivalent to\n"
+" 'svn relocate FROM-PREFIX TO-PREFIX [PATH]'.\n"
+"\n"
+msgstr ""
" 2. Flaggan \"--relocate\" är föråldrad. Denna syntax motsvaras nu av\n"
" \"svn relocate FRÅN-PREFIX TILL-PREFIX [SÖKVÄG]\".\n"
"\n"
+
+#: ../svn/svn.c:1867
+msgid ""
+" See also 'svn help update' for a list of possible characters\n"
+" reporting the action taken.\n"
+"\n"
+msgstr ""
" Se även \"svn help update\" för en lista av möjliga tecken som indikerar\n"
" vad som gjorts.\n"
"\n"
+
+#: ../svn/svn.c:1870
+msgid ""
+" Examples:\n"
+" svn switch ^/branches/1.x-release\n"
+" svn switch --relocate http:// svn://\n"
+" svn switch --relocate http://www.example.com/repo/project \\\n"
+" svn://svn.example.com/repo/project\n"
+msgstr ""
" Exempel:\n"
" svn switch ^/branches/1.x-utgåva\n"
" svn switch --relocate http:// svn://\n"
" svn switch --relocate http://www.exempel.se/arkiv/projekt \\\n"
" svn://svn.exempel.se/arkiv/projekt\n"
-#: ../svn/svn.c:1833
+#: ../svn/svn.c:1880
msgid "allow switching to a node with no common ancestor"
msgstr "tillåt växling till en nod utan gemensamt ursprung"
-#: ../svn/svn.c:1835 ../svn/svn.c:1897
+#: ../svn/svn.c:1882 ../svn/svn.c:1946
msgid "handle unversioned obstructions as changes"
msgstr ""
"behandla ej versionshanterade blockeringar\n"
" som ändringar"
-#: ../svn/svn.c:1836
+#: ../svn/svn.c:1883
msgid "deprecated; use 'svn relocate'"
msgstr "föråldrat; använd \"svn relocate\""
-#: ../svn/svn.c:1840
+#: ../svn/svn.c:1887
msgid ""
"Unlock working copy paths or URLs.\n"
"usage: unlock TARGET...\n"
"\n"
-" Use --force to break a lock held by another user or working copy.\n"
msgstr ""
"Lås upp sökvägar i en arbetskopia eller URL:er.\n"
"användning: unlock MÅL...\n"
"\n"
-"Använd --force för att \"bryta upp\" ett lås som hålls av en annan användare\n"
-"eller arbetskopia.\n"
-#: ../svn/svn.c:1845
+#: ../svn/svn.c:1890
+msgid " Use --force to break a lock held by another user or working copy.\n"
+msgstr ""
+" Använd --force för att \"bryta upp\" ett lås som hålls av en annan användare\n"
+" eller arbetskopia.\n"
+
+#: ../svn/svn.c:1893
msgid "break locks"
msgstr "bryt upp lås"
-#: ../svn/svn.c:1848
+#: ../svn/svn.c:1896
msgid ""
"Bring changes from the repository into the working copy.\n"
"usage: update [PATH...]\n"
"\n"
+msgstr ""
+"Inför ändringar från arkivet i arbetskopian.\n"
+"användning: update [SÖKVÄG...]\n"
+"\n"
+
+#: ../svn/svn.c:1899
+msgid ""
" If no revision is given, bring working copy up-to-date with HEAD rev.\n"
" Else synchronize working copy to revision given by -r.\n"
"\n"
+msgstr ""
+" Om ingen revision anges, görs arbetskopian aktuell enligt huvudrevisionen.\n"
+" Annars synkroniseras arbetskopian med den revision som anges med -r.\n"
+"\n"
+
+#: ../svn/svn.c:1902
+msgid ""
" For each updated item a line will be printed with characters reporting\n"
" the action taken. These characters have the following meaning:\n"
"\n"
-" A Added\n"
-" D Deleted\n"
-" U Updated\n"
-" C Conflict\n"
-" G Merged\n"
-" E Existed\n"
-" R Replaced\n"
+msgstr ""
+" För varje uppdaterat objekt visas en rad vars första tecken indikerar\n"
+" vad som gjorts. Dessa tecken har följande innebörd:\n"
"\n"
+
+#: ../svn/svn.c:1913
+msgid ""
" Characters in the first column report about the item itself.\n"
" Characters in the second column report about properties of the item.\n"
" A 'B' in the third column signifies that the lock for the file has\n"
@@ -16931,6 +17870,17 @@ msgid ""
" the first and second columns indicate textual conflicts in files\n"
" and in property values, respectively.\n"
"\n"
+msgstr ""
+" Tecken i första kolumnen står för objektet i sig.\n"
+" Tecken i andra kolumnen står för objektets egenskaper.\n"
+" Ett \"B\" i tredje kolumnen visar att ett lås har blivit stulet eller brutet.\n"
+" Ett \"C\" i fjärde kolumnen innebär en trädkonflikt, medan ett \"C\" i\n"
+" första och andra kolumnerna innebär textkonflikter i filer respektive\n"
+" egenskaper.\n"
+"\n"
+
+#: ../svn/svn.c:1921
+msgid ""
" If --force is used, unversioned obstructing paths in the working\n"
" copy do not automatically cause a failure if the update attempts to\n"
" add the same path. If the obstructing path is the same type (file\n"
@@ -16943,39 +17893,7 @@ msgid ""
" are applied to the obstructing path. Obstructing paths are reported\n"
" in the first column with code 'E'.\n"
"\n"
-" If the specified update target is missing from the working copy but its\n"
-" immediate parent directory is present, checkout the target into its\n"
-" parent directory at the specified depth. If --parents is specified,\n"
-" create any missing parent directories of the target by checking them\n"
-" out, too, at depth=empty.\n"
-"\n"
-" Use the --set-depth option to set a new working copy depth on the\n"
-" targets of this operation.\n"
msgstr ""
-"Inför ändringar från arkivet i arbetskopian.\n"
-"användning: update [SÖKVÄG...]\n"
-"\n"
-" Om ingen revision anges, görs arbetskopian aktuell enligt huvudrevisionen.\n"
-" Annars synkroniseras arbetskopian med den revision som anges med -r.\n"
-"\n"
-" För varje uppdaterat objekt visas en rad vars första tecken indikerar\n"
-" vad som gjorts. Dessa tecken har följande innebörd:\n"
-"\n"
-" A Tillagt\n"
-" D Raderat\n"
-" U Uppdaterat\n"
-" C Konflikt\n"
-" G Sammanslaget\n"
-" E Fanns redan\n"
-" R Ersatt\n"
-"\n"
-" Tecken i första kolumnen står för objektet i sig.\n"
-" Tecken i andra kolumnen står för objektets egenskaper.\n"
-" Ett \"B\" i tredje kolumnen visar att ett lås har blivit stulet eller brutet.\n"
-" Ett \"C\" i fjärde kolumnen innebär en trädkonflikt, medan ett \"C\" i\n"
-" första och andra kolumnerna innebär textkonflikter i filer respektive\n"
-" egenskaper.\n"
-"\n"
" Om --force används, orsakar icke versionshanterade sökvägar som är i\n"
" vägen inte automatiskt att operationen misslyckas vid försök att lägga till\n"
" dem. Om sökvägen som är i vägen är av samma typ (fil eller katalog)\n"
@@ -16988,245 +17906,428 @@ msgstr ""
" sökvägar som är i vägen. Sökvägar som är i vägen rapporteras i första\n"
" kolumnen med ett \"E\".\n"
"\n"
+
+#: ../svn/svn.c:1933
+msgid ""
+" If the specified update target is missing from the working copy but its\n"
+" immediate parent directory is present, checkout the target into its\n"
+" parent directory at the specified depth. If --parents is specified,\n"
+" create any missing parent directories of the target by checking them\n"
+" out, too, at depth=empty.\n"
+"\n"
+msgstr ""
" Om det angivna uppdateringsmålet saknas i arbetskopian men dess\n"
" omedelbara föräldrakatalog finns, så kommer målet hämtas till dess\n"
" föräldrakatalog på det angivna djupet. Om flaggan --parents anges kommer\n"
" målets saknade föräldrakataloger skapas genom att även de hämtas, med\n"
" djupet \"empty\".\n"
"\n"
+
+#: ../svn/svn.c:1939
+msgid ""
+" Use the --set-depth option to set a new working copy depth on the\n"
+" targets of this operation.\n"
+msgstr ""
" Använd väljaren --set-depth för att ange ett nytt arbetskopiedjup för\n"
" målet för denna handling.\n"
-#: ../svn/svn.c:1900
+#: ../svn/svn.c:1949
msgid ""
"Upgrade the metadata storage format for a working copy.\n"
"usage: upgrade [WCPATH...]\n"
"\n"
-" Local modifications are preserved.\n"
msgstr ""
"Uppgradera lagringsformatet för en arbetskopia.\n"
"användning: upgrade [AKSÖKVÄG...]\n"
"\n"
-" Lokala ändringar behålls som de är.\n"
-#: ../svn/svn.c:1907
+#: ../svn/svn.c:1952
+msgid " Local modifications are preserved.\n"
+msgstr " Lokala ändringar behålls som de är.\n"
+
+#: ../svn/svn.c:1957
msgid ""
-"Put a local change aside, as if putting it on a shelf.\n"
-"usage: 1. x-shelve [--keep-local] NAME [PATH...]\n"
-" 2. x-shelve --delete NAME\n"
-" 3. x-shelve --list\n"
+"Show shelved changes as a diff.\n"
+"usage: x-shelf-diff SHELF [VERSION]\n"
"\n"
-" 1. Save the local change in the given PATHs to a patch file, and\n"
-" revert that change from the WC unless '--keep-local' is given.\n"
-" If a log message is given with '-m' or '-F', include it at the\n"
-" beginning of the patch file.\n"
-"\n"
-" 2. Delete the shelved change NAME.\n"
-" (A backup is kept, named with a '.bak' extension.)\n"
+msgstr ""
+"Visa ändringar på hyllan som en ändringsfil.\n"
+"användning: x-shelf-diff HYLLA [VERSION]\n"
"\n"
-" 3. List shelved changes. Include the first line of any log message\n"
-" and some details about the contents of the change, unless '-q' is\n"
-" given.\n"
+
+#: ../svn/svn.c:1960
+msgid ""
+" Show the changes in SHELF:VERSION (default: latest) as a diff.\n"
"\n"
-" The kinds of change you can shelve are those supported by 'svn diff'\n"
-" and 'svn patch'. The following are currently NOT supported:\n"
-" mergeinfo changes, copies, moves, mkdir, rmdir,\n"
-" 'binary' content, uncommittable states\n"
+msgstr ""
+" Visa ändringarna i HYLLA:VERSION (skönsvärde: senaste) som en\n"
+" ändringsfil.\n"
"\n"
-" To bring back a shelved change, use 'svn x-unshelve NAME'.\n"
+
+#: ../svn/svn.c:1962
+msgid ""
+" See also: 'svn diff --cl=svn:shelf:SHELF' which supports most options of\n"
+" 'svn diff'.\n"
"\n"
-" Shelved changes are stored in <WC>/.svn/shelves/\n"
+msgstr ""
+" Se även: \"svn diff --cl=svn:shelf:HYLLA\" som tillåter de flesta av\n"
+" väljarna för \"svn diff\".\n"
"\n"
+
+#: ../svn/svn.c:1965 ../svn/svn.c:1978 ../svn/svn.c:1991 ../svn/svn.c:2003
+#: ../svn/svn.c:2015 ../svn/svn.c:2030 ../svn/svn.c:2060 ../svn/svn.c:2093
+msgid ""
" The shelving feature is EXPERIMENTAL. This command is likely to change\n"
" in the next release, and there is no promise of backward compatibility.\n"
msgstr ""
-"Lägg en lokal ändring åt sidan, som om den lades på hyllan.\n"
-"användning: 1. x-shelve [--keep-local] NAMN [SÖKVÄG...]\n"
-" 2. x-shelve --delete NAMN\n"
-" 3. x-shelve --list\n"
+" Hyllfunktionen är EXPERIMENTELL. Detta kommando kommer troligen\n"
+" ändras i nästa utgåva, och ingen bakåtkompatibilitet utlovas.\n"
+
+#: ../svn/svn.c:1972
+msgid ""
+"Delete a shelf.\n"
+"usage: x-shelf-drop SHELF [PATH ...]\n"
+"\n"
+msgstr ""
+"Radera en hylla.\n"
+"användning: x-shelf-drop HYLLA [SÖKVÄG ...]\n"
"\n"
-" 1. Spara den lokala ändringen av givna SÖKVÄGar till en patchfil, och\n"
-" återställ denna ändring från arbetskopian såvida inte \"--keep-local\"\n"
-" anges. Om ett loggmeddelande ges med \"-m\" eller \"-F\", ta med det\n"
-" i början av patchfilen.\n"
+
+#: ../svn/svn.c:1975
+msgid ""
+" Delete the shelves named SHELF from the working copies containing PATH\n"
+" (default PATH is '.')\n"
"\n"
-" 2. Radera ändringen NAMN från hyllan.\n"
-" (En säkerhetskopia finns kvar med filslutet \".bak\".)\n"
+msgstr ""
+" Radera hyllorna med namn HYLLA från arbetskopiorna som innehåller SÖKVÄG\n"
+" (\".\" om ingen anges)\n"
"\n"
-" 3. Lista ändringar på hyllan. Den första raden av loggmeddelandet och\n"
-" vissa detaljer om ändringens innehåll tas med, såvida inte \"-q\"\n"
-" anges.\n"
+
+#: ../svn/svn.c:1984
+msgid ""
+"List shelves.\n"
+"usage: x-shelf-list [PATH ...]\n"
"\n"
-" Ändringar som kan läggas på hyllan är de som stöds av \"svn diff\" och\n"
-" \"svn patch\". Följande slag av ändringar stöds för närvarande INTE:\n"
-" mergeinfo-ändring, kopiering, flytt, mkdir, rmdir,\n"
-" \"binärt\" innehåll, ej arkiverbara tillstånd\n"
+msgstr ""
+"Lista hyllor.\n"
+"användning: x-shelf-list [SÖKVÄG ...]\n"
"\n"
-" För att återfå en ändring från hyllan, använd \"svn x-unshelve NAMN\".\n"
+
+#: ../svn/svn.c:1987
+msgid ""
+" List shelves for each working copy containing PATH (default is '.')\n"
+" Include the first line of any log message and some details about the\n"
+" contents of the shelf, unless '-q' is given.\n"
"\n"
-" Ändringar på hyllan lagras i <AK>/.svn/shelves/\n"
+msgstr ""
+" Lista hyllor för varje arbetskopia som innehåller SÖKVÄG (\".\" om ej angiven).\n"
+" Ta med den första raden av loggmeddelanden och en del detaljer om hyllans\n"
+" innehåll, om inte väljaren \"-q\" anges.\n"
"\n"
-" Hyllfunktionen är EXPERIMENTELL. Detta kommando kommer troligen\n"
-" ändras i nästa utgåva, och ingen bakåtkompatibilitet utlovas.\n"
-#: ../svn/svn.c:1943
+#: ../svn/svn.c:1998
msgid ""
-"Bring a shelved change back to a local change in the WC.\n"
-"usage: 1. x-unshelve [--keep-shelved] [NAME]\n"
-" 2. x-unshelve --list\n"
+"List which shelf affects each path.\n"
+"usage: x-shelf-list-by-paths [PATH...]\n"
"\n"
-" 1. Apply the shelved change NAME to the working copy.\n"
-" Delete the patch unless the '--keep-shelved' option is given.\n"
-" (A backup is kept, named with a '.bak' extension.)\n"
-" NAME defaults to the most recent shelved change.\n"
+msgstr ""
+"Lista hyllor som påverkar givna sökvägar.\n"
+"användning: x-shelf-list-by-paths [SÖKVÄG...]\n"
"\n"
-" 2. List shelved changes. Include the first line of any log message\n"
-" and some details about the contents of the change, unless '-q' is\n"
-" given.\n"
+
+#: ../svn/svn.c:2001
+msgid ""
+" List which shelf most recently affects each path below the given PATHs.\n"
"\n"
-" Any conflict between the change being unshelved and a change\n"
-" already in the WC is handled the same way as by 'svn patch',\n"
-" creating a 'reject' file.\n"
+msgstr ""
+" Lista hyllorna som senast påverkar varje sökväg under givna SÖKVÄGar.\n"
+"\n"
+
+#: ../svn/svn.c:2009
+msgid ""
+"Show the versions of a shelf.\n"
+"usage: x-shelf-log SHELF [PATH...]\n"
"\n"
-" The shelving feature is EXPERIMENTAL. This command is likely to change\n"
-" in the next release, and there is no promise of backward compatibility.\n"
msgstr ""
-"Hämta tillbaka en ändring från hyllan som en lokal ändring\n"
-" i arbetskopian.\n"
-"användning: 1. x-unshelve [--keep-shelved] [NAMN]\n"
-" 2. x-unshelve --list\n"
+"Visa en hyllas versioner.\n"
+"användning: x-shelf-log HYLLA [SÖKVÄG...]\n"
"\n"
-" 1. Anbringa ändringen NAME från hyllan på arbetskopian.\n"
-" Radera patchen såvida inte väljaren \"--keep-shelved\" anges.\n"
-" (En säkerhetskopia finns kvar med filslutet \".bak\".)\n"
+
+#: ../svn/svn.c:2012
+msgid ""
+" Show all versions of SHELF for each working copy containing PATH (the\n"
+" default PATH is '.').\n"
"\n"
-" 2. Lista ändringar på hyllan. Den första raden av loggmeddelandet och\n"
-" vissa detaler om ändringens innehåll tas med, såvida inte \"-q\"\n"
-" anges.\n"
+msgstr ""
+" Visa alla versioner på HYLLA för varje arbetskopia som innehåller SÖKVÄG\n"
+" (\".\" om ingen anges).\n"
"\n"
-" Konflikter mellan ändringen som tas från hyllan och en ändring som\n"
-" redan finns i arbetskopian hanteras på samma sätt som av \"svn patch\",\n"
-" och orsakar en \"reject\"-fil.\n"
+
+#: ../svn/svn.c:2022
+msgid ""
+"Copy local changes onto a new version of a shelf.\n"
+"usage: x-shelf-save SHELF [PATH...]\n"
+"\n"
+msgstr ""
+"Kopiera lokala ändringar till en ny version av en hylla.\n"
+"användning: x-shelf-save HYLLA [SÖKVÄG...]\n"
"\n"
-" Hyllfunktionen är EXPERIMENTELL. Detta kommando kommer troligen\n"
-" ändras i nästa utgåva, och ingen bakåtkompatibilitet utlovas.\n"
-#: ../svn/svn.c:1966
+#: ../svn/svn.c:2025
msgid ""
-"List shelved changes.\n"
-"usage: x-shelves\n"
+" Save local changes in the given PATHs as a new version of SHELF.\n"
+" The shelf's log message can be set with -m, -F, etc.\n"
"\n"
-" The shelving feature is EXPERIMENTAL. This command is likely to change\n"
-" in the next release, and there is no promise of backward compatibility.\n"
msgstr ""
-"Lista ändringar på hyllan.\n"
-"användning: x-shelves\n"
+" Spara lokala ändringar i givna SÖKVÄGar som en ny version av HYLLA.\n"
+" Hyllans loggmeddelande kan anges med -m, -F, osv.\n"
+"\n"
+
+#: ../svn/svn.c:2028
+msgid ""
+" The same as 'svn shelve --keep-local'.\n"
+"\n"
+msgstr ""
+" Samma som \"svn shelve --keep-local\".\n"
+"\n"
+
+#: ../svn/svn.c:2040
+msgid ""
+"Move local changes onto a shelf.\n"
+"usage: x-shelve [--keep-local] SHELF [PATH...]\n"
+"\n"
+msgstr ""
+"Flytta lokala ändringar till en hylla.\n"
+"användning: x-shelve [--keep-local] HYLLA [SÖKVÄG...]\n"
+"\n"
+
+#: ../svn/svn.c:2043
+msgid ""
+" Save the local changes in the given PATHs to a new or existing SHELF.\n"
+" Revert those changes from the WC unless '--keep-local' is given.\n"
+" The shelf's log message can be set with -m, -F, etc.\n"
+"\n"
+msgstr ""
+" Spara lokala ändringar i angivna SÖKVÄGar i en ny eller befintlig HYLLA.\n"
+" Återställ dessa ändringar från arbetskopian om inte \"--keep-local\" anges.\n"
+" Hyllans loggmeddelande kan anges med -m, -F, osv.\n"
+"\n"
+
+#: ../svn/svn.c:2047
+msgid ""
+" 'svn shelve --keep-local' is the same as 'svn shelf-save'.\n"
+"\n"
+msgstr ""
+" \"svn shelve --keep-local\" är samma som \"svn shelf-save\".\n"
+"\n"
+
+#: ../svn/svn.c:2049
+msgid ""
+" The kinds of change you can shelve are committable changes to files and\n"
+" properties, except the following kinds which are not yet supported:\n"
+" * copies and moves\n"
+" * mkdir and rmdir\n"
+" Uncommittable states such as conflicts, unversioned and missing cannot\n"
+" be shelved.\n"
+"\n"
+msgstr ""
+" Ändringar som kan läggas på hyllan är arkiveringsbara ändringar till filer\n"
+" och egenskaper, förutom följande som inte stöds än:\n"
+" * kopieringar och flyttningar\n"
+" * mkdir och rmdir\n"
+" Ej arkiveringsbara tillstånd som konflikter, ej versionshanterade eller\n"
+" saknade filer kan inte läggas på hyllan.\n"
+"\n"
+
+#: ../svn/svn.c:2056
+msgid ""
+" To bring back shelved changes, use 'svn unshelve SHELF'.\n"
+"\n"
+msgstr " För att återfå ändringar från hyllan, använd \"svn unshelve HYLLA\".\n\n"
+
+#: ../svn/svn.c:2058
+msgid ""
+" Shelves are stored in <WC>/.svn/shelves/\n"
+"\n"
+msgstr ""
+" Hyllor lagras i <ARBETSKOPIA>/.svn/shelves/\n"
+"\n"
+
+#: ../svn/svn.c:2069
+msgid ""
+"Copy shelved changes back into the WC.\n"
+"usage: x-unshelve [--drop] [SHELF [VERSION]]\n"
+"\n"
+msgstr ""
+"Kopiera tillbaka ändringar från hyllan till arbetskopian.\n"
+"användning: x-unshelve [--drop] [HYLLA [VERSION]]\n"
+"\n"
+
+#: ../svn/svn.c:2072
+msgid ""
+" Apply the changes stored in SHELF to the working copy.\n"
+" SHELF defaults to the newest shelf.\n"
+"\n"
+msgstr ""
+" Anbringa ändringar från HYLLA till arbetskopian.\n"
+" Den nyaste hyllan används om HYLLA inte anges.\n"
+"\n"
+
+#: ../svn/svn.c:2075
+msgid ""
+" Apply the newest version of the shelf, by default. If VERSION is\n"
+" specified, apply that version and discard all versions newer than that.\n"
+" In any case, retain the unshelved version and versions older than that\n"
+" (unless --drop is specified).\n"
+"\n"
+msgstr ""
+" Anbringa normalt ändringar från den nyaste versionen av hyllan. Om VERSION\n"
+" anges, använd den versionen och släng bort alla nyare versioner.\n"
+" I båda fallen behålls versionen som användes från hyllan och alla äldre\n"
+" versioner (såvida inte --drop anges).\n"
+"\n"
+
+#: ../svn/svn.c:2080
+msgid ""
+" With --drop, delete the entire shelf (like 'svn shelf-drop') after\n"
+" successfully unshelving with no conflicts.\n"
+"\n"
+msgstr ""
+" Med --drop, radera hela hyllan (som med \"svn shelf-drop\") efter att ha\n"
+" lyckats anbringa ändringen utan konflikter.\n"
+"\n"
+
+#: ../svn/svn.c:2083
+msgid ""
+" The working files involved should be in a clean, unmodified state\n"
+" before using this command. To roll back to an older version of the\n"
+" shelf, first ensure any current working changes are removed, such as\n"
+" by shelving or reverting them, and then unshelve the desired version.\n"
+"\n"
+msgstr ""
+" Filerna i arbetskopian bör vara i ett rent och oförändrat tillstånd innan\n"
+" detta kommando används. För att återgå till en äldre version av hyllan,\n"
+" se först till att eventuella ändringar i arbetskopian tas bort, genom att\n"
+" återställa dem eller lägga dem på hyllan, och återställ därefter den\n"
+" önskade versionen från hyllan.\n"
+"\n"
+
+#: ../svn/svn.c:2088
+msgid ""
+" Unshelve normally refuses to apply any changes if any path involved is\n"
+" already modified (or has any other abnormal status) in the WC. With\n"
+" --force, it does not check and may error out and/or produce partial or\n"
+" unexpected results.\n"
+"\n"
+msgstr ""
+" Kopiering från hyllan kräver vanligen att ingen inblandad sökväg redan har\n"
+" ändrats (eller är i annat onormalt tillstånd) i arbetskopian. Med --force\n"
+" tas denna kontroll bort och kommandot kan gå fel och/eller ge upphov till\n"
+" halvfärdiga eller oväntade resultat.\n"
"\n"
-" Hyllfunktionen är EXPERIMENTELL. Detta kommando kommer troligen\n"
-" ändras i nästa utgåva, och ingen bakåtkompatibilitet utlovas.\n"
-#: ../svn/svn.c:2146 ../svnbench/svnbench.c:468 ../svnlook/svnlook.c:2556
+#: ../svn/svn.c:2270 ../svnbench/svnbench.c:474 ../svnlook/svnlook.c:2590
msgid "Non-numeric limit argument given"
msgstr "Argumentet till limit-flaggan är inget tal"
-#: ../svn/svn.c:2151 ../svnbench/svnbench.c:473 ../svnlook/svnlook.c:2561
+#: ../svn/svn.c:2275 ../svnbench/svnbench.c:479 ../svnlook/svnlook.c:2595
msgid "Argument to --limit must be positive"
msgstr "Argumentet till --limit måste vara positivt"
-#: ../svn/svn.c:2171 ../svn/svn.c:2449
+#: ../svn/svn.c:2295 ../svn/svn.c:2570
msgid "Can't specify -c with --old"
msgstr "Kan inte ange -c med --old"
-#: ../svn/svn.c:2201 ../svnbench/svnbench.c:509
+#: ../svn/svn.c:2325 ../svnbench/svnbench.c:515
#, c-format
msgid "Negative number in range (%s) not supported with -c"
msgstr "Negativt tal i område (%s) stöds ej med -c"
-#: ../svn/svn.c:2213 ../svnbench/svnbench.c:521
+#: ../svn/svn.c:2337 ../svnbench/svnbench.c:527
#, c-format
msgid "Non-numeric change argument (%s) given to -c"
msgstr "Argumentet till flaggan -c (%s) är inget tal"
-#: ../svn/svn.c:2220 ../svnbench/svnbench.c:528
+#: ../svn/svn.c:2344 ../svnbench/svnbench.c:534
msgid "There is no change 0"
msgstr "Ändring 0 finns inte"
-#: ../svn/svn.c:2261 ../svnadmin/svnadmin.c:2865 ../svnbench/svnbench.c:570
-#: ../svnfsfs/svnfsfs.c:291 ../svnrdump/svnrdump.c:855
-#: ../svnsync/svnsync.c:2141
+#: ../svn/svn.c:2385 ../svnadmin/svnadmin.c:2932 ../svnbench/svnbench.c:576
+#: ../svnfsfs/svnfsfs.c:303 ../svnrdump/svnrdump.c:861
+#: ../svnsync/svnsync.c:2146
#, c-format
msgid "Syntax error in revision argument '%s'"
msgstr "Syntaxfel i revisionsargumentet \"%s\""
-#: ../svn/svn.c:2327 ../svn/svn.c:2344 ../svnbench/svnbench.c:609
+#: ../svn/svn.c:2448 ../svn/svn.c:2465 ../svnbench/svnbench.c:615
#, c-format
msgid "Error converting depth from locale to UTF-8"
msgstr "Fel vid konvertering av djupet från lokal kodning till UTF-8"
-#: ../svn/svn.c:2334 ../svnbench/svnbench.c:616
+#: ../svn/svn.c:2455 ../svnbench/svnbench.c:622
#, c-format
msgid "'%s' is not a valid depth; try 'empty', 'files', 'immediates', or 'infinity'"
msgstr "\"%s\" är inget giltigt djup; försök med \"empty\", \"files\", \"immediates\" eller \"infinity\""
-#: ../svn/svn.c:2351
+#: ../svn/svn.c:2472
#, c-format
msgid "'%s' is not a valid depth; try 'exclude', 'empty', 'files', 'immediates', or 'infinity'"
msgstr "\"%s\" är inget giltigt djup; försök med \"exclude\", \"empty\", \"files\", \"immediates\" eller \"infinity\""
-#: ../svn/svn.c:2486
+#: ../svn/svn.c:2607
#, c-format
msgid "Syntax error in native-eol argument '%s'"
msgstr "Syntaxfel i native-eol-argumentet \"%s\""
-#: ../svn/svn.c:2505
+#: ../svn/svn.c:2628
msgid "Changelist names must not be empty"
msgstr "Ändringslistor får inte ha tomma namn"
-#: ../svn/svn.c:2539
+#: ../svn/svn.c:2661
#, c-format
msgid "'%s' is not a valid --accept value"
msgstr "\"%s\" är inte ett giltigt värde för --accept"
-#: ../svn/svn.c:2547
+#: ../svn/svn.c:2669
#, c-format
msgid "'%s' is not a valid --show-revs value"
msgstr "\"%s\" är inte ett giltigt värde för --show-revs"
-#: ../svn/svn.c:2563
+#: ../svn/svn.c:2685
#, c-format
msgid "Invalid strip count '%s'"
msgstr "Ogiltigt antal att ta bort: \"%s\""
-#: ../svn/svn.c:2569
+#: ../svn/svn.c:2691
msgid "Argument to --strip must be positive"
msgstr "Argumentet till --strip måste vara positivt"
-#: ../svn/svn.c:2660 ../svnmucc/svnmucc.c:666 ../svnrdump/svnrdump.c:934
-#: ../svnsync/svnsync.c:2199
+#: ../svn/svn.c:2785 ../svnmucc/svnmucc.c:666 ../svnrdump/svnrdump.c:940
+#: ../svnsync/svnsync.c:2204
msgid "--non-interactive and --force-interactive are mutually exclusive"
msgstr "--non-interactive och --force-interactive kan inte användas samtidigt"
-#: ../svn/svn.c:2713 ../svnbench/svnbench.c:750
-#: ../svndumpfilter/svndumpfilter.c:1425 ../svnlook/svnlook.c:2660
+#: ../svn/svn.c:2838 ../svnbench/svnbench.c:756
+#: ../svndumpfilter/svndumpfilter.c:1428 ../svnlook/svnlook.c:2694
#, c-format
msgid "Subcommand argument required\n"
msgstr "Argument för underkommando krävs\n"
-#: ../svn/svn.c:2731 ../svnadmin/svnadmin.c:3091 ../svnbench/svnbench.c:768
-#: ../svndumpfilter/svndumpfilter.c:1442 ../svnfsfs/svnfsfs.c:367
-#: ../svnlook/svnlook.c:2677 ../svnrdump/svnrdump.c:978
+#: ../svn/svn.c:2856 ../svnadmin/svnadmin.c:3158 ../svnbench/svnbench.c:774
+#: ../svndumpfilter/svndumpfilter.c:1445 ../svnfsfs/svnfsfs.c:379
+#: ../svnlook/svnlook.c:2711 ../svnrdump/svnrdump.c:984
#, c-format
msgid "Unknown subcommand: '%s'\n"
msgstr "Okänt underkommando: \"%s\"\n"
-#: ../svn/svn.c:2740
+#: ../svn/svn.c:2865
#, c-format
msgid "Undo is done using either the 'svn revert' or the 'svn merge' command.\n"
msgstr ""
"Återgång till tidigare tillstånd görs med antingen \"svn revert\"\n"
"eller \"svn merge\".\n"
-#: ../svn/svn.c:2776
+#: ../svn/svn.c:2901
#, c-format
msgid ""
"Subcommand '%s' doesn't accept option '%s'\n"
@@ -17235,99 +18336,99 @@ msgstr ""
"Underkommandot \"%s\" tillåter inte flaggan \"%s\"\n"
"Skriv \"svn help %s\" för användning.\n"
-#: ../svn/svn.c:2791 ../svnbench/svnbench.c:816
+#: ../svn/svn.c:2916 ../svnbench/svnbench.c:822
msgid "Multiple revision arguments encountered; can't specify -c twice, or both -c and -r"
msgstr "Flera revisionsargument påträffades; -c kan inte anges flera gånger; -c och -r kan inte användas samtidigt"
-#: ../svn/svn.c:2802
+#: ../svn/svn.c:2927
msgid "--depth and --set-depth are mutually exclusive"
msgstr "--depth och --set-depth kan inte användas samtidigt"
-#: ../svn/svn.c:2811 ../svnbench/svnbench.c:827
+#: ../svn/svn.c:2936 ../svnbench/svnbench.c:833
msgid "--with-all-revprops and --with-no-revprops are mutually exclusive"
msgstr "--with-all-revprops och --with-no-revprops kan inte användas samtidigt"
-#: ../svn/svn.c:2820 ../svnbench/svnbench.c:836
+#: ../svn/svn.c:2945 ../svnbench/svnbench.c:842
msgid "--with-revprop and --with-no-revprops are mutually exclusive"
msgstr "--with-revprop och --with-no-revprops kan inte användas samtidigt"
-#: ../svn/svn.c:2850
+#: ../svn/svn.c:2975
msgid "--message (-m) and --file (-F) are mutually exclusive"
msgstr "--message (-m) och --file (-F) kan inte användas samtidigt"
-#: ../svn/svn.c:2863 ../svnbench/svnbench.c:849 ../svnmucc/svnmucc.c:678
-#: ../svnrdump/svnrdump.c:1037
+#: ../svn/svn.c:2988 ../svnbench/svnbench.c:855 ../svnmucc/svnmucc.c:678
+#: ../svnrdump/svnrdump.c:1043
msgid "--trust-server-cert-failures requires --non-interactive"
msgstr "--trust-server-cert-failures kräver --non-interactive"
-#: ../svn/svn.c:2871 ../svnbench/svnbench.c:857 ../svnmucc/svnmucc.c:686
-#: ../svnrdump/svnrdump.c:1044
+#: ../svn/svn.c:2996 ../svnbench/svnbench.c:863 ../svnmucc/svnmucc.c:686
+#: ../svnrdump/svnrdump.c:1050
msgid "--password-from-stdin requires --non-interactive"
msgstr "--password-from-stdin kräver --non-interactive"
-#: ../svn/svn.c:2880
+#: ../svn/svn.c:3005
msgid "--diff-cmd and --internal-diff are mutually exclusive"
msgstr "--diff-cmd och --internal-diff kan inte användas samtidigt"
-#: ../svn/svn.c:2922
+#: ../svn/svn.c:3047
msgid "--relocate and --depth are mutually exclusive"
msgstr "--relocate och --depth kan inte användas samtidigt"
-#: ../svn/svn.c:2929
+#: ../svn/svn.c:3054
msgid "--relocate and --non-recursive (-N) are mutually exclusive"
msgstr "--relocate och --non-recursive (-N) kan inte användas samtidigt"
-#: ../svn/svn.c:3050
+#: ../svn/svn.c:3177
msgid "Log message file is a versioned file; use '--force-log' to override"
msgstr "Filen med loggmeddelandet är versionshanterad; använd --force-log för att kringgå"
-#: ../svn/svn.c:3057
+#: ../svn/svn.c:3184
msgid "Lock comment file is a versioned file; use '--force-log' to override"
msgstr "Filen med låskommentaren är versionshanterad; använd --force-log för att kringgå"
-#: ../svn/svn.c:3077
+#: ../svn/svn.c:3204
msgid "The log message is a pathname (was -F intended?); use '--force-log' to override"
msgstr "Loggmeddelandet är en sökväg (avsågs -F?); använd --force-log för att kringgå"
-#: ../svn/svn.c:3084
+#: ../svn/svn.c:3211
msgid "The lock comment is a pathname (was -F intended?); use '--force-log' to override"
msgstr "Låskommentaren är en sökväg (avsågs -F?); använd --force-log för att kringgå"
-#: ../svn/svn.c:3107
+#: ../svn/svn.c:3234
msgid "--auto-props and --no-auto-props are mutually exclusive"
msgstr "--auto-props och --no-auto-props kan inte användas samtidigt"
-#: ../svn/svn.c:3200 ../svn/svn.c:3207
+#: ../svn/svn.c:3327 ../svn/svn.c:3334
#, c-format
msgid "--accept=%s incompatible with --non-interactive"
msgstr "--accept=%s kan inte användas med --non-interactive"
-#: ../svn/svn.c:3256
+#: ../svn/svn.c:3383
#, c-format
msgid "Try 'svn help %s' for more information"
msgstr "Skriv \"svn help %s\" för vidare information"
-#: ../svn/svn.c:3262 ../svnbench/svnbench.c:1000
+#: ../svn/svn.c:3389 ../svnbench/svnbench.c:1006
msgid "Please see the 'svn upgrade' command"
msgstr "Se kommandot \"svn upgrade\""
-#: ../svn/svn.c:3268 ../svnmucc/svnmucc.c:971 ../svnrdump/svnrdump.c:1137
+#: ../svn/svn.c:3395 ../svnmucc/svnmucc.c:971 ../svnrdump/svnrdump.c:1143
msgid "Authentication failed and interactive prompting is disabled; see the --force-interactive option"
msgstr "Autentisering misslyckades och interaktiva frågor är avstängda; se flaggan --force-interactive"
-#: ../svn/svn.c:3273
+#: ../svn/svn.c:3400
msgid "Reading file from standard input because of -F option; this can interfere with interactive prompting"
msgstr "Läser filen från standardinmatningen eftersom flaggan -F angavs; detta kan påverka interaktiva frågor"
-#: ../svn/svn.c:3284 ../svnbench/svnbench.c:1008
+#: ../svn/svn.c:3411 ../svnbench/svnbench.c:1014
msgid "Run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)"
msgstr "Kör \"svn cleanup\" för att ta bort lås (skriv \"svn help cleanup\" för mer information)"
-#: ../svn/svn.c:3291
+#: ../svn/svn.c:3418
msgid "Another process is blocking the working copy database, or the underlying filesystem does not support file locking; if the working copy is on a network filesystem, make sure file locking has been enabled on the file server"
msgstr "En annan process blockerar arbetskopians databas, eller så stöder det underliggande filsystemet inte fillåsning; om arbetskopian ligger på ett nätverksfilsystem, se till att filservern har fillåsning påslagen"
-#: ../svn/svn.c:3304
+#: ../svn/svn.c:3431
msgid "When using svn+ssh:// URLs, keep in mind that the --username and --password options are ignored because authentication is performed by SSH, not Subversion"
msgstr "När URL:er på formen svn+ssh:// används, kom ihåg att flaggorna --username och --password ej beaktas eftersom autentisering görs av SSH, inte av Subversion"
@@ -17467,7 +18568,7 @@ msgid "svn: warning: '%s' is a binary mime-type but file '%s' looks like text; d
msgstr "svn: varning: \"%s\" är en binär MIME-typ men filen \"%s\" ser ut som text; \"diff\", \"merge\", \"blame\" och andra kommandon kommer sluta fungera med denna fil\n"
#: ../svnadmin/svnadmin.c:177 ../svnfsfs/svnfsfs.c:101
-#: ../svnrdump/svnrdump.c:106
+#: ../svnrdump/svnrdump.c:112
msgid "specify revision number ARG (or X:Y range)"
msgstr "ange revisionsnummer ARG (eller ett område X:Y)"
@@ -17604,7 +18705,7 @@ msgstr ""
"använd ett arkivformat kompatibelt med\n"
" Subversion-version ARG (\"1.5.5\", \"1.7\", osv)"
-#: ../svnadmin/svnadmin.c:264 ../svnadmin/svnadmin.c:382
+#: ../svnadmin/svnadmin.c:264 ../svnadmin/svnadmin.c:402
msgid "read repository paths from file ARG"
msgstr "läs arkivsökvägar från filen ARG"
@@ -17670,76 +18771,106 @@ msgstr ""
msgid ""
"usage: svnadmin crashtest REPOS_PATH\n"
"\n"
-"Open the repository at REPOS_PATH, then abort, thus simulating\n"
-"a process that crashes while holding an open repository handle.\n"
msgstr ""
"användning: svnadmin crashtest ARKIVSÖKVÄG\n"
"\n"
+
+#: ../svnadmin/svnadmin.c:309
+msgid ""
+"Open the repository at REPOS_PATH, then abort, thus simulating\n"
+"a process that crashes while holding an open repository handle.\n"
+msgstr ""
"Öppna arkivet under ARKIVSÖKVÄG och avbryt därefter, vilket simulerar en\n"
"process som kraschar då den har ett arkiv öppet.\n"
-#: ../svnadmin/svnadmin.c:313
+#: ../svnadmin/svnadmin.c:315
msgid ""
"usage: svnadmin create REPOS_PATH\n"
"\n"
-"Create a new, empty repository at REPOS_PATH.\n"
msgstr ""
"användning: svnadmin create ARKIVSÖKVÄG\n"
"\n"
-"Skapa ett nytt tomt arkiv under sökvägen ARKIVSÖKVÄG.\n"
-#: ../svnadmin/svnadmin.c:322
+#: ../svnadmin/svnadmin.c:317
+msgid "Create a new, empty repository at REPOS_PATH.\n"
+msgstr "Skapa ett nytt tomt arkiv under sökvägen ARKIVSÖKVÄG.\n"
+
+#: ../svnadmin/svnadmin.c:326
msgid ""
"usage: 1. svnadmin delrevprop REPOS_PATH -r REVISION NAME\n"
" 2. svnadmin delrevprop REPOS_PATH -t TXN NAME\n"
"\n"
+msgstr ""
+"användning: 1. svnadmin delrevprop ARKIVSÖKVÄG -r REVISION NAMN\n"
+" 2. svnadmin delrevprop ARKIVSÖKVÄG -t TRANS NAMN\n"
+"\n"
+
+#: ../svnadmin/svnadmin.c:329
+msgid ""
"1. Delete the property NAME on revision REVISION.\n"
"\n"
+msgstr ""
+"1. Radera egenskapen NAMN i revision REVISION.\n"
+"\n"
+
+#: ../svnadmin/svnadmin.c:331 ../svnadmin/svnadmin.c:556
+msgid ""
"Use --use-pre-revprop-change-hook/--use-post-revprop-change-hook to\n"
"trigger the revision property-related hooks (for example, if you want\n"
"an email notification sent from your post-revprop-change hook).\n"
"\n"
-"NOTE: Revision properties are not versioned, so this command will\n"
-"irreversibly destroy the previous value of the property.\n"
-"\n"
-"2. Delete the property NAME on transaction TXN.\n"
msgstr ""
-"användning: 1. svnadmin delrevprop ARKIVSÖKVÄG -r REVISION NAMN\n"
-" 2. svnadmin delrevprop ARKIVSÖKVÄG -t TRANS NAMN\n"
-"\n"
-"1. Radera egenskapen NAMN i revision REVISION.\n"
-"\n"
"Använd --use-pre-revprop-change-hook/--use-post-revprop-change-hook för\n"
"att starta krokskripten för revisionsegenskaper (till exempel\n"
"för att få e-post skickad från krokskriptet post-revprop-change).\n"
"\n"
+
+#: ../svnadmin/svnadmin.c:335
+msgid ""
+"NOTE: Revision properties are not versioned, so this command will\n"
+"irreversibly destroy the previous value of the property.\n"
+"\n"
+msgstr ""
"Observera: Historik sparas ej för revisionsegenskaper, så detta kommando\n"
"kastar bort egenskapens tidigare värde.\n"
"\n"
-"2. Radera egenskapen NAMN i transaktionen TRANS.\n"
-#: ../svnadmin/svnadmin.c:335
+#: ../svnadmin/svnadmin.c:338
+msgid "2. Delete the property NAME on transaction TXN.\n"
+msgstr "2. Radera egenskapen NAMN i transaktionen TRANS.\n"
+
+#: ../svnadmin/svnadmin.c:344
msgid ""
"usage: svnadmin deltify [-r LOWER[:UPPER]] REPOS_PATH\n"
"\n"
+msgstr ""
+"användning: svnadmin deltify [-r BÖRJAN[:SLUT]] ARKIVSÖKVÄG\n"
+"\n"
+
+#: ../svnadmin/svnadmin.c:346
+msgid ""
"Run over the requested revision range, performing predecessor delti-\n"
"fication on the paths changed in those revisions. Deltification in\n"
"essence compresses the repository by only storing the differences or\n"
"delta from the preceding revision. If no revisions are specified,\n"
"this will simply deltify the HEAD revision.\n"
msgstr ""
-"användning: svnadmin deltify [-r BÖRJAN[:SLUT]] ARKIVSÖKVÄG\n"
-"\n"
"Gå igenom det angivna revisionsområdet och utför föregångardeltifiering av\n"
"de sökvägar som ändrats i dessa revisioner. I stora drag komprimerar\n"
"deltifieringen arkivet genom att endast lagra skillnader eller deltan\n"
"jämfört med föregående revision. Om inga revisioner anges, deltifieras\n"
"huvudrevisionen.\n"
-#: ../svnadmin/svnadmin.c:344
+#: ../svnadmin/svnadmin.c:355
msgid ""
"usage: svnadmin dump REPOS_PATH [-r LOWER[:UPPER] [--incremental]]\n"
"\n"
+msgstr ""
+"användning: svnadmin dump ARKIVSÖKVÄG [-r BÖRJAN[:SLUT] [--incremental]]\n"
+"\n"
+
+#: ../svnadmin/svnadmin.c:357
+msgid ""
"Dump the contents of filesystem to stdout in a 'dumpfile'\n"
"portable format, sending feedback to stderr. Dump revisions\n"
"LOWER rev through UPPER rev. If no revisions are given, dump all\n"
@@ -17750,12 +18881,7 @@ msgid ""
"case, the second and subsequent revisions, if any, describe only paths\n"
"changed in those revisions.)\n"
"\n"
-"Using --exclude or --include gives results equivalent to authz-based\n"
-"path exclusions. In particular, when the source of a copy is\n"
-"excluded, the copy is transformed into an add (unlike in 'svndumpfilter').\n"
msgstr ""
-"användning: svnadmin dump ARKIVSÖKVÄG [-r BÖRJAN[:SLUT] [--incremental]]\n"
-"\n"
"Skriv innehållet i filsystemet till standard ut i ett portabelt\n"
"\"dumpfile\"-format med återkoppling till standard fel. Revisionerna BÖRJAN\n"
"till och med SLUT skrivs ut. Om inga revisioner anges, skrivs samtliga\n"
@@ -17766,120 +18892,169 @@ msgstr ""
"revisioner därefter bara ta med sökvägarna som ändrades i varje enskild\n"
"revision.)\n"
"\n"
+
+#: ../svnadmin/svnadmin.c:367
+msgid ""
+"Using --exclude or --include gives results equivalent to authz-based\n"
+"path exclusions. In particular, when the source of a copy is\n"
+"excluded, the copy is transformed into an add (unlike in 'svndumpfilter').\n"
+msgstr ""
"Väljarna --exclude och --include ger resultat som motsvarar authz-baserade\n"
"sökvägsuteslutningar. I synnerhet, när kopieringskällan är utesluten\n"
"omvandlas kopian till ett tillägg (till skillnad från \"svndumpfilter\").\n"
-#: ../svnadmin/svnadmin.c:360 ../svnadmin/svnadmin.c:370
+#: ../svnadmin/svnadmin.c:373 ../svnadmin/svnadmin.c:385
msgid "write to file ARG instead of stdout"
msgstr "skriv till filen ARG istället för standard ut"
-#: ../svnadmin/svnadmin.c:363
+#: ../svnadmin/svnadmin.c:376
msgid ""
"usage: svnadmin dump-revprops REPOS_PATH [-r LOWER[:UPPER]]\n"
"\n"
+msgstr ""
+"användning: svnadmin dump-revprops ARKIVSÖKVÄG [-r BÖRJAN[:SLUT]]\n"
+"\n"
+
+#: ../svnadmin/svnadmin.c:378
+msgid ""
"Dump the revision properties of filesystem to stdout in a 'dumpfile'\n"
"portable format, sending feedback to stderr. Dump revisions\n"
"LOWER rev through UPPER rev. If no revisions are given, dump the\n"
"properties for all revisions. If only LOWER is given, dump the\n"
"properties for that one revision.\n"
msgstr ""
-"användning: svnadmin dump ARKIVSÖKVÄG [-r BÖRJAN[:SLUT] [--incremental]]\n"
-"\n"
-"Skriv innehållet i filsystemet till standard ut i ett portabelt\n"
-"\"dumpfile\"-format med återkoppling till standard fel. Revisionerna BÖRJAN\n"
-"till och med SLUT skrivs ut. Om inga revisioner anges skrivs samtliga\n"
-"revisionsträd. Om endast BÖRJAN anges, skrivs det revisionsträdet.\n"
+"Skriv revisionsegenskaperna i ett filsystem till standard ut i ett\n"
+"portabelt \"dumpfile\"-format med återkoppling till standard fel.\n"
+"Revisionerna BÖRJAN till och med SLUT skrivs ut. Om inga revisioner\n"
+"anges skrivs egenskaperna för samtliga revisioner. Om endast BÖRJAN\n"
+"anges kommer bara egenskaperna för den enda revisionen skrivas ut.\n"
-#: ../svnadmin/svnadmin.c:373
+#: ../svnadmin/svnadmin.c:388
msgid ""
-"usage: 1. svnadmin freeze REPOS_PATH PROGRAM [ARG...]\n"
-" 2. svnadmin freeze -F FILE PROGRAM [ARG...]\n"
+"usage: 1. svnadmin freeze REPOS_PATH -- PROGRAM [ARG...]\n"
+" 2. svnadmin freeze -F FILE -- PROGRAM [ARG...]\n"
+"\n"
+msgstr ""
+"användning: 1. svnadmin freeze ARKIVSÖKVÄG -- PROGRAM [ARGUMENT...]\n"
+" 2. svnadmin freeze -F FIL -- PROGRAM [ARGUMENT...]\n"
"\n"
+
+#: ../svnadmin/svnadmin.c:391
+msgid ""
"1. Run PROGRAM passing ARGS while holding a write-lock on REPOS_PATH.\n"
" Allows safe use of third-party backup tools on a live repository.\n"
"\n"
-"2. Like 1 except all repositories listed in FILE are locked. The file\n"
-" format is repository paths separated by newlines. Repositories are\n"
-" locked in the same order as they are listed in the file.\n"
msgstr ""
-"användning: 1. svnadmin freeze ARKIVSÖKVÄG PROGRAM [ARGUMENT...]\n"
-" 2. svnadmin freeze -F FIL PROGRAM [ARGUMENT...]\n"
-"\n"
"1. Kör PROGRAM med ARGUMENT samtidigt som ARKIVSÖKVÄG hålls låst för skrivning.\n"
" Detta möjliggör säker användning av standardverktyg för säkerhetskopiering\n"
" på ett arkiv under drift.\n"
"\n"
+
+#: ../svnadmin/svnadmin.c:394
+msgid ""
+"2. Like 1 except all repositories listed in FILE are locked. The file\n"
+" format is repository paths separated by newlines. Repositories are\n"
+" locked in the same order as they are listed in the file.\n"
+"\n"
+"The '--' tells svnadmin to stop looking for svnadmin options and pass\n"
+"all later arguments to PROGRAM even if they begin with '-'.\n"
+msgstr ""
"2. Som i 1, men alla arkiv listade i FIL hålls låsta. Filens format är en\n"
" arkivsökväg på varje rad. Arkiven låses i samma ordning som de står\n"
" i filen.\n"
+"\n"
+"Argumentet \"--\" markerar slutet av väljare för svnadmin; resterande\n"
+"argument skickas direkt till PROGRAM även om de börjar med \"-\".\n"
-#: ../svnadmin/svnadmin.c:385
+#: ../svnadmin/svnadmin.c:405
msgid ""
"usage: svnadmin help [SUBCOMMAND...]\n"
"\n"
-"Describe the usage of this program or its subcommands.\n"
msgstr ""
"användning: svnadmin help [UNDERKOMMANDO...]\n"
"\n"
-"Beskriver hur det här programmet och dess underkommandon används.\n"
-#: ../svnadmin/svnadmin.c:390
+#: ../svnadmin/svnadmin.c:407 ../svnfsfs/svnfsfs.c:119 ../svnlook/svnlook.c:273
+#: ../svnrdump/svnrdump.c:103 ../svnsync/svnsync.c:172
+msgid "Describe the usage of this program or its subcommands.\n"
+msgstr "Beskriver hur det här programmet och dess underkommandon används.\n"
+
+#: ../svnadmin/svnadmin.c:412
msgid ""
"usage: svnadmin hotcopy REPOS_PATH NEW_REPOS_PATH\n"
"\n"
+msgstr ""
+"användning: svnadmin hotcopy ARKIVSÖKVÄG NY_ARKIVSÖKVÄG\n"
+"\n"
+
+#: ../svnadmin/svnadmin.c:414
+msgid ""
"Make a hot copy of a repository.\n"
"If --incremental is passed, data which already exists at the destination\n"
"is not copied again. Incremental mode is implemented for FSFS repositories.\n"
msgstr ""
-"användning: svnadmin hotcopy ARKIVSÖKVÄG NY_ARKIVSÖKVÄG\n"
-"\n"
"Gör en kopiering under drift av ett arkiv.\n"
"Med flaggan --incremental kommer data som redan finns i destinationen inte\n"
"kopieras igen. Denna funktion finns implementerad för FSFS-arkiv.\n"
-#: ../svnadmin/svnadmin.c:397
+#: ../svnadmin/svnadmin.c:421
msgid ""
"usage: svnadmin info REPOS_PATH\n"
"\n"
-"Print information about the repository at REPOS_PATH.\n"
msgstr ""
"användning: svnadmin info ARKIVSÖKVÄG\n"
"\n"
-"Visa information om arkivet i ARKIVSÖKVÄG.\n"
-#: ../svnadmin/svnadmin.c:402
+#: ../svnadmin/svnadmin.c:423
+msgid "Print information about the repository at REPOS_PATH.\n"
+msgstr "Visa information om arkivet i ARKIVSÖKVÄG.\n"
+
+#: ../svnadmin/svnadmin.c:428
msgid ""
"usage: svnadmin list-dblogs REPOS_PATH\n"
"\n"
+msgstr ""
+"användning: svnadmin list-dblogs ARKIVSÖKVÄG\n"
+"\n"
+
+#: ../svnadmin/svnadmin.c:430
+msgid ""
"List all Berkeley DB log files.\n"
"\n"
+msgstr ""
+"Ger en lista av Berkeley DB-loggfiler.\n"
+"\n"
+
+#: ../svnadmin/svnadmin.c:432
+msgid ""
"WARNING: Modifying or deleting logfiles which are still in use\n"
"will cause your repository to be corrupted.\n"
msgstr ""
-"användning: svnadmin list-dblogs ARKIVSÖKVÄG\n"
-"\n"
-"Ger en lista av alla Berkeley DB-loggfiler.\n"
-"\n"
"VARNING: Att ändra eller ta bort loggfiler som fortfarande används leder\n"
"till att databasen förstörs.\n"
-#: ../svnadmin/svnadmin.c:409
+#: ../svnadmin/svnadmin.c:438
msgid ""
"usage: svnadmin list-unused-dblogs REPOS_PATH\n"
"\n"
-"List unused Berkeley DB log files.\n"
-"\n"
msgstr ""
"användning: svnadmin list-unused-dblogs ARKIVSÖKVÄG\n"
"\n"
-"Ger en lista av Berkeley DB-loggfiler som inte används.\n"
-"\n"
-#: ../svnadmin/svnadmin.c:414
+#: ../svnadmin/svnadmin.c:440
+msgid "List unused Berkeley DB log files.\n"
+msgstr "Ger en lista av Berkeley DB-loggfiler som inte används.\n"
+
+#: ../svnadmin/svnadmin.c:445
msgid ""
"usage: svnadmin load REPOS_PATH\n"
"\n"
+msgstr ""
+"användning: svnadmin load ARKIVSÖKVÄG\n"
+"\n"
+
+#: ../svnadmin/svnadmin.c:447
+msgid ""
"Read a 'dumpfile'-formatted stream from stdin, committing\n"
"new revisions into the repository's filesystem. If the repository\n"
"was previously empty, its UUID will, by default, be changed to the\n"
@@ -17887,130 +19062,162 @@ msgid ""
"If --revision is specified, limit the loaded revisions to only those\n"
"in the dump stream whose revision numbers match the specified range.\n"
msgstr ""
-"användning: svnadmin load ARKIVSÖKVÄG\n"
-"\n"
"Läser in en fil i \"dumpfile\"-format från standard in och inför nya revisioner\n"
"i arkivets filsystem. Om arkivet var tomt från början, kommer normalt\n"
"dess UUID att sättas till UUID:n i filen. Förloppet visas på standard ut.\n"
"Om flaggan --revision anges kommer bara revisionerna vars nummer ingår i det\n"
"angivna området läsas in från inmatningsströmmen.\n"
-#: ../svnadmin/svnadmin.c:427 ../svnadmin/svnadmin.c:438
+#: ../svnadmin/svnadmin.c:460 ../svnadmin/svnadmin.c:473
msgid "read from file ARG instead of stdin"
msgstr "läs från filen ARG istället för standard in"
-#: ../svnadmin/svnadmin.c:430
+#: ../svnadmin/svnadmin.c:463
msgid ""
"usage: svnadmin load-revprops REPOS_PATH\n"
"\n"
+msgstr ""
+"användning: svnadmin load-revprops ARKIVSÖKVÄG\n"
+"\n"
+
+#: ../svnadmin/svnadmin.c:465
+msgid ""
"Read a 'dumpfile'-formatted stream from stdin, setting the revision\n"
"properties in the repository's filesystem. Revisions not found in the\n"
"repository will cause an error. Progress feedback is sent to stdout.\n"
"If --revision is specified, limit the loaded revisions to only those\n"
"in the dump stream whose revision numbers match the specified range.\n"
msgstr ""
-"användning: svnadmin load-revprops ARKIVSÖKVÄG\n"
-"\n"
"Läser in en fil i \"dumpfile\"-format från standard in och sätter revisions-\n"
"egenskaper i arkivets filsystem. Revisioner som inte hittas i arkivet\n"
"betraktas som fel. Framskridande visas på standard ut.\n"
"Om flaggan --revision anges kommer bara revisionerna vars nummer ingår i det\n"
"angivna området läsas in från inmatningsströmmen.\n"
-#: ../svnadmin/svnadmin.c:441
+#: ../svnadmin/svnadmin.c:476
msgid ""
"usage: svnadmin lock REPOS_PATH PATH USERNAME COMMENT-FILE [TOKEN]\n"
"\n"
-"Lock PATH by USERNAME setting comments from COMMENT-FILE.\n"
-"If provided, use TOKEN as lock token. Use --bypass-hooks to avoid\n"
-"triggering the pre-lock and post-lock hook scripts.\n"
msgstr ""
"användning: svnadmin lock ARKIVSÖKVÄG SÖKVÄG ANVÄNDARNAMN\n"
" KOMMENTARFIL [ID]\n"
"\n"
+
+#: ../svnadmin/svnadmin.c:478
+msgid ""
+"Lock PATH by USERNAME setting comments from COMMENT-FILE.\n"
+"If provided, use TOKEN as lock token. Use --bypass-hooks to avoid\n"
+"triggering the pre-lock and post-lock hook scripts.\n"
+msgstr ""
"Lås SÖKVÄG som ANVÄNDARNAMN med kommentarer från KOMMENTARFIL.\n"
"Om angivet, använd ID som låsidentifierare. Använd --bypass-hooks för att\n"
"förhindra körning av krokskripten \"pre-lock\" och \"post-lock\".\n"
-#: ../svnadmin/svnadmin.c:448
+#: ../svnadmin/svnadmin.c:485
msgid ""
"usage: svnadmin lslocks REPOS_PATH [PATH-IN-REPOS]\n"
"\n"
-"Print descriptions of all locks on or under PATH-IN-REPOS (which,\n"
-"if not provided, is the root of the repository).\n"
msgstr ""
"användning: svnadmin lslocks ARKIVSÖKVÄG [SÖKVÄG-I-ARKIV]\n"
"\n"
+
+#: ../svnadmin/svnadmin.c:487
+msgid ""
+"Print descriptions of all locks on or under PATH-IN-REPOS (which,\n"
+"if not provided, is the root of the repository).\n"
+msgstr ""
"Beskriv alla lås i eller under SÖKVÄG-I-ARKIV (som är arkivets rot om ej\n"
"angiven).\n"
-#: ../svnadmin/svnadmin.c:454
+#: ../svnadmin/svnadmin.c:493
msgid ""
"usage: svnadmin lstxns REPOS_PATH\n"
"\n"
+msgstr ""
+"användning: svnadmin lstxns ARKIVSÖKVÄG\n"
+"\n"
+
+#: ../svnadmin/svnadmin.c:495
+msgid ""
"Print the names of uncommitted transactions. With -rN skip the output\n"
"of those that have a base revision more recent than rN. Transactions\n"
"with base revisions much older than HEAD are likely to have been\n"
"abandonded and are candidates to be removed.\n"
msgstr ""
-"användning: svnadmin lstxns ARKIVSÖKVÄG\n"
-"\n"
"Skriv namnen på oarkiverade transaktioner. Med -rN, hoppa över transaktioner\n"
"med basrevision nyare än rN. Transaktioner med basrevisioner som är mycket\n"
"äldre än HEAD har sannolikt övergivits och kan troligen tas bort.\n"
-#: ../svnadmin/svnadmin.c:463
+#: ../svnadmin/svnadmin.c:504
msgid ""
"usage: svnadmin pack REPOS_PATH\n"
"\n"
-"Possibly compact the repository into a more efficient storage model.\n"
-"This may not apply to all repositories, in which case, exit.\n"
msgstr ""
"användning: svnadmin pack ARKIVSÖKVÄG\n"
"\n"
+
+#: ../svnadmin/svnadmin.c:506
+msgid ""
+"Possibly compact the repository into a more efficient storage model.\n"
+"This may not apply to all repositories, in which case, exit.\n"
+msgstr ""
"Packa arkivet i ett effektivare lagringsformat om det går.\n"
"I annat fall sker ingenting.\n"
-#: ../svnadmin/svnadmin.c:469
+#: ../svnadmin/svnadmin.c:512
msgid ""
"usage: svnadmin recover REPOS_PATH\n"
"\n"
+msgstr ""
+"användning: svnadmin recover ARKIVSÖKVÄG\n"
+"\n"
+
+#: ../svnadmin/svnadmin.c:514
+msgid ""
"Run the recovery procedure on a repository. Do this if you've\n"
"been getting errors indicating that recovery ought to be run.\n"
"Berkeley DB recovery requires exclusive access and will\n"
"exit if the repository is in use by another process.\n"
msgstr ""
-"användning: svnadmin recover ARKIVSÖKVÄG\n"
-"\n"
"Utför rutinen för att återskapa databasen. Gör detta om du har fått\n"
"felmeddelanden som talar om att det behövs. Återskapandet av en Berkeley-\n"
"databas kräver enskild åtkomst och kommer avbrytas om databasen används av\n"
"någon annan process.\n"
-#: ../svnadmin/svnadmin.c:477
+#: ../svnadmin/svnadmin.c:522
msgid ""
"usage: svnadmin rmlocks REPOS_PATH LOCKED_PATH...\n"
"\n"
-"Unconditionally remove lock from each LOCKED_PATH.\n"
msgstr ""
"användning: svnadmin rmlocks ARKIVSÖKVÄG LÅST_SÖKVÄG...\n"
"\n"
-"Ta ovillkorligen bort lås från varje LÅST_SÖKVÄG.\n"
-#: ../svnadmin/svnadmin.c:482
+#: ../svnadmin/svnadmin.c:524
+msgid "Unconditionally remove lock from each LOCKED_PATH.\n"
+msgstr "Ta ovillkorligen bort lås från varje LÅST_SÖKVÄG.\n"
+
+#: ../svnadmin/svnadmin.c:529
msgid ""
"usage: svnadmin rmtxns REPOS_PATH TXN_NAME...\n"
"\n"
-"Delete the named transaction(s).\n"
msgstr ""
"användning: svnadmin rmtxns ARKIVSÖKVÄG TXN_NAMN...\n"
"\n"
-"Ta bort namngivna transaktion(er).\n"
-#: ../svnadmin/svnadmin.c:487
+#: ../svnadmin/svnadmin.c:531
+msgid "Delete the named transaction(s).\n"
+msgstr "Ta bort namngivna transaktion(er).\n"
+
+#: ../svnadmin/svnadmin.c:536
msgid ""
"usage: svnadmin setlog REPOS_PATH -r REVISION FILE\n"
"\n"
+msgstr ""
+"användning: svnadmin setlog ARKIVSÖKVÄG -r REVISION FIL\n"
+"\n"
+
+#: ../svnadmin/svnadmin.c:538
+msgid ""
"Set the log-message on revision REVISION to the contents of FILE. Use\n"
"--bypass-hooks to avoid triggering the revision-property-related hooks\n"
"(for example, if you do not want an email notification sent\n"
@@ -18018,84 +19225,108 @@ msgid ""
"revision properties has not been enabled in the pre-revprop-change\n"
"hook).\n"
"\n"
-"NOTE: Revision properties are not versioned, so this command will\n"
-"overwrite the previous log message.\n"
msgstr ""
-"användning: svnadmin setlog ARKIVSÖKVÄG -r REVISION FIL\n"
-"\n"
"Sätt loggmeddelandet för revisionen REVISION till innehållet i filen FIL.\n"
"Använd --bypass-hooks för att revisionsegenskapsrelaterade krokskript inte\n"
"ska aktiveras (om du till exempel vill undvika att e-post skickas från\n"
"ditt \"post-revprop-change\"-krokskript, eller om ändring av\n"
"revisionsegenskaper ej är påslaget i \"pre-revprop-change\"-krokskriptet).\n"
"\n"
+
+#: ../svnadmin/svnadmin.c:545
+msgid ""
+"NOTE: Revision properties are not versioned, so this command will\n"
+"overwrite the previous log message.\n"
+msgstr ""
"ANMÄRKNING: Historik lagras inte för revisionsegenskaper, så detta kommando\n"
"skriver för alltid över det befintliga loggmeddelandet.\n"
-#: ../svnadmin/svnadmin.c:499
+#: ../svnadmin/svnadmin.c:551
msgid ""
"usage: 1. svnadmin setrevprop REPOS_PATH -r REVISION NAME FILE\n"
" 2. svnadmin setrevprop REPOS_PATH -t TXN NAME FILE\n"
"\n"
-"1. Set the property NAME on revision REVISION to the contents of FILE.\n"
-"\n"
-"Use --use-pre-revprop-change-hook/--use-post-revprop-change-hook to\n"
-"trigger the revision property-related hooks (for example, if you want\n"
-"an email notification sent from your post-revprop-change hook).\n"
-"\n"
-"NOTE: Revision properties are not versioned, so this command will\n"
-"overwrite the previous value of the property.\n"
-"\n"
-"2. Set the property NAME on transaction TXN to the contents of FILE.\n"
msgstr ""
"användning: 1. svnadmin setrevprop ARKIVSÖKVÄG -r REVISION NAMN FIL\n"
" 2. svnadmin setrevprop ARKIVSÖKVÄG -t TRANS NAMN FIL\n"
"\n"
+
+#: ../svnadmin/svnadmin.c:554
+msgid ""
+"1. Set the property NAME on revision REVISION to the contents of FILE.\n"
+"\n"
+msgstr ""
"1. Sätt egenskapen NAMN i revisionen REVISION till innehållet i FIL.\n"
"\n"
-"Använd --use-pre-revprop-change-hook/--use-post-revprop-change-hook\n"
-"för att starta krokskripten för revisionsegenskaper (om du exempelvis\n"
-"vill att epost ska skickas från \"post-revprop-change\"-krokskriptet).\n"
+
+#: ../svnadmin/svnadmin.c:560
+msgid ""
+"NOTE: Revision properties are not versioned, so this command will\n"
+"overwrite the previous value of the property.\n"
"\n"
+msgstr ""
"ANMÄRKNING: Historik sparas ej för revisionsegenskaper, så detta kommando\n"
"skriver över egenskapens tidigare värde.\n"
"\n"
-"2. Sätt egenskapen NAMN i transaktionen TRANS till innehållet i FIL.\n"
-#: ../svnadmin/svnadmin.c:512
+#: ../svnadmin/svnadmin.c:563
+msgid "2. Set the property NAME on transaction TXN to the contents of FILE.\n"
+msgstr "2. Sätt egenskapen NAMN i transaktionen TRANS till innehållet i FIL.\n"
+
+#: ../svnadmin/svnadmin.c:569
msgid ""
"usage: svnadmin setuuid REPOS_PATH [NEW_UUID]\n"
"\n"
+msgstr ""
+"användning: svnadmin setuuid ARKIVSÖKVÄG [NY_UUID]\n"
+"\n"
+
+#: ../svnadmin/svnadmin.c:571
+msgid ""
"Reset the repository UUID for the repository located at REPOS_PATH. If\n"
"NEW_UUID is provided, use that as the new repository UUID; otherwise,\n"
"generate a brand new UUID for the repository.\n"
msgstr ""
-"användning: svnadmin setuuid ARKIVSÖKVÄG [NY_UUID]\n"
-"\n"
"Återställ UUID för arkivet i ARKIVSÖKVÄG. Om NY_UUID anges kommer det\n"
"användas som ny UUID för arkivet; annars kommer en helt ny UUID genereras.\n"
-#: ../svnadmin/svnadmin.c:519
+#: ../svnadmin/svnadmin.c:578
msgid ""
"usage: svnadmin unlock REPOS_PATH LOCKED_PATH USERNAME TOKEN\n"
"\n"
+msgstr ""
+"användning: svnadmin unlock ARKIVSÖKVÄG LÅST_SÖKVÄG ANVÄNDARNAMN ID\n"
+"\n"
+
+#: ../svnadmin/svnadmin.c:580
+msgid ""
"Unlock LOCKED_PATH (as USERNAME) after verifying that the token\n"
"associated with the lock matches TOKEN. Use --bypass-hooks to avoid\n"
"triggering the pre-unlock and post-unlock hook scripts.\n"
msgstr ""
-"användning: svnadmin unlock ARKIVSÖKVÄG LÅST_SÖKVÄG ANVÄNDARNAMN ID\n"
-"\n"
"Lås upp LÅST_SÖKVÄG (som ANVÄNDARNAMN) efter att ha kontrollerat att\n"
"låsidentifieraren stämmer med ID. Använd --bypass-hooks för att förhindra\n"
"körning av krokskripten \"pre-unlock\" och \"post-unlock\".\n"
-#: ../svnadmin/svnadmin.c:526
+#: ../svnadmin/svnadmin.c:587
msgid ""
"usage: svnadmin upgrade REPOS_PATH\n"
"\n"
+msgstr ""
+"användning: svnadmin upgrade ARKIVSÖKVÄG\n"
+"\n"
+
+#: ../svnadmin/svnadmin.c:589
+msgid ""
"Upgrade the repository located at REPOS_PATH to the latest supported\n"
"schema version.\n"
"\n"
+msgstr ""
+"Uppgradera arkivet vid ARKIVSÖKVÄG till den senaste schemaversionen.\n"
+"\n"
+
+#: ../svnadmin/svnadmin.c:592
+msgid ""
"This functionality is provided as a convenience for repository\n"
"administrators who wish to make use of new Subversion functionality\n"
"without having to undertake a potentially costly full repository dump\n"
@@ -18104,10 +19335,6 @@ msgid ""
"integrity of the repository. It does not guarantee the most optimized\n"
"repository state as a dump and subsequent load would.\n"
msgstr ""
-"användning: svnadmin upgrade ARKIVSÖKVÄG\n"
-"\n"
-"Uppgradera arkivet vid ARKIVSÖKVÄG till den senaste schemaversionen.\n"
-"\n"
"Denna funktion är till för arkivförvaltare som vill utnyttja nya\n"
"funktioner i Subversion utan att behöva företa sig en hel utskrivning\n"
"och återställning av arkivet. Uppgraderingen i sig gör bara så lite arbete\n"
@@ -18115,39 +19342,37 @@ msgstr ""
"helhet. Den garanterar inte ett optimerat arkivtillstånd vilket en\n"
"utskrivning och återställning skulle göra.\n"
-#: ../svnadmin/svnadmin.c:539
+#: ../svnadmin/svnadmin.c:603
msgid ""
"usage: svnadmin verify REPOS_PATH\n"
"\n"
-"Verify the data stored in the repository.\n"
msgstr ""
"användning: svnadmin verify ARKIVSÖKVÄG\n"
"\n"
-"Kontrollerar den data som är lagrad i arkivet.\n"
-#: ../svnadmin/svnadmin.c:640
+#: ../svnadmin/svnadmin.c:605
+msgid "Verify the data stored in the repository.\n"
+msgstr "Kontrollerar den data som är lagrad i arkivet.\n"
+
+#: ../svnadmin/svnadmin.c:706
msgid "Invalid revision specifier"
msgstr "Ogiltig revisionsangivelse"
-#: ../svnadmin/svnadmin.c:644
+#: ../svnadmin/svnadmin.c:710
#, c-format
msgid "Revisions must not be greater than the youngest revision (%ld)"
msgstr "Revisionerna får ej vara större än den yngsta revisionen (%ld)"
-#: ../svnadmin/svnadmin.c:671
+#: ../svnadmin/svnadmin.c:737
#, c-format
msgid "Path '%s' is not a local path"
msgstr "\"%s\" är ingen lokal sökväg"
-#: ../svnadmin/svnadmin.c:700
+#: ../svnadmin/svnadmin.c:766
msgid "Not enough arguments"
msgstr "För få argument"
-#: ../svnadmin/svnadmin.c:703
-msgid "Too many arguments"
-msgstr "För många argument"
-
-#: ../svnadmin/svnadmin.c:743
+#: ../svnadmin/svnadmin.c:809
#, c-format
msgid ""
"Successfully opened repository '%s'.\n"
@@ -18156,70 +19381,70 @@ msgstr ""
"Lyckades öppna arkiv \"%s\".\n"
"Kommer nu att krascha för att simulera en kraschande serverprocess.\n"
-#: ../svnadmin/svnadmin.c:782
+#: ../svnadmin/svnadmin.c:848
#, c-format
msgid "%swarning: The \"%s\" repository back-end is deprecated, consider using \"%s\" instead.\n"
msgstr "%svarning: Arkivmekanismen \"%s\" är föråldrad; överväg att använda \"%s\" istället.\n"
-#: ../svnadmin/svnadmin.c:823
+#: ../svnadmin/svnadmin.c:889
msgid "Repositories compatible with 1.0.x must use --fs-type=bdb"
msgstr "Arkiv kompatibla med 1.0.x måste använda --fs-type=bdb"
-#: ../svnadmin/svnadmin.c:831
+#: ../svnadmin/svnadmin.c:897
#, c-format
msgid "Repositories compatible with 1.8.x or earlier cannot use --fs-type=%s"
msgstr "Arkiv kompatibla med 1.8.x eller äldre måste använda --fs-type=%s"
-#: ../svnadmin/svnadmin.c:876 ../svnadmin/svnadmin.c:1276
-#: ../svnadmin/svnadmin.c:1606
+#: ../svnadmin/svnadmin.c:942 ../svnadmin/svnadmin.c:1342
+#: ../svnadmin/svnadmin.c:1672
msgid "First revision cannot be higher than second"
msgstr "Den första revisionen kan inte vara högre än den andra"
-#: ../svnadmin/svnadmin.c:885
+#: ../svnadmin/svnadmin.c:951
#, c-format
msgid "Deltifying revision %ld..."
msgstr "Deltifierar revision %ld..."
-#: ../svnadmin/svnadmin.c:889 ../svnadmin/svnadmin.c:1020
-#: ../svnadmin/svnadmin.c:1035
+#: ../svnadmin/svnadmin.c:955 ../svnadmin/svnadmin.c:1086
+#: ../svnadmin/svnadmin.c:1101
#, c-format
msgid "done.\n"
msgstr "klart.\n"
-#: ../svnadmin/svnadmin.c:938
+#: ../svnadmin/svnadmin.c:1004
msgid "* Error verifying repository metadata.\n"
msgstr "* Fel vid kontroll av arkivmetadata.\n"
-#: ../svnadmin/svnadmin.c:944
+#: ../svnadmin/svnadmin.c:1010
#, c-format
msgid "* Error verifying revision %ld.\n"
msgstr "* Fel vid kontroll av revision %ld.\n"
-#: ../svnadmin/svnadmin.c:1001
+#: ../svnadmin/svnadmin.c:1067
msgid "* Verifying repository metadata ...\n"
msgstr "* Kontrollerar arkivmetadata...\n"
-#: ../svnadmin/svnadmin.c:1004
+#: ../svnadmin/svnadmin.c:1070
#, c-format
msgid "* Verifying metadata at revision %ld ...\n"
msgstr "* Kontrollerar metadata i revision %ld...\n"
-#: ../svnadmin/svnadmin.c:1014
+#: ../svnadmin/svnadmin.c:1080
#, c-format
msgid "Packing revisions in shard %s..."
msgstr "Packar revision i skärva %s..."
-#: ../svnadmin/svnadmin.c:1029
+#: ../svnadmin/svnadmin.c:1095
#, c-format
msgid "Packing revprops in shard %s..."
msgstr "Packar revisionsegenskaper i skärva %s..."
-#: ../svnadmin/svnadmin.c:1104
+#: ../svnadmin/svnadmin.c:1170
#, c-format
msgid "<<< Skipped original revision %ld\n"
msgstr "<<< Hoppade över ursprungliga revisionen %ld\n"
-#: ../svnadmin/svnadmin.c:1120
+#: ../svnadmin/svnadmin.c:1186
msgid ""
"Repository lock acquired.\n"
"Please wait; recovering the repository may take some time...\n"
@@ -18227,7 +19452,7 @@ msgstr ""
"Arkivlåset har erhållits.\n"
"Vänta; det kan ta tid att återskapa arkivet...\n"
-#: ../svnadmin/svnadmin.c:1127
+#: ../svnadmin/svnadmin.c:1193
msgid ""
"Repository lock acquired.\n"
"Please wait; upgrading the repository may take some time...\n"
@@ -18235,51 +19460,51 @@ msgstr ""
"Arkivlåset har erhållits.\n"
"Vänta; det kan ta tid att uppgradera arkivet...\n"
-#: ../svnadmin/svnadmin.c:1138
+#: ../svnadmin/svnadmin.c:1204
#, c-format
msgid "Packed revision properties in shard %s\n"
msgstr "Packar revisionsegenskaper i skärva %s\n"
-#: ../svnadmin/svnadmin.c:1149
+#: ../svnadmin/svnadmin.c:1215
#, c-format
msgid "Removed non-packed revision properties in shard %s\n"
msgstr "Raderar icke-packade revisionsegenskaper i skärva %s\n"
-#: ../svnadmin/svnadmin.c:1157
+#: ../svnadmin/svnadmin.c:1223
#, c-format
msgid "Bumped repository format to %ld\n"
msgstr "Flyttade fram arkivformatet till %ld\n"
-#: ../svnadmin/svnadmin.c:1165
+#: ../svnadmin/svnadmin.c:1231
#, c-format
msgid "* Copied revision %ld.\n"
msgstr "* Kopierade revision %ld.\n"
-#: ../svnadmin/svnadmin.c:1171
+#: ../svnadmin/svnadmin.c:1237
#, c-format
msgid "* Copied revisions from %ld to %ld.\n"
msgstr "* Kopierade revisioner från %ld till %ld.\n"
-#: ../svnadmin/svnadmin.c:1182
+#: ../svnadmin/svnadmin.c:1248
#, c-format
msgid "svnadmin: Warning - this repository is not sharded. Packing has no effect.\n"
msgstr "svnadmin: varning: detta arkiv är inte splittrat. Packning saknar verkan.\n"
-#: ../svnadmin/svnadmin.c:1189
+#: ../svnadmin/svnadmin.c:1255
#, c-format
msgid "Properties set on revision %ld.\n"
msgstr "Egenskaper satta för revision %ld.\n"
-#: ../svnadmin/svnadmin.c:1384
+#: ../svnadmin/svnadmin.c:1450
#, c-format
msgid "'--exclude' and '--include' options cannot be used simultaneously"
msgstr "Väljarna \"--exclude\" och \"--include\" kan inte användas samtidigt"
-#: ../svnadmin/svnadmin.c:1488
+#: ../svnadmin/svnadmin.c:1554
msgid "No program provided"
msgstr "Inget program angivet"
-#: ../svnadmin/svnadmin.c:1528
+#: ../svnadmin/svnadmin.c:1594
msgid ""
"general usage: svnadmin SUBCOMMAND REPOS_PATH [ARGS & OPTIONS ...]\n"
"Subversion repository administration tool.\n"
@@ -18296,7 +19521,7 @@ msgstr ""
"\n"
"Tillgängliga underkommandon:\n"
-#: ../svnadmin/svnadmin.c:1536 ../svnlook/svnlook.c:2218
+#: ../svnadmin/svnadmin.c:1602 ../svnlook/svnlook.c:2252
#: ../svnserve/svnserve.c:470
msgid ""
"The following repository back-end (FS) modules are available:\n"
@@ -18305,24 +19530,24 @@ msgstr ""
"Följande arkivåtkomstmoduler är tillgängliga:\n"
"\n"
-#: ../svnadmin/svnadmin.c:1565
+#: ../svnadmin/svnadmin.c:1631
#, c-format
msgid "Invalid revision number (%ld) specified"
msgstr "Ogiltigt revisionsnummer (%ld) angivet"
-#: ../svnadmin/svnadmin.c:1575
+#: ../svnadmin/svnadmin.c:1641
msgid "Non-numeric revision specified"
msgstr "Ickenumerisk revision angiven"
-#: ../svnadmin/svnadmin.c:1657 ../svnadmin/svnadmin.c:1715
+#: ../svnadmin/svnadmin.c:1723 ../svnadmin/svnadmin.c:1781
msgid "A property with invalid line ending found in dumpstream; consider using --normalize-props while loading."
msgstr "Egenskap med felaktigt radslut hittad i dumpströmmen; överväg --normalize-props vid inläsning."
-#: ../svnadmin/svnadmin.c:1664 ../svnadmin/svnadmin.c:1722
+#: ../svnadmin/svnadmin.c:1730 ../svnadmin/svnadmin.c:1788
msgid "Invalid property value found in dumpstream; consider repairing the source or using --bypass-prop-validation while loading."
msgstr "Ogiltigt egenskapsvärde hittat i dumpströmmen; reparera källan eller använd --bypass-prop-validation vid inläsningen."
-#: ../svnadmin/svnadmin.c:1814 ../svnadmin/svnadmin.c:2713
+#: ../svnadmin/svnadmin.c:1880 ../svnadmin/svnadmin.c:2780
msgid ""
"Failed to get exclusive repository access; perhaps another process\n"
"such as httpd, svnserve or svn has it open?"
@@ -18330,12 +19555,12 @@ msgstr ""
"Kunde inte erhålla enskild åtkomst till arkivet; kanske någon annan process,\n"
"såsom httpd, svnserve eller svn har det öppet?"
-#: ../svnadmin/svnadmin.c:1819 ../svnadmin/svnadmin.c:2718
+#: ../svnadmin/svnadmin.c:1885 ../svnadmin/svnadmin.c:2785
#, c-format
msgid "Waiting on repository lock; perhaps another process has it open?\n"
msgstr "Väntar på arkivlås; kanske någon annan process har arkivet öppen?\n"
-#: ../svnadmin/svnadmin.c:1827
+#: ../svnadmin/svnadmin.c:1893
#, c-format
msgid ""
"\n"
@@ -18344,40 +19569,40 @@ msgstr ""
"\n"
"Ã…terskapande klart.\n"
-#: ../svnadmin/svnadmin.c:1834
+#: ../svnadmin/svnadmin.c:1900
#, c-format
msgid "The latest repos revision is %ld.\n"
msgstr "Den senaste revisionen i arkivet är %ld.\n"
-#: ../svnadmin/svnadmin.c:1946
+#: ../svnadmin/svnadmin.c:2012
#, c-format
msgid "Transaction '%s' removed.\n"
msgstr "Transaktionen \"%s\" borttagen.\n"
-#: ../svnadmin/svnadmin.c:2028 ../svnadmin/svnadmin.c:2142
-#: ../svnadmin/svnadmin.c:2763
+#: ../svnadmin/svnadmin.c:2094 ../svnadmin/svnadmin.c:2208
+#: ../svnadmin/svnadmin.c:2830
#, c-format
msgid "--revision (-r) and --transaction (-t) are mutually exclusive"
msgstr "--revision (-r) och --transaction (-t) kan inte användas samtidigt"
-#: ../svnadmin/svnadmin.c:2034 ../svnadmin/svnadmin.c:2769
+#: ../svnadmin/svnadmin.c:2100 ../svnadmin/svnadmin.c:2836
#, c-format
msgid "Calling hooks is incompatible with --transaction (-t)"
msgstr "Krokskript kan inte anropas när --transaction (-t) används"
-#: ../svnadmin/svnadmin.c:2039 ../svnadmin/svnadmin.c:2084
-#: ../svnadmin/svnadmin.c:2774
+#: ../svnadmin/svnadmin.c:2105 ../svnadmin/svnadmin.c:2150
+#: ../svnadmin/svnadmin.c:2841
#, c-format
msgid "Missing revision"
msgstr "Revision saknas"
-#: ../svnadmin/svnadmin.c:2042 ../svnadmin/svnadmin.c:2087
-#: ../svnadmin/svnadmin.c:2777
+#: ../svnadmin/svnadmin.c:2108 ../svnadmin/svnadmin.c:2153
+#: ../svnadmin/svnadmin.c:2844
#, c-format
msgid "Only one revision allowed"
msgstr "Endast en revision tillåts"
-#: ../svnadmin/svnadmin.c:2205
+#: ../svnadmin/svnadmin.c:2272
msgid ""
"\n"
"-----Summary of corrupt revisions-----\n"
@@ -18385,112 +19610,112 @@ msgstr ""
"\n"
"-----Sammanfattning av trasiga revisioner-----\n"
-#: ../svnadmin/svnadmin.c:2257
+#: ../svnadmin/svnadmin.c:2324
#, c-format
msgid "Failed to verify repository '%s'"
msgstr "Kunde inte kontrollera arkivet \"%s\""
-#: ../svnadmin/svnadmin.c:2309
+#: ../svnadmin/svnadmin.c:2376
#, c-format
msgid "UUID: %s\n"
msgstr "UUID: %s\n"
-#: ../svnadmin/svnadmin.c:2312
+#: ../svnadmin/svnadmin.c:2379
#, c-format
msgid "Revisions: %ld\n"
msgstr "Revisioner: %ld\n"
-#: ../svnadmin/svnadmin.c:2318
+#: ../svnadmin/svnadmin.c:2385
#, c-format
msgid "Repository Format: %d\n"
msgstr "Arkivformat: %d\n"
-#: ../svnadmin/svnadmin.c:2332
+#: ../svnadmin/svnadmin.c:2399
#, c-format
msgid "Compatible With Version: %d.%d.0\n"
msgstr "Kompatibelt med version: %d.%d.0\n"
-#: ../svnadmin/svnadmin.c:2351
+#: ../svnadmin/svnadmin.c:2418
#, c-format
msgid "Repository Capability: %s\n"
msgstr "Arkivförmåga: %s\n"
-#: ../svnadmin/svnadmin.c:2360
+#: ../svnadmin/svnadmin.c:2427
#, c-format
msgid "Filesystem Type: %s\n"
msgstr "Filsystemstyp: %s\n"
-#: ../svnadmin/svnadmin.c:2362
+#: ../svnadmin/svnadmin.c:2429
#, c-format
msgid "Filesystem Format: %d\n"
msgstr "Filsystemsformat: %d\n"
-#: ../svnadmin/svnadmin.c:2369
+#: ../svnadmin/svnadmin.c:2436
#, c-format
msgid "FSFS Sharded: yes\n"
msgstr "FSFS splittrad: ja\n"
-#: ../svnadmin/svnadmin.c:2371
+#: ../svnadmin/svnadmin.c:2438
#, c-format
msgid "FSFS Sharded: no\n"
msgstr "FSFS splittrad: nej\n"
-#: ../svnadmin/svnadmin.c:2374
+#: ../svnadmin/svnadmin.c:2441
#, c-format
msgid "FSFS Shard Size: %d\n"
msgstr "FSFS skärvstorlek: %d\n"
-#: ../svnadmin/svnadmin.c:2383
+#: ../svnadmin/svnadmin.c:2450
#, c-format
msgid "FSFS Shards Packed: %ld/%ld\n"
msgstr "FSFS skärvor packade: %ld/%ld\n"
-#: ../svnadmin/svnadmin.c:2388
+#: ../svnadmin/svnadmin.c:2455
#, c-format
msgid "FSFS Logical Addressing: yes\n"
msgstr "FSFS logisk adressering: ja\n"
-#: ../svnadmin/svnadmin.c:2390
+#: ../svnadmin/svnadmin.c:2457
#, c-format
msgid "FSFS Logical Addressing: no\n"
msgstr "FSFS logisk adressering: nej\n"
-#: ../svnadmin/svnadmin.c:2400
+#: ../svnadmin/svnadmin.c:2467
#, c-format
msgid "FSX Shard Size: %d\n"
msgstr "FSX skärvstorlek: %d\n"
-#: ../svnadmin/svnadmin.c:2402
+#: ../svnadmin/svnadmin.c:2469
#, c-format
msgid "FSX Shards Packed: %ld/%ld\n"
msgstr "FSFX skärvor packade: %ld/%ld\n"
-#: ../svnadmin/svnadmin.c:2413
+#: ../svnadmin/svnadmin.c:2480
#, c-format
msgid "Configuration File: %s\n"
msgstr "Konfigurationsfil: %s\n"
-#: ../svnadmin/svnadmin.c:2541 ../svnlook/svnlook.c:2281
+#: ../svnadmin/svnadmin.c:2608 ../svnlook/svnlook.c:2315
#, c-format
msgid "UUID Token: %s\n"
msgstr "UUID-identifierare: %s\n"
-#: ../svnadmin/svnadmin.c:2542 ../svnlook/svnlook.c:2282
+#: ../svnadmin/svnadmin.c:2609 ../svnlook/svnlook.c:2316
#, c-format
msgid "Owner: %s\n"
msgstr "Ägare: %s\n"
-#: ../svnadmin/svnadmin.c:2543 ../svnlook/svnlook.c:2283
+#: ../svnadmin/svnadmin.c:2610 ../svnlook/svnlook.c:2317
#, c-format
msgid "Created: %s\n"
msgstr "Skapat: %s\n"
-#: ../svnadmin/svnadmin.c:2544 ../svnlook/svnlook.c:2284
+#: ../svnadmin/svnadmin.c:2611 ../svnlook/svnlook.c:2318
#, c-format
msgid "Expires: %s\n"
msgstr "GÃ¥r ut: %s\n"
-#: ../svnadmin/svnadmin.c:2546
+#: ../svnadmin/svnadmin.c:2613
#, c-format
msgid ""
"Comment (%i line):\n"
@@ -18509,34 +19734,34 @@ msgstr[1] ""
"%s\n"
"\n"
-#: ../svnadmin/svnadmin.c:2594
+#: ../svnadmin/svnadmin.c:2661
msgid "No paths to unlock provided"
msgstr "Ingen sökväg till upplåsning tillhandahölls"
-#: ../svnadmin/svnadmin.c:2612
+#: ../svnadmin/svnadmin.c:2679
#, c-format
msgid "Path '%s' isn't locked.\n"
msgstr "Sökvägen \"%s\" är inte låst.\n"
-#: ../svnadmin/svnadmin.c:2626
+#: ../svnadmin/svnadmin.c:2693
#, c-format
msgid "Removed lock on '%s'.\n"
msgstr "Tog bort lås på \"%s\".\n"
-#: ../svnadmin/svnadmin.c:2680
+#: ../svnadmin/svnadmin.c:2747
#, c-format
msgid "'%s' unlocked by user '%s'.\n"
msgstr "\"%s\" låstes upp av användaren \"%s\".\n"
-#: ../svnadmin/svnadmin.c:2728
+#: ../svnadmin/svnadmin.c:2795
msgid "Upgrade of this repository's underlying versioned filesystem is not supported; consider dumping and loading the data elsewhere"
msgstr "Uppgradering av det versionshanterade filsystemet som används av detta arkiv stöds ej; skriv ut och återställ informationen någon annanstans"
-#: ../svnadmin/svnadmin.c:2735
+#: ../svnadmin/svnadmin.c:2802
msgid "Upgrade of this repository is not supported; consider dumping and loading the data elsewhere"
msgstr "Uppgradering av detta arkiv stöds ej; skriv ut och återställ informationen någon annanstans"
-#: ../svnadmin/svnadmin.c:2741
+#: ../svnadmin/svnadmin.c:2808
#, c-format
msgid ""
"\n"
@@ -18545,36 +19770,36 @@ msgstr ""
"\n"
"Uppdatering klar.\n"
-#: ../svnadmin/svnadmin.c:2855 ../svnfsfs/svnfsfs.c:281
-#: ../svnrdump/svnrdump.c:843
+#: ../svnadmin/svnadmin.c:2922 ../svnfsfs/svnfsfs.c:293
+#: ../svnrdump/svnrdump.c:849
msgid "Multiple revision arguments encountered; try '-r N:M' instead of '-r N -r M'"
msgstr "Flera revisionsargument påträffades; försök med \"-r M:N\" istället för \"-r M -r N\""
-#: ../svnadmin/svnadmin.c:2938
+#: ../svnadmin/svnadmin.c:3005
#, c-format
msgid "Cannot create pre-1.0-compatible repositories"
msgstr "Kan inte skapa arkiv kompatibelt med versioner äldre än 1.0"
-#: ../svnadmin/svnadmin.c:2950
+#: ../svnadmin/svnadmin.c:3017
#, c-format
msgid "Cannot guarantee compatibility beyond the current running version (%s)"
msgstr "Kan inte garantera kompatibilitet bortom versionen som nu körs (%s)"
-#: ../svnadmin/svnadmin.c:3074 ../svnfsfs/svnfsfs.c:350
+#: ../svnadmin/svnadmin.c:3141 ../svnfsfs/svnfsfs.c:362
#, c-format
msgid "subcommand argument required\n"
msgstr "argument för underkommando krävs\n"
-#: ../svnadmin/svnadmin.c:3111 ../svnfsfs/svnfsfs.c:385
+#: ../svnadmin/svnadmin.c:3178 ../svnfsfs/svnfsfs.c:397
msgid "Repository argument required"
msgstr "Argument för arkiv krävs"
-#: ../svnadmin/svnadmin.c:3119 ../svnfsfs/svnfsfs.c:393
+#: ../svnadmin/svnadmin.c:3186 ../svnfsfs/svnfsfs.c:405
#, c-format
msgid "'%s' is a URL when it should be a local path"
msgstr "\"%s\" är en URL när den skulle vara en lokal sökväg"
-#: ../svnadmin/svnadmin.c:3149
+#: ../svnadmin/svnadmin.c:3216
#, c-format
msgid ""
"Subcommand '%s' doesn't accept option '%s'\n"
@@ -18583,7 +19808,7 @@ msgstr ""
"Underkommandot \"%s\" tillåter inte flaggan \"%s\"\n"
"Skriv \"svnadmin help %s\" för användning.\n"
-#: ../svnadmin/svnadmin.c:3180
+#: ../svnadmin/svnadmin.c:3247
msgid "Try 'svnadmin help' for more info"
msgstr "Skriv \"svnadmin help\" för mer information"
@@ -18684,7 +19909,7 @@ msgstr ""
"%15s meddelanderader\n"
"%15s ändringar\n"
-#: ../svnbench/svnbench.c:115 ../svnrdump/svnrdump.c:118
+#: ../svnbench/svnbench.c:115 ../svnrdump/svnrdump.c:124
msgid "specify a password ARG"
msgstr "ange ett lösenord ARG"
@@ -18700,175 +19925,141 @@ msgstr "ställ inte frågor till användaren"
msgid "use ARG as search pattern (glob syntax)"
msgstr "använd ARG som sökmönster (skalsyntax)"
-#: ../svnbench/svnbench.c:218
+#: ../svnbench/svnbench.c:219
msgid ""
"Fetch all versions of a file in a batch.\n"
"usage: null-blame [-rM:N] TARGET[@REV]...\n"
"\n"
-" With no revision range (same as -r0:REV), or with '-r M:N' where M < N,\n"
-" annotate each line that is present in revision N of the file, with\n"
-" the last revision at or before rN that changed or added the line,\n"
-" looking back no further than rM.\n"
-"\n"
-" With a reverse revision range '-r M:N' where M > N,\n"
-" annotate each line that is present in revision N of the file, with\n"
-" the next revision after rN that changed or deleted the line,\n"
-" looking forward no further than rM.\n"
-"\n"
-" If specified, REV determines in which revision the target is first\n"
-" looked up.\n"
-"\n"
-" Write the annotated result to standard output.\n"
msgstr ""
"Hämta alla versioner av en fil på en gång.\n"
"användning: null-blame [-rM:N] MÅL[@REV]...\n"
"\n"
-" Utan revisionsintervall (samma som -r0:REV), eller med \"-r M:N\" där M < N,\n"
-" kommentera varje rad som finns i revision N av filen, med den senaste\n"
-" revisionen i eller före rN som ändrade eller lade till raden, utan att\n"
-" gå längre bakåt i tiden än rM.\n"
-"\n"
-" Med ett bakvänt revisionsintervall \"-r M:N\" där M > N, kommentera varje rad\n"
-" som finns i revision N av filen, med nästa revision efter rN som ändrade\n"
-" eller raderade raden, utan att gå längre framåt i tiden än rM.\n"
-"\n"
-" Om REV anges, bestämmer den i vilken revision målet först letas upp.\n"
-"\n"
-" Det kommenterade resultatet skrivs till standardutmatningen.\n"
-#: ../svnbench/svnbench.c:238
+#: ../svnbench/svnbench.c:240
msgid ""
"Create an unversioned copy of a tree.\n"
"usage: null-export [-r REV] URL[@PEGREV]\n"
"\n"
-" Exports a clean directory tree from the repository specified by\n"
-" URL, at revision REV if it is given, otherwise at HEAD.\n"
-"\n"
-" If specified, PEGREV determines in which revision the target is first\n"
-" looked up.\n"
msgstr ""
"Skapa en icke versionshanterad kopia av ett träd.\n"
"användning: null-export [-r REV] URL[@FIXREV]\n"
"\n"
+
+#: ../svnbench/svnbench.c:243
+msgid ""
+" Exports a clean directory tree from the repository specified by\n"
+" URL, at revision REV if it is given, otherwise at HEAD.\n"
+"\n"
+msgstr ""
" Exporterar ett rent katalogträd från arkivet som anges av URL, vid\n"
" revisionen REV, eller HEAD om REV inte anges.\n"
"\n"
-" Om FIXREV är angiven, anger den i vilken revision målet först letas upp.\n"
-#: ../svnbench/svnbench.c:249
+#: ../svnbench/svnbench.c:252
msgid ""
"List directory entries in the repository.\n"
"usage: null-list [TARGET[@REV]...]\n"
"\n"
-" List each TARGET file and the contents of each TARGET directory as\n"
-" they exist in the repository. If TARGET is a working copy path, the\n"
-" corresponding repository URL will be used. If specified, REV determines\n"
-" in which revision the target is first looked up.\n"
-"\n"
-" The default TARGET is '.', meaning the repository URL of the current\n"
-" working directory.\n"
-"\n"
-" With --verbose, the following fields will be fetched for each item:\n"
-"\n"
-" Revision number of the last commit\n"
-" Author of the last commit\n"
-" If locked, the letter 'O'. (Use 'svn info URL' to see details)\n"
-" Size (in bytes)\n"
-" Date and time of the last commit\n"
msgstr ""
"Lista kataloginnehåll i arkivet.\n"
"användning: null-list [MÅL[@REV]...]\n"
"\n"
-" Lista varje fil MÅL och innehållet i varje katalog MÅL som de ser ut i\n"
-" arkivet. Om MÅL är en sökväg i en arbetskopia, används motsvarande URL\n"
-" till arkivet. OM REV anges, avgör den var MÅL först letas upp.\n"
-"\n"
-" Standardvärdet för MÅL är \".\", vilket innebär arkiv-URL:en till\n"
-" arbetskopian i aktuell katalog.\n"
+
+#: ../svnbench/svnbench.c:263
+msgid ""
+" With --verbose, the following fields will be fetched for each item:\n"
"\n"
+msgstr ""
" Om --verbose används, visas status med följande fält:\n"
"\n"
-" Revisionsnummer för senaste arkiveringen\n"
-" Författare till senaste arkiveringen\n"
-" Om filen är låst, bokstaven \"O\". (Använd \"svn info URL\" för mer info)\n"
-" Storlek (i byte)\n"
-" Datum och tid för senaste arkiveringen\n"
-#: ../svnbench/svnbench.c:270
+#: ../svnbench/svnbench.c:274
msgid ""
"Fetch the log messages for a set of revision(s) and/or path(s).\n"
"usage: 1. null-log [PATH][@REV]\n"
" 2. null-log URL[@REV] [PATH...]\n"
"\n"
+msgstr ""
+"Hämta loggmeddelanden för revisioner och/eller filer.\n"
+"användning: 1. null-log [SÖKVÄG][@REV]\n"
+" 2. null-log URL[@REV] [SÖKVÄG...]\n"
+"\n"
+
+#: ../svnbench/svnbench.c:278
+msgid ""
" 1. Fetch the log messages for the URL corresponding to PATH\n"
" (default: '.'). If specified, REV is the revision in which the\n"
" URL is first looked up, and the default revision range is REV:1.\n"
" If REV is not specified, the default revision range is BASE:1,\n"
" since the URL might not exist in the HEAD revision.\n"
"\n"
-" 2. Fetch the log messages for the PATHs (default: '.') under URL.\n"
-" If specified, REV is the revision in which the URL is first\n"
-" looked up, and the default revision range is REV:1; otherwise,\n"
-" the URL is looked up in HEAD, and the default revision range is\n"
-" HEAD:1.\n"
-"\n"
-" Multiple '-c' or '-r' options may be specified (but not a\n"
-" combination of '-c' and '-r' options), and mixing of forward and\n"
-" reverse ranges is allowed.\n"
-"\n"
-" With -v, also print all affected paths with each log message.\n"
-" With -q, don't print the log message body itself (note that this is\n"
-" compatible with -v).\n"
-"\n"
-" Each log message is printed just once, even if more than one of the\n"
-" affected paths for that revision were explicitly requested. Logs\n"
-" follow copy history by default. Use --stop-on-copy to disable this\n"
-" behavior, which can be useful for determining branchpoints.\n"
msgstr ""
-"Hämta loggmeddelanden för revisioner och/eller filer.\n"
-"användning: 1. null-log [SÖKVÄG][@REV]\n"
-" 2. null-log URL[@REV] [SÖKVÄG...]\n"
-"\n"
" 1. Hämta loggmeddelanden för URL:en som motsvarar SÖKVÄG (\".\" om ej\n"
" angiven). Om REV anges avgör den var SÖKVÄG letas upp, och standard-\n"
" värdet för revisionsområdet är då REV:1. Annars är standardvärdet\n"
" för revisionsområdet BASE:1 då URL:en kanske inte finns i\n"
" HEAD-revisionen.\n"
"\n"
+
+#: ../svnbench/svnbench.c:284
+msgid ""
+" 2. Fetch the log messages for the PATHs (default: '.') under URL.\n"
+" If specified, REV is the revision in which the URL is first\n"
+" looked up, and the default revision range is REV:1; otherwise,\n"
+" the URL is looked up in HEAD, and the default revision range is\n"
+" HEAD:1.\n"
+"\n"
+msgstr ""
" 2. Hämta loggmeddelanden för varje SÖKVÄG (\".\" om ingen angiven) under\n"
" URL. Om REV anges avgör den var SÖKVÄG letas upp, och standardvärdet\n"
" för revisionsområdet är då REV:1. Annars letas URL upp i HEAD och\n"
" standardvärdet för revisionsområdet är HEAD:1.\n"
"\n"
-" Flaggorna \"-c\" och \"-r\" kan förekomma flera gånger (men inte blandas),\n"
-" och det går att blanda områden angivna framlänges och baklänges.\n"
+
+#: ../svnbench/svnbench.c:294
+msgid ""
+" With -v, also print all affected paths with each log message.\n"
+" With -q, don't print the log message body itself (note that this is\n"
+" compatible with -v).\n"
"\n"
+msgstr ""
" Om -v används skrivs även alla berörda sökvägar ut med varje loggmeddelande.\n"
" Om -q används, skrivs inte loggmeddelanden ut (kan användas tillsammans med\n"
-" -v).\n"
"\n"
+
+#: ../svnbench/svnbench.c:298
+msgid ""
+" Each log message is printed just once, even if more than one of the\n"
+" affected paths for that revision were explicitly requested. Logs\n"
+" follow copy history by default. Use --stop-on-copy to disable this\n"
+" behavior, which can be useful for determining branchpoints.\n"
+msgstr ""
" Varje loggmeddelande skrivs endast ut en gång, även om flera av de\n"
" berörda sökvägarna angavs explicit. Loggar följer kopieringshistorik som\n"
" standard. Använd --stop-on-copy för att slå av detta, vilket kan vara\n"
" användbart för att avgöra förgreningspunkter.\n"
-#: ../svnbench/svnbench.c:304
+#: ../svnbench/svnbench.c:309
msgid ""
"Display information about a local or remote item.\n"
"usage: null-info [TARGET[@REV]...]\n"
"\n"
-" Print information about each TARGET (default: '.').\n"
-" TARGET may be either a working-copy path or URL. If specified, REV\n"
-" determines in which revision the target is first looked up.\n"
msgstr ""
"Visa information om en fil eller katalog - lokal eller från ett arkiv.\n"
"användning: null-info [MÅL[@REV]...]\n"
"\n"
+
+#: ../svnbench/svnbench.c:312
+msgid ""
+" Print information about each TARGET (default: '.').\n"
+" TARGET may be either a working-copy path or URL. If specified, REV\n"
+" determines in which revision the target is first looked up.\n"
+msgstr ""
" Skriv ut information om varje angivet MÃ…L (\".\" om inget anges).\n"
" MÅL kan antingen vara en arbetskopia eller en URL. Om REV anges, avgör\n"
" den i vilken revision målet letas upp.\n"
-#: ../svnbench/svnbench.c:802
+#: ../svnbench/svnbench.c:808
#, c-format
msgid ""
"Subcommand '%s' doesn't accept option '%s'\n"
@@ -18877,17 +20068,17 @@ msgstr ""
"Underkommandot \"%s\" tillåter inte flaggan \"%s\"\n"
"Skriv \"svnbench help %s\" för användning.\n"
-#: ../svnbench/svnbench.c:994
+#: ../svnbench/svnbench.c:1000
#, c-format
msgid "Try 'svnbench help %s' for more information"
msgstr "Skriv \"svnbench help %s\" för vidare information"
-#: ../svnbench/svnbench.c:1019
+#: ../svnbench/svnbench.c:1025
#, c-format
msgid "%15.6f seconds taken\n"
msgstr "tog %15.6f s\n"
-#: ../svnbench/svnbench.c:1026
+#: ../svnbench/svnbench.c:1032
#, c-format
msgid "%15s bytes transferred over network\n"
msgstr "%15s byte överförda över nätverket\n"
@@ -19001,7 +20192,7 @@ msgstr ""
"Filtrera bort noder med angivna prefix från dumpströmmen.\n"
"användning: svndumpfilter exclude SÖKVÄGS_PREFIX...\n"
-#: ../svndumpfilter/svndumpfilter.c:992
+#: ../svndumpfilter/svndumpfilter.c:993
msgid ""
"Filter out nodes without given prefixes from dumpstream.\n"
"usage: svndumpfilter include PATH_PREFIX...\n"
@@ -19009,7 +20200,7 @@ msgstr ""
"Filtrera bort noder utan angivna prefix från dumpströmmen.\n"
"användning: svndumpfilter include SÖKVÄGS_PREFIX...\n"
-#: ../svndumpfilter/svndumpfilter.c:1001
+#: ../svndumpfilter/svndumpfilter.c:1003
msgid ""
"Describe the usage of this program or its subcommands.\n"
"usage: svndumpfilter help [SUBCOMMAND...]\n"
@@ -19017,7 +20208,7 @@ msgstr ""
"Visa hur detta program eller dess underkommandon används.\n"
"användning: svndumpfilter help [UNDERKOMMANDO...]\n"
-#: ../svndumpfilter/svndumpfilter.c:1075
+#: ../svndumpfilter/svndumpfilter.c:1078
msgid ""
"general usage: svndumpfilter SUBCOMMAND [ARGS & OPTIONS ...]\n"
"Subversion repository dump filtering tool.\n"
@@ -19034,47 +20225,47 @@ msgstr ""
"\n"
"Tillgängliga underkommandon:\n"
-#: ../svndumpfilter/svndumpfilter.c:1134
+#: ../svndumpfilter/svndumpfilter.c:1137
#, c-format
msgid "Excluding (and dropping empty revisions for) prefix patterns:\n"
msgstr "Utesluter (och tar bort tomma revisioner för) prefixmönster:\n"
-#: ../svndumpfilter/svndumpfilter.c:1136
+#: ../svndumpfilter/svndumpfilter.c:1139
#, c-format
msgid "Excluding prefix patterns:\n"
msgstr "Utesluter prefixmönster:\n"
-#: ../svndumpfilter/svndumpfilter.c:1139
+#: ../svndumpfilter/svndumpfilter.c:1142
#, c-format
msgid "Including (and dropping empty revisions for) prefix patterns:\n"
msgstr "Tar med (och tar bort tomma revisioner för) prefixmönster:\n"
-#: ../svndumpfilter/svndumpfilter.c:1141
+#: ../svndumpfilter/svndumpfilter.c:1144
#, c-format
msgid "Including prefix patterns:\n"
msgstr "Tar med prefixmönster:\n"
-#: ../svndumpfilter/svndumpfilter.c:1149
+#: ../svndumpfilter/svndumpfilter.c:1152
#, c-format
msgid "Excluding (and dropping empty revisions for) prefixes:\n"
msgstr "Utesluter (och tar bort tomma revisioner för) prefix:\n"
-#: ../svndumpfilter/svndumpfilter.c:1151
+#: ../svndumpfilter/svndumpfilter.c:1154
#, c-format
msgid "Excluding prefixes:\n"
msgstr "Utesluter prefix:\n"
-#: ../svndumpfilter/svndumpfilter.c:1154
+#: ../svndumpfilter/svndumpfilter.c:1157
#, c-format
msgid "Including (and dropping empty revisions for) prefixes:\n"
msgstr "Tar med (och tar bort tomma revisioner för) prefix:\n"
-#: ../svndumpfilter/svndumpfilter.c:1156
+#: ../svndumpfilter/svndumpfilter.c:1159
#, c-format
msgid "Including prefixes:\n"
msgstr "Tar med prefix:\n"
-#: ../svndumpfilter/svndumpfilter.c:1184
+#: ../svndumpfilter/svndumpfilter.c:1187
#, c-format
msgid ""
"Dropped %d revision.\n"
@@ -19089,27 +20280,27 @@ msgstr[1] ""
"Hoppade över %d revisioner.\n"
"\n"
-#: ../svndumpfilter/svndumpfilter.c:1192
+#: ../svndumpfilter/svndumpfilter.c:1195
msgid "Revisions renumbered as follows:\n"
msgstr "Revisionerna har numrerats om enligt följande:\n"
-#: ../svndumpfilter/svndumpfilter.c:1219
+#: ../svndumpfilter/svndumpfilter.c:1222
#, c-format
msgid " %ld => (dropped)\n"
msgstr " %ld => (borttagen)\n"
-#: ../svndumpfilter/svndumpfilter.c:1234
+#: ../svndumpfilter/svndumpfilter.c:1237
#, c-format
msgid "Dropped %d node:\n"
msgid_plural "Dropped %d nodes:\n"
msgstr[0] "Tog bort %d noder:\n"
msgstr[1] "Tog bort %d noder:\n"
-#: ../svndumpfilter/svndumpfilter.c:1393
+#: ../svndumpfilter/svndumpfilter.c:1396
msgid "--drop-empty-revs cannot be used with --drop-all-empty-revs"
msgstr "--drop-empty-revs kan inte användas tillsammans med --drop-all-empty-revs"
-#: ../svndumpfilter/svndumpfilter.c:1504
+#: ../svndumpfilter/svndumpfilter.c:1507
#, c-format
msgid ""
"\n"
@@ -19118,7 +20309,7 @@ msgstr ""
"\n"
"Fel: inga prefix angivna.\n"
-#: ../svndumpfilter/svndumpfilter.c:1535
+#: ../svndumpfilter/svndumpfilter.c:1538
#, c-format
msgid ""
"Subcommand '%s' doesn't accept option '%s'\n"
@@ -19127,7 +20318,7 @@ msgstr ""
"Underkommandot \"%s\" tillåter inte flaggan \"%s\"\n"
"Skriv \"svndumpfilter help %s\" för användning.\n"
-#: ../svndumpfilter/svndumpfilter.c:1553
+#: ../svndumpfilter/svndumpfilter.c:1556
msgid "Try 'svndumpfilter help' for more info"
msgstr "Skriv \"svndumpfilter help\" för med information"
@@ -19249,25 +20440,45 @@ msgstr ""
msgid ""
"usage: svnfsfs help [SUBCOMMAND...]\n"
"\n"
-"Describe the usage of this program or its subcommands.\n"
msgstr ""
"användning: svnfsfs help [UNDERKOMMANDO...]\n"
"\n"
-"Visa hur detta program eller dess underkommandon används.\n"
-#: ../svnfsfs/svnfsfs.c:122
+#: ../svnfsfs/svnfsfs.c:124
msgid ""
"usage: svnfsfs dump-index REPOS_PATH -r REV\n"
"\n"
+msgstr ""
+"användning: svnfsfs dump-index ARKIVSÖKVÄG -r REV\n"
+"\n"
+
+#: ../svnfsfs/svnfsfs.c:126
+msgid ""
"Dump the index contents for the revision / pack file containing revision REV\n"
"to console. This is only available for FSFS format 7 (SVN 1.9+) repositories.\n"
"The table produced contains a header in the first line followed by one line\n"
"per index entry, ordered by location in the revision / pack file. Columns:\n"
"\n"
+msgstr ""
+"Skriv innehållet i indexet för revision/packfilen som innehåller\n"
+"revision REV till konsolen. Detta är endast tillgängligt för\n"
+"FSFS-arkiv på format 7 (SVN 1.9 eller senare).\n"
+"\n"
+
+#: ../svnfsfs/svnfsfs.c:131
+msgid ""
" * Byte offset (hex) at which the item starts\n"
" * Length (hex) of the item in bytes\n"
" * Item type (string) is one of the following:\n"
"\n"
+msgstr ""
+" * Byteposition (hex) där objektet börjar\n"
+" * Längd (hex) av objektet i byte\n"
+" * Objekttyp (sträng), en av följande:\n"
+"\n"
+
+#: ../svnfsfs/svnfsfs.c:135
+msgid ""
" none ... Unused section. File contents shall be NULs.\n"
" frep ... File representation.\n"
" drep ... Directory representation.\n"
@@ -19278,27 +20489,7 @@ msgid ""
" rep .... Representation of unknown type. Should not be used.\n"
" ??? .... Invalid. Index data is corrupt.\n"
"\n"
-" The distinction between frep, drep, fprop and dprop is a mere internal\n"
-" classification used for various optimizations and does not affect the\n"
-" operational correctness.\n"
-"\n"
-" * Revision that the item belongs to (decimal)\n"
-" * Item number (decimal) within that revision\n"
-" * Modified FNV1a checksum (8 hex digits)\n"
msgstr ""
-"användning: svnfsfs dump-index ARKIVSÖKVÄG -r REV\n"
-"\n"
-"Skriv innehållet i indexet för revision/packfilen som innehåller\n"
-"revision REV till konsolen. Detta är endast tillgängligt för\n"
-"FSFS-arkiv på format 7 (SVN 1.9 eller senare).\n"
-"\n"
-"Den producerade tabellen innehåller ett huvud på första raden följt av\n"
-"en indexpost per rad, i positionsordning från revision/packfilen. Kolumner:\n"
-"\n"
-" * Byteposition (hex) där objektet börjar\n"
-" * Längd (hex) av objektet i byte\n"
-" * Objekttyp (sträng), en av följande:\n"
-"\n"
" \"none\" ... Oanvänd sektion. Filinnehållet utgörs av nollbytes.\n"
" \"frep\" ... Filrepresentation.\n"
" \"drep\" ... Katalogrepresentation.\n"
@@ -19309,46 +20500,67 @@ msgstr ""
" \"rep\" .... Representation av okänd typ. Borde ej användas.\n"
" \"???\" .... Ogiltig. Trasigt indexdata.\n"
"\n"
+
+#: ../svnfsfs/svnfsfs.c:145
+msgid ""
+" The distinction between frep, drep, fprop and dprop is a mere internal\n"
+" classification used for various optimizations and does not affect the\n"
+" operational correctness.\n"
+"\n"
+msgstr ""
" Skillnaden mellan frep, drep, fprop och dprop är bara en\n"
" intern klassindelning för diverse optimeringar och påverkar\n"
" inte korrektheten i drift.\n"
"\n"
+
+#: ../svnfsfs/svnfsfs.c:149
+msgid ""
+" * Revision that the item belongs to (decimal)\n"
+" * Item number (decimal) within that revision\n"
+" * Modified FNV1a checksum (8 hex digits)\n"
+msgstr ""
" * Revision som objektet tillhör (decimalt)\n"
" * Objektnummer (decimalt) inom den revisionen\n"
" * Modifierad FNV1a-kontrollsumma (8 hexsiffror)\n"
-#: ../svnfsfs/svnfsfs.c:148
+#: ../svnfsfs/svnfsfs.c:156
msgid ""
"usage: svnfsfs load-index REPOS_PATH\n"
"\n"
+msgstr ""
+"användning: svnfsfs load-index ARKIVSÖKVÄG\n"
+"\n"
+
+#: ../svnfsfs/svnfsfs.c:158
+msgid ""
"Read index contents from console. The format is the same as produced by the\n"
"dump-index command, except that checksum as well as header are optional and will\n"
"be ignored. The data must cover the full revision / pack file; the revision\n"
"number is automatically extracted from input stream. No ordering is required.\n"
msgstr ""
-"användning: svnfsfs load-index ARKIVSÖKVÄG\n"
-"\n"
"Läs indexinnehåll från konsolen. Formatet är samma som kommandot dump-index\n"
"producerar, förutom att kontrollsumman och huvudet är valfria och inte\n"
"används. Datan måste täcka hela revision/packfilen; revisionsnumret tas\n"
"automatiskt från inmatningsströmmen. Ingen speciell ordning krävs.\n"
-#: ../svnfsfs/svnfsfs.c:156
+#: ../svnfsfs/svnfsfs.c:166
msgid ""
"usage: svnfsfs stats REPOS_PATH\n"
"\n"
-"Write object size statistics to console.\n"
msgstr ""
"användning: svnfsfs stats ARKIVSÖKVÄG\n"
"\n"
-"Skriv statistik för objektstorlek till konsolen.\n"
-#: ../svnfsfs/svnfsfs.c:176
+#: ../svnfsfs/svnfsfs.c:168
+msgid "Write object size statistics to console.\n"
+msgstr "Skriv statistik för objektstorlek till konsolen.\n"
+
+#: ../svnfsfs/svnfsfs.c:188
#, c-format
msgid "%s repositories are not supported"
msgstr "%s-arkiv stöds ej"
-#: ../svnfsfs/svnfsfs.c:192
+#: ../svnfsfs/svnfsfs.c:204
msgid ""
"general usage: svnfsfs SUBCOMMAND REPOS_PATH [ARGS & OPTIONS ...]\n"
"Subversion FSFS repository manipulation tool.\n"
@@ -19364,7 +20576,7 @@ msgstr ""
"\n"
"Tillgängliga underkommandon:\n"
-#: ../svnfsfs/svnfsfs.c:423
+#: ../svnfsfs/svnfsfs.c:435
#, c-format
msgid ""
"Subcommand '%s' doesn't accept option '%s'\n"
@@ -19373,7 +20585,7 @@ msgstr ""
"Underkommandot \"%s\" tillåter inte flaggan \"%s\"\n"
"Skriv \"svnfsfs help %s\" för användning.\n"
-#: ../svnfsfs/svnfsfs.c:455
+#: ../svnfsfs/svnfsfs.c:467
msgid "Try 'svnfsfs help' for more info"
msgstr "Skriv \"svnfsfs help\" för mer information"
@@ -19445,7 +20657,7 @@ msgstr ""
" -U N, --context N: Visa N raders sammanhang \n"
" -p, --show-c-function: Visa funktionsnamn i C"
-#: ../svnlook/svnlook.c:206 ../svnrdump/svnrdump.c:108
+#: ../svnlook/svnlook.c:206 ../svnrdump/svnrdump.c:114
#: ../svnserve/svnserve.c:421 ../svnversion/svnversion.c:146
msgid "no progress (only errors) to stderr"
msgstr ""
@@ -19456,218 +20668,261 @@ msgstr ""
msgid ""
"usage: svnlook author REPOS_PATH\n"
"\n"
-"Print the author.\n"
msgstr ""
"användning: svnlook author ARKIVSÖKVÄG\n"
"\n"
-"Visa författaren.\n"
-#: ../svnlook/svnlook.c:223
+#: ../svnlook/svnlook.c:220
+msgid "Print the author.\n"
+msgstr "Visa författaren.\n"
+
+#: ../svnlook/svnlook.c:225
msgid ""
"usage: svnlook cat REPOS_PATH FILE_PATH\n"
"\n"
-"Print the contents of a file. Leading '/' on FILE_PATH is optional.\n"
msgstr ""
"användning: svnlook cat ARKIVSÖKVÄG FIL_SÖKVÄG\n"
"\n"
-"Visa innehållet i en fil. Inledande \"/\" är valfritt för FIL_SÖKVÄG.\n"
-#: ../svnlook/svnlook.c:228
+#: ../svnlook/svnlook.c:227
+msgid "Print the contents of a file. Leading '/' on FILE_PATH is optional.\n"
+msgstr "Visa innehållet i en fil. Inledande \"/\" är valfritt för FIL_SÖKVÄG.\n"
+
+#: ../svnlook/svnlook.c:232
msgid ""
"usage: svnlook changed REPOS_PATH\n"
"\n"
-"Print the paths that were changed.\n"
msgstr ""
"användning: svnlook changed ARKIVSÖKVÄG\n"
"\n"
-"Visa vilka sökvägar som har ändrats.\n"
-#: ../svnlook/svnlook.c:233
+#: ../svnlook/svnlook.c:234
+msgid "Print the paths that were changed.\n"
+msgstr "Visa vilka sökvägar som har ändrats.\n"
+
+#: ../svnlook/svnlook.c:239
msgid ""
"usage: svnlook date REPOS_PATH\n"
"\n"
-"Print the datestamp.\n"
msgstr ""
"användning: svnlook date ARKIVSÖKVÄG\n"
"\n"
-"Visa datumstämpel.\n"
-#: ../svnlook/svnlook.c:238
+#: ../svnlook/svnlook.c:241
+msgid "Print the datestamp.\n"
+msgstr "Visa datumstämpel.\n"
+
+#: ../svnlook/svnlook.c:246
msgid ""
"usage: svnlook diff REPOS_PATH\n"
"\n"
-"Print GNU-style diffs of changed files and properties.\n"
msgstr ""
"användning: svnlook diff ARKIVSÖKVÄG\n"
"\n"
-"Visa diffar i GNU-stil för ändrade filer och egenskaper.\n"
-#: ../svnlook/svnlook.c:245
+#: ../svnlook/svnlook.c:248
+msgid "Print GNU-style diffs of changed files and properties.\n"
+msgstr "Visa diffar i GNU-stil för ändrade filer och egenskaper.\n"
+
+#: ../svnlook/svnlook.c:255
msgid ""
"usage: svnlook dirs-changed REPOS_PATH\n"
"\n"
-"Print the directories that were themselves changed (property edits)\n"
-"or whose file children were changed.\n"
msgstr ""
"användning: svnlook dirs-changed ARKIVSÖKVÄG\n"
"\n"
+
+#: ../svnlook/svnlook.c:257
+msgid ""
+"Print the directories that were themselves changed (property edits)\n"
+"or whose file children were changed.\n"
+msgstr ""
"Visa kataloger som själva har ändrats (egenskapsändringar) eller vars\n"
"barnfiler har ändrats.\n"
-#: ../svnlook/svnlook.c:251
+#: ../svnlook/svnlook.c:263
msgid ""
"usage: svnlook filesize REPOS_PATH PATH_IN_REPOS\n"
"\n"
-"Print the size (in bytes) of the file located at PATH_IN_REPOS as\n"
-"it is represented in the repository.\n"
msgstr ""
"användning: svnlook filesize ARKIVSÖKVÄG SÖKVÄG_I_ARKIV\n"
"\n"
+
+#: ../svnlook/svnlook.c:265
+msgid ""
+"Print the size (in bytes) of the file located at PATH_IN_REPOS as\n"
+"it is represented in the repository.\n"
+msgstr ""
"Visa storleken (i byte) av filen i SÖKVÄG_I_ARKIV sådan den representeras\n"
"i arkivet.\n"
-#: ../svnlook/svnlook.c:257
+#: ../svnlook/svnlook.c:271
msgid ""
"usage: svnlook help [SUBCOMMAND...]\n"
"\n"
-"Describe the usage of this program or its subcommands.\n"
msgstr ""
"användning: svnlook help [UNDERKOMMANDO...]\n"
"\n"
-"Beskriv användningen av detta program eller dess underkommandon.\n"
-#: ../svnlook/svnlook.c:262
+#: ../svnlook/svnlook.c:278
msgid ""
"usage: svnlook history REPOS_PATH [PATH_IN_REPOS]\n"
"\n"
-"Print information about the history of a path in the repository (or\n"
-"the root directory if no path is supplied).\n"
msgstr ""
"användning: svnlook history ARKIVSÖKVÄG [SÖKVÄG_I_ARKIV]\n"
"\n"
+
+#: ../svnlook/svnlook.c:280
+msgid ""
+"Print information about the history of a path in the repository (or\n"
+"the root directory if no path is supplied).\n"
+msgstr ""
"Visa information om historiken för en sökväg i arkivet (eller rotkatalogen\n"
"om ingen sökväg anges).\n"
-#: ../svnlook/svnlook.c:268
+#: ../svnlook/svnlook.c:286
msgid ""
"usage: svnlook info REPOS_PATH\n"
"\n"
-"Print the author, datestamp, log message size, and log message.\n"
msgstr ""
"användning: svnlook info ARKIVSÖKVÄG\n"
"\n"
+
+#: ../svnlook/svnlook.c:288
+msgid "Print the author, datestamp, log message size, and log message.\n"
+msgstr ""
"Visa författaren, datumstämpeln, loggmeddelandets storlek samt\n"
"själva loggmeddelandet.\n"
-#: ../svnlook/svnlook.c:273
+#: ../svnlook/svnlook.c:293
msgid ""
"usage: svnlook lock REPOS_PATH PATH_IN_REPOS\n"
"\n"
-"If a lock exists on a path in the repository, describe it.\n"
msgstr ""
"användning: svnlook lock ARKIVSÖKVÄG SÖKVÄG_I_ARKIV\n"
"\n"
-"Om ett lås finns på en sökväg i arkivet, visa information om det.\n"
-#: ../svnlook/svnlook.c:278
+#: ../svnlook/svnlook.c:295
+msgid "If a lock exists on a path in the repository, describe it.\n"
+msgstr "Om ett lås finns på en sökväg i arkivet, visa information om det.\n"
+
+#: ../svnlook/svnlook.c:300
msgid ""
"usage: svnlook log REPOS_PATH\n"
"\n"
-"Print the log message.\n"
msgstr ""
"användning: svnlook log ARKIVSÖKVÄG\n"
"\n"
-"Visa loggmeddelandet.\n"
-#: ../svnlook/svnlook.c:283
+#: ../svnlook/svnlook.c:302
+msgid "Print the log message.\n"
+msgstr "Visa loggmeddelandet.\n"
+
+#: ../svnlook/svnlook.c:307
msgid ""
"usage: 1. svnlook propget REPOS_PATH PROPNAME PATH_IN_REPOS\n"
" 2. svnlook propget --revprop REPOS_PATH PROPNAME\n"
"\n"
-"Print the raw value of a property on a path in the repository.\n"
-"With --revprop, print the raw value of a revision property.\n"
msgstr ""
"användning: 1. svnlook propget ARKIVSÖKVÄG EGENSKAPSNAMN\n"
" 2. svnlook propget --revprop ARKIVSÖKVÄG\n"
" EGENSKAPSNAMN\n"
"\n"
+
+#: ../svnlook/svnlook.c:312
+msgid ""
+"Print the raw value of a property on a path in the repository.\n"
+"With --revprop, print the raw value of a revision property.\n"
+msgstr ""
"Skriv ut det råa värdet för en egenskap på en sökväg i arkivet.\n"
"Om --revprop används, skriv ut det råa värdet på en revisionsegenskap.\n"
-#: ../svnlook/svnlook.c:292
+#: ../svnlook/svnlook.c:318
msgid ""
"usage: 1. svnlook proplist REPOS_PATH PATH_IN_REPOS\n"
" 2. svnlook proplist --revprop REPOS_PATH\n"
"\n"
-"List the properties of a path in the repository, or\n"
-"with the --revprop option, revision properties.\n"
-"With -v, show the property values too.\n"
msgstr ""
"användning: 1. svnlook proplist ARKIVSÖKVÄG SÖKVÄG_I_ARKIV\n"
" 2. svnlook proplist --revprop ARKIVSÖKVÄG\n"
"\n"
+
+#: ../svnlook/svnlook.c:323
+msgid ""
+"List the properties of a path in the repository, or\n"
+"with the --revprop option, revision properties.\n"
+"With -v, show the property values too.\n"
+msgstr ""
"Lista egenskaperna för en sökväg i arkivet eller, om --revprop anges,\n"
"visa revisionsegenskaper. Med -v visas även egenskapernas värden.\n"
-#: ../svnlook/svnlook.c:303
+#: ../svnlook/svnlook.c:331
msgid ""
"usage: svnlook tree REPOS_PATH [PATH_IN_REPOS]\n"
"\n"
-"Print the tree, starting at PATH_IN_REPOS (if supplied, at the root\n"
-"of the tree otherwise), optionally showing node revision ids.\n"
msgstr ""
"användning: svnlook tree ARKIVSÖKVÄG [SÖKVÄG_I_ARKIV]\n"
"\n"
+
+#: ../svnlook/svnlook.c:333
+msgid ""
+"Print the tree, starting at PATH_IN_REPOS (if supplied, at the root\n"
+"of the tree otherwise), optionally showing node revision ids.\n"
+msgstr ""
"Visa trädet, med början i SÖKVÄG_I_ARKIV (om den anges, annars används trädets\n"
"rot). Visa även nodrevisions-ID:n om så önskas.\n"
-#: ../svnlook/svnlook.c:309
+#: ../svnlook/svnlook.c:339
msgid ""
"usage: svnlook uuid REPOS_PATH\n"
"\n"
-"Print the repository's UUID.\n"
msgstr ""
"användning: svnlook uuid ARKIVSÖKVÄG\n"
"\n"
-"Visa arkivets UUID.\n"
-#: ../svnlook/svnlook.c:314
+#: ../svnlook/svnlook.c:341
+msgid "Print the repository's UUID.\n"
+msgstr "Visa arkivets UUID.\n"
+
+#: ../svnlook/svnlook.c:346
msgid ""
"usage: svnlook youngest REPOS_PATH\n"
"\n"
-"Print the youngest revision number.\n"
msgstr ""
"användning: svnlook youngest ARKIVSÖKVÄG\n"
"\n"
-"Visa det yngsta revisionsnumret.\n"
-#: ../svnlook/svnlook.c:790
+#: ../svnlook/svnlook.c:348
+msgid "Print the youngest revision number.\n"
+msgstr "Visa det yngsta revisionsnumret.\n"
+
+#: ../svnlook/svnlook.c:824
#, c-format
msgid "%sProperty changes on: %s%s"
msgstr "%sEgenskapsändringar för: %s%s"
-#: ../svnlook/svnlook.c:857
+#: ../svnlook/svnlook.c:891
#, c-format
msgid "Copied: %s (from rev %ld, %s)\n"
msgstr "Kopierad: %s (från revision %ld, %s)\n"
-#: ../svnlook/svnlook.c:925
+#: ../svnlook/svnlook.c:959
msgid "Added"
msgstr "Tillagd"
-#: ../svnlook/svnlook.c:926
+#: ../svnlook/svnlook.c:960
msgid "Deleted"
msgstr "Raderad"
-#: ../svnlook/svnlook.c:927
+#: ../svnlook/svnlook.c:961
msgid "Modified"
msgstr "Ändrad"
-#: ../svnlook/svnlook.c:928
+#: ../svnlook/svnlook.c:962
msgid "Index"
msgstr "Index"
-#: ../svnlook/svnlook.c:939
+#: ../svnlook/svnlook.c:973
msgid ""
"(Binary files differ)\n"
"\n"
@@ -19675,30 +20930,30 @@ msgstr ""
"(Binära filer skiljer sig åt)\n"
"\n"
-#: ../svnlook/svnlook.c:1208
+#: ../svnlook/svnlook.c:1242
msgid "unknown"
msgstr "okänd"
-#: ../svnlook/svnlook.c:1265
+#: ../svnlook/svnlook.c:1299
#, c-format
msgid "Transaction '%s' is not based on a revision; how odd"
msgstr "Transaktionen \"%s\" är inte baserad på en revision; skumt"
-#: ../svnlook/svnlook.c:1408
+#: ../svnlook/svnlook.c:1442
#, c-format
msgid "'%s' is a URL, probably should be a path"
msgstr "\"%s\" är en URL; ska troligen vara en sökväg"
-#: ../svnlook/svnlook.c:1431 ../svnlook/svnlook.c:1454
+#: ../svnlook/svnlook.c:1465 ../svnlook/svnlook.c:1488
#, c-format
msgid "Path '%s' is not a file"
msgstr "Sökvägen \"%s\" är inte en fil"
-#: ../svnlook/svnlook.c:1588
+#: ../svnlook/svnlook.c:1622
msgid "History item limit reached"
msgstr "Gräns nådd för element i historiken"
-#: ../svnlook/svnlook.c:1607
+#: ../svnlook/svnlook.c:1641
#, c-format
msgid ""
"REVISION PATH <ID>\n"
@@ -19707,7 +20962,7 @@ msgstr ""
"REVISION SÖKVÄG <ID>\n"
"-------- -----------\n"
-#: ../svnlook/svnlook.c:1612
+#: ../svnlook/svnlook.c:1646
#, c-format
msgid ""
"REVISION PATH\n"
@@ -19716,41 +20971,41 @@ msgstr ""
"REVISION SÖKVÄG\n"
"-------- ------\n"
-#: ../svnlook/svnlook.c:1685
+#: ../svnlook/svnlook.c:1719
#, c-format
msgid "Property '%s' not found on revision %ld"
msgstr "Egenskapen \"%s\" finns inte för revision %ld"
-#: ../svnlook/svnlook.c:1689
+#: ../svnlook/svnlook.c:1723
#, c-format
msgid "Property '%s' not found on transaction %s"
msgstr "Egenskapen \"%s\" finns inte i transaktion %s"
-#: ../svnlook/svnlook.c:1698
+#: ../svnlook/svnlook.c:1732
#, c-format
msgid "Property '%s' not found on path '%s' or inherited from a parent in revision %ld"
msgstr "Egenskapen \"%s\" finns inte på sökvägen \"%s\" eller ärvd från en förälder i revision %ld"
-#: ../svnlook/svnlook.c:1704
+#: ../svnlook/svnlook.c:1738
#, c-format
msgid "Property '%s' not found on path '%s' in revision %ld"
msgstr "Egenskapen \"%s\" finns inte på sökvägen \"%s\" i revision %ld"
-#: ../svnlook/svnlook.c:1712
+#: ../svnlook/svnlook.c:1746
#, c-format
msgid "Property '%s' not found on path '%s' or inherited from a parent in transaction %s"
msgstr "Egenskapen \"%s\" finns inte på sökvägen \"%s\" eller ärvd från en förälder i transaktion %s"
-#: ../svnlook/svnlook.c:1718
+#: ../svnlook/svnlook.c:1752
#, c-format
msgid "Property '%s' not found on path '%s' in transaction %s"
msgstr "Egenskapen \"%s\" finns inte på sökvägen \"%s\" i transaktion %s"
-#: ../svnlook/svnlook.c:2055
+#: ../svnlook/svnlook.c:2089
msgid "Missing repository path argument"
msgstr "Arkivargument saknas"
-#: ../svnlook/svnlook.c:2207
+#: ../svnlook/svnlook.c:2241
msgid ""
"general usage: svnlook SUBCOMMAND REPOS_PATH [ARGS & OPTIONS ...]\n"
"Subversion repository inspection tool.\n"
@@ -19772,7 +21027,7 @@ msgstr ""
"\n"
"Tillgängliga underkommandon:\n"
-#: ../svnlook/svnlook.c:2286
+#: ../svnlook/svnlook.c:2320
#, c-format
msgid ""
"Comment (%i line):\n"
@@ -19787,48 +21042,48 @@ msgstr[1] ""
"Kommentar (%i rader):\n"
"%s\n"
-#: ../svnlook/svnlook.c:2338
+#: ../svnlook/svnlook.c:2372
#, c-format
msgid "Missing propname argument"
msgstr "Egenskapsargument saknas"
-#: ../svnlook/svnlook.c:2339
+#: ../svnlook/svnlook.c:2373
#, c-format
msgid "Missing propname and repository path arguments"
msgstr "Egenskapsnamns- och arkivsökvägsargument saknas"
-#: ../svnlook/svnlook.c:2345
+#: ../svnlook/svnlook.c:2379
msgid "Missing propname or repository path argument"
msgstr "Egenskapsnamns- eller arkivsökvägsargument saknas"
-#: ../svnlook/svnlook.c:2499
+#: ../svnlook/svnlook.c:2533
msgid "Invalid revision number supplied"
msgstr "Ogiltigt revisionsnummer angivet"
-#: ../svnlook/svnlook.c:2622
+#: ../svnlook/svnlook.c:2656
msgid "The '--transaction' (-t) and '--revision' (-r) arguments cannot co-exist"
msgstr "Flaggorna \"--transaction\" (-t) och \"--revision\" (-r) kan inte anges samtidigt"
-#: ../svnlook/svnlook.c:2629
+#: ../svnlook/svnlook.c:2663
msgid "Cannot use the '--show-inherited-props' option with the '--revprop' option"
msgstr "Kan inte använda flaggan \"--show-inherited-props\" tillsammans med \"--revprop\""
-#: ../svnlook/svnlook.c:2686
+#: ../svnlook/svnlook.c:2720
#, c-format
msgid "Try 'svnadmin verify' instead.\n"
msgstr "Försök med \"svnadmin verify\" istället.\n"
-#: ../svnlook/svnlook.c:2719
+#: ../svnlook/svnlook.c:2753
#, c-format
msgid "Repository argument required\n"
msgstr "Arkivargument krävs\n"
-#: ../svnlook/svnlook.c:2728
+#: ../svnlook/svnlook.c:2762
#, c-format
msgid "'%s' is a URL when it should be a path\n"
msgstr "\"%s\" är en URL när den skulle vara en sökväg\n"
-#: ../svnlook/svnlook.c:2778
+#: ../svnlook/svnlook.c:2812
#, c-format
msgid ""
"Subcommand '%s' doesn't accept option '%s'\n"
@@ -19837,7 +21092,7 @@ msgstr ""
"Underkommandot \"%s\" tillåter inte flaggan \"%s\"\n"
"Skriv \"svnlook help %s\" för användning.\n"
-#: ../svnlook/svnlook.c:2809
+#: ../svnlook/svnlook.c:2843
msgid "Try 'svnlook help' for more info"
msgstr "Skriv \"svnlook help\" för mer information"
@@ -19959,7 +21214,7 @@ msgstr "--message (-m), --file (-F) och --with-revprop=svn:log kan inte använda
msgid "Invalid revision number '%s'"
msgstr "Ogiltigt revisionsnummer \"%s\""
-#: ../svnrdump/load_editor.c:230 ../svnsync/svnsync.c:353
+#: ../svnrdump/load_editor.c:230 ../svnsync/svnsync.c:358
#, c-format
msgid "Failed to get lock on destination repos, currently held by '%s'\n"
msgstr "Kunde inte låsa destinationsarkivet; det är för närvarande låst av \"%s\"\n"
@@ -19972,54 +21227,58 @@ msgstr "Målservern stöder inte atomisk ändring av revisionsegenskaper; överv
msgid ""
"usage: svnrdump dump URL [-r LOWER[:UPPER]]\n"
"\n"
+msgstr ""
+"användning: svnrdump dump URL [-r BÖRJAN[:SLUT]]\n"
+"\n"
+
+#: ../svnrdump/svnrdump.c:89
+msgid ""
"Dump revisions LOWER to UPPER of repository at remote URL to stdout\n"
"in a 'dumpfile' portable format. If only LOWER is given, dump that\n"
"one revision.\n"
msgstr ""
-"användning: svnrdump dump URL [-r BÖRJAN[:SLUT]]\n"
-"\n"
"Dumpa revisionerna BÖRJAN till SLUT av arkivet vid URL till standard ut\n"
"i ett portabelt \"dumpfile\"-format. Om bara BÖRJAN anges, dumpa bara\n"
"den revisionen.\n"
-#: ../svnrdump/svnrdump.c:93
+#: ../svnrdump/svnrdump.c:95
msgid ""
"usage: svnrdump load URL\n"
"\n"
-"Load a 'dumpfile' given on stdin to a repository at remote URL.\n"
msgstr ""
"användning: svnrdump load URL\n"
"\n"
-"Läs in en dumpfil från standard in till ett arkiv vid URL.\n"
#: ../svnrdump/svnrdump.c:97
+msgid "Load a 'dumpfile' given on stdin to a repository at remote URL.\n"
+msgstr "Läs in en dumpfil från standard in till ett arkiv vid URL.\n"
+
+#: ../svnrdump/svnrdump.c:101
msgid ""
"usage: svnrdump help [SUBCOMMAND...]\n"
"\n"
-"Describe the usage of this program or its subcommands.\n"
msgstr ""
"användning: svnadmin help [UNDERKOMMANDO...]\n"
"\n"
-"Beskriv hur det här programmet och dess underkommandon används.\n"
-#: ../svnrdump/svnrdump.c:110
+#: ../svnrdump/svnrdump.c:116
msgid "dump incrementally"
msgstr "dumpa inkrementellt"
-#: ../svnrdump/svnrdump.c:112
+#: ../svnrdump/svnrdump.c:118
msgid "skip revision property ARG (e.g., \"svn:author\")"
msgstr "hoppa över revisionsegenskapen ARG (t.ex. \"svn:author\")"
-#: ../svnrdump/svnrdump.c:132 ../svnserve/svnserve.c:413
+#: ../svnrdump/svnrdump.c:138 ../svnserve/svnserve.c:413
#: ../svnversion/svnversion.c:142
msgid "display this help"
msgstr "visa denna hjälp"
-#: ../svnrdump/svnrdump.c:161
+#: ../svnrdump/svnrdump.c:167
msgid "Read or write to a dumpfile instead of stdin/stdout"
msgstr "Läs eller skriv till en dumpfil istället för standard in/ut"
-#: ../svnrdump/svnrdump.c:667
+#: ../svnrdump/svnrdump.c:673
msgid ""
"general usage: svnrdump SUBCOMMAND URL [-r LOWER[:UPPER]]\n"
"Subversion remote repository dump and load tool.\n"
@@ -20036,20 +21295,20 @@ msgstr ""
"\n"
"Tillgängliga underkommandon:\n"
-#: ../svnrdump/svnrdump.c:712 ../svnrdump/svnrdump.c:746
+#: ../svnrdump/svnrdump.c:718 ../svnrdump/svnrdump.c:752
msgid "Unsupported revision specifier used; use only integer values or 'HEAD'"
msgstr "Ej stödd revisionsangivelse; använd endast heltal eller \"HEAD\""
-#: ../svnrdump/svnrdump.c:720 ../svnrdump/svnrdump.c:754
+#: ../svnrdump/svnrdump.c:726 ../svnrdump/svnrdump.c:760
#, c-format
msgid "Revision '%ld' does not exist"
msgstr "Revisionen \"%ld\" finns inte"
-#: ../svnrdump/svnrdump.c:764
+#: ../svnrdump/svnrdump.c:770
msgid "LOWER revision cannot be greater than UPPER revision; consider reversing your revision range"
msgstr "Revisionen BÖRJAN kan inte vara större än SLUT; byt plats på dem"
-#: ../svnrdump/svnrdump.c:1011
+#: ../svnrdump/svnrdump.c:1017
#, c-format
msgid ""
"Subcommand '%s' doesn't accept option '%s'\n"
@@ -20058,7 +21317,7 @@ msgstr ""
"Underkommandot \"%s\" tillåter inte flaggan \"%s\"\n"
"Skriv \"svnrdump help %s\" för användning.\n"
-#: ../svnrdump/svnrdump.c:1054
+#: ../svnrdump/svnrdump.c:1060
msgid "load subcommand with --password-from-stdin requires -F"
msgstr "Underkommandot \"load\" med --password-from-stdin måste användas med -F"
@@ -20536,12 +21795,31 @@ msgstr "Tjänsten kunde inte starta; ett internt fel inträffade då tjänsten s
msgid ""
"usage: svnsync initialize DEST_URL SOURCE_URL\n"
"\n"
+msgstr ""
+"användning: svnsync initialize DEST-URL KÄLL-URL\n"
+"\n"
+
+#: ../svnsync/svnsync.c:97
+msgid ""
"Initialize a destination repository for synchronization from\n"
"another repository.\n"
"\n"
+msgstr ""
+"Initiera ett destinationsarkiv för synkronisering från ett annat arkiv.\n"
+"\n"
+
+#: ../svnsync/svnsync.c:100
+msgid ""
"If the source URL is not the root of a repository, only the\n"
"specified part of the repository will be synchronized.\n"
"\n"
+msgstr ""
+"Om käll-URL:en inte är rot till ett arkiv kommer bara den angivna delen av\n"
+"arkivet synkroniseras.\n"
+"\n"
+
+#: ../svnsync/svnsync.c:103
+msgid ""
"The destination URL must point to the root of a repository which\n"
"has been configured to allow revision property changes. In\n"
"the general case, the destination repository must contain no\n"
@@ -20552,18 +21830,7 @@ msgid ""
"when initializing a copy of a repository as a mirror of that same\n"
"repository, for example.)\n"
"\n"
-"You should not commit to, or make revision property changes in,\n"
-"the destination repository by any method other than 'svnsync'.\n"
-"In other words, the destination repository should be a read-only\n"
-"mirror of the source repository.\n"
msgstr ""
-"användning: svnsync initialize DEST-URL KÄLL-URL\n"
-"\n"
-"Initiera ett destinationsarkiv för synkronisering från ett annat arkiv.\n"
-"\n"
-"Om käll-URL:en inte är rot till ett arkiv kommer bara den angivna delen av\n"
-"arkivet synkroniseras.\n"
-"\n"
"Destinations-URL:en måste utpeka roten till ett arkiv som tillåter ändring\n"
"av revisionsegenskaper. I allmänhet får destinationsarkivet inte innehålla\n"
"några arkiverade revisioner. Använd --allow-non-empty för att kringgå\n"
@@ -20572,107 +21839,142 @@ msgstr ""
"till exempel användbart när en kopia av ett arkiv skall tjäna som spegling\n"
"av samma arkiv.)\n"
"\n"
+
+#: ../svnsync/svnsync.c:113
+msgid ""
+"You should not commit to, or make revision property changes in,\n"
+"the destination repository by any method other than 'svnsync'.\n"
+"In other words, the destination repository should be a read-only\n"
+"mirror of the source repository.\n"
+msgstr ""
"Man bör inte arkivera till, eller göra ändringar av revisionsegenskaper i\n"
"destinationsarkivet på något annat sätt än med \"svnsync\". Med andra ord\n"
"bör destinationsarkivet vara en spegling av källarkivet som endast används\n"
"för läsning.\n"
-#: ../svnsync/svnsync.c:121
+#: ../svnsync/svnsync.c:122
msgid ""
"usage: svnsync synchronize DEST_URL [SOURCE_URL]\n"
"\n"
+msgstr ""
+"användning: svnsync synchronize DEST-URL [KÄLL-URL]\n"
+"\n"
+
+#: ../svnsync/svnsync.c:124
+msgid ""
"Transfer all pending revisions to the destination from the source\n"
"with which it was initialized.\n"
"\n"
+msgstr ""
+"Överför alla utestående revisioner till destinationen från källan som\n"
+"synkroniseringen förbereddes för.\n"
+"\n"
+
+#: ../svnsync/svnsync.c:127
+msgid ""
"If SOURCE_URL is provided, use that as the source repository URL,\n"
"ignoring what is recorded in the destination repository as the\n"
"source URL. Specifying SOURCE_URL is recommended in particular\n"
"if untrusted users/administrators may have write access to the\n"
"DEST_URL repository.\n"
msgstr ""
-"användning: svnsync synchronize DEST-URL [KÄLL-URL]\n"
-"\n"
-"Överför alla utestående revisioner till destinationen från källan som\n"
-"synkroniseringen förbereddes för.\n"
-"\n"
"Om KÄLL-URL anges kommer den användas som URL till källarkivet istället för\n"
"källan som var sparad i destinationsarkivet. Att ange KÄLL-URL rekommenderas\n"
"speciellt när icke betrodda användare eller förvaltare kan ha skrivande\n"
"Ã¥tkomst till arkivet DEST-URL.\n"
-#: ../svnsync/svnsync.c:134
+#: ../svnsync/svnsync.c:136
msgid ""
"usage:\n"
"\n"
+msgstr ""
+"användning:\n"
+"\n"
+
+#: ../svnsync/svnsync.c:138
+msgid ""
" 1. svnsync copy-revprops DEST_URL [SOURCE_URL]\n"
" 2. svnsync copy-revprops DEST_URL REV[:REV2]\n"
"\n"
+msgstr ""
+" 1. svnsync copy-revprops DEST-URL [KÄLL-URL]\n"
+" 2. svnsync copy-revprops DEST-URL REV[:REV2]\n"
+"\n"
+
+#: ../svnsync/svnsync.c:141
+msgid ""
"Copy the revision properties in a given range of revisions to the\n"
"destination from the source with which it was initialized. If the\n"
"revision range is not specified, it defaults to all revisions in\n"
"the DEST_URL repository. Note also that the 'HEAD' revision is the\n"
"latest in DEST_URL, not necessarily the latest in SOURCE_URL.\n"
"\n"
-"If SOURCE_URL is provided, use that as the source repository URL,\n"
-"ignoring what is recorded in the destination repository as the\n"
-"source URL. Specifying SOURCE_URL is recommended in particular\n"
-"if untrusted users/administrators may have write access to the\n"
-"DEST_URL repository.\n"
-"\n"
-"Unless you need to trigger the destination repositoy's revprop\n"
-"change hooks for all revision properties, it is recommended to use\n"
-"the --skip-unchanged option for best performance.\n"
-"\n"
-"Form 2 is deprecated syntax, equivalent to specifying \"-rREV[:REV2]\".\n"
msgstr ""
-"användning:\n"
-"\n"
-" 1. svnsync copy-revprops DEST-URL [KÄLL-URL]\n"
-" 2. svnsync copy-revprops DEST-URL REV[:REV2]\n"
-"\n"
"Kopiera revisionsegenskaperna i ett givet revisionsområde till destinationen\n"
"från källan som synkroniseringen förbereddes för. Om revisionsområdet inte\n"
"anges antas att alla revisioner i arkivet DEST-URL avsågs. Observera även\n"
"att revisionen \"HEAD\" är den senaste i DEST-URL, inte nödvändigtvis den\n"
"senaste i KÄLL-URL.\n"
"\n"
+
+#: ../svnsync/svnsync.c:147
+msgid ""
+"If SOURCE_URL is provided, use that as the source repository URL,\n"
+"ignoring what is recorded in the destination repository as the\n"
+"source URL. Specifying SOURCE_URL is recommended in particular\n"
+"if untrusted users/administrators may have write access to the\n"
+"DEST_URL repository.\n"
+"\n"
+msgstr ""
"Om KÄLL-URL anges kommer den användas som URL till källarkivet istället för\n"
"källan som var sparad i destinationsarkivet. Att ange KÄLL-URL rekommenderas\n"
"speciellt när icke betrodda användare eller förvaltare kan ha skrivande\n"
"Ã¥tkomst till arkivet DEST-URL.\n"
"\n"
+
+#: ../svnsync/svnsync.c:153
+msgid ""
+"Unless you need to trigger the destination repositoy's revprop\n"
+"change hooks for all revision properties, it is recommended to use\n"
+"the --skip-unchanged option for best performance.\n"
+"\n"
+msgstr ""
"Om du inte behöver utlösa destinationsarkivets krokskript för alla\n"
"revisionsegenskaper rekommenderas att använda väljaren --skip-unchanged\n"
"för bästa prestanda.\n"
"\n"
-"Form 2 är föråldrad och ekvivalent med att ange \"-rREV[:REV2]\".\n"
-#: ../svnsync/svnsync.c:160
+#: ../svnsync/svnsync.c:157
+msgid "Form 2 is deprecated syntax, equivalent to specifying \"-rREV[:REV2]\".\n"
+msgstr "Form 2 är föråldrad och ekvivalent med att ange \"-rREV[:REV2]\".\n"
+
+#: ../svnsync/svnsync.c:163
msgid ""
"usage: svnsync info DEST_URL\n"
"\n"
-"Print information about the synchronization destination repository\n"
-"located at DEST_URL.\n"
msgstr ""
"användning: svnsync info DEST-URL\n"
"\n"
-"Visa information om destinationsarkivet för synkronisering i DEST-URL.\n"
-#: ../svnsync/svnsync.c:166
+#: ../svnsync/svnsync.c:165
+msgid ""
+"Print information about the synchronization destination repository\n"
+"located at DEST_URL.\n"
+msgstr "Visa information om destinationsarkivet för synkronisering i DEST-URL.\n"
+
+#: ../svnsync/svnsync.c:170
msgid ""
"usage: svnsync help [SUBCOMMAND...]\n"
"\n"
-"Describe the usage of this program or its subcommands.\n"
msgstr ""
"användning: svnsync help [UNDERKOMMANDO...]\n"
"\n"
-"Visa hur detta program eller dess underkommandon används.\n"
-#: ../svnsync/svnsync.c:176
+#: ../svnsync/svnsync.c:181
msgid "print as little as possible"
msgstr "visa så lite information som möjligt"
-#: ../svnsync/svnsync.c:178
+#: ../svnsync/svnsync.c:183
msgid ""
"operate on revision ARG (or range ARG1:ARG2)\n"
" A revision argument can be one of:\n"
@@ -20684,15 +21986,15 @@ msgstr ""
" TAL revisionsnummer\n"
" \"HEAD\" senaste i arkivet"
-#: ../svnsync/svnsync.c:186
+#: ../svnsync/svnsync.c:191
msgid "allow a non-empty destination repository"
msgstr "tillåt ett icke-tomt destinationsarkiv"
-#: ../svnsync/svnsync.c:188
+#: ../svnsync/svnsync.c:193
msgid "don't copy unchanged revision properties"
msgstr "kopiera inte revisionsegenskaper"
-#: ../svnsync/svnsync.c:200
+#: ../svnsync/svnsync.c:205
msgid ""
"specify a username ARG (deprecated;\n"
" see --source-username and --sync-username)"
@@ -20700,7 +22002,7 @@ msgstr ""
"ange användarnamnet ARG (föråldrat;\n"
" se --source-username och --sync-username)"
-#: ../svnsync/svnsync.c:204
+#: ../svnsync/svnsync.c:209
msgid ""
"specify a password ARG (deprecated;\n"
" see --source-password and --sync-password)"
@@ -20708,7 +22010,7 @@ msgstr ""
"ange lösenordet ARG (föråldrat;\n"
" se --source-password and --sync-password)"
-#: ../svnsync/svnsync.c:208
+#: ../svnsync/svnsync.c:213
msgid ""
"deprecated; same as\n"
" --source-trust-server-cert-failures=unknown-ca\n"
@@ -20718,7 +22020,7 @@ msgstr ""
" --source-trust-server-cert-failures=unknown-ca\n"
" --sync-trust-server-cert-failures=unknown-ca"
-#: ../svnsync/svnsync.c:214
+#: ../svnsync/svnsync.c:219
msgid ""
"with --non-interactive, accept SSL\n"
" server certificates with failures.\n"
@@ -20741,7 +22043,7 @@ msgstr ""
" - \"other\" (alla andra fel).\n"
" Gäller käll-URL."
-#: ../svnsync/svnsync.c:234
+#: ../svnsync/svnsync.c:239
msgid ""
"Like\n"
" --source-trust-server-cert-failures,\n"
@@ -20751,25 +22053,25 @@ msgstr ""
" --source-trust-server-cert-failures,\n"
" men gäller mål-URL."
-#: ../svnsync/svnsync.c:240
+#: ../svnsync/svnsync.c:245
msgid "connect to source repository with username ARG"
msgstr "anslut till källarkivet med användarnamn ARG"
-#: ../svnsync/svnsync.c:242
+#: ../svnsync/svnsync.c:247
msgid "connect to source repository with password ARG"
msgstr "anslut till källarkivet med lösenord ARG"
-#: ../svnsync/svnsync.c:244
+#: ../svnsync/svnsync.c:249
msgid "connect to sync repository with username ARG"
msgstr ""
"anslut till synkroniseringsarkiv med\n"
" användarnamn ARG"
-#: ../svnsync/svnsync.c:246
+#: ../svnsync/svnsync.c:251
msgid "connect to sync repository with password ARG"
msgstr "anslut till synkroniseringsarkiv med lösenord ARG"
-#: ../svnsync/svnsync.c:258
+#: ../svnsync/svnsync.c:263
msgid ""
"convert translatable properties from encoding ARG\n"
" to UTF-8. If not specified, then properties are\n"
@@ -20779,7 +22081,7 @@ msgstr ""
" kodning ARG till UTF-8. Om ej angiven antas\n"
" egenskaper vara kodade i UTF-8."
-#: ../svnsync/svnsync.c:264
+#: ../svnsync/svnsync.c:269
msgid ""
"Disable built-in locking. Use of this option can\n"
" corrupt the mirror unless you ensure that no other\n"
@@ -20790,7 +22092,7 @@ msgstr ""
" säkert att ingen annan körning av svnsync sker\n"
" samtidigt."
-#: ../svnsync/svnsync.c:270
+#: ../svnsync/svnsync.c:275
msgid ""
"Steal locks as necessary. Use, with caution,\n"
" if your mirror repository contains stale locks\n"
@@ -20801,7 +22103,7 @@ msgstr ""
" om spegelarkivet innehåller utgångna lås och\n"
" ingen annan körning av svnsync sker samtidigt."
-#: ../svnsync/svnsync.c:278
+#: ../svnsync/svnsync.c:283
msgid ""
"size of the extra in-memory cache in MB used to\n"
" minimize operations for local 'file' scheme.\n"
@@ -20810,120 +22112,120 @@ msgstr ""
" att minimera antalet operationer för\n"
" lokala \"file\"-schemat.\n"
-#: ../svnsync/svnsync.c:383
+#: ../svnsync/svnsync.c:388
msgid "Target server does not support atomic revision property edits; consider upgrading it to 1.7 or using an external locking program"
msgstr "Målservern stöder inte atomisk ändring av revisionsegenskaper; uppgradera den till 1.7 eller använd ett externt låsprogram."
-#: ../svnsync/svnsync.c:397
+#: ../svnsync/svnsync.c:402
#, c-format
msgid "Stole lock previously held by '%s'\n"
msgstr "Stal lås som tidigare ägdes av \"%s\"\n"
-#: ../svnsync/svnsync.c:487
+#: ../svnsync/svnsync.c:492
#, c-format
msgid "Session is rooted at '%s' but the repos root is '%s'"
msgstr "Sessionens rot är \"%s\", men arkivets rot är \"%s\""
-#: ../svnsync/svnsync.c:645
+#: ../svnsync/svnsync.c:650
#, c-format
msgid "Copied properties for revision %ld (%s* properties skipped).\n"
msgstr "Kopierade egenskaper för revision %ld (%s*-egenskaper hoppades över).\n"
-#: ../svnsync/svnsync.c:650
+#: ../svnsync/svnsync.c:655
#, c-format
msgid "Copied properties for revision %ld.\n"
msgstr "Kopierade egenskaper för revision %ld.\n"
-#: ../svnsync/svnsync.c:666
+#: ../svnsync/svnsync.c:671
#, c-format
msgid "NOTE: Normalized %s* properties to LF line endings (%d rev-props, %d node-props).\n"
msgstr "ANMÄRKNING: %s*-egenskaper normaliserade till LF-radslut (%d revisionsegenskaper, %d nodegenskaper).\n"
-#: ../svnsync/svnsync.c:805
+#: ../svnsync/svnsync.c:810
msgid "Destination repository already contains revision history; consider using --allow-non-empty if the repository's revisions are known to mirror their respective revisions in the source repository"
msgstr "Destinationsarkivet innehåller redan en revisionshistorik; använd --allow-non-empty om det är känt att arkivets revisioner motsvarar dem i källarkivet"
-#: ../svnsync/svnsync.c:814
+#: ../svnsync/svnsync.c:819
#, c-format
msgid "Destination repository is already synchronizing from '%s'"
msgstr "Destinationsarkivet synkroniseras redan från \"%s\""
-#: ../svnsync/svnsync.c:849
+#: ../svnsync/svnsync.c:854
msgid "Destination repository has more revisions than source repository"
msgstr "Destinationsarkivet har fler revisioner än källarkivet"
-#: ../svnsync/svnsync.c:914 ../svnsync/svnsync.c:917 ../svnsync/svnsync.c:1590
-#: ../svnsync/svnsync.c:1597 ../svnsync/svnsync.c:1837
-#: ../svnsync/svnsync.c:1840 ../svnsync/svnsync.c:1884
+#: ../svnsync/svnsync.c:919 ../svnsync/svnsync.c:922 ../svnsync/svnsync.c:1595
+#: ../svnsync/svnsync.c:1602 ../svnsync/svnsync.c:1842
+#: ../svnsync/svnsync.c:1845 ../svnsync/svnsync.c:1889
#, c-format
msgid "Path '%s' is not a URL"
msgstr "Sökvägen \"%s\" är inte en URL"
-#: ../svnsync/svnsync.c:944
+#: ../svnsync/svnsync.c:949
#, c-format
msgid "Committed revision %ld.\n"
msgstr "Arkiverade revision %ld.\n"
-#: ../svnsync/svnsync.c:987
+#: ../svnsync/svnsync.c:992
msgid "Destination repository has not been initialized"
msgstr "Destinationsarkivet har ej initierats"
-#: ../svnsync/svnsync.c:1362
+#: ../svnsync/svnsync.c:1367
#, c-format
msgid "Commit created r%ld but should have created r%ld"
msgstr "Arkiveringen skapade r%ld men den borde ha skapat r%ld"
-#: ../svnsync/svnsync.c:1482
+#: ../svnsync/svnsync.c:1487
#, c-format
msgid "Revision being currently copied (%ld), last merged revision (%ld), and destination HEAD (%ld) are inconsistent; have you committed to the destination without using svnsync?"
msgstr "Revisionen som nu kopieras (%ld), senaste sammanslagna revisionen (%ld) och målets HEAD (%ld) är inkonsistenta. Har du arkiverat till destinationen utan att använda svnsync?"
-#: ../svnsync/svnsync.c:1520
+#: ../svnsync/svnsync.c:1525
#, c-format
msgid "Destination HEAD (%ld) is not the last merged revision (%ld); have you committed to the destination without using svnsync?"
msgstr "HEAD i målarkivet (%ld) är inte den senaste sammanslagna revisionen (%ld). Har du arkiverat till destinationen utan att använda svnsync?"
-#: ../svnsync/svnsync.c:1650 ../svnsync/svnsync.c:1655
+#: ../svnsync/svnsync.c:1655 ../svnsync/svnsync.c:1660
#, c-format
msgid "Cannot copy revprops for a revision (%ld) that has not been synchronized yet"
msgstr "Kan inte kopiera revisionsegenskaper för en revision (%ld) som ej har synkroniserats"
-#: ../svnsync/svnsync.c:1720 ../svnsync/svnsync.c:1740
+#: ../svnsync/svnsync.c:1725 ../svnsync/svnsync.c:1745
#, c-format
msgid "Invalid revision number (%ld)"
msgstr "Ogiltigt revisionsnummer (%ld)"
-#: ../svnsync/svnsync.c:1790
+#: ../svnsync/svnsync.c:1795
msgid "Cannot specify revisions via both command-line arguments and the --revision (-r) option"
msgstr "Kan inte ange revisioner både som kommandoradsargument och med flaggan --revision (-r)"
-#: ../svnsync/svnsync.c:1798 ../svnsync/svnsync.c:2154
+#: ../svnsync/svnsync.c:1803 ../svnsync/svnsync.c:2159
#, c-format
msgid "Invalid revision range '%s' provided"
msgstr "Ogiltigt revisionsområde \"%s\" angivet"
-#: ../svnsync/svnsync.c:1897
+#: ../svnsync/svnsync.c:1902
#, c-format
msgid "Repository '%s' is not initialized for synchronization"
msgstr "Arkivet \"%s\" har inte initierats för synkronisering"
#. Print the info.
-#: ../svnsync/svnsync.c:1903
+#: ../svnsync/svnsync.c:1908
#, c-format
msgid "Source URL: %s\n"
msgstr "Käll-URL: %s\n"
-#: ../svnsync/svnsync.c:1905
+#: ../svnsync/svnsync.c:1910
#, c-format
msgid "Source Repository UUID: %s\n"
msgstr "Källarkivets UUID: %s\n"
-#: ../svnsync/svnsync.c:1908
+#: ../svnsync/svnsync.c:1913
#, c-format
msgid "Last Merged Revision: %s\n"
msgstr "Senast sammanslagen revision: %s\n"
-#: ../svnsync/svnsync.c:1925
+#: ../svnsync/svnsync.c:1930
msgid ""
"general usage: svnsync SUBCOMMAND DEST_URL [ARGS & OPTIONS ...]\n"
"Subversion repository replication tool.\n"
@@ -20939,19 +22241,19 @@ msgstr ""
"\n"
"Tillgängliga underkommandon:\n"
-#: ../svnsync/svnsync.c:2216
+#: ../svnsync/svnsync.c:2221
msgid "Cannot use --username or --password with any of --source-username, --source-password, --sync-username, or --sync-password.\n"
msgstr "Kan inte använda --username eller --password tillsammans med någon av flaggorna --source-username, --source-password, --sync-username eller --sync-password.\n"
-#: ../svnsync/svnsync.c:2239
+#: ../svnsync/svnsync.c:2244
msgid "--disable-locking and --steal-lock are mutually exclusive"
msgstr "--disable-locking och --steal-lock kan inte användas samtidigt"
-#: ../svnsync/svnsync.c:2257
+#: ../svnsync/svnsync.c:2262
msgid "--source-trust-server-cert-failures and --sync-trust-server-cert-failures require --non-interactive"
msgstr "--source-trust-server-cert-failures och --sync-trust-server-cert-failures kräver --non-interactive"
-#: ../svnsync/svnsync.c:2326
+#: ../svnsync/svnsync.c:2331
#, c-format
msgid ""
"Subcommand '%s' doesn't accept option '%s'\n"
@@ -20960,7 +22262,7 @@ msgstr ""
"Underkommandot \"%s\" tillåter inte flaggan \"%s\"\n"
"Skriv \"svnsync help %s\" för användning.\n"
-#: ../svnsync/svnsync.c:2390
+#: ../svnsync/svnsync.c:2395
msgid "Try 'svnsync help' for more info"
msgstr "Skriv \"svnsync help\" för mer information"
diff --git a/subversion/svn/auth-cmd.c b/subversion/svn/auth-cmd.c
index 68ca067..b064b8a 100644
--- a/subversion/svn/auth-cmd.c
+++ b/subversion/svn/auth-cmd.c
@@ -455,12 +455,15 @@ svn_cl__auth(apr_getopt_t *os, void *baton, apr_pool_t *pool)
{
if (b.patterns->nelts == 0)
SVN_ERR(svn_cmdline_printf(pool,
- _("Credentials cache in '%s' contains %d credentials\n"),
+ Q_("Credentials cache in '%s' contains %d credential\n",
+ "Credentials cache in '%s' contains %d credentials\n",
+ b.matches),
svn_dirent_local_style(config_path, pool), b.matches));
else
SVN_ERR(svn_cmdline_printf(pool,
- _("Credentials cache in '%s' contains %d matching "
- "credentials\n"),
+ Q_("Credentials cache in '%s' contains %d matching credential\n",
+ "Credentials cache in '%s' contains %d matching credentials\n",
+ b.matches),
svn_dirent_local_style(config_path, pool), b.matches));
}
@@ -474,9 +477,11 @@ svn_cl__auth(apr_getopt_t *os, void *baton, apr_pool_t *pool)
"no matching credentials"),
svn_dirent_local_style(config_path, pool));
else
- SVN_ERR(svn_cmdline_printf(pool, _("Deleted %d matching credentials "
- "from '%s'\n"), b.matches,
- svn_dirent_local_style(config_path, pool)));
+ SVN_ERR(svn_cmdline_printf(pool,
+ Q_("Deleted %d matching credential from '%s'\n",
+ "Deleted %d matching credentials from '%s'\n",
+ b.matches),
+ b.matches, svn_dirent_local_style(config_path, pool)));
}
return SVN_NO_ERROR;
diff --git a/subversion/svn/cl.h b/subversion/svn/cl.h
index a5b1d9b..51a6b86 100644
--- a/subversion/svn/cl.h
+++ b/subversion/svn/cl.h
@@ -256,7 +256,12 @@ typedef struct svn_cl__opt_state_t
const char *show_item; /* print only the given item */
svn_boolean_t adds_as_modification; /* update 'add vs add' no tree conflict */
svn_boolean_t vacuum_pristines; /* remove unreferenced pristines */
- svn_boolean_t list;
+ svn_boolean_t drop; /* drop shelf after successful unshelve */
+ enum svn_cl__viewspec_t {
+ svn_cl__viewspec_unspecified = 0 /* default */,
+ svn_cl__viewspec_classic,
+ svn_cl__viewspec_svn11
+ } viewspec; /* value of --x-viewspec */
} svn_cl__opt_state_t;
/* Conflict stats for operations such as update and merge. */
@@ -304,9 +309,14 @@ svn_opt_subcommand_t
svn_cl__revert,
svn_cl__resolve,
svn_cl__resolved,
- svn_cl__shelve,
- svn_cl__unshelve,
- svn_cl__shelves,
+ svn_cl__shelf_diff,
+ svn_cl__shelf_drop,
+ svn_cl__shelf_list,
+ svn_cl__shelf_list_by_paths,
+ svn_cl__shelf_log,
+ svn_cl__shelf_save,
+ svn_cl__shelf_shelve,
+ svn_cl__shelf_unshelve,
svn_cl__status,
svn_cl__switch,
svn_cl__unlock,
@@ -315,7 +325,7 @@ svn_opt_subcommand_t
/* See definition in svn.c for documentation. */
-extern const svn_opt_subcommand_desc2_t svn_cl__cmd_table[];
+extern const svn_opt_subcommand_desc3_t svn_cl__cmd_table[];
/* See definition in svn.c for documentation. */
extern const int svn_cl__global_options[];
@@ -915,6 +925,20 @@ svn_cl__similarity_check(const char *key,
apr_size_t token_count,
apr_pool_t *scratch_pool);
+/* Return in FUNC_P and BATON_P a callback that prints a summary diff,
+ * according to the options XML and IGNORE_PROPERTIES.
+ *
+ * ANCHOR is a URL or local path to be prefixed to the printed paths.
+ */
+svn_error_t *
+svn_cl__get_diff_summary_writer(svn_client_diff_summarize_func_t *func_p,
+ void **baton_p,
+ svn_boolean_t xml,
+ svn_boolean_t ignore_properties,
+ const char *anchor,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
#ifdef __cplusplus
}
#endif /* __cplusplus */
diff --git a/subversion/svn/conflict-callbacks.c b/subversion/svn/conflict-callbacks.c
index 278fffc..913f04d 100644
--- a/subversion/svn/conflict-callbacks.c
+++ b/subversion/svn/conflict-callbacks.c
@@ -440,6 +440,11 @@ static const resolver_option_t builtin_resolver_options[] =
/* Options for local move vs incoming edit. */
{ "m", svn_client_conflict_option_local_move_file_text_merge },
+ { "m", svn_client_conflict_option_local_move_dir_merge },
+
+ /* Options for local missing vs incoming edit. */
+ { "m", svn_client_conflict_option_sibling_move_file_text_merge },
+ { "m", svn_client_conflict_option_sibling_move_dir_merge },
{ NULL }
};
@@ -1529,17 +1534,16 @@ build_tree_conflict_options(
id != svn_client_conflict_option_accept_current_wc_state)
*all_options_are_dumb = FALSE;
- if (id == svn_client_conflict_option_incoming_move_file_text_merge ||
- id == svn_client_conflict_option_incoming_move_dir_merge)
- {
+ if (*possible_moved_to_repos_relpaths == NULL)
SVN_ERR(
- svn_client_conflict_option_get_moved_to_repos_relpath_candidates(
+ svn_client_conflict_option_get_moved_to_repos_relpath_candidates2(
possible_moved_to_repos_relpaths, builtin_option,
result_pool, iterpool));
- SVN_ERR(svn_client_conflict_option_get_moved_to_abspath_candidates(
+
+ if (*possible_moved_to_abspaths == NULL)
+ SVN_ERR(svn_client_conflict_option_get_moved_to_abspath_candidates2(
possible_moved_to_abspaths, builtin_option,
result_pool, iterpool));
- }
}
svn_pool_destroy(iterpool);
@@ -1654,8 +1658,8 @@ prompt_move_target_path(int *preferred_move_target_idx,
{
char buf[1024];
- svn_cmdline_fprintf(stderr, iterpool, "%s\n",
- svn_err_best_message(err, buf, sizeof(buf)));
+ SVN_ERR(svn_cmdline_fprintf(stderr, iterpool, "%s\n",
+ svn_err_best_message(err, buf, sizeof(buf))));
svn_error_clear(err);
continue;
}
@@ -1670,6 +1674,69 @@ prompt_move_target_path(int *preferred_move_target_idx,
return SVN_NO_ERROR;
}
+static svn_error_t *
+find_conflict_option_with_repos_move_targets(
+ svn_client_conflict_option_t **option_with_move_targets,
+ apr_array_header_t *options,
+ apr_pool_t *scratch_pool)
+{
+ apr_pool_t *iterpool = svn_pool_create(scratch_pool);
+ int i;
+ apr_array_header_t *possible_moved_to_repos_relpaths = NULL;
+
+ *option_with_move_targets = NULL;
+
+ for (i = 0; i < options->nelts; i++)
+ {
+ svn_client_conflict_option_t *option;
+
+ svn_pool_clear(iterpool);
+ option = APR_ARRAY_IDX(options, i, svn_client_conflict_option_t *);
+ SVN_ERR(svn_client_conflict_option_get_moved_to_repos_relpath_candidates2(
+ &possible_moved_to_repos_relpaths, option, iterpool, iterpool));
+ if (possible_moved_to_repos_relpaths)
+ {
+ *option_with_move_targets = option;
+ break;
+ }
+ }
+ svn_pool_destroy(iterpool);
+
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+find_conflict_option_with_working_copy_move_targets(
+ svn_client_conflict_option_t **option_with_move_targets,
+ apr_array_header_t *options,
+ apr_pool_t *scratch_pool)
+{
+ apr_pool_t *iterpool = svn_pool_create(scratch_pool);
+ int i;
+ apr_array_header_t *possible_moved_to_abspaths = NULL;
+
+ *option_with_move_targets = NULL;
+
+ for (i = 0; i < options->nelts; i++)
+ {
+ svn_client_conflict_option_t *option;
+
+ svn_pool_clear(iterpool);
+ option = APR_ARRAY_IDX(options, i, svn_client_conflict_option_t *);
+ SVN_ERR(svn_client_conflict_option_get_moved_to_abspath_candidates2(
+ &possible_moved_to_abspaths, option, scratch_pool,
+ iterpool));
+ if (possible_moved_to_abspaths)
+ {
+ *option_with_move_targets = option;
+ break;
+ }
+ }
+ svn_pool_destroy(iterpool);
+
+ return SVN_NO_ERROR;
+}
+
/* Ask the user what to do about the tree conflict described by CONFLICT
* and either resolve the conflict accordingly or postpone resolution.
* SCRATCH_POOL is used for temporary allocations. */
@@ -1797,7 +1864,7 @@ handle_tree_conflict(svn_boolean_t *resolved,
{
int preferred_move_target_idx;
apr_array_header_t *options;
- svn_client_conflict_option_t *conflict_option;
+ svn_client_conflict_option_t *option;
SVN_ERR(prompt_move_target_path(&preferred_move_target_idx,
possible_moved_to_repos_relpaths,
@@ -1810,22 +1877,12 @@ handle_tree_conflict(svn_boolean_t *resolved,
ctx,
iterpool,
iterpool));
- conflict_option =
- svn_client_conflict_option_find_by_id(
- options,
- svn_client_conflict_option_incoming_move_file_text_merge);
- if (conflict_option == NULL)
+ SVN_ERR(find_conflict_option_with_repos_move_targets(
+ &option, options, iterpool));
+ if (option)
{
- conflict_option =
- svn_client_conflict_option_find_by_id(
- options, svn_client_conflict_option_incoming_move_dir_merge);
- }
-
- if (conflict_option)
- {
- SVN_ERR(svn_client_conflict_option_set_moved_to_repos_relpath(
- conflict_option, preferred_move_target_idx,
- ctx, iterpool));
+ SVN_ERR(svn_client_conflict_option_set_moved_to_repos_relpath2(
+ option, preferred_move_target_idx, ctx, iterpool));
repos_move_target_chosen = TRUE;
wc_move_target_chosen = FALSE;
@@ -1851,7 +1908,7 @@ handle_tree_conflict(svn_boolean_t *resolved,
{
int preferred_move_target_idx;
apr_array_header_t *options;
- svn_client_conflict_option_t *conflict_option;
+ svn_client_conflict_option_t *option;
SVN_ERR(prompt_move_target_path(&preferred_move_target_idx,
possible_moved_to_abspaths, TRUE,
@@ -1863,22 +1920,12 @@ handle_tree_conflict(svn_boolean_t *resolved,
ctx,
iterpool,
iterpool));
- conflict_option =
- svn_client_conflict_option_find_by_id(
- options,
- svn_client_conflict_option_incoming_move_file_text_merge);
- if (conflict_option == NULL)
- {
- conflict_option =
- svn_client_conflict_option_find_by_id(
- options, svn_client_conflict_option_incoming_move_dir_merge);
- }
-
- if (conflict_option)
+ SVN_ERR(find_conflict_option_with_working_copy_move_targets(
+ &option, options, iterpool));
+ if (option)
{
- SVN_ERR(svn_client_conflict_option_set_moved_to_abspath(
- conflict_option, preferred_move_target_idx, ctx,
- iterpool));
+ SVN_ERR(svn_client_conflict_option_set_moved_to_abspath2(
+ option, preferred_move_target_idx, ctx, iterpool));
wc_move_target_chosen = TRUE;
/* Update option description. */
@@ -1930,7 +1977,6 @@ resolve_conflict_interactively(svn_boolean_t *resolved,
svn_cmdline_prompt_baton_t *pb,
svn_cl__conflict_stats_t *conflict_stats,
svn_client_ctx_t *ctx,
- apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
{
svn_boolean_t text_conflicted;
@@ -1964,7 +2010,7 @@ resolve_conflict_interactively(svn_boolean_t *resolved,
if (props_conflicted->nelts > 0)
SVN_ERR(handle_prop_conflicts(resolved, postponed, quit, &merged_propval,
path_prefix, pb, editor_cmd, config, conflict,
- conflict_stats, ctx, result_pool, scratch_pool));
+ conflict_stats, ctx, scratch_pool, scratch_pool));
if (tree_conflicted)
SVN_ERR(handle_tree_conflict(resolved, postponed, quit, printed_description,
conflict, path_prefix, pb, conflict_stats, ctx,
@@ -2201,11 +2247,14 @@ svn_cl__resolve_conflict(svn_boolean_t *quit,
svn_boolean_t postponed = FALSE;
svn_boolean_t printed_description = FALSE;
svn_error_t *err;
+ apr_pool_t *iterpool;
*quit = FALSE;
+ iterpool = svn_pool_create(scratch_pool);
while (!resolved && !postponed && !*quit)
{
+ svn_pool_clear(iterpool);
err = resolve_conflict_interactively(&resolved, &postponed, quit,
external_failed,
printed_summary,
@@ -2214,7 +2263,7 @@ svn_cl__resolve_conflict(svn_boolean_t *quit,
editor_cmd, ctx->config,
path_prefix, pb,
conflict_stats, ctx,
- scratch_pool, scratch_pool);
+ iterpool);
if (err && err->apr_err == SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE)
{
/* Conflict resolution has failed. Let the user try again.
@@ -2226,6 +2275,7 @@ svn_cl__resolve_conflict(svn_boolean_t *quit,
}
SVN_ERR(err);
}
+ svn_pool_destroy(iterpool);
}
else if (option_id != svn_client_conflict_option_postpone)
SVN_ERR(mark_conflict_resolved(conflict, option_id,
diff --git a/subversion/svn/diff-cmd.c b/subversion/svn/diff-cmd.c
index 9e389ec..b5f3702 100644
--- a/subversion/svn/diff-cmd.c
+++ b/subversion/svn/diff-cmd.c
@@ -181,6 +181,24 @@ summarize_regular(const svn_client_diff_summarize_t *summary,
return svn_cmdline_fflush(stdout);
}
+svn_error_t *
+svn_cl__get_diff_summary_writer(svn_client_diff_summarize_func_t *func_p,
+ void **baton_p,
+ svn_boolean_t xml,
+ svn_boolean_t ignore_properties,
+ const char *anchor,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ struct summarize_baton_t *b = apr_pcalloc(result_pool, sizeof(*b));
+
+ b->anchor = anchor;
+ b->ignore_properties = ignore_properties;
+ *func_p = xml ? summarize_xml : summarize_regular;
+ *baton_p = b;
+ return SVN_NO_ERROR;
+}
+
/* An svn_opt_subcommand_t to handle the 'diff' command.
This implements the `svn_opt_subcommand_t' interface. */
svn_error_t *
@@ -203,9 +221,6 @@ svn_cl__diff(apr_getopt_t *os,
svn_boolean_t ignore_properties =
opt_state->diff.patch_compatible || opt_state->diff.ignore_properties;
int i;
- struct summarize_baton_t summarize_baton;
- const svn_client_diff_summarize_func_t summarize_func =
- (opt_state->xml ? summarize_xml : summarize_regular);
if (opt_state->extensions)
options = svn_cstring_split(opt_state->extensions, " \t\n\r", TRUE, pool);
@@ -448,9 +463,13 @@ svn_cl__diff(apr_getopt_t *os,
if (opt_state->diff.summarize)
{
- summarize_baton.anchor = target1;
- summarize_baton.ignore_properties = ignore_properties;
+ svn_client_diff_summarize_func_t summarize_func;
+ void *summarize_baton;
+ SVN_ERR(svn_cl__get_diff_summary_writer(
+ &summarize_func, &summarize_baton,
+ opt_state->xml, ignore_properties, target1,
+ iterpool, iterpool));
SVN_ERR(svn_client_diff_summarize2(
target1,
&opt_state->start_revision,
@@ -459,11 +478,11 @@ svn_cl__diff(apr_getopt_t *os,
opt_state->depth,
! opt_state->diff.notice_ancestry,
opt_state->changelists,
- summarize_func, &summarize_baton,
+ summarize_func, summarize_baton,
ctx, iterpool));
}
else
- SVN_ERR(svn_client_diff6(
+ SVN_ERR(svn_client_diff7(
options,
target1,
&(opt_state->start_revision),
@@ -479,6 +498,7 @@ svn_cl__diff(apr_getopt_t *os,
ignore_properties,
opt_state->diff.properties_only,
opt_state->diff.use_git_diff_format,
+ TRUE /*pretty_print_mergeinfo*/,
svn_cmdline_output_encoding(pool),
outstream,
errstream,
@@ -501,8 +521,13 @@ svn_cl__diff(apr_getopt_t *os,
if (opt_state->diff.summarize)
{
- summarize_baton.anchor = truepath;
- summarize_baton.ignore_properties = ignore_properties;
+ svn_client_diff_summarize_func_t summarize_func;
+ void *summarize_baton;
+
+ SVN_ERR(svn_cl__get_diff_summary_writer(
+ &summarize_func, &summarize_baton,
+ opt_state->xml, ignore_properties, truepath,
+ iterpool, iterpool));
SVN_ERR(svn_client_diff_summarize_peg2(
truepath,
&peg_revision,
@@ -511,11 +536,11 @@ svn_cl__diff(apr_getopt_t *os,
opt_state->depth,
! opt_state->diff.notice_ancestry,
opt_state->changelists,
- summarize_func, &summarize_baton,
+ summarize_func, summarize_baton,
ctx, iterpool));
}
else
- SVN_ERR(svn_client_diff_peg6(
+ SVN_ERR(svn_client_diff_peg7(
options,
truepath,
&peg_revision,
@@ -531,6 +556,7 @@ svn_cl__diff(apr_getopt_t *os,
ignore_properties,
opt_state->diff.properties_only,
opt_state->diff.use_git_diff_format,
+ TRUE /*pretty_print_mergeinfo*/,
svn_cmdline_output_encoding(pool),
outstream,
errstream,
diff --git a/subversion/svn/help-cmd.c b/subversion/svn/help-cmd.c
index 3d5375c..f812784 100644
--- a/subversion/svn/help-cmd.c
+++ b/subversion/svn/help-cmd.c
@@ -179,7 +179,7 @@ svn_cl__help(apr_getopt_t *os,
svn_stringbuf_appendcstr(version_footer, "* KWallet (KDE)\n");
#endif
- return svn_opt_print_help4(os,
+ return svn_opt_print_help5(os,
"svn", /* ### erm, derive somehow? */
opt_state ? opt_state->version : FALSE,
opt_state ? opt_state->quiet : FALSE,
diff --git a/subversion/svn/info-cmd.c b/subversion/svn/info-cmd.c
index e0c0041..b09f141 100644
--- a/subversion/svn/info-cmd.c
+++ b/subversion/svn/info-cmd.c
@@ -21,6 +21,10 @@
* ====================================================================
*/
+/* We define this here to remove any further warnings about the usage of
+ experimental functions in this file. */
+#define SVN_EXPERIMENTAL
+
/* ==================================================================== */
@@ -45,6 +49,254 @@
/*** Code. ***/
+struct layout_list_baton_t
+{
+ svn_boolean_t checkout;
+ const char *target;
+ const char *target_abspath;
+ svn_boolean_t with_revs;
+ int vs_py_format;
+};
+
+/* Output as 'svn' command-line commands.
+ *
+ * Implements svn_client__layout_func_t
+ */
+static svn_error_t *
+output_svn_command_line(void *layout_baton,
+ const char *local_abspath,
+ const char *repos_root_url,
+ svn_boolean_t not_present,
+ svn_boolean_t url_changed,
+ const char *url,
+ svn_boolean_t revision_changed,
+ svn_revnum_t revision,
+ svn_boolean_t depth_changed,
+ svn_depth_t depth,
+ apr_pool_t *scratch_pool)
+{
+ struct layout_list_baton_t *llb = layout_baton;
+ const char *relpath = svn_dirent_skip_ancestor(llb->target_abspath,
+ local_abspath);
+ const char *cmd;
+ const char *depth_str;
+ const char *url_rev_str;
+
+ depth_str = (depth_changed
+ ? apr_psprintf(scratch_pool, " --set-depth=%s",
+ svn_depth_to_word(depth))
+ : "");
+
+ if (llb->checkout)
+ {
+ cmd = "svn checkout";
+ if (depth != svn_depth_infinity)
+ depth_str = apr_psprintf(scratch_pool,
+ " --depth=%s", svn_depth_to_word(depth));
+ url_rev_str = apr_psprintf(scratch_pool, " %s", url);
+ if (llb->with_revs)
+ url_rev_str = apr_psprintf(scratch_pool, "%s@%ld",
+ url_rev_str, revision);
+ llb->checkout = FALSE;
+ }
+ else if (not_present)
+ {
+ /* Easiest way to create a not present node: update to r0 */
+ cmd = "svn update";
+ url_rev_str = " -r0";
+ }
+ else if (url_changed)
+ {
+ cmd = "svn switch";
+ url_rev_str = apr_psprintf(scratch_pool, " ^/%s",
+ svn_uri_skip_ancestor(repos_root_url,
+ url, scratch_pool));
+ if (llb->with_revs)
+ url_rev_str = apr_psprintf(scratch_pool, "%s@%ld",
+ url_rev_str, revision);
+ }
+ else if (llb->with_revs && revision_changed)
+ {
+ cmd = "svn update";
+ url_rev_str = apr_psprintf(scratch_pool, " -r%ld", revision);
+ }
+ else if (depth_changed)
+ {
+ cmd = "svn update";
+ url_rev_str = "";
+ }
+ else
+ return SVN_NO_ERROR;
+
+ SVN_ERR(svn_cmdline_printf(scratch_pool,
+ "%s%-23s%-10s %s\n",
+ cmd, depth_str, url_rev_str,
+ svn_dirent_local_style(
+ svn_dirent_join(llb->target, relpath,
+ scratch_pool), scratch_pool)));
+
+ return SVN_NO_ERROR;
+}
+
+/* */
+static const char *
+depth_to_viewspec_py(svn_depth_t depth,
+ apr_pool_t *result_pool)
+{
+ switch (depth)
+ {
+ case svn_depth_infinity:
+ return "/**";
+ case svn_depth_immediates:
+ return "/*";
+ case svn_depth_files:
+ return "/~";
+ case svn_depth_empty:
+ return "";
+ case svn_depth_exclude:
+ return "!";
+ default:
+ break;
+ }
+ return NULL;
+}
+
+/* Output in the format used by 'tools/client-side/viewspec.py'
+ *
+ * Implements svn_client__layout_func_t
+ */
+static svn_error_t *
+output_svn_viewspec_py(void *layout_baton,
+ const char *local_abspath,
+ const char *repos_root_url,
+ svn_boolean_t not_present,
+ svn_boolean_t url_changed,
+ const char *url,
+ svn_boolean_t revision_changed,
+ svn_revnum_t revision,
+ svn_boolean_t depth_changed,
+ svn_depth_t depth,
+ apr_pool_t *scratch_pool)
+{
+ struct layout_list_baton_t *llb = layout_baton;
+ const char *relpath = svn_dirent_skip_ancestor(llb->target_abspath,
+ local_abspath);
+ const char *depth_str;
+ const char *rev_str = "";
+ const char *repos_rel_url = "";
+
+ depth_str = ((depth_changed || llb->checkout)
+ ? depth_to_viewspec_py(depth, scratch_pool)
+ : "");
+ if (! llb->with_revs)
+ revision_changed = FALSE;
+ if (revision_changed)
+ rev_str = apr_psprintf(scratch_pool, "@%ld", revision);
+
+ if (llb->checkout)
+ {
+ SVN_ERR(svn_cmdline_printf(scratch_pool,
+ "Format: %d\n"
+ "Url: %s\n",
+ llb->vs_py_format, url));
+ if (llb->with_revs)
+ SVN_ERR(svn_cmdline_printf(scratch_pool,
+ "Revision: %ld\n",
+ revision));
+ SVN_ERR(svn_cmdline_printf(scratch_pool, "\n"));
+ llb->checkout = FALSE;
+
+ if (depth == svn_depth_empty)
+ return SVN_NO_ERROR;
+ if (depth_str[0] == '/')
+ depth_str++;
+ }
+ else if (not_present)
+ {
+ /* Easiest way to create a not present node: update to r0 */
+ if (llb->vs_py_format < 2)
+ return svn_error_createf(SVN_ERR_UNSUPPORTED_FEATURE, NULL,
+ _("svn-viewspec.py format 1 does not support "
+ "the 'not-present' state found at '%s'"),
+ relpath);
+ rev_str = "@0";
+ }
+ else if (url_changed)
+ {
+ if (llb->vs_py_format < 2)
+ return svn_error_createf(SVN_ERR_UNSUPPORTED_FEATURE, NULL,
+ _("svn-viewspec.py format 1 does not support "
+ "the 'switched' state found at '%s'"),
+ relpath);
+ repos_rel_url = svn_uri_skip_ancestor(repos_root_url, url,
+ scratch_pool);
+ repos_rel_url = apr_psprintf(scratch_pool, "^/%s", repos_rel_url);
+ }
+ else if (!(revision_changed || depth_changed))
+ return SVN_NO_ERROR;
+
+ SVN_ERR(svn_cmdline_printf(scratch_pool,
+ "%s%s %s%s\n",
+ relpath, depth_str, repos_rel_url, rev_str));
+
+ return SVN_NO_ERROR;
+}
+
+/*
+ * Call svn_client__layout_list(), using a receiver function decided
+ * by VIEWSPEC.
+ */
+static svn_error_t *
+cl_layout_list(apr_array_header_t *targets,
+ enum svn_cl__viewspec_t viewspec,
+ void *baton,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ const char *list_path, *list_abspath;
+ struct layout_list_baton_t llb;
+
+ /* Add "." if user passed 0 arguments */
+ svn_opt_push_implicit_dot_target(targets, scratch_pool);
+
+ if (targets->nelts > 1)
+ return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, 0, NULL);
+
+ list_path = APR_ARRAY_IDX(targets, 0, const char *);
+
+ SVN_ERR(svn_cl__check_target_is_local_path(list_path));
+
+ SVN_ERR(svn_dirent_get_absolute(&list_abspath, list_path,
+ scratch_pool));
+
+ llb.checkout = TRUE;
+ llb.target = list_path;
+ llb.target_abspath = list_abspath;
+ llb.with_revs = TRUE;
+
+ switch (viewspec)
+ {
+ case svn_cl__viewspec_classic:
+ /* svn-viewspec.py format */
+ llb.vs_py_format = 2;
+
+ SVN_ERR(svn_client__layout_list(list_abspath,
+ output_svn_viewspec_py, &llb,
+ ctx, scratch_pool));
+ break;
+ case svn_cl__viewspec_svn11:
+ /* svn command-line format */
+ SVN_ERR(svn_client__layout_list(list_abspath,
+ output_svn_command_line, &llb,
+ ctx, scratch_pool));
+ break;
+ default:
+ SVN_ERR_MALFUNCTION();
+ }
+
+ return SVN_NO_ERROR;
+}
+
static svn_error_t *
svn_cl__info_print_time(apr_time_t atime,
const char *desc,
@@ -110,7 +362,9 @@ typedef enum
info_item_last_changed_author,
/* Working copy information */
- info_item_wc_root
+ info_item_wc_root,
+ info_item_schedule,
+ info_item_depth
} info_item_t;
/* Mapping between option keywords and info_item_t. */
@@ -133,7 +387,9 @@ static const info_item_map_t info_item_map[] =
info_item_last_changed_rev },
{ MAKE_STRING("last-changed-date"), info_item_last_changed_date },
{ MAKE_STRING("last-changed-author"), info_item_last_changed_author },
- { MAKE_STRING("wc-root"), info_item_wc_root }
+ { MAKE_STRING("wc-root"), info_item_wc_root },
+ { MAKE_STRING("schedule"), info_item_schedule },
+ { MAKE_STRING("depth"), info_item_depth },
};
#undef MAKE_STRING
@@ -888,6 +1144,20 @@ print_info_item(void *baton,
target_path, pool));
break;
+ case info_item_schedule:
+ SVN_ERR(print_info_item_string(
+ (info->wc_info
+ ? schedule_str(info->wc_info->schedule) : NULL),
+ target_path, pool));
+ break;
+
+ case info_item_depth:
+ SVN_ERR(print_info_item_string(
+ ((info->wc_info && info->kind == svn_node_dir)
+ ? svn_depth_to_word(info->wc_info->depth) : NULL),
+ target_path, pool));
+ break;
+
default:
SVN_ERR_MALFUNCTION();
}
@@ -918,6 +1188,12 @@ svn_cl__info(apr_getopt_t *os,
opt_state->targets,
ctx, FALSE, pool));
+ if (opt_state->viewspec)
+ {
+ SVN_ERR(cl_layout_list(targets, opt_state->viewspec, baton, ctx, pool));
+ return SVN_NO_ERROR;
+ }
+
/* Add "." if user passed 0 arguments. */
svn_opt_push_implicit_dot_target(targets, pool);
diff --git a/subversion/svn/log-cmd.c b/subversion/svn/log-cmd.c
index 57f8415..45e88f7 100644
--- a/subversion/svn/log-cmd.c
+++ b/subversion/svn/log-cmd.c
@@ -88,7 +88,7 @@ display_diff(const svn_log_entry_t *log_entry,
end_revision.value.number = log_entry->revision;
SVN_ERR(svn_stream_puts(outstream, "\n"));
- SVN_ERR(svn_client_diff_peg6(diff_options,
+ SVN_ERR(svn_client_diff_peg7(diff_options,
target_path_or_url,
target_peg_revision,
&start_revision, &end_revision,
@@ -102,6 +102,7 @@ display_diff(const svn_log_entry_t *log_entry,
FALSE /* ignore prop diff */,
FALSE /* properties only */,
FALSE /* use git diff format */,
+ TRUE /* pretty_print_mergeinfo */,
svn_cmdline_output_encoding(pool),
outstream,
errstream,
@@ -333,7 +334,7 @@ svn_cl__log_entry_receiver(void *baton,
return SVN_NO_ERROR;
}
- /* ### See http://subversion.tigris.org/issues/show_bug.cgi?id=807
+ /* ### See https://issues.apache.org/jira/browse/SVN-807
for more on the fallback fuzzy conversions below. */
if (author == NULL)
diff --git a/subversion/svn/notify.c b/subversion/svn/notify.c
index c15301e..ea0cc15 100644
--- a/subversion/svn/notify.c
+++ b/subversion/svn/notify.c
@@ -210,7 +210,7 @@ svn_cl__conflict_stats_get_paths(apr_array_header_t **conflicted_paths,
}
}
- svn_hash_keys(conflicted_paths, all_conflicts, result_pool);
+ SVN_ERR(svn_hash_keys(conflicted_paths, all_conflicts, result_pool));
svn_sort__array(*conflicted_paths, svn_sort_compare_paths);
return SVN_NO_ERROR;
diff --git a/subversion/svn/propset-cmd.c b/subversion/svn/propset-cmd.c
index 0508706..e7a8183 100644
--- a/subversion/svn/propset-cmd.c
+++ b/subversion/svn/propset-cmd.c
@@ -151,7 +151,7 @@ svn_cl__propset(apr_getopt_t *os,
* must always be explicitly provided when setting a versioned
* property. See
*
- * http://subversion.tigris.org/issues/show_bug.cgi?id=924
+ * https://issues.apache.org/jira/browse/SVN-924
*
* for more details.
*/
diff --git a/subversion/svn/revert-cmd.c b/subversion/svn/revert-cmd.c
index 74d7ff1..cab43c8 100644
--- a/subversion/svn/revert-cmd.c
+++ b/subversion/svn/revert-cmd.c
@@ -67,10 +67,11 @@ svn_cl__revert(apr_getopt_t *os,
SVN_ERR(svn_cl__check_targets_are_local_paths(targets));
- err = svn_client_revert3(targets, opt_state->depth,
+ err = svn_client_revert4(targets, opt_state->depth,
opt_state->changelists,
FALSE /* clear_changelists */,
FALSE /* metadata_only */,
+ TRUE /*added_keep_local*/,
ctx, scratch_pool);
if (err
&& (err->apr_err == SVN_ERR_WC_INVALID_OPERATION_DEPTH)
diff --git a/subversion/svn/shelf-cmd.c b/subversion/svn/shelf-cmd.c
new file mode 100644
index 0000000..9bcbd88
--- /dev/null
+++ b/subversion/svn/shelf-cmd.c
@@ -0,0 +1,1209 @@
+/*
+ * shelf-cmd.c -- Shelving commands.
+ *
+ * ====================================================================
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * ====================================================================
+ */
+
+/* We define this here to remove any further warnings about the usage of
+ experimental functions in this file. */
+#define SVN_EXPERIMENTAL
+
+#include "svn_client.h"
+#include "svn_error_codes.h"
+#include "svn_error.h"
+#include "svn_hash.h"
+#include "svn_path.h"
+#include "svn_props.h"
+#include "svn_pools.h"
+#include "svn_utf.h"
+
+#include "cl.h"
+
+#include "svn_private_config.h"
+#include "private/svn_sorts_private.h"
+#include "private/svn_client_private.h"
+
+
+/* Open the newest version of SHELF; error if no versions found. */
+static svn_error_t *
+get_newest_version_existing(svn_client__shelf_version_t **shelf_version_p,
+ svn_client__shelf_t *shelf,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ SVN_ERR(svn_client__shelf_get_newest_version(shelf_version_p, shelf,
+ result_pool, scratch_pool));
+ if (!*shelf_version_p)
+ {
+ return svn_error_createf(SVN_ERR_ILLEGAL_TARGET, NULL,
+ _("Shelf '%s': no versions found"),
+ shelf->name);
+ }
+
+ return SVN_NO_ERROR;
+}
+
+/* Fetch the next argument. */
+static svn_error_t *
+get_next_argument(const char **arg,
+ apr_getopt_t *os,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ apr_array_header_t *args;
+
+ SVN_ERR(svn_opt_parse_num_args(&args, os, 1, scratch_pool));
+ SVN_ERR(svn_utf_cstring_to_utf8(arg,
+ APR_ARRAY_IDX(args, 0, const char *),
+ result_pool));
+ return SVN_NO_ERROR;
+}
+
+/* Parse the remaining arguments as paths relative to a WC.
+ *
+ * TARGETS are relative to current working directory.
+ *
+ * Set *targets_by_wcroot to a hash mapping (char *)wcroot_abspath to
+ * (apr_array_header_t *)array of relpaths relative to that WC root.
+ */
+static svn_error_t *
+targets_relative_to_wcs(apr_hash_t **targets_by_wcroot_p,
+ apr_array_header_t *targets,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ apr_hash_t *targets_by_wcroot = apr_hash_make(result_pool);
+ int i;
+
+ /* Make each target relative to the WC root. */
+ for (i = 0; i < targets->nelts; i++)
+ {
+ const char *target = APR_ARRAY_IDX(targets, i, const char *);
+ const char *wcroot_abspath;
+ apr_array_header_t *paths;
+
+ SVN_ERR(svn_dirent_get_absolute(&target, target, result_pool));
+ SVN_ERR(svn_client_get_wc_root(&wcroot_abspath, target,
+ ctx, result_pool, scratch_pool));
+ paths = svn_hash_gets(targets_by_wcroot, wcroot_abspath);
+ if (! paths)
+ {
+ paths = apr_array_make(result_pool, 0, sizeof(char *));
+ svn_hash_sets(targets_by_wcroot, wcroot_abspath, paths);
+ }
+ target = svn_dirent_skip_ancestor(wcroot_abspath, target);
+
+ if (target)
+ APR_ARRAY_PUSH(paths, const char *) = target;
+ }
+ *targets_by_wcroot_p = targets_by_wcroot;
+ return SVN_NO_ERROR;
+}
+
+/* Return targets relative to a WC. Error if they refer to more than one WC. */
+static svn_error_t *
+targets_relative_to_a_wc(const char **wc_root_abspath_p,
+ apr_array_header_t **paths_p,
+ apr_getopt_t *os,
+ const apr_array_header_t *known_targets,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ apr_array_header_t *targets;
+ apr_hash_t *targets_by_wcroot;
+ apr_hash_index_t *hi;
+
+ SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
+ known_targets,
+ ctx, FALSE, result_pool));
+ svn_opt_push_implicit_dot_target(targets, result_pool);
+
+ SVN_ERR(targets_relative_to_wcs(&targets_by_wcroot, targets,
+ ctx, result_pool, scratch_pool));
+ if (apr_hash_count(targets_by_wcroot) != 1)
+ return svn_error_create(SVN_ERR_ILLEGAL_TARGET, NULL,
+ _("All targets must be in the same WC"));
+
+ hi = apr_hash_first(scratch_pool, targets_by_wcroot);
+ *wc_root_abspath_p = apr_hash_this_key(hi);
+ *paths_p = apr_hash_this_val(hi);
+ return SVN_NO_ERROR;
+}
+
+/* Return a human-friendly description of DURATION.
+ */
+static char *
+friendly_age_str(apr_time_t mtime,
+ apr_time_t time_now,
+ apr_pool_t *result_pool)
+{
+ int minutes = (int)((time_now - mtime) / 1000000 / 60);
+ char *s;
+
+ if (minutes >= 60 * 24)
+ s = apr_psprintf(result_pool,
+ Q_("%d day ago", "%d days ago",
+ minutes / 60 / 24),
+ minutes / 60 / 24);
+ else if (minutes >= 60)
+ s = apr_psprintf(result_pool,
+ Q_("%d hour ago", "%d hours ago",
+ minutes / 60),
+ minutes / 60);
+ else
+ s = apr_psprintf(result_pool,
+ Q_("%d minute ago", "%d minutes ago",
+ minutes),
+ minutes);
+ return s;
+}
+
+/* A comparison function for svn_sort__hash(), comparing the mtime of two
+ svn_client_shelf_info_t's. */
+static int
+compare_shelf_infos_by_mtime(const svn_sort__item_t *a,
+ const svn_sort__item_t *b)
+{
+ svn_client__shelf_info_t *a_val = a->value;
+ svn_client__shelf_info_t *b_val = b->value;
+
+ return (a_val->mtime < b_val->mtime)
+ ? -1 : (a_val->mtime > b_val->mtime) ? 1 : 0;
+}
+
+/* Return a list of shelves sorted by their mtime, oldest first.
+ */
+static svn_error_t *
+list_sorted_by_date(apr_array_header_t **list,
+ const char *local_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ apr_hash_t *shelf_infos;
+
+ SVN_ERR(svn_client__shelf_list(&shelf_infos, local_abspath,
+ ctx, scratch_pool, scratch_pool));
+ *list = svn_sort__hash(shelf_infos,
+ compare_shelf_infos_by_mtime,
+ scratch_pool);
+ return SVN_NO_ERROR;
+}
+
+/* */
+static svn_error_t *
+stats(svn_client__shelf_t *shelf,
+ int version,
+ svn_client__shelf_version_t *shelf_version,
+ apr_time_t time_now,
+ svn_boolean_t with_logmsg,
+ apr_pool_t *scratch_pool)
+{
+ char *age_str;
+ char *version_str;
+ apr_hash_t *paths;
+ const char *paths_str = "";
+
+ if (! shelf_version)
+ {
+ return SVN_NO_ERROR;
+ }
+
+ age_str = friendly_age_str(shelf_version->mtime, time_now, scratch_pool);
+ if (version == shelf->max_version)
+ version_str = apr_psprintf(scratch_pool,
+ _("version %d"), version);
+ else
+ version_str = apr_psprintf(scratch_pool,
+ Q_("version %d of %d", "version %d of %d",
+ shelf->max_version),
+ version, shelf->max_version);
+ SVN_ERR(svn_client__shelf_paths_changed(&paths, shelf_version,
+ scratch_pool, scratch_pool));
+ paths_str = apr_psprintf(scratch_pool,
+ Q_("%d path changed", "%d paths changed",
+ apr_hash_count(paths)),
+ apr_hash_count(paths));
+ SVN_ERR(svn_cmdline_printf(scratch_pool,
+ "%-30s %s, %s, %s\n",
+ shelf->name, version_str, age_str, paths_str));
+
+ if (with_logmsg)
+ {
+ char *log_message;
+
+ SVN_ERR(svn_client__shelf_get_log_message(&log_message, shelf,
+ scratch_pool));
+ if (log_message)
+ {
+ SVN_ERR(svn_cmdline_printf(scratch_pool,
+ _(" %.50s\n"),
+ log_message));
+ }
+ }
+
+ return SVN_NO_ERROR;
+}
+
+/* Display a list of shelves */
+static svn_error_t *
+shelves_list(const char *local_abspath,
+ svn_boolean_t quiet,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ apr_time_t time_now = apr_time_now();
+ apr_array_header_t *list;
+ int i;
+
+ SVN_ERR(list_sorted_by_date(&list,
+ local_abspath, ctx, scratch_pool));
+
+ for (i = 0; i < list->nelts; i++)
+ {
+ const svn_sort__item_t *item = &APR_ARRAY_IDX(list, i, svn_sort__item_t);
+ const char *name = item->key;
+ svn_client__shelf_t *shelf;
+ svn_client__shelf_version_t *shelf_version;
+
+ SVN_ERR(svn_client__shelf_open_existing(&shelf, name, local_abspath,
+ ctx, scratch_pool));
+ SVN_ERR(svn_client__shelf_get_newest_version(&shelf_version, shelf,
+ scratch_pool, scratch_pool));
+ if (quiet)
+ SVN_ERR(svn_cmdline_printf(scratch_pool, "%s\n", shelf->name));
+ else if (!shelf_version)
+ SVN_ERR(svn_cmdline_printf(scratch_pool, "%-30s no versions\n",
+ shelf->name));
+ else
+ SVN_ERR(stats(shelf, shelf->max_version, shelf_version, time_now,
+ TRUE /*with_logmsg*/, scratch_pool));
+ SVN_ERR(svn_client__shelf_close(shelf, scratch_pool));
+ }
+
+ return SVN_NO_ERROR;
+}
+
+/* Print info about each checkpoint of the shelf named NAME.
+ */
+static svn_error_t *
+shelf_log(const char *name,
+ const char *local_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ apr_time_t time_now = apr_time_now();
+ svn_client__shelf_t *shelf;
+ apr_array_header_t *versions;
+ int i;
+
+ SVN_ERR(svn_client__shelf_open_existing(&shelf, name, local_abspath,
+ ctx, scratch_pool));
+ SVN_ERR(svn_client__shelf_get_all_versions(&versions, shelf,
+ scratch_pool, scratch_pool));
+ for (i = 0; i < versions->nelts; i++)
+ {
+ svn_client__shelf_version_t *shelf_version
+ = APR_ARRAY_IDX(versions, i, void *);
+
+ SVN_ERR(stats(shelf, i + 1, shelf_version, time_now,
+ FALSE /*with_logmsg*/, scratch_pool));
+ }
+
+ SVN_ERR(svn_client__shelf_close(shelf, scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+/* Find the name of the youngest shelf.
+ */
+static svn_error_t *
+name_of_youngest(const char **name_p,
+ const char *local_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ apr_array_header_t *list;
+ const svn_sort__item_t *youngest_item;
+
+ SVN_ERR(list_sorted_by_date(&list,
+ local_abspath, ctx, scratch_pool));
+ if (list->nelts == 0)
+ return svn_error_create(SVN_ERR_CL_INSUFFICIENT_ARGS, NULL,
+ _("No shelves found"));
+
+ youngest_item = &APR_ARRAY_IDX(list, list->nelts - 1, svn_sort__item_t);
+ *name_p = apr_pstrdup(result_pool, youngest_item->key);
+ return SVN_NO_ERROR;
+}
+
+struct status_baton
+{
+ /* These fields correspond to the ones in the
+ svn_cl__print_status() interface. */
+ const char *target_abspath;
+ const char *target_path;
+
+ svn_boolean_t quiet; /* don't display statuses while shelving them */
+ int num_paths_shelved;
+ int num_paths_not_shelved;
+ svn_client_ctx_t *ctx;
+};
+
+/* A status callback function for printing STATUS for PATH. */
+static svn_error_t *
+print_status(void *baton,
+ const char *path,
+ const svn_client_status_t *status,
+ apr_pool_t *scratch_pool)
+{
+ struct status_baton *sb = baton;
+ unsigned int conflicts;
+
+ return svn_cl__print_status(sb->target_abspath, sb->target_path,
+ path, status,
+ TRUE /*suppress_externals_placeholders*/,
+ FALSE /*detailed*/,
+ FALSE /*show_last_committed*/,
+ TRUE /*skip_unrecognized*/,
+ FALSE /*repos_locks*/,
+ &conflicts, &conflicts, &conflicts,
+ sb->ctx,
+ scratch_pool);
+}
+
+/* A callback function for shelved paths. */
+static svn_error_t *
+was_shelved(void *baton,
+ const char *path,
+ const svn_client_status_t *status,
+ apr_pool_t *scratch_pool)
+{
+ struct status_baton *sb = baton;
+
+ if (!sb->quiet)
+ {
+ SVN_ERR(print_status(baton, path, status, scratch_pool));
+ }
+
+ ++sb->num_paths_shelved;
+ return SVN_NO_ERROR;
+}
+
+/* A callback function for not-shelved paths. */
+static svn_error_t *
+was_not_shelved(void *baton,
+ const char *path,
+ const svn_client_status_t *status,
+ apr_pool_t *scratch_pool)
+{
+ struct status_baton *sb = baton;
+
+ SVN_ERR(print_status(baton, path, status, scratch_pool));
+ SVN_ERR(svn_cmdline_printf(scratch_pool, " > not shelved\n"));
+ ++sb->num_paths_not_shelved;
+ return SVN_NO_ERROR;
+}
+
+/** Shelve/save a new version of changes.
+ *
+ * Shelve in shelf @a name the local modifications found by @a paths,
+ * @a depth, @a changelists. Revert the shelved changes from the WC
+ * unless @a keep_local is true.
+ *
+ * If no local modifications are found, throw an error.
+ *
+ * If @a dry_run is true, don't actually do it.
+ *
+ * Report in @a *new_version_p the new version number (or, with dry run,
+ * what it would be).
+ */
+static svn_error_t *
+shelve(int *new_version_p,
+ const char *name,
+ const apr_array_header_t *paths,
+ svn_depth_t depth,
+ const apr_array_header_t *changelists,
+ apr_hash_t *revprop_table,
+ svn_boolean_t keep_local,
+ svn_boolean_t dry_run,
+ svn_boolean_t quiet,
+ const char *local_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ svn_client__shelf_t *shelf;
+ svn_client__shelf_version_t *previous_version;
+ svn_client__shelf_version_t *new_version;
+ struct status_baton sb;
+
+ SVN_ERR(svn_client__shelf_open_or_create(&shelf,
+ name, local_abspath,
+ ctx, scratch_pool));
+ SVN_ERR(svn_client__shelf_get_newest_version(&previous_version, shelf,
+ scratch_pool, scratch_pool));
+
+ if (! quiet)
+ {
+ SVN_ERR(svn_cmdline_printf(scratch_pool, keep_local
+ ? _("--- Save a new version of '%s' in WC root '%s'\n")
+ : _("--- Shelve '%s' in WC root '%s'\n"),
+ shelf->name, shelf->wc_root_abspath));
+ SVN_ERR(stats(shelf, shelf->max_version, previous_version, apr_time_now(),
+ TRUE /*with_logmsg*/, scratch_pool));
+ }
+
+ sb.target_abspath = shelf->wc_root_abspath;
+ sb.target_path = "";
+ sb.quiet = quiet;
+ sb.num_paths_shelved = 0;
+ sb.num_paths_not_shelved = 0;
+ sb.ctx = ctx;
+
+ if (! quiet)
+ SVN_ERR(svn_cmdline_printf(scratch_pool,
+ keep_local ? _("--- Saving...\n")
+ : _("--- Shelving...\n")));
+ SVN_ERR(svn_client__shelf_save_new_version3(&new_version, shelf,
+ paths, depth, changelists,
+ was_shelved, &sb,
+ was_not_shelved, &sb,
+ scratch_pool));
+ if (sb.num_paths_not_shelved > 0)
+ {
+ SVN_ERR(svn_client__shelf_delete_newer_versions(shelf, previous_version,
+ scratch_pool));
+ SVN_ERR(svn_client__shelf_close(shelf, scratch_pool));
+ return svn_error_createf(SVN_ERR_ILLEGAL_TARGET, NULL,
+ Q_("%d path could not be shelved",
+ "%d paths could not be shelved",
+ sb.num_paths_not_shelved),
+ sb.num_paths_not_shelved);
+ }
+ if (sb.num_paths_shelved == 0
+ || ! new_version)
+ {
+ SVN_ERR(svn_client__shelf_close(shelf, scratch_pool));
+ return svn_error_createf(SVN_ERR_ILLEGAL_TARGET, NULL,
+ keep_local ? _("No local modifications could be saved")
+ : _("No local modifications could be shelved"));
+ }
+
+ /* Un-apply the changes, if required. */
+ if (!keep_local)
+ {
+ SVN_ERR(svn_client__shelf_unapply(new_version,
+ dry_run, scratch_pool));
+ }
+
+ /* Fetch the log message and any other revprops */
+ if (ctx->log_msg_func3)
+ {
+ const char *tmp_file;
+ apr_array_header_t *commit_items
+ = apr_array_make(scratch_pool, 1, sizeof(void *));
+ const char *message = "";
+
+ SVN_ERR(ctx->log_msg_func3(&message, &tmp_file, commit_items,
+ ctx->log_msg_baton3, scratch_pool));
+ /* Abort the shelving if the log message callback requested so. */
+ if (! message)
+ return SVN_NO_ERROR;
+
+ if (message && !dry_run)
+ {
+ svn_string_t *propval = svn_string_create(message, scratch_pool);
+
+ if (! revprop_table)
+ revprop_table = apr_hash_make(scratch_pool);
+ svn_hash_sets(revprop_table, SVN_PROP_REVISION_LOG, propval);
+ }
+ }
+
+ SVN_ERR(svn_client__shelf_revprop_set_all(shelf, revprop_table, scratch_pool));
+
+ if (new_version_p)
+ *new_version_p = shelf->max_version;
+
+ if (dry_run)
+ {
+ SVN_ERR(svn_client__shelf_delete_newer_versions(shelf, previous_version,
+ scratch_pool));
+ }
+
+ SVN_ERR(svn_client__shelf_close(shelf, scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+/* Return the single character representation of STATUS.
+ * (Similar to subversion/svn/status.c:generate_status_code()
+ * and subversion/tests/libsvn_client/client-test.c:status_to_char().) */
+static char
+status_to_char(enum svn_wc_status_kind status)
+{
+ switch (status)
+ {
+ case svn_wc_status_none: return '.';
+ case svn_wc_status_unversioned: return '?';
+ case svn_wc_status_normal: return ' ';
+ case svn_wc_status_added: return 'A';
+ case svn_wc_status_missing: return '!';
+ case svn_wc_status_deleted: return 'D';
+ case svn_wc_status_replaced: return 'R';
+ case svn_wc_status_modified: return 'M';
+ case svn_wc_status_merged: return 'G';
+ case svn_wc_status_conflicted: return 'C';
+ case svn_wc_status_ignored: return 'I';
+ case svn_wc_status_obstructed: return '~';
+ case svn_wc_status_external: return 'X';
+ case svn_wc_status_incomplete: return ':';
+ default: return '*';
+ }
+}
+
+/* Throw an error if any path affected by SHELF_VERSION gives a conflict
+ * when applied (as a dry-run) to the WC. */
+static svn_error_t *
+test_apply(svn_client__shelf_version_t *shelf_version,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ apr_hash_t *paths;
+ apr_hash_index_t *hi;
+
+ SVN_ERR(svn_client__shelf_paths_changed(&paths, shelf_version,
+ scratch_pool, scratch_pool));
+ for (hi = apr_hash_first(scratch_pool, paths); hi; hi = apr_hash_next(hi))
+ {
+ const char *path = apr_hash_this_key(hi);
+ svn_boolean_t conflict;
+
+ SVN_ERR(svn_client__shelf_test_apply_file(&conflict, shelf_version, path,
+ scratch_pool));
+ if (conflict)
+ {
+ char *to_wc_abspath
+ = svn_dirent_join(shelf_version->shelf->wc_root_abspath, path,
+ scratch_pool);
+ svn_wc_status3_t *status;
+
+ SVN_ERR(svn_wc_status3(&status, ctx->wc_ctx, to_wc_abspath,
+ scratch_pool, scratch_pool));
+ return svn_error_createf(SVN_ERR_ILLEGAL_TARGET, NULL,
+ _("Shelved path '%s' already has "
+ "status '%c' in the working copy"),
+ path, status_to_char(status->node_status));
+ }
+ }
+ return SVN_NO_ERROR;
+}
+
+/** Restore/unshelve a given or newest version of changes.
+ *
+ * Restore local modifications from shelf @a name version @a arg,
+ * or the newest version is @a arg is null.
+ *
+ * If @a dry_run is true, don't actually do it.
+ *
+ * Error if any path would have a conflict, unless @a force_if_conflict.
+ */
+static svn_error_t *
+shelf_restore(const char *name,
+ const char *arg,
+ svn_boolean_t dry_run,
+ svn_boolean_t quiet,
+ svn_boolean_t force_if_conflict,
+ const char *local_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ int version, old_version;
+ apr_time_t time_now = apr_time_now();
+ svn_client__shelf_t *shelf;
+ svn_client__shelf_version_t *shelf_version;
+
+ SVN_ERR(svn_client__shelf_open_existing(&shelf, name, local_abspath,
+ ctx, scratch_pool));
+
+ old_version = shelf->max_version;
+ if (arg)
+ {
+ SVN_ERR(svn_cstring_atoi(&version, arg));
+ SVN_ERR(svn_client__shelf_version_open(&shelf_version,
+ shelf, version,
+ scratch_pool, scratch_pool));
+ }
+ else
+ {
+ version = shelf->max_version;
+ SVN_ERR(get_newest_version_existing(&shelf_version, shelf,
+ scratch_pool, scratch_pool));
+ }
+
+ if (! quiet)
+ {
+ SVN_ERR(svn_cmdline_printf(scratch_pool,
+ _("--- Unshelve '%s' in WC root '%s'\n"),
+ shelf->name, shelf->wc_root_abspath));
+ SVN_ERR(stats(shelf, version, shelf_version, time_now,
+ TRUE /*with_logmsg*/, scratch_pool));
+ }
+ if (! force_if_conflict)
+ {
+ SVN_ERR_W(test_apply(shelf_version, ctx, scratch_pool),
+ _("Cannot unshelve/restore, as at least one shelved "
+ "path would conflict with a local modification "
+ "or other status in the working copy"));
+ }
+
+ SVN_ERR(svn_client__shelf_apply(shelf_version,
+ dry_run, scratch_pool));
+
+ if (! dry_run)
+ {
+ SVN_ERR(svn_client__shelf_delete_newer_versions(shelf, shelf_version,
+ scratch_pool));
+ }
+
+ if (!quiet)
+ {
+ if (version < old_version)
+ SVN_ERR(svn_cmdline_printf(scratch_pool,
+ Q_("restored '%s' version %d and deleted %d newer version\n",
+ "restored '%s' version %d and deleted %d newer versions\n",
+ old_version - version),
+ name, version, old_version - version));
+ else
+ SVN_ERR(svn_cmdline_printf(scratch_pool,
+ _("restored '%s' version %d (the newest version)\n"),
+ name, version));
+ }
+
+ SVN_ERR(svn_client__shelf_close(shelf, scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+shelf_diff(const char *name,
+ const char *arg,
+ const char *local_abspath,
+ svn_boolean_t summarize,
+ svn_depth_t depth,
+ svn_boolean_t ignore_ancestry,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ svn_client__shelf_t *shelf;
+ svn_client__shelf_version_t *shelf_version;
+ svn_stream_t *stream, *errstream;
+ svn_diff_tree_processor_t *diff_processor;
+
+ SVN_ERR(svn_client__shelf_open_existing(&shelf, name, local_abspath,
+ ctx, scratch_pool));
+
+ if (arg)
+ {
+ int version;
+
+ SVN_ERR(svn_cstring_atoi(&version, arg));
+ SVN_ERR(svn_client__shelf_version_open(&shelf_version,
+ shelf, version,
+ scratch_pool, scratch_pool));
+ }
+ else
+ {
+ SVN_ERR(get_newest_version_existing(&shelf_version, shelf,
+ scratch_pool, scratch_pool));
+ }
+
+ SVN_ERR(svn_stream_for_stdout(&stream, scratch_pool));
+ errstream = svn_stream_empty(scratch_pool);
+
+ if (summarize)
+ {
+ svn_client_diff_summarize_func_t func;
+ void *baton;
+
+ SVN_ERR(svn_cl__get_diff_summary_writer(&func, &baton,
+ FALSE /*xml*/,
+ FALSE /*ignore_properties*/,
+ "" /*anchor/prefix*/,
+ scratch_pool, scratch_pool));
+ SVN_ERR(svn_client__get_diff_summarize_callbacks(&diff_processor,
+ func, baton,
+ scratch_pool,
+ scratch_pool));
+ }
+ else
+ {
+ SVN_ERR(svn_client__get_diff_writer_svn(
+ &diff_processor,
+ NULL /*anchor*/,
+ "", "", /*orig_path_1, orig_path_2,*/
+ NULL /*options*/,
+ "" /*relative_to_dir*/,
+ FALSE /*no_diff_added*/,
+ FALSE /*no_diff_deleted*/,
+ FALSE /*show_copies_as_adds*/,
+ FALSE /*ignore_content_type*/,
+ FALSE /*ignore_properties*/,
+ FALSE /*properties_only*/,
+ TRUE /*pretty_print_mergeinfo*/,
+ svn_cmdline_output_encoding(scratch_pool),
+ stream, errstream,
+ ctx, scratch_pool));
+ }
+
+ SVN_ERR(svn_client__shelf_diff(shelf_version, "",
+ depth, ignore_ancestry,
+ diff_processor, scratch_pool));
+ SVN_ERR(svn_stream_close(stream));
+
+ SVN_ERR(svn_client__shelf_close(shelf, scratch_pool));
+ return SVN_NO_ERROR;
+}
+
+/* This implements the `svn_opt_subcommand_t' interface. */
+static svn_error_t *
+shelf_drop(const char *name,
+ const char *local_abspath,
+ svn_boolean_t dry_run,
+ svn_boolean_t quiet,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ SVN_ERR(svn_client__shelf_delete(name, local_abspath, dry_run,
+ ctx, scratch_pool));
+ if (! quiet)
+ SVN_ERR(svn_cmdline_printf(scratch_pool,
+ _("deleted '%s'\n"),
+ name));
+ return SVN_NO_ERROR;
+}
+
+/* */
+static svn_error_t *
+shelf_shelve(int *new_version,
+ const char *name,
+ apr_array_header_t *targets,
+ svn_depth_t depth,
+ apr_array_header_t *changelists,
+ apr_hash_t *revprop_table,
+ svn_boolean_t keep_local,
+ svn_boolean_t dry_run,
+ svn_boolean_t quiet,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ const char *local_abspath;
+
+ if (depth == svn_depth_unknown)
+ depth = svn_depth_infinity;
+
+ SVN_ERR(svn_cl__check_targets_are_local_paths(targets));
+
+ SVN_ERR(svn_cl__eat_peg_revisions(&targets, targets, scratch_pool));
+
+ svn_opt_push_implicit_dot_target(targets, scratch_pool);
+
+ /* ### TODO: check all paths are in same WC; for now use first path */
+ SVN_ERR(svn_dirent_get_absolute(&local_abspath,
+ APR_ARRAY_IDX(targets, 0, char *),
+ scratch_pool));
+
+ SVN_ERR(shelve(new_version, name,
+ targets, depth, changelists,
+ revprop_table,
+ keep_local, dry_run, quiet,
+ local_abspath, ctx, scratch_pool));
+
+ return SVN_NO_ERROR;
+}
+
+/* This implements the `svn_opt_subcommand_t' interface. */
+svn_error_t *
+svn_cl__shelf_save(apr_getopt_t *os,
+ void *baton,
+ apr_pool_t *pool)
+{
+ svn_cl__opt_state_t *opt_state = ((svn_cl__cmd_baton_t *) baton)->opt_state;
+
+ opt_state->keep_local = TRUE;
+ SVN_ERR(svn_cl__shelf_shelve(os, baton, pool));
+ return SVN_NO_ERROR;
+}
+
+/* This implements the `svn_opt_subcommand_t' interface. */
+svn_error_t *
+svn_cl__shelf_shelve(apr_getopt_t *os,
+ void *baton,
+ apr_pool_t *pool)
+{
+ svn_cl__opt_state_t *opt_state = ((svn_cl__cmd_baton_t *) baton)->opt_state;
+ svn_client_ctx_t *ctx = ((svn_cl__cmd_baton_t *) baton)->ctx;
+ const char *name;
+ apr_array_header_t *targets;
+
+ if (opt_state->quiet)
+ ctx->notify_func2 = NULL; /* Easy out: avoid unneeded work */
+
+ SVN_ERR(get_next_argument(&name, os, pool, pool));
+
+ /* Parse the remaining arguments as paths. */
+ SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
+ opt_state->targets,
+ ctx, FALSE, pool));
+ {
+ int new_version;
+ svn_error_t *err;
+
+ if (ctx->log_msg_func3)
+ SVN_ERR(svn_cl__make_log_msg_baton(&ctx->log_msg_baton3,
+ opt_state, NULL, ctx->config,
+ pool));
+ err = shelf_shelve(&new_version, name,
+ targets, opt_state->depth, opt_state->changelists,
+ opt_state->revprop_table,
+ opt_state->keep_local, opt_state->dry_run,
+ opt_state->quiet, ctx, pool);
+ if (ctx->log_msg_func3)
+ SVN_ERR(svn_cl__cleanup_log_msg(ctx->log_msg_baton3,
+ err, pool));
+ else
+ SVN_ERR(err);
+
+ if (! opt_state->quiet)
+ {
+ if (opt_state->keep_local)
+ SVN_ERR(svn_cmdline_printf(pool,
+ _("saved '%s' version %d\n"),
+ name, new_version));
+ else
+ SVN_ERR(svn_cmdline_printf(pool,
+ _("shelved '%s' version %d\n"),
+ name, new_version));
+ }
+ }
+
+ return SVN_NO_ERROR;
+}
+
+/* This implements the `svn_opt_subcommand_t' interface. */
+svn_error_t *
+svn_cl__shelf_unshelve(apr_getopt_t *os,
+ void *baton,
+ apr_pool_t *scratch_pool)
+{
+ svn_cl__opt_state_t *opt_state = ((svn_cl__cmd_baton_t *) baton)->opt_state;
+ svn_client_ctx_t *ctx = ((svn_cl__cmd_baton_t *) baton)->ctx;
+ const char *local_abspath;
+ const char *name;
+ const char *arg = NULL;
+
+ SVN_ERR(svn_dirent_get_absolute(&local_abspath, "", scratch_pool));
+
+ if (os->ind < os->argc)
+ {
+ SVN_ERR(get_next_argument(&name, os, scratch_pool, scratch_pool));
+ }
+ else
+ {
+ SVN_ERR(name_of_youngest(&name,
+ local_abspath, ctx, scratch_pool, scratch_pool));
+ SVN_ERR(svn_cmdline_printf(scratch_pool,
+ _("unshelving the youngest shelf, '%s'\n"),
+ name));
+ }
+
+ /* Which checkpoint number? */
+ if (os->ind < os->argc)
+ SVN_ERR(get_next_argument(&arg, os, scratch_pool, scratch_pool));
+
+ if (os->ind < os->argc)
+ return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
+ _("Too many arguments"));
+
+ if (opt_state->quiet)
+ ctx->notify_func2 = NULL; /* Easy out: avoid unneeded work */
+
+ SVN_ERR(shelf_restore(name, arg,
+ opt_state->dry_run, opt_state->quiet,
+ opt_state->force /*force_already_modified*/,
+ local_abspath, ctx, scratch_pool));
+
+ if (opt_state->drop)
+ {
+ SVN_ERR(shelf_drop(name, local_abspath,
+ opt_state->dry_run, opt_state->quiet,
+ ctx, scratch_pool));
+ }
+ return SVN_NO_ERROR;
+}
+
+/* This implements the `svn_opt_subcommand_t' interface. */
+svn_error_t *
+svn_cl__shelf_list(apr_getopt_t *os,
+ void *baton,
+ apr_pool_t *pool)
+{
+ svn_cl__opt_state_t *opt_state = ((svn_cl__cmd_baton_t *) baton)->opt_state;
+ svn_client_ctx_t *ctx = ((svn_cl__cmd_baton_t *) baton)->ctx;
+ apr_array_header_t *targets = NULL;
+ apr_pool_t *iterpool = svn_pool_create(pool);
+ int i;
+
+ SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
+ opt_state->targets,
+ ctx, FALSE, pool));
+ /* Add "." if user passed 0 arguments */
+ svn_opt_push_implicit_dot_target(targets, pool);
+
+ for (i = 0; i < targets->nelts; ++i)
+ {
+ const char *local_abspath;
+ const char *target = APR_ARRAY_IDX(targets, i, const char *);
+
+ svn_pool_clear(iterpool);
+
+ SVN_ERR(svn_dirent_get_absolute(&local_abspath, target, iterpool));
+
+ SVN_ERR(shelves_list(local_abspath,
+ opt_state->quiet,
+ ctx, iterpool));
+ }
+
+ svn_pool_destroy(iterpool);
+
+ return SVN_NO_ERROR;
+}
+
+/* "svn shelf-list-by-paths [PATH...]"
+ *
+ * TARGET_RELPATHS are all within the same WC, relative to WC_ROOT_ABSPATH.
+ */
+static svn_error_t *
+shelf_list_by_paths(apr_array_header_t *target_relpaths,
+ const char *wc_root_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool)
+{
+ apr_array_header_t *shelves;
+ apr_hash_t *paths_to_shelf_name = apr_hash_make(scratch_pool);
+ apr_array_header_t *array;
+ int i;
+
+ SVN_ERR(list_sorted_by_date(&shelves,
+ wc_root_abspath, ctx, scratch_pool));
+
+ /* Check paths are valid */
+ for (i = 0; i < target_relpaths->nelts; i++)
+ {
+ char *target_relpath = APR_ARRAY_IDX(target_relpaths, i, char *);
+
+ if (svn_path_is_url(target_relpath))
+ return svn_error_createf(SVN_ERR_ILLEGAL_TARGET, NULL,
+ _("'%s' is not a local path"), target_relpath);
+ SVN_ERR_ASSERT(svn_relpath_is_canonical(target_relpath));
+ }
+
+ /* Find the most recent shelf for each affected path */
+ for (i = 0; i < shelves->nelts; i++)
+ {
+ svn_sort__item_t *item = &APR_ARRAY_IDX(shelves, i, svn_sort__item_t);
+ const char *name = item->key;
+ svn_client__shelf_t *shelf;
+ svn_client__shelf_version_t *shelf_version;
+ apr_hash_t *shelf_paths;
+ int j;
+
+ SVN_ERR(svn_client__shelf_open_existing(&shelf,
+ name, wc_root_abspath,
+ ctx, scratch_pool));
+ SVN_ERR(svn_client__shelf_get_newest_version(&shelf_version, shelf,
+ scratch_pool, scratch_pool));
+ if (!shelf_version)
+ continue;
+ SVN_ERR(svn_client__shelf_paths_changed(&shelf_paths,
+ shelf_version,
+ scratch_pool, scratch_pool));
+ for (j = 0; j < target_relpaths->nelts; j++)
+ {
+ char *target_relpath = APR_ARRAY_IDX(target_relpaths, j, char *);
+ apr_hash_index_t *hi;
+
+ for (hi = apr_hash_first(scratch_pool, shelf_paths);
+ hi; hi = apr_hash_next(hi))
+ {
+ const char *shelf_path = apr_hash_this_key(hi);
+
+ if (svn_relpath_skip_ancestor(target_relpath, shelf_path))
+ {
+ if (! svn_hash_gets(paths_to_shelf_name, shelf_path))
+ {
+ svn_hash_sets(paths_to_shelf_name, shelf_path, shelf->name);
+ }
+ }
+ }
+ }
+ }
+
+ /* Print the results. */
+ array = svn_sort__hash(paths_to_shelf_name,
+ svn_sort_compare_items_as_paths,
+ scratch_pool);
+ for (i = 0; i < array->nelts; i++)
+ {
+ svn_sort__item_t *item = &APR_ARRAY_IDX(array, i, svn_sort__item_t);
+ const char *path = item->key;
+ const char *name = item->value;
+
+ SVN_ERR(svn_cmdline_printf(scratch_pool, "%-20.20s %s\n",
+ name,
+ svn_dirent_local_style(path, scratch_pool)));
+ }
+ return SVN_NO_ERROR;
+}
+
+/* This implements the `svn_opt_subcommand_t' interface. */
+svn_error_t *
+svn_cl__shelf_list_by_paths(apr_getopt_t *os,
+ void *baton,
+ apr_pool_t *pool)
+{
+ svn_cl__opt_state_t *opt_state = ((svn_cl__cmd_baton_t *) baton)->opt_state;
+ svn_client_ctx_t *ctx = ((svn_cl__cmd_baton_t *) baton)->ctx;
+ const char *wc_root_abspath;
+ apr_array_header_t *targets;
+
+ /* Parse the remaining arguments as paths. */
+ SVN_ERR(targets_relative_to_a_wc(&wc_root_abspath, &targets,
+ os, opt_state->targets,
+ ctx, pool, pool));
+
+ SVN_ERR(shelf_list_by_paths(targets, wc_root_abspath, ctx, pool));
+ return SVN_NO_ERROR;
+}
+
+/* This implements the `svn_opt_subcommand_t' interface. */
+svn_error_t *
+svn_cl__shelf_diff(apr_getopt_t *os,
+ void *baton,
+ apr_pool_t *pool)
+{
+ svn_cl__opt_state_t *opt_state = ((svn_cl__cmd_baton_t *) baton)->opt_state;
+ svn_client_ctx_t *ctx = ((svn_cl__cmd_baton_t *) baton)->ctx;
+ const char *local_abspath;
+ const char *name;
+ const char *arg = NULL;
+
+ SVN_ERR(svn_dirent_get_absolute(&local_abspath, "", pool));
+
+ SVN_ERR(get_next_argument(&name, os, pool, pool));
+
+ /* Which checkpoint number? */
+ if (os->ind < os->argc)
+ SVN_ERR(get_next_argument(&arg, os, pool, pool));
+
+ if (os->ind < os->argc)
+ return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
+ _("Too many arguments"));
+
+ SVN_ERR(shelf_diff(name, arg, local_abspath,
+ opt_state->diff.summarize,
+ opt_state->depth, opt_state->ignore_ancestry,
+ ctx, pool));
+
+ return SVN_NO_ERROR;
+}
+
+/* This implements the `svn_opt_subcommand_t' interface. */
+svn_error_t *
+svn_cl__shelf_drop(apr_getopt_t *os,
+ void *baton,
+ apr_pool_t *pool)
+{
+ svn_cl__opt_state_t *opt_state = ((svn_cl__cmd_baton_t *) baton)->opt_state;
+ svn_client_ctx_t *ctx = ((svn_cl__cmd_baton_t *) baton)->ctx;
+ const char *name;
+ apr_array_header_t *targets = NULL;
+ apr_pool_t *iterpool = svn_pool_create(pool);
+ int i;
+
+ SVN_ERR(get_next_argument(&name, os, pool, pool));
+
+ SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
+ opt_state->targets,
+ ctx, FALSE, pool));
+ svn_opt_push_implicit_dot_target(targets, pool);
+
+ for (i = 0; i < targets->nelts; ++i)
+ {
+ const char *local_abspath;
+ const char *target = APR_ARRAY_IDX(targets, i, const char *);
+
+ svn_pool_clear(iterpool);
+
+ SVN_ERR(svn_dirent_get_absolute(&local_abspath, target, iterpool));
+ SVN_ERR(shelf_drop(name, local_abspath,
+ opt_state->dry_run, opt_state->quiet,
+ ctx, iterpool));
+ }
+
+ svn_pool_destroy(iterpool);
+
+ return SVN_NO_ERROR;
+}
+
+/* This implements the `svn_opt_subcommand_t' interface. */
+svn_error_t *
+svn_cl__shelf_log(apr_getopt_t *os,
+ void *baton,
+ apr_pool_t *pool)
+{
+ svn_cl__opt_state_t *opt_state = ((svn_cl__cmd_baton_t *) baton)->opt_state;
+ svn_client_ctx_t *ctx = ((svn_cl__cmd_baton_t *) baton)->ctx;
+ const char *name;
+ apr_array_header_t *targets = NULL;
+ apr_pool_t *iterpool = svn_pool_create(pool);
+ int i;
+
+ SVN_ERR(get_next_argument(&name, os, pool, pool));
+
+ SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
+ opt_state->targets,
+ ctx, FALSE, pool));
+ svn_opt_push_implicit_dot_target(targets, pool);
+
+ for (i = 0; i < targets->nelts; ++i)
+ {
+ const char *local_abspath;
+ const char *target = APR_ARRAY_IDX(targets, i, const char *);
+
+ svn_pool_clear(iterpool);
+
+ SVN_ERR(svn_dirent_get_absolute(&local_abspath, target, iterpool));
+ SVN_ERR(shelf_log(name, local_abspath, ctx, iterpool));
+ }
+
+ svn_pool_destroy(iterpool);
+
+ return SVN_NO_ERROR;
+}
diff --git a/subversion/svn/shelve-cmd.c b/subversion/svn/shelve-cmd.c
deleted file mode 100644
index df88a65..0000000
--- a/subversion/svn/shelve-cmd.c
+++ /dev/null
@@ -1,369 +0,0 @@
-/*
- * shelve-cmd.c -- Shelve commands.
- *
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- */
-
-/* We define this here to remove any further warnings about the usage of
- experimental functions in this file. */
-#define SVN_EXPERIMENTAL
-
-#include "svn_client.h"
-#include "svn_error_codes.h"
-#include "svn_error.h"
-#include "svn_path.h"
-#include "svn_utf.h"
-
-#include "cl.h"
-
-#include "svn_private_config.h"
-#include "private/svn_sorts_private.h"
-
-
-/* First argument should be the name of a shelved change. */
-static svn_error_t *
-get_name(const char **name,
- apr_getopt_t *os,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool)
-{
- apr_array_header_t *args;
-
- SVN_ERR(svn_opt_parse_num_args(&args, os, 1, scratch_pool));
- SVN_ERR(svn_utf_cstring_to_utf8(name,
- APR_ARRAY_IDX(args, 0, const char *),
- result_pool));
- return SVN_NO_ERROR;
-}
-
-/* A comparison function for svn_sort__hash(), comparing the mtime of two
- svn_client_shelved_patch_info_t's. */
-static int
-compare_shelved_patch_infos_by_mtime(const svn_sort__item_t *a,
- const svn_sort__item_t *b)
-{
- svn_client_shelved_patch_info_t *a_val = a->value;
- svn_client_shelved_patch_info_t *b_val = b->value;
-
- return (a_val->dirent->mtime < b_val->dirent->mtime)
- ? -1 : (a_val->dirent->mtime > b_val->dirent->mtime) ? 1 : 0;
-}
-
-/* Return a list of shelved changes sorted by patch file mtime, oldest first.
- */
-static svn_error_t *
-list_sorted_by_date(apr_array_header_t **list,
- const char *local_abspath,
- svn_client_ctx_t *ctx,
- apr_pool_t *scratch_pool)
-{
- apr_hash_t *shelved_patch_infos;
-
- SVN_ERR(svn_client_shelves_list(&shelved_patch_infos, local_abspath,
- ctx, scratch_pool, scratch_pool));
- *list = svn_sort__hash(shelved_patch_infos,
- compare_shelved_patch_infos_by_mtime,
- scratch_pool);
- return SVN_NO_ERROR;
-}
-
-#ifndef WIN32
-/* Run CMD with ARGS.
- * Send its stdout to the parent's stdout. Disconnect its stdin and stderr.
- */
-static svn_error_t *
-run_cmd(const char *cmd,
- const char *const *args,
- apr_pool_t *scratch_pool)
-{
- apr_status_t apr_err;
- apr_file_t *outfile;
- svn_error_t *err;
- int exitcode;
-
- apr_err = apr_file_open_stdout(&outfile, scratch_pool);
- if (apr_err)
- return svn_error_wrap_apr(apr_err, "Can't open stdout");
-
- err = svn_io_run_cmd(NULL /*path*/, cmd, args,
- &exitcode, NULL /*exitwhy*/,
- TRUE /*inherit*/,
- NULL /*infile*/, outfile, NULL /*errfile*/,
- scratch_pool);
- if (err || exitcode)
- return svn_error_createf(SVN_ERR_EXTERNAL_PROGRAM, err,
- _("Could not run external command '%s'"), cmd);
- return SVN_NO_ERROR;
-}
-#endif
-
-/* Display a list of shelved changes */
-static svn_error_t *
-shelves_list(const char *local_abspath,
- svn_boolean_t diffstat,
- svn_client_ctx_t *ctx,
- apr_pool_t *scratch_pool)
-{
- apr_array_header_t *list;
- int i;
-
- SVN_ERR(list_sorted_by_date(&list,
- local_abspath, ctx, scratch_pool));
-
- for (i = 0; i < list->nelts; i++)
- {
- const svn_sort__item_t *item = &APR_ARRAY_IDX(list, i, svn_sort__item_t);
- const char *name = item->key;
- svn_client_shelved_patch_info_t *info = item->value;
- int age = (int)((apr_time_now() - info->mtime) / 1000000 / 60);
- apr_hash_t *paths;
-
- SVN_ERR(svn_client_shelf_get_paths(&paths,
- name, local_abspath, ctx,
- scratch_pool, scratch_pool));
-
- SVN_ERR(svn_cmdline_printf(scratch_pool,
- _("%-30s %6d mins old %10ld bytes %4d paths changed\n"),
- name, age, (long)info->dirent->filesize,
- apr_hash_count(paths)));
- SVN_ERR(svn_cmdline_printf(scratch_pool,
- _(" %.50s\n"),
- info->message));
-
- if (diffstat)
- {
-#ifndef WIN32
- const char *args[4];
- svn_error_t *err;
-
- args[0] = "diffstat";
- args[1] = "-p0";
- args[2] = info->patch_path;
- args[3] = NULL;
- err = run_cmd("diffstat", args, scratch_pool);
- if (err)
- svn_error_clear(err);
- else
- SVN_ERR(svn_cmdline_printf(scratch_pool,
- "\n"));
-#endif
- }
- }
-
- return SVN_NO_ERROR;
-}
-
-/* Find the name of the youngest shelved change.
- */
-static svn_error_t *
-name_of_youngest(const char **name_p,
- const char *local_abspath,
- svn_client_ctx_t *ctx,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool)
-{
- apr_array_header_t *list;
- const svn_sort__item_t *youngest_item;
-
- SVN_ERR(list_sorted_by_date(&list,
- local_abspath, ctx, scratch_pool));
- if (list->nelts == 0)
- return svn_error_create(SVN_ERR_CL_INSUFFICIENT_ARGS, NULL,
- _("No shelved changes found"));
-
- youngest_item = &APR_ARRAY_IDX(list, list->nelts - 1, svn_sort__item_t);
- *name_p = youngest_item->key;
- return SVN_NO_ERROR;
-}
-
-/* This implements the `svn_opt_subcommand_t' interface. */
-svn_error_t *
-svn_cl__shelve(apr_getopt_t *os,
- void *baton,
- apr_pool_t *pool)
-{
- svn_cl__opt_state_t *opt_state = ((svn_cl__cmd_baton_t *) baton)->opt_state;
- svn_client_ctx_t *ctx = ((svn_cl__cmd_baton_t *) baton)->ctx;
- const char *local_abspath;
- const char *name;
- apr_array_header_t *targets;
- svn_boolean_t has_changes;
-
- if (opt_state->quiet)
- ctx->notify_func2 = NULL; /* Easy out: avoid unneeded work */
-
- SVN_ERR(svn_dirent_get_absolute(&local_abspath, "", pool));
-
- if (opt_state->list)
- {
- if (os->ind < os->argc)
- return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, 0, NULL);
-
- SVN_ERR(shelves_list(local_abspath,
- ! opt_state->quiet /*diffstat*/,
- ctx, pool));
- return SVN_NO_ERROR;
- }
-
- SVN_ERR(get_name(&name, os, pool, pool));
-
- if (opt_state->remove)
- {
- if (os->ind < os->argc)
- return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, 0, NULL);
-
- SVN_ERR(svn_client_shelves_delete(name, local_abspath,
- opt_state->dry_run,
- ctx, pool));
- if (! opt_state->quiet)
- SVN_ERR(svn_cmdline_printf(pool, "deleted '%s'\n", name));
- return SVN_NO_ERROR;
- }
-
- /* Parse the remaining arguments as paths. */
- SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
- opt_state->targets,
- ctx, FALSE, pool));
- svn_opt_push_implicit_dot_target(targets, pool);
-
- {
- svn_depth_t depth = opt_state->depth;
- svn_error_t *err;
-
- /* shelve has no implicit dot-target `.', so don't you put that
- code here! */
- if (!targets->nelts)
- return svn_error_create(SVN_ERR_CL_INSUFFICIENT_ARGS, 0, NULL);
-
- SVN_ERR(svn_cl__check_targets_are_local_paths(targets));
-
- if (depth == svn_depth_unknown)
- depth = svn_depth_infinity;
-
- SVN_ERR(svn_cl__eat_peg_revisions(&targets, targets, pool));
-
- if (ctx->log_msg_func3)
- SVN_ERR(svn_cl__make_log_msg_baton(&ctx->log_msg_baton3,
- opt_state, NULL, ctx->config,
- pool));
- err = svn_client_shelve(name,
- targets, depth, opt_state->changelists,
- opt_state->keep_local, opt_state->dry_run,
- ctx, pool);
- if (ctx->log_msg_func3)
- SVN_ERR(svn_cl__cleanup_log_msg(ctx->log_msg_baton3,
- err, pool));
- else
- SVN_ERR(err);
- }
-
- /* If no modifications were shelved, throw an error. */
- SVN_ERR(svn_client_shelf_has_changes(&has_changes,
- name, local_abspath, ctx, pool));
- if (! has_changes)
- {
- SVN_ERR(svn_client_shelves_delete(name, local_abspath,
- opt_state->dry_run, ctx, pool));
- return svn_error_createf(SVN_ERR_ILLEGAL_TARGET, NULL,
- _("No changes were shelved"));
- }
-
- if (! opt_state->quiet)
- SVN_ERR(svn_cmdline_printf(pool, "shelved '%s'\n", name));
-
- return SVN_NO_ERROR;
-}
-
-/* This implements the `svn_opt_subcommand_t' interface. */
-svn_error_t *
-svn_cl__unshelve(apr_getopt_t *os,
- void *baton,
- apr_pool_t *pool)
-{
- svn_cl__opt_state_t *opt_state = ((svn_cl__cmd_baton_t *) baton)->opt_state;
- svn_client_ctx_t *ctx = ((svn_cl__cmd_baton_t *) baton)->ctx;
- const char *local_abspath;
- const char *name;
- apr_array_header_t *targets;
-
- SVN_ERR(svn_dirent_get_absolute(&local_abspath, "", pool));
-
- if (opt_state->list)
- {
- if (os->ind < os->argc)
- return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, 0, NULL);
-
- SVN_ERR(shelves_list(local_abspath,
- ! opt_state->quiet /*diffstat*/,
- ctx, pool));
- return SVN_NO_ERROR;
- }
-
- if (os->ind < os->argc)
- {
- SVN_ERR(get_name(&name, os, pool, pool));
- }
- else
- {
- SVN_ERR(name_of_youngest(&name, local_abspath, ctx, pool, pool));
- SVN_ERR(svn_cmdline_printf(pool,
- _("unshelving the youngest change, '%s'\n"),
- name));
- }
-
- /* There should be no remaining arguments. */
- SVN_ERR(svn_cl__args_to_target_array_print_reserved(&targets, os,
- opt_state->targets,
- ctx, FALSE, pool));
- if (targets->nelts)
- return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, 0, NULL);
-
- if (opt_state->quiet)
- ctx->notify_func2 = NULL; /* Easy out: avoid unneeded work */
-
- SVN_ERR(svn_client_unshelve(name, local_abspath,
- opt_state->keep_local, opt_state->dry_run,
- ctx, pool));
- if (! opt_state->quiet)
- SVN_ERR(svn_cmdline_printf(pool, "unshelved '%s'\n", name));
-
- return SVN_NO_ERROR;
-}
-
-/* This implements the `svn_opt_subcommand_t' interface. */
-svn_error_t *
-svn_cl__shelves(apr_getopt_t *os,
- void *baton,
- apr_pool_t *pool)
-{
- svn_cl__opt_state_t *opt_state = ((svn_cl__cmd_baton_t *) baton)->opt_state;
- svn_client_ctx_t *ctx = ((svn_cl__cmd_baton_t *) baton)->ctx;
- const char *local_abspath;
-
- /* There should be no remaining arguments. */
- if (os->ind < os->argc)
- return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, 0, NULL);
-
- SVN_ERR(svn_dirent_get_absolute(&local_abspath, "", pool));
- SVN_ERR(shelves_list(local_abspath, ! opt_state->quiet /*diffstat*/,
- ctx, pool));
-
- return SVN_NO_ERROR;
-}
diff --git a/subversion/svn/svn.c b/subversion/svn/svn.c
index 48b894f..a62e399 100644
--- a/subversion/svn/svn.c
+++ b/subversion/svn/svn.c
@@ -146,9 +146,8 @@ typedef enum svn_cl__longopt_t {
opt_show_item,
opt_adds_as_modification,
opt_vacuum_pristines,
- opt_delete,
- opt_keep_shelved,
- opt_list
+ opt_drop,
+ opt_viewspec,
} svn_cl__longopt_t;
@@ -460,7 +459,11 @@ const apr_getopt_option_t svn_cl__options[] =
" "
" author of 'last-changed-revision'\n"
" "
- " 'wc-root' root of TARGET's working copy")},
+ " 'wc-root' root of TARGET's working copy\n"
+ " "
+ " 'schedule' 'normal','add','delete','replace'\n"
+ " "
+ " 'depth' checkout depth of TARGET in WC")},
{"adds-as-modification", opt_adds_as_modification, 0,
N_("Local additions are merged with incoming additions\n"
@@ -474,9 +477,13 @@ const apr_getopt_option_t svn_cl__options[] =
{"vacuum-pristines", opt_vacuum_pristines, 0,
N_("remove unreferenced pristines from .svn directory")},
- {"list", opt_list, 0, N_("list shelved patches")},
- {"keep-shelved", opt_keep_shelved, 0, N_("do not delete the shelved patch")},
- {"delete", opt_delete, 0, N_("delete the shelved patch")},
+ {"drop", opt_drop, 0,
+ N_("drop shelf after successful unshelve")},
+
+ {"x-viewspec", opt_viewspec, 1,
+ N_("print the working copy layout, formatted according\n"
+ " "
+ "to ARG: 'classic' or 'svn11'")},
/* Long-opt Aliases
*
@@ -523,92 +530,97 @@ const int svn_cl__global_options[] =
opt_encoding, \
opt_with_revprop
-const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
+const svn_opt_subcommand_desc3_t svn_cl__cmd_table[] =
{
- { "add", svn_cl__add, {0}, N_
- ("Put files and directories under version control, scheduling\n"
+ { "add", svn_cl__add, {0}, {N_(
+ "Put files and directories under version control, scheduling\n"
"them for addition to repository. They will be added in next commit.\n"
- "usage: add PATH...\n"),
+ "usage: add PATH...\n"
+ )},
{opt_targets, 'N', opt_depth, 'q', opt_force, opt_no_ignore, opt_autoprops,
opt_no_autoprops, opt_parents },
{{opt_parents, N_("add intermediate parents")}} },
- { "auth", svn_cl__auth, {0}, N_
- ("Manage cached authentication credentials.\n"
- "usage: 1. svn auth [PATTERN ...]\n"
- "usage: 2. svn auth --remove PATTERN [PATTERN ...]\n"
- "\n"
- " With no arguments, list all cached authentication credentials.\n"
- " Authentication credentials include usernames, passwords,\n"
- " SSL certificates, and SSL client-certificate passphrases.\n"
- " If PATTERN is specified, only list credentials with attributes matching one\n"
- " or more patterns. With the --remove option, remove cached authentication\n"
- " credentials matching one or more patterns.\n"
- "\n"
- " If more than one pattern is specified credentials are considered only if they\n"
- " match all specified patterns. Patterns are matched case-sensitively and may\n"
- " contain glob wildcards:\n"
- " ? matches any single character\n"
- " * matches a sequence of arbitrary characters\n"
- " [abc] matches any of the characters listed inside the brackets\n"
- " Note that wildcards will usually need to be quoted or escaped on the\n"
- " command line because many command shells will interfere by trying to\n"
- " expand them.\n"),
+ { "auth", svn_cl__auth, {0}, {N_(
+ "Manage cached authentication credentials.\n"
+ "usage: 1. svn auth [PATTERN ...]\n"
+ "usage: 2. svn auth --remove PATTERN [PATTERN ...]\n"
+ "\n"), N_(
+ " With no arguments, list all cached authentication credentials.\n"
+ " Authentication credentials include usernames, passwords,\n"
+ " SSL certificates, and SSL client-certificate passphrases.\n"
+ " If PATTERN is specified, only list credentials with attributes matching one\n"
+ " or more patterns. With the --remove option, remove cached authentication\n"
+ " credentials matching one or more patterns.\n"
+ "\n"), N_(
+ " If more than one pattern is specified credentials are considered only if they\n"
+ " match all specified patterns. Patterns are matched case-sensitively and may\n"
+ " contain glob wildcards:\n"
+ " ? matches any single character\n"
+ " * matches a sequence of arbitrary characters\n"
+ " [abc] matches any of the characters listed inside the brackets\n"
+ " Note that wildcards will usually need to be quoted or escaped on the\n"
+ " command line because many command shells will interfere by trying to\n"
+ " expand them.\n"
+ )},
{ opt_remove, opt_show_passwords },
{ {opt_remove, N_("remove matching authentication credentials")} }
},
- { "blame", svn_cl__blame, {"praise", "annotate", "ann"}, N_
- ("Show when each line of a file was last (or\n"
+ { "blame", svn_cl__blame, {"praise", "annotate", "ann"}, {N_(
+ "Show when each line of a file was last (or\n"
"next) changed.\n"
"usage: blame [-rM:N] TARGET[@REV]...\n"
- "\n"
+ "\n"), N_(
" Annotate each line of a file with the revision number and author of the\n"
" last change (or optionally the next change) to that line.\n"
- "\n"
+ "\n"), N_(
" With no revision range (same as -r0:REV), or with '-r M:N' where M < N,\n"
" annotate each line that is present in revision N of the file, with\n"
" the last revision at or before rN that changed or added the line,\n"
" looking back no further than rM.\n"
- "\n"
+ "\n"), N_(
" With a reverse revision range '-r M:N' where M > N,\n"
" annotate each line that is present in revision N of the file, with\n"
" the next revision after rN that changed or deleted the line,\n"
" looking forward no further than rM.\n"
- "\n"
+ "\n"), N_(
" If specified, REV determines in which revision the target is first\n"
" looked up.\n"
- "\n"
- " Write the annotated result to standard output.\n"),
+ "\n"), N_(
+ " Write the annotated result to standard output.\n"
+ )},
{'r', 'v', 'g', opt_incremental, opt_xml, 'x', opt_force} },
- { "cat", svn_cl__cat, {0}, N_
- ("Output the content of specified files or URLs.\n"
+ { "cat", svn_cl__cat, {0}, {N_(
+ "Output the content of specified files or URLs.\n"
"usage: cat TARGET[@REV]...\n"
- "\n"
+ "\n"), N_(
" If specified, REV determines in which revision the target is first\n"
- " looked up.\n"),
+ " looked up.\n"
+ )},
{'r', opt_ignore_keywords} },
- { "changelist", svn_cl__changelist, {"cl"}, N_
- ("Associate (or dissociate) changelist CLNAME with the named files.\n"
+ { "changelist", svn_cl__changelist, {"cl"}, {N_(
+ "Associate (or dissociate) changelist CLNAME with the named files.\n"
"usage: 1. changelist CLNAME PATH...\n"
- " 2. changelist --remove PATH...\n"),
+ " 2. changelist --remove PATH...\n"
+ )},
{ 'q', 'R', opt_depth, opt_remove, opt_targets, opt_changelist} },
- { "checkout", svn_cl__checkout, {"co"}, N_
- ("Check out a working copy from a repository.\n"
+ { "checkout", svn_cl__checkout, {"co"}, {N_(
+ "Check out a working copy from a repository.\n"
"usage: checkout URL[@REV]... [PATH]\n"
- "\n"
+ "\n"), N_(
" If specified, REV determines in which revision the URL is first\n"
" looked up.\n"
- "\n"
+ "\n"), N_(
" If PATH is omitted, the basename of the URL will be used as\n"
" the destination. If multiple URLs are given each will be checked\n"
" out into a sub-directory of PATH, with the name of the sub-directory\n"
" being the basename of the URL.\n"
- "\n"
+ "\n"), N_(
" If --force is used, unversioned obstructing paths in the working\n"
" copy destination do not automatically cause the check out to fail.\n"
" If the obstructing path is the same type (file or directory) as the\n"
@@ -619,62 +631,65 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" obstruction and the repository are treated like a local modification\n"
" to the working copy. All properties from the repository are applied\n"
" to the obstructing path.\n"
- "\n"
+ "\n"), N_(
" See also 'svn help update' for a list of possible characters\n"
- " reporting the action taken.\n"),
+ " reporting the action taken.\n"
+ )},
{'r', 'q', 'N', opt_depth, opt_force, opt_ignore_externals} },
- { "cleanup", svn_cl__cleanup, {0}, N_
- ("Either recover from an interrupted operation that left the working copy locked,\n"
+ { "cleanup", svn_cl__cleanup, {0}, {N_(
+ "Either recover from an interrupted operation that left the working copy locked,\n"
"or remove unwanted files.\n"
"usage: 1. cleanup [WCPATH...]\n"
" 2. cleanup --remove-unversioned [WCPATH...]\n"
" cleanup --remove-ignored [WCPATH...]\n"
" 3. cleanup --vacuum-pristines [WCPATH...]\n"
- "\n"
+ "\n"), N_(
" 1. When none of the options --remove-unversioned, --remove-ignored, and\n"
" --vacuum-pristines is specified, remove all write locks (shown as 'L' by\n"
" the 'svn status' command) from the working copy. Usually, this is only\n"
" necessary if a Subversion client has crashed while using the working copy,\n"
" leaving it in an unusable state.\n"
- "\n"
+ "\n"), N_(
" WARNING: There is no mechanism that will protect write locks still\n"
" being used by other Subversion clients. Running this command\n"
" without any options while another client is using the working\n"
" copy can corrupt the working copy beyond repair!\n"
- "\n"
+ "\n"), N_(
" 2. If the --remove-unversioned option or the --remove-ignored option\n"
" is given, remove any unversioned or ignored items within WCPATH.\n"
" Note that the 'svn status' command shows unversioned items as '?',\n"
" and ignored items as 'I' if the --no-ignore option is given to it.\n"
- "\n"
+ "\n"), N_(
" 3. If the --vacuum-pristines option is given, remove pristine copies of\n"
" files which are stored inside the .svn directory and which are no longer\n"
- " referenced by any file in the working copy.\n"),
+ " referenced by any file in the working copy.\n"
+ )},
{ opt_remove_unversioned, opt_remove_ignored, opt_vacuum_pristines,
opt_include_externals, 'q', opt_merge_cmd },
{ { opt_merge_cmd, N_("deprecated and ignored") } } },
- { "commit", svn_cl__commit, {"ci"},
- N_("Send changes from your working copy to the repository.\n"
- "usage: commit [PATH...]\n"
- "\n"
- " A log message must be provided, but it can be empty. If it is not\n"
- " given by a --message or --file option, an editor will be started.\n"
- "\n"
- " If any targets are (or contain) locked items, those will be\n"
- " unlocked after a successful commit, unless --no-unlock is given.\n"
- "\n"
- " If --include-externals is given, also commit file and directory\n"
- " externals reached by recursion. Do not commit externals with a\n"
- " fixed revision.\n"),
+ { "commit", svn_cl__commit, {"ci"}, {N_(
+ "Send changes from your working copy to the repository.\n"
+ "usage: commit [PATH...]\n"
+ "\n"), N_(
+ " A log message must be provided, but it can be empty. If it is not\n"
+ " given by a --message or --file option, an editor will be started.\n"
+ "\n"), N_(
+ " If any targets are (or contain) locked items, those will be\n"
+ " unlocked after a successful commit, unless --no-unlock is given.\n"
+ "\n"), N_(
+ " If --include-externals is given, also commit file and directory\n"
+ " externals reached by recursion. Do not commit externals with a\n"
+ " fixed revision.\n"
+ )},
{'q', 'N', opt_depth, opt_targets, opt_no_unlock, SVN_CL__LOG_MSG_OPTIONS,
opt_changelist, opt_keep_changelists, opt_include_externals} },
- { "copy", svn_cl__copy, {"cp"}, N_
- ("Copy files and directories in a working copy or repository.\n"
+ { "copy", svn_cl__copy, {"cp"}, {N_(
+ "Copy files and directories in a working copy or repository.\n"
"usage: copy SRC[@REV]... DST\n"
- "\n"
+ "\n"), N_(
" SRC and DST can each be either a working copy (WC) path or URL:\n"
" WC -> WC: copy and schedule for addition (with history)\n"
" WC -> URL: immediately commit a copy of WC to URL\n"
@@ -683,33 +698,35 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" All the SRCs must be of the same type. If DST is an existing directory,\n"
" the sources will be added as children of DST. When copying multiple\n"
" sources, DST must be an existing directory.\n"
- "\n"
+ "\n"), N_(
" WARNING: For compatibility with previous versions of Subversion,\n"
" copies performed using two working copy paths (WC -> WC) will not\n"
" contact the repository. As such, they may not, by default, be able\n"
" to propagate merge tracking information from the source of the copy\n"
- " to the destination.\n"),
+ " to the destination.\n"
+ )},
{'r', 'q', opt_ignore_externals, opt_parents, SVN_CL__LOG_MSG_OPTIONS,
opt_pin_externals} },
- { "delete", svn_cl__delete, {"del", "remove", "rm"}, N_
- ("Remove files and directories from version control.\n"
+ { "delete", svn_cl__delete, {"del", "remove", "rm"}, {N_(
+ "Remove files and directories from version control.\n"
"usage: 1. delete PATH...\n"
" 2. delete URL...\n"
- "\n"
+ "\n"), N_(
" 1. Each item specified by a PATH is scheduled for deletion upon\n"
" the next commit. Files, and directories that have not been\n"
" committed, are immediately removed from the working copy\n"
" unless the --keep-local option is given.\n"
" PATHs that are, or contain, unversioned or modified items will\n"
" not be removed unless the --force or --keep-local option is given.\n"
- "\n"
+ "\n"), N_(
" 2. Each item specified by a URL is deleted from the repository\n"
- " via an immediate commit.\n"),
+ " via an immediate commit.\n"
+ )},
{opt_force, 'q', opt_targets, SVN_CL__LOG_MSG_OPTIONS, opt_keep_local} },
- { "diff", svn_cl__diff, {"di"}, N_
- ("Display local changes or differences between two revisions or paths.\n"
+ { "diff", svn_cl__diff, {"di"}, {N_(
+ "Display local changes or differences between two revisions or paths.\n"
"usage: 1. diff\n"
" 2. diff [-c M | -r N[:M]] [TARGET[@REV]...]\n"
" 3. diff [-r N[:M]] --old=OLD-TGT[@OLDREV] [--new=NEW-TGT[@NEWREV]] \\\n"
@@ -717,16 +734,16 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" 4. diff OLD-URL[@OLDREV] NEW-URL[@NEWREV]\n"
" 5. diff OLD-URL[@OLDREV] NEW-PATH[@NEWREV]\n"
" 6. diff OLD-PATH[@OLDREV] NEW-URL[@NEWREV]\n"
- "\n"
+ "\n"), N_(
" 1. Use just 'svn diff' to display local modifications in a working copy.\n"
- "\n"
+ "\n"), N_(
" 2. Display the changes made to TARGETs as they are seen in REV between\n"
" two revisions. TARGETs may be all working copy paths or all URLs.\n"
" If TARGETs are working copy paths, N defaults to BASE and M to the\n"
" working copy; if URLs, N must be specified and M defaults to HEAD.\n"
" The '-c M' option is equivalent to '-r N:M' where N = M-1.\n"
" Using '-c -M' does the reverse: '-r M:N' where N = M-1.\n"
- "\n"
+ "\n"), N_(
" 3. Display the differences between OLD-TGT as it was seen in OLDREV and\n"
" NEW-TGT as it was seen in NEWREV. PATHs, if given, are relative to\n"
" OLD-TGT and NEW-TGT and restrict the output to differences for those\n"
@@ -735,164 +752,176 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" to N, -r N:M makes OLDREV default to N and NEWREV default to M.\n"
" If OLDREV or NEWREV are not specified, they default to WORKING for\n"
" working copy targets and to HEAD for URL targets.\n"
- "\n"
+ "\n"), N_(
" Either or both OLD-TGT and NEW-TGT may also be paths to unversioned\n"
" targets. Revisions cannot be specified for unversioned targets.\n"
" Both targets must be of the same node kind (file or directory).\n"
" Diffing unversioned targets against URL targets is not supported.\n"
- "\n"
+ "\n"), N_(
" 4. Shorthand for 'svn diff --old=OLD-URL[@OLDREV] --new=NEW-URL[@NEWREV]'\n"
" 5. Shorthand for 'svn diff --old=OLD-URL[@OLDREV] --new=NEW-PATH[@NEWREV]'\n"
- " 6. Shorthand for 'svn diff --old=OLD-PATH[@OLDREV] --new=NEW-URL[@NEWREV]'\n"),
+ " 6. Shorthand for 'svn diff --old=OLD-PATH[@OLDREV] --new=NEW-URL[@NEWREV]'\n"
+ )},
{'r', 'c', opt_old_cmd, opt_new_cmd, 'N', opt_depth, opt_diff_cmd,
opt_internal_diff, 'x', opt_no_diff_added, opt_no_diff_deleted,
opt_ignore_properties, opt_properties_only,
opt_show_copies_as_adds, opt_notice_ancestry, opt_summarize, opt_changelist,
opt_force, opt_xml, opt_use_git_diff_format, opt_patch_compatible} },
- { "export", svn_cl__export, {0}, N_
- ("Create an unversioned copy of a tree.\n"
+ { "export", svn_cl__export, {0}, {N_(
+ "Create an unversioned copy of a tree.\n"
"usage: 1. export [-r REV] URL[@PEGREV] [PATH]\n"
" 2. export [-r REV] PATH1[@PEGREV] [PATH2]\n"
- "\n"
+ "\n"), N_(
" 1. Exports a clean directory tree from the repository specified by\n"
" URL, at revision REV if it is given, otherwise at HEAD, into\n"
" PATH. If PATH is omitted, the last component of the URL is used\n"
" for the local directory name.\n"
- "\n"
+ "\n"), N_(
" 2. Exports a clean directory tree from the working copy specified by\n"
" PATH1, at revision REV if it is given, otherwise at WORKING, into\n"
" PATH2. If PATH2 is omitted, the last component of the PATH1 is used\n"
" for the local directory name. If REV is not specified, all local\n"
" changes will be preserved. Files not under version control will\n"
" not be copied.\n"
- "\n"
+ "\n"), N_(
" If specified, PEGREV determines in which revision the target is first\n"
- " looked up.\n"),
+ " looked up.\n"
+ )},
{'r', 'q', 'N', opt_depth, opt_force, opt_native_eol, opt_ignore_externals,
opt_ignore_keywords} },
- { "help", svn_cl__help, {"?", "h"}, N_
- ("Describe the usage of this program or its subcommands.\n"
- "usage: help [SUBCOMMAND...]\n"),
+ { "help", svn_cl__help, {"?", "h"}, {N_(
+ "Describe the usage of this program or its subcommands.\n"
+ "usage: help [SUBCOMMAND...]\n"
+ )},
{0} },
/* This command is also invoked if we see option "--help", "-h" or "-?". */
- { "import", svn_cl__import, {0}, N_
- ("Commit an unversioned file or tree into the repository.\n"
+ { "import", svn_cl__import, {0}, {N_(
+ "Commit an unversioned file or tree into the repository.\n"
"usage: import [PATH] URL\n"
- "\n"
+ "\n"), N_(
" Recursively commit a copy of PATH to URL.\n"
" If PATH is omitted '.' is assumed.\n"
" Parent directories are created as necessary in the repository.\n"
" If PATH is a directory, the contents of the directory are added\n"
" directly under URL.\n"
" Unversionable items such as device files and pipes are ignored\n"
- " if --force is specified.\n"),
+ " if --force is specified.\n"
+ )},
{'q', 'N', opt_depth, opt_autoprops, opt_force, opt_no_autoprops,
SVN_CL__LOG_MSG_OPTIONS, opt_no_ignore} },
- { "info", svn_cl__info, {0}, N_
- ("Display information about a local or remote item.\n"
+ { "info", svn_cl__info, {0}, {N_(
+ "Display information about a local or remote item.\n"
"usage: info [TARGET[@REV]...]\n"
- "\n"
+ "\n"), N_(
" Print information about each TARGET (default: '.').\n"
" TARGET may be either a working-copy path or a URL. If specified, REV\n"
" determines in which revision the target is first looked up; the default\n"
" is HEAD for a URL or BASE for a WC path.\n"
- "\n"
+ "\n"), N_(
" With --show-item, print only the value of one item of information\n"
- " about TARGET.\n"),
+ " about TARGET.\n"
+ "\n"), N_(
+ " EXPERIMENTAL:\n"
+ " With --x-viewspec, print the working copy layout.\n"
+ )},
{'r', 'R', opt_depth, opt_targets, opt_incremental, opt_xml,
- opt_changelist, opt_include_externals, opt_show_item, opt_no_newline}
+ opt_changelist, opt_include_externals, opt_show_item, opt_no_newline,
+ opt_viewspec}
},
{ "list", svn_cl__list, {"ls"},
#if defined(WIN32)
- N_
- ("List directory entries in the repository.\n"
+ {N_(
+ "List directory entries in the repository.\n"
"usage: list [TARGET[@REV]...]\n"
- "\n"
+ "\n"), N_(
" List each TARGET file and the contents of each TARGET directory as\n"
" they exist in the repository. If TARGET is a working copy path, the\n"
" corresponding repository URL will be used. If specified, REV determines\n"
" in which revision the target is first looked up.\n"
- "\n"
+ "\n"), N_(
" The default TARGET is '.', meaning the repository URL of the current\n"
" working directory.\n"
- "\n"
+ "\n"), N_(
" Multiple --search patterns may be specified and the output will be\n"
" reduced to those paths whose last segment - i.e. the file or directory\n"
" name - contains a sub-string matching at least one of these patterns\n"
" (Windows only).\n"
- "\n"
+ "\n"), N_(
" With --verbose, the following fields will be shown for each item:\n"
- "\n"
+ "\n"), N_(
" Revision number of the last commit\n"
" Author of the last commit\n"
" If locked, the letter 'O'. (Use 'svn info URL' to see details)\n"
" Size (in bytes)\n"
- " Date and time of the last commit\n"),
+ " Date and time of the last commit\n"
+ )},
#else
- N_
- ("List directory entries in the repository.\n"
+ {N_(
+ "List directory entries in the repository.\n"
"usage: list [TARGET[@REV]...]\n"
- "\n"
+ "\n"), N_(
" List each TARGET file and the contents of each TARGET directory as\n"
" they exist in the repository. If TARGET is a working copy path, the\n"
" corresponding repository URL will be used. If specified, REV determines\n"
" in which revision the target is first looked up.\n"
- "\n"
+ "\n"), N_(
" The default TARGET is '.', meaning the repository URL of the current\n"
" working directory.\n"
- "\n"
+ "\n"), N_(
" Multiple --search patterns may be specified and the output will be\n"
" reduced to those paths whose last segment - i.e. the file or directory\n"
" name - matches at least one of these patterns.\n"
- "\n"
+ "\n"), N_(
" With --verbose, the following fields will be shown for each item:\n"
- "\n"
+ "\n"), N_(
" Revision number of the last commit\n"
" Author of the last commit\n"
" If locked, the letter 'O'. (Use 'svn info URL' to see details)\n"
" Size (in bytes)\n"
- " Date and time of the last commit\n"),
+ " Date and time of the last commit\n"
+ )},
#endif
{'r', 'v', 'R', opt_depth, opt_incremental, opt_xml,
opt_include_externals, opt_search}, },
- { "lock", svn_cl__lock, {0}, N_
- ("Lock working copy paths or URLs in the repository, so that\n"
+ { "lock", svn_cl__lock, {0}, {N_(
+ "Lock working copy paths or URLs in the repository, so that\n"
"no other user can commit changes to them.\n"
"usage: lock TARGET...\n"
- "\n"
- " Use --force to steal a lock from another user or working copy.\n"),
+ "\n"), N_(
+ " Use --force to steal a lock from another user or working copy.\n"
+ )},
{ opt_targets, 'm', 'F', opt_force_log, opt_encoding, opt_force, 'q' },
{{'F', N_("read lock comment from file ARG")},
{'m', N_("specify lock comment ARG")},
{opt_force_log, N_("force validity of lock comment source")},
{opt_force, N_("steal locks")}} },
- { "log", svn_cl__log, {0}, N_
- ("Show the log messages for a set of revision(s) and/or path(s).\n"
+ { "log", svn_cl__log, {0}, {N_(
+ "Show the log messages for a set of revision(s) and/or path(s).\n"
"usage: 1. log [PATH][@REV]\n"
" 2. log URL[@REV] [PATH...]\n"
- "\n"
+ "\n"), N_(
" 1. Print the log messages for the URL corresponding to PATH\n"
" (default: '.'). If specified, REV is the revision in which the\n"
" URL is first looked up, and the default revision range is REV:1.\n"
" If REV is not specified, the default revision range is BASE:1,\n"
" since the URL might not exist in the HEAD revision.\n"
- "\n"
+ "\n"), N_(
" 2. Print the log messages for the PATHs (default: '.') under URL.\n"
" If specified, REV is the revision in which the URL is first\n"
" looked up, and the default revision range is REV:1; otherwise,\n"
" the URL is looked up in HEAD, and the default revision range is\n"
" HEAD:1.\n"
- "\n"
+ "\n"), N_(
" Multiple '-c' or '-r' options may be specified (but not a\n"
" combination of '-c' and '-r' options), and mixing of forward and\n"
" reverse ranges is allowed.\n"
- "\n"
+ "\n"), N_(
" With -v, also print all affected paths with each log message.\n"
" Each changed path is preceded with a symbol describing the change:\n"
" A: The path was added or copied.\n"
@@ -904,18 +933,18 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" If a file or directory was moved from one path to another with 'svn move'\n"
" the old path will be listed as deleted and the new path will be listed\n"
" as copied from the old path at a prior revision.\n"
- "\n"
+ "\n"), N_(
" With -q, don't print the log message body itself (note that this is\n"
" compatible with -v).\n"
- "\n"
+ "\n"), N_(
" Each log message is printed just once, even if more than one of the\n"
" affected paths for that revision were explicitly requested. Logs\n"
" follow copy history by default. Use --stop-on-copy to disable this\n"
" behavior, which can be useful for determining branchpoints.\n"
- "\n"
+ "\n"), N_(
" The --depth option is only valid in combination with the --diff option\n"
" and limits the scope of the displayed diff to the specified depth.\n"
- "\n"
+ "\n"), N_(
" If the --search option is used, log messages are displayed only if the\n"
" provided search pattern matches any of the author, date, log message\n"
" text (unless --quiet is used), or, if the --verbose option is also\n"
@@ -932,37 +961,42 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" If --limit is used in combination with --search, --limit restricts the\n"
" number of log messages searched, rather than restricting the output\n"
" to a particular number of matching log messages.\n"
- "\n"
+ "\n"), N_(
" Examples:\n"
- "\n"
+ "\n"), N_(
" Show the latest 5 log messages for the current working copy\n"
" directory and display paths changed in each commit:\n"
" svn log -l 5 -v\n"
- "\n"
+ "\n"), N_(
" Show the log for bar.c as of revision 42:\n"
" svn log bar.c@42\n"
- "\n"
+ "\n"), N_(
" Show log messages and diffs for each commit to foo.c:\n"
" svn log --diff http://www.example.com/repo/project/foo.c\n"
" (Because the above command uses a full URL it does not require\n"
" a working copy.)\n"
- "\n"
+ "\n"), N_(
" Show log messages for the children foo.c and bar.c of the directory\n"
" '/trunk' as it appeared in revision 50, using the ^/ URL shortcut:\n"
" svn log ^/trunk@50 foo.c bar.c\n"
- "\n"
+ "\n"), N_(
" Show the log messages for any incoming changes to foo.c during the\n"
" next 'svn update':\n"
" svn log -r BASE:HEAD foo.c\n"
- "\n"
+ "\n"), N_(
" Show the log message for the revision in which /branches/foo\n"
" was created:\n"
" svn log --stop-on-copy --limit 1 -r0:HEAD ^/branches/foo\n"
- "\n"
+ "\n"), N_(
+ " Show all log messages for commits between the tags ^/tags/2.0 and\n"
+ " ^/tags/3.0; assuming that tag 2.0 was created in revision 100:\n"
+ " svn log -rHEAD:100 ^/tags/3.0\n"
+ "\n"), N_(
" If ^/trunk/foo.c was moved to ^/trunk/bar.c' in revision 22, 'svn log -v'\n"
" shows a deletion and a copy in its changed paths list, such as:\n"
" D /trunk/foo.c\n"
- " A /trunk/bar.c (from /trunk/foo.c:21)\n"),
+ " A /trunk/bar.c (from /trunk/foo.c:21)\n"
+ )},
{'r', 'c', 'q', 'v', 'g', opt_targets, opt_stop_on_copy, opt_incremental,
opt_xml, 'l', opt_with_all_revprops, opt_with_no_revprops,
opt_with_revprop, opt_depth, opt_diff, opt_diff_cmd,
@@ -972,8 +1006,8 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
{'v', N_("also print all affected paths")},
{'q', N_("do not print the log message")}} },
- { "merge", svn_cl__merge, {0}, N_
- ( /* For this large section, let's keep it unindented for easier
+ { "merge", svn_cl__merge, {0}, {N_(
+ /* For this large section, let's keep it unindented for easier
* viewing/editing. It has been vim-treated with a textwidth=75 and 'gw'
* (with quotes and newlines removed). */
"Merge changes into a working copy.\n"
@@ -983,54 +1017,54 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" (the 'cherry-pick' merge)\n"
" 3. merge SOURCE1[@REV1] SOURCE2[@REV2] [TARGET_WCPATH]\n"
" (the '2-URL' merge)\n"
-"\n"
+"\n"), N_(
" 1. This form, with one source path and no revision range, is called\n"
" a 'complete' merge:\n"
-"\n"
+"\n"), N_(
" svn merge SOURCE[@REV] [TARGET_WCPATH]\n"
-"\n"
+"\n"), N_(
" The complete merge is used for the 'sync' and 'reintegrate' merges\n"
" in the 'feature branch' pattern described below. It finds all the\n"
" changes on the source branch that have not already been merged to the\n"
" target branch, and merges them into the working copy. Merge tracking\n"
" is used to know which changes have already been merged.\n"
-"\n"
+"\n"), N_(
" SOURCE specifies the branch from where the changes will be pulled, and\n"
" TARGET_WCPATH specifies a working copy of the target branch to which\n"
" the changes will be applied. Normally SOURCE and TARGET_WCPATH should\n"
" each correspond to the root of a branch. (If you want to merge only a\n"
" subtree, then the subtree path must be included in both SOURCE and\n"
" TARGET_WCPATH; this is discouraged, to avoid subtree mergeinfo.)\n"
-"\n"
+"\n"), N_(
" SOURCE is usually a URL. The optional '@REV' specifies both the peg\n"
" revision of the URL and the latest revision that will be considered\n"
" for merging; if REV is not specified, the HEAD revision is assumed. If\n"
" SOURCE is a working copy path, the corresponding URL of the path is\n"
" used, and the default value of 'REV' is the base revision (usually the\n"
" revision last updated to).\n"
-"\n"
+"\n"), N_(
" TARGET_WCPATH is a working copy path; if omitted, '.' is generally\n"
" assumed. There are some special cases:\n"
-"\n"
+"\n"), N_(
" - If SOURCE is a URL:\n"
-"\n"
+"\n"), N_(
" - If the basename of the URL and the basename of '.' are the\n"
" same, then the differences are applied to '.'. Otherwise,\n"
" if a file with the same basename as that of the URL is found\n"
" within '.', then the differences are applied to that file.\n"
" In all other cases, the target defaults to '.'.\n"
-"\n"
+"\n"), N_(
" - If SOURCE is a working copy path:\n"
-"\n"
+"\n"), N_(
" - If the source is a file, then differences are applied to that\n"
" file (useful for reverse-merging earlier changes). Otherwise,\n"
" if the source is a directory, then the target defaults to '.'.\n"
-"\n"
+"\n"), N_(
" In normal usage the working copy should be up to date, at a single\n"
" revision, with no local modifications and no switched subtrees.\n"
-"\n"
+"\n"), N_(
" - The 'Feature Branch' Merging Pattern -\n"
-"\n"
+"\n"), N_(
" In this commonly used work flow, known also as the 'development\n"
" branch' pattern, a developer creates a branch and commits a series of\n"
" changes that implement a new feature. The developer periodically\n"
@@ -1038,17 +1072,17 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" development branch up to date with those changes. When the feature is\n"
" complete, the developer performs a merge from the feature branch to\n"
" the parent branch to re-integrate the changes.\n"
-"\n"
+"\n"), N_(
" parent --+----------o------o-o-------------o--\n"
" \\ \\ \\ /\n"
" \\ merge merge merge\n"
" \\ \\ \\ /\n"
" feature +--o-o-------o----o-o----o-------\n"
-"\n"
+"\n"), N_(
" A merge from the parent branch to the feature branch is called a\n"
" 'sync' or 'catch-up' merge, and a merge from the feature branch to the\n"
" parent branch is called a 'reintegrate' merge.\n"
-"\n"
+"\n"), N_(
" - Sync Merge Example -\n"
" ............\n"
" . .\n"
@@ -1058,7 +1092,7 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" \\ v\n"
" feature +------------------------o-----\n"
" r100 r200\n"
-"\n"
+"\n"), N_(
" Subversion will locate all the changes on 'trunk' that have not yet\n"
" been merged into the 'feature' branch. In this case that is a single\n"
" range, r100:200. In the diagram above, L marks the left side (trunk@100)\n"
@@ -1066,162 +1100,162 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" difference between L and R will be applied to the target working copy\n"
" path. In this case, the working copy is a clean checkout of the entire\n"
" 'feature' branch.\n"
-"\n"
+"\n"), N_(
" To perform this sync merge, have a clean working copy of the feature\n"
" branch and run the following command in its top-level directory:\n"
-"\n"
+"\n"), N_(
" svn merge ^/trunk\n"
-"\n"
+"\n"), N_(
" Note that the merge is now only in your local working copy and still\n"
" needs to be committed to the repository so that it can be seen by\n"
" others. You can review the changes and you may have to resolve\n"
" conflicts before you commit the merge.\n"
-"\n"
+"\n"), N_(
" - Reintegrate Merge Example -\n"
-"\n"
+"\n"), N_(
" The feature branch was last synced with trunk up to revision X. So the\n"
" difference between trunk@X and feature@HEAD contains the complete set\n"
" of changes that implement the feature, and no other changes. These\n"
" changes are applied to trunk.\n"
-"\n"
+"\n"), N_(
" rW rX\n"
" trunk ------+--------------------L------------------o\n"
" \\ . ^\n"
" \\ ............. /\n"
" \\ . /\n"
" feature +--------------------------------R\n"
-"\n"
+"\n"), N_(
" In the diagram above, L marks the left side (trunk@X) and R marks the\n"
" right side (feature@HEAD) of the merge. The difference between the\n"
" left and right side is merged into trunk, the target.\n"
-"\n"
+"\n"), N_(
" To perform the merge, have a clean working copy of trunk and run the\n"
" following command in its top-level directory:\n"
-"\n"
+"\n"), N_(
" svn merge ^/feature\n"
-"\n"
+"\n"), N_(
" To prevent unnecessary merge conflicts, a reintegrate merge requires\n"
" that TARGET_WCPATH is not a mixed-revision working copy, has no local\n"
" modifications, and has no switched subtrees.\n"
-"\n"
+"\n"), N_(
" A reintegrate merge also requires that the source branch is coherently\n"
" synced with the target -- in the above example, this means that all\n"
" revisions between the branch point W and the last merged revision X\n"
" are merged to the feature branch, so that there are no unmerged\n"
" revisions in-between.\n"
-"\n"
-"\n"
+"\n"), N_(
+"\n"), N_(
" 2. This form is called a 'cherry-pick' merge:\n"
-"\n"
+"\n"), N_(
" svn merge [-c M[,N...] | -r N:M ...] SOURCE[@REV] [TARGET_WCPATH]\n"
-"\n"
+"\n"), N_(
" A cherry-pick merge is used to merge specific revisions (or revision\n"
" ranges) from one branch to another. By default, this uses merge\n"
" tracking to automatically skip any revisions that have already been\n"
" merged to the target; you can use the --ignore-ancestry option to\n"
" disable such skipping.\n"
-"\n"
+"\n"), N_(
" SOURCE is usually a URL. The optional '@REV' specifies only the peg\n"
" revision of the URL and does not affect the merge range; if REV is not\n"
" specified, the HEAD revision is assumed. If SOURCE is a working copy\n"
" path, the corresponding URL of the path is used, and the default value\n"
" of 'REV' is the base revision (usually the revision last updated to).\n"
-"\n"
+"\n"), N_(
" TARGET_WCPATH is a working copy path; if omitted, '.' is generally\n"
" assumed. The special cases noted above in the 'complete' merge form\n"
" also apply here.\n"
-"\n"
+"\n"), N_(
" The revision ranges to be merged are specified by the '-r' and/or '-c'\n"
" options. '-r N:M' refers to the difference in the history of the\n"
" source branch between revisions N and M. You can use '-c M' to merge\n"
" single revisions: '-c M' is equivalent to '-r <M-1>:M'. Each such\n"
" difference is applied to TARGET_WCPATH.\n"
-"\n"
+"\n"), N_(
" If the mergeinfo in TARGET_WCPATH indicates that revisions within the\n"
" range were already merged, changes made in those revisions are not\n"
" merged again. If needed, the range is broken into multiple sub-ranges,\n"
" and each sub-range is merged separately.\n"
-"\n"
+"\n"), N_(
" A 'reverse range' can be used to undo changes. For example, when\n"
" source and target refer to the same branch, a previously committed\n"
" revision can be 'undone'. In a reverse range, N is greater than M in\n"
" '-r N:M', or the '-c' option is used with a negative number: '-c -M'\n"
" is equivalent to '-r M:<M-1>'. Undoing changes like this is also known\n"
" as performing a 'reverse merge'.\n"
-"\n"
+"\n"), N_(
" Multiple '-c' and/or '-r' options may be specified and mixing of\n"
" forward and reverse ranges is allowed.\n"
-"\n"
+"\n"), N_(
" - Cherry-pick Merge Example -\n"
-"\n"
+"\n"), N_(
" A bug has been fixed on trunk in revision 50. This fix needs to\n"
" be merged from trunk onto the release branch.\n"
-"\n"
+"\n"), N_(
" 1.x-release +-----------------------o-----\n"
" / ^\n"
" / |\n"
" / |\n"
" trunk ------+--------------------------LR-----\n"
" r50\n"
-"\n"
+"\n"), N_(
" In the above diagram, L marks the left side (trunk@49) and R marks the\n"
" right side (trunk@50) of the merge. The difference between the left\n"
" and right side is applied to the target working copy path.\n"
-"\n"
+"\n"), N_(
" Note that the difference between revision 49 and 50 is exactly those\n"
" changes that were committed in revision 50, not including changes\n"
" committed in revision 49.\n"
-"\n"
+"\n"), N_(
" To perform the merge, have a clean working copy of the release branch\n"
" and run the following command in its top-level directory; remember\n"
" that the default target is '.':\n"
-"\n"
+"\n"), N_(
" svn merge -c50 ^/trunk\n"
-"\n"
+"\n"), N_(
" You can also cherry-pick several revisions and/or revision ranges:\n"
-"\n"
+"\n"), N_(
" svn merge -c50,54,60 -r65:68 ^/trunk\n"
-"\n"
-"\n"
+"\n"), N_(
+"\n"), N_(
" 3. This form is called a '2-URL merge':\n"
-"\n"
+"\n"), N_(
" svn merge SOURCE1[@REV1] SOURCE2[@REV2] [TARGET_WCPATH]\n"
-"\n"
+"\n"), N_(
" You should use this merge variant only if the other variants do not\n"
" apply to your situation, as this variant can be quite complex to\n"
" master.\n"
-"\n"
+"\n"), N_(
" Two source URLs are specified, identifying two trees on the same\n"
" branch or on different branches. The trees are compared and the\n"
" difference from SOURCE1@REV1 to SOURCE2@REV2 is applied to the\n"
" working copy of the target branch at TARGET_WCPATH. The target\n"
" branch may be the same as one or both sources, or different again.\n"
" The three branches involved can be completely unrelated.\n"
-"\n"
+"\n"), N_(
" TARGET_WCPATH is a working copy path; if omitted, '.' is generally\n"
" assumed. The special cases noted above in the 'complete' merge form\n"
" also apply here.\n"
-"\n"
+"\n"), N_(
" SOURCE1 and/or SOURCE2 can also be specified as a working copy path,\n"
" in which case the merge source URL is derived from the working copy.\n"
-"\n"
+"\n"), N_(
" - 2-URL Merge Example -\n"
-"\n"
+"\n"), N_(
" Two features have been developed on separate branches called 'foo' and\n"
" 'bar'. It has since become clear that 'bar' should be combined with\n"
" the 'foo' branch for further development before reintegration.\n"
-"\n"
+"\n"), N_(
" Although both feature branches originate from trunk, they are not\n"
" directly related -- one is not a direct copy of the other. A 2-URL\n"
" merge is necessary.\n"
-"\n"
+"\n"), N_(
" The 'bar' branch has been synced with trunk up to revision 500.\n"
" (If this revision number is not known, it can be located using the\n"
" 'svn log' and/or 'svn mergeinfo' commands.)\n"
" The difference between trunk@500 and bar@HEAD contains the complete\n"
" set of changes related to feature 'bar', and no other changes. These\n"
" changes are applied to the 'foo' branch.\n"
-"\n"
+"\n"), N_(
" foo +-----------------------------------o\n"
" / ^\n"
" / /\n"
@@ -1231,41 +1265,41 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" \\ ............ /\n"
" \\ . /\n"
" bar +-----------------------------------R\n"
-"\n"
+"\n"), N_(
" In the diagram above, L marks the left side (trunk@500) and R marks\n"
" the right side (bar@HEAD) of the merge. The difference between the\n"
" left and right side is applied to the target working copy path, in\n"
" this case a working copy of the 'foo' branch.\n"
-"\n"
+"\n"), N_(
" To perform the merge, have a clean working copy of the 'foo' branch\n"
" and run the following command in its top-level directory:\n"
-"\n"
+"\n"), N_(
" svn merge ^/trunk@500 ^/bar\n"
-"\n"
+"\n"), N_(
" The exact changes applied by a 2-URL merge can be previewed with svn's\n"
" diff command, which is a good idea to verify if you do not have the\n"
" luxury of a clean working copy to merge to. In this case:\n"
-"\n"
+"\n"), N_(
" svn diff ^/trunk@500 ^/bar@HEAD\n"
-"\n"
-"\n"
+"\n"), N_(
+"\n"), N_(
" The following applies to all types of merges:\n"
-"\n"
+"\n"), N_(
" To prevent unnecessary merge conflicts, svn merge requires that\n"
" TARGET_WCPATH is not a mixed-revision working copy. Running 'svn update'\n"
" before starting a merge ensures that all items in the working copy are\n"
" based on the same revision.\n"
-"\n"
+"\n"), N_(
" If possible, you should have no local modifications in the merge's target\n"
" working copy prior to the merge, to keep things simpler. It will be\n"
" easier to revert the merge and to understand the branch's history.\n"
-"\n"
+"\n"), N_(
" Switched sub-paths should also be avoided during merging, as they may\n"
" cause incomplete merges and create subtree mergeinfo.\n"
-"\n"
+"\n"), N_(
" For each merged item a line will be printed with characters reporting the\n"
" action taken. These characters have the following meaning:\n"
-"\n"
+"\n"), N_(
" A Added\n"
" D Deleted\n"
" U Updated\n"
@@ -1273,15 +1307,15 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" G Merged\n"
" E Existed\n"
" R Replaced\n"
-"\n"
+"\n"), N_(
" Characters in the first column report about the item itself.\n"
" Characters in the second column report about properties of the item.\n"
" A 'C' in the third column indicates a tree conflict, while a 'C' in\n"
" the first and second columns indicate textual conflicts in files\n"
" and in property values, respectively.\n"
-"\n"
+"\n"), N_(
" - Merge Tracking -\n"
-"\n"
+"\n"), N_(
" Subversion uses the svn:mergeinfo property to track merge history. This\n"
" property is considered at the start of a merge to determine what to merge\n"
" and it is updated at the conclusion of the merge to describe the merge\n"
@@ -1290,78 +1324,81 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" or vice-versa (i.e. if one has originally been created by copying the\n"
" other). This is verified and enforced when using sync merges and\n"
" reintegrate merges.\n"
-"\n"
+"\n"), N_(
" The --ignore-ancestry option prevents merge tracking and thus ignores\n"
" mergeinfo, neither considering it nor recording it.\n"
-"\n"
+"\n"), N_(
" - Merging from foreign repositories -\n"
-"\n"
+"\n"), N_(
" Subversion does support merging from foreign repositories.\n"
" While all merge source URLs must point to the same repository, the merge\n"
" target working copy may come from a different repository than the source.\n"
" However, there are some caveats. Most notably, copies made in the\n"
" merge source will be transformed into plain additions in the merge\n"
" target. Also, merge-tracking is not supported for merges from foreign\n"
-" repositories.\n"),
+" repositories.\n"
+ )},
{'r', 'c', 'N', opt_depth, 'q', opt_force, opt_dry_run, opt_merge_cmd,
opt_record_only, 'x', opt_ignore_ancestry, opt_accept, opt_reintegrate,
opt_allow_mixed_revisions, 'v'},
{ { opt_force, N_("force deletions even if deleted contents don't match") } }
},
- { "mergeinfo", svn_cl__mergeinfo, {0}, N_
- ("Display merge-related information.\n"
+ { "mergeinfo", svn_cl__mergeinfo, {0}, {N_(
+ "Display merge-related information.\n"
"usage: 1. mergeinfo SOURCE[@REV] [TARGET[@REV]]\n"
" 2. mergeinfo --show-revs=WHICH SOURCE[@REV] [TARGET[@REV]]\n"
- "\n"
+ "\n"), N_(
" 1. Summarize the history of merging between SOURCE and TARGET. The graph\n"
" shows, from left to right:\n"
" the youngest common ancestor of the branches;\n"
" the latest full merge in either direction, and thus the common base\n"
" that will be used for the next complete merge;\n"
" the repository path and revision number of the tip of each branch.\n"
- "\n"
+ "\n"), N_(
" 2. Print the revision numbers on SOURCE that have been merged to TARGET\n"
" (with --show-revs=merged), or that have not been merged to TARGET\n"
" (with --show-revs=eligible). Print only revisions in which there was\n"
" at least one change in SOURCE.\n"
- "\n"
+ "\n"), N_(
" If --revision (-r) is provided, filter the displayed information to\n"
" show only that which is associated with the revisions within the\n"
" specified range. Revision numbers, dates, and the 'HEAD' keyword are\n"
" valid range values.\n"
- "\n"
+ "\n"), N_(
" SOURCE and TARGET are the source and target branch URLs, respectively.\n"
" (If a WC path is given, the corresponding base URL is used.) The default\n"
" TARGET is the current working directory ('.'). REV specifies the revision\n"
" to be considered the tip of the branch; the default for SOURCE is HEAD,\n"
" and the default for TARGET is HEAD for a URL or BASE for a WC path.\n"
- "\n"
- " The depth can be 'empty' or 'infinity'; the default is 'empty'.\n"),
+ "\n"), N_(
+ " The depth can be 'empty' or 'infinity'; the default is 'empty'.\n"
+ )},
{'r', 'R', 'q', 'v', opt_depth, opt_show_revs, opt_mergeinfo_log,
opt_incremental } },
- { "mkdir", svn_cl__mkdir, {0}, N_
- ("Create a new directory under version control.\n"
+ { "mkdir", svn_cl__mkdir, {0}, {N_(
+ "Create a new directory under version control.\n"
"usage: 1. mkdir PATH...\n"
" 2. mkdir URL...\n"
- "\n"
+ "\n"), N_(
" Create version controlled directories.\n"
- "\n"
+ "\n"), N_(
" 1. Each directory specified by a working copy PATH is created locally\n"
" and scheduled for addition upon the next commit.\n"
- "\n"
+ "\n"), N_(
" 2. Each directory specified by a URL is created in the repository via\n"
" an immediate commit.\n"
- "\n"
+ "\n"), N_(
" In both cases, all the intermediate directories must already exist,\n"
- " unless the --parents option is given.\n"),
+ " unless the --parents option is given.\n"
+ )},
{'q', opt_parents, SVN_CL__LOG_MSG_OPTIONS} },
- { "move", svn_cl__move, {"mv", "rename", "ren"}, N_
- ("Move (rename) an item in a working copy or repository.\n"
+ { "move", svn_cl__move, {"mv", "rename", "ren"}, {N_(
+ "Move (rename) an item in a working copy or repository.\n"
"usage: move SRC... DST\n"
- "\n"
+ "\n"), N_(
" SRC and DST can both be working copy (WC) paths or URLs:\n"
" WC -> WC: move an item in a working copy, as a local change to\n"
" be committed later (with or without further changes)\n"
@@ -1370,28 +1407,29 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" All the SRCs must be of the same type. If DST is an existing directory,\n"
" the sources will be added as children of DST. When moving multiple\n"
" sources, DST must be an existing directory.\n"
- "\n"
+ "\n"), N_(
" SRC and DST of WC -> WC moves must be committed in the same revision.\n"
" Furthermore, WC -> WC moves will refuse to move a mixed-revision subtree.\n"
" To avoid unnecessary conflicts, it is recommended to run 'svn update'\n"
" to update the subtree to a single revision before moving it.\n"
- " The --allow-mixed-revisions option is provided for backward compatibility.\n"),
+ " The --allow-mixed-revisions option is provided for backward compatibility.\n"
+ )},
{'q', opt_force, opt_parents, opt_allow_mixed_revisions,
SVN_CL__LOG_MSG_OPTIONS, 'r'},
{{'r', "deprecated and ignored"}} },
- { "patch", svn_cl__patch, {0}, N_
- ("Apply a patch to a working copy.\n"
+ { "patch", svn_cl__patch, {0}, {N_(
+ "Apply a patch to a working copy.\n"
"usage: patch PATCHFILE [WCPATH]\n"
- "\n"
+ "\n"), N_(
" Apply a unidiff patch in PATCHFILE to the working copy WCPATH.\n"
" If WCPATH is omitted, '.' is assumed.\n"
- "\n"
+ "\n"), N_(
" A unidiff patch suitable for application to a working copy can be\n"
" produced with the 'svn diff' command or third-party diffing tools.\n"
" Any non-unidiff content of PATCHFILE is ignored, except for Subversion\n"
" property diffs as produced by 'svn diff'.\n"
- "\n"
+ "\n"), N_(
" Changes listed in the patch will either be applied or rejected.\n"
" If a change does not match at its exact line offset, it may be applied\n"
" earlier or later in the file if a match is found elsewhere for the\n"
@@ -1400,114 +1438,118 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" or more lines of context are ignored when matching the change.\n"
" If no matching context can be found for a change, the change conflicts\n"
" and will be written to a reject file with the extension .svnpatch.rej.\n"
- "\n"
+ "\n"), N_(
" For each patched file a line will be printed with characters reporting\n"
" the action taken. These characters have the following meaning:\n"
- "\n"
+ "\n"), N_(
" A Added\n"
" D Deleted\n"
" U Updated\n"
" C Conflict\n"
" G Merged (with local uncommitted changes)\n"
- "\n"
+ "\n"), N_(
" Changes applied with an offset or fuzz are reported on lines starting\n"
" with the '>' symbol. You should review such changes carefully.\n"
- "\n"
+ "\n"), N_(
" If the patch removes all content from a file, that file is scheduled\n"
" for deletion. If the patch creates a new file, that file is scheduled\n"
" for addition. Use 'svn revert' to undo deletions and additions you\n"
" do not agree with.\n"
- "\n"
+ "\n"), N_(
" Hint: If the patch file was created with Subversion, it will contain\n"
" the number of a revision N the patch will cleanly apply to\n"
" (look for lines like '--- foo/bar.txt (revision N)').\n"
" To avoid rejects, first update to the revision N using\n"
" 'svn update -r N', apply the patch, and then update back to the\n"
" HEAD revision. This way, conflicts can be resolved interactively.\n"
- ),
+ )},
{'q', opt_dry_run, opt_strip, opt_reverse_diff,
opt_ignore_whitespace} },
- { "propdel", svn_cl__propdel, {"pdel", "pd"}, N_
- ("Remove a property from files, dirs, or revisions.\n"
+ { "propdel", svn_cl__propdel, {"pdel", "pd"}, {N_(
+ "Remove a property from files, dirs, or revisions.\n"
"usage: 1. propdel PROPNAME [PATH...]\n"
" 2. propdel PROPNAME --revprop -r REV [TARGET]\n"
- "\n"
+ "\n"), N_(
" 1. Removes versioned props in working copy.\n"
" 2. Removes unversioned remote prop on repos revision.\n"
" TARGET only determines which repository to access.\n"
- "\n"
- " See 'svn help propset' for descriptions of the svn:* special properties.\n"),
+ "\n"), N_(
+ " See 'svn help propset' for descriptions of the svn:* special properties.\n"
+ )},
{'q', 'R', opt_depth, 'r', opt_revprop, opt_changelist} },
- { "propedit", svn_cl__propedit, {"pedit", "pe"}, N_
- ("Edit a property with an external editor.\n"
+ { "propedit", svn_cl__propedit, {"pedit", "pe"}, {N_(
+ "Edit a property with an external editor.\n"
"usage: 1. propedit PROPNAME TARGET...\n"
" 2. propedit PROPNAME --revprop -r REV [TARGET]\n"
- "\n"
+ "\n"), N_(
" 1. Edits versioned prop in working copy or repository.\n"
" 2. Edits unversioned remote prop on repos revision.\n"
" TARGET only determines which repository to access.\n"
- "\n"
- " See 'svn help propset' for descriptions of the svn:* special properties.\n"),
+ "\n"), N_(
+ " See 'svn help propset' for descriptions of the svn:* special properties.\n"
+ )},
{'r', opt_revprop, SVN_CL__LOG_MSG_OPTIONS, opt_force} },
- { "propget", svn_cl__propget, {"pget", "pg"}, N_
- ("Print the value of a property on files, dirs, or revisions.\n"
+ { "propget", svn_cl__propget, {"pget", "pg"}, {N_(
+ "Print the value of a property on files, dirs, or revisions.\n"
"usage: 1. propget PROPNAME [TARGET[@REV]...]\n"
" 2. propget PROPNAME --revprop -r REV [TARGET]\n"
- "\n"
+ "\n"), N_(
" 1. Prints versioned props. If specified, REV determines in which\n"
" revision the target is first looked up.\n"
" 2. Prints unversioned remote prop on repos revision.\n"
" TARGET only determines which repository to access.\n"
- "\n"
+ "\n"), N_(
" With --verbose, the target path and the property name are printed on\n"
" separate lines before each value, like 'svn proplist --verbose'.\n"
" Otherwise, if there is more than one TARGET or a depth other than\n"
" 'empty', the target path is printed on the same line before each value.\n"
- "\n"
+ "\n"), N_(
" By default, an extra newline is printed after the property value so that\n"
" the output looks pretty. With a single TARGET, depth 'empty' and without\n"
" --show-inherited-props, you can use the --no-newline option to disable this\n"
" (useful when redirecting a binary property value to a file, for example).\n"
- "\n"
- " See 'svn help propset' for descriptions of the svn:* special properties.\n"),
+ "\n"), N_(
+ " See 'svn help propset' for descriptions of the svn:* special properties.\n"
+ )},
{'v', 'R', opt_depth, 'r', opt_revprop, opt_strict, opt_no_newline, opt_xml,
opt_changelist, opt_show_inherited_props },
{{'v', N_("print path, name and value on separate lines")},
{opt_strict, N_("(deprecated; use --no-newline)")}} },
- { "proplist", svn_cl__proplist, {"plist", "pl"}, N_
- ("List all properties on files, dirs, or revisions.\n"
+ { "proplist", svn_cl__proplist, {"plist", "pl"}, {N_(
+ "List all properties on files, dirs, or revisions.\n"
"usage: 1. proplist [TARGET[@REV]...]\n"
" 2. proplist --revprop -r REV [TARGET]\n"
- "\n"
+ "\n"), N_(
" 1. Lists versioned props. If specified, REV determines in which\n"
" revision the target is first looked up.\n"
" 2. Lists unversioned remote props on repos revision.\n"
" TARGET only determines which repository to access.\n"
- "\n"
+ "\n"), N_(
" With --verbose, the property values are printed as well, like 'svn propget\n"
" --verbose'. With --quiet, the paths are not printed.\n"
- "\n"
- " See 'svn help propset' for descriptions of the svn:* special properties.\n"),
+ "\n"), N_(
+ " See 'svn help propset' for descriptions of the svn:* special properties.\n"
+ )},
{'v', 'R', opt_depth, 'r', 'q', opt_revprop, opt_xml, opt_changelist,
opt_show_inherited_props },
{{'v', N_("print path, name and value on separate lines")},
{'q', N_("don't print the path")}} },
- { "propset", svn_cl__propset, {"pset", "ps"}, N_
- ("Set the value of a property on files, dirs, or revisions.\n"
+ { "propset", svn_cl__propset, {"pset", "ps"}, {N_(
+ "Set the value of a property on files, dirs, or revisions.\n"
"usage: 1. propset PROPNAME PROPVAL PATH...\n"
" 2. propset PROPNAME --revprop -r REV PROPVAL [TARGET]\n"
- "\n"
+ "\n"), N_(
" 1. Changes a versioned file or directory property in a working copy.\n"
" 2. Changes an unversioned property on a repository revision.\n"
" (TARGET only determines which repository to access.)\n"
- "\n"
+ "\n"), N_(
" The value may be provided with the --file option instead of PROPVAL.\n"
- "\n"
+ "\n"), N_(
" Property names starting with 'svn:' are reserved. Subversion recognizes\n"
" the following special versioned properties on a file:\n"
" svn:keywords - Keywords to be expanded. Valid keywords are:\n"
@@ -1518,7 +1560,7 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" LastChangedRevision\n"
" Id - A compressed summary of the previous four.\n"
" Header - Similar to Id but includes the full URL.\n"
- "\n"
+ "\n"), N_(
" Custom keywords can be defined with a format string separated from\n"
" the keyword name with '='. Valid format substitutions are:\n"
" %a - The author of the revision given by %r.\n"
@@ -1536,7 +1578,7 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" Example custom keyword definition: MyKeyword=%r%_%a%_%P\n"
" Once a custom keyword has been defined for a file, it can be used\n"
" within the file like any other keyword: $MyKeyword$\n"
- "\n"
+ "\n"), N_(
" svn:executable - If present, make the file executable. Use\n"
" 'svn propdel svn:executable PATH...' to clear.\n"
" svn:eol-style - One of 'native', 'LF', 'CR', 'CRLF'.\n"
@@ -1548,7 +1590,7 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" before it is modified. Makes the working copy file read-only\n"
" when it is not locked. Use 'svn propdel svn:needs-lock PATH...'\n"
" to clear.\n"
- "\n"
+ "\n"), N_(
" Subversion recognizes the following special versioned properties on a\n"
" directory:\n"
" svn:ignore - A list of file glob patterns to ignore, one per line.\n"
@@ -1582,51 +1624,53 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" LOCALPATH [-r PEG] URL\n"
" The ambiguous format 'relative_path relative_path' is taken as\n"
" 'relative_url relative_path' with peg revision support.\n"
- " Lines starting with a '#' character are ignored.\n"),
+ " Lines starting with a '#' character are ignored.\n"
+ )},
{'F', opt_encoding, 'q', 'r', opt_targets, 'R', opt_depth, opt_revprop,
opt_force, opt_changelist },
{{'F', N_("read property value from file ARG")}} },
- { "relocate", svn_cl__relocate, {0}, N_
- ("Relocate the working copy to point to a different repository root URL.\n"
+ { "relocate", svn_cl__relocate, {0}, {N_(
+ "Relocate the working copy to point to a different repository root URL.\n"
"usage: 1. relocate FROM-PREFIX TO-PREFIX [PATH...]\n"
" 2. relocate TO-URL [PATH]\n"
- "\n"
+ "\n"), N_(
" Rewrite working copy URL metadata to reflect a syntactic change only.\n"
" This is used when a repository's root URL changes (such as a scheme\n"
" or hostname change) but your working copy still reflects the same\n"
" directory within the same repository.\n"
- "\n"
+ "\n"), N_(
" 1. FROM-PREFIX and TO-PREFIX are initial substrings of the working\n"
" copy's current and new URLs, respectively. (You may specify the\n"
" complete old and new URLs if you wish.) Use 'svn info' to determine\n"
" the current working copy URL.\n"
- "\n"
+ "\n"), N_(
" 2. TO-URL is the (complete) new repository URL to use for PATH.\n"
- "\n"
+ "\n"), N_(
" Examples:\n"
" svn relocate http:// svn:// project1 project2\n"
" svn relocate http://www.example.com/repo/project \\\n"
- " svn://svn.example.com/repo/project\n"),
+ " svn://svn.example.com/repo/project\n"
+ )},
{opt_ignore_externals} },
- { "resolve", svn_cl__resolve, {0}, N_
- ("Resolve conflicts on working copy files or directories.\n"
+ { "resolve", svn_cl__resolve, {0}, {N_(
+ "Resolve conflicts on working copy files or directories.\n"
"usage: resolve [PATH...]\n"
- "\n"
+ "\n"), N_(
" By default, perform interactive conflict resolution on PATH.\n"
" In this mode, the command is recursive by default (depth 'infinity').\n"
- "\n"
+ "\n"), N_(
" The --accept=ARG option prevents interactive prompting and forces\n"
" conflicts on PATH to be resolved in the manner specified by ARG.\n"
" In this mode, the command is not recursive by default (depth 'empty').\n"
- "\n"
+ "\n"), N_(
" A conflicted path cannot be committed with 'svn commit' until it\n"
" has been marked as resolved with 'svn resolve'.\n"
- "\n"
+ "\n"), N_(
" Subversion knows three types of conflicts:\n"
" Text conflicts, Property conflicts, and Tree conflicts.\n"
- "\n"
+ "\n"), N_(
" Text conflicts occur when overlapping changes to file contents were\n"
" made. Text conflicts are usually resolved by editing the conflicted\n"
" file or by using a merge tool (which may be an external program).\n"
@@ -1634,12 +1678,12 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" edit files (such as 'mine-full' or 'theirs-conflict'), but these are\n"
" only useful in situations where it is acceptable to discard local or\n"
" incoming changes altogether.\n"
- "\n"
+ "\n"), N_(
" Property conflicts are usually resolved by editing the value of the\n"
" conflicted property (either from the interactive prompt, or with\n"
" 'svn propedit'). As with text conflicts, options exist to edit a\n"
" property automatically, discarding some changes in favour of others.\n"
- "\n"
+ "\n"), N_(
" Tree conflicts occur when a change to the directory structure was\n"
" made, and when this change cannot be applied to the working copy\n"
" without affecting other changes (text changes, property changes,\n"
@@ -1649,7 +1693,7 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" in detail, and may offer options to resolve the conflict automatically.\n"
" It is recommended to use these automatic options whenever possible,\n"
" rather than attempting manual tree conflict resolution.\n"
- "\n"
+ "\n"), N_(
" If a tree conflict cannot be resolved automatically, it is recommended\n"
" to figure out why the conflict occurred before attempting to resolve it.\n"
" The 'svn log -v' command can be used to inspect structural changes\n"
@@ -1660,7 +1704,8 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" in a way such that the conflict is resolved. This may involve editing\n"
" files manually or with 'svn merge'. It may be necessary to discard some\n"
" local changes with 'svn revert'. Files or directories might have to be\n"
- " copied, deleted, or moved.\n"),
+ " copied, deleted, or moved.\n"
+ )},
{opt_targets, 'R', opt_depth, 'q', opt_accept},
{{opt_accept, N_("specify automatic conflict resolution source\n"
" "
@@ -1668,37 +1713,39 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" "
"'theirs-conflict', 'mine-full', 'theirs-full')")}} },
- { "resolved", svn_cl__resolved, {0}, N_
- ("Remove 'conflicted' state on working copy files or directories.\n"
+ { "resolved", svn_cl__resolved, {0}, {N_(
+ "Remove 'conflicted' state on working copy files or directories.\n"
"usage: resolved PATH...\n"
- "\n"
+ "\n"), N_(
" Note: this subcommand does not semantically resolve conflicts or\n"
" remove conflict markers; it merely removes the conflict-related\n"
" artifact files and allows PATH to be committed again. It has been\n"
- " deprecated in favor of running 'svn resolve --accept working'.\n"),
+ " deprecated in favor of running 'svn resolve --accept working'.\n"
+ )},
{opt_targets, 'R', opt_depth, 'q'} },
- { "revert", svn_cl__revert, {0}, N_
- ("Restore pristine working copy state (undo local changes).\n"
+ { "revert", svn_cl__revert, {0}, {N_(
+ "Restore pristine working copy state (undo local changes).\n"
"usage: revert PATH...\n"
- "\n"
+ "\n"), N_(
" Revert changes in the working copy at or within PATH, and remove\n"
" conflict markers as well, if any.\n"
- "\n"
+ "\n"), N_(
" This subcommand does not revert already committed changes.\n"
" For information about undoing already committed changes, search\n"
- " the output of 'svn help merge' for 'undo'.\n"),
+ " the output of 'svn help merge' for 'undo'.\n"
+ )},
{opt_targets, 'R', opt_depth, 'q', opt_changelist} },
- { "status", svn_cl__status, {"stat", "st"}, N_
- ("Print the status of working copy files and directories.\n"
+ { "status", svn_cl__status, {"stat", "st"}, {N_(
+ "Print the status of working copy files and directories.\n"
"usage: status [PATH...]\n"
- "\n"
+ "\n"), N_(
" With no args, print only locally modified items (no network access).\n"
" With -q, print only summary information about locally modified items.\n"
" With -u, add working revision and server out-of-date information.\n"
" With -v, print full revision information on every item.\n"
- "\n"
+ "\n"), N_(
" The first seven columns in the output are each one character wide:\n"
" First column: Says if item was added, deleted, or otherwise changed\n"
" ' ' no modifications\n"
@@ -1742,61 +1789,62 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" 'C' tree-Conflicted\n"
" If the item is a tree conflict victim, an additional line is printed\n"
" after the item's status line, explaining the nature of the conflict.\n"
- "\n"
+ "\n"), N_(
" The out-of-date information appears in the ninth column (with -u):\n"
" '*' a newer revision exists on the server\n"
" ' ' the working copy is up to date\n"
- "\n"
+ "\n"), N_(
" Remaining fields are variable width and delimited by spaces:\n"
" The working revision (with -u or -v; '-' if the item is copied)\n"
" The last committed revision and last committed author (with -v)\n"
" The working copy path is always the final field, so it can\n"
" include spaces.\n"
- "\n"
+ "\n"), N_(
" The presence of a question mark ('?') where a working revision, last\n"
" committed revision, or last committed author was expected indicates\n"
" that the information is unknown or irrelevant given the state of the\n"
" item (for example, when the item is the result of a copy operation).\n"
" The question mark serves as a visual placeholder to facilitate parsing.\n"
- "\n"
+ "\n"), N_(
" Example output:\n"
" svn status wc\n"
" M wc/bar.c\n"
" A + wc/qax.c\n"
- "\n"
+ "\n"), N_(
" svn status -u wc\n"
" M 965 wc/bar.c\n"
" * 965 wc/foo.c\n"
" A + - wc/qax.c\n"
" Status against revision: 981\n"
- "\n"
+ "\n"), N_(
" svn status --show-updates --verbose wc\n"
" M 965 938 kfogel wc/bar.c\n"
" * 965 922 sussman wc/foo.c\n"
" A + - 687 joe wc/qax.c\n"
" 965 687 joe wc/zig.c\n"
" Status against revision: 981\n"
- "\n"
+ "\n"), N_(
" svn status\n"
" M wc/bar.c\n"
" ! C wc/qaz.c\n"
" > local missing, incoming edit upon update\n"
- " D wc/qax.c\n"),
+ " D wc/qax.c\n"
+ )},
{ 'u', 'v', 'N', opt_depth, 'r', 'q', opt_no_ignore, opt_incremental,
opt_xml, opt_ignore_externals, opt_changelist},
{{'q', N_("don't print unversioned items")}} },
- { "switch", svn_cl__switch, {"sw"}, N_
- ("Update the working copy to a different URL within the same repository.\n"
+ { "switch", svn_cl__switch, {"sw"}, {N_(
+ "Update the working copy to a different URL within the same repository.\n"
"usage: 1. switch URL[@PEGREV] [PATH]\n"
" 2. switch --relocate FROM-PREFIX TO-PREFIX [PATH...]\n"
- "\n"
+ "\n"), N_(
" 1. Update the working copy to mirror a new URL within the repository.\n"
" This behavior is similar to 'svn update', and is the way to\n"
" move a working copy to a branch or tag within the same repository.\n"
" If specified, PEGREV determines in which revision the target is first\n"
" looked up.\n"
- "\n"
+ "\n"), N_(
" If --force is used, unversioned obstructing paths in the working\n"
" copy do not automatically cause a failure if the switch attempts to\n"
" add the same path. If the obstructing path is the same type (file\n"
@@ -1807,25 +1855,26 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" between the obstruction and the repository are treated like a local\n"
" modification to the working copy. All properties from the repository\n"
" are applied to the obstructing path.\n"
- "\n"
+ "\n"), N_(
" Use the --set-depth option to set a new working copy depth on the\n"
" targets of this operation.\n"
- "\n"
+ "\n"), N_(
" By default, Subversion will refuse to switch a working copy path to\n"
" a new URL with which it shares no common version control ancestry.\n"
" Use the '--ignore-ancestry' option to override this sanity check.\n"
- "\n"
+ "\n"), N_(
" 2. The '--relocate' option is deprecated. This syntax is equivalent to\n"
" 'svn relocate FROM-PREFIX TO-PREFIX [PATH]'.\n"
- "\n"
+ "\n"), N_(
" See also 'svn help update' for a list of possible characters\n"
" reporting the action taken.\n"
- "\n"
+ "\n"), N_(
" Examples:\n"
" svn switch ^/branches/1.x-release\n"
" svn switch --relocate http:// svn://\n"
" svn switch --relocate http://www.example.com/repo/project \\\n"
- " svn://svn.example.com/repo/project\n"),
+ " svn://svn.example.com/repo/project\n"
+ )},
{ 'r', 'N', opt_depth, opt_set_depth, 'q', opt_merge_cmd,
opt_ignore_externals, opt_ignore_ancestry, opt_force, opt_accept,
opt_relocate },
@@ -1836,24 +1885,25 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
{opt_relocate,N_("deprecated; use 'svn relocate'")}}
},
- { "unlock", svn_cl__unlock, {0}, N_
- ("Unlock working copy paths or URLs.\n"
+ { "unlock", svn_cl__unlock, {0}, {N_(
+ "Unlock working copy paths or URLs.\n"
"usage: unlock TARGET...\n"
- "\n"
- " Use --force to break a lock held by another user or working copy.\n"),
+ "\n"), N_(
+ " Use --force to break a lock held by another user or working copy.\n"
+ )},
{ opt_targets, opt_force, 'q' },
{{opt_force, N_("break locks")}} },
- { "update", svn_cl__update, {"up"}, N_
- ("Bring changes from the repository into the working copy.\n"
+ { "update", svn_cl__update, {"up"}, {N_(
+ "Bring changes from the repository into the working copy.\n"
"usage: update [PATH...]\n"
- "\n"
+ "\n"), N_(
" If no revision is given, bring working copy up-to-date with HEAD rev.\n"
" Else synchronize working copy to revision given by -r.\n"
- "\n"
+ "\n"), N_(
" For each updated item a line will be printed with characters reporting\n"
" the action taken. These characters have the following meaning:\n"
- "\n"
+ "\n"), N_(
" A Added\n"
" D Deleted\n"
" U Updated\n"
@@ -1861,7 +1911,7 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" G Merged\n"
" E Existed\n"
" R Replaced\n"
- "\n"
+ "\n"), N_(
" Characters in the first column report about the item itself.\n"
" Characters in the second column report about properties of the item.\n"
" A 'B' in the third column signifies that the lock for the file has\n"
@@ -1869,7 +1919,7 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" A 'C' in the fourth column indicates a tree conflict, while a 'C' in\n"
" the first and second columns indicate textual conflicts in files\n"
" and in property values, respectively.\n"
- "\n"
+ "\n"), N_(
" If --force is used, unversioned obstructing paths in the working\n"
" copy do not automatically cause a failure if the update attempts to\n"
" add the same path. If the obstructing path is the same type (file\n"
@@ -1881,97 +1931,177 @@ const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
" modification to the working copy. All properties from the repository\n"
" are applied to the obstructing path. Obstructing paths are reported\n"
" in the first column with code 'E'.\n"
- "\n"
+ "\n"), N_(
" If the specified update target is missing from the working copy but its\n"
" immediate parent directory is present, checkout the target into its\n"
" parent directory at the specified depth. If --parents is specified,\n"
" create any missing parent directories of the target by checking them\n"
" out, too, at depth=empty.\n"
- "\n"
+ "\n"), N_(
" Use the --set-depth option to set a new working copy depth on the\n"
- " targets of this operation.\n"),
+ " targets of this operation.\n"
+ )},
{'r', 'N', opt_depth, opt_set_depth, 'q', opt_merge_cmd, opt_force,
opt_ignore_externals, opt_changelist, opt_editor_cmd, opt_accept,
opt_parents, opt_adds_as_modification},
{ {opt_force,
N_("handle unversioned obstructions as changes")} } },
- { "upgrade", svn_cl__upgrade, {0}, N_
- ("Upgrade the metadata storage format for a working copy.\n"
+ { "upgrade", svn_cl__upgrade, {0}, {N_(
+ "Upgrade the metadata storage format for a working copy.\n"
"usage: upgrade [WCPATH...]\n"
- "\n"
- " Local modifications are preserved.\n"),
+ "\n"), N_(
+ " Local modifications are preserved.\n"
+ )},
{ 'q' } },
- { "x-shelve", svn_cl__shelve, {"shelve"}, N_
- ("Put a local change aside, as if putting it on a shelf.\n"
- "usage: 1. x-shelve [--keep-local] NAME [PATH...]\n"
- " 2. x-shelve --delete NAME\n"
- " 3. x-shelve --list\n"
- "\n"
- " 1. Save the local change in the given PATHs to a patch file, and\n"
- " revert that change from the WC unless '--keep-local' is given.\n"
- " If a log message is given with '-m' or '-F', include it at the\n"
- " beginning of the patch file.\n"
- "\n"
- " 2. Delete the shelved change NAME.\n"
- " (A backup is kept, named with a '.bak' extension.)\n"
- "\n"
- " 3. List shelved changes. Include the first line of any log message\n"
- " and some details about the contents of the change, unless '-q' is\n"
- " given.\n"
- "\n"
- " The kinds of change you can shelve are those supported by 'svn diff'\n"
- " and 'svn patch'. The following are currently NOT supported:\n"
- " mergeinfo changes, copies, moves, mkdir, rmdir,\n"
- " 'binary' content, uncommittable states\n"
- "\n"
- " To bring back a shelved change, use 'svn x-unshelve NAME'.\n"
- "\n"
- " Shelved changes are stored in <WC>/.svn/shelves/\n"
- "\n"
+ { "x-shelf-diff", svn_cl__shelf_diff, {0}, {N_(
+ "Show shelved changes as a diff.\n"
+ "usage: x-shelf-diff SHELF [VERSION]\n"
+ "\n"), N_(
+ " Show the changes in SHELF:VERSION (default: latest) as a diff.\n"
+ "\n"), N_(
+ " See also: 'svn diff --cl=svn:shelf:SHELF' which supports most options of\n"
+ " 'svn diff'.\n"
+ "\n"), N_(
+ " The shelving feature is EXPERIMENTAL. This command is likely to change\n"
+ " in the next release, and there is no promise of backward compatibility.\n"
+ )},
+ {opt_summarize},
+ },
+
+ { "x-shelf-drop", svn_cl__shelf_drop, {0}, {N_(
+ "Delete a shelf.\n"
+ "usage: x-shelf-drop SHELF [PATH ...]\n"
+ "\n"), N_(
+ " Delete the shelves named SHELF from the working copies containing PATH\n"
+ " (default PATH is '.')\n"
+ "\n"), N_(
+ " The shelving feature is EXPERIMENTAL. This command is likely to change\n"
+ " in the next release, and there is no promise of backward compatibility.\n"
+ )},
+ },
+
+ { "x-shelf-list", svn_cl__shelf_list, {"x-shelves"}, {N_(
+ "List shelves.\n"
+ "usage: x-shelf-list [PATH ...]\n"
+ "\n"), N_(
+ " List shelves for each working copy containing PATH (default is '.')\n"
+ " Include the first line of any log message and some details about the\n"
+ " contents of the shelf, unless '-q' is given.\n"
+ "\n"), N_(
+ " The shelving feature is EXPERIMENTAL. This command is likely to change\n"
+ " in the next release, and there is no promise of backward compatibility.\n"
+ )},
+ {'q', 'v'}
+ },
+
+ { "x-shelf-list-by-paths", svn_cl__shelf_list_by_paths, {0}, {N_(
+ "List which shelf affects each path.\n"
+ "usage: x-shelf-list-by-paths [PATH...]\n"
+ "\n"), N_(
+ " List which shelf most recently affects each path below the given PATHs.\n"
+ "\n"), N_(
+ " The shelving feature is EXPERIMENTAL. This command is likely to change\n"
+ " in the next release, and there is no promise of backward compatibility.\n"
+ )},
+ },
+
+ { "x-shelf-log", svn_cl__shelf_log, {0}, {N_(
+ "Show the versions of a shelf.\n"
+ "usage: x-shelf-log SHELF [PATH...]\n"
+ "\n"), N_(
+ " Show all versions of SHELF for each working copy containing PATH (the\n"
+ " default PATH is '.').\n"
+ "\n"), N_(
+ " The shelving feature is EXPERIMENTAL. This command is likely to change\n"
+ " in the next release, and there is no promise of backward compatibility.\n"
+ )},
+ {'q', 'v'}
+ },
+
+ { "x-shelf-save", svn_cl__shelf_save, {0}, {N_(
+ "Copy local changes onto a new version of a shelf.\n"
+ "usage: x-shelf-save SHELF [PATH...]\n"
+ "\n"), N_(
+ " Save local changes in the given PATHs as a new version of SHELF.\n"
+ " The shelf's log message can be set with -m, -F, etc.\n"
+ "\n"), N_(
+ " The same as 'svn shelve --keep-local'.\n"
+ "\n"), N_(
" The shelving feature is EXPERIMENTAL. This command is likely to change\n"
" in the next release, and there is no promise of backward compatibility.\n"
- ),
- {opt_delete, opt_list, 'q', opt_dry_run, opt_keep_local,
+ )},
+ {'q', opt_dry_run,
opt_depth, opt_targets, opt_changelist,
- /* almost SVN_CL__LOG_MSG_OPTIONS but not currently opt_with_revprop: */
- 'm', 'F', opt_force_log, opt_editor_cmd, opt_encoding,
- } },
+ SVN_CL__LOG_MSG_OPTIONS,
+ }
+ },
- { "x-unshelve", svn_cl__unshelve, {"unshelve"}, N_
- ("Bring a shelved change back to a local change in the WC.\n"
- "usage: 1. x-unshelve [--keep-shelved] [NAME]\n"
- " 2. x-unshelve --list\n"
- "\n"
- " 1. Apply the shelved change NAME to the working copy.\n"
- " Delete the patch unless the '--keep-shelved' option is given.\n"
- " (A backup is kept, named with a '.bak' extension.)\n"
- " NAME defaults to the most recent shelved change.\n"
- "\n"
- " 2. List shelved changes. Include the first line of any log message\n"
- " and some details about the contents of the change, unless '-q' is\n"
- " given.\n"
- "\n"
- " Any conflict between the change being unshelved and a change\n"
- " already in the WC is handled the same way as by 'svn patch',\n"
- " creating a 'reject' file.\n"
- "\n"
+ { "x-shelve", svn_cl__shelf_shelve, {0}, {N_(
+ "Move local changes onto a shelf.\n"
+ "usage: x-shelve [--keep-local] SHELF [PATH...]\n"
+ "\n"), N_(
+ " Save the local changes in the given PATHs to a new or existing SHELF.\n"
+ " Revert those changes from the WC unless '--keep-local' is given.\n"
+ " The shelf's log message can be set with -m, -F, etc.\n"
+ "\n"), N_(
+ " 'svn shelve --keep-local' is the same as 'svn shelf-save'.\n"
+ "\n"), N_(
+ " The kinds of change you can shelve are committable changes to files and\n"
+ " properties, except the following kinds which are not yet supported:\n"
+ " * copies and moves\n"
+ " * mkdir and rmdir\n"
+ " Uncommittable states such as conflicts, unversioned and missing cannot\n"
+ " be shelved.\n"
+ "\n"), N_(
+ " To bring back shelved changes, use 'svn unshelve SHELF'.\n"
+ "\n"), N_(
+ " Shelves are currently stored under <WC>/.svn/experimental/shelves/ .\n"
+ " (In Subversion 1.10, shelves were stored under <WC>/.svn/shelves/ as\n"
+ " patch files. To recover a shelf created by 1.10, either use a 1.10\n"
+ " client to find and unshelve it, or find the patch file and use any\n"
+ " 1.10 or later 'svn patch' to apply it.)\n"
+ "\n"), N_(
" The shelving feature is EXPERIMENTAL. This command is likely to change\n"
" in the next release, and there is no promise of backward compatibility.\n"
- ),
- {opt_keep_shelved, opt_list, 'q', opt_dry_run} },
+ )},
+ {'q', opt_dry_run, opt_keep_local,
+ opt_depth, opt_targets, opt_changelist,
+ SVN_CL__LOG_MSG_OPTIONS,
+ } },
- { "x-shelves", svn_cl__shelves, {"shelves"}, N_
- ("List shelved changes.\n"
- "usage: x-shelves\n"
- "\n"
+ { "x-unshelve", svn_cl__shelf_unshelve, {0}, {N_(
+ "Copy shelved changes back into the WC.\n"
+ "usage: x-unshelve [--drop] [SHELF [VERSION]]\n"
+ "\n"), N_(
+ " Apply the changes stored in SHELF to the working copy.\n"
+ " SHELF defaults to the newest shelf.\n"
+ "\n"), N_(
+ " Apply the newest version of the shelf, by default. If VERSION is\n"
+ " specified, apply that version and discard all versions newer than that.\n"
+ " In any case, retain the unshelved version and versions older than that\n"
+ " (unless --drop is specified).\n"
+ "\n"), N_(
+ " With --drop, delete the entire shelf (like 'svn shelf-drop') after\n"
+ " successfully unshelving with no conflicts.\n"
+ "\n"), N_(
+ " The working files involved should be in a clean, unmodified state\n"
+ " before using this command. To roll back to an older version of the\n"
+ " shelf, first ensure any current working changes are removed, such as\n"
+ " by shelving or reverting them, and then unshelve the desired version.\n"
+ "\n"), N_(
+ " Unshelve normally refuses to apply any changes if any path involved is\n"
+ " already modified (or has any other abnormal status) in the WC. With\n"
+ " --force, it does not check and may error out and/or produce partial or\n"
+ " unexpected results.\n"
+ "\n"), N_(
" The shelving feature is EXPERIMENTAL. This command is likely to change\n"
" in the next release, and there is no promise of backward compatibility.\n"
- ),
- {'q'} },
+ )},
+ {opt_drop, 'q', opt_dry_run, opt_force} },
- { NULL, NULL, {0}, NULL, {0} }
+ { NULL, NULL, {0}, {NULL}, {0} }
};
@@ -2036,6 +2166,22 @@ add_search_pattern_to_latest_group(svn_cl__opt_state_t *opt_state,
APR_ARRAY_PUSH(group, const char *) = pattern;
}
+/* Parse the argument to the --x-viewspec option. */
+static svn_error_t *
+viewspec_from_word(enum svn_cl__viewspec_t *viewspec,
+ const char *utf8_opt_arg)
+{
+ if (!strcmp(utf8_opt_arg, "classic"))
+ *viewspec = svn_cl__viewspec_classic;
+ else if (!strcmp(utf8_opt_arg, "svn11"))
+ *viewspec = svn_cl__viewspec_svn11;
+ else
+ return svn_error_createf(SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
+ _("'%s' is not a valid --x-viewspec value"),
+ utf8_opt_arg);
+ return SVN_NO_ERROR;
+}
+
/*** Main. ***/
@@ -2054,7 +2200,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
svn_client_ctx_t *ctx;
apr_array_header_t *received_opts;
int i;
- const svn_opt_subcommand_desc2_t *subcommand = NULL;
+ const svn_opt_subcommand_desc3_t *subcommand = NULL;
const char *dash_F_arg = NULL;
svn_cl__cmd_baton_t command_baton;
svn_auth_baton_t *ab;
@@ -2308,9 +2454,6 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
case opt_dry_run:
opt_state.dry_run = TRUE;
break;
- case opt_list:
- opt_state.list = TRUE;
- break;
case opt_revprop:
opt_state.revprop = TRUE;
break;
@@ -2494,9 +2637,11 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
opt_state.diff.summarize = TRUE;
break;
case opt_remove:
- case opt_delete:
opt_state.remove = TRUE;
break;
+ case opt_drop:
+ opt_state.drop = TRUE;
+ break;
case opt_changelist:
SVN_ERR(svn_utf_cstring_to_utf8(&utf8_opt_arg, opt_arg, pool));
if (utf8_opt_arg[0] == '\0')
@@ -2510,7 +2655,6 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
opt_state.keep_changelists = TRUE;
break;
case opt_keep_local:
- case opt_keep_shelved:
opt_state.keep_local = TRUE;
break;
case opt_with_all_revprops:
@@ -2645,6 +2789,11 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
case opt_vacuum_pristines:
opt_state.vacuum_pristines = TRUE;
break;
+ case opt_viewspec:
+ opt_state.viewspec = TRUE;
+ SVN_ERR(svn_utf_cstring_to_utf8(&utf8_opt_arg, opt_arg, pool));
+ SVN_ERR(viewspec_from_word(&opt_state.viewspec, utf8_opt_arg));
+ break;
default:
/* Hmmm. Perhaps this would be a good place to squirrel away
opts that commands like svn diff might need. Hmmm indeed. */
@@ -2685,7 +2834,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
just typos/mistakes. Whatever the case, the subcommand to
actually run is svn_cl__help(). */
if (opt_state.help)
- subcommand = svn_opt_get_canonical_subcommand2(svn_cl__cmd_table, "help");
+ subcommand = svn_opt_get_canonical_subcommand3(svn_cl__cmd_table, "help");
/* If we're not running the `help' subcommand, then look for a
subcommand in the first argument. */
@@ -2696,8 +2845,8 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
if (opt_state.version)
{
/* Use the "help" subcommand to handle the "--version" option. */
- static const svn_opt_subcommand_desc2_t pseudo_cmd =
- { "--version", svn_cl__help, {0}, "",
+ static const svn_opt_subcommand_desc3_t pseudo_cmd =
+ { "--version", svn_cl__help, {0}, {""},
{opt_version, /* must accept its own option */
'q', /* brief output */
'v', /* verbose output */
@@ -2722,7 +2871,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
SVN_ERR(svn_utf_cstring_to_utf8(&first_arg, os->argv[os->ind++],
pool));
- subcommand = svn_opt_get_canonical_subcommand2(svn_cl__cmd_table,
+ subcommand = svn_opt_get_canonical_subcommand3(svn_cl__cmd_table,
first_arg);
if (subcommand == NULL)
{
@@ -2760,12 +2909,12 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
if (opt_id == 'h' || opt_id == '?')
continue;
- if (! svn_opt_subcommand_takes_option3(subcommand, opt_id,
+ if (! svn_opt_subcommand_takes_option4(subcommand, opt_id,
svn_cl__global_options))
{
const char *optstr;
const apr_getopt_option_t *badopt =
- svn_opt_get_option_from_code2(opt_id, svn_cl__options,
+ svn_opt_get_option_from_code3(opt_id, svn_cl__options,
subcommand, pool);
svn_opt_format_option(&optstr, badopt, FALSE, pool);
if (subcommand->name[0] == '-')
@@ -3024,7 +3173,9 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
|| subcommand->cmd_func == svn_cl__move
|| subcommand->cmd_func == svn_cl__lock
|| subcommand->cmd_func == svn_cl__propedit
- || subcommand->cmd_func == svn_cl__shelve))
+ || subcommand->cmd_func == svn_cl__shelf_save
+ || subcommand->cmd_func == svn_cl__shelf_shelve
+ ))
{
/* If the -F argument is a file that's under revision control,
that's probably not what the user intended. */
diff --git a/subversion/svnadmin/svnadmin.c b/subversion/svnadmin/svnadmin.c
index eb26c5a..0301046 100644
--- a/subversion/svnadmin/svnadmin.c
+++ b/subversion/svnadmin/svnadmin.c
@@ -301,47 +301,59 @@ static const apr_getopt_option_t options_table[] =
/* Array of available subcommands.
* The entire list must be terminated with an entry of nulls.
*/
-static const svn_opt_subcommand_desc2_t cmd_table[] =
+static const svn_opt_subcommand_desc3_t cmd_table[] =
{
- {"crashtest", subcommand_crashtest, {0}, N_
- ("usage: svnadmin crashtest REPOS_PATH\n\n"
+ {"crashtest", subcommand_crashtest, {0}, {N_(
+ "usage: svnadmin crashtest REPOS_PATH\n"
+ "\n"), N_(
"Open the repository at REPOS_PATH, then abort, thus simulating\n"
- "a process that crashes while holding an open repository handle.\n"),
+ "a process that crashes while holding an open repository handle.\n"
+ )},
{0} },
- {"create", subcommand_create, {0}, N_
- ("usage: svnadmin create REPOS_PATH\n\n"
- "Create a new, empty repository at REPOS_PATH.\n"),
+ {"create", subcommand_create, {0}, {N_(
+ "usage: svnadmin create REPOS_PATH\n"
+ "\n"), N_(
+ "Create a new, empty repository at REPOS_PATH.\n"
+ )},
{svnadmin__bdb_txn_nosync, svnadmin__bdb_log_keep,
svnadmin__config_dir, svnadmin__fs_type, svnadmin__compatible_version,
svnadmin__pre_1_4_compatible, svnadmin__pre_1_5_compatible,
svnadmin__pre_1_6_compatible
} },
- {"delrevprop", subcommand_delrevprop, {0}, N_
- ("usage: 1. svnadmin delrevprop REPOS_PATH -r REVISION NAME\n"
- " 2. svnadmin delrevprop REPOS_PATH -t TXN NAME\n\n"
- "1. Delete the property NAME on revision REVISION.\n\n"
+ {"delrevprop", subcommand_delrevprop, {0}, {N_(
+ "usage: 1. svnadmin delrevprop REPOS_PATH -r REVISION NAME\n"
+ " 2. svnadmin delrevprop REPOS_PATH -t TXN NAME\n"
+ "\n"), N_(
+ "1. Delete the property NAME on revision REVISION.\n"
+ "\n"), N_(
"Use --use-pre-revprop-change-hook/--use-post-revprop-change-hook to\n"
"trigger the revision property-related hooks (for example, if you want\n"
- "an email notification sent from your post-revprop-change hook).\n\n"
+ "an email notification sent from your post-revprop-change hook).\n"
+ "\n"), N_(
"NOTE: Revision properties are not versioned, so this command will\n"
- "irreversibly destroy the previous value of the property.\n\n"
- "2. Delete the property NAME on transaction TXN.\n"),
+ "irreversibly destroy the previous value of the property.\n"
+ "\n"), N_(
+ "2. Delete the property NAME on transaction TXN.\n"
+ )},
{'r', 't', svnadmin__use_pre_revprop_change_hook,
svnadmin__use_post_revprop_change_hook} },
- {"deltify", subcommand_deltify, {0}, N_
- ("usage: svnadmin deltify [-r LOWER[:UPPER]] REPOS_PATH\n\n"
+ {"deltify", subcommand_deltify, {0}, {N_(
+ "usage: svnadmin deltify [-r LOWER[:UPPER]] REPOS_PATH\n"
+ "\n"), N_(
"Run over the requested revision range, performing predecessor delti-\n"
"fication on the paths changed in those revisions. Deltification in\n"
"essence compresses the repository by only storing the differences or\n"
"delta from the preceding revision. If no revisions are specified,\n"
- "this will simply deltify the HEAD revision.\n"),
+ "this will simply deltify the HEAD revision.\n"
+ )},
{'r', 'q', 'M'} },
- {"dump", subcommand_dump, {0}, N_
- ("usage: svnadmin dump REPOS_PATH [-r LOWER[:UPPER] [--incremental]]\n\n"
+ {"dump", subcommand_dump, {0}, {N_(
+ "usage: svnadmin dump REPOS_PATH [-r LOWER[:UPPER] [--incremental]]\n"
+ "\n"), N_(
"Dump the contents of filesystem to stdout in a 'dumpfile'\n"
"portable format, sending feedback to stderr. Dump revisions\n"
"LOWER rev through UPPER rev. If no revisions are given, dump all\n"
@@ -351,73 +363,94 @@ static const svn_opt_subcommand_desc2_t cmd_table[] =
"every path present in the repository as of that revision. (In either\n"
"case, the second and subsequent revisions, if any, describe only paths\n"
"changed in those revisions.)\n"
- "\n"
+ "\n"), N_(
"Using --exclude or --include gives results equivalent to authz-based\n"
"path exclusions. In particular, when the source of a copy is\n"
- "excluded, the copy is transformed into an add (unlike in 'svndumpfilter').\n"),
+ "excluded, the copy is transformed into an add (unlike in 'svndumpfilter').\n"
+ )},
{'r', svnadmin__incremental, svnadmin__deltas, 'q', 'M', 'F',
svnadmin__exclude, svnadmin__include, svnadmin__glob },
{{'F', N_("write to file ARG instead of stdout")}} },
- {"dump-revprops", subcommand_dump_revprops, {0}, N_
- ("usage: svnadmin dump-revprops REPOS_PATH [-r LOWER[:UPPER]]\n\n"
+ {"dump-revprops", subcommand_dump_revprops, {0}, {N_(
+ "usage: svnadmin dump-revprops REPOS_PATH [-r LOWER[:UPPER]]\n"
+ "\n"), N_(
"Dump the revision properties of filesystem to stdout in a 'dumpfile'\n"
"portable format, sending feedback to stderr. Dump revisions\n"
"LOWER rev through UPPER rev. If no revisions are given, dump the\n"
"properties for all revisions. If only LOWER is given, dump the\n"
- "properties for that one revision.\n"),
+ "properties for that one revision.\n"
+ )},
{'r', 'q', 'F'},
{{'F', N_("write to file ARG instead of stdout")}} },
- {"freeze", subcommand_freeze, {0}, N_
- ("usage: 1. svnadmin freeze REPOS_PATH PROGRAM [ARG...]\n"
- " 2. svnadmin freeze -F FILE PROGRAM [ARG...]\n\n"
+ {"freeze", subcommand_freeze, {0}, {N_(
+ "usage: 1. svnadmin freeze REPOS_PATH -- PROGRAM [ARG...]\n"
+ " 2. svnadmin freeze -F FILE -- PROGRAM [ARG...]\n"
+ "\n"), N_(
"1. Run PROGRAM passing ARGS while holding a write-lock on REPOS_PATH.\n"
" Allows safe use of third-party backup tools on a live repository.\n"
- "\n"
+ "\n"), N_(
"2. Like 1 except all repositories listed in FILE are locked. The file\n"
" format is repository paths separated by newlines. Repositories are\n"
- " locked in the same order as they are listed in the file.\n"),
+ " locked in the same order as they are listed in the file.\n"
+ "\n"
+ "The '--' tells svnadmin to stop looking for svnadmin options and pass\n"
+ "all later arguments to PROGRAM even if they begin with '-'.\n"
+ )},
{'F'},
{{'F', N_("read repository paths from file ARG")}} },
- {"help", subcommand_help, {"?", "h"}, N_
- ("usage: svnadmin help [SUBCOMMAND...]\n\n"
- "Describe the usage of this program or its subcommands.\n"),
+ {"help", subcommand_help, {"?", "h"}, {N_(
+ "usage: svnadmin help [SUBCOMMAND...]\n"
+ "\n"), N_(
+ "Describe the usage of this program or its subcommands.\n"
+ )},
{0} },
- {"hotcopy", subcommand_hotcopy, {0}, N_
- ("usage: svnadmin hotcopy REPOS_PATH NEW_REPOS_PATH\n\n"
+ {"hotcopy", subcommand_hotcopy, {0}, {N_(
+ "usage: svnadmin hotcopy REPOS_PATH NEW_REPOS_PATH\n"
+ "\n"), N_(
"Make a hot copy of a repository.\n"
"If --incremental is passed, data which already exists at the destination\n"
- "is not copied again. Incremental mode is implemented for FSFS repositories.\n"),
+ "is not copied again. Incremental mode is implemented for FSFS repositories.\n"
+ )},
{svnadmin__clean_logs, svnadmin__incremental, 'q'} },
- {"info", subcommand_info, {0}, N_
- ("usage: svnadmin info REPOS_PATH\n\n"
- "Print information about the repository at REPOS_PATH.\n"),
+ {"info", subcommand_info, {0}, {N_(
+ "usage: svnadmin info REPOS_PATH\n"
+ "\n"), N_(
+ "Print information about the repository at REPOS_PATH.\n"
+ )},
{0} },
- {"list-dblogs", subcommand_list_dblogs, {0}, N_
- ("usage: svnadmin list-dblogs REPOS_PATH\n\n"
- "List all Berkeley DB log files.\n\n"
+ {"list-dblogs", subcommand_list_dblogs, {0}, {N_(
+ "usage: svnadmin list-dblogs REPOS_PATH\n"
+ "\n"), N_(
+ "List all Berkeley DB log files.\n"
+ "\n"), N_(
"WARNING: Modifying or deleting logfiles which are still in use\n"
- "will cause your repository to be corrupted.\n"),
+ "will cause your repository to be corrupted.\n"
+ )},
{0} },
- {"list-unused-dblogs", subcommand_list_unused_dblogs, {0}, N_
- ("usage: svnadmin list-unused-dblogs REPOS_PATH\n\n"
- "List unused Berkeley DB log files.\n\n"),
+ {"list-unused-dblogs", subcommand_list_unused_dblogs, {0}, {N_(
+ "usage: svnadmin list-unused-dblogs REPOS_PATH\n"
+ "\n"), N_(
+ "List unused Berkeley DB log files.\n"
+ )},
{0} },
- {"load", subcommand_load, {0}, N_
- ("usage: svnadmin load REPOS_PATH\n\n"
+ {"load", subcommand_load, {0}, {N_(
+ "usage: svnadmin load REPOS_PATH\n"
+ "\n"), N_(
"Read a 'dumpfile'-formatted stream from stdin, committing\n"
"new revisions into the repository's filesystem. If the repository\n"
"was previously empty, its UUID will, by default, be changed to the\n"
"one specified in the stream. Progress feedback is sent to stdout.\n"
"If --revision is specified, limit the loaded revisions to only those\n"
- "in the dump stream whose revision numbers match the specified range.\n"),
+ "in the dump stream whose revision numbers match the specified range.\n"
+ )},
{'q', 'r', svnadmin__ignore_uuid, svnadmin__force_uuid,
svnadmin__ignore_dates,
svnadmin__use_pre_commit_hook, svnadmin__use_post_commit_hook,
@@ -426,122 +459,155 @@ static const svn_opt_subcommand_desc2_t cmd_table[] =
svnadmin__no_flush_to_disk, 'F'},
{{'F', N_("read from file ARG instead of stdin")}} },
- {"load-revprops", subcommand_load_revprops, {0}, N_
- ("usage: svnadmin load-revprops REPOS_PATH\n\n"
+ {"load-revprops", subcommand_load_revprops, {0}, {N_(
+ "usage: svnadmin load-revprops REPOS_PATH\n"
+ "\n"), N_(
"Read a 'dumpfile'-formatted stream from stdin, setting the revision\n"
"properties in the repository's filesystem. Revisions not found in the\n"
"repository will cause an error. Progress feedback is sent to stdout.\n"
"If --revision is specified, limit the loaded revisions to only those\n"
- "in the dump stream whose revision numbers match the specified range.\n"),
+ "in the dump stream whose revision numbers match the specified range.\n"
+ )},
{'q', 'r', svnadmin__force_uuid, svnadmin__normalize_props,
svnadmin__bypass_prop_validation, svnadmin__no_flush_to_disk, 'F'},
{{'F', N_("read from file ARG instead of stdin")}} },
- {"lock", subcommand_lock, {0}, N_
- ("usage: svnadmin lock REPOS_PATH PATH USERNAME COMMENT-FILE [TOKEN]\n\n"
+ {"lock", subcommand_lock, {0}, {N_(
+ "usage: svnadmin lock REPOS_PATH PATH USERNAME COMMENT-FILE [TOKEN]\n"
+ "\n"), N_(
"Lock PATH by USERNAME setting comments from COMMENT-FILE.\n"
"If provided, use TOKEN as lock token. Use --bypass-hooks to avoid\n"
- "triggering the pre-lock and post-lock hook scripts.\n"),
+ "triggering the pre-lock and post-lock hook scripts.\n"
+ )},
{svnadmin__bypass_hooks, 'q'} },
- {"lslocks", subcommand_lslocks, {0}, N_
- ("usage: svnadmin lslocks REPOS_PATH [PATH-IN-REPOS]\n\n"
+ {"lslocks", subcommand_lslocks, {0}, {N_(
+ "usage: svnadmin lslocks REPOS_PATH [PATH-IN-REPOS]\n"
+ "\n"), N_(
"Print descriptions of all locks on or under PATH-IN-REPOS (which,\n"
- "if not provided, is the root of the repository).\n"),
+ "if not provided, is the root of the repository).\n"
+ )},
{0} },
- {"lstxns", subcommand_lstxns, {0}, N_
- ("usage: svnadmin lstxns REPOS_PATH\n\n"
+ {"lstxns", subcommand_lstxns, {0}, {N_(
+ "usage: svnadmin lstxns REPOS_PATH\n"
+ "\n"), N_(
"Print the names of uncommitted transactions. With -rN skip the output\n"
"of those that have a base revision more recent than rN. Transactions\n"
"with base revisions much older than HEAD are likely to have been\n"
- "abandonded and are candidates to be removed.\n"),
+ "abandonded and are candidates to be removed.\n"
+ )},
{'r'},
{ {'r', "transaction base revision ARG"} } },
- {"pack", subcommand_pack, {0}, N_
- ("usage: svnadmin pack REPOS_PATH\n\n"
+ {"pack", subcommand_pack, {0}, {N_(
+ "usage: svnadmin pack REPOS_PATH\n"
+ "\n"), N_(
"Possibly compact the repository into a more efficient storage model.\n"
- "This may not apply to all repositories, in which case, exit.\n"),
+ "This may not apply to all repositories, in which case, exit.\n"
+ )},
{'q', 'M'} },
- {"recover", subcommand_recover, {0}, N_
- ("usage: svnadmin recover REPOS_PATH\n\n"
+ {"recover", subcommand_recover, {0}, {N_(
+ "usage: svnadmin recover REPOS_PATH\n"
+ "\n"), N_(
"Run the recovery procedure on a repository. Do this if you've\n"
"been getting errors indicating that recovery ought to be run.\n"
"Berkeley DB recovery requires exclusive access and will\n"
- "exit if the repository is in use by another process.\n"),
+ "exit if the repository is in use by another process.\n"
+ )},
{svnadmin__wait} },
- {"rmlocks", subcommand_rmlocks, {0}, N_
- ("usage: svnadmin rmlocks REPOS_PATH LOCKED_PATH...\n\n"
- "Unconditionally remove lock from each LOCKED_PATH.\n"),
+ {"rmlocks", subcommand_rmlocks, {0}, {N_(
+ "usage: svnadmin rmlocks REPOS_PATH LOCKED_PATH...\n"
+ "\n"), N_(
+ "Unconditionally remove lock from each LOCKED_PATH.\n"
+ )},
{'q'} },
- {"rmtxns", subcommand_rmtxns, {0}, N_
- ("usage: svnadmin rmtxns REPOS_PATH TXN_NAME...\n\n"
- "Delete the named transaction(s).\n"),
+ {"rmtxns", subcommand_rmtxns, {0}, {N_(
+ "usage: svnadmin rmtxns REPOS_PATH TXN_NAME...\n"
+ "\n"), N_(
+ "Delete the named transaction(s).\n"
+ )},
{'q'} },
- {"setlog", subcommand_setlog, {0}, N_
- ("usage: svnadmin setlog REPOS_PATH -r REVISION FILE\n\n"
+ {"setlog", subcommand_setlog, {0}, {N_(
+ "usage: svnadmin setlog REPOS_PATH -r REVISION FILE\n"
+ "\n"), N_(
"Set the log-message on revision REVISION to the contents of FILE. Use\n"
"--bypass-hooks to avoid triggering the revision-property-related hooks\n"
"(for example, if you do not want an email notification sent\n"
"from your post-revprop-change hook, or because the modification of\n"
"revision properties has not been enabled in the pre-revprop-change\n"
- "hook).\n\n"
+ "hook).\n"
+ "\n"), N_(
"NOTE: Revision properties are not versioned, so this command will\n"
- "overwrite the previous log message.\n"),
+ "overwrite the previous log message.\n"
+ )},
{'r', svnadmin__bypass_hooks} },
- {"setrevprop", subcommand_setrevprop, {0}, N_
- ("usage: 1. svnadmin setrevprop REPOS_PATH -r REVISION NAME FILE\n"
- " 2. svnadmin setrevprop REPOS_PATH -t TXN NAME FILE\n\n"
- "1. Set the property NAME on revision REVISION to the contents of FILE.\n\n"
+ {"setrevprop", subcommand_setrevprop, {0}, {N_(
+ "usage: 1. svnadmin setrevprop REPOS_PATH -r REVISION NAME FILE\n"
+ " 2. svnadmin setrevprop REPOS_PATH -t TXN NAME FILE\n"
+ "\n"), N_(
+ "1. Set the property NAME on revision REVISION to the contents of FILE.\n"
+ "\n"), N_(
"Use --use-pre-revprop-change-hook/--use-post-revprop-change-hook to\n"
"trigger the revision property-related hooks (for example, if you want\n"
- "an email notification sent from your post-revprop-change hook).\n\n"
+ "an email notification sent from your post-revprop-change hook).\n"
+ "\n"), N_(
"NOTE: Revision properties are not versioned, so this command will\n"
- "overwrite the previous value of the property.\n\n"
- "2. Set the property NAME on transaction TXN to the contents of FILE.\n"),
+ "overwrite the previous value of the property.\n"
+ "\n"), N_(
+ "2. Set the property NAME on transaction TXN to the contents of FILE.\n"
+ )},
{'r', 't', svnadmin__use_pre_revprop_change_hook,
svnadmin__use_post_revprop_change_hook} },
- {"setuuid", subcommand_setuuid, {0}, N_
- ("usage: svnadmin setuuid REPOS_PATH [NEW_UUID]\n\n"
+ {"setuuid", subcommand_setuuid, {0}, {N_(
+ "usage: svnadmin setuuid REPOS_PATH [NEW_UUID]\n"
+ "\n"), N_(
"Reset the repository UUID for the repository located at REPOS_PATH. If\n"
"NEW_UUID is provided, use that as the new repository UUID; otherwise,\n"
- "generate a brand new UUID for the repository.\n"),
+ "generate a brand new UUID for the repository.\n"
+ )},
{0} },
- {"unlock", subcommand_unlock, {0}, N_
- ("usage: svnadmin unlock REPOS_PATH LOCKED_PATH USERNAME TOKEN\n\n"
+ {"unlock", subcommand_unlock, {0}, {N_(
+ "usage: svnadmin unlock REPOS_PATH LOCKED_PATH USERNAME TOKEN\n"
+ "\n"), N_(
"Unlock LOCKED_PATH (as USERNAME) after verifying that the token\n"
"associated with the lock matches TOKEN. Use --bypass-hooks to avoid\n"
- "triggering the pre-unlock and post-unlock hook scripts.\n"),
+ "triggering the pre-unlock and post-unlock hook scripts.\n"
+ )},
{svnadmin__bypass_hooks, 'q'} },
- {"upgrade", subcommand_upgrade, {0}, N_
- ("usage: svnadmin upgrade REPOS_PATH\n\n"
+ {"upgrade", subcommand_upgrade, {0}, {N_(
+ "usage: svnadmin upgrade REPOS_PATH\n"
+ "\n"), N_(
"Upgrade the repository located at REPOS_PATH to the latest supported\n"
- "schema version.\n\n"
+ "schema version.\n"
+ "\n"), N_(
"This functionality is provided as a convenience for repository\n"
"administrators who wish to make use of new Subversion functionality\n"
"without having to undertake a potentially costly full repository dump\n"
"and load operation. As such, the upgrade performs only the minimum\n"
"amount of work needed to accomplish this while still maintaining the\n"
"integrity of the repository. It does not guarantee the most optimized\n"
- "repository state as a dump and subsequent load would.\n"),
+ "repository state as a dump and subsequent load would.\n"
+ )},
{0} },
- {"verify", subcommand_verify, {0}, N_
- ("usage: svnadmin verify REPOS_PATH\n\n"
- "Verify the data stored in the repository.\n"),
+ {"verify", subcommand_verify, {0}, {N_(
+ "usage: svnadmin verify REPOS_PATH\n"
+ "\n"), N_(
+ "Verify the data stored in the repository.\n"
+ )},
{'t', 'r', 'q', svnadmin__keep_going, 'M',
svnadmin__check_normalization, svnadmin__metadata_only} },
- { NULL, NULL, {0}, NULL, {0} }
+ { NULL, NULL, {0}, {NULL}, {0} }
};
@@ -1540,7 +1606,7 @@ subcommand_help(apr_getopt_t *os, void *baton, apr_pool_t *pool)
version_footer = svn_stringbuf_create(fs_desc_start, pool);
SVN_ERR(svn_fs_print_modules(version_footer, pool));
- SVN_ERR(svn_opt_print_help4(os, "svnadmin",
+ SVN_ERR(svn_opt_print_help5(os, "svnadmin",
opt_state ? opt_state->version : FALSE,
opt_state ? opt_state->quiet : FALSE,
/*###opt_state ? opt_state->verbose :*/ FALSE,
@@ -2191,15 +2257,16 @@ subcommand_verify(apr_getopt_t *os, void *baton, apr_pool_t *pool)
check_cancel, NULL, pool));
/* Show the --keep-going error summary. */
- if (!opt_state->quiet
- && opt_state->keep_going
- && verify_baton.error_summary->nelts > 0)
+ if (opt_state->keep_going && verify_baton.error_summary->nelts > 0)
{
int rev_maxlength;
svn_revnum_t end_revnum;
apr_pool_t *iterpool;
int i;
+ if (feedback_stream == NULL) /* happens when we are in --quiet mode */
+ feedback_stream = recode_stream_create(stdout, pool);
+
svn_error_clear(
svn_stream_puts(feedback_stream,
_("\n-----Summary of corrupt revisions-----\n")));
@@ -2794,7 +2861,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
svn_error_t *err;
apr_status_t apr_err;
- const svn_opt_subcommand_desc2_t *subcommand = NULL;
+ const svn_opt_subcommand_desc3_t *subcommand = NULL;
struct svnadmin_opt_state opt_state = { 0 };
apr_getopt_t *os;
int opt_id;
@@ -3049,7 +3116,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
just typos/mistakes. Whatever the case, the subcommand to
actually run is subcommand_help(). */
if (opt_state.help)
- subcommand = svn_opt_get_canonical_subcommand2(cmd_table, "help");
+ subcommand = svn_opt_get_canonical_subcommand3(cmd_table, "help");
/* If we're not running the `help' subcommand, then look for a
subcommand in the first argument. */
@@ -3060,8 +3127,8 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
if (opt_state.version)
{
/* Use the "help" subcommand to handle the "--version" option. */
- static const svn_opt_subcommand_desc2_t pseudo_cmd =
- { "--version", subcommand_help, {0}, "",
+ static const svn_opt_subcommand_desc3_t pseudo_cmd =
+ { "--version", subcommand_help, {0}, {""},
{svnadmin__version, /* must accept its own option */
'q', /* --quiet */
} };
@@ -3083,7 +3150,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
SVN_ERR(svn_utf_cstring_to_utf8(&first_arg, os->argv[os->ind++],
pool));
- subcommand = svn_opt_get_canonical_subcommand2(cmd_table, first_arg);
+ subcommand = svn_opt_get_canonical_subcommand3(cmd_table, first_arg);
if (subcommand == NULL)
{
svn_error_clear(
@@ -3135,11 +3202,11 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
if (opt_id == 'h' || opt_id == '?')
continue;
- if (! svn_opt_subcommand_takes_option3(subcommand, opt_id, NULL))
+ if (! svn_opt_subcommand_takes_option4(subcommand, opt_id, NULL))
{
const char *optstr;
const apr_getopt_option_t *badopt =
- svn_opt_get_option_from_code2(opt_id, options_table, subcommand,
+ svn_opt_get_option_from_code3(opt_id, options_table, subcommand,
pool);
svn_opt_format_option(&optstr, badopt, FALSE, pool);
if (subcommand->name[0] == '-')
diff --git a/subversion/svnbench/cl.h b/subversion/svnbench/cl.h
index f14e255..ad5c9a5 100644
--- a/subversion/svnbench/cl.h
+++ b/subversion/svnbench/cl.h
@@ -117,7 +117,7 @@ svn_opt_subcommand_t
/* See definition in main.c for documentation. */
-extern const svn_opt_subcommand_desc2_t svn_cl__cmd_table[];
+extern const svn_opt_subcommand_desc3_t svn_cl__cmd_table[];
/* See definition in main.c for documentation. */
extern const int svn_cl__global_options[];
diff --git a/subversion/svnbench/help-cmd.c b/subversion/svnbench/help-cmd.c
index ead4861..a19bcad 100644
--- a/subversion/svnbench/help-cmd.c
+++ b/subversion/svnbench/help-cmd.c
@@ -75,7 +75,7 @@ svn_cl__help(apr_getopt_t *os,
version_footer = svn_stringbuf_create(ra_desc_start, pool);
SVN_ERR(svn_ra_print_modules(version_footer, pool));
- return svn_opt_print_help4(os,
+ return svn_opt_print_help5(os,
"svnbench", /* ### erm, derive somehow? */
opt_state ? opt_state->version : FALSE,
opt_state ? opt_state->quiet : FALSE,
diff --git a/subversion/svnbench/svnbench.c b/subversion/svnbench/svnbench.c
index 80a8728..33e7b69 100644
--- a/subversion/svnbench/svnbench.c
+++ b/subversion/svnbench/svnbench.c
@@ -206,111 +206,117 @@ const int svn_cl__global_options[] =
opt_config_dir, opt_config_options, 0
};
-const svn_opt_subcommand_desc2_t svn_cl__cmd_table[] =
+const svn_opt_subcommand_desc3_t svn_cl__cmd_table[] =
{
- { "help", svn_cl__help, {"?", "h"}, N_
- ("Describe the usage of this program or its subcommands.\n"
- "usage: help [SUBCOMMAND...]\n"),
+ { "help", svn_cl__help, {"?", "h"}, {N_(
+ "Describe the usage of this program or its subcommands.\n"
+ "usage: help [SUBCOMMAND...]\n"
+ )},
{0} },
/* This command is also invoked if we see option "--help", "-h" or "-?". */
- { "null-blame", svn_cl__null_blame, {0}, N_
- ("Fetch all versions of a file in a batch.\n"
+ { "null-blame", svn_cl__null_blame, {0}, {N_(
+ "Fetch all versions of a file in a batch.\n"
"usage: null-blame [-rM:N] TARGET[@REV]...\n"
- "\n"
+ "\n"), N_(
" With no revision range (same as -r0:REV), or with '-r M:N' where M < N,\n"
" annotate each line that is present in revision N of the file, with\n"
" the last revision at or before rN that changed or added the line,\n"
" looking back no further than rM.\n"
- "\n"
+ "\n"), N_(
" With a reverse revision range '-r M:N' where M > N,\n"
" annotate each line that is present in revision N of the file, with\n"
" the next revision after rN that changed or deleted the line,\n"
" looking forward no further than rM.\n"
- "\n"
+ "\n"), N_(
" If specified, REV determines in which revision the target is first\n"
" looked up.\n"
- "\n"
- " Write the annotated result to standard output.\n"),
+ "\n"), N_(
+ " Write the annotated result to standard output.\n"
+ )},
{'r', 'g'} },
- { "null-export", svn_cl__null_export, {0}, N_
- ("Create an unversioned copy of a tree.\n"
+ { "null-export", svn_cl__null_export, {0}, {N_(
+ "Create an unversioned copy of a tree.\n"
"usage: null-export [-r REV] URL[@PEGREV]\n"
- "\n"
+ "\n"), N_(
" Exports a clean directory tree from the repository specified by\n"
" URL, at revision REV if it is given, otherwise at HEAD.\n"
- "\n"
+ "\n"), N_(
" If specified, PEGREV determines in which revision the target is first\n"
- " looked up.\n"),
+ " looked up.\n"
+ )},
{'r', 'q', 'N', opt_depth} },
- { "null-list", svn_cl__null_list, {"ls"}, N_
- ("List directory entries in the repository.\n"
+ { "null-list", svn_cl__null_list, {"ls"}, {N_(
+ "List directory entries in the repository.\n"
"usage: null-list [TARGET[@REV]...]\n"
- "\n"
+ "\n"), N_(
" List each TARGET file and the contents of each TARGET directory as\n"
" they exist in the repository. If TARGET is a working copy path, the\n"
" corresponding repository URL will be used. If specified, REV determines\n"
" in which revision the target is first looked up.\n"
- "\n"
+ "\n"), N_(
" The default TARGET is '.', meaning the repository URL of the current\n"
" working directory.\n"
- "\n"
+ "\n"), N_(
" With --verbose, the following fields will be fetched for each item:\n"
- "\n"
+ "\n"), N_(
" Revision number of the last commit\n"
" Author of the last commit\n"
" If locked, the letter 'O'. (Use 'svn info URL' to see details)\n"
" Size (in bytes)\n"
- " Date and time of the last commit\n"),
+ " Date and time of the last commit\n"
+ )},
{'r', 'v', 'q', 'R', opt_depth, opt_search} },
- { "null-log", svn_cl__null_log, {0}, N_
- ("Fetch the log messages for a set of revision(s) and/or path(s).\n"
+ { "null-log", svn_cl__null_log, {0}, {N_(
+ "Fetch the log messages for a set of revision(s) and/or path(s).\n"
"usage: 1. null-log [PATH][@REV]\n"
" 2. null-log URL[@REV] [PATH...]\n"
- "\n"
+ "\n"), N_(
" 1. Fetch the log messages for the URL corresponding to PATH\n"
" (default: '.'). If specified, REV is the revision in which the\n"
" URL is first looked up, and the default revision range is REV:1.\n"
" If REV is not specified, the default revision range is BASE:1,\n"
" since the URL might not exist in the HEAD revision.\n"
- "\n"
+ "\n"), N_(
" 2. Fetch the log messages for the PATHs (default: '.') under URL.\n"
" If specified, REV is the revision in which the URL is first\n"
" looked up, and the default revision range is REV:1; otherwise,\n"
" the URL is looked up in HEAD, and the default revision range is\n"
" HEAD:1.\n"
- "\n"
+ "\n"), N_(
" Multiple '-c' or '-r' options may be specified (but not a\n"
" combination of '-c' and '-r' options), and mixing of forward and\n"
" reverse ranges is allowed.\n"
- "\n"
+ "\n"), N_(
" With -v, also print all affected paths with each log message.\n"
" With -q, don't print the log message body itself (note that this is\n"
" compatible with -v).\n"
- "\n"
+ "\n"), N_(
" Each log message is printed just once, even if more than one of the\n"
" affected paths for that revision were explicitly requested. Logs\n"
" follow copy history by default. Use --stop-on-copy to disable this\n"
- " behavior, which can be useful for determining branchpoints.\n"),
+ " behavior, which can be useful for determining branchpoints.\n"
+ )},
{'r', 'q', 'v', 'g', 'c', opt_targets, opt_stop_on_copy,
'l', opt_with_all_revprops, opt_with_no_revprops, opt_with_revprop,},
{{opt_with_revprop, N_("retrieve revision property ARG")},
{'c', N_("the change made in revision ARG")}} },
- { "null-info", svn_cl__null_info, {0}, N_
- ("Display information about a local or remote item.\n"
+ { "null-info", svn_cl__null_info, {0}, {N_(
+ "Display information about a local or remote item.\n"
"usage: null-info [TARGET[@REV]...]\n"
- "\n"
+ "\n"), N_(
" Print information about each TARGET (default: '.').\n"
" TARGET may be either a working-copy path or URL. If specified, REV\n"
- " determines in which revision the target is first looked up.\n"),
+ " determines in which revision the target is first looked up.\n"
+ )},
{'r', 'R', opt_depth, opt_targets, opt_changelist}
},
- { NULL, NULL, {0}, NULL, {0} }
+ { NULL, NULL, {0}, {NULL}, {0} }
};
@@ -389,7 +395,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
svn_client_ctx_t *ctx;
apr_array_header_t *received_opts;
int i;
- const svn_opt_subcommand_desc2_t *subcommand = NULL;
+ const svn_opt_subcommand_desc3_t *subcommand = NULL;
svn_cl__cmd_baton_t command_baton;
svn_auth_baton_t *ab;
svn_config_t *cfg_config;
@@ -722,7 +728,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
just typos/mistakes. Whatever the case, the subcommand to
actually run is svn_cl__help(). */
if (opt_state.help)
- subcommand = svn_opt_get_canonical_subcommand2(svn_cl__cmd_table, "help");
+ subcommand = svn_opt_get_canonical_subcommand3(svn_cl__cmd_table, "help");
/* If we're not running the `help' subcommand, then look for a
subcommand in the first argument. */
@@ -733,8 +739,8 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
if (opt_state.version)
{
/* Use the "help" subcommand to handle the "--version" option. */
- static const svn_opt_subcommand_desc2_t pseudo_cmd =
- { "--version", svn_cl__help, {0}, "",
+ static const svn_opt_subcommand_desc3_t pseudo_cmd =
+ { "--version", svn_cl__help, {0}, {""},
{opt_version, /* must accept its own option */
'q', /* brief output */
'v', /* verbose output */
@@ -759,7 +765,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
SVN_ERR(svn_utf_cstring_to_utf8(&first_arg, os->argv[os->ind++],
pool));
- subcommand = svn_opt_get_canonical_subcommand2(svn_cl__cmd_table,
+ subcommand = svn_opt_get_canonical_subcommand3(svn_cl__cmd_table,
first_arg);
if (subcommand == NULL)
{
@@ -786,12 +792,12 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
if (opt_id == 'h' || opt_id == '?')
continue;
- if (! svn_opt_subcommand_takes_option3(subcommand, opt_id,
+ if (! svn_opt_subcommand_takes_option4(subcommand, opt_id,
svn_cl__global_options))
{
const char *optstr;
const apr_getopt_option_t *badopt =
- svn_opt_get_option_from_code2(opt_id, svn_cl__options,
+ svn_opt_get_option_from_code3(opt_id, svn_cl__options,
subcommand, pool);
svn_opt_format_option(&optstr, badopt, FALSE, pool);
if (subcommand->name[0] == '-')
diff --git a/subversion/svndumpfilter/svndumpfilter.c b/subversion/svndumpfilter/svndumpfilter.c
index b17ccd2..ccc1cf1 100644
--- a/subversion/svndumpfilter/svndumpfilter.c
+++ b/subversion/svndumpfilter/svndumpfilter.c
@@ -977,32 +977,35 @@ static const apr_getopt_option_t options_table[] =
/* Array of available subcommands.
* The entire list must be terminated with an entry of nulls.
*/
-static const svn_opt_subcommand_desc2_t cmd_table[] =
+static const svn_opt_subcommand_desc3_t cmd_table[] =
{
- {"exclude", subcommand_exclude, {0},
- N_("Filter out nodes with given prefixes from dumpstream.\n"
- "usage: svndumpfilter exclude PATH_PREFIX...\n"),
+ {"exclude", subcommand_exclude, {0}, {N_(
+ "Filter out nodes with given prefixes from dumpstream.\n"
+ "usage: svndumpfilter exclude PATH_PREFIX...\n"
+ )},
{svndumpfilter__drop_empty_revs, svndumpfilter__drop_all_empty_revs,
svndumpfilter__renumber_revs,
svndumpfilter__skip_missing_merge_sources, svndumpfilter__targets,
svndumpfilter__preserve_revprops, svndumpfilter__quiet,
svndumpfilter__glob} },
- {"include", subcommand_include, {0},
- N_("Filter out nodes without given prefixes from dumpstream.\n"
- "usage: svndumpfilter include PATH_PREFIX...\n"),
+ {"include", subcommand_include, {0}, {N_(
+ "Filter out nodes without given prefixes from dumpstream.\n"
+ "usage: svndumpfilter include PATH_PREFIX...\n"
+ )},
{svndumpfilter__drop_empty_revs, svndumpfilter__drop_all_empty_revs,
svndumpfilter__renumber_revs,
svndumpfilter__skip_missing_merge_sources, svndumpfilter__targets,
svndumpfilter__preserve_revprops, svndumpfilter__quiet,
svndumpfilter__glob} },
- {"help", subcommand_help, {"?", "h"},
- N_("Describe the usage of this program or its subcommands.\n"
- "usage: svndumpfilter help [SUBCOMMAND...]\n"),
+ {"help", subcommand_help, {"?", "h"}, {N_(
+ "Describe the usage of this program or its subcommands.\n"
+ "usage: svndumpfilter help [SUBCOMMAND...]\n"
+ )},
{0} },
- { NULL, NULL, {0}, NULL, {0} }
+ { NULL, NULL, {0}, {NULL}, {0} }
};
@@ -1080,7 +1083,7 @@ subcommand_help(apr_getopt_t *os, void *baton, apr_pool_t *pool)
"\n"
"Available subcommands:\n");
- SVN_ERR(svn_opt_print_help4(os, "svndumpfilter",
+ SVN_ERR(svn_opt_print_help5(os, "svndumpfilter",
opt_state ? opt_state->version : FALSE,
opt_state ? opt_state->quiet : FALSE,
/*###opt_state ? opt_state->verbose :*/ FALSE,
@@ -1292,7 +1295,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
svn_error_t *err;
apr_status_t apr_err;
- const svn_opt_subcommand_desc2_t *subcommand = NULL;
+ const svn_opt_subcommand_desc3_t *subcommand = NULL;
struct svndumpfilter_opt_state opt_state;
apr_getopt_t *os;
int opt_id;
@@ -1399,7 +1402,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
just typos/mistakes. Whatever the case, the subcommand to
actually run is subcommand_help(). */
if (opt_state.help)
- subcommand = svn_opt_get_canonical_subcommand2(cmd_table, "help");
+ subcommand = svn_opt_get_canonical_subcommand3(cmd_table, "help");
/* If we're not running the `help' subcommand, then look for a
subcommand in the first argument. */
@@ -1410,8 +1413,8 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
if (opt_state.version)
{
/* Use the "help" subcommand to handle the "--version" option. */
- static const svn_opt_subcommand_desc2_t pseudo_cmd =
- { "--version", subcommand_help, {0}, "",
+ static const svn_opt_subcommand_desc3_t pseudo_cmd =
+ { "--version", subcommand_help, {0}, {""},
{svndumpfilter__version, /* must accept its own option */
svndumpfilter__quiet,
} };
@@ -1434,7 +1437,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
SVN_ERR(svn_utf_cstring_to_utf8(&first_arg, os->argv[os->ind++],
pool));
- subcommand = svn_opt_get_canonical_subcommand2(cmd_table, first_arg);
+ subcommand = svn_opt_get_canonical_subcommand3(cmd_table, first_arg);
if (subcommand == NULL)
{
svn_error_clear(
@@ -1520,11 +1523,11 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
if (opt_id == 'h' || opt_id == '?')
continue;
- if (! svn_opt_subcommand_takes_option3(subcommand, opt_id, NULL))
+ if (! svn_opt_subcommand_takes_option4(subcommand, opt_id, NULL))
{
const char *optstr;
const apr_getopt_option_t *badopt =
- svn_opt_get_option_from_code2(opt_id, options_table, subcommand,
+ svn_opt_get_option_from_code3(opt_id, options_table, subcommand,
pool);
svn_opt_format_option(&optstr, badopt, FALSE, pool);
if (subcommand->name[0] == '-')
diff --git a/subversion/svnfsfs/load-index-cmd.c b/subversion/svnfsfs/load-index-cmd.c
index e3b5c0d..7b5349b 100644
--- a/subversion/svnfsfs/load-index-cmd.c
+++ b/subversion/svnfsfs/load-index-cmd.c
@@ -147,7 +147,7 @@ load_index(const char *path,
/* Get the next line from the input and stop if there is none. */
svn_pool_clear(iterpool);
- svn_stream_readline(input, &line, "\n", &eol, iterpool);
+ SVN_ERR(svn_stream_readline(input, &line, "\n", &eol, iterpool));
if (eol)
break;
diff --git a/subversion/svnfsfs/svnfsfs.c b/subversion/svnfsfs/svnfsfs.c
index ed3e664..6fcb792 100644
--- a/subversion/svnfsfs/svnfsfs.c
+++ b/subversion/svnfsfs/svnfsfs.c
@@ -111,22 +111,27 @@ static const apr_getopt_option_t options_table[] =
/* Array of available subcommands.
* The entire list must be terminated with an entry of nulls.
*/
-static const svn_opt_subcommand_desc2_t cmd_table[] =
+static const svn_opt_subcommand_desc3_t cmd_table[] =
{
- {"help", subcommand__help, {"?", "h"}, N_
- ("usage: svnfsfs help [SUBCOMMAND...]\n\n"
- "Describe the usage of this program or its subcommands.\n"),
+ {"help", subcommand__help, {"?", "h"}, {N_(
+ "usage: svnfsfs help [SUBCOMMAND...]\n"
+ "\n"), N_(
+ "Describe the usage of this program or its subcommands.\n"
+ )},
{0} },
- {"dump-index", subcommand__dump_index, {0}, N_
- ("usage: svnfsfs dump-index REPOS_PATH -r REV\n\n"
+ {"dump-index", subcommand__dump_index, {0}, {N_(
+ "usage: svnfsfs dump-index REPOS_PATH -r REV\n"
+ "\n"), N_(
"Dump the index contents for the revision / pack file containing revision REV\n"
"to console. This is only available for FSFS format 7 (SVN 1.9+) repositories.\n"
"The table produced contains a header in the first line followed by one line\n"
- "per index entry, ordered by location in the revision / pack file. Columns:\n\n"
+ "per index entry, ordered by location in the revision / pack file. Columns:\n"
+ "\n"), N_(
" * Byte offset (hex) at which the item starts\n"
" * Length (hex) of the item in bytes\n"
- " * Item type (string) is one of the following:\n\n"
+ " * Item type (string) is one of the following:\n"
+ "\n"), N_(
" none ... Unused section. File contents shall be NULs.\n"
" frep ... File representation.\n"
" drep ... Directory representation.\n"
@@ -135,29 +140,36 @@ static const svn_opt_subcommand_desc2_t cmd_table[] =
" node ... Node revision.\n"
" chgs ... Changed paths list.\n"
" rep .... Representation of unknown type. Should not be used.\n"
- " ??? .... Invalid. Index data is corrupt.\n\n"
+ " ??? .... Invalid. Index data is corrupt.\n"
+ "\n"), N_(
" The distinction between frep, drep, fprop and dprop is a mere internal\n"
" classification used for various optimizations and does not affect the\n"
- " operational correctness.\n\n"
+ " operational correctness.\n"
+ "\n"), N_(
" * Revision that the item belongs to (decimal)\n"
" * Item number (decimal) within that revision\n"
- " * Modified FNV1a checksum (8 hex digits)\n"),
+ " * Modified FNV1a checksum (8 hex digits)\n"
+ )},
{'r', 'M'} },
- {"load-index", subcommand__load_index, {0}, N_
- ("usage: svnfsfs load-index REPOS_PATH\n\n"
+ {"load-index", subcommand__load_index, {0}, {N_(
+ "usage: svnfsfs load-index REPOS_PATH\n"
+ "\n"), N_(
"Read index contents from console. The format is the same as produced by the\n"
"dump-index command, except that checksum as well as header are optional and will\n"
"be ignored. The data must cover the full revision / pack file; the revision\n"
- "number is automatically extracted from input stream. No ordering is required.\n"),
+ "number is automatically extracted from input stream. No ordering is required.\n"
+ )},
{'M'} },
- {"stats", subcommand__stats, {0}, N_
- ("usage: svnfsfs stats REPOS_PATH\n\n"
- "Write object size statistics to console.\n"),
+ {"stats", subcommand__stats, {0}, {N_(
+ "usage: svnfsfs stats REPOS_PATH\n"
+ "\n"), N_(
+ "Write object size statistics to console.\n"
+ )},
{'M'} },
- { NULL, NULL, {0}, NULL, {0} }
+ { NULL, NULL, {0}, {NULL}, {0} }
};
@@ -196,7 +208,7 @@ subcommand__help(apr_getopt_t *os, void *baton, apr_pool_t *pool)
"\n"
"Available subcommands:\n");
- SVN_ERR(svn_opt_print_help4(os, "svnfsfs",
+ SVN_ERR(svn_opt_print_help5(os, "svnfsfs",
opt_state ? opt_state->version : FALSE,
opt_state ? opt_state->quiet : FALSE,
/*###opt_state ? opt_state->verbose :*/ FALSE,
@@ -221,7 +233,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
svn_error_t *err;
apr_status_t apr_err;
- const svn_opt_subcommand_desc2_t *subcommand = NULL;
+ const svn_opt_subcommand_desc3_t *subcommand = NULL;
svnfsfs__opt_state opt_state = { 0 };
apr_getopt_t *os;
int opt_id;
@@ -325,7 +337,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
just typos/mistakes. Whatever the case, the subcommand to
actually run is subcommand_help(). */
if (opt_state.help)
- subcommand = svn_opt_get_canonical_subcommand2(cmd_table, "help");
+ subcommand = svn_opt_get_canonical_subcommand3(cmd_table, "help");
/* If we're not running the `help' subcommand, then look for a
subcommand in the first argument. */
@@ -336,8 +348,8 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
if (opt_state.version)
{
/* Use the "help" subcommand to handle the "--version" option. */
- static const svn_opt_subcommand_desc2_t pseudo_cmd =
- { "--version", subcommand__help, {0}, "",
+ static const svn_opt_subcommand_desc3_t pseudo_cmd =
+ { "--version", subcommand__help, {0}, {""},
{svnfsfs__version, /* must accept its own option */
'q', /* --quiet */
} };
@@ -359,7 +371,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
SVN_ERR(svn_utf_cstring_to_utf8(&first_arg, os->argv[os->ind++],
pool));
- subcommand = svn_opt_get_canonical_subcommand2(cmd_table, first_arg);
+ subcommand = svn_opt_get_canonical_subcommand3(cmd_table, first_arg);
if (subcommand == NULL)
{
svn_error_clear(
@@ -409,11 +421,11 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
if (opt_id == 'h' || opt_id == '?')
continue;
- if (! svn_opt_subcommand_takes_option3(subcommand, opt_id, NULL))
+ if (! svn_opt_subcommand_takes_option4(subcommand, opt_id, NULL))
{
const char *optstr;
const apr_getopt_option_t *badopt =
- svn_opt_get_option_from_code2(opt_id, options_table, subcommand,
+ svn_opt_get_option_from_code3(opt_id, options_table, subcommand,
pool);
svn_opt_format_option(&optstr, badopt, FALSE, pool);
if (subcommand->name[0] == '-')
diff --git a/subversion/svnlook/svnlook.c b/subversion/svnlook/svnlook.c
index 261909c..d6f9506 100644
--- a/subversion/svnlook/svnlook.c
+++ b/subversion/svnlook/svnlook.c
@@ -212,110 +212,144 @@ static const apr_getopt_option_t options_table[] =
/* Array of available subcommands.
* The entire list must be terminated with an entry of nulls.
*/
-static const svn_opt_subcommand_desc2_t cmd_table[] =
+static const svn_opt_subcommand_desc3_t cmd_table[] =
{
- {"author", subcommand_author, {0},
- N_("usage: svnlook author REPOS_PATH\n\n"
- "Print the author.\n"),
+ {"author", subcommand_author, {0}, {N_(
+ "usage: svnlook author REPOS_PATH\n"
+ "\n"), N_(
+ "Print the author.\n"
+ )},
{'r', 't'} },
- {"cat", subcommand_cat, {0},
- N_("usage: svnlook cat REPOS_PATH FILE_PATH\n\n"
- "Print the contents of a file. Leading '/' on FILE_PATH is optional.\n"),
+ {"cat", subcommand_cat, {0}, {N_(
+ "usage: svnlook cat REPOS_PATH FILE_PATH\n"
+ "\n"), N_(
+ "Print the contents of a file. Leading '/' on FILE_PATH is optional.\n"
+ )},
{'r', 't'} },
- {"changed", subcommand_changed, {0},
- N_("usage: svnlook changed REPOS_PATH\n\n"
- "Print the paths that were changed.\n"),
+ {"changed", subcommand_changed, {0}, {N_(
+ "usage: svnlook changed REPOS_PATH\n"
+ "\n"), N_(
+ "Print the paths that were changed.\n"
+ )},
{'r', 't', svnlook__copy_info} },
- {"date", subcommand_date, {0},
- N_("usage: svnlook date REPOS_PATH\n\n"
- "Print the datestamp.\n"),
+ {"date", subcommand_date, {0}, {N_(
+ "usage: svnlook date REPOS_PATH\n"
+ "\n"), N_(
+ "Print the datestamp.\n"
+ )},
{'r', 't'} },
- {"diff", subcommand_diff, {0},
- N_("usage: svnlook diff REPOS_PATH\n\n"
- "Print GNU-style diffs of changed files and properties.\n"),
+ {"diff", subcommand_diff, {0}, {N_(
+ "usage: svnlook diff REPOS_PATH\n"
+ "\n"), N_(
+ "Print GNU-style diffs of changed files and properties.\n"
+ )},
{'r', 't', svnlook__no_diff_deleted, svnlook__no_diff_added,
svnlook__diff_copy_from, svnlook__diff_cmd, 'x',
svnlook__ignore_properties, svnlook__properties_only} },
- {"dirs-changed", subcommand_dirschanged, {0},
- N_("usage: svnlook dirs-changed REPOS_PATH\n\n"
+ {"dirs-changed", subcommand_dirschanged, {0}, {N_(
+ "usage: svnlook dirs-changed REPOS_PATH\n"
+ "\n"), N_(
"Print the directories that were themselves changed (property edits)\n"
- "or whose file children were changed.\n"),
+ "or whose file children were changed.\n"
+ )},
{'r', 't'} },
- {"filesize", subcommand_filesize, {0},
- N_("usage: svnlook filesize REPOS_PATH PATH_IN_REPOS\n\n"
+ {"filesize", subcommand_filesize, {0}, {N_(
+ "usage: svnlook filesize REPOS_PATH PATH_IN_REPOS\n"
+ "\n"), N_(
"Print the size (in bytes) of the file located at PATH_IN_REPOS as\n"
- "it is represented in the repository.\n"),
+ "it is represented in the repository.\n"
+ )},
{'r', 't'} },
- {"help", subcommand_help, {"?", "h"},
- N_("usage: svnlook help [SUBCOMMAND...]\n\n"
- "Describe the usage of this program or its subcommands.\n"),
+ {"help", subcommand_help, {"?", "h"}, {N_(
+ "usage: svnlook help [SUBCOMMAND...]\n"
+ "\n"), N_(
+ "Describe the usage of this program or its subcommands.\n"
+ )},
{0} },
- {"history", subcommand_history, {0},
- N_("usage: svnlook history REPOS_PATH [PATH_IN_REPOS]\n\n"
+ {"history", subcommand_history, {0}, {N_(
+ "usage: svnlook history REPOS_PATH [PATH_IN_REPOS]\n"
+ "\n"), N_(
"Print information about the history of a path in the repository (or\n"
- "the root directory if no path is supplied).\n"),
+ "the root directory if no path is supplied).\n"
+ )},
{'r', svnlook__show_ids, 'l'} },
- {"info", subcommand_info, {0},
- N_("usage: svnlook info REPOS_PATH\n\n"
- "Print the author, datestamp, log message size, and log message.\n"),
+ {"info", subcommand_info, {0}, {N_(
+ "usage: svnlook info REPOS_PATH\n"
+ "\n"), N_(
+ "Print the author, datestamp, log message size, and log message.\n"
+ )},
{'r', 't'} },
- {"lock", subcommand_lock, {0},
- N_("usage: svnlook lock REPOS_PATH PATH_IN_REPOS\n\n"
- "If a lock exists on a path in the repository, describe it.\n"),
+ {"lock", subcommand_lock, {0}, {N_(
+ "usage: svnlook lock REPOS_PATH PATH_IN_REPOS\n"
+ "\n"), N_(
+ "If a lock exists on a path in the repository, describe it.\n"
+ )},
{0} },
- {"log", subcommand_log, {0},
- N_("usage: svnlook log REPOS_PATH\n\n"
- "Print the log message.\n"),
+ {"log", subcommand_log, {0}, {N_(
+ "usage: svnlook log REPOS_PATH\n"
+ "\n"), N_(
+ "Print the log message.\n"
+ )},
{'r', 't'} },
- {"propget", subcommand_pget, {"pget", "pg"},
- N_("usage: 1. svnlook propget REPOS_PATH PROPNAME PATH_IN_REPOS\n"
+ {"propget", subcommand_pget, {"pget", "pg"}, {N_(
+ "usage: 1. svnlook propget REPOS_PATH PROPNAME PATH_IN_REPOS\n"
" "
/* The line above is actually needed, so do NOT delete it! */
- " 2. svnlook propget --revprop REPOS_PATH PROPNAME\n\n"
+ " 2. svnlook propget --revprop REPOS_PATH PROPNAME\n"
+ "\n"), N_(
"Print the raw value of a property on a path in the repository.\n"
- "With --revprop, print the raw value of a revision property.\n"),
+ "With --revprop, print the raw value of a revision property.\n"
+ )},
{'r', 't', 'v', svnlook__revprop_opt, svnlook__show_inherited_props} },
- {"proplist", subcommand_plist, {"plist", "pl"},
- N_("usage: 1. svnlook proplist REPOS_PATH PATH_IN_REPOS\n"
+ {"proplist", subcommand_plist, {"plist", "pl"}, {N_(
+ "usage: 1. svnlook proplist REPOS_PATH PATH_IN_REPOS\n"
" "
/* The line above is actually needed, so do NOT delete it! */
- " 2. svnlook proplist --revprop REPOS_PATH\n\n"
+ " 2. svnlook proplist --revprop REPOS_PATH\n"
+ "\n"), N_(
"List the properties of a path in the repository, or\n"
"with the --revprop option, revision properties.\n"
- "With -v, show the property values too.\n"),
+ "With -v, show the property values too.\n"
+ )},
{'r', 't', 'v', svnlook__revprop_opt, svnlook__xml_opt,
svnlook__show_inherited_props} },
- {"tree", subcommand_tree, {0},
- N_("usage: svnlook tree REPOS_PATH [PATH_IN_REPOS]\n\n"
+ {"tree", subcommand_tree, {0}, {N_(
+ "usage: svnlook tree REPOS_PATH [PATH_IN_REPOS]\n"
+ "\n"), N_(
"Print the tree, starting at PATH_IN_REPOS (if supplied, at the root\n"
- "of the tree otherwise), optionally showing node revision ids.\n"),
+ "of the tree otherwise), optionally showing node revision ids.\n"
+ )},
{'r', 't', 'N', svnlook__show_ids, svnlook__full_paths, 'M'} },
- {"uuid", subcommand_uuid, {0},
- N_("usage: svnlook uuid REPOS_PATH\n\n"
- "Print the repository's UUID.\n"),
+ {"uuid", subcommand_uuid, {0}, {N_(
+ "usage: svnlook uuid REPOS_PATH\n"
+ "\n"), N_(
+ "Print the repository's UUID.\n"
+ )},
{0} },
- {"youngest", subcommand_youngest, {0},
- N_("usage: svnlook youngest REPOS_PATH\n\n"
- "Print the youngest revision number.\n"),
+ {"youngest", subcommand_youngest, {0}, {N_(
+ "usage: svnlook youngest REPOS_PATH\n"
+ "\n"), N_(
+ "Print the youngest revision number.\n"
+ )},
{svnlook__no_newline} },
- { NULL, NULL, {0}, NULL, {0} }
+ { NULL, NULL, {0}, {NULL}, {0} }
};
@@ -2222,7 +2256,7 @@ subcommand_help(apr_getopt_t *os, void *baton, apr_pool_t *pool)
version_footer = svn_stringbuf_create(fs_desc_start, pool);
SVN_ERR(svn_fs_print_modules(version_footer, pool));
- SVN_ERR(svn_opt_print_help4(os, "svnlook",
+ SVN_ERR(svn_opt_print_help5(os, "svnlook",
opt_state ? opt_state->version : FALSE,
opt_state ? opt_state->quiet : FALSE,
opt_state ? opt_state->verbose : FALSE,
@@ -2437,7 +2471,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
svn_error_t *err;
apr_status_t apr_err;
- const svn_opt_subcommand_desc2_t *subcommand = NULL;
+ const svn_opt_subcommand_desc3_t *subcommand = NULL;
struct svnlook_opt_state opt_state;
apr_getopt_t *os;
int opt_id;
@@ -2634,7 +2668,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
just typos/mistakes. Whatever the case, the subcommand to
actually run is subcommand_help(). */
if (opt_state.help)
- subcommand = svn_opt_get_canonical_subcommand2(cmd_table, "help");
+ subcommand = svn_opt_get_canonical_subcommand3(cmd_table, "help");
/* If we're not running the `help' subcommand, then look for a
subcommand in the first argument. */
@@ -2645,8 +2679,8 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
if (opt_state.version)
{
/* Use the "help" subcommand to handle the "--version" option. */
- static const svn_opt_subcommand_desc2_t pseudo_cmd =
- { "--version", subcommand_help, {0}, "",
+ static const svn_opt_subcommand_desc3_t pseudo_cmd =
+ { "--version", subcommand_help, {0}, {""},
{svnlook__version, /* must accept its own option */
'q', 'v',
} };
@@ -2669,7 +2703,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
SVN_ERR(svn_utf_cstring_to_utf8(&first_arg, os->argv[os->ind++],
pool));
- subcommand = svn_opt_get_canonical_subcommand2(cmd_table, first_arg);
+ subcommand = svn_opt_get_canonical_subcommand3(cmd_table, first_arg);
if (subcommand == NULL)
{
svn_error_clear(
@@ -2762,11 +2796,11 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
if (opt_id == 'h' || opt_id == '?')
continue;
- if (! svn_opt_subcommand_takes_option3(subcommand, opt_id, NULL))
+ if (! svn_opt_subcommand_takes_option4(subcommand, opt_id, NULL))
{
const char *optstr;
const apr_getopt_option_t *badopt =
- svn_opt_get_option_from_code2(opt_id, options_table, subcommand,
+ svn_opt_get_option_from_code3(opt_id, options_table, subcommand,
pool);
svn_opt_format_option(&optstr, badopt, FALSE, pool);
if (subcommand->name[0] == '-')
diff --git a/subversion/svnmucc/svnmucc.c b/subversion/svnmucc/svnmucc.c
index d9f893e..e6ec38a 100644
--- a/subversion/svnmucc/svnmucc.c
+++ b/subversion/svnmucc/svnmucc.c
@@ -342,7 +342,7 @@ display_version(apr_pool_t *pool)
version_footer = svn_stringbuf_create(ra_desc_start, pool);
SVN_ERR(svn_ra_print_modules(version_footer, pool));
- SVN_ERR(svn_opt_print_help4(NULL, "svnmucc", TRUE, FALSE, FALSE,
+ SVN_ERR(svn_opt_print_help5(NULL, "svnmucc", TRUE, FALSE, FALSE,
version_footer->data,
NULL, NULL, NULL, NULL, NULL, pool));
diff --git a/subversion/svnrdump/dump_editor.c b/subversion/svnrdump/dump_editor.c
index f900e20..ef52b41 100644
--- a/subversion/svnrdump/dump_editor.c
+++ b/subversion/svnrdump/dump_editor.c
@@ -22,951 +22,28 @@
* ====================================================================
*/
-#include "svn_hash.h"
-#include "svn_pools.h"
-#include "svn_repos.h"
-#include "svn_path.h"
+#include "svn_types.h"
#include "svn_props.h"
-#include "svn_subst.h"
-#include "svn_dirent_uri.h"
+#include "svn_ra.h"
+#include "svn_io.h"
+#include "svn_delta.h"
#include "private/svn_repos_private.h"
-#include "private/svn_subr_private.h"
-#include "private/svn_dep_compat.h"
#include "private/svn_editor.h"
#include "svnrdump.h"
#include <assert.h>
-#define ARE_VALID_COPY_ARGS(p,r) ((p) && SVN_IS_VALID_REVNUM(r))
-
-
-/* A directory baton used by all directory-related callback functions
- * in the dump editor. */
-struct dir_baton
-{
- struct dump_edit_baton *eb;
-
- /* Pool for per-directory allocations */
- apr_pool_t *pool;
-
- /* the path to this directory */
- const char *repos_relpath; /* a relpath */
-
- /* Copyfrom info for the node, if any. */
- const char *copyfrom_path; /* a relpath */
- svn_revnum_t copyfrom_rev;
-
- /* Headers accumulated so far for this directory */
- svn_repos__dumpfile_headers_t *headers;
-
- /* Properties which were modified during change_dir_prop. */
- apr_hash_t *props;
-
- /* Properties which were deleted during change_dir_prop. */
- apr_hash_t *deleted_props;
-
- /* Hash of paths that need to be deleted, though some -might- be
- replaced. Maps const char * paths to this dir_baton. Note that
- they're full paths, because that's what the editor driver gives
- us, although they're all really within this directory. */
- apr_hash_t *deleted_entries;
-
- /* Flag to trigger dumping props. */
- svn_boolean_t dump_props;
-};
-
-/* A file baton used by all file-related callback functions in the dump
- * editor */
-struct file_baton
-{
- struct dump_edit_baton *eb;
-
- /* Pool for per-file allocations */
- apr_pool_t *pool;
-
- /* the path to this file */
- const char *repos_relpath; /* a relpath */
-
- /* Properties which were modified during change_file_prop. */
- apr_hash_t *props;
-
- /* Properties which were deleted during change_file_prop. */
- apr_hash_t *deleted_props;
-
- /* The checksum of the file the delta is being applied to */
- const char *base_checksum;
-
- /* Copy state and source information (if any). */
- svn_boolean_t is_copy;
- const char *copyfrom_path;
- svn_revnum_t copyfrom_rev;
-
- /* The action associate with this node. */
- enum svn_node_action action;
-
- /* Flags to trigger dumping props and text. */
- svn_boolean_t dump_text;
- svn_boolean_t dump_props;
-};
/* The baton used by the dump editor. */
struct dump_edit_baton {
- /* The output stream we write the dumpfile to */
- svn_stream_t *stream;
-
/* A backdoor ra session to fetch additional information during the edit. */
svn_ra_session_t *ra_session;
- /* The repository relpath of the anchor of the editor when driven
- via the RA update mechanism; NULL otherwise. (When the editor is
- driven via the RA "replay" mechanism instead, the editor is
- always anchored at the repository, we don't need to prepend an
- anchor path to the dumped node paths, and open_root() doesn't
- need to manufacture directory additions.) */
- const char *update_anchor_relpath;
-
- /* Pool for per-revision allocations */
- apr_pool_t *pool;
-
- /* Temporary file used for textdelta application along with its
- absolute path; these two variables should be allocated in the
- per-edit-session pool */
- const char *delta_abspath;
- apr_file_t *delta_file;
-
/* The revision we're currently dumping. */
svn_revnum_t current_revision;
-
- /* The baton of the directory node whose block of
- dump stream data has not been fully completed; NULL if there's no
- such item. */
- struct dir_baton *pending_db;
};
-/* Make a directory baton to represent the directory at PATH (relative
- * to the EDIT_BATON).
- *
- * COPYFROM_PATH/COPYFROM_REV are the path/revision against which this
- * directory should be compared for changes. If the copyfrom
- * information is valid, the directory will be compared against its
- * copy source.
- *
- * PB is the directory baton of this directory's parent, or NULL if
- * this is the top-level directory of the edit.
- *
- * Perform all allocations in POOL. */
-static struct dir_baton *
-make_dir_baton(const char *path,
- const char *copyfrom_path,
- svn_revnum_t copyfrom_rev,
- void *edit_baton,
- struct dir_baton *pb,
- apr_pool_t *pool)
-{
- struct dump_edit_baton *eb = edit_baton;
- struct dir_baton *new_db = apr_pcalloc(pool, sizeof(*new_db));
- const char *repos_relpath;
-
- /* Construct the full path of this node. */
- if (pb)
- repos_relpath = svn_relpath_canonicalize(path, pool);
- else
- repos_relpath = "";
-
- /* Strip leading slash from copyfrom_path so that the path is
- canonical and svn_relpath_join can be used */
- if (copyfrom_path)
- copyfrom_path = svn_relpath_canonicalize(copyfrom_path, pool);
-
- new_db->eb = eb;
- new_db->pool = pool;
- new_db->repos_relpath = repos_relpath;
- new_db->copyfrom_path = copyfrom_path
- ? svn_relpath_canonicalize(copyfrom_path, pool)
- : NULL;
- new_db->copyfrom_rev = copyfrom_rev;
- new_db->headers = NULL;
- new_db->props = apr_hash_make(pool);
- new_db->deleted_props = apr_hash_make(pool);
- new_db->deleted_entries = apr_hash_make(pool);
-
- return new_db;
-}
-
-/* Make a file baton to represent the directory at PATH (relative to
- * PB->eb). PB is the directory baton of this directory's parent, or
- * NULL if this is the top-level directory of the edit. Perform all
- * allocations in POOL. */
-static struct file_baton *
-make_file_baton(const char *path,
- struct dir_baton *pb,
- apr_pool_t *pool)
-{
- struct file_baton *new_fb = apr_pcalloc(pool, sizeof(*new_fb));
-
- new_fb->eb = pb->eb;
- new_fb->pool = pool;
- new_fb->repos_relpath = svn_relpath_canonicalize(path, pool);
- new_fb->props = apr_hash_make(pool);
- new_fb->deleted_props = apr_hash_make(pool);
- new_fb->is_copy = FALSE;
- new_fb->copyfrom_path = NULL;
- new_fb->copyfrom_rev = SVN_INVALID_REVNUM;
- new_fb->action = svn_node_action_change;
-
- return new_fb;
-}
-
-/* Append to HEADERS the required headers, and set *CONTENT to the property
- * content section, to represent the property delta of PROPS/DELETED_PROPS.
- */
-static svn_error_t *
-get_props_content(svn_repos__dumpfile_headers_t *headers,
- svn_stringbuf_t **content,
- apr_hash_t *props,
- apr_hash_t *deleted_props,
- apr_pool_t *result_pool,
- apr_pool_t *scratch_pool)
-{
- svn_stream_t *content_stream;
- apr_hash_t *normal_props;
-
- *content = svn_stringbuf_create_empty(result_pool);
-
- content_stream = svn_stream_from_stringbuf(*content, scratch_pool);
-
- SVN_ERR(svn_rdump__normalize_props(&normal_props, props, scratch_pool));
- SVN_ERR(svn_hash_write_incremental(normal_props, deleted_props,
- content_stream, "PROPS-END",
- scratch_pool));
- SVN_ERR(svn_stream_close(content_stream));
-
- /* Prop-delta: true */
- svn_repos__dumpfile_header_push(
- headers, SVN_REPOS_DUMPFILE_PROP_DELTA, "true");
-
- return SVN_NO_ERROR;
-}
-
-/* A special case of dump_node(), for a delete record.
- *
- * The only thing special about this version is it only writes one blank
- * line, not two, after the headers. Why? Historical precedent for the
- * case where a delete record is used as part of a (delete + add-with-history)
- * in implementing a replacement.
- */
-static svn_error_t *
-dump_node_delete(svn_stream_t *stream,
- const char *node_relpath,
- apr_pool_t *pool)
-{
- svn_repos__dumpfile_headers_t *headers
- = svn_repos__dumpfile_headers_create(pool);
-
- assert(svn_relpath_is_canonical(node_relpath));
-
- /* Node-path: ... */
- svn_repos__dumpfile_header_push(
- headers, SVN_REPOS_DUMPFILE_NODE_PATH, node_relpath);
-
- /* Node-action: delete */
- svn_repos__dumpfile_header_push(
- headers, SVN_REPOS_DUMPFILE_NODE_ACTION, "delete");
-
- SVN_ERR(svn_repos__dump_node_record(stream, headers,
- NULL, FALSE, 0, /* props & text */
- FALSE /*content_length_always*/, pool));
- return SVN_NO_ERROR;
-}
-
-/* Set *HEADERS_P to contain some headers for the node at PATH of type KIND.
- *
- * ACTION describes what is happening to the node (see enum
- * svn_node_action).
- *
- * If the node was itself copied, IS_COPY is TRUE and the
- * path/revision of the copy source are in COPYFROM_PATH/COPYFROM_REV.
- * If IS_COPY is FALSE, yet COPYFROM_PATH/COPYFROM_REV are valid, this
- * node is part of a copied subtree.
- *
- * Iff ACTION is svn_node_action_replace and IS_COPY, then first write a
- * complete deletion record to the dump stream.
- *
- * If ACTION is svn_node_action_delete, then the node record will be
- * complete. (The caller may want to write two blank lines after the
- * header block.)
- */
-static svn_error_t *
-dump_node(svn_repos__dumpfile_headers_t **headers_p,
- struct dump_edit_baton *eb,
- const char *repos_relpath,
- struct dir_baton *db,
- struct file_baton *fb,
- enum svn_node_action action,
- svn_boolean_t is_copy,
- const char *copyfrom_path,
- svn_revnum_t copyfrom_rev,
- apr_pool_t *pool)
-{
- const char *node_relpath = repos_relpath;
- svn_repos__dumpfile_headers_t *headers
- = svn_repos__dumpfile_headers_create(pool);
-
- assert(svn_relpath_is_canonical(repos_relpath));
- assert(!copyfrom_path || svn_relpath_is_canonical(copyfrom_path));
- assert(! (db && fb));
-
- /* Add the edit root relpath prefix if necessary. */
- if (eb->update_anchor_relpath)
- node_relpath = svn_relpath_join(eb->update_anchor_relpath,
- node_relpath, pool);
-
- /* Node-path: ... */
- svn_repos__dumpfile_header_push(
- headers, SVN_REPOS_DUMPFILE_NODE_PATH, node_relpath);
-
- /* Node-kind: "file" | "dir" */
- if (fb)
- svn_repos__dumpfile_header_push(
- headers, SVN_REPOS_DUMPFILE_NODE_KIND, "file");
- else if (db)
- svn_repos__dumpfile_header_push(
- headers, SVN_REPOS_DUMPFILE_NODE_KIND, "dir");
-
-
- /* Write the appropriate Node-action header */
- switch (action)
- {
- case svn_node_action_change:
- /* We are here after a change_file_prop or change_dir_prop. They
- set up whatever dump_props they needed to- nothing to
- do here but print node action information.
-
- Node-action: change. */
- svn_repos__dumpfile_header_push(
- headers, SVN_REPOS_DUMPFILE_NODE_ACTION, "change");
- break;
-
- case svn_node_action_delete:
- /* Node-action: delete */
- svn_repos__dumpfile_header_push(
- headers, SVN_REPOS_DUMPFILE_NODE_ACTION, "delete");
- break;
-
- case svn_node_action_replace:
- if (! is_copy)
- {
- /* Node-action: replace */
- svn_repos__dumpfile_header_push(
- headers, SVN_REPOS_DUMPFILE_NODE_ACTION, "replace");
-
- /* Wait for a change_*_prop to be called before dumping
- anything */
- if (fb)
- fb->dump_props = TRUE;
- else if (db)
- db->dump_props = TRUE;
- break;
- }
- else
- {
- /* More complex case: is_copy is true, and copyfrom_path/
- copyfrom_rev are present: delete the original, and then re-add
- it */
- /* ### Why not write a 'replace' record? Don't know. */
-
- /* ### Unusually, we end this 'delete' node record with only a single
- blank line after the header block -- no extra blank line. */
- SVN_ERR(dump_node_delete(eb->stream, repos_relpath, pool));
-
- /* The remaining action is a non-replacing add-with-history */
- /* action = svn_node_action_add; */
- }
- /* FALL THROUGH to 'add' */
-
- case svn_node_action_add:
- /* Node-action: add */
- svn_repos__dumpfile_header_push(
- headers, SVN_REPOS_DUMPFILE_NODE_ACTION, "add");
-
- if (is_copy)
- {
- /* Node-copyfrom-rev / Node-copyfrom-path */
- svn_repos__dumpfile_header_pushf(
- headers, SVN_REPOS_DUMPFILE_NODE_COPYFROM_REV, "%ld", copyfrom_rev);
- svn_repos__dumpfile_header_push(
- headers, SVN_REPOS_DUMPFILE_NODE_COPYFROM_PATH, copyfrom_path);
- }
- else
- {
- /* fb->dump_props (for files) is handled in close_file()
- which is called immediately.
-
- However, directories are not closed until all the work
- inside them has been done; db->dump_props (for directories)
- is handled (via dump_pending()) in all the functions that
- can possibly be called after add_directory():
-
- - add_directory()
- - open_directory()
- - delete_entry()
- - close_directory()
- - add_file()
- - open_file()
-
- change_dir_prop() is a special case. */
- if (fb)
- fb->dump_props = TRUE;
- else if (db)
- db->dump_props = TRUE;
- }
-
- break;
- }
-
- /* Return the headers so far. We don't necessarily have all the headers
- yet -- there may be property-related and content length headers to
- come, if this was not a 'delete' record. */
- *headers_p = headers;
- return SVN_NO_ERROR;
-}
-
-static svn_error_t *
-dump_mkdir(struct dump_edit_baton *eb,
- const char *repos_relpath,
- apr_pool_t *pool)
-{
- svn_stringbuf_t *prop_content;
- svn_repos__dumpfile_headers_t *headers
- = svn_repos__dumpfile_headers_create(pool);
-
- /* Node-path: ... */
- svn_repos__dumpfile_header_push(
- headers, SVN_REPOS_DUMPFILE_NODE_PATH, repos_relpath);
-
- /* Node-kind: dir */
- svn_repos__dumpfile_header_push(
- headers, SVN_REPOS_DUMPFILE_NODE_KIND, "dir");
-
- /* Node-action: add */
- svn_repos__dumpfile_header_push(
- headers, SVN_REPOS_DUMPFILE_NODE_ACTION, "add");
-
- /* Dump the (empty) property block. */
- SVN_ERR(get_props_content(headers, &prop_content,
- apr_hash_make(pool), apr_hash_make(pool),
- pool, pool));
- SVN_ERR(svn_repos__dump_node_record(eb->stream, headers, prop_content,
- FALSE, 0, FALSE /*content_length_always*/,
- pool));
-
- /* Newlines to tie it all off. */
- SVN_ERR(svn_stream_puts(eb->stream, "\n\n"));
-
- return SVN_NO_ERROR;
-}
-
-/* Dump pending headers and properties for the directory EB->pending_db (if
- * not null), to allow starting the dump of a child node */
-static svn_error_t *
-dump_pending_dir(struct dump_edit_baton *eb,
- apr_pool_t *scratch_pool)
-{
- struct dir_baton *db = eb->pending_db;
- svn_stringbuf_t *prop_content = NULL;
-
- if (! db)
- return SVN_NO_ERROR;
-
- /* Some pending properties to dump? */
- if (db->dump_props)
- {
- SVN_ERR(get_props_content(db->headers, &prop_content,
- db->props, db->deleted_props,
- scratch_pool, scratch_pool));
- }
- SVN_ERR(svn_repos__dump_node_record(eb->stream, db->headers, prop_content,
- FALSE, 0, FALSE /*content_length_always*/,
- scratch_pool));
-
- /* No text is going to be dumped. Write a couple of newlines and
- wait for the next node/ revision. */
- SVN_ERR(svn_stream_puts(eb->stream, "\n\n"));
-
- if (db->dump_props)
- {
- /* Cleanup so that data is never dumped twice. */
- apr_hash_clear(db->props);
- apr_hash_clear(db->deleted_props);
- db->dump_props = FALSE;
- }
-
- /* Anything that was pending is pending no longer. */
- eb->pending_db = NULL;
-
- return SVN_NO_ERROR;
-}
-
-
-
-/*** Editor Function Implementations ***/
-
-static svn_error_t *
-open_root(void *edit_baton,
- svn_revnum_t base_revision,
- apr_pool_t *pool,
- void **root_baton)
-{
- struct dump_edit_baton *eb = edit_baton;
- struct dir_baton *new_db = NULL;
-
- /* Clear the per-revision pool after each revision */
- svn_pool_clear(eb->pool);
-
- if (eb->update_anchor_relpath)
- {
- int i;
- const char *parent_path = eb->update_anchor_relpath;
- apr_array_header_t *dirs_to_add =
- apr_array_make(pool, 4, sizeof(const char *));
- apr_pool_t *iterpool = svn_pool_create(pool);
-
- while (! svn_path_is_empty(parent_path))
- {
- APR_ARRAY_PUSH(dirs_to_add, const char *) = parent_path;
- parent_path = svn_relpath_dirname(parent_path, pool);
- }
-
- for (i = dirs_to_add->nelts; i; --i)
- {
- const char *dir_to_add =
- APR_ARRAY_IDX(dirs_to_add, i - 1, const char *);
-
- svn_pool_clear(iterpool);
-
- /* For parents of the source directory, we just manufacture
- the adds ourselves. */
- if (i > 1)
- {
- SVN_ERR(dump_mkdir(eb, dir_to_add, iterpool));
- }
- else
- {
- /* ... but for the source directory itself, we'll defer
- to letting the typical plumbing handle this task. */
- new_db = make_dir_baton(NULL, NULL, SVN_INVALID_REVNUM,
- edit_baton, NULL, pool);
- SVN_ERR(dump_node(&new_db->headers,
- eb, new_db->repos_relpath, new_db,
- NULL, svn_node_action_add, FALSE,
- NULL, SVN_INVALID_REVNUM, pool));
-
- /* Remember that we've started but not yet finished
- handling this directory. */
- eb->pending_db = new_db;
- }
- }
- svn_pool_destroy(iterpool);
- }
-
- if (! new_db)
- {
- new_db = make_dir_baton(NULL, NULL, SVN_INVALID_REVNUM,
- edit_baton, NULL, pool);
- }
-
- *root_baton = new_db;
- return SVN_NO_ERROR;
-}
-
-static svn_error_t *
-delete_entry(const char *path,
- svn_revnum_t revision,
- void *parent_baton,
- apr_pool_t *pool)
-{
- struct dir_baton *pb = parent_baton;
-
- SVN_ERR(dump_pending_dir(pb->eb, pool));
-
- /* We don't dump this deletion immediate. Rather, we add this path
- to the deleted_entries of the parent directory baton. That way,
- we can tell (later) an addition from a replacement. All the real
- deletions get handled in close_directory(). */
- svn_hash_sets(pb->deleted_entries, apr_pstrdup(pb->pool, path), pb);
-
- return SVN_NO_ERROR;
-}
-
-static svn_error_t *
-add_directory(const char *path,
- void *parent_baton,
- const char *copyfrom_path,
- svn_revnum_t copyfrom_rev,
- apr_pool_t *pool,
- void **child_baton)
-{
- struct dir_baton *pb = parent_baton;
- void *was_deleted;
- struct dir_baton *new_db;
- svn_boolean_t is_copy;
-
- SVN_ERR(dump_pending_dir(pb->eb, pool));
-
- new_db = make_dir_baton(path, copyfrom_path, copyfrom_rev, pb->eb,
- pb, pb->pool);
-
- /* This might be a replacement -- is the path already deleted? */
- was_deleted = svn_hash_gets(pb->deleted_entries, path);
-
- /* Detect an add-with-history */
- is_copy = ARE_VALID_COPY_ARGS(copyfrom_path, copyfrom_rev);
-
- /* Dump the node */
- SVN_ERR(dump_node(&new_db->headers,
- pb->eb, new_db->repos_relpath, new_db, NULL,
- was_deleted ? svn_node_action_replace : svn_node_action_add,
- is_copy,
- is_copy ? new_db->copyfrom_path : NULL,
- is_copy ? copyfrom_rev : SVN_INVALID_REVNUM,
- pool));
-
- if (was_deleted)
- /* Delete the path, it's now been dumped */
- svn_hash_sets(pb->deleted_entries, path, NULL);
-
- /* Remember that we've started, but not yet finished handling this
- directory. */
- pb->eb->pending_db = new_db;
-
- *child_baton = new_db;
- return SVN_NO_ERROR;
-}
-
-static svn_error_t *
-open_directory(const char *path,
- void *parent_baton,
- svn_revnum_t base_revision,
- apr_pool_t *pool,
- void **child_baton)
-{
- struct dir_baton *pb = parent_baton;
- struct dir_baton *new_db;
- const char *copyfrom_path = NULL;
- svn_revnum_t copyfrom_rev = SVN_INVALID_REVNUM;
-
- SVN_ERR(dump_pending_dir(pb->eb, pool));
-
- /* If the parent directory has explicit comparison path and rev,
- record the same for this one. */
- if (ARE_VALID_COPY_ARGS(pb->copyfrom_path, pb->copyfrom_rev))
- {
- copyfrom_path = svn_relpath_join(pb->copyfrom_path,
- svn_relpath_basename(path, NULL),
- pb->pool);
- copyfrom_rev = pb->copyfrom_rev;
- }
-
- new_db = make_dir_baton(path, copyfrom_path, copyfrom_rev, pb->eb, pb,
- pb->pool);
-
- *child_baton = new_db;
- return SVN_NO_ERROR;
-}
-
-static svn_error_t *
-close_directory(void *dir_baton,
- apr_pool_t *pool)
-{
- struct dir_baton *db = dir_baton;
- apr_hash_index_t *hi;
- svn_boolean_t this_pending;
-
- /* Remember if this directory is the one currently pending. */
- this_pending = (db->eb->pending_db == db);
-
- SVN_ERR(dump_pending_dir(db->eb, pool));
-
- /* If this directory was pending, then dump_pending() should have
- taken care of all the props and such. Of course, the only way
- that would be the case is if this directory was added/replaced.
-
- Otherwise, if stuff for this directory has already been written
- out (at some point in the past, prior to our handling other
- nodes), we might need to generate a second "change" record just
- to carry the information we've since learned about the
- directory. */
- if ((! this_pending) && (db->dump_props))
- {
- SVN_ERR(dump_node(&db->headers,
- db->eb, db->repos_relpath, db, NULL,
- svn_node_action_change, FALSE,
- NULL, SVN_INVALID_REVNUM, pool));
- db->eb->pending_db = db;
- SVN_ERR(dump_pending_dir(db->eb, pool));
- }
-
- /* Dump the deleted directory entries */
- for (hi = apr_hash_first(pool, db->deleted_entries); hi;
- hi = apr_hash_next(hi))
- {
- const char *path = apr_hash_this_key(hi);
-
- SVN_ERR(dump_node_delete(db->eb->stream, path, pool));
- /* This deletion record is complete -- write an extra newline */
- SVN_ERR(svn_stream_puts(db->eb->stream, "\n"));
- }
-
- /* ### should be unnecessary */
- apr_hash_clear(db->deleted_entries);
-
- return SVN_NO_ERROR;
-}
-
-static svn_error_t *
-add_file(const char *path,
- void *parent_baton,
- const char *copyfrom_path,
- svn_revnum_t copyfrom_rev,
- apr_pool_t *pool,
- void **file_baton)
-{
- struct dir_baton *pb = parent_baton;
- struct file_baton *fb;
- void *was_deleted;
-
- SVN_ERR(dump_pending_dir(pb->eb, pool));
-
- /* Make the file baton. */
- fb = make_file_baton(path, pb, pool);
-
- /* This might be a replacement -- is the path already deleted? */
- was_deleted = svn_hash_gets(pb->deleted_entries, path);
-
- /* Detect add-with-history. */
- if (ARE_VALID_COPY_ARGS(copyfrom_path, copyfrom_rev))
- {
- fb->copyfrom_path = svn_relpath_canonicalize(copyfrom_path, fb->pool);
- fb->copyfrom_rev = copyfrom_rev;
- fb->is_copy = TRUE;
- }
- fb->action = was_deleted ? svn_node_action_replace : svn_node_action_add;
-
- /* Delete the path, it's now been dumped. */
- if (was_deleted)
- svn_hash_sets(pb->deleted_entries, path, NULL);
-
- *file_baton = fb;
- return SVN_NO_ERROR;
-}
-
-static svn_error_t *
-open_file(const char *path,
- void *parent_baton,
- svn_revnum_t ancestor_revision,
- apr_pool_t *pool,
- void **file_baton)
-{
- struct dir_baton *pb = parent_baton;
- struct file_baton *fb;
-
- SVN_ERR(dump_pending_dir(pb->eb, pool));
-
- /* Make the file baton. */
- fb = make_file_baton(path, pb, pool);
-
- /* If the parent directory has explicit copyfrom path and rev,
- record the same for this one. */
- if (ARE_VALID_COPY_ARGS(pb->copyfrom_path, pb->copyfrom_rev))
- {
- fb->copyfrom_path = svn_relpath_join(pb->copyfrom_path,
- svn_relpath_basename(path, NULL),
- pb->pool);
- fb->copyfrom_rev = pb->copyfrom_rev;
- }
-
- *file_baton = fb;
- return SVN_NO_ERROR;
-}
-
-static svn_error_t *
-change_dir_prop(void *parent_baton,
- const char *name,
- const svn_string_t *value,
- apr_pool_t *pool)
-{
- struct dir_baton *db = parent_baton;
- svn_boolean_t this_pending;
-
- /* This directory is not pending, but something else is, so handle
- the "something else". */
- this_pending = (db->eb->pending_db == db);
- if (! this_pending)
- SVN_ERR(dump_pending_dir(db->eb, pool));
-
- if (svn_property_kind2(name) != svn_prop_regular_kind)
- return SVN_NO_ERROR;
-
- if (value)
- svn_hash_sets(db->props,
- apr_pstrdup(db->pool, name),
- svn_string_dup(value, db->pool));
- else
- svn_hash_sets(db->deleted_props, apr_pstrdup(db->pool, name), "");
-
- /* Make sure we eventually output the props */
- db->dump_props = TRUE;
-
- return SVN_NO_ERROR;
-}
-
-static svn_error_t *
-change_file_prop(void *file_baton,
- const char *name,
- const svn_string_t *value,
- apr_pool_t *pool)
-{
- struct file_baton *fb = file_baton;
-
- if (svn_property_kind2(name) != svn_prop_regular_kind)
- return SVN_NO_ERROR;
-
- if (value)
- svn_hash_sets(fb->props,
- apr_pstrdup(fb->pool, name),
- svn_string_dup(value, fb->pool));
- else
- svn_hash_sets(fb->deleted_props, apr_pstrdup(fb->pool, name), "");
-
- /* Dump the property headers and wait; close_file might need
- to write text headers too depending on whether
- apply_textdelta is called */
- fb->dump_props = TRUE;
-
- return SVN_NO_ERROR;
-}
-
-static svn_error_t *
-apply_textdelta(void *file_baton, const char *base_checksum,
- apr_pool_t *pool,
- svn_txdelta_window_handler_t *handler,
- void **handler_baton)
-{
- struct file_baton *fb = file_baton;
- struct dump_edit_baton *eb = fb->eb;
- svn_stream_t *delta_filestream;
-
- /* Use a temporary file to measure the Text-content-length */
- delta_filestream = svn_stream_from_aprfile2(eb->delta_file, TRUE, pool);
-
- /* Prepare to write the delta to the delta_filestream */
- svn_txdelta_to_svndiff3(handler, handler_baton,
- delta_filestream, 0,
- SVN_DELTA_COMPRESSION_LEVEL_DEFAULT, pool);
-
- /* Record that there's text to be dumped, and its base checksum. */
- fb->dump_text = TRUE;
- fb->base_checksum = apr_pstrdup(fb->pool, base_checksum);
-
- return SVN_NO_ERROR;
-}
-
-static svn_error_t *
-close_file(void *file_baton,
- const char *text_checksum,
- apr_pool_t *pool)
-{
- struct file_baton *fb = file_baton;
- struct dump_edit_baton *eb = fb->eb;
- svn_filesize_t text_content_length = 0;
- svn_stringbuf_t *propstring = NULL;
- svn_repos__dumpfile_headers_t *headers;
-
- SVN_ERR(dump_pending_dir(eb, pool));
-
- /* Start dumping this node, by collecting some basic headers for it. */
- SVN_ERR(dump_node(&headers, eb, fb->repos_relpath, NULL, fb,
- fb->action, fb->is_copy, fb->copyfrom_path,
- fb->copyfrom_rev, pool));
-
- /* Some pending properties to dump? We'll dump just the headers for
- now, then dump the actual propchange content only after dumping
- the text headers too (if present). */
- if (fb->dump_props)
- {
- SVN_ERR(get_props_content(headers, &propstring,
- fb->props, fb->deleted_props,
- pool, pool));
- }
-
- /* Dump the text headers */
- if (fb->dump_text)
- {
- /* Text-delta: true */
- svn_repos__dumpfile_header_push(
- headers, SVN_REPOS_DUMPFILE_TEXT_DELTA, "true");
-
- SVN_ERR(svn_io_file_size_get(&text_content_length, eb->delta_file,
- pool));
-
- if (fb->base_checksum)
- /* Text-delta-base-md5: */
- svn_repos__dumpfile_header_push(
- headers, SVN_REPOS_DUMPFILE_TEXT_DELTA_BASE_MD5, fb->base_checksum);
-
- /* Text-content-md5: 82705804337e04dcd0e586bfa2389a7f */
- svn_repos__dumpfile_header_push(
- headers, SVN_REPOS_DUMPFILE_TEXT_CONTENT_MD5, text_checksum);
- }
-
- /* Dump the headers and props now */
- SVN_ERR(svn_repos__dump_node_record(eb->stream, headers, propstring,
- fb->dump_text, text_content_length,
- FALSE /*content_length_always*/,
- pool));
-
- if (fb->dump_props)
- {
- /* Cleanup */
- fb->dump_props = FALSE;
- apr_hash_clear(fb->props);
- apr_hash_clear(fb->deleted_props);
- }
-
- /* Dump the text */
- if (fb->dump_text)
- {
- /* Seek to the beginning of the delta file, map it to a stream,
- and copy the stream to eb->stream. Then close the stream and
- truncate the file so we can reuse it for the next textdelta
- application. Note that the file isn't created, opened or
- closed here */
- svn_stream_t *delta_filestream;
- apr_off_t offset = 0;
-
- SVN_ERR(svn_io_file_seek(eb->delta_file, APR_SET, &offset, pool));
- delta_filestream = svn_stream_from_aprfile2(eb->delta_file, TRUE, pool);
- SVN_ERR(svn_stream_copy3(delta_filestream, eb->stream, NULL, NULL, pool));
-
- /* Cleanup */
- SVN_ERR(svn_stream_close(delta_filestream));
- SVN_ERR(svn_io_file_trunc(eb->delta_file, 0, pool));
- }
-
- /* Write a couple of blank lines for matching output with `svnadmin
- dump` */
- SVN_ERR(svn_stream_puts(eb->stream, "\n\n"));
-
- return SVN_NO_ERROR;
-}
-
-static svn_error_t *
-close_edit(void *edit_baton, apr_pool_t *pool)
-{
- return SVN_NO_ERROR;
-}
-
static svn_error_t *
fetch_base_func(const char **filename,
void *baton,
@@ -1085,47 +162,21 @@ svn_rdump__get_dump_editor(const svn_delta_editor_t **editor,
apr_pool_t *pool)
{
struct dump_edit_baton *eb;
- svn_delta_editor_t *de;
svn_delta_shim_callbacks_t *shim_callbacks =
svn_delta_shim_callbacks_default(pool);
eb = apr_pcalloc(pool, sizeof(struct dump_edit_baton));
- eb->stream = stream;
eb->ra_session = ra_session;
- eb->update_anchor_relpath = update_anchor_relpath;
eb->current_revision = revision;
- eb->pending_db = NULL;
-
- /* Create a special per-revision pool */
- eb->pool = svn_pool_create(pool);
-
- /* Open a unique temporary file for all textdelta applications in
- this edit session. The file is automatically closed and cleaned
- up when the edit session is done. */
- SVN_ERR(svn_io_open_unique_file3(&(eb->delta_file), &(eb->delta_abspath),
- NULL, svn_io_file_del_on_close, pool, pool));
-
- de = svn_delta_default_editor(pool);
- de->open_root = open_root;
- de->delete_entry = delete_entry;
- de->add_directory = add_directory;
- de->open_directory = open_directory;
- de->close_directory = close_directory;
- de->change_dir_prop = change_dir_prop;
- de->change_file_prop = change_file_prop;
- de->apply_textdelta = apply_textdelta;
- de->add_file = add_file;
- de->open_file = open_file;
- de->close_file = close_file;
- de->close_edit = close_edit;
- /* Set the edit_baton and editor. */
- *edit_baton = eb;
- *editor = de;
+ SVN_ERR(svn_repos__get_dump_editor(editor, edit_baton,
+ stream, update_anchor_relpath, pool));
/* Wrap this editor in a cancellation editor. */
SVN_ERR(svn_delta_get_cancellation_editor(cancel_func, cancel_baton,
- de, eb, editor, edit_baton, pool));
+ *editor, *edit_baton,
+ editor, edit_baton,
+ pool));
shim_callbacks->fetch_base_func = fetch_base_func;
shim_callbacks->fetch_props_func = fetch_props_func;
diff --git a/subversion/svnrdump/load_editor.c b/subversion/svnrdump/load_editor.c
index 2ebacf7..17613ca 100644
--- a/subversion/svnrdump/load_editor.c
+++ b/subversion/svnrdump/load_editor.c
@@ -72,7 +72,7 @@ struct parse_baton
/* A mapping of svn_revnum_t * dump stream revisions to their
corresponding svn_revnum_t * target repository revisions. */
- /* ### See http://subversion.tigris.org/issues/show_bug.cgi?id=3903
+ /* ### See https://issues.apache.org/jira/browse/SVN-3903
### for discussion about improving the memory costs of this mapping. */
apr_hash_t *rev_map;
diff --git a/subversion/svnrdump/svnrdump.c b/subversion/svnrdump/svnrdump.c
index 50b8a89..3c086ca 100644
--- a/subversion/svnrdump/svnrdump.c
+++ b/subversion/svnrdump/svnrdump.c
@@ -81,23 +81,29 @@ enum svn_svnrdump__longopt_t
opt_non_interactive, \
opt_force_interactive
-static const svn_opt_subcommand_desc2_t svnrdump__cmd_table[] =
+static const svn_opt_subcommand_desc3_t svnrdump__cmd_table[] =
{
- { "dump", dump_cmd, { 0 },
- N_("usage: svnrdump dump URL [-r LOWER[:UPPER]]\n\n"
+ { "dump", dump_cmd, { 0 }, {N_(
+ "usage: svnrdump dump URL [-r LOWER[:UPPER]]\n"
+ "\n"), N_(
"Dump revisions LOWER to UPPER of repository at remote URL to stdout\n"
"in a 'dumpfile' portable format. If only LOWER is given, dump that\n"
- "one revision.\n"),
+ "one revision.\n"
+ )},
{ 'r', 'q', opt_incremental, SVN_SVNRDUMP__BASE_OPTIONS } },
- { "load", load_cmd, { 0 },
- N_("usage: svnrdump load URL\n\n"
- "Load a 'dumpfile' given on stdin to a repository at remote URL.\n"),
+ { "load", load_cmd, { 0 }, {N_(
+ "usage: svnrdump load URL\n"
+ "\n"), N_(
+ "Load a 'dumpfile' given on stdin to a repository at remote URL.\n"
+ )},
{ 'q', opt_skip_revprop, SVN_SVNRDUMP__BASE_OPTIONS } },
- { "help", 0, { "?", "h" },
- N_("usage: svnrdump help [SUBCOMMAND...]\n\n"
- "Describe the usage of this program or its subcommands.\n"),
+ { "help", 0, { "?", "h" }, {N_(
+ "usage: svnrdump help [SUBCOMMAND...]\n"
+ "\n"), N_(
+ "Describe the usage of this program or its subcommands.\n"
+ )},
{ 0 } },
- { NULL, NULL, { 0 }, NULL, { 0 } }
+ { NULL, NULL, { 0 }, {NULL}, { 0 } }
};
static const apr_getopt_option_t svnrdump__options[] =
@@ -338,7 +344,7 @@ init_client_context(svn_client_ctx_t **ctx_p,
### auxiliary GETs/PROPFINDs to happening (well-ordered) on a
### single server connection.
###
- ### See http://subversion.tigris.org/issues/show_bug.cgi?id=4116.
+ ### See https://issues.apache.org/jira/browse/SVN-4116.
*/
cfg_servers = svn_hash_gets(ctx->config, SVN_CONFIG_CATEGORY_SERVERS);
svn_config_set_bool(cfg_servers, SVN_CONFIG_SECTION_GLOBAL,
@@ -423,7 +429,7 @@ dump_initial_full_revision(svn_ra_session_t *session,
our update-driven dump generation work the way a replay-driven
one would.
- See http://subversion.tigris.org/issues/show_bug.cgi?id=4101
+ See https://issues.apache.org/jira/browse/SVN-4101
*/
SVN_ERR(svn_ra_get_session_url(session, &session_url, pool));
SVN_ERR(svn_ra_get_path_relative_to_root(session, &source_relpath,
@@ -612,7 +618,7 @@ version(const char *progname,
pool);
SVN_ERR(svn_ra_print_modules(version_footer, pool));
- return svn_opt_print_help4(NULL, ensure_appname(progname, pool),
+ return svn_opt_print_help5(NULL, ensure_appname(progname, pool),
TRUE, quiet, FALSE, version_footer->data,
NULL, NULL, NULL, NULL, NULL, pool);
}
@@ -671,7 +677,7 @@ help_cmd(apr_getopt_t *os,
"\n"
"Available subcommands:\n");
- return svn_opt_print_help4(os, "svnrdump", FALSE, FALSE, FALSE, NULL,
+ return svn_opt_print_help5(os, "svnrdump", FALSE, FALSE, FALSE, NULL,
header, svnrdump__cmd_table, svnrdump__options,
NULL, NULL, pool);
}
@@ -777,7 +783,7 @@ static svn_error_t *
sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
{
svn_error_t *err = SVN_NO_ERROR;
- const svn_opt_subcommand_desc2_t *subcommand = NULL;
+ const svn_opt_subcommand_desc3_t *subcommand = NULL;
opt_baton_t *opt_baton;
svn_revnum_t latest_revision = SVN_INVALID_REVNUM;
const char *config_dir = NULL;
@@ -937,7 +943,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
if (opt_baton->help)
{
- subcommand = svn_opt_get_canonical_subcommand2(svnrdump__cmd_table,
+ subcommand = svn_opt_get_canonical_subcommand3(svnrdump__cmd_table,
"help");
}
if (subcommand == NULL)
@@ -947,8 +953,8 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
if (opt_baton->version)
{
/* Use the "help" subcommand to handle the "--version" option. */
- static const svn_opt_subcommand_desc2_t pseudo_cmd =
- { "--version", help_cmd, {0}, "",
+ static const svn_opt_subcommand_desc3_t pseudo_cmd =
+ { "--version", help_cmd, {0}, {""},
{opt_version, /* must accept its own option */
'q', /* --quiet */
} };
@@ -968,7 +974,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
SVN_ERR(svn_utf_cstring_to_utf8(&first_arg, os->argv[os->ind++],
pool));
- subcommand = svn_opt_get_canonical_subcommand2(svnrdump__cmd_table,
+ subcommand = svn_opt_get_canonical_subcommand3(svnrdump__cmd_table,
first_arg);
if (subcommand == NULL)
@@ -996,11 +1002,11 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
if (opt_id == 'h' || opt_id == '?')
continue;
- if (! svn_opt_subcommand_takes_option3(subcommand, opt_id, NULL))
+ if (! svn_opt_subcommand_takes_option4(subcommand, opt_id, NULL))
{
const char *optstr;
const apr_getopt_option_t *badopt =
- svn_opt_get_option_from_code2(opt_id, svnrdump__options,
+ svn_opt_get_option_from_code3(opt_id, svnrdump__options,
subcommand, pool);
svn_opt_format_option(&optstr, badopt, FALSE, pool);
if (subcommand->name[0] == '-')
diff --git a/subversion/svnserve/serve.c b/subversion/svnserve/serve.c
index 5192e7c..e664778 100644
--- a/subversion/svnserve/serve.c
+++ b/subversion/svnserve/serve.c
@@ -369,7 +369,7 @@ handle_config_error(svn_error_t *error,
/* Now that we've logged the error, clear it and return a
* nice, generic error to the user:
- * http://subversion.tigris.org/issues/show_bug.cgi?id=2271 */
+ * https://issues.apache.org/jira/browse/SVN-2271 */
svn_error_clear(error);
return svn_error_create(apr_err, NULL, NULL);
}
diff --git a/subversion/svnserve/svnserve.c b/subversion/svnserve/svnserve.c
index b4ad64f..a92c3eb 100644
--- a/subversion/svnserve/svnserve.c
+++ b/subversion/svnserve/svnserve.c
@@ -479,7 +479,7 @@ static svn_error_t * version(svn_boolean_t quiet, apr_pool_t *pool)
_("\nCyrus SASL authentication is available.\n"));
#endif
- return svn_opt_print_help4(NULL, "svnserve", TRUE, quiet, FALSE,
+ return svn_opt_print_help5(NULL, "svnserve", TRUE, quiet, FALSE,
version_footer->data,
NULL, NULL, NULL, NULL, NULL, pool);
}
diff --git a/subversion/svnsync/svnsync.c b/subversion/svnsync/svnsync.c
index 9f50897..43c977b 100644
--- a/subversion/svnsync/svnsync.c
+++ b/subversion/svnsync/svnsync.c
@@ -89,17 +89,17 @@ enum svnsync__opt {
svnsync_opt_config_dir, \
svnsync_opt_config_options
-static const svn_opt_subcommand_desc2_t svnsync_cmd_table[] =
+static const svn_opt_subcommand_desc3_t svnsync_cmd_table[] =
{
- { "initialize", initialize_cmd, { "init" },
- N_("usage: svnsync initialize DEST_URL SOURCE_URL\n"
- "\n"
+ { "initialize", initialize_cmd, { "init" }, {N_(
+ "usage: svnsync initialize DEST_URL SOURCE_URL\n"
+ "\n"), N_(
"Initialize a destination repository for synchronization from\n"
"another repository.\n"
- "\n"
+ "\n"), N_(
"If the source URL is not the root of a repository, only the\n"
"specified part of the repository will be synchronized.\n"
- "\n"
+ "\n"), N_(
"The destination URL must point to the root of a repository which\n"
"has been configured to allow revision property changes. In\n"
"the general case, the destination repository must contain no\n"
@@ -109,65 +109,70 @@ static const svn_opt_subcommand_desc2_t svnsync_cmd_table[] =
"their counterparts in the source repository. (This is useful\n"
"when initializing a copy of a repository as a mirror of that same\n"
"repository, for example.)\n"
- "\n"
+ "\n"), N_(
"You should not commit to, or make revision property changes in,\n"
"the destination repository by any method other than 'svnsync'.\n"
"In other words, the destination repository should be a read-only\n"
- "mirror of the source repository.\n"),
+ "mirror of the source repository.\n"
+ )},
{ SVNSYNC_OPTS_DEFAULT, svnsync_opt_source_prop_encoding, 'q',
svnsync_opt_allow_non_empty, svnsync_opt_disable_locking,
svnsync_opt_steal_lock, 'M' } },
- { "synchronize", synchronize_cmd, { "sync" },
- N_("usage: svnsync synchronize DEST_URL [SOURCE_URL]\n"
- "\n"
+ { "synchronize", synchronize_cmd, { "sync" }, {N_(
+ "usage: svnsync synchronize DEST_URL [SOURCE_URL]\n"
+ "\n"), N_(
"Transfer all pending revisions to the destination from the source\n"
"with which it was initialized.\n"
- "\n"
+ "\n"), N_(
"If SOURCE_URL is provided, use that as the source repository URL,\n"
"ignoring what is recorded in the destination repository as the\n"
"source URL. Specifying SOURCE_URL is recommended in particular\n"
"if untrusted users/administrators may have write access to the\n"
- "DEST_URL repository.\n"),
+ "DEST_URL repository.\n"
+ )},
{ SVNSYNC_OPTS_DEFAULT, svnsync_opt_source_prop_encoding, 'q',
svnsync_opt_disable_locking, svnsync_opt_steal_lock, 'M' } },
- { "copy-revprops", copy_revprops_cmd, { 0 },
- N_("usage:\n"
- "\n"
+ { "copy-revprops", copy_revprops_cmd, { 0 }, {N_(
+ "usage:\n"
+ "\n"), N_(
" 1. svnsync copy-revprops DEST_URL [SOURCE_URL]\n"
" 2. svnsync copy-revprops DEST_URL REV[:REV2]\n"
- "\n"
+ "\n"), N_(
"Copy the revision properties in a given range of revisions to the\n"
"destination from the source with which it was initialized. If the\n"
"revision range is not specified, it defaults to all revisions in\n"
"the DEST_URL repository. Note also that the 'HEAD' revision is the\n"
"latest in DEST_URL, not necessarily the latest in SOURCE_URL.\n"
- "\n"
+ "\n"), N_(
"If SOURCE_URL is provided, use that as the source repository URL,\n"
"ignoring what is recorded in the destination repository as the\n"
"source URL. Specifying SOURCE_URL is recommended in particular\n"
"if untrusted users/administrators may have write access to the\n"
"DEST_URL repository.\n"
- "\n"
+ "\n"), N_(
"Unless you need to trigger the destination repositoy's revprop\n"
"change hooks for all revision properties, it is recommended to use\n"
"the --skip-unchanged option for best performance.\n"
- "\n"
- "Form 2 is deprecated syntax, equivalent to specifying \"-rREV[:REV2]\".\n"),
+ "\n"), N_(
+ "Form 2 is deprecated syntax, equivalent to specifying \"-rREV[:REV2]\".\n"
+ )},
{ SVNSYNC_OPTS_DEFAULT, svnsync_opt_source_prop_encoding, 'q', 'r',
svnsync_opt_disable_locking, svnsync_opt_steal_lock,
svnsync_opt_skip_unchanged, 'M' } },
- { "info", info_cmd, { 0 },
- N_("usage: svnsync info DEST_URL\n"
- "\n"
+ { "info", info_cmd, { 0 }, {N_(
+ "usage: svnsync info DEST_URL\n"
+ "\n"), N_(
"Print information about the synchronization destination repository\n"
- "located at DEST_URL.\n"),
+ "located at DEST_URL.\n"
+ )},
{ SVNSYNC_OPTS_DEFAULT } },
- { "help", help_cmd, { "?", "h" },
- N_("usage: svnsync help [SUBCOMMAND...]\n"
- "\n"
- "Describe the usage of this program or its subcommands.\n"),
+ { "help", help_cmd, { "?", "h" }, {N_(
+ "usage: svnsync help [SUBCOMMAND...]\n"
+ "\n"), N_(
+ "Describe the usage of this program or its subcommands.\n"
+ )},
{ 0 } },
- { NULL, NULL, { 0 }, NULL, { 0 } }
+ { NULL, NULL, { 0 }, {NULL}, { 0 } }
};
static const apr_getopt_option_t svnsync_options[] =
@@ -1937,7 +1942,7 @@ help_cmd(apr_getopt_t *os, void *baton, apr_pool_t *pool)
SVN_ERR(svn_ra_print_modules(version_footer, pool));
- SVN_ERR(svn_opt_print_help4(os, "svnsync",
+ SVN_ERR(svn_opt_print_help5(os, "svnsync",
opt_baton ? opt_baton->version : FALSE,
opt_baton ? opt_baton->quiet : FALSE,
/*###opt_state ? opt_state->verbose :*/ FALSE,
@@ -1960,7 +1965,7 @@ help_cmd(apr_getopt_t *os, void *baton, apr_pool_t *pool)
static svn_error_t *
sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
{
- const svn_opt_subcommand_desc2_t *subcommand = NULL;
+ const svn_opt_subcommand_desc3_t *subcommand = NULL;
apr_array_header_t *received_opts;
opt_baton_t opt_baton;
svn_config_t *config;
@@ -2189,7 +2194,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
}
if (opt_baton.help)
- subcommand = svn_opt_get_canonical_subcommand2(svnsync_cmd_table, "help");
+ subcommand = svn_opt_get_canonical_subcommand3(svnsync_cmd_table, "help");
/* The --non-interactive and --force-interactive options are mutually
* exclusive. */
@@ -2269,8 +2274,8 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
if (opt_baton.version)
{
/* Use the "help" subcommand to handle "--version". */
- static const svn_opt_subcommand_desc2_t pseudo_cmd =
- { "--version", help_cmd, {0}, "",
+ static const svn_opt_subcommand_desc3_t pseudo_cmd =
+ { "--version", help_cmd, {0}, {""},
{svnsync_opt_version, /* must accept its own option */
'q', /* --quiet */
} };
@@ -2290,7 +2295,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
SVN_ERR(svn_utf_cstring_to_utf8(&first_arg, os->argv[os->ind++],
pool));
- subcommand = svn_opt_get_canonical_subcommand2(svnsync_cmd_table,
+ subcommand = svn_opt_get_canonical_subcommand3(svnsync_cmd_table,
first_arg);
if (subcommand == NULL)
{
@@ -2308,11 +2313,11 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
if (opt_id == 'h' || opt_id == '?')
continue;
- if (! svn_opt_subcommand_takes_option3(subcommand, opt_id, NULL))
+ if (! svn_opt_subcommand_takes_option4(subcommand, opt_id, NULL))
{
const char *optstr;
const apr_getopt_option_t *badopt =
- svn_opt_get_option_from_code2(opt_id, svnsync_options, subcommand,
+ svn_opt_get_option_from_code3(opt_id, svnsync_options, subcommand,
pool);
svn_opt_format_option(&optstr, badopt, FALSE, pool);
if (subcommand->name[0] == '-')
diff --git a/subversion/svnversion/svnversion.c b/subversion/svnversion/svnversion.c
index 8e4ceff..da65800 100644
--- a/subversion/svnversion/svnversion.c
+++ b/subversion/svnversion/svnversion.c
@@ -38,7 +38,7 @@
static svn_error_t *
version(svn_boolean_t quiet, apr_pool_t *pool)
{
- return svn_opt_print_help4(NULL, "svnversion", TRUE, quiet, FALSE,
+ return svn_opt_print_help5(NULL, "svnversion", TRUE, quiet, FALSE,
NULL, NULL, NULL, NULL, NULL, NULL, pool);
}
diff --git a/subversion/tests/afl/afl-svndiff-testcase/test1 b/subversion/tests/afl/afl-svndiff-testcase/test1
new file mode 100644
index 0000000..987db36
--- /dev/null
+++ b/subversion/tests/afl/afl-svndiff-testcase/test1
Binary files differ
diff --git a/subversion/tests/afl/afl-svndiff-testcase/test2 b/subversion/tests/afl/afl-svndiff-testcase/test2
new file mode 100644
index 0000000..984cbf5
--- /dev/null
+++ b/subversion/tests/afl/afl-svndiff-testcase/test2
Binary files differ
diff --git a/subversion/tests/afl/afl-svndiff-testcase/test3 b/subversion/tests/afl/afl-svndiff-testcase/test3
new file mode 100644
index 0000000..102ee8e
--- /dev/null
+++ b/subversion/tests/afl/afl-svndiff-testcase/test3
Binary files differ
diff --git a/subversion/tests/afl/afl-svndiff.c b/subversion/tests/afl/afl-svndiff.c
new file mode 100644
index 0000000..4ff00bf
--- /dev/null
+++ b/subversion/tests/afl/afl-svndiff.c
@@ -0,0 +1,85 @@
+/*
+ * afl-svndiff.c an American Fuzz Lop test
+ *
+ * ====================================================================
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * ====================================================================
+ *
+ */
+
+/* The input data can either be a file on disk or provided via stdin:
+
+ afl-svndiff some-file
+ afl-svndiff < some-file
+
+ In practice the file simply contains random binary data. The data
+ are interpreted as an svndiff as sent by a client to the server. */
+
+#include "svn_delta.h"
+#include "svn_cmdline.h"
+#include "svn_pools.h"
+#include "svn_io.h"
+
+#include <stdlib.h>
+
+static svn_error_t *
+txdelta_window_handler(svn_txdelta_window_t *window,
+ void *baton)
+{
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+parse(const char *filename, apr_pool_t *pool)
+{
+ svn_stringbuf_t *buf;
+ svn_stream_t *svndiff;
+ svn_stream_t *stream;
+
+ SVN_ERR(svn_stringbuf_from_file2(&buf, filename, pool));
+ svndiff = svn_stream_from_stringbuf(buf, pool);
+
+ stream = svn_txdelta_parse_svndiff(txdelta_window_handler, NULL, TRUE, pool);
+ SVN_ERR(svn_stream_copy3(svndiff, stream, NULL, NULL, pool));
+
+ return SVN_NO_ERROR;
+}
+
+int main(int argc, char **argv)
+{
+ apr_pool_t *pool;
+ int exit_code = EXIT_SUCCESS;
+ svn_error_t *err;
+ const char *filename;
+
+ if (argc == 2)
+ filename = argv[1];
+ else
+ filename = "-";
+
+ if (svn_cmdline_init("afl-svndiff", stderr) != EXIT_SUCCESS)
+ return EXIT_FAILURE;
+ pool = apr_allocator_owner_get(svn_pool_create_allocator(FALSE));
+
+ err = parse(filename, pool);
+ if (err)
+ exit_code = EXIT_FAILURE;
+ svn_error_clear(err);
+ svn_pool_destroy(pool);
+ return exit_code;
+}
diff --git a/subversion/tests/afl/afl-x509-testcase/test2 b/subversion/tests/afl/afl-x509-testcase/test2
new file mode 100644
index 0000000..716ef59
--- /dev/null
+++ b/subversion/tests/afl/afl-x509-testcase/test2
Binary files differ
diff --git a/subversion/tests/afl/afl-x509-testcase/test3 b/subversion/tests/afl/afl-x509-testcase/test3
new file mode 100644
index 0000000..68d6e7e
--- /dev/null
+++ b/subversion/tests/afl/afl-x509-testcase/test3
Binary files differ
diff --git a/subversion/tests/cmdline/authz_tests.py b/subversion/tests/cmdline/authz_tests.py
index 8878418..e818c65 100755
--- a/subversion/tests/cmdline/authz_tests.py
+++ b/subversion/tests/cmdline/authz_tests.py
@@ -168,7 +168,7 @@ def authz_read_access(sbox):
fws_url = B_url + '/folder with spaces'
fws_empty_folder_url = fws_url + '/empty folder'
- if sbox.repo_url.startswith("http"):
+ if svntest.main.is_ra_type_dav():
expected_err = ".*svn: E175013: .*[Ff]orbidden.*"
else:
expected_err = ".*svn: E170001: Authorization failed.*"
@@ -280,7 +280,7 @@ def authz_write_access(sbox):
write_restrictive_svnserve_conf(sbox.repo_dir)
- if sbox.repo_url.startswith('http'):
+ if svntest.main.is_ra_type_dav():
expected_err = ".*svn: E175013: .*[Ff]orbidden.*"
else:
expected_err = ".*svn: E220004: Access denied.*"
@@ -367,7 +367,7 @@ def authz_checkout_test(sbox):
# 1st part: disable all read access, checkout should fail
# write an authz file with *= on /
- if sbox.repo_url.startswith('http'):
+ if svntest.main.is_ra_type_dav():
expected_err = ".*svn: E175013: .*[Ff]orbidden.*"
else:
expected_err = ".*svn: E170001: Authorization failed.*"
@@ -502,7 +502,7 @@ def authz_log_and_tracing_test(sbox):
write_restrictive_svnserve_conf(sbox.repo_dir)
# write an authz file with *=rw on /
- if sbox.repo_url.startswith('http'):
+ if svntest.main.is_ra_type_dav():
expected_err = ".*svn: E175013: .*[Ff]orbidden.*"
else:
expected_err = ".*svn: E170001: Authorization failed.*"
@@ -533,7 +533,7 @@ def authz_log_and_tracing_test(sbox):
# now disable read access on the first version of rho, keep the copy in
# /A/D readable.
- if sbox.repo_url.startswith('http'):
+ if svntest.main.is_ra_type_dav():
expected_err = ".*svn: E175013: .*[Ff]orbidden.*"
else:
expected_err = ".*svn: E170001: Authorization failed.*"
@@ -551,7 +551,7 @@ def authz_log_and_tracing_test(sbox):
'log', '-r', '2', '--limit', '1',
wc_dir)
- if sbox.repo_url.startswith('http'):
+ if svntest.main.is_ra_type_dav():
expected_err2 = expected_err
else:
expected_err2 = ".*svn: E220001: ((Unreadable path encountered; " \
@@ -593,7 +593,7 @@ def authz_log_and_tracing_test(sbox):
svntest.actions.run_and_verify_svn(None, expected_err2,
'cat', '-r', '2', D_url+'/rho')
- if sbox.repo_url.startswith('http'):
+ if svntest.main.is_ra_type_dav():
expected_err2 = expected_err
else:
expected_err2 = ".*svn: E220001: Unreadable path encountered; access denied.*"
@@ -624,7 +624,7 @@ def authz_aliases(sbox):
write_restrictive_svnserve_conf(sbox.repo_dir)
- if sbox.repo_url.startswith("http"):
+ if svntest.main.is_ra_type_dav():
expected_err = ".*svn: E175013: .*[Ff]orbidden.*"
else:
expected_err = ".*svn: E170001: Authorization failed.*"
@@ -669,9 +669,9 @@ def authz_validate(sbox):
write_authz_file(sbox, { "/" : "* = r",
"/A/B" : "@undefined_group = rw" })
- if sbox.repo_url.startswith("http"):
+ if svntest.main.is_ra_type_dav():
expected_err = ".*svn: E175013: .*[Ff]orbidden.*"
- elif sbox.repo_url.startswith("svn"):
+ elif svntest.main.is_ra_type_svn():
expected_err = ".*Invalid authz configuration"
else:
expected_err = ".*@undefined_group.*"
@@ -688,9 +688,9 @@ devs1 = @admins, dev1
devs2 = @admins, dev2
devs = @devs1, dev3, dev4""" })
- if sbox.repo_url.startswith("http"):
+ if svntest.main.is_ra_type_dav():
expected_err = ".*svn: E175013: .*[Ff]orbidden.*"
- elif sbox.repo_url.startswith("svn"):
+ elif svntest.main.is_ra_type_svn():
expected_err = ".*Invalid authz configuration"
else:
expected_err = ".*Circular dependency.*"
@@ -726,7 +726,7 @@ def authz_locking(sbox):
write_authz_file(sbox, {"/": "", "/A": "jrandom = rw"})
write_restrictive_svnserve_conf(sbox.repo_dir)
- if sbox.repo_url.startswith('http'):
+ if svntest.main.is_ra_type_dav():
expected_err = ".*svn: E175013: .*[Ff]orbidden.*"
else:
expected_err = ".*svn: warning: W170001: Authorization failed.*"
@@ -781,7 +781,7 @@ def authz_locking(sbox):
svntest.actions.run_and_verify_info([{'Lock Token' : None}],
sbox.ospath('A/mu'))
- if sbox.repo_url.startswith('http'):
+ if svntest.main.is_ra_type_dav():
expected_err = ".*svn: warning: W160039: .*([Aa]uth.*perf|[Ff]orbidden).*"
else:
expected_err = ".*svn: warning: W170001: Authorization failed.*"
@@ -863,7 +863,7 @@ def authz_svnserve_anon_access_read(sbox):
# is not really a branch (it's the same URL), but we only care about
# authz here, not the semantics of the merge. (Merges had been
# failing in authz, for the reasons summarized in
- # http://subversion.tigris.org/issues/show_bug.cgi?id=2712#desc13.)
+ # https://issues.apache.org/jira/browse/SVN-2712#desc13.)
svntest.actions.run_and_verify_svn(None, [],
'merge', '-c', '2',
B_url, B_path)
@@ -981,7 +981,7 @@ def multiple_matches(sbox):
sbox.build(create_wc = False)
root_url = sbox.repo_url
write_restrictive_svnserve_conf(sbox.repo_dir)
- if sbox.repo_url.startswith("http"):
+ if svntest.main.is_ra_type_dav():
expected_err = ".*svn: E175013: .*[Ff]orbidden.*"
else:
expected_err = ".*svn: E170001: Authorization failed.*"
@@ -1137,7 +1137,7 @@ def case_sensitive_authz(sbox):
# error messages
expected_error_for_commit = ".*Commit failed.*"
- if sbox.repo_url.startswith("http"):
+ if svntest.main.is_ra_type_dav():
expected_error_for_cat = ".*[Ff]orbidden.*"
else:
expected_error_for_cat = ".*svn: E170001: Authorization failed.*"
diff --git a/subversion/tests/cmdline/basic_tests.py b/subversion/tests/cmdline/basic_tests.py
index 4b0b8d5..581a23b 100755
--- a/subversion/tests/cmdline/basic_tests.py
+++ b/subversion/tests/cmdline/basic_tests.py
@@ -3024,16 +3024,19 @@ def peg_rev_on_non_existent_wc_path(sbox):
# setup some history
sbox.simple_move('A', 'A2')
sbox.simple_move('A2/mu', 'A2/mu2')
- open(sbox.ospath('A2/mu2'), 'w').write('r2\n')
+ with open(sbox.ospath('A2/mu2'), 'w') as f:
+ f.write('r2\n')
sbox.simple_commit(message='r2')
#
sbox.simple_move('A2/mu2', 'A2/mu3')
sbox.simple_move('A2', 'A3')
- open(sbox.ospath('A3/mu3'), 'w').write('r3\n')
+ with open(sbox.ospath('A3/mu3'), 'w') as f:
+ f.write('r3\n')
sbox.simple_commit(message='r3')
#
sbox.simple_move('A3/mu3', 'A3/mu4')
- open(sbox.ospath('A3/mu4'), 'w').write('r4\n')
+ with open(sbox.ospath('A3/mu4'), 'w') as f:
+ f.write('r4\n')
sbox.simple_move('A3', 'A4')
sbox.simple_commit(message='r4')
@@ -3121,24 +3124,27 @@ def filtered_ls(sbox):
sbox.build(read_only=True)
path = sbox.repo_url + "/A/D"
- # check plain info
- expected = [ "H/omega\n",
- "gamma\n" ]
+ # with and without externals, because without externals on a 1.10+ server
+ # a server-side code path is used
+ for extra_opts in [ [], ['--include-externals'] ]:
- exit_code, output, error = svntest.actions.run_and_verify_svn(
- expected, [], 'ls', path, '--depth=infinity', '--search=*a')
+ expected = [ "H/omega\n",
+ "gamma\n" ]
- # check case-insensitivity
- exit_code, output, error = svntest.actions.run_and_verify_svn(
- expected, [], 'ls', path, '--depth=infinity', '--search=*A')
+ exit_code, output, error = svntest.actions.run_and_verify_svn(
+ expected, [], 'ls', path, '--depth=infinity', '--search=*a', *extra_opts)
- expected = [ "H/\n" ]
- exit_code, output, error = svntest.actions.run_and_verify_svn(
- expected, [], 'ls', path, '--depth=infinity', '--search=h')
+ # check case-insensitivity
+ exit_code, output, error = svntest.actions.run_and_verify_svn(
+ expected, [], 'ls', path, '--depth=infinity', '--search=*A', *extra_opts)
- # we don't match full paths
- exit_code, output, error = svntest.actions.run_and_verify_svn(
- [], [], 'ls', path, '--depth=infinity', '--search=*/*')
+ expected = [ "H/\n" ]
+ exit_code, output, error = svntest.actions.run_and_verify_svn(
+ expected, [], 'ls', path, '--depth=infinity', '--search=h', *extra_opts)
+
+ # we don't match full paths
+ exit_code, output, error = svntest.actions.run_and_verify_svn(
+ [], [], 'ls', path, '--depth=infinity', '--search=*/*', *extra_opts)
@Issue(4700)
@XFail(svntest.main.is_fs_type_fsx)
@@ -3197,6 +3203,36 @@ def null_prop_update_last_changed_revision(sbox):
'info', sbox.path('iota'),
'--show-item', 'last-changed-revision')
+@Skip(svntest.main.is_os_windows)
+def filtered_ls_top_level_path(sbox):
+ "filtered 'svn ls' top level path"
+
+ sbox.build(read_only=True, create_wc=False)
+ d_path = sbox.repo_url + "/A/B"
+ f_path = sbox.repo_url + "/A/B/lambda"
+
+ d_expected = svntest.verify.RegexListOutput([
+ r".* \./", # expect '*B*' to match its name which is 'B'
+ r".* E/beta",
+ r".* lambda" ])
+ f_expected = [ "lambda\n" ]
+
+ # with and without externals, because without externals on a 1.10+ server
+ # a server-side code path is used
+ for extra_opts in [ [], ['--include-externals'] ]:
+
+ exit_code, output, error = svntest.actions.run_and_verify_svn(
+ d_expected, [], 'ls', '-v', d_path, '-R', '--search=*B*', *extra_opts)
+
+ exit_code, output, error = svntest.actions.run_and_verify_svn(
+ f_expected, [], 'ls', f_path, '--search=lambda', *extra_opts)
+
+ # we don't match full paths, even for the top level path
+ exit_code, output, error = svntest.actions.run_and_verify_svn(
+ [], [], 'ls', '-v', d_path, '-R', '--search=*/*', *extra_opts)
+ exit_code, output, error = svntest.actions.run_and_verify_svn(
+ [], [], 'ls', f_path, '--search=*/*', *extra_opts)
+
########################################################################
# Run the tests
@@ -3271,6 +3307,7 @@ test_list = [ None,
filtered_ls,
null_update_last_changed_revision,
null_prop_update_last_changed_revision,
+ filtered_ls_top_level_path,
]
if __name__ == '__main__':
diff --git a/subversion/tests/cmdline/blame_tests.py b/subversion/tests/cmdline/blame_tests.py
index f824d25..8620dd4 100755
--- a/subversion/tests/cmdline/blame_tests.py
+++ b/subversion/tests/cmdline/blame_tests.py
@@ -958,7 +958,8 @@ def blame_youngest_to_oldest(sbox):
sbox.simple_commit() #r3
# Delete a line.
- open(iota_moved, 'w').write(line)
+ with open(iota_moved, 'w') as f:
+ f.write(line)
sbox.simple_commit() #r4
expected_output = [
diff --git a/subversion/tests/cmdline/commit_tests.py b/subversion/tests/cmdline/commit_tests.py
index 4f4a6f9..9bdb305 100755
--- a/subversion/tests/cmdline/commit_tests.py
+++ b/subversion/tests/cmdline/commit_tests.py
@@ -2823,7 +2823,8 @@ def commit_add_subadd(sbox):
# prepare targets file
targets = "A/D A/D/H A/D/H/chi A/D/H/omega A/D/H/psi".split()
- open(targets_file, 'w').write("\n".join(targets))
+ with open(targets_file, 'w') as f:
+ f.write("\n".join(targets))
# r2: rm A/D
sbox.simple_rm('A/D')
diff --git a/subversion/tests/cmdline/copy_tests.py b/subversion/tests/cmdline/copy_tests.py
index 3bb8599..c87f36f 100755
--- a/subversion/tests/cmdline/copy_tests.py
+++ b/subversion/tests/cmdline/copy_tests.py
@@ -4333,7 +4333,7 @@ def copy_added_dir_with_copy(sbox):
def copy_broken_symlink(sbox):
"""copy broken symlink"""
- ## See http://subversion.tigris.org/issues/show_bug.cgi?id=3303. ##
+ ## See https://issues.apache.org/jira/browse/SVN-3303. ##
sbox.build()
wc_dir = sbox.wc_dir
diff --git a/subversion/tests/cmdline/dav-mirror-autocheck.sh b/subversion/tests/cmdline/dav-mirror-autocheck.sh
index 298a8ba..7bc5e11 100755
--- a/subversion/tests/cmdline/dav-mirror-autocheck.sh
+++ b/subversion/tests/cmdline/dav-mirror-autocheck.sh
@@ -31,7 +31,7 @@
#
# The set of changes sent through the system is currently
# just the test case for issue 2939, using svnmucc
-# http://subversion.tigris.org/issues/show_bug.cgi?id=2939
+# https://issues.apache.org/jira/browse/SVN-2939
# But of course, any svn traffic liable to break over
# mirroring would be a good addition.
#
@@ -100,6 +100,7 @@ function setup_config() {
say "setting up config: " $1
cat > "$1" <<__EOF__
+$LOAD_MOD_MPM
$LOAD_MOD_LOG_CONFIG
$LOAD_MOD_MIME
$LOAD_MOD_UNIXD
@@ -114,9 +115,30 @@ $LOAD_MOD_AUTHZ_CORE
$LOAD_MOD_AUTHZ_USER
$LOAD_MOD_AUTHZ_HOST
+__EOF__
+
+if "$HTTPD" -v | grep '/2\.[012]' >/dev/null; then
+ cat >> "$1" <<__EOF__
LockFile lock
User $(id -un)
Group $(id -gn)
+__EOF__
+else
+HTTPD_LOCK="$HTTPD_ROOT/lock"
+mkdir "$HTTPD_LOCK" \
+ || fail "couldn't create lock directory '$HTTPD_LOCK'"
+ cat >> "$1" <<__EOF__
+# worker and prefork MUST have a mpm-accept lockfile in 2.3.0+
+<IfModule worker.c>
+ Mutex "file:$HTTPD_LOCK" mpm-accept
+</IfModule>
+<IfModule prefork.c>
+ Mutex "file:$HTTPD_LOCK" mpm-accept
+</IfModule>
+__EOF__
+fi
+
+cat >> "$1" <<__EOF__
Listen ${TEST_PORT}
ServerName localhost
PidFile "${HTTPD_ROOT}/pid"
@@ -133,6 +155,9 @@ MaxRequestsPerChild 0
<IfModule worker.c>
ThreadsPerChild 8
</IfModule>
+<IfModule event.c>
+ ThreadsPerChild 8
+</IfModule>
MaxClients 16
HostNameLookups Off
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" format
@@ -202,6 +227,12 @@ function usage() {
SCRIPT=$(basename $0)
+NO_TESTS=
+if [ "x$1" = 'x--no-tests' ]; then
+ NO_TESTS=1
+ shift
+fi
+
if [ $# -ne 1 ] ; then
usage
fi
@@ -249,7 +280,7 @@ HTPASSWD=$(get_prog_name htpasswd htpasswd2) \
SVN=$ABS_BUILDDIR/subversion/svn/svn
SVNADMIN=$ABS_BUILDDIR/subversion/svnadmin/svnadmin
SVNSYNC=$ABS_BUILDDIR/subversion/svnsync/svnsync
-SVNMUCC=${SVNMUCC:-$ABS_BUILDDIR/tools/client-side/svnmucc/svnmucc}
+SVNMUCC=$ABS_BUILDDIR/subversion/svnmucc/svnmucc
SVNLOOK=$ABS_BUILDDIR/subversion/svnlook/svnlook
[ -x $HTTPD ] || fail "HTTPD '$HTTPD' not executable"
@@ -259,9 +290,7 @@ SVNLOOK=$ABS_BUILDDIR/subversion/svnlook/svnlook
[ -x $SVNADMIN ] || fail "SVNADMIN $SVNADMIN not built"
[ -x $SVNSYNC ] || fail "SVNSYNC $SVNSYNC not built"
[ -x $SVNLOOK ] || fail "SVNLOOK $SVNLOOK not built"
-[ -x $SVNMUCC ] \
- || fail SVNMUCC $SVNMUCC executable not built, needed for test. \
- \'cd $ABS_BUILDDIR\; make svnmucc\' to fix.
+[ -x $SVNMUCC ] || fail "SVNMUCC $SVNMUCC not built"
say HTTPD: $HTTPD
say SVN: $SVN
@@ -309,6 +338,10 @@ LOAD_MOD_AUTHN_FILE="$(get_loadmodule_config mod_authn_file)" \
LOAD_MOD_AUTHZ_USER="$(get_loadmodule_config mod_authz_user)" \
|| fail "Authz_User module not found."
}
+if [ ${APACHE_MPM:+set} ]; then
+ LOAD_MOD_MPM=$(get_loadmodule_config mod_mpm_$APACHE_MPM) \
+ || fail "MPM module not found"
+fi
if [ ${MODULE_PATH:+set} ]; then
MOD_DAV_SVN="$MODULE_PATH/mod_dav_svn.so"
@@ -365,7 +398,9 @@ $SVNADMIN create "$SLAVE_REPOS" || fail "create slave repos failed"
$SVNADMIN dump "$MASTER_REPOS" | $SVNADMIN load "$SLAVE_REPOS" \
|| fail "duplicate repositories failed"
# make sure uuid's match
-[ `cat "$SLAVE_REPOS/db/uuid"` = `cat "$MASTER_REPOS/db/uuid"` ] \
+read MASTER_UUID < "$MASTER_REPOS/db/uuid"
+read SLAVE_UUID < "$SLAVE_REPOS/db/uuid"
+[ "$SLAVE_UUID" = "$MASTER_UUID" ] \
|| fail "master/slave uuid mismatch"
# setup hooks:
# slave allows revprop changes
@@ -397,12 +432,18 @@ $SVNSYNC initialize --non-interactive "$SYNC_URL" "$MASTER_URL" \
--username=svnsync --password=svnsync \
|| fail "svnsync initialize failed"
+if [ $NO_TESTS ]; then
+ echo "MASTER_URL=$MASTER_URL"
+ echo "SLAVE_URL=$SLAVE_URL"
+ exit
+fi
+
# OK, let's start testing! Commit changes to slave, expect
# them to proxy through to the master, and then
# svnsync back to the slave
#
# reproducible test case from:
-# http://subversion.tigris.org/issues/show_bug.cgi?id=2939
+# https://issues.apache.org/jira/browse/SVN-2939
#
BASE_URL="$SLAVE_URL"
say running svnmucc test to $BASE_URL
diff --git a/subversion/tests/cmdline/dav_tests.py b/subversion/tests/cmdline/dav_tests.py
new file mode 100755
index 0000000..a99cdf5
--- /dev/null
+++ b/subversion/tests/cmdline/dav_tests.py
@@ -0,0 +1,82 @@
+#!/usr/bin/env python
+#
+# dav_tests.py: testing connections to HTTP and DAV servers.
+#
+# Subversion is a tool for revision control.
+# See http://subversion.apache.org for more information.
+#
+# ====================================================================
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+######################################################################
+
+# General modules
+import os, re
+
+# Our testing module
+import svntest
+
+# (abbreviation)
+Skip = svntest.testcase.Skip_deco
+SkipUnless = svntest.testcase.SkipUnless_deco
+XFail = svntest.testcase.XFail_deco
+Issues = svntest.testcase.Issues_deco
+Issue = svntest.testcase.Issue_deco
+Wimp = svntest.testcase.Wimp_deco
+Item = svntest.wc.StateItem
+
+
+######################################################################
+# Tests
+#
+# Each test must return on success or raise on failure.
+
+
+#----------------------------------------------------------------------
+
+@SkipUnless(svntest.main.is_ra_type_dav)
+def connect_plain_http_server(sbox):
+ "connect to a non-DAV HTTP server"
+ expected_errors = svntest.verify.RegexListOutput([
+ "^svn: E170013: Unable to connect to a repository at URL '[^']+'",
+ "^svn: E175003: The server at '[^']+' does not support the HTTP/DAV protocol"
+ ], False)
+ svntest.actions.run_and_verify_svn([], expected_errors,
+ 'info', svntest.main.non_dav_root_url)
+
+@SkipUnless(svntest.main.is_ra_type_dav)
+def connect_other_dav_server(sbox):
+ "connect to a DAV server which is not an SVN server"
+ svntest.actions.run_and_verify_svn([], svntest.verify.AnyOutput,
+ 'info', svntest.main.other_dav_root_url)
+
+########################################################################
+# Run the tests
+
+
+# list all tests here, starting with None:
+test_list = [ None,
+ connect_plain_http_server,
+ connect_other_dav_server,
+ ]
+
+if __name__ == '__main__':
+ svntest.main.run_tests(test_list)
+ # NOTREACHED
+
+
+### End of file.
diff --git a/subversion/tests/cmdline/davautocheck.sh b/subversion/tests/cmdline/davautocheck.sh
index 064feb1..7170b77 100755
--- a/subversion/tests/cmdline/davautocheck.sh
+++ b/subversion/tests/cmdline/davautocheck.sh
@@ -281,6 +281,9 @@ say "Using '$HTPASSWD'..."
LOAD_MOD_DAV=$(get_loadmodule_config mod_dav) \
|| fail "DAV module not found"
+LOAD_MOD_DAV_FS=$(get_loadmodule_config mod_dav_fs) \
+ || fail "Filesystem DAV module not found"
+
LOAD_MOD_LOG_CONFIG=$(get_loadmodule_config mod_log_config) \
|| fail "log_config module not found"
@@ -447,6 +450,7 @@ $LOAD_MOD_MIME
$LOAD_MOD_ALIAS
$LOAD_MOD_UNIXD
$LOAD_MOD_DAV
+$LOAD_MOD_DAV_FS
LoadModule dav_svn_module "$MOD_DAV_SVN"
$LOAD_MOD_AUTH
$LOAD_MOD_AUTHN_CORE
@@ -482,6 +486,13 @@ mkdir "$HTTPD_LOCK" \
__EOF__
fi
+HTTPD_DAV="$HTTPD_ROOT/dav"
+mkdir "$HTTPD_DAV" \
+ || fail "couldn't create DAV lock directory '$HTTPD_DAV'"
+cat >> "$HTTPD_CFG" <<__EOF__
+DavLockDB "$HTTPD_DAV/lock.db"
+__EOF__
+
if [ ${USE_SSL:+set} ]; then
cat >> "$HTTPD_CFG" <<__EOF__
SSLEngine on
@@ -525,6 +536,15 @@ CustomLog "$HTTPD_ROOT/ops" "%t %u %{SVN-REPOS-NAME}e %{SVN-ACTION}e"
#Require all granted
</Directory>
+Alias /nodavroot $ABS_BUILDDIR/subversion/tests/cmdline/svn-test-work/nodavroot
+<Directory $ABS_BUILDDIR/subversion/tests/cmdline/svn-test-work/nodavroot>
+</Directory>
+
+Alias /fsdavroot $ABS_BUILDDIR/subversion/tests/cmdline/svn-test-work/fsdavroot
+<Directory $ABS_BUILDDIR/subversion/tests/cmdline/svn-test-work/fsdavroot>
+ DAV filesystem
+</Directory>
+
<Location /svn-test-work/repositories>
__EOF__
location_common() {
diff --git a/subversion/tests/cmdline/depth_tests.py b/subversion/tests/cmdline/depth_tests.py
index 1277594..18ce379 100755
--- a/subversion/tests/cmdline/depth_tests.py
+++ b/subversion/tests/cmdline/depth_tests.py
@@ -1073,7 +1073,7 @@ def commit_depth_immediates(sbox):
# Message-ID: <46968831.2070906@collab.net>
# Date: Thu, 12 Jul 2007 15:59:45 -0400
#
- # See also http://subversion.tigris.org/issues/show_bug.cgi?id=2882.
+ # See also https://issues.apache.org/jira/browse/SVN-2882.
#
# Outline of the test:
# ====================
diff --git a/subversion/tests/cmdline/diff_tests.py b/subversion/tests/cmdline/diff_tests.py
index 905bce3..63caa24 100755
--- a/subversion/tests/cmdline/diff_tests.py
+++ b/subversion/tests/cmdline/diff_tests.py
@@ -36,7 +36,6 @@ from svntest import err, wc
from prop_tests import binary_mime_type_on_text_file_warning
from svntest.verify import make_diff_header, make_no_diff_deleted_header, \
- make_diff_header, make_no_diff_deleted_header, \
make_git_diff_header, make_diff_prop_header, \
make_diff_prop_val, make_diff_prop_deleted, \
make_diff_prop_added, make_diff_prop_modified
@@ -2712,7 +2711,7 @@ def diff_ignore_eolstyle(sbox):
" Bb\n",
"-Cc\n",
"+Cc\n",
- "\ No newline at end of file\n" ]
+ "\\ No newline at end of file\n" ]
svntest.actions.run_and_verify_svn(expected_output, [],
'diff', '-x', '--ignore-eol-style',
@@ -3855,7 +3854,7 @@ def diff_arbitrary_files_and_dirs(sbox):
sbox.build()
wc_dir = sbox.wc_dir
- # diff iota with A/mu
+ # diff files (iota with A/mu)
expected_output = make_diff_header("iota", "working copy", "working copy",
"iota", "A/mu") + [
"@@ -1 +1 @@\n",
@@ -3866,7 +3865,11 @@ def diff_arbitrary_files_and_dirs(sbox):
'diff', '--old', sbox.ospath('iota'),
'--new', sbox.ospath('A/mu'))
- # diff A/B/E with A/D
+ # diff dirs (A/B/E with A/D)
+ # .../gamma is to show as replaced; .../beta is to show as modified
+ sbox.simple_mkdir('A/B/E/gamma')
+ sbox.simple_propset('p', 'v', 'A/B/E/gamma')
+ sbox.simple_add_text("This is a different beta file.\n", 'A/D/beta')
expected_output = make_diff_header("G/pi", "nonexistent", "working copy",
"B/E", "D") + [
"@@ -0,0 +1 @@\n",
@@ -3896,11 +3899,16 @@ def diff_arbitrary_files_and_dirs(sbox):
"@@ -1 +0,0 @@\n",
"-This is the file 'alpha'.\n"
] + make_diff_header("beta", "working copy",
- "nonexistent", "B/E", "D") + [
- "@@ -1 +0,0 @@\n",
- "-This is the file 'beta'.\n"
- ] + make_diff_header("gamma", "nonexistent",
"working copy", "B/E", "D") + [
+ "@@ -1 +1 @@\n",
+ "-This is the file 'beta'.\n",
+ "+This is a different beta file.\n"
+ ] + make_diff_header("gamma", "working copy",
+ "nonexistent", "B/E", "D") \
+ + make_diff_prop_header("gamma") \
+ + make_diff_prop_deleted("p", "v") \
+ + make_diff_header("gamma", "nonexistent",
+ "working copy", "B/E", "D") + [
"@@ -0,0 +1 @@\n",
"+This is the file 'gamma'.\n"
]
@@ -5160,6 +5168,90 @@ def diff_unversioned_files_git(sbox):
'--old', sbox.ospath('foo'),
'--new', sbox.ospath('A/bar'))
+# Summary diff with a repository source side and a local copy target side.
+# This particular combination crashed in 1.10.0 and earlier releases.
+def diff_summary_repo_wc_local_copy(sbox):
+ "diff summary repo wc local copy"
+ sbox.build()
+ wc_dir = sbox.wc_dir
+
+ sbox.simple_copy('iota', 'iota2')
+ sbox.simple_append('iota2', 'hello\n')
+ expected_diff = svntest.wc.State(wc_dir, {
+ 'iota': Item(status='M '),
+ })
+ svntest.actions.run_and_verify_diff_summarize(
+ expected_diff,
+ '--old=' + sbox.ospath('iota') + '@HEAD',
+ '--new=' + sbox.ospath('iota2'))
+
+# Summary diff with a repository source side and a local copy target side.
+# Svn reported the unmodified copy as modified in 1.10.0 and earlier releases.
+@XFail()
+def diff_summary_repo_wc_local_copy_unmodified(sbox):
+ "diff summary repo wc local copy unmodified"
+ sbox.build()
+ wc_dir = sbox.wc_dir
+
+ sbox.simple_copy('iota', 'iota2')
+ expected_diff = svntest.wc.State(wc_dir, {
+ })
+ svntest.actions.run_and_verify_diff_summarize(
+ expected_diff,
+ '--old=' + sbox.ospath('iota') + '@HEAD',
+ '--new=' + sbox.ospath('iota2'))
+
+# Fails with "Can't open file '.../iota': Too many levels of symbolic links"
+# on Unix.
+@XFail()
+@Skip(svntest.main.is_os_windows)
+def diff_file_replaced_by_symlink(sbox):
+ "diff base vs working: symlink replaces a file"
+ sbox.build(read_only=True)
+ wc_dir = sbox.wc_dir
+
+ iota_path = sbox.ospath('iota')
+ os.remove(iota_path)
+
+ # create a symlink pointing to itself
+ # alternatively it could point to a non-existing path
+ sbox.simple_symlink('iota', 'iota')
+
+ # TODO: add a full expected output
+ expected_output = svntest.verify.AnyOutput
+ svntest.actions.run_and_verify_svn(expected_output, [], 'diff', wc_dir)
+
+# Test 'svn diff --git' with a copy.
+#
+# When this diff is rooted at a path below the repository root directory,
+# it errored out while printing the git diff header, due to confusion of
+# diff-relative and repository-relative copyfrom paths.
+@XFail()
+def diff_git_format_copy(sbox):
+ "diff git format copy"
+ sbox.build(create_wc=False)
+ svntest.actions.run_and_verify_svn(None, [], 'checkout',
+ sbox.repo_url + '/A/B',
+ sbox.wc_dir)
+ os.chdir(sbox.wc_dir)
+ sbox.wc_dir = ''
+
+ sbox.simple_copy('E/alpha', 'alpha_copied')
+ sbox.simple_append('alpha_copied', "This is a copy of 'alpha'.\n")
+
+ expected_output = \
+ make_git_diff_header('alpha_copied', 'A/B/alpha_copied',
+ "revision 1", "working copy",
+ copyfrom_path="A/B/E/alpha",
+ copyfrom_rev='1', cp=True,
+ text_changes=True) + [
+ "@@ -1 +1,2 @@\n",
+ " This is the file 'alpha'.\n",
+ "+This is a copy of 'alpha'.\n",
+ ]
+
+ svntest.actions.run_and_verify_svn(expected_output, [], 'diff',
+ '--git', '.')
########################################################################
#Run the tests
@@ -5257,6 +5349,10 @@ test_list = [ None,
diff_symlinks,
diff_peg_resolve,
diff_unversioned_files_git,
+ diff_summary_repo_wc_local_copy,
+ diff_summary_repo_wc_local_copy_unmodified,
+ diff_file_replaced_by_symlink,
+ diff_git_format_copy,
]
if __name__ == '__main__':
diff --git a/subversion/tests/cmdline/entries_tests.py b/subversion/tests/cmdline/entries_tests.py
index 0fcdc1a..78ba037 100755
--- a/subversion/tests/cmdline/entries_tests.py
+++ b/subversion/tests/cmdline/entries_tests.py
@@ -121,14 +121,17 @@ def basic_entries(sbox):
G_path, iota_path)
# Add a file over the DELETED 'alpha'. It should be schedule-add.
- open(alpha_path, 'w').write('New alpha contents\n')
+ with open(alpha_path, 'w') as f:
+ f.write('New alpha contents\n')
# Delete 'beta', then add a file over it. Should be schedule-replace.
svntest.actions.run_and_verify_svn(None, [], 'rm', beta_path)
- open(beta_path, 'w').write('New beta contents\n')
+ with open(beta_path, 'w') as f:
+ f.write('New beta contents\n')
# Plain old add. Should have revision == 0.
- open(added_path, 'w').write('Added file contents\n')
+ with open(added_path, 'w') as f:
+ f.write('Added file contents\n')
svntest.actions.run_and_verify_svn(None, [], 'add',
alpha_path, beta_path, added_path)
diff --git a/subversion/tests/cmdline/export_tests.py b/subversion/tests/cmdline/export_tests.py
index a8ac7b8..c524ff3 100755
--- a/subversion/tests/cmdline/export_tests.py
+++ b/subversion/tests/cmdline/export_tests.py
@@ -610,7 +610,8 @@ def export_file_overwrite_fails(sbox):
os.mkdir(tmpdir)
# Run it for source local
- open(os.path.join(tmpdir, 'iota'), 'w').write(not_iota_contents)
+ with open(os.path.join(tmpdir, 'iota'), 'w') as f:
+ f.write(not_iota_contents)
svntest.actions.run_and_verify_svn([], '.*exist.*',
'export', iota_path, tmpdir)
@@ -621,7 +622,8 @@ def export_file_overwrite_fails(sbox):
svntest.actions.verify_disk(tmpdir, expected_disk)
# Run it for source URL
- open(os.path.join(tmpdir, 'iota'), 'w').write(not_iota_contents)
+ with open(os.path.join(tmpdir, 'iota'), 'w') as f:
+ f.write(not_iota_contents)
svntest.actions.run_and_verify_svn([], '.*exist.*',
'export', iota_url, tmpdir)
@@ -721,7 +723,7 @@ def export_working_copy_ignoring_keyword_translation(sbox):
def export_with_url_unsafe_characters(sbox):
"export file with URL unsafe characters"
- ## See http://subversion.tigris.org/issues/show_bug.cgi?id=3683 ##
+ ## See https://issues.apache.org/jira/browse/SVN-3683 ##
sbox.build()
wc_dir = sbox.wc_dir
@@ -904,14 +906,16 @@ def export_file_overwrite_with_force(sbox):
})
# Run it for WC export
- open(os.path.join(tmpdir, 'iota'), 'w').write(not_iota_contents)
+ with open(os.path.join(tmpdir, 'iota'), 'w') as f:
+ f.write(not_iota_contents)
svntest.actions.run_and_verify_svn(svntest.verify.AnyOutput,
[], 'export', '--force',
iota_path, tmpdir)
svntest.actions.verify_disk(tmpdir, expected_disk)
# Run it for URL export
- open(os.path.join(tmpdir, 'iota'), 'w').write(not_iota_contents)
+ with open(os.path.join(tmpdir, 'iota'), 'w') as f:
+ f.write(not_iota_contents)
svntest.actions.run_and_verify_svn(svntest.verify.AnyOutput,
[], 'export', '--force',
iota_url, tmpdir)
diff --git a/subversion/tests/cmdline/externals_tests.py b/subversion/tests/cmdline/externals_tests.py
index c0ac029..ba1320c 100755
--- a/subversion/tests/cmdline/externals_tests.py
+++ b/subversion/tests/cmdline/externals_tests.py
@@ -1146,7 +1146,7 @@ def external_into_path_with_spaces(sbox):
repo_url = sbox.repo_url
ext = '^/A/D "A/copy of D"\n' +\
- '^/A/D A/another\ copy\ of\ D'
+ '^/A/D A/another\\ copy\\ of\\ D'
change_external(wc_dir, ext)
expected_output = svntest.wc.State(wc_dir, {
@@ -2818,7 +2818,7 @@ def remap_file_external_with_prop_del(sbox):
# Now update to bring the new external down.
# This previously segfaulted as described in
- # http://subversion.tigris.org/issues/show_bug.cgi?id=4093#desc1
+ # https://issues.apache.org/jira/browse/SVN-4093#desc1
svntest.actions.run_and_verify_svn(None, [], 'up', wc_dir)
@@ -3871,12 +3871,14 @@ def copy_pin_externals_whitespace_dir(sbox):
extdef = sbox.get_tempname('extdef')
info = sbox.get_tempname('info')
- open(extdef, 'w').write(
+ with open(extdef, 'w') as f:
+ f.write(
'"' + ss_path +'/deps/sqlite" ext/sqlite\n' +
'"^/deps/A P R" \'ext/A P R\'\n' +
- '^/deps/B\ D\ B\' ext/B\ D\ B\'\n' +
+ '^/deps/B\\ D\\ B\' ext/B\\ D\\ B\'\n' +
repo_url + '/deps/wors%23+t ext/wors#+t')
- open(info, 'w').write('info\n')
+ with open(info, 'w') as f:
+ f.write('info\n')
svntest.actions.run_and_verify_svnmucc(None, [], '-U', repo_url,
'mkdir', 'trunk',
@@ -4408,7 +4410,17 @@ def update_dir_external_exclude(sbox):
# Create an external in r2
sbox.simple_propset('svn:externals', '^/A/D/H X', 'A/B/E')
sbox.simple_commit()
- sbox.simple_update()
+
+ # Update to fetch externals
+ expected_output = svntest.wc.State(sbox.wc_dir, {
+ 'A/B/E/X/chi' : Item(status='A '),
+ 'A/B/E/X/omega' : Item(status='A '),
+ 'A/B/E/X/psi' : Item(status='A '),
+ })
+ svntest.actions.run_and_verify_update(sbox.wc_dir,
+ expected_output, None, None,
+ [], False,
+ sbox.ospath('A/B/E'))
# Now make A/B/E shallow by updating with "--set-depth exclude"
expected_output = svntest.wc.State(sbox.wc_dir, {
diff --git a/subversion/tests/cmdline/getopt_tests_data/svn--help_stdout b/subversion/tests/cmdline/getopt_tests_data/svn--help_stdout
index 05f0aa8..ff73b51 100644
--- a/subversion/tests/cmdline/getopt_tests_data/svn--help_stdout
+++ b/subversion/tests/cmdline/getopt_tests_data/svn--help_stdout
@@ -47,9 +47,14 @@ Available subcommands:
unlock
update (up)
upgrade
- x-shelve (shelve)
- x-unshelve (unshelve)
- x-shelves (shelves)
+ x-shelf-diff
+ x-shelf-drop
+ x-shelf-list (x-shelves)
+ x-shelf-list-by-paths
+ x-shelf-log
+ x-shelf-save
+ x-shelve
+ x-unshelve
Subversion is a tool for version control.
For additional information, see http://subversion.apache.org/
diff --git a/subversion/tests/cmdline/getopt_tests_data/svn_help_log_switch_stdout b/subversion/tests/cmdline/getopt_tests_data/svn_help_log_switch_stdout
index 5dddc70..2b81052 100644
--- a/subversion/tests/cmdline/getopt_tests_data/svn_help_log_switch_stdout
+++ b/subversion/tests/cmdline/getopt_tests_data/svn_help_log_switch_stdout
@@ -84,6 +84,10 @@ usage: 1. log [PATH][@REV]
was created:
svn log --stop-on-copy --limit 1 -r0:HEAD ^/branches/foo
+ Show all log messages for commits between the tags ^/tags/2.0 and
+ ^/tags/3.0; assuming that tag 2.0 was created in revision 100:
+ svn log -rHEAD:100 ^/tags/3.0
+
If ^/trunk/foo.c was moved to ^/trunk/bar.c' in revision 22, 'svn log -v'
shows a deletion and a copy in its changed paths list, such as:
D /trunk/foo.c
diff --git a/subversion/tests/cmdline/getopt_tests_data/svn_help_stdout b/subversion/tests/cmdline/getopt_tests_data/svn_help_stdout
index 05f0aa8..ff73b51 100644
--- a/subversion/tests/cmdline/getopt_tests_data/svn_help_stdout
+++ b/subversion/tests/cmdline/getopt_tests_data/svn_help_stdout
@@ -47,9 +47,14 @@ Available subcommands:
unlock
update (up)
upgrade
- x-shelve (shelve)
- x-unshelve (unshelve)
- x-shelves (shelves)
+ x-shelf-diff
+ x-shelf-drop
+ x-shelf-list (x-shelves)
+ x-shelf-list-by-paths
+ x-shelf-log
+ x-shelf-save
+ x-shelve
+ x-unshelve
Subversion is a tool for version control.
For additional information, see http://subversion.apache.org/
diff --git a/subversion/tests/cmdline/iprop_authz_tests.py b/subversion/tests/cmdline/iprop_authz_tests.py
index 835cd37..c2a9d10 100755
--- a/subversion/tests/cmdline/iprop_authz_tests.py
+++ b/subversion/tests/cmdline/iprop_authz_tests.py
@@ -105,7 +105,7 @@ def iprops_authz(sbox):
write_authz_file(sbox, {
"/" : svntest.main.wc_author + "=rw",
"/A/D/H/psi" : svntest.main.wc_author + "=",})
- if sbox.repo_url.startswith("http"):
+ if svntest.main.is_ra_type_dav():
expected_err = ".*[Ff]orbidden.*"
else:
expected_err = ".*svn: E170001: Authorization failed.*"
diff --git a/subversion/tests/cmdline/lock_tests.py b/subversion/tests/cmdline/lock_tests.py
index cd8e0d2..3e2952c 100755
--- a/subversion/tests/cmdline/lock_tests.py
+++ b/subversion/tests/cmdline/lock_tests.py
@@ -1571,7 +1571,8 @@ def cp_isnt_ro(sbox):
mu2_path = sbox.ospath('A/mu2')
mu3_path = sbox.ospath('A/mu3')
kappa_path = sbox.ospath('kappa')
- open(kappa_path, 'w').write("This is the file 'kappa'.\n")
+ with open(kappa_path, 'w') as f:
+ f.write("This is the file 'kappa'.\n")
## added file
sbox.simple_add('kappa')
@@ -2251,7 +2252,6 @@ def dav_lock_refresh(sbox):
if r.status != httplib.OK:
raise svntest.Failure('Lock refresh failed: %d %s' % (r.status, r.reason))
-@SkipUnless(svntest.main.is_ra_type_dav)
def delete_locked_file_with_percent(sbox):
"lock and delete a file called 'a %( ) .txt'"
diff --git a/subversion/tests/cmdline/log_tests.py b/subversion/tests/cmdline/log_tests.py
index 484103a..559dfb5 100755
--- a/subversion/tests/cmdline/log_tests.py
+++ b/subversion/tests/cmdline/log_tests.py
@@ -1592,7 +1592,7 @@ def merge_sensitive_log_added_mergeinfo_replaces_inherited(sbox):
# a merge results in added explicit mergeinfo on a path, but that
# path previously inherited mergeinfo (rather than had no explicit
# or inherited mergeinfo). See issue #3235, specifically
- # http://subversion.tigris.org/issues/show_bug.cgi?id=3235#desc8.
+ # https://issues.apache.org/jira/browse/SVN-3235#desc8.
sbox.build()
wc_dir = sbox.wc_dir
@@ -1752,7 +1752,7 @@ def merge_sensitive_log_added_mergeinfo_replaces_inherited(sbox):
def merge_sensitive_log_propmod_merge_inheriting_path(sbox):
"log -g and simple propmod to merge-inheriting path"
- # Issue #3285 (http://subversion.tigris.org/issues/show_bug.cgi?id=3285)
+ # Issue #3285 (https://issues.apache.org/jira/browse/SVN-3285)
sbox.build()
wc_dir = sbox.wc_dir
@@ -2166,13 +2166,13 @@ def log_diff(sbox):
+ [ "@@ -1 +1,2 @@\n",
" This is the file 'beta'.\n",
"+9\n",
- "\ No newline at end of file\n",
+ "\\ No newline at end of file\n",
]
]
r8diff = [ make_diff_header('A2/D/G/rho', 'nonexistent', 'revision 8')
+ [ "@@ -0,0 +1 @@\n",
"+88\n",
- "\ No newline at end of file\n",
+ "\\ No newline at end of file\n",
]
]
log_chain = parse_log_output(output, with_diffs=True)
diff --git a/subversion/tests/cmdline/merge_authz_tests.py b/subversion/tests/cmdline/merge_authz_tests.py
index 8e14089..b26e9c7 100755
--- a/subversion/tests/cmdline/merge_authz_tests.py
+++ b/subversion/tests/cmdline/merge_authz_tests.py
@@ -486,7 +486,7 @@ def mergeinfo_and_skipped_paths(sbox):
def merge_fails_if_subtree_is_deleted_on_src(sbox):
"merge fails if subtree is deleted on src"
- ## See http://subversion.tigris.org/issues/show_bug.cgi?id=2876. ##
+ ## See https://issues.apache.org/jira/browse/SVN-2876. ##
# Create a WC
sbox.build()
@@ -613,7 +613,7 @@ def reintegrate_fails_if_no_root_access(sbox):
# should be able to reintegrate, regardless of what authorization
# they have to parents of the source and target.
#
- # See http://subversion.tigris.org/issues/show_bug.cgi?id=3242#desc78
+ # See https://issues.apache.org/jira/browse/SVN-3242#desc78
# Some paths we'll care about
wc_dir = sbox.wc_dir
diff --git a/subversion/tests/cmdline/merge_automatic_tests.py b/subversion/tests/cmdline/merge_automatic_tests.py
index f4bb231..fa00e04 100755
--- a/subversion/tests/cmdline/merge_automatic_tests.py
+++ b/subversion/tests/cmdline/merge_automatic_tests.py
@@ -1163,7 +1163,7 @@ def effective_sync_results_in_reintegrate(sbox):
# Now try an explicit --reintegrate merge from ^/branch to A.
# This should work because since the resolution of
- # http://subversion.tigris.org/issues/show_bug.cgi?id=3577
+ # https://issues.apache.org/jira/browse/SVN-3577
# if B is *effectively* synced with A, then B can be reintegrated
# to A.
sbox.simple_update()
diff --git a/subversion/tests/cmdline/merge_reintegrate_tests.py b/subversion/tests/cmdline/merge_reintegrate_tests.py
index 7a27373..1479400 100755
--- a/subversion/tests/cmdline/merge_reintegrate_tests.py
+++ b/subversion/tests/cmdline/merge_reintegrate_tests.py
@@ -1363,7 +1363,7 @@ def reintegrate_with_subtree_mergeinfo(sbox):
# how can any prop changes be merged to it? The answer is that
# the merge code does some quiet housekeeping, merging gamma_moved's
# inherited mergeinfo into its incoming mergeinfo, see
- # http://subversion.tigris.org/issues/show_bug.cgi?id=4309
+ # https://issues.apache.org/jira/browse/SVN-4309
# This test is not covering issue #4309 so we let the current
# behavior pass.
# r17 - B) Synch merge from A to A_COPY
diff --git a/subversion/tests/cmdline/merge_tests.py b/subversion/tests/cmdline/merge_tests.py
index a67dada..22b02dd 100755
--- a/subversion/tests/cmdline/merge_tests.py
+++ b/subversion/tests/cmdline/merge_tests.py
@@ -697,7 +697,7 @@ def simple_property_merges(sbox):
def merge_similar_unrelated_trees(sbox):
"merging similar trees ancestrally unrelated"
- ## See http://subversion.tigris.org/issues/show_bug.cgi?id=1249. ##
+ ## See https://issues.apache.org/jira/browse/SVN-1249. ##
sbox.build()
wc_dir = sbox.wc_dir
@@ -3939,7 +3939,7 @@ def avoid_repeated_merge_on_subtree_with_merge_info(sbox):
check_props=True)
# Test for part of Issue #2821, see
- # http://subversion.tigris.org/issues/show_bug.cgi?id=2821#desc22
+ # https://issues.apache.org/jira/browse/SVN-2821#desc22
#
# Revert all local changes.
svntest.actions.run_and_verify_svn(None, [], 'revert', '-R', wc_dir)
@@ -6007,7 +6007,7 @@ def foreign_repos_does_not_update_mergeinfo(sbox):
def avoid_reflected_revs(sbox):
"avoid repeated merges for cyclic merging"
- # See <http://subversion.tigris.org/issues/show_bug.cgi?id=2897>.
+ # See <https://issues.apache.org/jira/browse/SVN-2897>.
#
# This test cherry-picks some changes (all of them, in fact) from the
# parent branch 'A' to the child branch 'A_COPY', and then tries to
@@ -8294,7 +8294,7 @@ def cherry_picking(sbox):
def propchange_of_subdir_raises_conflict(sbox):
"merge of propchange on subdir raises conflict"
- ## See http://subversion.tigris.org/issues/show_bug.cgi?id=2969. ##
+ ## See https://issues.apache.org/jira/browse/SVN-2969. ##
# Create a WC with a single branch
sbox.build()
@@ -8515,7 +8515,7 @@ def reverse_merge_prop_add_on_child(sbox):
def merge_target_with_non_inheritable_mergeinfo(sbox):
"merge target with non inheritable mergeinfo"
- ## See http://subversion.tigris.org/issues/show_bug.cgi?id=2970. ##
+ ## See https://issues.apache.org/jira/browse/SVN-2970. ##
# Create a WC with a single branch
sbox.build()
@@ -8547,7 +8547,7 @@ def merge_target_with_non_inheritable_mergeinfo(sbox):
expected_output = wc.State(A_COPY_B_path, {
'lambda' : Item(status='U '),
})
- # Issue #3642 http://subversion.tigris.org/issues/show_bug.cgi?id=3642
+ # Issue #3642 https://issues.apache.org/jira/browse/SVN-3642
#
# We don't expect A_COPY/B/F to have mergeinfo recorded on it because
# not only is it unaffected by the merge at depth immediates, it could
@@ -8820,7 +8820,7 @@ def merge_from_renamed_branch_fails_while_avoiding_repeat_merge(sbox):
#Merge r4 from A/RENAMED_C to A/C
#Merge r2:5 from A/RENAMED_C to A/C <-- This fails tracked via #3032.
- ## See http://subversion.tigris.org/issues/show_bug.cgi?id=3032. ##
+ ## See https://issues.apache.org/jira/browse/SVN-3032. ##
# Create a WC with a single branch
sbox.build()
@@ -9250,7 +9250,7 @@ def new_subtrees_should_not_break_merge(sbox):
# so we expect only subtree merges on A_COPY/D, A_COPY_D_H, and
# A_COPY/D/H/nu. The fact that A/D/H/nu doesn't exist at r6 should not cause
# the merge to fail -- see
- # http://subversion.tigris.org/issues/show_bug.cgi?id=3067#desc7.
+ # https://issues.apache.org/jira/browse/SVN-3067#desc7.
expected_output = wc.State(A_COPY_path, {
'D/H/omega': Item(status='U '),
})
@@ -10495,7 +10495,7 @@ def reverse_merge_away_all_mergeinfo(sbox):
# Another test for issue #3067: 'subtrees with intersecting mergeinfo,
# that don't exist at the start of a merge range shouldn't break the
# merge'. Specifically see
-# http://subversion.tigris.org/issues/show_bug.cgi?id=3067#desc5
+# https://issues.apache.org/jira/browse/SVN-3067#desc5
@SkipUnless(server_has_mergeinfo)
@Issues(3138,3067,4217)
def dont_merge_revs_into_subtree_that_predate_it(sbox):
@@ -10614,7 +10614,7 @@ def dont_merge_revs_into_subtree_that_predate_it(sbox):
# Cherry harvest all eligible revisions from 'A/D/H' to 'H_COPY'.
#
# This is where we see the problem described in
- # http://subversion.tigris.org/issues/show_bug.cgi?id=3067#desc5.
+ # https://issues.apache.org/jira/browse/SVN-3067#desc5.
#
# Use run_and_verify_svn() because run_and_verify_merge*() require
# explicit revision ranges.
@@ -11786,7 +11786,7 @@ def subtree_source_missing_in_requested_range(sbox):
# Another test for issue #3067: 'subtrees that don't exist at the start
# or end of a merge range shouldn't break the merge'
#
-# See http://subversion.tigris.org/issues/show_bug.cgi?id=3067#desc34
+# See https://issues.apache.org/jira/browse/SVN-3067#desc34
@Issue(3067)
@SkipUnless(server_has_mergeinfo)
def subtrees_with_empty_mergeinfo(sbox):
@@ -13305,7 +13305,7 @@ def no_self_referential_filtering_on_added_path(sbox):
# how can any prop changes be merged to it? The answer is that
# the merge code does some quiet housekeeping, merging C_MOVED's
# inherited mergeinfo into its incoming mergeinfo, see
- # http://subversion.tigris.org/issues/show_bug.cgi?id=4309
+ # https://issues.apache.org/jira/browse/SVN-4309
# This test is not covering issue #4309 so we let the current
# behavior pass.
expected_mergeinfo_output = wc.State(A_COPY_2_path, {
@@ -13374,7 +13374,7 @@ def no_self_referential_filtering_on_added_path(sbox):
#----------------------------------------------------------------------
# Test for issue #3324
-# http://subversion.tigris.org/issues/show_bug.cgi?id=3324
+# https://issues.apache.org/jira/browse/SVN-3324
@Issue(3324)
@SkipUnless(server_has_mergeinfo)
def merge_range_prior_to_rename_source_existence(sbox):
@@ -13881,7 +13881,7 @@ def dont_merge_gaps_in_history(sbox):
#----------------------------------------------------------------------
# Test for issue #3432 'Merge can record mergeinfo from natural history
-# gaps'. See http://subversion.tigris.org/issues/show_bug.cgi?id=3432
+# gaps'. See https://issues.apache.org/jira/browse/SVN-3432
@Issue(3432)
@SkipUnless(server_has_mergeinfo)
def handle_gaps_in_implicit_mergeinfo(sbox):
@@ -15122,7 +15122,7 @@ def foreign_repos_del_and_props(sbox):
#----------------------------------------------------------------------
# Test for issue #3642 'immediate depth merges don't create proper subtree
-# mergeinfo'. See http://subversion.tigris.org/issues/show_bug.cgi?id=3642
+# mergeinfo'. See https://issues.apache.org/jira/browse/SVN-3642
@Issue(3642)
def immediate_depth_merge_creates_minimal_subtree_mergeinfo(sbox):
"no spurious mergeinfo from immediate depth merges"
@@ -15817,7 +15817,7 @@ def subtree_merges_inherit_invalid_working_mergeinfo(sbox):
#----------------------------------------------------------------------
# Test for issue #3686 'executable flag not correctly set on merge'
-# See http://subversion.tigris.org/issues/show_bug.cgi?id=3686
+# See https://issues.apache.org/jira/browse/SVN-3686
@Issue(3686)
@SkipUnless(server_has_mergeinfo)
@SkipUnless(svntest.main.is_posix_os)
diff --git a/subversion/tests/cmdline/merge_tree_conflict_tests.py b/subversion/tests/cmdline/merge_tree_conflict_tests.py
index 4f1805b..344c2d2 100755
--- a/subversion/tests/cmdline/merge_tree_conflict_tests.py
+++ b/subversion/tests/cmdline/merge_tree_conflict_tests.py
@@ -540,7 +540,7 @@ def merge_add_over_versioned_file_conflicts(sbox):
def mergeinfo_recording_in_skipped_merge(sbox):
"mergeinfo recording in skipped merge"
- ## See http://subversion.tigris.org/issues/show_bug.cgi?id=2829. ##
+ ## See https://issues.apache.org/jira/browse/SVN-2829. ##
# Create a WC with a single branch
sbox.build()
@@ -705,7 +705,7 @@ def del_differing_file(sbox):
def tree_conflicts_and_obstructions(sbox):
"tree conflicts and obstructions"
- ## See http://subversion.tigris.org/issues/show_bug.cgi?id=3146. ##
+ ## See https://issues.apache.org/jira/browse/SVN-3146. ##
sbox.build()
wc_dir = sbox.wc_dir
diff --git a/subversion/tests/cmdline/mergeinfo_tests.py b/subversion/tests/cmdline/mergeinfo_tests.py
index 328a9f2..fccf5fb 100755
--- a/subversion/tests/cmdline/mergeinfo_tests.py
+++ b/subversion/tests/cmdline/mergeinfo_tests.py
@@ -196,7 +196,7 @@ def mergeinfo_on_unknown_url(sbox):
# Test for issue #3126 'svn mergeinfo shows too few or too many
# eligible revisions'. Specifically
-# http://subversion.tigris.org/issues/show_bug.cgi?id=3126#desc5.
+# https://issues.apache.org/jira/browse/SVN-3126#desc5.
@SkipUnless(server_has_mergeinfo)
@Issue(3126)
def non_inheritable_mergeinfo(sbox):
diff --git a/subversion/tests/cmdline/mod_dav_svn_tests.py b/subversion/tests/cmdline/mod_dav_svn_tests.py
index db30533..db30533 100644..100755
--- a/subversion/tests/cmdline/mod_dav_svn_tests.py
+++ b/subversion/tests/cmdline/mod_dav_svn_tests.py
diff --git a/subversion/tests/cmdline/move_tests.py b/subversion/tests/cmdline/move_tests.py
index 1542af9..6da4a1d 100755
--- a/subversion/tests/cmdline/move_tests.py
+++ b/subversion/tests/cmdline/move_tests.py
@@ -1261,7 +1261,7 @@ def nested_replaces(sbox):
' D /A/B/C/Y',
]))
expected_output = svntest.verify.UnorderedRegexListOutput(escaped
- + [ '^-', '^r2', '^-', '^Changed paths:', ])
+ + [ '^--*', '^r2.*', '^--*', '^Changed paths:', ])
svntest.actions.run_and_verify_svn(expected_output, [],
'log', '-qvr2', repo_url)
diff --git a/subversion/tests/cmdline/patch_tests.py b/subversion/tests/cmdline/patch_tests.py
index 5d41dd6..3cd4dd7 100755
--- a/subversion/tests/cmdline/patch_tests.py
+++ b/subversion/tests/cmdline/patch_tests.py
@@ -4246,7 +4246,7 @@ def patch_git_with_index_line(sbox):
"+++ b/src/tools/ConsoleRunner/hi.txt\n",
"@@ -0,0 +1 @@\n",
"+hihihihihihi\n",
- "\ No newline at end of file\n",
+ "\\ No newline at end of file\n",
]
svntest.main.file_write(patch_file_path, ''.join(unidiff_patch))
@@ -4413,7 +4413,7 @@ def patch_replace_dir_with_file_and_vv(sbox):
"+++ A/D\t(working copy)\n",
"@@ -0,0 +1 @@\n",
"+New file\n",
- "\ No newline at end of file\n",
+ "\\ No newline at end of file\n",
# Add iota as directory
"Index: iota\n",
@@ -4426,7 +4426,7 @@ def patch_replace_dir_with_file_and_vv(sbox):
"Added: k\n",
"## -0,0 +1 ##\n",
"+v\n",
- "\ No newline at end of property\n",
+ "\\ No newline at end of property\n",
]))
expected_output = wc.State(wc_dir, {
@@ -6541,7 +6541,7 @@ def patch_prop_madness(sbox):
"Property: del_n\n"
"## -1,1 +0,0 ##\n"
"-no-eol\n"
- "\ No newline at end of property\n"
+ "\\ No newline at end of property\n"
% (sbox.path('iota'),
sbox.path('iota'))),
})
@@ -7791,6 +7791,225 @@ def patch_merge(sbox):
expected_disk, None,
expected_skip)
+def patch_mergeinfo_in_regular_prop_format(sbox):
+ "patch mergeinfo in regular prop format"
+
+ sbox.build()
+ wc_dir = sbox.wc_dir
+ strip_count = wc_dir.count(os.path.sep)+1
+
+ sbox.simple_copy('A/B/E', 'E')
+ sbox.simple_append('A/B/E/alpha', 'extra\nlines\n')
+ sbox.simple_commit()
+
+ sbox.simple_propset('a', 'A', 'E') # 'a' < 'svn:mergeinfo'
+ sbox.simple_propset('z', 'Z', 'E') # 'z' > 'svn:mergeinfo'
+
+ svntest.actions.run_and_verify_svn(None, [],
+ 'merge', '^/A/B/E', sbox.ospath('E'))
+ # Rename 'svn:mergeinfo' to 'svn_mergeinfo' so that 'diff' doesn't
+ # pretty-print it; then rename it back before we run it through 'patch'.
+ # (Alternatively, we could disable pretty-printing when we implement a
+ # command-line switch to do so.)
+ mergeinfo_value = sbox.simple_propget('svn:mergeinfo', 'E')
+ sbox.simple_propdel('svn:mergeinfo', 'E')
+ sbox.simple_propset('svn_mergeinfo', mergeinfo_value, 'E')
+
+ _, diff, _ = svntest.actions.run_and_verify_svn(None, [],
+ 'diff', wc_dir)
+ diff = re.sub('svn_mergeinfo', 'svn:mergeinfo', ''.join(diff))
+
+ sbox.simple_revert('E', 'E/alpha')
+
+ patch = sbox.get_tempname('recurse.patch')
+ svntest.main.file_write(patch, diff, mode='wb')
+
+ expected_output = wc.State(wc_dir, {
+ 'E' : Item(status=' U'),
+ 'E/alpha' : Item(status='U '),
+ })
+ expected_skip = wc.State(wc_dir, {})
+ expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
+ expected_status.add({
+ 'E' : Item(status=' M', wc_rev='2'),
+ 'E/alpha' : Item(status='M ', wc_rev='2'),
+ 'E/beta' : Item(status=' ', wc_rev='2'),
+ })
+ expected_status.tweak('A/B/E/alpha', wc_rev=2)
+ expected_disk = svntest.main.greek_state.copy()
+ expected_disk.tweak('A/B/E/alpha', contents="This is the file 'alpha'.\nextra\nlines\n")
+ expected_disk.add({
+ 'E' : Item(props={'a': 'A',
+ # here is the correctly patched mergeinfo
+ 'svn:mergeinfo': '/A/B/E:2',
+ 'z': 'Z'}),
+ 'E/beta' : Item(contents="This is the file 'beta'.\n"),
+ 'E/alpha' : Item(contents="This is the file 'alpha'.\nextra\nlines\n"),
+ })
+
+ svntest.actions.run_and_verify_patch(wc_dir, patch,
+ expected_output, expected_disk,
+ expected_status, expected_skip,
+ [], True, True,
+ '--strip', strip_count)
+
+@XFail()
+def patch_empty_prop(sbox):
+ "patch empty prop"
+ sbox.build(empty=True)
+ was_cwd = os.getcwd()
+ os.chdir(sbox.wc_dir)
+ sbox.wc_dir = ''
+ wc_dir = ''
+
+ # start with a file with an empty prop
+ sbox.simple_add_text('', 'f')
+ sbox.simple_propset('p', '', 'f')
+ sbox.simple_commit()
+
+ # a patch that modifies the prop to a non-empty value
+ unidiff_patch = [
+ "--- f\n",
+ "+++ f\n",
+ "\n",
+ "Property changes on: f\n",
+ "___________________________________________________________________\n",
+ "Modified: p\n",
+ "## -0,0 +1 ##\n",
+ "+v\n",
+ ]
+
+ trailing_eol = False
+ if trailing_eol:
+ value = "v\n"
+ else:
+ value = "v"
+ unidiff_patch += ['\ No newline at end of property\n']
+
+ patch_file_path = sbox.get_tempname('my.patch')
+ svntest.main.file_write(patch_file_path, ''.join(unidiff_patch), 'wb')
+
+ expected_output = [
+ ' U %s\n' % sbox.ospath('f'),
+ ]
+
+ expected_disk = svntest.wc.State(wc_dir, {})
+ expected_disk.add({'f': Item(props={'p' : value})})
+ expected_status = svntest.wc.State(wc_dir, {})
+ expected_status.add({'f': Item(status=' M')})
+ expected_skip = wc.State('', { })
+
+ svntest.actions.run_and_verify_patch(wc_dir, patch_file_path,
+ expected_output,
+ expected_disk,
+ expected_status,
+ expected_skip,
+ None, # expected err
+ 1, # check-props
+ False, # dry-run
+ )
+
+ svntest.actions.check_prop('p', wc_dir, [value.encode()])
+
+ os.chdir(was_cwd)
+
+# Test that 'patch' can apply a patch that modifies properties on the root
+# of a WC and/or the root of a repository. This test uses the format of
+# diff output produced by 'svn diff --git' in svn <= 1.10.0: paths are given
+# as 'a/' and 'b/' and 'Property changes on: ' (with no following '.').
+#
+# See dev@ email thread 2018-07-09 from Dmitry Pavlenko,
+# '[PATCH] can't "svn patch" working copy root if the patch is in --git format',
+# https://lists.apache.org/thread.html/d1d9811ca36fac8cabb9339634840099e22811beac505be2ea59f19f@%3Cdev.subversion.apache.org%3E
+@XFail()
+def patch_git_wcroot(sbox):
+ "patch working copy root"
+ sbox.build(empty=True)
+ wc_dir = sbox.wc_dir
+
+ git_patch = [ "Index: .\n",
+ "===================================================================\n",
+ "diff --git a/ b/\n",
+ "--- a/ (revision 0)\n",
+ "+++ b/ (working copy)\n",
+ "Property changes on: \n",
+ "___________________________________________________________________\n",
+ "Added: p\n",
+ "## -0,0 +1 ##\n",
+ "+v\n",
+ "\\ No newline at end of property\n",
+ ]
+ value = 'v'
+
+ patch_file_path = sbox.get_tempname('my.patch')
+ svntest.main.file_write(patch_file_path, ''.join(git_patch), 'wb')
+
+ expected_output = wc.State(wc_dir, {
+ '.' : Item(status=' U'),
+ })
+ expected_disk = svntest.wc.State('', {})
+ expected_disk.add({'': Item(props={'p' : value })})
+ expected_status = svntest.wc.State(wc_dir, {})
+ expected_status.add({'': Item(status=' M', wc_rev='0')})
+ expected_skip = wc.State('', { })
+
+ svntest.actions.run_and_verify_patch(wc_dir, patch_file_path,
+ expected_output,
+ expected_disk,
+ expected_status,
+ expected_skip,
+ None, # expected err
+ True, # check-props
+ False, # dry-run
+ )
+
+ svntest.actions.check_prop('p', wc_dir, [value.encode()])
+
+# Test that 'patch' can apply a patch that modifies properties on the root
+# of a WC and/or the root of a repository. This test performs a round-trip
+# through 'diff --git' and 'patch' rather than assuming any particular
+# variant of the patch format.
+#
+# See dev@ email thread 2018-07-09 from Dmitry Pavlenko,
+# '[PATCH] can't "svn patch" working copy root if the patch is in --git format',
+# https://lists.apache.org/thread.html/d1d9811ca36fac8cabb9339634840099e22811beac505be2ea59f19f@%3Cdev.subversion.apache.org%3E
+@XFail()
+def patch_git_wcroot2(sbox):
+ "patch working copy root"
+ sbox.build(empty=True)
+ wc_dir = sbox.wc_dir
+
+ value = 'v'
+ sbox.simple_propset('p', value, '')
+ exit_code, git_patch, err_output = svntest.main.run_svn(None, 'diff',
+ '--git', wc_dir)
+
+ patch_file_path = sbox.get_tempname('my.patch')
+ svntest.main.file_write(patch_file_path, ''.join(git_patch), 'wb')
+
+ sbox.simple_revert('')
+
+ expected_output = wc.State(wc_dir, {
+ '.' : Item(status=' U'),
+ })
+ expected_disk = svntest.wc.State('', {})
+ expected_disk.add({'': Item(props={'p' : value })})
+ expected_status = svntest.wc.State(wc_dir, {})
+ expected_status.add({'': Item(status=' M', wc_rev='0')})
+ expected_skip = wc.State('', { })
+
+ svntest.actions.run_and_verify_patch(wc_dir, patch_file_path,
+ expected_output,
+ expected_disk,
+ expected_status,
+ expected_skip,
+ None, # expected err
+ True, # check-props
+ False, # dry-run
+ )
+
+ svntest.actions.check_prop('p', wc_dir, [value.encode()])
+
########################################################################
#Run the tests
@@ -7874,6 +8093,10 @@ test_list = [ None,
missing_trailing_context,
patch_missed_trail,
patch_merge,
+ patch_mergeinfo_in_regular_prop_format,
+ patch_empty_prop,
+ patch_git_wcroot,
+ patch_git_wcroot2,
]
if __name__ == '__main__':
diff --git a/subversion/tests/cmdline/prop_tests.py b/subversion/tests/cmdline/prop_tests.py
index 3709b20..ada2e09 100755
--- a/subversion/tests/cmdline/prop_tests.py
+++ b/subversion/tests/cmdline/prop_tests.py
@@ -1768,7 +1768,7 @@ def rm_of_replaced_file(sbox):
'proplist', '-v',
mu_path + '@base')
expected_output = svntest.verify.UnorderedRegexListOutput([
- 'Properties on',
+ 'Properties on.*',
' yellow',
' submarine',
' orange',
diff --git a/subversion/tests/cmdline/revert_tests.py b/subversion/tests/cmdline/revert_tests.py
index 39ce3c6..5bb6870 100755
--- a/subversion/tests/cmdline/revert_tests.py
+++ b/subversion/tests/cmdline/revert_tests.py
@@ -1550,11 +1550,14 @@ def revert_with_unversioned_targets(sbox):
psi_contents = "modified psi\n"
# touch delta
- open(delta_path, 'w').write(delta_contents)
+ with open(delta_path, 'w') as f:
+ f.write(delta_contents)
# modify chi psi
- open(chi_path, 'w').write(chi_contents)
- open(psi_path, 'w').write(psi_contents)
+ with open(chi_path, 'w') as f:
+ f.write(chi_contents)
+ with open(psi_path, 'w') as f:
+ f.write(psi_contents)
# revert
expected_output = svntest.verify.UnorderedOutput([
diff --git a/subversion/tests/cmdline/shelf_tests.py b/subversion/tests/cmdline/shelf_tests.py
new file mode 100755
index 0000000..899d250
--- /dev/null
+++ b/subversion/tests/cmdline/shelf_tests.py
@@ -0,0 +1,995 @@
+#!/usr/bin/env python
+#
+# shelf_tests.py: testing shelving
+#
+# Subversion is a tool for revision control.
+# See http://subversion.apache.org for more information.
+#
+# ====================================================================
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+######################################################################
+
+# General modules
+import shutil, stat, re, os, logging
+
+logger = logging.getLogger()
+
+# Our testing module
+import svntest
+from svntest import wc
+from svntest.verify import make_diff_header, make_no_diff_deleted_header, \
+ make_git_diff_header, make_diff_prop_header, \
+ make_diff_prop_val, make_diff_prop_deleted, \
+ make_diff_prop_added, make_diff_prop_modified
+
+# (abbreviation)
+Skip = svntest.testcase.Skip_deco
+SkipUnless = svntest.testcase.SkipUnless_deco
+XFail = svntest.testcase.XFail_deco
+Issues = svntest.testcase.Issues_deco
+Issue = svntest.testcase.Issue_deco
+Wimp = svntest.testcase.Wimp_deco
+Item = wc.StateItem
+
+#----------------------------------------------------------------------
+
+def state_from_status(wc_dir,
+ v=True, u=True, q=True):
+ opts = ()
+ if v:
+ opts += ('-v',)
+ if u:
+ opts += ('-u',)
+ if q:
+ opts += ('-q',)
+ _, output, _ = svntest.main.run_svn(None, 'status', wc_dir, *opts)
+ return svntest.wc.State.from_status(output, wc_dir)
+
+def get_wc_state(wc_dir):
+ """Return a description of the WC state. Include as much info as shelving
+ should be capable of restoring.
+ """
+ return (state_from_status(wc_dir),
+ svntest.wc.State.from_wc(wc_dir, load_props=True),
+ )
+
+def check_wc_state(wc_dir, expected):
+ """Check a description of the WC state. Include as much info as shelving
+ should be capable of restoring.
+ """
+ expect_st, expect_wc = expected
+ actual_st, actual_wc = get_wc_state(wc_dir)
+
+ # Verify actual status against expected status.
+ try:
+ expect_st.compare_and_display('status', actual_st)
+ except svntest.tree.SVNTreeError:
+ svntest.actions._log_tree_state("EXPECT STATUS TREE:", expect_st.old_tree(),
+ wc_dir)
+ svntest.actions._log_tree_state("ACTUAL STATUS TREE:", actual_st.old_tree(),
+ wc_dir)
+ raise
+
+ # Verify actual WC against expected WC.
+ try:
+ expect_wc.compare_and_display('status', actual_wc)
+ except svntest.tree.SVNTreeError:
+ svntest.actions._log_tree_state("EXPECT WC TREE:", expect_wc.old_tree(),
+ wc_dir)
+ svntest.actions._log_tree_state("ACTUAL WC TREE:", actual_wc.old_tree(),
+ wc_dir)
+ raise
+
+def shelve_unshelve_verify(sbox, modifier, cannot_shelve=False):
+ """Round-trip: shelve; verify all changes are reverted;
+ unshelve; verify all changes are restored.
+ """
+
+ wc_dir = sbox.wc_dir
+ virginal_state = get_wc_state(wc_dir)
+
+ # Make some changes to the working copy
+ modifier(sbox)
+
+ # Save the modified state
+ modified_state = get_wc_state(wc_dir)
+
+ if cannot_shelve:
+ svntest.actions.run_and_verify_svn(None, '.* could not be shelved.*',
+ 'x-shelve', 'foo')
+ return
+
+ # Shelve; check there are no longer any modifications
+ svntest.actions.run_and_verify_svn(None, [],
+ 'x-shelve', 'foo')
+ check_wc_state(wc_dir, virginal_state)
+
+ # List; ensure the shelf is listed
+ expected_output = svntest.verify.RegexListOutput(
+ [r'foo\s*version \d+.*',
+ r' ',
+ ])
+ svntest.actions.run_and_verify_svn(expected_output, [], 'x-shelves')
+
+ # Unshelve; check the original modifications are here again
+ svntest.actions.run_and_verify_svn(None, [],
+ 'x-unshelve', 'foo')
+ check_wc_state(wc_dir, modified_state)
+
+#----------------------------------------------------------------------
+
+def shelve_unshelve(sbox, modifier, cannot_shelve=False):
+ """Round-trip: build 'sbox'; apply changes by calling 'modifier(sbox)';
+ shelve and unshelve; verify changes are fully reverted and restored.
+ """
+
+ if not sbox.is_built():
+ sbox.build()
+ was_cwd = os.getcwd()
+ os.chdir(sbox.wc_dir)
+ sbox.wc_dir = ''
+
+ shelve_unshelve_verify(sbox, modifier, cannot_shelve)
+
+ os.chdir(was_cwd)
+
+######################################################################
+# Tests
+#
+# Each test must return on success or raise on failure.
+
+def shelve_text_mods(sbox):
+ "shelve text mods"
+
+ def modifier(sbox):
+ sbox.simple_append('A/mu', 'appended mu text')
+
+ shelve_unshelve(sbox, modifier)
+
+#----------------------------------------------------------------------
+
+def shelve_prop_changes(sbox):
+ "shelve prop changes"
+
+ def modifier(sbox):
+ sbox.simple_propset('p', 'v', 'A')
+ sbox.simple_propset('p', 'v', 'A/mu')
+
+ shelve_unshelve(sbox, modifier)
+
+#----------------------------------------------------------------------
+
+def shelve_adds(sbox):
+ "shelve adds"
+
+ def modifier(sbox):
+ sbox.simple_add_text('A new file\n', 'A/new')
+ sbox.simple_add_text('A new file\n', 'A/new2')
+ sbox.simple_propset('p', 'v', 'A/new2')
+
+ shelve_unshelve(sbox, modifier)
+
+#----------------------------------------------------------------------
+
+@Issue(4709)
+def shelve_deletes(sbox):
+ "shelve deletes"
+
+ def modifier(sbox):
+ sbox.simple_rm('A/mu')
+
+ shelve_unshelve(sbox, modifier)
+
+#----------------------------------------------------------------------
+
+def shelve_replace(sbox):
+ "shelve replace"
+
+ def modifier(sbox):
+ sbox.simple_rm('A/mu')
+ sbox.simple_add_text('Replacement\n', 'A/mu')
+ sbox.simple_propset('p', 'v', 'A/mu')
+
+ shelve_unshelve(sbox, modifier)
+
+#----------------------------------------------------------------------
+
+def shelve_empty_adds(sbox):
+ "shelve empty adds"
+ sbox.build(empty=True)
+
+ def modifier(sbox):
+ sbox.simple_add_text('', 'empty')
+ sbox.simple_add_text('', 'empty-with-prop')
+ sbox.simple_propset('p', 'v', 'empty-with-prop')
+
+ shelve_unshelve(sbox, modifier)
+
+#----------------------------------------------------------------------
+
+def shelve_empty_deletes(sbox):
+ "shelve empty deletes"
+ sbox.build(empty=True)
+ sbox.simple_add_text('', 'empty')
+ sbox.simple_add_text('', 'empty-with-prop')
+ sbox.simple_propset('p', 'v', 'empty-with-prop')
+ sbox.simple_commit()
+
+ def modifier(sbox):
+ sbox.simple_rm('empty', 'empty-with-prop')
+
+ shelve_unshelve(sbox, modifier)
+
+#----------------------------------------------------------------------
+
+def shelve_from_inner_path(sbox):
+ "shelve from inner path"
+
+ def modifier(sbox):
+ sbox.simple_append('A/mu', 'appended mu text')
+
+ sbox.build()
+ was_cwd = os.getcwd()
+ os.chdir(sbox.ospath('A'))
+ sbox.wc_dir = '..'
+
+ shelve_unshelve_verify(sbox, modifier)
+
+ os.chdir(was_cwd)
+
+#----------------------------------------------------------------------
+
+def save_revert_restore(sbox, modifier1, modifier2):
+ "Save 2 checkpoints; revert; restore 1st"
+
+ sbox.build()
+ was_cwd = os.getcwd()
+ os.chdir(sbox.wc_dir)
+ sbox.wc_dir = ''
+ wc_dir = ''
+
+ initial_state = get_wc_state(wc_dir)
+
+ # Make some changes to the working copy
+ modifier1(sbox)
+
+ # Remember the modified state
+ modified_state1 = get_wc_state(wc_dir)
+
+ # Save a checkpoint; check nothing changed
+ svntest.actions.run_and_verify_svn(None, [],
+ 'x-shelf-save', 'foo')
+ check_wc_state(wc_dir, modified_state1)
+
+ # Modify again; remember the state; save a checkpoint
+ modifier2(sbox)
+ modified_state2 = get_wc_state(wc_dir)
+ svntest.actions.run_and_verify_svn(None, [],
+ 'x-shelf-save', 'foo')
+ check_wc_state(wc_dir, modified_state2)
+
+ # Revert
+ svntest.actions.run_and_verify_svn(None, [],
+ 'revert', '-R', '.')
+ check_wc_state(wc_dir, initial_state)
+
+ # Restore; check the original modifications are here again
+ svntest.actions.run_and_verify_svn(None, [],
+ 'x-unshelve', 'foo', '1')
+ check_wc_state(wc_dir, modified_state1)
+
+ os.chdir(was_cwd)
+
+#----------------------------------------------------------------------
+
+def checkpoint_basic(sbox):
+ "checkpoint basic"
+
+ def modifier1(sbox):
+ sbox.simple_append('A/mu', 'appended mu text\n')
+
+ def modifier2(sbox):
+ sbox.simple_append('iota', 'appended iota text\n')
+ sbox.simple_append('A/mu', 'appended another line\n')
+
+ save_revert_restore(sbox, modifier1, modifier2)
+
+#----------------------------------------------------------------------
+
+@Issue(3747)
+def shelve_mergeinfo(sbox):
+ "shelve mergeinfo"
+
+ def modifier(sbox):
+ sbox.simple_propset('svn:mergeinfo', '/trunk/A:1-3,10', 'A')
+ sbox.simple_propset('svn:mergeinfo', '/trunk/A/mu:1-3,10', 'A/mu')
+
+ shelve_unshelve(sbox, modifier)
+
+#----------------------------------------------------------------------
+
+def unshelve_refuses_if_conflicts(sbox):
+ "unshelve refuses if conflicts"
+
+ def modifier1(sbox):
+ sbox.simple_append('alpha', 'A-mod1\nB\nC\nD\n', truncate=True)
+ sbox.simple_append('beta', 'A-mod1\nB\nC\nD\n', truncate=True)
+
+ def modifier2(sbox):
+ sbox.simple_append('beta', 'A-mod2\nB\nC\nD\n', truncate=True)
+
+ sbox.build(empty=True)
+ was_cwd = os.getcwd()
+ os.chdir(sbox.wc_dir)
+ sbox.wc_dir = ''
+ wc_dir = ''
+
+ sbox.simple_add_text('A\nB\nC\nD\n', 'alpha')
+ sbox.simple_add_text('A\nB\nC\nD\n', 'beta')
+ sbox.simple_commit()
+ initial_state = get_wc_state(wc_dir)
+
+ # Make initial mods; remember this modified state
+ modifier1(sbox)
+ modified_state1 = get_wc_state(wc_dir)
+ assert modified_state1 != initial_state
+
+ # Shelve; check there are no longer any local mods
+ svntest.actions.run_and_verify_svn(None, [],
+ 'x-shelve', 'foo')
+ check_wc_state(wc_dir, initial_state)
+
+ # Make a different local mod that will conflict with the shelf
+ modifier2(sbox)
+ modified_state2 = get_wc_state(wc_dir)
+
+ # Try to unshelve; check it fails with an error about a conflict
+ svntest.actions.run_and_verify_svn(None, '.*[Cc]onflict.*',
+ 'x-unshelve', 'foo')
+ # Check nothing changed in the attempt
+ check_wc_state(wc_dir, modified_state2)
+
+#----------------------------------------------------------------------
+
+def shelve_binary_file_mod(sbox):
+ "shelve binary file mod"
+
+ sbox.build(empty=True)
+
+ existing_files = ['A/B/existing']
+ mod_files = ['bin', 'A/B/bin']
+
+ sbox.simple_mkdir('A', 'A/B')
+ for f in existing_files + mod_files:
+ sbox.simple_add_text('\0\1\2\3\4\5', f)
+ sbox.simple_commit()
+
+ def modifier(sbox):
+ for f in mod_files:
+ sbox.simple_append(f, '\6\5\4\3\2\1\0', truncate=True)
+
+ shelve_unshelve(sbox, modifier)
+
+#----------------------------------------------------------------------
+
+def shelve_binary_file_add(sbox):
+ "shelve binary file add"
+
+ sbox.build(empty=True)
+
+ existing_files = ['A/B/existing']
+ mod_files = ['bin', 'A/B/bin']
+
+ sbox.simple_mkdir('A', 'A/B')
+ for f in existing_files:
+ sbox.simple_add_text('\0\1\2\3\4\5', f)
+ sbox.simple_commit()
+
+ def modifier(sbox):
+ for f in mod_files:
+ sbox.simple_add_text('\0\1\2\3\4\5', f)
+
+ shelve_unshelve(sbox, modifier)
+
+#----------------------------------------------------------------------
+
+def shelve_binary_file_del(sbox):
+ "shelve binary file del"
+
+ sbox.build(empty=True)
+
+ existing_files = ['A/B/existing']
+ mod_files = ['bin', 'A/B/bin']
+
+ sbox.simple_mkdir('A', 'A/B')
+ for f in existing_files + mod_files:
+ sbox.simple_add_text('\0\1\2\3\4\5', f)
+ sbox.simple_commit()
+
+ def modifier(sbox):
+ for f in mod_files:
+ sbox.simple_rm(f)
+
+ shelve_unshelve(sbox, modifier)
+
+#----------------------------------------------------------------------
+
+def shelve_binary_file_replace(sbox):
+ "shelve binary file replace"
+
+ sbox.build(empty=True)
+
+ existing_files = ['A/B/existing']
+ mod_files = ['bin', 'A/B/bin']
+
+ sbox.simple_mkdir('A', 'A/B')
+ for f in existing_files + mod_files:
+ sbox.simple_add_text('\0\1\2\3\4\5', f)
+ sbox.simple_commit()
+
+ def modifier(sbox):
+ for f in mod_files:
+ sbox.simple_rm(f)
+ sbox.simple_add_text('\6\5\4\3\2\1\0', f)
+
+ shelve_unshelve(sbox, modifier)
+
+#----------------------------------------------------------------------
+
+def shelve_with_log_message(sbox):
+ "shelve with log message"
+
+ sbox.build(empty=True)
+ was_cwd = os.getcwd()
+ os.chdir(sbox.wc_dir)
+ sbox.wc_dir = ''
+
+ sbox.simple_add_text('New file', 'f')
+ log_message = 'Log message for foo'
+ svntest.actions.run_and_verify_svn(None, [],
+ 'x-shelve', 'foo', '-m', log_message)
+ expected_output = svntest.verify.RegexListOutput(
+ ['foo .*',
+ ' ' + log_message
+ ])
+ svntest.actions.run_and_verify_svn(expected_output, [],
+ 'x-shelf-list')
+
+ os.chdir(was_cwd)
+
+#----------------------------------------------------------------------
+
+def run_and_verify_status(wc_dir_name, status_tree, changelists=[]):
+ """Run 'status' on WC_DIR_NAME and compare it with the
+ expected STATUS_TREE.
+ Returns on success, raises on failure."""
+
+ if not isinstance(status_tree, wc.State):
+ raise TypeError('wc.State tree expected')
+
+ cl_opts = ('--cl=' + cl for cl in changelists)
+ exit_code, output, errput = svntest.main.run_svn(None, 'status', '-q',
+ wc_dir_name, *cl_opts)
+
+ actual_status = svntest.wc.State.from_status(output, wc_dir=wc_dir_name)
+
+ # Verify actual output against expected output.
+ try:
+ status_tree.compare_and_display('status', actual_status)
+ except svntest.tree.SVNTreeError:
+ svntest.actions._log_tree_state("ACTUAL STATUS TREE:", actual_status.old_tree(),
+ wc_dir_name)
+ raise
+
+def run_and_verify_shelf_status(wc_dir, expected_status, shelf):
+ run_and_verify_status(wc_dir, expected_status,
+ changelists=['svn:shelf:' + shelf])
+
+def shelf_status(sbox):
+ "shelf status"
+
+ sbox.build()
+ was_cwd = os.getcwd()
+ os.chdir(sbox.wc_dir)
+ sbox.wc_dir = ''
+
+ sbox.simple_add_text('New file', 'f')
+ sbox.simple_append('iota', 'New text')
+ sbox.simple_propset('p', 'v', 'A/mu')
+ sbox.simple_rm('A/B/lambda')
+ # Not yet supported:
+ #sbox.simple_rm('A/B/E')
+ expected_status = state_from_status(sbox.wc_dir, v=False, u=False, q=False)
+ run_and_verify_status(sbox.wc_dir, expected_status)
+
+ svntest.actions.run_and_verify_svn(None, [],
+ 'x-shelve', 'foo')
+ run_and_verify_shelf_status(sbox.wc_dir, expected_status, shelf='foo')
+
+ os.chdir(was_cwd)
+
+#----------------------------------------------------------------------
+
+def shelve_mkdir(sbox):
+ "shelve mkdir"
+
+ sbox.build()
+
+ def modifier(sbox):
+ sbox.simple_mkdir('D', 'D/D2')
+ sbox.simple_propset('p', 'v', 'D', 'D/D2')
+
+ shelve_unshelve(sbox, modifier, cannot_shelve=True)
+
+#----------------------------------------------------------------------
+
+def shelve_rmdir(sbox):
+ "shelve rmdir"
+
+ sbox.build()
+ sbox.simple_propset('p', 'v', 'A/C')
+ sbox.simple_commit()
+
+ def modifier(sbox):
+ sbox.simple_rm('A/C', 'A/D/G')
+
+ shelve_unshelve(sbox, modifier, cannot_shelve=True)
+
+#----------------------------------------------------------------------
+
+def shelve_replace_dir(sbox):
+ "shelve replace dir"
+
+ sbox.build()
+ sbox.simple_propset('p', 'v', 'A/C')
+ sbox.simple_commit()
+
+ def modifier(sbox):
+ sbox.simple_rm('A/C', 'A/D/G')
+ sbox.simple_mkdir('A/C', 'A/C/D2')
+
+ shelve_unshelve(sbox, modifier, cannot_shelve=True)
+
+#----------------------------------------------------------------------
+
+def shelve_file_copy(sbox):
+ "shelve file copy"
+
+ sbox.build()
+
+ def modifier(sbox):
+ sbox.simple_copy('iota', 'A/ii')
+ sbox.simple_propset('p', 'v', 'A/ii')
+
+ shelve_unshelve(sbox, modifier, cannot_shelve=True)
+
+#----------------------------------------------------------------------
+
+def shelve_dir_copy(sbox):
+ "shelve dir copy"
+
+ sbox.build()
+
+ def modifier(sbox):
+ sbox.simple_copy('A/B', 'BB')
+ sbox.simple_propset('p', 'v', 'BB')
+
+ shelve_unshelve(sbox, modifier, cannot_shelve=True)
+
+#----------------------------------------------------------------------
+
+def list_shelves(sbox):
+ "list_shelves"
+
+ sbox.build()
+ was_cwd = os.getcwd()
+ os.chdir(sbox.wc_dir)
+ sbox.wc_dir = ''
+
+ # an empty list
+ svntest.actions.run_and_verify_svn([], [],
+ 'x-shelf-list', '-q')
+
+ # make two shelves
+ sbox.simple_append('A/mu', 'appended mu text')
+ svntest.actions.run_and_verify_svn(None, [],
+ 'x-shelf-save', 'foo')
+ sbox.simple_append('A/mu', 'appended more text')
+ svntest.actions.run_and_verify_svn(None, [],
+ 'x-shelf-save', 'foo', '-m', 'log msg')
+ svntest.actions.run_and_verify_svn(None, [],
+ 'x-shelf-save', 'bar', '-m', 'log msg')
+
+ # We don't check for time-ordering of the shelves. If we want to do so, we
+ # would need to sleep for timestamps to differ, between creating them.
+
+ # a quiet list
+ expected_out = svntest.verify.UnorderedRegexListOutput(['foo', 'bar'])
+ svntest.actions.run_and_verify_svn(expected_out, [],
+ 'x-shelf-list', '-q')
+
+ # a detailed list
+ expected_out = svntest.verify.UnorderedRegexListOutput(['foo .* 1 path.*',
+ ' log msg',
+ 'bar .* 1 path.*',
+ ' log msg'])
+ svntest.actions.run_and_verify_svn(expected_out, [],
+ 'x-shelf-list')
+
+ os.chdir(was_cwd)
+
+#----------------------------------------------------------------------
+
+def refuse_to_shelve_conflict(sbox):
+ "refuse to shelve conflict"
+
+ sbox.build(empty=True)
+ was_cwd = os.getcwd()
+ os.chdir(sbox.wc_dir)
+ sbox.wc_dir = ''
+
+ # create a tree conflict victim at an unversioned path
+ sbox.simple_mkdir('topdir')
+ sbox.simple_commit()
+ sbox.simple_mkdir('topdir/subdir')
+ sbox.simple_commit()
+ sbox.simple_update()
+ sbox.simple_rm('topdir')
+ sbox.simple_commit()
+ sbox.simple_update()
+ svntest.actions.run_and_verify_svn(
+ None, [],
+ 'merge', '-c2', '.', '--ignore-ancestry', '--accept', 'postpone')
+ svntest.actions.run_and_verify_svn(
+ None, 'svn: E155015:.*existing.*conflict.*',
+ 'merge', '-c1', '.', '--ignore-ancestry', '--accept', 'postpone')
+
+ # attempt to shelve
+ expected_out = svntest.verify.RegexListOutput([
+ r'--- .*',
+ r'--- .*',
+ r'\? C topdir',
+ r' > .*',
+ r' > not shelved'])
+ svntest.actions.run_and_verify_svn(expected_out,
+ '.* 1 path could not be shelved',
+ 'x-shelf-save', 'foo')
+
+ os.chdir(was_cwd)
+
+#----------------------------------------------------------------------
+
+def unshelve_with_merge(sbox, setup, modifier1, modifier2, tweak_expected_state):
+ """Run a test scenario in which 'unshelve' needs to merge some shelved
+ changes made by modifier1() with some committed changes made by
+ modifier2(). tweak_expected_state() must produce the expected WC state.
+ """
+ sbox.build()
+ was_cwd = os.getcwd()
+ os.chdir(sbox.wc_dir)
+ sbox.wc_dir = ''
+ wc_dir = sbox.wc_dir
+
+ setup(sbox)
+ sbox.simple_commit()
+ initial_state = get_wc_state(wc_dir)
+
+ # Make some changes to the working copy
+ modifier1(sbox)
+ modified_state = get_wc_state(wc_dir)
+
+ # Shelve; check there are no longer any modifications
+ svntest.actions.run_and_verify_svn(None, [],
+ 'x-shelve', 'foo')
+ check_wc_state(wc_dir, initial_state)
+
+ # Make a different change, with which we shall merge
+ modifier2(sbox)
+ sbox.simple_commit()
+ modified_state[0].tweak('A/mu', wc_rev='3')
+
+ # Unshelve; check the expected result of the merge
+ svntest.actions.run_and_verify_svn(None, [],
+ 'x-unshelve', 'foo')
+ tweak_expected_state(modified_state)
+ check_wc_state(wc_dir, modified_state)
+
+ os.chdir(was_cwd)
+
+def unshelve_text_mod_merge(sbox):
+ "unshelve text mod merge"
+
+ orig_contents='A\nB\nC\nD\nE\n'
+ mod1_contents='A\nBB\nC\nD\nE\n'
+ mod2_contents='A\nB\nC\nDD\nE\n'
+ merged_contents='A\nBB\nC\nDD\nE\n'
+
+ def setup(sbox):
+ sbox.simple_append('A/mu', orig_contents, truncate=True)
+
+ def modifier1(sbox):
+ sbox.simple_append('A/mu', mod1_contents, truncate=True)
+
+ def modifier2(sbox):
+ sbox.simple_append('A/mu', mod2_contents, truncate=True)
+
+ def tweak_expected_state(modified_state):
+ modified_state[1].tweak('A/mu', contents=merged_contents)
+
+ unshelve_with_merge(sbox, setup, modifier1, modifier2, tweak_expected_state)
+
+#----------------------------------------------------------------------
+
+def unshelve_text_mod_conflict(sbox):
+ "unshelve text mod conflict"
+
+ orig_contents='A\nB\nC\nD\nE\n'
+ mod1_contents='A\nBB\nC\nD\nE\n'
+ mod2_contents='A\nBCD\nC\nD\nE\n'
+ merged_contents = 'A\n<<<<<<< .working\nBCD\n||||||| .merge-left\nB\n=======\nBB\n>>>>>>> .merge-right\nC\nD\nE\n'
+
+ def setup(sbox):
+ sbox.simple_append('A/mu', orig_contents, truncate=True)
+
+ def modifier1(sbox):
+ sbox.simple_append('A/mu', mod1_contents, truncate=True)
+
+ def modifier2(sbox):
+ sbox.simple_append('A/mu', mod2_contents, truncate=True)
+
+ def tweak_expected_state(modified_state):
+ modified_state[0].tweak('A/mu', status='C ')
+ modified_state[1].tweak('A/mu', contents=merged_contents)
+ modified_state[1].add({
+ 'A/mu.merge-left': Item(contents=orig_contents),
+ 'A/mu.merge-right': Item(contents=mod1_contents),
+ 'A/mu.working': Item(contents=mod2_contents),
+ })
+
+ unshelve_with_merge(sbox, setup, modifier1, modifier2, tweak_expected_state)
+
+#----------------------------------------------------------------------
+
+def unshelve_undeclared_binary_mod_conflict(sbox):
+ "unshelve undeclared binary mod conflict"
+
+ orig_contents='\1\2\3\4\5'
+ mod1_contents='\1\2\2\3\4\5'
+ mod2_contents='\1\2\3\4\3\4\5'
+ merged_contents = '<<<<<<< .working\n' + mod2_contents + '||||||| .merge-left\n' + orig_contents + '=======\n' + mod1_contents + '>>>>>>> .merge-right\n'
+
+ def setup(sbox):
+ sbox.simple_append('A/mu', orig_contents, truncate=True)
+
+ def modifier1(sbox):
+ sbox.simple_append('A/mu', mod1_contents, truncate=True)
+
+ def modifier2(sbox):
+ sbox.simple_append('A/mu', mod2_contents, truncate=True)
+
+ def tweak_expected_state(modified_state):
+ modified_state[0].tweak('A/mu', status='C ')
+ modified_state[1].tweak('A/mu', contents=merged_contents)
+ modified_state[1].add({
+ 'A/mu.merge-left': Item(contents=orig_contents),
+ 'A/mu.merge-right': Item(contents=mod1_contents),
+ 'A/mu.working': Item(contents=mod2_contents),
+ })
+
+ unshelve_with_merge(sbox, setup, modifier1, modifier2, tweak_expected_state)
+
+#----------------------------------------------------------------------
+
+def unshelve_binary_mod_conflict(sbox):
+ "unshelve binary mod conflict"
+
+ orig_contents='\1\2\3\4\5'
+ mod1_contents='\1\2\2\3\4\5'
+ mod2_contents='\1\2\3\4\3\4\5'
+
+ def setup(sbox):
+ sbox.simple_append('A/mu', orig_contents, truncate=True)
+ sbox.simple_propset('svn:mime-type', 'application/octet-stream', 'A/mu')
+
+ def modifier1(sbox):
+ sbox.simple_append('A/mu', mod1_contents, truncate=True)
+
+ def modifier2(sbox):
+ sbox.simple_append('A/mu', mod2_contents, truncate=True)
+
+ def tweak_expected_state(modified_state):
+ modified_state[0].tweak('A/mu', status='C ')
+ modified_state[1].tweak('A/mu', contents=mod2_contents)
+ modified_state[1].add({
+ 'A/mu.merge-left': Item(contents=orig_contents),
+ 'A/mu.merge-right': Item(contents=mod1_contents),
+ })
+
+ unshelve_with_merge(sbox, setup, modifier1, modifier2, tweak_expected_state)
+
+#----------------------------------------------------------------------
+
+def unshelve_text_prop_merge(sbox):
+ "unshelve text prop merge"
+
+ def setup(sbox):
+ sbox.simple_propset('p1', 'v', 'A/mu')
+ sbox.simple_propset('p2', 'v', 'A/mu')
+
+ def modifier1(sbox):
+ sbox.simple_propset('p1', 'changed', 'A/mu')
+
+ def modifier2(sbox):
+ sbox.simple_propset('p2', 'changed', 'A/mu')
+
+ def tweak_expected_state(wc_state):
+ wc_state[1].tweak('A/mu', props={'p1':'changed',
+ 'p2':'changed'})
+
+ unshelve_with_merge(sbox, setup, modifier1, modifier2, tweak_expected_state)
+
+#----------------------------------------------------------------------
+
+def unshelve_text_prop_conflict(sbox):
+ "unshelve text prop conflict"
+
+ orig_contents='A'
+ mod1_contents='B'
+ mod2_contents='C'
+ merged_contents='C'
+ prej_contents='''Trying to change property 'p'
+but the local property value conflicts with the incoming change.
+<<<<<<< (local property value)
+C||||||| (incoming 'changed from' value)
+A=======
+B>>>>>>> (incoming 'changed to' value)
+'''
+
+ def setup(sbox):
+ sbox.simple_propset('p', orig_contents, 'A/mu')
+
+ def modifier1(sbox):
+ sbox.simple_propset('p', mod1_contents, 'A/mu')
+
+ def modifier2(sbox):
+ sbox.simple_propset('p', mod2_contents, 'A/mu')
+
+ def tweak_expected_state(wc_state):
+ wc_state[0].tweak('A/mu', status=' C')
+ wc_state[1].tweak('A/mu', props={'p':merged_contents})
+ wc_state[1].add({
+ 'A/mu.prej': Item(contents=prej_contents),
+ })
+
+ unshelve_with_merge(sbox, setup, modifier1, modifier2, tweak_expected_state)
+
+#----------------------------------------------------------------------
+
+def run_and_verify_shelf_diff_summarize(output_tree, shelf, *args):
+ """Run 'svn shelf-diff --summarize' with the arguments *ARGS.
+
+ The subcommand output will be verified against OUTPUT_TREE. Returns
+ on success, raises on failure.
+ """
+
+ if isinstance(output_tree, wc.State):
+ output_tree = output_tree.old_tree()
+
+ exit_code, output, errput = svntest.actions.run_and_verify_svn(
+ None, [],
+ 'x-shelf-diff', '--summarize', shelf, *args)
+
+ actual = svntest.tree.build_tree_from_diff_summarize(output)
+
+ # Verify actual output against expected output.
+ try:
+ svntest.tree.compare_trees("output", actual, output_tree)
+ except svntest.tree.SVNTreeError:
+ svntest.verify.display_trees(None, 'DIFF OUTPUT TREE', output_tree, actual)
+ raise
+
+# Exercise a very basic case of shelf-diff.
+def shelf_diff_simple(sbox):
+ "shelf diff simple"
+
+ sbox.build()
+ was_cwd = os.getcwd()
+ os.chdir(sbox.wc_dir)
+ sbox.wc_dir = ''
+ wc_dir = sbox.wc_dir
+
+ def setup(sbox):
+ sbox.simple_propset('p1', 'v', 'A/mu')
+ sbox.simple_propset('p2', 'v', 'A/mu')
+
+ def modifier1(sbox):
+ sbox.simple_append('A/mu', 'New line.\n')
+ sbox.simple_propset('p1', 'changed', 'A/mu')
+
+ setup(sbox)
+ sbox.simple_commit()
+ initial_state = get_wc_state(wc_dir)
+
+ # Make some changes to the working copy
+ modifier1(sbox)
+ modified_state = get_wc_state(wc_dir)
+
+ svntest.actions.run_and_verify_svn(None, [],
+ 'x-shelf-save', 'foo')
+
+ # basic svn-style diff
+ expected_output = make_diff_header('A/mu', 'revision 2', 'working copy') + [
+ "@@ -1 +1,2 @@\n",
+ " This is the file 'mu'.\n",
+ "+New line.\n",
+ ] + make_diff_prop_header('A/mu') \
+ + make_diff_prop_modified('p1', 'v', 'changed')
+ svntest.actions.run_and_verify_svn(expected_output, [],
+ 'x-shelf-diff', 'foo')
+
+ # basic summary diff
+ expected_diff = svntest.wc.State(wc_dir, {
+ 'A/mu': Item(status='MM'),
+ })
+ run_and_verify_shelf_diff_summarize(expected_diff, 'foo')
+
+
+########################################################################
+# Run the tests
+
+# list all tests here, starting with None:
+test_list = [ None,
+ shelve_text_mods,
+ shelve_prop_changes,
+ shelve_adds,
+ shelve_deletes,
+ shelve_replace,
+ shelve_empty_adds,
+ shelve_empty_deletes,
+ shelve_from_inner_path,
+ checkpoint_basic,
+ shelve_mergeinfo,
+ unshelve_refuses_if_conflicts,
+ shelve_binary_file_mod,
+ shelve_binary_file_add,
+ shelve_binary_file_del,
+ shelve_binary_file_replace,
+ shelve_with_log_message,
+ shelf_status,
+ shelve_mkdir,
+ shelve_rmdir,
+ shelve_replace_dir,
+ shelve_file_copy,
+ shelve_dir_copy,
+ list_shelves,
+ refuse_to_shelve_conflict,
+ unshelve_text_mod_merge,
+ unshelve_text_mod_conflict,
+ unshelve_undeclared_binary_mod_conflict,
+ unshelve_binary_mod_conflict,
+ unshelve_text_prop_merge,
+ unshelve_text_prop_conflict,
+ shelf_diff_simple,
+ ]
+
+if __name__ == '__main__':
+ svntest.main.run_tests(test_list)
+ # NOTREACHED
+
+
+### End of file.
diff --git a/subversion/tests/cmdline/shelve_tests.py b/subversion/tests/cmdline/shelve_tests.py
deleted file mode 100755
index a71ddbb..0000000
--- a/subversion/tests/cmdline/shelve_tests.py
+++ /dev/null
@@ -1,176 +0,0 @@
-#!/usr/bin/env python
-#
-# shelve_tests.py: testing shelving
-#
-# Subversion is a tool for revision control.
-# See http://subversion.apache.org for more information.
-#
-# ====================================================================
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-######################################################################
-
-# General modules
-import shutil, stat, re, os, logging
-
-logger = logging.getLogger()
-
-# Our testing module
-import svntest
-from svntest import wc
-
-# (abbreviation)
-Skip = svntest.testcase.Skip_deco
-SkipUnless = svntest.testcase.SkipUnless_deco
-XFail = svntest.testcase.XFail_deco
-Issues = svntest.testcase.Issues_deco
-Issue = svntest.testcase.Issue_deco
-Wimp = svntest.testcase.Wimp_deco
-Item = wc.StateItem
-
-#----------------------------------------------------------------------
-
-def shelve_unshelve_verify(sbox):
- """Round-trip: shelve; verify all changes are reverted;
- unshelve; verify all changes are restored.
- """
-
- wc_dir = sbox.wc_dir
-
- # Save the modified state
- _, output, _ = svntest.main.run_svn(None, 'status', '-v', '-u', '-q',
- wc_dir)
- modified_state = svntest.wc.State.from_status(output, wc_dir)
-
- # Shelve; check there are no longer any modifications
- svntest.actions.run_and_verify_svn(None, [],
- 'shelve', 'foo')
- virginal_state = svntest.actions.get_virginal_state(wc_dir, 1)
- svntest.actions.run_and_verify_status(wc_dir, virginal_state)
-
- # Unshelve; check the original modifications are here again
- svntest.actions.run_and_verify_svn(None, [],
- 'unshelve', 'foo')
- svntest.actions.run_and_verify_status(wc_dir, modified_state)
-
-#----------------------------------------------------------------------
-
-def shelve_unshelve(sbox, modifier):
- """Round-trip: build 'sbox'; apply changes by calling 'modifier(sbox)';
- shelve and unshelve; verify changes are fully reverted and restored.
- """
-
- sbox.build()
- was_cwd = os.getcwd()
- os.chdir(sbox.wc_dir)
- sbox.wc_dir = ''
-
- # Make some changes to the working copy
- modifier(sbox)
-
- shelve_unshelve_verify(sbox)
-
- os.chdir(was_cwd)
-
-######################################################################
-# Tests
-#
-# Each test must return on success or raise on failure.
-
-def shelve_text_mods(sbox):
- "shelve text mods"
-
- def modifier(sbox):
- sbox.simple_append('A/mu', 'appended mu text')
-
- shelve_unshelve(sbox, modifier)
-
-#----------------------------------------------------------------------
-
-def shelve_prop_changes(sbox):
- "shelve prop changes"
-
- def modifier(sbox):
- sbox.simple_propset('p', 'v', 'A')
- sbox.simple_propset('p', 'v', 'A/mu')
-
- shelve_unshelve(sbox, modifier)
-
-#----------------------------------------------------------------------
-
-def shelve_adds(sbox):
- "shelve adds"
-
- def modifier(sbox):
- sbox.simple_append('A/new', 'A new file\n')
- sbox.simple_add('A/new')
- sbox.simple_append('A/new2', 'A new file\n')
- sbox.simple_add('A/new2')
- sbox.simple_propset('p', 'v', 'A/new2')
-
- shelve_unshelve(sbox, modifier)
-
-#----------------------------------------------------------------------
-
-@XFail()
-@Issue(4709)
-def shelve_deletes(sbox):
- "shelve deletes"
-
- def modifier(sbox):
- sbox.simple_rm('A/mu')
-
- shelve_unshelve(sbox, modifier)
-
-#----------------------------------------------------------------------
-
-def shelve_from_inner_path(sbox):
- "shelve from inner path"
-
- def modifier(sbox):
- sbox.simple_append('A/mu', 'appended mu text')
-
- sbox.build()
- was_cwd = os.getcwd()
- os.chdir(sbox.ospath('A'))
- sbox.wc_dir = '..'
-
- modifier(sbox)
- shelve_unshelve_verify(sbox)
-
- os.chdir(was_cwd)
-
-#----------------------------------------------------------------------
-
-########################################################################
-# Run the tests
-
-# list all tests here, starting with None:
-test_list = [ None,
- shelve_text_mods,
- shelve_prop_changes,
- shelve_adds,
- shelve_deletes,
- shelve_from_inner_path,
- ]
-
-if __name__ == '__main__':
- svntest.main.run_tests(test_list)
- # NOTREACHED
-
-
-### End of file.
diff --git a/subversion/tests/cmdline/special_tests.py b/subversion/tests/cmdline/special_tests.py
index db612c1..2ec22cb 100755
--- a/subversion/tests/cmdline/special_tests.py
+++ b/subversion/tests/cmdline/special_tests.py
@@ -535,7 +535,7 @@ def diff_symlink_to_dir(sbox):
"+++ link\t(working copy)\n",
"@@ -0,0 +1 @@\n",
"+link A/D\n",
- "\ No newline at end of file\n",
+ "\\ No newline at end of file\n",
"\n",
"Property changes on: link\n",
"___________________________________________________________________\n",
@@ -730,7 +730,8 @@ def unrelated_changed_special_status(sbox):
os.chdir(os.path.join(sbox.wc_dir, 'A/D/H'))
- open('chi', 'a').write('random local mod')
+ with open('chi', 'a') as f:
+ f.write('random local mod')
os.unlink('psi')
os.symlink('omega', 'psi') # omega is versioned!
svntest.main.run_svn(None, 'changelist', 'chi cl', 'chi')
diff --git a/subversion/tests/cmdline/stat_tests.py b/subversion/tests/cmdline/stat_tests.py
index afab961..e0f1306 100755
--- a/subversion/tests/cmdline/stat_tests.py
+++ b/subversion/tests/cmdline/stat_tests.py
@@ -1949,7 +1949,8 @@ def modified_modulo_translation(sbox):
sbox.simple_commit()
# CRLF it.
- open(sbox.ospath('iota'), 'wb').write("This is the file 'iota'.\r\n")
+ with open(sbox.ospath('iota'), 'wb') as f:
+ f.write("This is the file 'iota'.\r\n")
# Run status. Expect some output.
# TODO: decide how such files should show in the output; whether they
diff --git a/subversion/tests/cmdline/svnadmin_tests.py b/subversion/tests/cmdline/svnadmin_tests.py
index 40b5e97..4d5303c 100755
--- a/subversion/tests/cmdline/svnadmin_tests.py
+++ b/subversion/tests/cmdline/svnadmin_tests.py
@@ -53,6 +53,23 @@ Wimp = svntest.testcase.Wimp_deco
SkipDumpLoadCrossCheck = svntest.testcase.SkipDumpLoadCrossCheck_deco
Item = svntest.wc.StateItem
+def read_rep_cache(repo_dir):
+ """Return the rep-cache contents as a dict {hash: (rev, index, ...)}.
+ """
+ db_path = os.path.join(repo_dir, 'db', 'rep-cache.db')
+ db1 = svntest.sqlite3.connect(db_path)
+ schema1 = db1.execute("pragma user_version").fetchone()[0]
+ # Can't test newer rep-cache schemas with an old built-in SQLite.
+ if schema1 >= 2 and svntest.sqlite3.sqlite_version_info < (3, 8, 2):
+ raise svntest.Failure("Can't read rep-cache schema %d using old "
+ "Python-SQLite version %s < (3,8,2)" %
+ (schema1,
+ svntest.sqlite3.sqlite_version_info))
+
+ content = { row[0]: row[1:] for row in
+ db1.execute("select * from rep_cache") }
+ return content
+
def check_hotcopy_bdb(src, dst):
"Verify that the SRC BDB repository has been correctly copied to DST."
### TODO: This function should be extended to verify all hotcopied files,
@@ -256,7 +273,8 @@ def patch_format(repo_dir, shard_size):
new_contents = b"\n".join(processed_lines)
os.chmod(format_path, svntest.main.S_ALL_RW)
- open(format_path, 'wb').write(new_contents)
+ with open(format_path, 'wb') as f:
+ f.write(new_contents)
def is_sharded(repo_dir):
"""Return whether the FSFS repository REPO_DIR is sharded."""
@@ -777,9 +795,13 @@ def verify_windows_paths_in_repos(sbox):
def fsfs_file(repo_dir, kind, rev):
if svntest.main.options.server_minor_version >= 5:
if svntest.main.options.fsfs_sharding is None:
+ if svntest.main.is_fs_type_fsx():
+ rev = 'r' + rev
return os.path.join(repo_dir, 'db', kind, '0', rev)
else:
shard = int(rev) // svntest.main.options.fsfs_sharding
+ if svntest.main.is_fs_type_fsx():
+ rev = 'r' + rev
path = os.path.join(repo_dir, 'db', kind, str(shard), rev)
if svntest.main.options.fsfs_packing is None or kind == 'revprops':
@@ -1043,7 +1065,7 @@ def fsfs_recover_old_db_current(sbox):
def load_with_parent_dir(sbox):
"'svnadmin load --parent-dir' reparents mergeinfo"
- ## See http://subversion.tigris.org/issues/show_bug.cgi?id=2983. ##
+ ## See https://issues.apache.org/jira/browse/SVN-2983. ##
sbox.build(empty=True)
dumpfile_location = os.path.join(os.path.dirname(sys.argv[0]),
@@ -1134,7 +1156,7 @@ def set_uuid(sbox):
def reflect_dropped_renumbered_revs(sbox):
"reflect dropped renumbered revs in svn:mergeinfo"
- ## See http://subversion.tigris.org/issues/show_bug.cgi?id=3020. ##
+ ## See https://issues.apache.org/jira/browse/SVN-3020. ##
sbox.build(empty=True)
@@ -1326,7 +1348,7 @@ def verify_with_invalid_revprops(sbox):
# 2) Dump 'SOURCE-REPOS' in a series of incremental dumps and load
# each of them to 'TARGET-REPOS'.
#
-# See http://subversion.tigris.org/issues/show_bug.cgi?id=3020#desc13
+# See https://issues.apache.org/jira/browse/SVN-3020#desc13
@Issue(3020)
def dont_drop_valid_mergeinfo_during_incremental_loads(sbox):
"don't filter mergeinfo revs from incremental dump"
@@ -1512,7 +1534,7 @@ def dont_drop_valid_mergeinfo_during_incremental_loads(sbox):
# Check the resulting mergeinfo. We expect the exact same results
# as Part 3.
- # See http://subversion.tigris.org/issues/show_bug.cgi?id=3020#desc16.
+ # See https://issues.apache.org/jira/browse/SVN-3020#desc16.
svntest.actions.run_and_verify_svn(expected_output, [],
'propget', 'svn:mergeinfo', '-R',
sbox.repo_url)
@@ -1523,7 +1545,7 @@ def dont_drop_valid_mergeinfo_during_incremental_loads(sbox):
def hotcopy_symlink(sbox):
"'svnadmin hotcopy' replicates symlink"
- ## See http://subversion.tigris.org/issues/show_bug.cgi?id=2591. ##
+ ## See https://issues.apache.org/jira/browse/SVN-2591. ##
# Create a repository.
sbox.build(create_wc=False, empty=True)
@@ -1629,9 +1651,9 @@ text
sbox.build(empty=True)
# Try to load the dumpstream, expecting a failure (because of mixed EOLs).
- exp_err = svntest.verify.RegexListOutput(['svnadmin: E125005',
- 'svnadmin: E125005',
- 'svnadmin: E125017'],
+ exp_err = svntest.verify.RegexListOutput(['svnadmin: E125005:.*',
+ 'svnadmin: E125005:.*',
+ 'svnadmin: E125017:.*'],
match_all=False)
load_and_verify_dumpstream(sbox, [], exp_err, dumpfile_revisions,
False, dump_str, '--ignore-uuid')
@@ -1760,10 +1782,10 @@ def test_lslocks_and_rmlocks(sbox):
def expected_output_list(path):
return [
"Path: " + path,
- "UUID Token: opaquelocktoken",
+ "UUID Token: opaquelocktoken:.*",
"Owner: jrandom",
- "Created:",
- "Expires:",
+ "Created:.*",
+ "Expires:.*",
"Comment \(1 line\):",
"Locking files",
"\n", # empty line
@@ -1814,7 +1836,7 @@ def test_lslocks_and_rmlocks(sbox):
def load_ranges(sbox):
"'svnadmin load --revision X:Y'"
- ## See http://subversion.tigris.org/issues/show_bug.cgi?id=3734. ##
+ ## See https://issues.apache.org/jira/browse/SVN-3734. ##
sbox.build(empty=True)
dumpfile_location = os.path.join(os.path.dirname(sys.argv[0]),
@@ -2165,7 +2187,7 @@ def verify_keep_going(sbox):
sbox.repo_dir)
if (svntest.main.is_fs_log_addressing()):
- exp_out = svntest.verify.RegexListOutput([".*Verifying metadata at revision 0"])
+ exp_out = svntest.verify.RegexListOutput([".*Verifying metadata at revision 0.*"])
else:
exp_out = svntest.verify.RegexListOutput([".*Verified revision 0.",
".*Verified revision 1."])
@@ -2856,10 +2878,7 @@ def verify_quickly(sbox):
"verify quickly using metadata"
sbox.build(create_wc = False)
- if svntest.main.is_fs_type_fsfs():
- rev_file = open(fsfs_file(sbox.repo_dir, 'revs', '1'), 'r+b')
- else:
- rev_file = open(fsfs_file(sbox.repo_dir, 'revs', 'r1'), 'r+b')
+ rev_file = open(fsfs_file(sbox.repo_dir, 'revs', '1'), 'r+b')
# set new contents
rev_file.seek(8)
@@ -3458,7 +3477,8 @@ def load_from_file(sbox):
sbox.build(empty=True)
file = sbox.get_tempname()
- open(file, 'wb').writelines(clean_dumpfile())
+ with open(file, 'wb') as f:
+ f.writelines(clean_dumpfile())
svntest.actions.run_and_verify_svnadmin2(None, [],
0, 'load', '--file', file,
'--ignore-uuid', sbox.repo_dir)
@@ -3762,7 +3782,7 @@ def dump_exclude_all_rev_changes(sbox):
# Check log. Revision properties ('svn:log' etc.) should be empty for r2.
expected_output = svntest.verify.RegexListOutput([
'-+\\n',
- 'r3\ |\ jrandom\ |\ .*\ |\ 1\ line\\n',
+ 'r3 | jrandom | .* | 1 line\\n',
re.escape('Changed paths:'),
re.escape(' A /r3a'),
re.escape(' A /r3b'),
@@ -3774,7 +3794,7 @@ def dump_exclude_all_rev_changes(sbox):
'',
'',
'-+\\n',
- 'r1\ |\ jrandom\ |\ .*\ |\ 1\ line\\n',
+ 'r1 | jrandom | .* | 1 line\\n',
re.escape('Changed paths:'),
re.escape(' A /r1a'),
re.escape(' A /r1b'),
@@ -3823,6 +3843,76 @@ def load_issue4725(sbox):
sbox2.build(create_wc=False, empty=True)
load_and_verify_dumpstream(sbox2, None, [], None, False, dump, '-M100')
+@Issue(4767)
+def dump_no_canonicalize_svndate(sbox):
+ "svnadmin dump shouldn't canonicalize svn:date"
+
+ sbox.build(create_wc=False, empty=True)
+ svntest.actions.enable_revprop_changes(sbox.repo_dir)
+
+ # set svn:date in a non-canonical format (not six decimal places)
+ propval = "2015-01-01T00:00:00.0Z"
+ svntest.actions.run_and_verify_svn(svntest.verify.AnyOutput, [],
+ "propset", "--revprop", "-r0", "svn:date",
+ propval,
+ sbox.repo_url)
+
+ dump_lines = svntest.actions.run_and_verify_dump(sbox.repo_dir)
+ assert propval + '\n' in dump_lines
+
+def check_recover_prunes_rep_cache(sbox, enable_rep_sharing):
+ """Check 'recover' prunes the rep-cache while enable-rep-sharing is
+ true/false.
+ """
+ # Remember the initial rep cache content.
+ rep_cache_r1 = read_rep_cache(sbox.repo_dir)
+ #print '\n'.join([h + ": " + repr(ref) for h, ref in rep_cache_r1.items()])
+
+ # Commit one new rep and check the rep-cache is extended.
+ sbox.simple_append('iota', 'New line.\n')
+ sbox.simple_commit()
+ rep_cache_r2 = read_rep_cache(sbox.repo_dir)
+ assert len(rep_cache_r2) == len(rep_cache_r1) + 1
+
+ # To test 'recover' while rep-sharing is disabled, disable it now.
+ if not enable_rep_sharing:
+ fsfs_conf = svntest.main.get_fsfs_conf_file_path(sbox.repo_dir)
+ svntest.main.file_append(fsfs_conf,
+ "[rep-sharing]\n"
+ "enable-rep-sharing = false\n")
+
+ # Break r2 in such a way that 'recover' will discard it
+ head_rev_path = fsfs_file(sbox.repo_dir, 'revs', '2')
+ os.remove(head_rev_path)
+ current_path = os.path.join(sbox.repo_dir, 'db', 'current')
+ svntest.main.file_write(current_path, '1\n')
+
+ # Recover back to r1.
+ svntest.actions.run_and_verify_svnadmin(None, [],
+ "recover", sbox.repo_dir)
+
+ # Check the rep-cache is pruned.
+ rep_cache_recovered = read_rep_cache(sbox.repo_dir)
+ assert rep_cache_recovered == rep_cache_r1
+
+@Issue(4077)
+@SkipUnless(svntest.main.is_fs_type_fsfs)
+@SkipUnless(svntest.main.python_sqlite_can_read_without_rowid)
+def recover_prunes_rep_cache_when_enabled(sbox):
+ "recover prunes rep cache when enabled"
+ sbox.build()
+
+ check_recover_prunes_rep_cache(sbox, enable_rep_sharing=True)
+
+@Issue(4077)
+@SkipUnless(svntest.main.is_fs_type_fsfs)
+@SkipUnless(svntest.main.python_sqlite_can_read_without_rowid)
+def recover_prunes_rep_cache_when_disabled(sbox):
+ "recover prunes rep cache when disabled"
+ sbox.build()
+
+ check_recover_prunes_rep_cache(sbox, enable_rep_sharing=False)
+
########################################################################
# Run the tests
@@ -3897,6 +3987,9 @@ test_list = [ None,
dump_exclude_all_rev_changes,
dump_invalid_filtering_option,
load_issue4725,
+ dump_no_canonicalize_svndate,
+ recover_prunes_rep_cache_when_enabled,
+ recover_prunes_rep_cache_when_disabled,
]
if __name__ == '__main__':
diff --git a/subversion/tests/cmdline/svnauthz_tests.py b/subversion/tests/cmdline/svnauthz_tests.py
index fd1de40..ac6a375 100755
--- a/subversion/tests/cmdline/svnauthz_tests.py
+++ b/subversion/tests/cmdline/svnauthz_tests.py
@@ -197,9 +197,8 @@ def svnauthz_validate_txn_test(sbox):
svntest.main.create_python_hook_script(pre_commit_hook, hook_instance)
svntest.main.file_append(authz_path, 'x')
expected_status.tweak('A/authz', status=' ', wc_rev=4)
- if svntest.actions.run_and_verify_commit(wc_dir, expected_output,
- expected_status):
- raise svntest.Failure
+ svntest.actions.run_and_verify_commit(wc_dir, expected_output,
+ expected_status)
expected_data = svntest.verify.ExpectedOutput("Exit 2\n", match_all=False)
verify_logfile(logfilepath, expected_data)
@@ -275,9 +274,8 @@ def svnauthz_accessof_repo_test(sbox):
expected_status.add({
'A/authz' : Item(status=' ', wc_rev=2),
})
- if svntest.actions.run_and_verify_commit(wc_dir, expected_output,
- expected_status):
- raise svntest.Failure
+ svntest.actions.run_and_verify_commit(wc_dir, expected_output,
+ expected_status)
# Anonymous access with no path, and no repository should be rw
# since it returns the highest level of access granted anywhere.
diff --git a/subversion/tests/cmdline/svndumpfilter_tests.py b/subversion/tests/cmdline/svndumpfilter_tests.py
index 7ee09a4..a45b50b 100755
--- a/subversion/tests/cmdline/svndumpfilter_tests.py
+++ b/subversion/tests/cmdline/svndumpfilter_tests.py
@@ -83,7 +83,7 @@ def filter_and_return_output(dump, bufsize=0, *varargs):
def reflect_dropped_renumbered_revs(sbox):
"reflect dropped renumbered revs in svn:mergeinfo"
- ## See http://subversion.tigris.org/issues/show_bug.cgi?id=2982. ##
+ ## See https://issues.apache.org/jira/browse/SVN-2982. ##
# Test svndumpfilter with include option
sbox.build(empty=True)
@@ -134,7 +134,7 @@ def svndumpfilter_loses_mergeinfo(sbox):
"svndumpfilter loses mergeinfo"
#svndumpfilter loses mergeinfo if invoked without --renumber-revs
- ## See http://subversion.tigris.org/issues/show_bug.cgi?id=3181. ##
+ ## See https://issues.apache.org/jira/browse/SVN-3181. ##
sbox.build(empty=True)
dumpfile_location = os.path.join(os.path.dirname(sys.argv[0]),
@@ -217,7 +217,7 @@ def _simple_dumpfilter_test(sbox, dumpfile, *dumpargs):
@Issue(2697)
def dumpfilter_with_targets(sbox):
"svndumpfilter --targets blah"
- ## See http://subversion.tigris.org/issues/show_bug.cgi?id=2697. ##
+ ## See https://issues.apache.org/jira/browse/SVN-2697. ##
sbox.build(empty=True)
@@ -677,7 +677,7 @@ def accepts_deltas(sbox):
@Issue(4234)
def dumpfilter_targets_expect_leading_slash_prefixes(sbox):
"dumpfilter targets expect leading '/' in prefixes"
- ## See http://subversion.tigris.org/issues/show_bug.cgi?id=4234. ##
+ ## See https://issues.apache.org/jira/browse/SVN-4234. ##
sbox.build(empty=True)
diff --git a/subversion/tests/cmdline/svnfsfs_tests.py b/subversion/tests/cmdline/svnfsfs_tests.py
index e1fd73d..aff3c2f 100755
--- a/subversion/tests/cmdline/svnfsfs_tests.py
+++ b/subversion/tests/cmdline/svnfsfs_tests.py
@@ -94,7 +94,8 @@ def patch_format(repo_dir, shard_size):
new_contents = b"\n".join(processed_lines)
os.chmod(format_path, svntest.main.S_ALL_RW)
- open(format_path, 'wb').write(new_contents)
+ with open(format_path, 'wb') as f:
+ f.write(new_contents)
######################################################################
# Tests
diff --git a/subversion/tests/cmdline/svnmover_tests.py b/subversion/tests/cmdline/svnmover_tests.py
index bfdbb1f..6c98b64 100755
--- a/subversion/tests/cmdline/svnmover_tests.py
+++ b/subversion/tests/cmdline/svnmover_tests.py
@@ -469,7 +469,7 @@ rm A/B/C/Y
' D /top0/A/B/C/Y',
]))
expected_output = svntest.verify.UnorderedRegexListOutput(escaped
- + ['^-', '^r2', '^-', '^Changed paths:',])
+ + ['^--*', '^r2.*', '^--*', '^Changed paths:',])
svntest.actions.run_and_verify_svn(expected_output, [],
'log', '-qvr2', repo_url)
@@ -755,7 +755,7 @@ def simple_moves_within_a_branch(sbox):
'mv lib/foo/y2 y2')
# move and rename, dir with children
test_svnmover2(sbox, '/trunk',
- reported_br_diff('') +
+ reported_br_diff('trunk') +
reported_add('subdir') +
reported_move('lib', 'subdir/lib2'),
'mkdir subdir',
@@ -765,7 +765,7 @@ def simple_moves_within_a_branch(sbox):
# moves and renames together
# (put it all back to how it was, in one commit)
test_svnmover2(sbox, '/trunk',
- reported_br_diff('') +
+ reported_br_diff('trunk') +
reported_move('subdir/lib2/README.txt', 'README') +
reported_move('subdir/lib2', 'lib') +
reported_move('y2', 'lib/foo/y') +
diff --git a/subversion/tests/cmdline/svnmucc_tests.py b/subversion/tests/cmdline/svnmucc_tests.py
index f95c558..3159ec2 100755
--- a/subversion/tests/cmdline/svnmucc_tests.py
+++ b/subversion/tests/cmdline/svnmucc_tests.py
@@ -458,7 +458,7 @@ rm A/B/C/Y
' D /A/B/C/Y',
]))
expected_output = svntest.verify.UnorderedRegexListOutput(excaped
- + ['^-', '^r3', '^-', '^Changed paths:',])
+ + ['^--*', '^r3.*', '^--*', '^Changed paths:',])
svntest.actions.run_and_verify_svn(expected_output, [],
'log', '-qvr3', repo_url)
diff --git a/subversion/tests/cmdline/svnrdump_tests.py b/subversion/tests/cmdline/svnrdump_tests.py
index ae6a7e0..b6d4c6f 100755
--- a/subversion/tests/cmdline/svnrdump_tests.py
+++ b/subversion/tests/cmdline/svnrdump_tests.py
@@ -80,7 +80,7 @@ def compare_repos_dumps(sbox, other_dumpfile,
### This call kind-of assumes EXPECTED is first and ACTUAL is second.
svntest.verify.compare_dump_files(
- "Dump files", "DUMP", other_dumpfile, sbox_dumpfile)
+ None, None, other_dumpfile, sbox_dumpfile)
def run_dump_test(sbox, dumpfile_name, expected_dumpfile_name = None,
subdir = None, bypass_prop_validation = False,
@@ -455,7 +455,7 @@ def reflect_dropped_renumbered_revs(sbox):
# 2) Dump 'SOURCE-REPOS' in a series of incremental dumps and load
# each of them to 'TARGET-REPOS'.
#
-# See http://subversion.tigris.org/issues/show_bug.cgi?id=3020#desc13
+# See https://issues.apache.org/jira/browse/SVN-3020#desc13
#
# This test replicates svnadmin_tests.py 20 'don't filter mergeinfo revs
# from incremental dump' but uses 'svnrdump [dump|load]' in place of
@@ -704,7 +704,7 @@ def dont_drop_valid_mergeinfo_during_incremental_svnrdump_loads(sbox):
# Check the resulting mergeinfo. We expect the exact same results
# as Part 3.
- # See http://subversion.tigris.org/issues/show_bug.cgi?id=3020#desc16.
+ # See https://issues.apache.org/jira/browse/SVN-3020#desc16.
svntest.actions.run_and_verify_svn(expected_output, [],
'propget', 'svn:mergeinfo', '-R',
sbox.repo_url)
diff --git a/subversion/tests/cmdline/svnsync_authz_tests.py b/subversion/tests/cmdline/svnsync_authz_tests.py
index e8b9444..e464cde 100755
--- a/subversion/tests/cmdline/svnsync_authz_tests.py
+++ b/subversion/tests/cmdline/svnsync_authz_tests.py
@@ -415,7 +415,7 @@ def specific_deny_authz(sbox):
# For mod_dav_svn's parent path setup we need per-repos permissions in
# the authz file...
- if sbox.repo_url.startswith('http'):
+ if svntest.main.is_ra_type_dav():
src_authz = sbox.authz_name()
dst_authz = dest_sbox.authz_name()
write_authz_file(sbox, None,
diff --git a/subversion/tests/cmdline/svnsync_tests.py b/subversion/tests/cmdline/svnsync_tests.py
index ba55fb5..744fbbb 100755
--- a/subversion/tests/cmdline/svnsync_tests.py
+++ b/subversion/tests/cmdline/svnsync_tests.py
@@ -167,7 +167,7 @@ def verify_mirror(dest_sbox, exp_dump_file_contents):
dest_dump = svntest.actions.run_and_verify_dump(dest_sbox.repo_dir)
svntest.verify.compare_dump_files(
- "Dump files", "DUMP", exp_dump_file_contents, dest_dump)
+ None, None, exp_dump_file_contents, dest_dump)
def run_test(sbox, dump_file_name, subdir=None, exp_dump_file_name=None,
bypass_prop_validation=False, source_prop_encoding=None,
diff --git a/subversion/tests/cmdline/svntest/actions.py b/subversion/tests/cmdline/svntest/actions.py
index 8930b63..1051844 100644
--- a/subversion/tests/cmdline/svntest/actions.py
+++ b/subversion/tests/cmdline/svntest/actions.py
@@ -74,6 +74,11 @@ def setup_pristine_greek_repository():
if not os.path.exists(main.general_repo_dir):
os.makedirs(main.general_repo_dir) # this also creates all the intermediate dirs
+ if not os.path.exists(main.other_dav_root_dir):
+ os.makedirs(main.other_dav_root_dir)
+ if not os.path.exists(main.non_dav_root_dir):
+ os.makedirs(main.non_dav_root_dir)
+
# If there's no pristine repos, create one.
if not os.path.exists(main.pristine_greek_repos_dir):
if main.options.fsfs_version is not None:
diff --git a/subversion/tests/cmdline/svntest/main.py b/subversion/tests/cmdline/svntest/main.py
index 09a9722..4aa6041 100644
--- a/subversion/tests/cmdline/svntest/main.py
+++ b/subversion/tests/cmdline/svntest/main.py
@@ -56,7 +56,7 @@ import svntest
from svntest import Failure
from svntest import Skip
-SVN_VER_MINOR = 10
+SVN_VER_MINOR = 11
######################################################################
#
@@ -224,6 +224,10 @@ SVN_PROP_INHERITABLE_IGNORES = "svn:global-ignores"
general_repo_dir = os.path.join(work_dir, "repositories")
general_wc_dir = os.path.join(work_dir, "working_copies")
+# Directories used for DAV tests
+other_dav_root_dir = os.path.join(work_dir, "fsdavroot")
+non_dav_root_dir = os.path.join(work_dir, "nodavroot")
+
# temp directory in which we will create our 'pristine' local
# repository and other scratch data. This should be removed when we
# quit and when we startup.
@@ -978,7 +982,8 @@ def file_write(path, contents, mode='w'):
which is (w)rite by default."""
if sys.version_info < (3, 0):
- open(path, mode).write(contents)
+ with open(path, mode) as f:
+ f.write(contents)
else:
# Python 3: Write data in the format required by MODE, i.e. byte arrays
# to 'b' files, utf-8 otherwise."""
@@ -990,9 +995,11 @@ def file_write(path, contents, mode='w'):
contents = contents.decode("utf-8")
if isinstance(contents, str):
- codecs.open(path, mode, "utf-8").write(contents)
+ with codecs.open(path, mode, "utf-8") as f:
+ f.write(contents)
else:
- open(path, mode).write(contents)
+ with open(path, mode) as f:
+ f.write(contents)
# For making local mods to files
def file_append(path, new_text):
@@ -1008,7 +1015,8 @@ def file_append_binary(path, new_text):
def file_substitute(path, contents, new_contents):
"""Replace the CONTENTS in the file at PATH using the NEW_CONTENTS"""
fcontent = open(path, 'r').read().replace(contents, new_contents)
- open(path, 'w').write(fcontent)
+ with open(path, 'w') as f:
+ f.write(fcontent)
# For setting up authz, hooks and making other tweaks to created repos
def _post_create_repos(path, minor_version = None):
@@ -1035,7 +1043,8 @@ def _post_create_repos(path, minor_version = None):
users += (crosscheck_username + " = " + crosscheck_password + "\n")
file_append(os.path.join(path, "conf", "passwd"), users)
- if options.fs_type is None or options.fs_type == 'fsfs':
+ if options.fs_type is None or options.fs_type == 'fsfs' or \
+ options.fs_type == 'fsx':
# fsfs.conf file
if (minor_version is None or minor_version >= 6):
confpath = get_fsfs_conf_file_path(path)
@@ -1633,6 +1642,15 @@ def server_has_atomic_revprop():
def server_has_reverse_get_file_revs():
return options.server_caps.has_reverse_get_file_revs
+def python_sqlite_can_read_our_wc_db():
+ """Check if the Python builtin is capable enough to peek into wc.db"""
+ # Currently enough (1.7-1.9)
+ return svntest.sqlite3.sqlite_version_info >= (3, 6, 18)
+
+def python_sqlite_can_read_without_rowid():
+ """Check if the Python builtin is capable enough to read new rep-cache"""
+ return svntest.sqlite3.sqlite_version_info >= (3, 8, 2)
+
def is_plaintext_password_storage_disabled():
try:
predicate = re.compile("^WARNING: Plaintext password storage is enabled!")
@@ -2335,6 +2353,8 @@ def execute_tests(test_list, serial_only = False, test_name = None,
global pristine_url
global pristine_greek_repos_url
+ global other_dav_root_url
+ global non_dav_root_url
global svn_binary
global svnadmin_binary
global svnlook_binary
@@ -2414,6 +2434,10 @@ def execute_tests(test_list, serial_only = False, test_name = None,
pristine_greek_repos_dir.replace(
os.path.sep, '/'))
+ other_dav_root_url = options.test_area_url + '/fsdavroot'
+ non_dav_root_url = options.test_area_url + '/nodavroot'
+
+
if options.use_jsvn:
if options.svn_bin is None:
options.svn_bin = ''
diff --git a/subversion/tests/cmdline/svntest/mergetrees.py b/subversion/tests/cmdline/svntest/mergetrees.py
index 0cee3d2..0cee3d2 100755..100644
--- a/subversion/tests/cmdline/svntest/mergetrees.py
+++ b/subversion/tests/cmdline/svntest/mergetrees.py
diff --git a/subversion/tests/cmdline/svntest/sandbox.py b/subversion/tests/cmdline/svntest/sandbox.py
index b1c9861..cc8df2e 100644
--- a/subversion/tests/cmdline/svntest/sandbox.py
+++ b/subversion/tests/cmdline/svntest/sandbox.py
@@ -168,7 +168,8 @@ class Sandbox:
or open(self.authz_file,'r').read() != default_authz)):
tmp_authz_file = os.path.join(svntest.main.work_dir, "authz-" + self.name)
- open(tmp_authz_file, 'w').write(default_authz)
+ with open(tmp_authz_file, 'w') as f:
+ f.write(default_authz)
shutil.move(tmp_authz_file, self.authz_file)
def authz_name(self, repo_dir=None):
@@ -492,7 +493,8 @@ class Sandbox:
if not svnrdump_headers_always.match(l)]
# Ignore differences in number of blank lines between node records,
# as svnrdump puts 3 whereas svnadmin puts 2 after a replace-with-copy.
- svntest.verify.compare_dump_files(None, None,
+ svntest.verify.compare_dump_files('svnadmin dump, tweaked',
+ 'svnrdump dump, tweaked',
dumpfile_a_d_cmp,
dumpfile_r_d_cmp,
ignore_number_of_blank_lines=True)
@@ -523,20 +525,22 @@ class Sandbox:
reloaded_dumpfile_a_n = svntest.actions.run_and_verify_dump(repo_dir_a_n)
reloaded_dumpfile_a_d = svntest.actions.run_and_verify_dump(repo_dir_a_d)
reloaded_dumpfile_r_d = svntest.actions.run_and_verify_dump(repo_dir_r_d)
- svntest.verify.compare_dump_files(None, None,
+ svntest.verify.compare_dump_files('svnadmin dump no delta, loaded, dumped',
+ 'svnadmin dump --deltas, loaded, dumped',
reloaded_dumpfile_a_n,
reloaded_dumpfile_a_d,
ignore_uuid=True)
- svntest.verify.compare_dump_files(None, None,
+ svntest.verify.compare_dump_files('svnadmin dump, loaded, dumped',
+ 'svnrdump dump, loaded, dumped',
reloaded_dumpfile_a_d,
reloaded_dumpfile_r_d,
ignore_uuid=True)
# Run each dump through svndumpfilter and check for no further change.
- for dumpfile in [dumpfile_a_n,
- dumpfile_a_d,
- dumpfile_r_d
- ]:
+ for dumpfile, dumpfile_desc in [(dumpfile_a_n, 'svnadmin dump'),
+ (dumpfile_a_d, 'svnadmin dump --deltas'),
+ (dumpfile_r_d, 'svnrdump dump'),
+ ]:
### No buffer size seems to work for update_tests-2. So skip that test?
### (Its dumpfile size is ~360 KB non-delta, ~180 KB delta.)
if len(''.join(dumpfile)) > 100000:
@@ -550,7 +554,9 @@ class Sandbox:
# svndumpfilter strips them.
# Ignore differences in number of blank lines between node records,
# as svndumpfilter puts 3 instead of 2 after an add or delete record.
- svntest.verify.compare_dump_files(None, None, dumpfile, dumpfile2,
+ svntest.verify.compare_dump_files(dumpfile_desc,
+ 'after svndumpfilter include /',
+ dumpfile, dumpfile2,
expect_content_length_always=True,
ignore_empty_prop_sections=True,
ignore_number_of_blank_lines=True)
diff --git a/subversion/tests/cmdline/svntest/tree.py b/subversion/tests/cmdline/svntest/tree.py
index 6c34238..fbcbcfc 100644
--- a/subversion/tests/cmdline/svntest/tree.py
+++ b/subversion/tests/cmdline/svntest/tree.py
@@ -267,19 +267,8 @@ class SVNTreeNode:
line += "%-20s: Item(" % ("'%s'" % path.replace(os.sep, '/'))
comma = False
- mime_type = self.props.get("svn:mime-type")
- if not mime_type or mime_type.startswith("text/"):
- if self.contents is not None:
- # Escape some characters for nicer script and readability.
- # (This is error output. I guess speed is no consideration here.)
- line += "contents=\"%s\"" % (self.contents
- .replace('\n','\\n')
- .replace('"','\\"')
- .replace('\r','\\r')
- .replace('\t','\\t'))
- comma = True
- else:
- line += 'content is binary data'
+ if self.contents is not None:
+ line += "contents=" + repr(self.contents)
comma = True
if self.props:
diff --git a/subversion/tests/cmdline/svntest/verify.py b/subversion/tests/cmdline/svntest/verify.py
index 904a044..0fb7bcd 100644
--- a/subversion/tests/cmdline/svntest/verify.py
+++ b/subversion/tests/cmdline/svntest/verify.py
@@ -150,8 +150,9 @@ class ExpectedOutput(object):
MESSAGE unless it is None, the expected lines, the ACTUAL lines,
and a diff, all labeled with LABEL.
"""
- display_lines(message, self.expected, actual, label, label)
- display_lines_diff(self.expected, actual, label, label)
+ e_label = label + ' (match_all=%s)' % (self.match_all,)
+ display_lines(message, self.expected, actual, e_label, label)
+ display_lines_diff(self.expected, actual, e_label, label)
class AnyOutput(ExpectedOutput):
@@ -181,12 +182,36 @@ class AnyOutput(ExpectedOutput):
logger.warn(message)
+def re_fullmatch(pattern, string, flags=0):
+ """If the whole STRING matches the regular expression PATTERN,
+ return a corresponding match object.
+ Based on re.fullmatch() in Python 3.4.
+ """
+ if pattern.endswith('$'):
+ return re.match(pattern, string, flags)
+
+ return re.match(pattern + '$', string, flags)
+
+def regex_fullmatch(rx, string):
+ """If the whole STRING matches the compiled regular expression RX,
+ return a corresponding match object.
+ Based on regex.fullmatch() in Python 3.4.
+ """
+ if rx.pattern.endswith('$'):
+ return rx.match(string)
+
+ return re_fullmatch(rx.pattern, string, rx.flags)
+
class RegexOutput(ExpectedOutput):
"""Matches a single regular expression.
If MATCH_ALL is true, every actual line must match the RE. If
MATCH_ALL is false, at least one actual line must match the RE. In
any case, there must be at least one line of actual output.
+
+ The RE must match a prefix of the actual line, in contrast to the
+ RegexListOutput and UnorderedRegexListOutput classes which match
+ whole lines.
"""
def __init__(self, expected, match_all=True):
@@ -212,7 +237,8 @@ class RegexOutput(ExpectedOutput):
return any(self.expected_re.match(line) for line in actual)
def display_differences(self, message, label, actual):
- display_lines(message, self.expected, actual, label + ' (regexp)', label)
+ e_label = label + ' (regexp, match_all=%s)' % (self.match_all,)
+ display_lines(message, self.expected, actual, e_label, label)
def insert(self, index, line):
self.expected.insert(index, line)
@@ -228,6 +254,9 @@ class RegexListOutput(ExpectedOutput):
ones.
In any case, there must be at least one line of actual output.
+
+ The REs must match whole actual lines, in contrast to the RegexOutput
+ class which matches a prefix of the actual line.
"""
def __init__(self, expected, match_all=True):
@@ -243,18 +272,37 @@ class RegexListOutput(ExpectedOutput):
if self.match_all:
return (len(self.expected_res) == len(actual) and
- all(e.match(a) for e, a in zip(self.expected_res, actual)))
+ all(regex_fullmatch(e, a) for e, a in zip(self.expected_res, actual)))
i_expected = 0
for actual_line in actual:
- if self.expected_res[i_expected].match(actual_line):
+ if regex_fullmatch(self.expected_res[i_expected], actual_line):
i_expected += 1
if i_expected == len(self.expected_res):
return True
return False
def display_differences(self, message, label, actual):
- display_lines(message, self.expected, actual, label + ' (regexp)', label)
+ e_label = label + ' (regexp, match_all=%s)' % (self.match_all,)
+ display_lines(message, self.expected, actual, e_label, label)
+
+ assert actual is not None
+ if not isinstance(actual, list):
+ actual = [actual]
+
+ if self.match_all:
+ logger.warn('DIFF ' + label + ':')
+ if len(self.expected) != len(actual):
+ logger.warn('# Expected %d lines; actual %d lines' %
+ (len(self.expected), len(actual)))
+ for e, a in map(None, self.expected_res, actual):
+ if e is not None and a is not None and regex_fullmatch(e, a):
+ logger.warn("| " + a.rstrip())
+ else:
+ if e is not None:
+ logger.warn("| -" + repr(e.pattern))
+ if a is not None:
+ logger.warn("| +" + repr(a))
def insert(self, index, line):
self.expected.insert(index, line)
@@ -279,8 +327,9 @@ class UnorderedOutput(ExpectedOutput):
return sorted(self.expected) == sorted(actual)
def display_differences(self, message, label, actual):
- display_lines(message, self.expected, actual, label + ' (unordered)', label)
- display_lines_diff(self.expected, actual, label + ' (unordered)', label)
+ e_label = label + ' (unordered)'
+ display_lines(message, self.expected, actual, e_label, label)
+ display_lines_diff(sorted(self.expected), sorted(actual), e_label, label)
class UnorderedRegexListOutput(ExpectedOutput):
@@ -295,6 +344,9 @@ class UnorderedRegexListOutput(ExpectedOutput):
expressions. The implementation matches each expression in turn to
the first unmatched actual line that it can match, and does not try
all the permutations when there are multiple possible matches.
+
+ The REs must match whole actual lines, in contrast to the RegexOutput
+ class which matches a prefix of the actual line.
"""
def __init__(self, expected):
@@ -305,13 +357,16 @@ class UnorderedRegexListOutput(ExpectedOutput):
assert actual is not None
if not isinstance(actual, list):
actual = [actual]
+ else:
+ # copy the list so we can remove elements without affecting caller
+ actual = actual[:]
if len(self.expected) != len(actual):
return False
for e in self.expected:
expect_re = re.compile(e)
for actual_line in actual:
- if expect_re.match(actual_line):
+ if regex_fullmatch(expect_re, actual_line):
actual.remove(actual_line)
break
else:
@@ -320,9 +375,30 @@ class UnorderedRegexListOutput(ExpectedOutput):
return True
def display_differences(self, message, label, actual):
- display_lines(message, self.expected, actual,
- label + ' (regexp) (unordered)', label)
+ e_label = label + ' (regexp) (unordered)'
+ display_lines(message, self.expected, actual, e_label, label)
+
+ assert actual is not None
+ if not isinstance(actual, list):
+ actual = [actual]
+ else:
+ # copy the list so we can remove elements without affecting caller
+ actual = actual[:]
+ logger.warn('DIFF ' + label + ':')
+ if len(self.expected) != len(actual):
+ logger.warn('# Expected %d lines; actual %d lines' %
+ (len(self.expected), len(actual)))
+ for e in self.expected:
+ expect_re = re.compile(e)
+ for actual_line in actual:
+ if regex_fullmatch(expect_re, actual_line):
+ actual.remove(actual_line)
+ break
+ else:
+ logger.warn("| -" + expect_re.pattern.rstrip())
+ for a in actual:
+ logger.warn("| +" + a.rstrip())
class AlternateOutput(ExpectedOutput):
"""Matches any one of a list of ExpectedOutput instances.
@@ -730,7 +806,8 @@ class DumpParser:
self.parse_all_revisions()
return self.parsed
-def compare_dump_files(message, label, expected, actual,
+def compare_dump_files(label_expected, label_actual,
+ expected, actual,
ignore_uuid=False,
expect_content_length_always=False,
ignore_empty_prop_sections=False,
@@ -772,6 +849,8 @@ def compare_dump_files(message, label, expected, actual,
if parsed_expected != parsed_actual:
print('DIFF of raw dumpfiles (including expected differences)')
+ print('--- ' + (label_expected or 'expected'))
+ print('+++ ' + (label_actual or 'actual'))
print(''.join(ndiff(expected, actual)))
raise svntest.Failure('DIFF of parsed dumpfiles (ignoring expected differences)\n'
+ '\n'.join(ndiff(
diff --git a/subversion/tests/cmdline/svntest/wc.py b/subversion/tests/cmdline/svntest/wc.py
index f805dc9..ddfc439 100644
--- a/subversion/tests/cmdline/svntest/wc.py
+++ b/subversion/tests/cmdline/svntest/wc.py
@@ -1092,8 +1092,7 @@ def svn_uri_quote(url):
def python_sqlite_can_read_wc():
"""Check if the Python builtin is capable enough to peek into wc.db"""
- # Currently enough (1.7-1.9)
- return svntest.sqlite3.sqlite_version_info >= (3, 6, 18)
+ return svntest.main.python_sqlite_can_read_our_wc_db()
def open_wc_db(local_path):
"""Open the SQLite DB for the WC path LOCAL_PATH.
diff --git a/subversion/tests/cmdline/svnversion_tests.py b/subversion/tests/cmdline/svnversion_tests.py
index 2ed6e46..e9d0927 100755
--- a/subversion/tests/cmdline/svnversion_tests.py
+++ b/subversion/tests/cmdline/svnversion_tests.py
@@ -71,9 +71,8 @@ def svnversion_test(sbox):
expected_output = wc.State(wc_dir, {'A/mu' : Item(verb='Sending')})
expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
expected_status.tweak('A/mu', wc_rev=2)
- if svntest.actions.run_and_verify_commit(wc_dir,
- expected_output, expected_status):
- raise svntest.Failure
+ svntest.actions.run_and_verify_commit(wc_dir,
+ expected_output, expected_status)
# Unmodified, mixed
svntest.actions.run_and_verify_svnversion(wc_dir, repo_url,
@@ -98,13 +97,12 @@ def svnversion_test(sbox):
+ 'appended mu text')
expected_disk.tweak('iota',
contents=expected_disk.desc['A/D/gamma'].contents)
- if svntest.actions.run_and_verify_switch(wc_dir, iota_path, gamma_url,
- expected_output,
- expected_disk,
- expected_status,
- [],
- False, '--ignore-ancestry'):
- raise svntest.Failure
+ svntest.actions.run_and_verify_switch(wc_dir, iota_path, gamma_url,
+ expected_output,
+ expected_disk,
+ expected_status,
+ [],
+ False, '--ignore-ancestry')
# Prop modified, mixed, part wc switched
svntest.actions.run_and_verify_svnversion(wc_dir, repo_url,
diff --git a/subversion/tests/cmdline/trans_tests.py b/subversion/tests/cmdline/trans_tests.py
index 0cab75e..71ca45e 100755
--- a/subversion/tests/cmdline/trans_tests.py
+++ b/subversion/tests/cmdline/trans_tests.py
@@ -814,7 +814,8 @@ def props_only_file_update(sbox):
]
# Create r2 with iota's contents and svn:keywords modified
- open(iota_path, 'w').writelines(content)
+ with open(iota_path, 'w') as f:
+ f.writelines(content)
svntest.main.run_svn(None, 'propset', 'svn:keywords', 'Author', iota_path)
expected_output = wc.State(wc_dir, {
@@ -831,7 +832,8 @@ def props_only_file_update(sbox):
# Create r3 that drops svn:keywords
# put the content back to its untranslated form
- open(iota_path, 'w').writelines(content)
+ with open(iota_path, 'w') as f:
+ f.writelines(content)
svntest.main.run_svn(None, 'propdel', 'svn:keywords', iota_path)
diff --git a/subversion/tests/cmdline/tree_conflict_tests.py b/subversion/tests/cmdline/tree_conflict_tests.py
index b3335b2..61f3231 100755
--- a/subversion/tests/cmdline/tree_conflict_tests.py
+++ b/subversion/tests/cmdline/tree_conflict_tests.py
@@ -473,6 +473,7 @@ def ensure_tree_conflict(sbox, operation,
run_and_verify_svn(expected_stdout, [],
'merge',
'--allow-mixed-revisions',
+ '--accept=postpone',
'-r', str(source_left_rev) + ':' + str(source_right_rev),
source_url, target_path)
else:
@@ -1096,13 +1097,15 @@ def at_directory_external(sbox):
svntest.main.run_svn(None, 'update', wc_dir)
# r3: modify ^/A/B/E/alpha
- open(sbox.ospath('A/B/E/alpha'), 'a').write('This is still A/B/E/alpha.\n')
+ with open(sbox.ospath('A/B/E/alpha'), 'a') as f:
+ f.write('This is still A/B/E/alpha.\n')
svntest.main.run_svn(None, 'commit', '-m', 'file mod', wc_dir)
svntest.main.run_svn(None, 'update', wc_dir)
merge_rev = svntest.main.youngest(sbox.repo_dir)
# r4: create ^/A/B/E/alpha2
- open(sbox.ospath('A/B/E/alpha2'), 'a').write("This is the file 'alpha2'.\n")
+ with open(sbox.ospath('A/B/E/alpha2'), 'a') as f:
+ f.write("This is the file 'alpha2'.\n")
svntest.main.run_svn(None, 'add', sbox.ospath('A/B/E/alpha2'))
svntest.main.run_svn(None, 'commit', '-m', 'file add', wc_dir)
svntest.main.run_svn(None, 'update', wc_dir)
@@ -1503,6 +1506,47 @@ def update_delete_mixed_rev(sbox):
}
run_and_verify_info([expected_info], sbox.repo_url + '/A/B/E/alpha2')
+# NB: This test will run forever if the bug it is testing for is present!
+def local_missing_dir_endless_loop(sbox):
+ "endless loop when resolving local-missing dir"
+
+ sbox.build()
+ wc_dir = sbox.wc_dir
+ sbox.simple_copy('A', 'A1')
+ sbox.simple_commit()
+ sbox.simple_update()
+ sbox.simple_move('A/B', 'A/B2')
+ sbox.simple_commit()
+ sbox.simple_update()
+ main.file_append_binary(sbox.ospath("A/B2/lambda"), "This is more content.\n")
+ sbox.simple_commit()
+ sbox.simple_update()
+
+ # Create a config which enables the interactive conflict resolver
+ config_contents = '''\
+[auth]
+password-stores =
+
+[miscellany]
+interactive-conflicts = true
+'''
+ config_dir = sbox.create_config_dir(config_contents)
+
+ # Bug: 'svn' keeps retrying interactive conflict resolution while the library
+ # keeps signalling 'SVN_ERR_WC_CONFLICT_RESOLVER_FAILURE' -> endless loop
+ main.run_svn("Tree conflict on '%s'" % sbox.ospath("A1/B2"),
+ 'merge', '-c4', '^/A', sbox.ospath('A1'),
+ '--config-dir', config_dir, '--force-interactive')
+
+ # If everything works as expected the resolver will recommended a
+ # resolution option and 'svn' will resolve the conflict automatically.
+ # Verify that 'A1/B/lambda' contains the merged content:
+ contents = open(sbox.ospath('A1/B/lambda'), 'rb').readlines()
+ svntest.verify.compare_and_display_lines(
+ "A1/B/lambda has unexpectected contents", sbox.ospath("A1/B/lambda"),
+ [ "This is the file 'lambda'.\n", "This is more content.\n"], contents)
+
+
#######################################################################
# Run the tests
@@ -1534,6 +1578,7 @@ test_list = [ None,
actual_only_node_behaviour,
update_dir_with_not_present,
update_delete_mixed_rev,
+ local_missing_dir_endless_loop,
]
if __name__ == '__main__':
diff --git a/subversion/tests/cmdline/update_tests.py b/subversion/tests/cmdline/update_tests.py
index 16c7237..185fcb1 100755
--- a/subversion/tests/cmdline/update_tests.py
+++ b/subversion/tests/cmdline/update_tests.py
@@ -480,7 +480,7 @@ def update_to_rev_zero(sbox):
def receive_overlapping_same_change(sbox):
"overlapping identical changes should not conflict"
- ### (See http://subversion.tigris.org/issues/show_bug.cgi?id=682.)
+ ### (See https://issues.apache.org/jira/browse/SVN-682.)
###
### How this test works:
###
@@ -6719,6 +6719,7 @@ def update_conflict_details(sbox):
# Keywords should be updated in local file even if text change is shortcut
# (due to the local change being the same as the incoming change, for example).
@XFail()
+@Issue(4585)
def update_keywords_on_shortcut(sbox):
"update_keywords_on_shortcut"
diff --git a/subversion/tests/cmdline/upgrade_tests.py b/subversion/tests/cmdline/upgrade_tests.py
index 43258f6..c60dab5 100755
--- a/subversion/tests/cmdline/upgrade_tests.py
+++ b/subversion/tests/cmdline/upgrade_tests.py
@@ -392,7 +392,8 @@ def xml_entries_relocate(path, from_url, to_url):
entries = os.path.join(path, adm_name, 'entries')
txt = open(entries).read().replace('url="' + from_url, 'url="' + to_url)
os.chmod(entries, svntest.main.S_ALL_RWX)
- open(entries, 'w').write(txt)
+ with open(entries, 'w') as f:
+ f.write(txt)
for dirent in os.listdir(path):
item_path = os.path.join(path, dirent)
@@ -410,7 +411,8 @@ def simple_entries_replace(path, from_url, to_url):
entries = os.path.join(path, adm_name, 'entries')
txt = open(entries).read().replace(from_url, to_url)
os.chmod(entries, svntest.main.S_ALL_RWX)
- open(entries, 'wb').write(txt.encode())
+ with open(entries, 'wb') as f:
+ f.write(txt.encode())
for dirent in os.listdir(path):
item_path = os.path.join(path, dirent)
diff --git a/subversion/tests/libsvn_client/conflicts-test.c b/subversion/tests/libsvn_client/conflicts-test.c
index 0bcb464..67e516a 100644
--- a/subversion/tests/libsvn_client/conflicts-test.c
+++ b/subversion/tests/libsvn_client/conflicts-test.c
@@ -164,6 +164,7 @@ static const char *trunk_path = "A";
static const char *branch_path = "A_branch";
static const char *branch2_path = "A_branch2";
static const char *new_file_name = "newfile.txt";
+static const char *new_file2_name = "newfile2.txt";
static const char *new_file_name_branch = "newfile-on-branch.txt";
static const char *deleted_file_name = "mu";
static const char *deleted_dir_name = "B";
@@ -540,7 +541,7 @@ create_wc_with_dir_add_vs_dir_add_merge_conflict(
/* Now move the new directory to the colliding path. */
new_dir_path = svn_relpath_join(trunk_path, new_dir_name, b->pool);
SVN_ERR(sbox_wc_update(b, "", SVN_INVALID_REVNUM));
- sbox_wc_move(b, move_src_path, new_dir_path);
+ SVN_ERR(sbox_wc_move(b, move_src_path, new_dir_path));
SVN_ERR(sbox_wc_commit(b, ""));
}
new_dir_path = svn_relpath_join(branch_path, new_dir_name, b->pool);
@@ -608,7 +609,6 @@ create_wc_with_dir_add_vs_dir_add_merge_conflict(
svn_client_conflict_option_postpone,
svn_client_conflict_option_accept_current_wc_state,
svn_client_conflict_option_incoming_add_ignore,
- svn_client_conflict_option_incoming_added_dir_merge,
svn_client_conflict_option_incoming_added_dir_replace,
svn_client_conflict_option_incoming_added_dir_replace_and_merge,
-1 /* end of list */
@@ -1292,6 +1292,7 @@ test_merge_incoming_added_dir_replace_and_merge2(const svn_test_opts_t *opts,
static svn_error_t *
create_wc_with_incoming_delete_file_merge_conflict(svn_test__sandbox_t *b,
svn_boolean_t move,
+ svn_boolean_t move_unrelated,
svn_boolean_t do_switch)
{
svn_client_ctx_t *ctx;
@@ -1313,6 +1314,17 @@ create_wc_with_incoming_delete_file_merge_conflict(svn_test__sandbox_t *b,
deleted_path = svn_relpath_join(trunk_path, deleted_file_name, b->pool);
move_target_path = svn_relpath_join(trunk_path, new_file_name, b->pool);
SVN_ERR(sbox_wc_move(b, deleted_path, move_target_path));
+ if (move_unrelated)
+ {
+ /* Move an unrelated file on trunk as part of the same commit. */
+ deleted_path = svn_relpath_join(trunk_path,
+ svn_relpath_join(deleted_dir_name,
+ deleted_dir_child,
+ b->pool),
+ b->pool);
+ move_target_path = svn_relpath_join(trunk_path, new_file2_name, b->pool);
+ SVN_ERR(sbox_wc_move(b, deleted_path, move_target_path));
+ }
SVN_ERR(sbox_wc_commit(b, ""));
}
else
@@ -1378,7 +1390,8 @@ test_merge_incoming_delete_file_ignore(const svn_test_opts_t *opts,
SVN_ERR(svn_test__sandbox_create(b, "merge_incoming_delete_file_ignore",
opts, pool));
- SVN_ERR(create_wc_with_incoming_delete_file_merge_conflict(b, FALSE, FALSE));
+ SVN_ERR(create_wc_with_incoming_delete_file_merge_conflict(b, FALSE, FALSE,
+ FALSE));
/* Resolve the tree conflict. */
SVN_ERR(svn_test__create_client_ctx(&ctx, b, b->pool));
@@ -1470,7 +1483,8 @@ test_merge_incoming_delete_file_accept(const svn_test_opts_t *opts,
SVN_ERR(svn_test__sandbox_create(b, "merge_incoming_delete_file_accept",
opts, pool));
- SVN_ERR(create_wc_with_incoming_delete_file_merge_conflict(b, FALSE, FALSE));
+ SVN_ERR(create_wc_with_incoming_delete_file_merge_conflict(b, FALSE, FALSE,
+ FALSE));
/* Resolve the tree conflict. */
SVN_ERR(svn_test__create_client_ctx(&ctx, b, b->pool));
@@ -1565,7 +1579,8 @@ test_merge_incoming_move_file_text_merge(const svn_test_opts_t *opts,
SVN_ERR(svn_test__sandbox_create(b, "merge_incoming_move_file_text_merge",
opts, pool));
- SVN_ERR(create_wc_with_incoming_delete_file_merge_conflict(b, TRUE, FALSE));
+ SVN_ERR(create_wc_with_incoming_delete_file_merge_conflict(b, TRUE, FALSE,
+ FALSE));
/* Resolve the tree conflict. */
SVN_ERR(svn_test__create_client_ctx(&ctx, b, b->pool));
@@ -1971,7 +1986,8 @@ test_switch_incoming_move_file_text_merge(const svn_test_opts_t *opts,
SVN_ERR(svn_test__sandbox_create(b, "switch_incoming_move_file_text_merge",
opts, pool));
- SVN_ERR(create_wc_with_incoming_delete_file_merge_conflict(b, TRUE, TRUE));
+ SVN_ERR(create_wc_with_incoming_delete_file_merge_conflict(b, TRUE, FALSE,
+ TRUE));
/* Resolve the tree conflict. */
SVN_ERR(svn_test__create_client_ctx(&ctx, b, b->pool));
@@ -2888,10 +2904,13 @@ test_merge_incoming_edit_file_moved_away(const svn_test_opts_t *opts,
svn_client_ctx_t *ctx;
svn_opt_revision_t opt_rev;
svn_client_conflict_t *conflict;
+ apr_array_header_t *options;
+ svn_client_conflict_option_t *option;
svn_boolean_t text_conflicted;
apr_array_header_t *props_conflicted;
svn_boolean_t tree_conflicted;
svn_stringbuf_t *buf;
+ apr_array_header_t *possible_moved_to_abspaths;
SVN_ERR(svn_test__sandbox_create(
b, "merge_incoming_edit_file_moved_away", opts, pool));
@@ -2953,6 +2972,19 @@ test_merge_incoming_edit_file_moved_away(const svn_test_opts_t *opts,
SVN_ERR(assert_tree_conflict_options(conflict, ctx, expected_opts, pool));
}
+ SVN_ERR(svn_client_conflict_tree_get_resolution_options(&options, conflict,
+ ctx, b->pool,
+ b->pool));
+ option = svn_client_conflict_option_find_by_id(
+ options, svn_client_conflict_option_local_move_file_text_merge);
+ SVN_TEST_ASSERT(option != NULL);
+ SVN_ERR(svn_client_conflict_option_get_moved_to_abspath_candidates(
+ &possible_moved_to_abspaths, option, b->pool, b->pool));
+ SVN_TEST_INT_ASSERT(possible_moved_to_abspaths->nelts, 1);
+ SVN_TEST_STRING_ASSERT(
+ APR_ARRAY_IDX(possible_moved_to_abspaths, 0, const char *),
+ sbox_wc_path(b, "A1/mu-moved"));
+
/* Resolve the tree conflict by applying the incoming edit to the local
* move destination "mu-moved". */
SVN_ERR(svn_client_conflict_tree_resolve_by_id(
@@ -4966,7 +4998,7 @@ test_cherry_pick_post_move_edit(const svn_test_opts_t *opts,
svn_client_conflict_option_id_t expected_opts[] = {
svn_client_conflict_option_postpone,
svn_client_conflict_option_accept_current_wc_state,
- svn_client_conflict_option_local_move_file_text_merge,
+ svn_client_conflict_option_sibling_move_file_text_merge,
-1 /* end of list */
};
SVN_ERR(assert_tree_conflict_options(conflict, ctx, expected_opts,
@@ -4976,7 +5008,7 @@ test_cherry_pick_post_move_edit(const svn_test_opts_t *opts,
/* Try to resolve the conflict. */
SVN_ERR(svn_client_conflict_tree_resolve_by_id(
conflict,
- svn_client_conflict_option_local_move_file_text_merge,
+ svn_client_conflict_option_sibling_move_file_text_merge,
ctx, b->pool));
/* The node "A1/mu-moved" should no longer exist. */
@@ -4987,7 +5019,14 @@ test_cherry_pick_post_move_edit(const svn_test_opts_t *opts,
/* And "A1/mu" should have expected contents. */
SVN_ERR(svn_stringbuf_from_file2(&buf, sbox_wc_path(b, "A1/mu"), pool));
- SVN_TEST_STRING_ASSERT(buf->data, "More modified content." APR_EOL_STR);
+ SVN_TEST_STRING_ASSERT(buf->data,
+ "<<<<<<< .working" "\n"
+ "This is the file 'mu'." "\n"
+ "||||||| .old" "\n"
+ "Modified content." APR_EOL_STR
+ "=======" "\n"
+ "More modified content." APR_EOL_STR
+ ">>>>>>> .new" "\n");
return SVN_NO_ERROR;
}
@@ -5179,6 +5218,977 @@ test_merge_incoming_move_dir_across_branches(const svn_test_opts_t *opts,
return SVN_NO_ERROR;
}
+static svn_error_t *
+test_update_incoming_delete_locally_deleted_file(const svn_test_opts_t *opts,
+ apr_pool_t *pool)
+{
+ svn_test__sandbox_t *b = apr_palloc(pool, sizeof(*b));
+ svn_client_ctx_t *ctx;
+ svn_client_conflict_t *conflict;
+ svn_boolean_t text_conflicted;
+ apr_array_header_t *props_conflicted;
+ svn_boolean_t tree_conflicted;
+ svn_wc_status3_t *wc_status;
+
+ SVN_ERR(svn_test__sandbox_create(
+ b, "update_incoming_delete_locally_deleted_file", opts, pool));
+
+ SVN_ERR(sbox_add_and_commit_greek_tree(b));
+ /* Delete the file. */
+ SVN_ERR(sbox_wc_delete(b, "A/mu"));
+ SVN_ERR(sbox_wc_commit(b, ""));
+ /* Update to revision before delete. */
+ SVN_ERR(sbox_wc_update(b, "", 1));
+ /* Delete the file locally. */
+ SVN_ERR(sbox_wc_delete(b, "A/mu"));
+ /* Attempt an update to HEAD. */
+ SVN_ERR(sbox_wc_update(b, "", SVN_INVALID_REVNUM));
+
+ /* We should have a tree conflict in the file "mu". */
+ SVN_ERR(svn_test__create_client_ctx(&ctx, b, pool));
+ SVN_ERR(svn_client_conflict_get(&conflict, sbox_wc_path(b, "A/mu"),
+ ctx, pool, pool));
+ SVN_ERR(svn_client_conflict_get_conflicted(&text_conflicted,
+ &props_conflicted,
+ &tree_conflicted,
+ conflict, pool, pool));
+ SVN_TEST_ASSERT(!text_conflicted);
+ SVN_TEST_INT_ASSERT(props_conflicted->nelts, 0);
+ SVN_TEST_ASSERT(tree_conflicted);
+
+ /* Check available tree conflict resolution options. */
+ {
+ svn_client_conflict_option_id_t expected_opts[] = {
+ svn_client_conflict_option_postpone,
+ svn_client_conflict_option_accept_current_wc_state,
+ svn_client_conflict_option_incoming_delete_accept,
+ -1 /* end of list */
+ };
+ SVN_ERR(assert_tree_conflict_options(conflict, ctx, expected_opts, pool));
+ }
+
+ SVN_ERR(svn_client_conflict_tree_get_details(conflict, ctx, pool));
+
+ {
+ svn_client_conflict_option_id_t expected_opts[] = {
+ svn_client_conflict_option_postpone,
+ svn_client_conflict_option_accept_current_wc_state,
+ svn_client_conflict_option_incoming_delete_accept,
+ -1 /* end of list */
+ };
+ SVN_ERR(assert_tree_conflict_options(conflict, ctx, expected_opts, pool));
+ }
+
+ /* Resolve the tree conflict accepting the incoming deletion. */
+ SVN_ERR(svn_client_conflict_tree_resolve_by_id(
+ conflict, svn_client_conflict_option_incoming_delete_accept,
+ ctx, pool));
+
+ /* Check the status. */
+ SVN_ERR(svn_wc_status3(&wc_status, ctx->wc_ctx, sbox_wc_path(b, "A/mu"),
+ pool, pool));
+ SVN_TEST_INT_ASSERT(wc_status->kind, svn_node_unknown);
+ SVN_TEST_ASSERT(!wc_status->versioned);
+ SVN_TEST_ASSERT(!wc_status->conflicted);
+ SVN_TEST_INT_ASSERT(wc_status->node_status, svn_wc_status_none);
+ SVN_TEST_INT_ASSERT(wc_status->text_status, svn_wc_status_none);
+ SVN_TEST_INT_ASSERT(wc_status->prop_status, svn_wc_status_none);
+ SVN_TEST_INT_ASSERT(wc_status->actual_kind, svn_node_none);
+
+ return SVN_NO_ERROR;
+}
+
+/* A helper function which prepares a working copy for the test below. */
+static svn_error_t *
+create_wc_with_added_dir_conflict_across_branches(svn_test__sandbox_t *b,
+ svn_client_ctx_t *ctx)
+{
+ const char *trunk_url;
+ const char *branch_url;
+ svn_opt_revision_t opt_rev;
+ const char *new_dir_path;
+ const char *new_file_path;
+
+ SVN_ERR(sbox_add_and_commit_greek_tree(b));
+
+ /* Create a branch of node "A". */
+ SVN_ERR(sbox_wc_copy(b, trunk_path, branch_path));
+ SVN_ERR(sbox_wc_commit(b, ""));
+
+ /* Create a second branch ("branch2") of node "A". */
+ SVN_ERR(sbox_wc_copy(b, trunk_path, branch2_path));
+ SVN_ERR(sbox_wc_commit(b, ""));
+
+ /* Add directories with differing content to both branches. */
+ new_dir_path = svn_relpath_join(branch_path, new_dir_name, b->pool);
+ SVN_ERR(sbox_wc_mkdir(b, new_dir_path));
+ new_file_path = svn_relpath_join(new_dir_path, new_file_name, b->pool);
+ SVN_ERR(sbox_file_write(b, new_file_path,
+ "This is a new file on branch 1\n"));
+ SVN_ERR(sbox_wc_add(b, new_file_path));
+ SVN_ERR(sbox_wc_commit(b, ""));
+
+ new_dir_path = svn_relpath_join(branch2_path, new_dir_name, b->pool);
+ SVN_ERR(sbox_wc_mkdir(b, new_dir_path));
+ new_file_path = svn_relpath_join(new_dir_path, new_file_name, b->pool);
+ SVN_ERR(sbox_file_write(b, new_file_path,
+ "This is a new file on branch 2\n"));
+ SVN_ERR(sbox_wc_add(b, new_file_path));
+ SVN_ERR(sbox_wc_commit(b, ""));
+
+ /* Merge the differences between trunk and branch into branch2.
+ * This merge should raise an add vs. add conflict on the new directory. */
+ SVN_ERR(sbox_wc_update(b, "", SVN_INVALID_REVNUM));
+ opt_rev.kind = svn_opt_revision_head;
+ opt_rev.value.number = SVN_INVALID_REVNUM;
+ trunk_url = apr_pstrcat(b->pool, b->repos_url, "/", trunk_path,
+ SVN_VA_NULL);
+ branch_url = apr_pstrcat(b->pool, b->repos_url, "/", branch2_path,
+ SVN_VA_NULL);
+ opt_rev.kind = svn_opt_revision_head;
+ opt_rev.value.number = SVN_INVALID_REVNUM;
+ SVN_ERR(svn_client_merge5(trunk_url, &opt_rev, branch_url, &opt_rev,
+ sbox_wc_path(b, branch2_path),
+ svn_depth_infinity,
+ FALSE, FALSE, FALSE, FALSE, FALSE, FALSE,
+ NULL, ctx, b->pool));
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+test_merge_two_added_dirs_assertion_failure(const svn_test_opts_t *opts,
+ apr_pool_t *pool)
+{
+ svn_test__sandbox_t *b = apr_palloc(pool, sizeof(*b));
+ svn_client_ctx_t *ctx;
+ svn_client_conflict_t *conflict;
+ svn_boolean_t text_conflicted;
+ apr_array_header_t *props_conflicted;
+ svn_boolean_t tree_conflicted;
+ svn_wc_status3_t *wc_status;
+ const char *new_dir_path;
+
+ SVN_ERR(svn_test__sandbox_create(
+ b, "test_merge_two_added_dirs_assertion_failure", opts, pool));
+
+ SVN_ERR(svn_test__create_client_ctx(&ctx, b, pool));
+ SVN_ERR(create_wc_with_added_dir_conflict_across_branches(b, ctx));
+
+ /* We should have a tree conflict in the directory "A_branch2/newdir". */
+ new_dir_path = svn_relpath_join(branch2_path, new_dir_name, b->pool);
+ SVN_ERR(svn_client_conflict_get(&conflict, sbox_wc_path(b, new_dir_path),
+ ctx, pool, pool));
+ SVN_ERR(svn_client_conflict_get_conflicted(&text_conflicted,
+ &props_conflicted,
+ &tree_conflicted,
+ conflict, pool, pool));
+ SVN_TEST_ASSERT(!text_conflicted);
+ SVN_TEST_INT_ASSERT(props_conflicted->nelts, 0);
+ SVN_TEST_ASSERT(tree_conflicted);
+
+ /* Check available tree conflict resolution options. */
+ {
+ svn_client_conflict_option_id_t expected_opts[] = {
+ svn_client_conflict_option_postpone,
+ svn_client_conflict_option_accept_current_wc_state,
+ svn_client_conflict_option_incoming_add_ignore,
+ svn_client_conflict_option_incoming_added_dir_replace,
+ svn_client_conflict_option_incoming_added_dir_replace_and_merge,
+ -1 /* end of list */
+ };
+ SVN_ERR(assert_tree_conflict_options(conflict, ctx, expected_opts, pool));
+ }
+
+ /* This call used to run into an assertion failure (start_rev > end_rev). */
+ SVN_ERR(svn_client_conflict_tree_get_details(conflict, ctx, pool));
+
+ {
+ svn_client_conflict_option_id_t expected_opts[] = {
+ svn_client_conflict_option_postpone,
+ svn_client_conflict_option_accept_current_wc_state,
+ svn_client_conflict_option_incoming_add_ignore,
+ svn_client_conflict_option_incoming_added_dir_replace,
+ svn_client_conflict_option_incoming_added_dir_replace_and_merge,
+ -1 /* end of list */
+ };
+ SVN_ERR(assert_tree_conflict_options(conflict, ctx, expected_opts, pool));
+ }
+
+ /* Resolve the tree conflict by replace + merge. */
+ SVN_ERR(svn_client_conflict_tree_resolve_by_id(
+ conflict,
+ svn_client_conflict_option_incoming_added_dir_replace_and_merge,
+ ctx, pool));
+
+ /* Check the status. */
+ SVN_ERR(svn_wc_status3(&wc_status, ctx->wc_ctx, sbox_wc_path(b, new_dir_path),
+ pool, pool));
+ SVN_TEST_INT_ASSERT(wc_status->kind, svn_node_dir);
+ SVN_TEST_ASSERT(wc_status->versioned);
+ SVN_TEST_ASSERT(!wc_status->conflicted);
+ SVN_TEST_INT_ASSERT(wc_status->node_status, svn_wc_status_replaced);
+ SVN_TEST_INT_ASSERT(wc_status->text_status, svn_wc_status_normal);
+ SVN_TEST_INT_ASSERT(wc_status->prop_status, svn_wc_status_none);
+ SVN_TEST_INT_ASSERT(wc_status->actual_kind, svn_node_dir);
+
+ return SVN_NO_ERROR;
+}
+
+/* Test for issue #4766: resolver adds unrelated moves to move target list */
+static svn_error_t *
+test_merge_incoming_delete_file_unrelated_move(const svn_test_opts_t *opts,
+ apr_pool_t *pool)
+{
+ svn_test__sandbox_t *b = apr_palloc(pool, sizeof(*b));
+ svn_client_ctx_t *ctx;
+ const char *deleted_path;
+ svn_client_conflict_t *conflict;
+ svn_boolean_t tree_conflicted;
+ svn_boolean_t text_conflicted;
+ apr_array_header_t *props_conflicted;
+ struct status_baton sb;
+ struct svn_client_status_t *status;
+ svn_opt_revision_t opt_rev;
+ apr_array_header_t *possible_moved_to_repos_relpaths;
+ apr_array_header_t *options;
+ svn_client_conflict_option_t *option;
+ const char *new_file_path;
+ const char *moved_to_repos_path;
+ svn_node_kind_t kind;
+ svn_stringbuf_t *buf;
+
+ SVN_ERR(svn_test__sandbox_create(b,
+ "merge_incoming_delete_file_unrelated_move",
+ opts, pool));
+
+ SVN_ERR(create_wc_with_incoming_delete_file_merge_conflict(b, TRUE, TRUE,
+ FALSE));
+
+ /* Resolve the tree conflict. */
+ SVN_ERR(svn_test__create_client_ctx(&ctx, b, b->pool));
+ deleted_path = svn_relpath_join(branch_path, deleted_file_name, b->pool);
+ SVN_ERR(svn_client_conflict_get(&conflict, sbox_wc_path(b, deleted_path),
+ ctx, b->pool, b->pool));
+
+ {
+ svn_client_conflict_option_id_t expected_opts[] = {
+ svn_client_conflict_option_postpone,
+ svn_client_conflict_option_accept_current_wc_state,
+ svn_client_conflict_option_incoming_delete_ignore,
+ svn_client_conflict_option_incoming_delete_accept,
+ -1 /* end of list */
+ };
+ SVN_ERR(assert_tree_conflict_options(conflict, ctx, expected_opts,
+ b->pool));
+ }
+
+ SVN_ERR(svn_client_conflict_tree_get_details(conflict, ctx, b->pool));
+
+ {
+ svn_client_conflict_option_id_t expected_opts[] = {
+ svn_client_conflict_option_postpone,
+ svn_client_conflict_option_accept_current_wc_state,
+ svn_client_conflict_option_incoming_move_file_text_merge,
+ -1 /* end of list */
+ };
+ SVN_ERR(assert_tree_conflict_options(conflict, ctx, expected_opts,
+ b->pool));
+ }
+
+ SVN_ERR(svn_client_conflict_tree_get_resolution_options(&options, conflict,
+ ctx, b->pool,
+ b->pool));
+ option = svn_client_conflict_option_find_by_id(
+ options, svn_client_conflict_option_incoming_move_file_text_merge);
+ SVN_TEST_ASSERT(option != NULL);
+
+ /* Assert that only one move target candidate has been found in repository. */
+ SVN_ERR(svn_client_conflict_option_get_moved_to_repos_relpath_candidates(
+ &possible_moved_to_repos_relpaths, option, b->pool, b->pool));
+
+ SVN_TEST_INT_ASSERT(possible_moved_to_repos_relpaths->nelts, 1);
+ moved_to_repos_path = svn_relpath_join(trunk_path, new_file_name, b->pool);
+ SVN_TEST_STRING_ASSERT(
+ APR_ARRAY_IDX(possible_moved_to_repos_relpaths, 0, const char *), moved_to_repos_path);
+
+ SVN_ERR(svn_client_conflict_tree_resolve_by_id(
+ conflict, svn_client_conflict_option_incoming_move_file_text_merge,
+ ctx, b->pool));
+
+ /* Ensure that the deleted file has the expected status. */
+ opt_rev.kind = svn_opt_revision_working;
+ sb.result_pool = b->pool;
+ SVN_ERR(svn_client_status6(NULL, ctx, sbox_wc_path(b, deleted_path),
+ &opt_rev, svn_depth_unknown, TRUE, TRUE,
+ TRUE, TRUE, FALSE, TRUE, NULL,
+ status_func, &sb, b->pool));
+ status = sb.status;
+ SVN_TEST_ASSERT(status->kind == svn_node_file);
+ SVN_TEST_ASSERT(status->versioned);
+ SVN_TEST_ASSERT(!status->conflicted);
+ SVN_TEST_ASSERT(status->node_status == svn_wc_status_deleted);
+ SVN_TEST_ASSERT(status->text_status == svn_wc_status_normal);
+ SVN_TEST_ASSERT(status->prop_status == svn_wc_status_none);
+ SVN_TEST_ASSERT(!status->copied);
+ SVN_TEST_ASSERT(!status->switched);
+ SVN_TEST_ASSERT(!status->file_external);
+ SVN_TEST_ASSERT(status->moved_from_abspath == NULL);
+ new_file_path = svn_relpath_join(branch_path, new_file_name, b->pool);
+ SVN_TEST_STRING_ASSERT(status->moved_to_abspath,
+ sbox_wc_path(b, new_file_path));
+
+ SVN_ERR(svn_client_conflict_get(&conflict, sbox_wc_path(b, deleted_path),
+ ctx, b->pool, b->pool));
+
+ /* The file should not be in conflict. */
+ SVN_ERR(svn_client_conflict_get_conflicted(&text_conflicted,
+ &props_conflicted,
+ &tree_conflicted,
+ conflict, b->pool, b->pool));
+ SVN_TEST_ASSERT(!text_conflicted &&
+ props_conflicted->nelts == 0 &&
+ !tree_conflicted);
+
+ /* Ensure that the moved file has the expected status. */
+ opt_rev.kind = svn_opt_revision_working;
+ sb.result_pool = b->pool;
+ SVN_ERR(svn_client_status6(NULL, ctx, sbox_wc_path(b, new_file_path),
+ &opt_rev, svn_depth_unknown, TRUE, TRUE,
+ TRUE, TRUE, FALSE, TRUE, NULL,
+ status_func, &sb, b->pool));
+ status = sb.status;
+ SVN_TEST_ASSERT(status->kind == svn_node_file);
+ SVN_TEST_ASSERT(status->versioned);
+ SVN_TEST_ASSERT(!status->conflicted);
+ SVN_TEST_ASSERT(status->node_status == svn_wc_status_added);
+ SVN_TEST_ASSERT(status->text_status == svn_wc_status_normal);
+ SVN_TEST_ASSERT(status->prop_status == svn_wc_status_none);
+ SVN_TEST_ASSERT(status->copied);
+ SVN_TEST_ASSERT(!status->switched);
+ SVN_TEST_ASSERT(!status->file_external);
+ SVN_TEST_STRING_ASSERT(status->moved_from_abspath,
+ sbox_wc_path(b, deleted_path));
+ SVN_TEST_ASSERT(status->moved_to_abspath == NULL);
+
+ /* Ensure that the original file was removed. */
+ SVN_ERR(svn_io_check_path(sbox_wc_path(b, deleted_path), &kind, b->pool));
+ SVN_TEST_ASSERT(kind == svn_node_none);
+
+ /* Ensure that the moved file has the expected content. */
+ SVN_ERR(svn_stringbuf_from_file2(&buf, sbox_wc_path(b, new_file_path),
+ b->pool));
+ SVN_TEST_STRING_ASSERT(buf->data, modified_file_on_branch_content);
+
+ /* Ensure that the unrelated moved file has the expected status. */
+ opt_rev.kind = svn_opt_revision_working;
+ sb.result_pool = b->pool;
+ SVN_ERR(svn_client_status6(NULL, ctx,
+ sbox_wc_path(b, svn_relpath_join(branch_path,
+ new_file2_name, b->pool)),
+ &opt_rev, svn_depth_unknown, TRUE, TRUE,
+ TRUE, TRUE, FALSE, TRUE, NULL,
+ status_func, &sb, b->pool));
+ status = sb.status;
+ SVN_TEST_ASSERT(status->kind == svn_node_file);
+ SVN_TEST_ASSERT(status->versioned);
+ SVN_TEST_ASSERT(!status->conflicted);
+ SVN_TEST_ASSERT(status->node_status == svn_wc_status_added);
+ SVN_TEST_ASSERT(status->text_status == svn_wc_status_normal);
+ SVN_TEST_ASSERT(status->prop_status == svn_wc_status_none);
+ SVN_TEST_ASSERT(status->copied);
+ SVN_TEST_ASSERT(!status->switched);
+ SVN_TEST_ASSERT(!status->file_external);
+ SVN_TEST_ASSERT(status->moved_from_abspath == NULL);
+ SVN_TEST_ASSERT(status->moved_to_abspath == NULL);
+
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+test_cherry_pick_post_move_edit_dir(const svn_test_opts_t *opts,
+ apr_pool_t *pool)
+{
+ svn_test__sandbox_t *b = apr_palloc(pool, sizeof(*b));
+ const char *trunk_url;
+ svn_opt_revision_t peg_rev;
+ apr_array_header_t *ranges_to_merge;
+ svn_opt_revision_range_t merge_range;
+ svn_client_ctx_t *ctx;
+ svn_client_conflict_t *conflict;
+ svn_boolean_t tree_conflicted;
+ svn_stringbuf_t *buf;
+
+ SVN_ERR(svn_test__sandbox_create(b,
+ "test_cherry_pick_post_move_edit_dir",
+ opts, pool));
+
+ SVN_ERR(sbox_add_and_commit_greek_tree(b)); /* r1 */
+ /* Create a copy of node "A". */
+ SVN_ERR(sbox_wc_copy(b, "A", "A1"));
+ SVN_ERR(sbox_wc_commit(b, "")); /* r2 */
+ /* On "trunk", move the directory B. */
+ SVN_ERR(sbox_wc_move(b, "A/B", "A/B-moved"));
+ SVN_ERR(sbox_wc_commit(b, "")); /* r3 */
+ /* On "trunk", edit B-moved/lambda. This will be r4. */
+ SVN_ERR(sbox_file_write(b, "A/B-moved/lambda", "Modified content."
+ APR_EOL_STR));
+ SVN_ERR(sbox_wc_commit(b, "")); /* r4 */
+ SVN_ERR(sbox_wc_update(b, "", SVN_INVALID_REVNUM));
+
+ /* Perform a cherry-pick merge of r4 from A to A1. */
+ SVN_ERR(svn_test__create_client_ctx(&ctx, b, b->pool));
+ trunk_url = apr_pstrcat(b->pool, b->repos_url, "/A", SVN_VA_NULL);
+ peg_rev.kind = svn_opt_revision_number;
+ peg_rev.value.number = 4;
+ merge_range.start.kind = svn_opt_revision_number;
+ merge_range.start.value.number = 3;
+ merge_range.end.kind = svn_opt_revision_number;
+ merge_range.end.value.number = 4;
+ ranges_to_merge = apr_array_make(b->pool, 1,
+ sizeof(svn_opt_revision_range_t *));
+ APR_ARRAY_PUSH(ranges_to_merge, svn_opt_revision_range_t *) = &merge_range;
+ /* This should raise a "local missing vs incoming edit" conflict. */
+ SVN_ERR(svn_client_merge_peg5(trunk_url, ranges_to_merge, &peg_rev,
+ sbox_wc_path(b, "A1"), svn_depth_infinity,
+ FALSE, FALSE, FALSE, FALSE, FALSE, FALSE,
+ NULL, ctx, b->pool));
+
+ SVN_ERR(svn_client_conflict_get(&conflict,
+ sbox_wc_path(b, "A1/B-moved"),
+ ctx, b->pool, b->pool));
+ SVN_ERR(svn_client_conflict_get_conflicted(NULL, NULL, &tree_conflicted,
+ conflict, b->pool, b->pool));
+ SVN_TEST_ASSERT(tree_conflicted);
+ {
+ svn_client_conflict_option_id_t expected_opts[] = {
+ svn_client_conflict_option_postpone,
+ svn_client_conflict_option_accept_current_wc_state,
+ -1 /* end of list */
+ };
+ SVN_ERR(assert_tree_conflict_options(conflict, ctx, expected_opts,
+ b->pool));
+ }
+
+ SVN_ERR(svn_client_conflict_tree_get_details(conflict, ctx, b->pool));
+ {
+ svn_client_conflict_option_id_t expected_opts[] = {
+ svn_client_conflict_option_postpone,
+ svn_client_conflict_option_accept_current_wc_state,
+ svn_client_conflict_option_sibling_move_dir_merge,
+ -1 /* end of list */
+ };
+ SVN_ERR(assert_tree_conflict_options(conflict, ctx, expected_opts,
+ b->pool));
+ }
+
+ /* Try to resolve the conflict. */
+ SVN_ERR(svn_client_conflict_tree_resolve_by_id(
+ conflict,
+ svn_client_conflict_option_sibling_move_dir_merge,
+ ctx, b->pool));
+
+ /* The node "B-moved" should no longer exist. */
+ SVN_TEST_ASSERT_ERROR(svn_client_conflict_get(&conflict,
+ sbox_wc_path(b, "A1/B-moved"),
+ ctx, pool, pool),
+ SVN_ERR_WC_PATH_NOT_FOUND);
+
+ /* And "A1/B/lambda" should have expected contents. */
+ SVN_ERR(svn_stringbuf_from_file2(&buf, sbox_wc_path(b, "A1/B/lambda"), pool));
+ SVN_TEST_STRING_ASSERT(buf->data, "Modified content." APR_EOL_STR);
+
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+test_local_missing_abiguous_moves(const svn_test_opts_t *opts,
+ apr_pool_t *pool)
+{
+ svn_test__sandbox_t *b = apr_palloc(pool, sizeof(*b));
+ svn_opt_revision_t opt_rev;
+ svn_client_ctx_t *ctx;
+ svn_client_conflict_t *conflict;
+ apr_array_header_t *options;
+ svn_client_conflict_option_t *option;
+ apr_array_header_t *possible_moved_to_repos_relpaths;
+ apr_array_header_t *possible_moved_to_abspaths;
+ struct status_baton sb;
+ struct svn_client_status_t *status;
+ svn_stringbuf_t *buf;
+
+ SVN_ERR(svn_test__sandbox_create(b, "local_missing_ambiguous_moves", opts,
+ pool));
+
+ SVN_ERR(sbox_add_and_commit_greek_tree(b)); /* r1 */
+
+ /* Create a copy of node "A" (the "trunk") to "A1" (the "branch"). */
+ SVN_ERR(sbox_wc_copy(b, "A", "A1"));
+ SVN_ERR(sbox_wc_commit(b, "")); /* r2 */
+
+ SVN_ERR(sbox_wc_update(b, "", SVN_INVALID_REVNUM));
+ /* Copy a file across branch boundaries (gives ambiguous WC targets later). */
+ SVN_ERR(sbox_wc_copy(b, "A/mu", "A1/mu-copied-from-A"));
+ /* Create an ambiguous move with the "trunk". */
+ SVN_ERR(sbox_wc_copy(b, "A/mu", "A/mu-copied"));
+ SVN_ERR(sbox_wc_move(b, "A/mu", "A/mu-moved"));
+ SVN_ERR(sbox_wc_commit(b, "")); /* r3 */
+
+ /* Modify the moved file on the "branch". */
+ SVN_ERR(sbox_file_write(b, "A1/mu", "Modified content." APR_EOL_STR));
+ SVN_ERR(sbox_wc_commit(b, "")); /* r4 */
+ SVN_ERR(sbox_wc_update(b, "", SVN_INVALID_REVNUM));
+
+ /* Merge "A1" ("branch") into "A" ("trunk"). */
+ opt_rev.kind = svn_opt_revision_head;
+ opt_rev.value.number = SVN_INVALID_REVNUM;
+ SVN_ERR(svn_test__create_client_ctx(&ctx, b, pool));
+ SVN_ERR(svn_client_merge_peg5(svn_path_url_add_component2(b->repos_url, "A1",
+ pool),
+ NULL, &opt_rev, sbox_wc_path(b, "A"),
+ svn_depth_infinity,
+ FALSE, FALSE, FALSE, FALSE, FALSE, FALSE,
+ NULL, ctx, pool));
+
+ SVN_ERR(svn_client_conflict_get(&conflict, sbox_wc_path(b, "A/mu"),
+ ctx, b->pool, b->pool));
+ {
+ svn_client_conflict_option_id_t expected_opts[] = {
+ svn_client_conflict_option_postpone,
+ svn_client_conflict_option_accept_current_wc_state,
+ -1 /* end of list */
+ };
+ SVN_ERR(assert_tree_conflict_options(conflict, ctx, expected_opts,
+ b->pool));
+ }
+ SVN_ERR(svn_client_conflict_tree_get_details(conflict, ctx, b->pool));
+ {
+ svn_client_conflict_option_id_t expected_opts[] = {
+ svn_client_conflict_option_postpone,
+ svn_client_conflict_option_accept_current_wc_state,
+ svn_client_conflict_option_local_move_file_text_merge,
+ -1 /* end of list */
+ };
+ SVN_ERR(assert_tree_conflict_options(conflict, ctx, expected_opts,
+ b->pool));
+ }
+
+ SVN_ERR(svn_client_conflict_tree_get_resolution_options(&options, conflict,
+ ctx, b->pool,
+ b->pool));
+ option = svn_client_conflict_option_find_by_id(
+ options, svn_client_conflict_option_local_move_file_text_merge);
+ SVN_TEST_ASSERT(option != NULL);
+
+ /*
+ * Possible repository destinations for moved-away 'A/mu' are:
+ * (1): '^/A/mu-copied'
+ * (2): '^/A/mu-moved'
+ * (3): '^/A1/mu-copied-from-A'
+ */
+ SVN_ERR(svn_client_conflict_option_get_moved_to_repos_relpath_candidates(
+ &possible_moved_to_repos_relpaths, option, b->pool, b->pool));
+ SVN_TEST_INT_ASSERT(possible_moved_to_repos_relpaths->nelts, 3);
+ SVN_TEST_STRING_ASSERT(
+ APR_ARRAY_IDX(possible_moved_to_repos_relpaths, 0, const char *),
+ "A/mu-copied");
+ SVN_TEST_STRING_ASSERT(
+ APR_ARRAY_IDX(possible_moved_to_repos_relpaths, 1, const char *),
+ "A/mu-moved");
+ SVN_TEST_STRING_ASSERT(
+ APR_ARRAY_IDX(possible_moved_to_repos_relpaths, 2, const char *),
+ "A1/mu-copied-from-A");
+
+ /* Move target for "A/mu-copied" (selected by default) is not ambiguous. */
+ SVN_ERR(svn_client_conflict_option_get_moved_to_abspath_candidates(
+ &possible_moved_to_abspaths, option, b->pool, b->pool));
+ SVN_TEST_INT_ASSERT(possible_moved_to_abspaths->nelts, 1);
+ SVN_TEST_STRING_ASSERT(
+ APR_ARRAY_IDX(possible_moved_to_abspaths, 0, const char *),
+ sbox_wc_path(b, "A/mu-copied"));
+
+ /* Move target for "A/mu-moved" is not ambiguous. */
+ SVN_ERR(svn_client_conflict_option_set_moved_to_repos_relpath(option, 1,
+ ctx, b->pool));
+ SVN_ERR(svn_client_conflict_option_get_moved_to_abspath_candidates(
+ &possible_moved_to_abspaths, option, b->pool, b->pool));
+ SVN_TEST_INT_ASSERT(possible_moved_to_abspaths->nelts, 1);
+ SVN_TEST_STRING_ASSERT(
+ APR_ARRAY_IDX(possible_moved_to_abspaths, 0, const char *),
+ sbox_wc_path(b, "A/mu-moved"));
+
+ /* Select move target "A1/mu-copied-from-A". */
+ SVN_ERR(svn_client_conflict_option_set_moved_to_repos_relpath(option, 2,
+ ctx, b->pool));
+
+ /*
+ * Possible working copy destinations for moved-away 'A/mu' are:
+ * (1): 'A/mu-copied-from-A'
+ * (2): 'A1/mu-copied-from-A'
+ */
+ SVN_ERR(svn_client_conflict_option_get_moved_to_abspath_candidates(
+ &possible_moved_to_abspaths, option, b->pool, b->pool));
+ SVN_TEST_INT_ASSERT(possible_moved_to_abspaths->nelts, 2);
+ SVN_TEST_STRING_ASSERT(
+ APR_ARRAY_IDX(possible_moved_to_abspaths, 0, const char *),
+ sbox_wc_path(b, "A/mu-copied-from-A"));
+ SVN_TEST_STRING_ASSERT(
+ APR_ARRAY_IDX(possible_moved_to_abspaths, 1, const char *),
+ sbox_wc_path(b, "A1/mu-copied-from-A"));
+
+ /* Select move target "A/mu-moved". */
+ SVN_ERR(svn_client_conflict_option_set_moved_to_repos_relpath(option, 1,
+ ctx, b->pool));
+
+ /* Resolve the tree conflict. */
+ SVN_ERR(svn_client_conflict_tree_resolve_by_id(
+ conflict,
+ svn_client_conflict_option_local_move_file_text_merge, ctx,
+ b->pool));
+
+ /* The node "A/mu" should no longer exist. */
+ SVN_TEST_ASSERT_ERROR(svn_client_conflict_get(&conflict,
+ sbox_wc_path(b, "A/mu"),
+ ctx, pool, pool),
+ SVN_ERR_WC_PATH_NOT_FOUND);
+
+ /* Ensure that the merged file has the expected status. */
+ opt_rev.kind = svn_opt_revision_working;
+ sb.result_pool = b->pool;
+ SVN_ERR(svn_client_status6(NULL, ctx, sbox_wc_path(b, "A/mu-moved"),
+ &opt_rev, svn_depth_unknown, TRUE, TRUE,
+ TRUE, TRUE, FALSE, TRUE, NULL,
+ status_func, &sb, b->pool));
+ status = sb.status;
+ SVN_TEST_ASSERT(status->kind == svn_node_file);
+ SVN_TEST_ASSERT(status->versioned);
+ SVN_TEST_ASSERT(!status->conflicted);
+ SVN_TEST_ASSERT(status->node_status == svn_wc_status_modified);
+ SVN_TEST_ASSERT(status->text_status == svn_wc_status_modified);
+ SVN_TEST_ASSERT(status->prop_status == svn_wc_status_none);
+ SVN_TEST_ASSERT(!status->copied);
+ SVN_TEST_ASSERT(!status->switched);
+ SVN_TEST_ASSERT(!status->file_external);
+ SVN_TEST_ASSERT(status->moved_from_abspath == NULL);
+ SVN_TEST_ASSERT(status->moved_to_abspath == NULL);
+
+ /* And it should have expected contents. */
+ SVN_ERR(svn_stringbuf_from_file2(&buf, sbox_wc_path(b, "A/mu-moved"),
+ pool));
+ SVN_TEST_STRING_ASSERT(buf->data, "Modified content." APR_EOL_STR);
+
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+test_local_missing_abiguous_moves_dir(const svn_test_opts_t *opts,
+ apr_pool_t *pool)
+{
+ svn_test__sandbox_t *b = apr_palloc(pool, sizeof(*b));
+ svn_opt_revision_t opt_rev;
+ svn_client_ctx_t *ctx;
+ svn_client_conflict_t *conflict;
+ apr_array_header_t *options;
+ svn_client_conflict_option_t *option;
+ apr_array_header_t *possible_moved_to_repos_relpaths;
+ apr_array_header_t *possible_moved_to_abspaths;
+ struct status_baton sb;
+ struct svn_client_status_t *status;
+ svn_stringbuf_t *buf;
+
+ SVN_ERR(svn_test__sandbox_create(b, "local_missing_ambiguous_moves_dir",
+ opts, pool));
+
+ SVN_ERR(sbox_add_and_commit_greek_tree(b)); /* r1 */
+
+ /* Create a copy of node "A" (the "trunk") to "A1" (the "branch"). */
+ SVN_ERR(sbox_wc_copy(b, "A", "A1"));
+ SVN_ERR(sbox_wc_commit(b, "")); /* r2 */
+
+ SVN_ERR(sbox_wc_update(b, "", SVN_INVALID_REVNUM));
+ /* Copy a dir across branch boundaries (gives ambiguous WC targets later). */
+ SVN_ERR(sbox_wc_copy(b, "A/B", "A1/B-copied-from-A"));
+ /* Create an ambiguous move with the "trunk". */
+ SVN_ERR(sbox_wc_copy(b, "A/B", "A/B-copied"));
+ SVN_ERR(sbox_wc_move(b, "A/B", "A/B-moved"));
+ SVN_ERR(sbox_wc_commit(b, "")); /* r3 */
+
+ /* Modify a file in the moved directory on the "branch". */
+ SVN_ERR(sbox_file_write(b, "A1/B/lambda", "Modified content." APR_EOL_STR));
+ SVN_ERR(sbox_wc_commit(b, "")); /* r4 */
+ SVN_ERR(sbox_wc_update(b, "", SVN_INVALID_REVNUM));
+
+ /* Merge "A1" ("branch") into "A" ("trunk"). */
+ opt_rev.kind = svn_opt_revision_head;
+ opt_rev.value.number = SVN_INVALID_REVNUM;
+ SVN_ERR(svn_test__create_client_ctx(&ctx, b, pool));
+ SVN_ERR(svn_client_merge_peg5(svn_path_url_add_component2(b->repos_url, "A1",
+ pool),
+ NULL, &opt_rev, sbox_wc_path(b, "A"),
+ svn_depth_infinity,
+ FALSE, FALSE, FALSE, FALSE, FALSE, FALSE,
+ NULL, ctx, pool));
+
+ SVN_ERR(svn_client_conflict_get(&conflict, sbox_wc_path(b, "A/B"),
+ ctx, b->pool, b->pool));
+ {
+ svn_client_conflict_option_id_t expected_opts[] = {
+ svn_client_conflict_option_postpone,
+ svn_client_conflict_option_accept_current_wc_state,
+ -1 /* end of list */
+ };
+ SVN_ERR(assert_tree_conflict_options(conflict, ctx, expected_opts,
+ b->pool));
+ }
+ SVN_ERR(svn_client_conflict_tree_get_details(conflict, ctx, b->pool));
+ {
+ svn_client_conflict_option_id_t expected_opts[] = {
+ svn_client_conflict_option_postpone,
+ svn_client_conflict_option_accept_current_wc_state,
+ svn_client_conflict_option_local_move_dir_merge,
+ -1 /* end of list */
+ };
+ SVN_ERR(assert_tree_conflict_options(conflict, ctx, expected_opts,
+ b->pool));
+ }
+
+ SVN_ERR(svn_client_conflict_tree_get_resolution_options(&options, conflict,
+ ctx, b->pool,
+ b->pool));
+ option = svn_client_conflict_option_find_by_id(
+ options, svn_client_conflict_option_local_move_dir_merge);
+ SVN_TEST_ASSERT(option != NULL);
+
+ /*
+ * Possible repository destinations for moved-away 'A/mu' are:
+ * (1): '^/A/B-copied'
+ * (2): '^/A/B-moved'
+ * (3): '^/A1/B-copied-from-A'
+ */
+ SVN_ERR(svn_client_conflict_option_get_moved_to_repos_relpath_candidates(
+ &possible_moved_to_repos_relpaths, option, b->pool, b->pool));
+ SVN_TEST_INT_ASSERT(possible_moved_to_repos_relpaths->nelts, 3);
+ SVN_TEST_STRING_ASSERT(
+ APR_ARRAY_IDX(possible_moved_to_repos_relpaths, 0, const char *),
+ "A/B-copied");
+ SVN_TEST_STRING_ASSERT(
+ APR_ARRAY_IDX(possible_moved_to_repos_relpaths, 1, const char *),
+ "A/B-moved");
+ SVN_TEST_STRING_ASSERT(
+ APR_ARRAY_IDX(possible_moved_to_repos_relpaths, 2, const char *),
+ "A1/B-copied-from-A");
+
+ /* Move target for "A/B-copied" (selected by default) is not ambiguous. */
+ SVN_ERR(svn_client_conflict_option_get_moved_to_abspath_candidates(
+ &possible_moved_to_abspaths, option, b->pool, b->pool));
+ SVN_TEST_INT_ASSERT(possible_moved_to_abspaths->nelts, 1);
+ SVN_TEST_STRING_ASSERT(
+ APR_ARRAY_IDX(possible_moved_to_abspaths, 0, const char *),
+ sbox_wc_path(b, "A/B-copied"));
+
+ /* Move target for "A/mu-moved" is not ambiguous. */
+ SVN_ERR(svn_client_conflict_option_set_moved_to_repos_relpath(option, 1,
+ ctx, b->pool));
+ SVN_ERR(svn_client_conflict_option_get_moved_to_abspath_candidates(
+ &possible_moved_to_abspaths, option, b->pool, b->pool));
+ SVN_TEST_INT_ASSERT(possible_moved_to_abspaths->nelts, 1);
+ SVN_TEST_STRING_ASSERT(
+ APR_ARRAY_IDX(possible_moved_to_abspaths, 0, const char *),
+ sbox_wc_path(b, "A/B-moved"));
+
+ /* Select move target "A1/mu-copied-from-A". */
+ SVN_ERR(svn_client_conflict_option_set_moved_to_repos_relpath(option, 2,
+ ctx, b->pool));
+
+ /*
+ * Possible working copy destinations for moved-away 'A/mu' are:
+ * (1): 'A/B-copied-from-A'
+ * (2): 'A1/B-copied-from-A'
+ */
+ SVN_ERR(svn_client_conflict_option_get_moved_to_abspath_candidates(
+ &possible_moved_to_abspaths, option, b->pool, b->pool));
+ SVN_TEST_INT_ASSERT(possible_moved_to_abspaths->nelts, 2);
+ SVN_TEST_STRING_ASSERT(
+ APR_ARRAY_IDX(possible_moved_to_abspaths, 0, const char *),
+ sbox_wc_path(b, "A/B-copied-from-A"));
+ SVN_TEST_STRING_ASSERT(
+ APR_ARRAY_IDX(possible_moved_to_abspaths, 1, const char *),
+ sbox_wc_path(b, "A1/B-copied-from-A"));
+
+ /* Select move target "A/B-moved". */
+ SVN_ERR(svn_client_conflict_option_set_moved_to_repos_relpath(option, 1,
+ ctx, b->pool));
+
+ /* Resolve the tree conflict. */
+ SVN_ERR(svn_client_conflict_tree_resolve_by_id(
+ conflict,
+ svn_client_conflict_option_local_move_dir_merge, ctx,
+ b->pool));
+
+ /* The node "A/mu" should no longer exist. */
+ SVN_TEST_ASSERT_ERROR(svn_client_conflict_get(&conflict,
+ sbox_wc_path(b, "A/B"),
+ ctx, pool, pool),
+ SVN_ERR_WC_PATH_NOT_FOUND);
+
+ /* Ensure that the merged file has the expected status. */
+ opt_rev.kind = svn_opt_revision_working;
+ sb.result_pool = b->pool;
+ SVN_ERR(svn_client_status6(NULL, ctx, sbox_wc_path(b, "A/B-moved/lambda"),
+ &opt_rev, svn_depth_unknown, TRUE, TRUE,
+ TRUE, TRUE, FALSE, TRUE, NULL,
+ status_func, &sb, b->pool));
+ status = sb.status;
+ SVN_TEST_ASSERT(status->kind == svn_node_file);
+ SVN_TEST_ASSERT(status->versioned);
+ SVN_TEST_ASSERT(!status->conflicted);
+ SVN_TEST_ASSERT(status->node_status == svn_wc_status_modified);
+ SVN_TEST_ASSERT(status->text_status == svn_wc_status_modified);
+ SVN_TEST_ASSERT(status->prop_status == svn_wc_status_none);
+ SVN_TEST_ASSERT(!status->copied);
+ SVN_TEST_ASSERT(!status->switched);
+ SVN_TEST_ASSERT(!status->file_external);
+ SVN_TEST_ASSERT(status->moved_from_abspath == NULL);
+ SVN_TEST_ASSERT(status->moved_to_abspath == NULL);
+
+ /* And it should have expected contents. */
+ SVN_ERR(svn_stringbuf_from_file2(&buf, sbox_wc_path(b, "A/B-moved/lambda"),
+ pool));
+ SVN_TEST_STRING_ASSERT(buf->data, "Modified content." APR_EOL_STR);
+
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+test_file_vs_dir_move_merge_assertion_failure(const svn_test_opts_t *opts,
+ apr_pool_t *pool)
+{
+ svn_test__sandbox_t *b = apr_palloc(pool, sizeof(*b));
+ svn_opt_revision_t opt_rev, peg_rev;
+ svn_client_ctx_t *ctx;
+ svn_client_conflict_t *conflict;
+ apr_array_header_t *options;
+ svn_client_conflict_option_t *option;
+ const char *wc_path;
+
+ SVN_ERR(svn_test__sandbox_create(b,
+ "file_vs_dir_move_merge_assertion_failure",
+ opts, pool));
+
+ SVN_ERR(sbox_add_and_commit_greek_tree(b)); /* r1 */
+
+ /* Create a copy of node "A" (the "trunk") to "A1" (the "branch"). */
+ SVN_ERR(sbox_wc_copy(b, "A", "A1"));
+ SVN_ERR(sbox_wc_commit(b, "")); /* r2 */
+
+ SVN_ERR(sbox_wc_update(b, "", SVN_INVALID_REVNUM));
+ /* Move and modify file on the "branch" */
+ SVN_ERR(sbox_wc_move(b, "A1/B/lambda", "A1/B/lambda-moved"));
+ SVN_ERR(sbox_file_write(b, "A1/B/lambda-moved",
+ "Modified content." APR_EOL_STR));
+ SVN_ERR(sbox_wc_commit(b, "")); /* r3 */
+
+ /* Move a directory and modify a file inside of it on the "trunk". */
+ SVN_ERR(sbox_wc_move(b, "A/B", "A/B-moved"));
+ SVN_ERR(sbox_file_write(b, "A/B-moved/lambda",
+ "Modified content." APR_EOL_STR));
+ SVN_ERR(sbox_wc_commit(b, "")); /* r4 */
+ SVN_ERR(sbox_wc_update(b, "", SVN_INVALID_REVNUM));
+
+ /* Create a fresh working copy for "A1" ("branch"). */
+ wc_path = svn_test_data_path("file_vs_dir_move_merge_assertion_failure2",
+ pool);
+ SVN_ERR(svn_io_remove_dir2(wc_path, TRUE, NULL, NULL, pool));
+ SVN_ERR(svn_io_make_dir_recursively(wc_path, pool));
+ svn_test_add_dir_cleanup(wc_path);
+
+ /* Merge "A" ("trunk") into a fresh working copy of "A1" ("branch"). */
+ opt_rev.kind = svn_opt_revision_head;
+ opt_rev.value.number = SVN_INVALID_REVNUM;
+ peg_rev.kind = svn_opt_revision_unspecified;
+ SVN_ERR(svn_test__create_client_ctx(&ctx, b, pool));
+ SVN_ERR(svn_client_checkout3(NULL, svn_path_url_add_component2(b->repos_url,
+ "A1", pool),
+ wc_path, &peg_rev, &opt_rev, svn_depth_infinity,
+ TRUE, FALSE, ctx, pool));
+
+ SVN_ERR(svn_client_merge_peg5(svn_path_url_add_component2(b->repos_url, "A",
+ pool),
+ NULL, &opt_rev, wc_path, svn_depth_infinity,
+ FALSE, FALSE, FALSE, FALSE, FALSE, FALSE,
+ NULL, ctx, pool));
+
+ SVN_ERR(svn_client_conflict_get(&conflict,
+ svn_dirent_join(wc_path, "B", b->pool),
+ ctx, b->pool, b->pool));
+ {
+ svn_client_conflict_option_id_t expected_opts[] = {
+ svn_client_conflict_option_postpone,
+ svn_client_conflict_option_accept_current_wc_state,
+ svn_client_conflict_option_incoming_delete_ignore,
+ svn_client_conflict_option_incoming_delete_accept,
+ -1 /* end of list */
+ };
+ SVN_ERR(assert_tree_conflict_options(conflict, ctx, expected_opts,
+ b->pool));
+ }
+ SVN_ERR(svn_client_conflict_tree_get_details(conflict, ctx, b->pool));
+ {
+ svn_client_conflict_option_id_t expected_opts[] = {
+ svn_client_conflict_option_postpone,
+ svn_client_conflict_option_accept_current_wc_state,
+ svn_client_conflict_option_incoming_move_dir_merge,
+ -1 /* end of list */
+ };
+ SVN_ERR(assert_tree_conflict_options(conflict, ctx, expected_opts,
+ b->pool));
+ }
+
+ SVN_ERR(svn_client_conflict_tree_get_resolution_options(&options, conflict,
+ ctx, b->pool,
+ b->pool));
+ option = svn_client_conflict_option_find_by_id(
+ options, svn_client_conflict_option_incoming_move_dir_merge);
+ SVN_TEST_ASSERT(option != NULL);
+
+ /* Resolve this conflict. Another one will be raised. */
+ SVN_ERR(svn_client_conflict_tree_resolve_by_id(
+ conflict,
+ svn_client_conflict_option_incoming_move_dir_merge, ctx,
+ b->pool));
+
+ SVN_ERR(svn_client_conflict_get(&conflict,
+ svn_dirent_join_many(b->pool,
+ wc_path, "B-moved", "lambda", NULL),
+ ctx, b->pool, b->pool));
+ {
+ svn_client_conflict_option_id_t expected_opts[] = {
+ svn_client_conflict_option_postpone,
+ svn_client_conflict_option_accept_current_wc_state,
+ -1 /* end of list */
+ };
+ SVN_ERR(assert_tree_conflict_options(conflict, ctx, expected_opts,
+ b->pool));
+ }
+
+ /* This used to trigger an assertion failure:
+ * svn_tests: E235000: In file 'subversion/libsvn_client/conflicts.c' \
+ * line 2242: assertion failed (start_rev > end_rev) */
+ SVN_ERR(svn_client_conflict_tree_get_details(conflict, ctx, b->pool));
+ {
+ svn_client_conflict_option_id_t expected_opts[] = {
+ svn_client_conflict_option_postpone,
+ svn_client_conflict_option_accept_current_wc_state,
+ -1 /* end of list */
+ };
+ SVN_ERR(assert_tree_conflict_options(conflict, ctx, expected_opts,
+ b->pool));
+ }
+
+ /* Subversion is not yet smart enough to resolve this tree conflict. */
+
+ return SVN_NO_ERROR;
+}
+
/* ========================================================================== */
@@ -5265,10 +6275,24 @@ static struct svn_test_descriptor_t test_funcs[] =
"merge incoming move file merge with CRLF eols"),
SVN_TEST_OPTS_PASS(test_merge_incoming_move_file_text_merge_native_eol,
"merge incoming move file merge with native eols"),
- SVN_TEST_OPTS_XFAIL(test_cherry_pick_post_move_edit,
+ SVN_TEST_OPTS_PASS(test_cherry_pick_post_move_edit,
"cherry-pick edit from moved file"),
SVN_TEST_OPTS_PASS(test_merge_incoming_move_dir_across_branches,
- "merge incoming dir move across branches"),
+ "merge incoming dir move across branches"),
+ SVN_TEST_OPTS_PASS(test_update_incoming_delete_locally_deleted_file,
+ "update incoming delete to deleted file (#4739)"),
+ SVN_TEST_OPTS_PASS(test_merge_two_added_dirs_assertion_failure,
+ "merge two added dirs assertion failure (#4744)"),
+ SVN_TEST_OPTS_PASS(test_merge_incoming_delete_file_unrelated_move,
+ "do not suggest unrelated move targets (#4766)"),
+ SVN_TEST_OPTS_PASS(test_cherry_pick_post_move_edit_dir,
+ "cherry-pick edit from moved directory"),
+ SVN_TEST_OPTS_PASS(test_local_missing_abiguous_moves,
+ "local missing conflict with ambiguous moves"),
+ SVN_TEST_OPTS_PASS(test_local_missing_abiguous_moves_dir,
+ "local missing conflict with ambiguous dir moves"),
+ SVN_TEST_OPTS_PASS(test_file_vs_dir_move_merge_assertion_failure,
+ "file v dir move merge assertion failure"),
SVN_TEST_NULL
};
diff --git a/subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c b/subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c
index 7a6e910..469eb4e 100644
--- a/subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c
+++ b/subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c
@@ -1631,8 +1631,8 @@ delta_chain_with_plain(const svn_test_opts_t *opts,
svn_hash_sets(props, "p", svn_string_create(prop_value->data, pool));
hash_rep = svn_stringbuf_create_empty(pool);
- svn_hash_write2(props, svn_stream_from_stringbuf(hash_rep, pool), "END",
- pool);
+ SVN_ERR(svn_hash_write2(props, svn_stream_from_stringbuf(hash_rep, pool),
+ "END", pool));
SVN_ERR(svn_fs_begin_txn(&txn, fs, rev, pool));
SVN_ERR(svn_fs_txn_root(&root, txn, pool));
diff --git a/subversion/tests/libsvn_repos/authz-test.c b/subversion/tests/libsvn_repos/authz-test.c
index 6ee2448..1f6a4dd 100644
--- a/subversion/tests/libsvn_repos/authz-test.c
+++ b/subversion/tests/libsvn_repos/authz-test.c
@@ -277,9 +277,9 @@ test_authz_parse(const svn_test_opts_t *opts,
printf("[users]\n");
if (authz->has_anon_rights)
- print_user_rights(NULL, NULL, 0, &authz->anon_rights, pool);
+ SVN_ERR(print_user_rights(NULL, NULL, 0, &authz->anon_rights, pool));
if (authz->has_authn_rights)
- print_user_rights(NULL, NULL, 0, &authz->authn_rights, pool);
+ SVN_ERR(print_user_rights(NULL, NULL, 0, &authz->authn_rights, pool));
SVN_ERR(svn_iter_apr_hash(NULL, authz->user_rights,
print_user_rights, NULL, pool));
printf("\n\n");
@@ -478,6 +478,39 @@ issue_4741_groups(apr_pool_t *pool)
return SVN_NO_ERROR;
}
+static svn_error_t *
+reposful_reposless_stanzas_inherit(apr_pool_t *pool)
+{
+ const char rules[] =
+ "[groups]" NL
+ "company = user1, user2, user3" NL
+ "customer = customer1, customer2" NL
+ "" NL
+ "# company can read-write on everything" NL
+ "[/]" NL
+ "@company = rw" NL
+ "" NL
+ "[project1:/]" NL
+ "@customer = r" NL
+ "" NL
+ "[project2:/]" NL;
+
+ svn_stringbuf_t *buf = svn_stringbuf_create(rules, pool);
+ svn_stream_t *stream = svn_stream_from_stringbuf(buf, pool);
+ svn_authz_t *authz;
+ svn_boolean_t access_granted;
+
+ SVN_ERR(svn_repos_authz_parse(&authz, stream, NULL, pool));
+
+ SVN_ERR(svn_repos_authz_check_access(authz, "project1", "/foo", "user1",
+ svn_authz_write | svn_authz_recursive,
+ &access_granted,
+ pool));
+ SVN_TEST_ASSERT(access_granted == TRUE);
+
+ return SVN_NO_ERROR;
+}
+
static int max_threads = 4;
static struct svn_test_descriptor_t test_funcs[] =
@@ -489,6 +522,8 @@ static struct svn_test_descriptor_t test_funcs[] =
"test svn_authz__get_global_rights"),
SVN_TEST_PASS2(issue_4741_groups,
"issue 4741 groups"),
+ SVN_TEST_XFAIL2(reposful_reposless_stanzas_inherit,
+ "[foo:/] inherits [/]"),
SVN_TEST_NULL
};
diff --git a/subversion/tests/libsvn_repos/dump-load-test.c b/subversion/tests/libsvn_repos/dump-load-test.c
index 6940c85..e7450df 100644
--- a/subversion/tests/libsvn_repos/dump-load-test.c
+++ b/subversion/tests/libsvn_repos/dump-load-test.c
@@ -81,7 +81,7 @@ test_dump_bad_props(svn_stringbuf_t **dump_data_p,
notify_func, notify_baton,
NULL, NULL, NULL, NULL,
pool));
- svn_stream_close(stream);
+ SVN_ERR(svn_stream_close(stream));
/* Check that the property appears in the dump data */
expected_str = apr_psprintf(pool, "K %d\n%s\n"
@@ -131,7 +131,7 @@ test_load_bad_props(svn_stringbuf_t *dump_data,
notify_func, notify_baton,
NULL, NULL, /*cancellation*/
pool));
- svn_stream_close(stream);
+ SVN_ERR(svn_stream_close(stream));
/* Check the loaded property */
fs = svn_repos_fs(repos);
diff --git a/subversion/tests/libsvn_repos/repos-test.c b/subversion/tests/libsvn_repos/repos-test.c
index 8d5472c..63b76e1 100644
--- a/subversion/tests/libsvn_repos/repos-test.c
+++ b/subversion/tests/libsvn_repos/repos-test.c
@@ -4461,7 +4461,7 @@ test_list(const svn_test_opts_t *opts,
SVN_ERR(svn_repos_list(rev_root, "/A", patterns, svn_depth_infinity, FALSE,
NULL, NULL, list_callback, &counter, NULL, NULL,
pool));
- SVN_TEST_ASSERT(counter == 6);
+ SVN_TEST_ASSERT(counter == 7);
return SVN_NO_ERROR;
}
diff --git a/subversion/tests/libsvn_subr/priority-queue-test.c b/subversion/tests/libsvn_subr/priority-queue-test.c
index bd2d991..3fc5791 100644
--- a/subversion/tests/libsvn_subr/priority-queue-test.c
+++ b/subversion/tests/libsvn_subr/priority-queue-test.c
@@ -125,7 +125,7 @@ verify_queue_order(svn_priority_queue__t *queue)
}
/* the queue should now be empty */
- verify_empty_queue(queue);
+ SVN_ERR(verify_empty_queue(queue));
return SVN_NO_ERROR;
}
@@ -154,7 +154,7 @@ test_empty_queue(apr_pool_t *pool)
svn_priority_queue__t *queue
= svn_priority_queue__create(elements, compare_func);
- verify_empty_queue(queue);
+ SVN_ERR(verify_empty_queue(queue));
return SVN_NO_ERROR;
}
@@ -214,7 +214,7 @@ test_update(apr_pool_t *pool)
}
/* the queue should now be empty */
- verify_empty_queue(queue);
+ SVN_ERR(verify_empty_queue(queue));
return SVN_NO_ERROR;
}
diff --git a/subversion/tests/libsvn_wc/conflict-data-test.c b/subversion/tests/libsvn_wc/conflict-data-test.c
index 7d89825..239c18f 100644
--- a/subversion/tests/libsvn_wc/conflict-data-test.c
+++ b/subversion/tests/libsvn_wc/conflict-data-test.c
@@ -594,6 +594,7 @@ test_serialize_tree_conflict(const svn_test_opts_t *opts,
svn_wc_conflict_reason_moved_away,
svn_wc_conflict_action_delete,
sbox_wc_path(&sbox, "A/B"),
+ sbox_wc_path(&sbox, "A/C"),
pool, pool));
SVN_ERR(svn_wc__conflict_skel_set_op_switch(
@@ -610,11 +611,13 @@ test_serialize_tree_conflict(const svn_test_opts_t *opts,
{
svn_wc_conflict_reason_t reason;
svn_wc_conflict_action_t action;
- const char *moved_away_op_root_abspath;
+ const char *moved_away_src_op_root_abspath;
+ const char *moved_away_dst_op_root_abspath;
SVN_ERR(svn_wc__conflict_read_tree_conflict(&reason,
&action,
- &moved_away_op_root_abspath,
+ &moved_away_src_op_root_abspath,
+ &moved_away_dst_op_root_abspath,
sbox.wc_ctx->db,
sbox.wc_abspath,
conflict_skel,
@@ -622,8 +625,10 @@ test_serialize_tree_conflict(const svn_test_opts_t *opts,
SVN_TEST_ASSERT(reason == svn_wc_conflict_reason_moved_away);
SVN_TEST_ASSERT(action == svn_wc_conflict_action_delete);
- SVN_TEST_STRING_ASSERT(moved_away_op_root_abspath,
+ SVN_TEST_STRING_ASSERT(moved_away_src_op_root_abspath,
sbox_wc_path(&sbox, "A/B"));
+ SVN_TEST_STRING_ASSERT(moved_away_dst_op_root_abspath,
+ sbox_wc_path(&sbox, "A/C"));
}
return SVN_NO_ERROR;
diff --git a/subversion/tests/libsvn_wc/op-depth-test.c b/subversion/tests/libsvn_wc/op-depth-test.c
index bf6592d..66e5928 100644
--- a/subversion/tests/libsvn_wc/op-depth-test.c
+++ b/subversion/tests/libsvn_wc/op-depth-test.c
@@ -535,7 +535,7 @@ check_db_conflicts(svn_test__sandbox_t *b,
SVN_ERR(svn_wc__conflict_read_tree_conflict(&info->tc.reason,
&info->tc.action,
&move_src_abspath,
- b->wc_ctx->db,
+ NULL, b->wc_ctx->db,
local_abspath,
conflict,
b->pool, iterpool));
diff --git a/subversion/tests/libsvn_wc/utils.c b/subversion/tests/libsvn_wc/utils.c
index 766f93d..51a0729 100644
--- a/subversion/tests/libsvn_wc/utils.c
+++ b/subversion/tests/libsvn_wc/utils.c
@@ -417,11 +417,12 @@ sbox_wc_revert(svn_test__sandbox_t *b, const char *path, svn_depth_t depth)
SVN_ERR(svn_wc__acquire_write_lock(&lock_root_abspath, b->wc_ctx,
dir_abspath, FALSE /* lock_anchor */,
b->pool, b->pool));
- SVN_ERR(svn_wc_revert5(b->wc_ctx, abspath, depth,
+ SVN_ERR(svn_wc_revert6(b->wc_ctx, abspath, depth,
FALSE /* use_commit_times */,
NULL /* changelist_filter */,
FALSE /* clear_changelists */,
FALSE /* metadata_only */,
+ TRUE /*added_keep_local*/,
NULL, NULL, /* cancel baton + func */
NULL, NULL, /* notify baton + func */
b->pool));
diff --git a/subversion/tests/libsvn_wc/wc-queries-test.c b/subversion/tests/libsvn_wc/wc-queries-test.c
index 0a828c5..650f363 100644
--- a/subversion/tests/libsvn_wc/wc-queries-test.c
+++ b/subversion/tests/libsvn_wc/wc-queries-test.c
@@ -99,6 +99,7 @@ static const int slow_statements[] =
STMT_SELECT_DELETE_LIST,
STMT_SELECT_UPDATE_MOVE_LIST,
STMT_FIND_REPOS_PATH_IN_WC,
+ STMT_SELECT_PRESENT_HIGHEST_WORKING_NODES_BY_BASENAME_AND_KIND,
/* Designed as slow to avoid penalty on other queries */
STMT_SELECT_UNREFERENCED_PRISTINES,
diff --git a/subversion/tests/libsvn_wc/wc-test-queries.h b/subversion/tests/libsvn_wc/wc-test-queries.h
index b454af3..0a58a37 100644
--- a/subversion/tests/libsvn_wc/wc-test-queries.h
+++ b/subversion/tests/libsvn_wc/wc-test-queries.h
@@ -1,4 +1,4 @@
-/* This file is automatically generated from wc-test-queries.sql and subversion/tests/libsvn_wc/token-map.h.
+/* This file is automatically generated from wc-test-queries.sql and token-map.h.
* Do not edit this file -- edit the source and rerun gen-make.py */
#define STMT_SELECT_NODES_INFO 0
diff --git a/subversion/tests/svn_test_main.c b/subversion/tests/svn_test_main.c
index c3537d3..31d670f 100644
--- a/subversion/tests/svn_test_main.c
+++ b/subversion/tests/svn_test_main.c
@@ -903,9 +903,12 @@ svn_test_main(int argc, const char *argv[], int max_threads,
apr_err = apr_getopt_long(os, cl_options, &opt_id, &opt_arg);
if (APR_STATUS_IS_EOF(apr_err))
break;
- else if (apr_err && (apr_err != APR_BADCH))
+ else if (apr_err)
{
/* Ignore invalid option error to allow passing arbitrary options */
+ if (apr_err == APR_BADCH)
+ continue;
+
fprintf(stderr, "apr_getopt_long failed : [%d] %s\n",
apr_err, apr_strerror(apr_err, errmsg, sizeof(errmsg)));
exit(1);
diff --git a/tools/backup/hot-backup.py.in b/tools/backup/hot-backup.py.in
index 76bc91d..3a6d811 100755
--- a/tools/backup/hot-backup.py.in
+++ b/tools/backup/hot-backup.py.in
@@ -28,7 +28,7 @@
# under the License.
# ====================================================================
-# $HeadURL: https://svn.apache.org/repos/asf/subversion/branches/1.10.x/tools/backup/hot-backup.py.in $
+# $HeadURL: https://svn.apache.org/repos/asf/subversion/branches/1.11.x/tools/backup/hot-backup.py.in $
# $LastChangedDate: 2015-12-21 15:02:31 +0000 (Mon, 21 Dec 2015) $
# $LastChangedBy: danielsh $
# $LastChangedRevision: 1721179 $
diff --git a/tools/buildbot/slaves/bb-openbsd/svnbuild.sh b/tools/buildbot/slaves/bb-openbsd/svnbuild.sh
index 42c3260..e735465 100755
--- a/tools/buildbot/slaves/bb-openbsd/svnbuild.sh
+++ b/tools/buildbot/slaves/bb-openbsd/svnbuild.sh
@@ -22,7 +22,8 @@
set -e
set -x
-export JAVA_HOME=/usr/local/jdk-1.7.0
-
-branch="$(basename $(svn info . | grep ^URL | cut -d' ' -f2))"
-(cd .. && gmake BRANCH="$branch" THREADING="no")
+url="$(svn info --show-item url)"
+branch="${url##*/}"
+(test -h ../GNUmakefile || ln -s ../unix-build/Makefile.svn ../GNUmakefile)
+touch ../objdir/svn-${branch}/.retrieved
+(cd .. && gmake BRANCH="$branch" THREADING="no" JAVA="no" MAKE_JOBS=8)
diff --git a/tools/buildbot/slaves/bb-openbsd/svncheck-bindings.sh b/tools/buildbot/slaves/bb-openbsd/svncheck-bindings.sh
index 9d47b1f..e68775b 100755
--- a/tools/buildbot/slaves/bb-openbsd/svncheck-bindings.sh
+++ b/tools/buildbot/slaves/bb-openbsd/svncheck-bindings.sh
@@ -22,11 +22,11 @@
set -e
set -x
-branch="$(basename $(svn info . | grep ^URL | cut -d' ' -f2))"
+url="$(svn info --show-item url)"
+branch="${url##*/}"
export MALLOC_OPTIONS=S
-(cd .. && gmake BRANCH="$branch" THREADING="no" svn-check-bindings)
+(cd .. && gmake BRANCH="$branch" THREADING="no" JAVA="no" svn-check-bindings)
grep -q "^Result: PASS$" tests.log.bindings.pl || exit 1
grep -q "^OK$" tests.log.bindings.py || exit 1
grep -q ", 0 failures, 0 errors" tests.log.bindings.rb || exit 1
-#TODO javahl
exit 0
diff --git a/tools/buildbot/slaves/bb-openbsd/svncheck.sh b/tools/buildbot/slaves/bb-openbsd/svncheck.sh
index 7d50d98..4bac2bd 100755
--- a/tools/buildbot/slaves/bb-openbsd/svncheck.sh
+++ b/tools/buildbot/slaves/bb-openbsd/svncheck.sh
@@ -22,10 +22,10 @@
set -e
set -x
-branch="$(basename $(svn info . | grep ^URL | cut -d' ' -f2))"
+url="$(svn info --show-item url)"
+branch="${url##*/}"
export MALLOC_OPTIONS=S
-(cd .. && gmake BRANCH="$branch" PARALLEL="" THREADING="no" \
- MEMCACHED_SERVER="127.0.0.1:11211" \
+(cd .. && gmake BRANCH="$branch" PARALLEL="4" THREADING="no" JAVA="no" \
EXCLUSIVE_WC_LOCKS=1 \
svn-check-local \
svn-check-svn \
diff --git a/tools/buildbot/slaves/bb-openbsd/svnclean.sh b/tools/buildbot/slaves/bb-openbsd/svnclean.sh
index 063f4dd..3fd8278 100755
--- a/tools/buildbot/slaves/bb-openbsd/svnclean.sh
+++ b/tools/buildbot/slaves/bb-openbsd/svnclean.sh
@@ -22,12 +22,20 @@
set -e
set -x
-branch="$(basename $(svn info . | grep ^URL | cut -d' ' -f2))"
+url="$(svn info --show-item url)"
+branch="${url##*/}"
(test -h ../svn-trunk || ln -s build ../svn-trunk)
-for i in 6 7 8 9 10; do
+for i in $(jot - 6 12); do
(test -h ../svn-1.${i}.x || ln -s build ../svn-1.${i}.x)
done
+lastchangedrev="$(svn info --show-item=last-changed-revision ../../unix-build/Makefile.svn)"
svn update ../../unix-build
+newlastchangedrev="$(svn info --show-item=last-changed-revision ../../unix-build/Makefile.svn)"
(test -h ../GNUmakefile || ln -s ../unix-build/Makefile.svn ../GNUmakefile)
-(cd .. && gmake BRANCH="$branch" reset clean)
+# always rebuild svn, but only rebuild dependencies if Makefile.svn has changed
+if [ "$lastchangedrev" != "$newlastchangedrev" ]; then
+ (cd .. && gmake BRANCH="$branch" reset clean)
+else
+ (cd .. && gmake BRANCH="$branch" svn-reset svn-bindings-reset svn-clean)
+fi
rm -f tests.log* fails.log*
diff --git a/tools/buildbot/slaves/xp-vc60-ia32/config.bat.tmpl b/tools/buildbot/slaves/xp-vc60-ia32/config.bat.tmpl
deleted file mode 100644
index 1221b7a..0000000
--- a/tools/buildbot/slaves/xp-vc60-ia32/config.bat.tmpl
+++ /dev/null
@@ -1,44 +0,0 @@
-REM Licensed to the Apache Software Foundation (ASF) under one
-REM or more contributor license agreements. See the NOTICE file
-REM distributed with this work for additional information
-REM regarding copyright ownership. The ASF licenses this file
-REM to you under the Apache License, Version 2.0 (the
-REM "License"); you may not use this file except in compliance
-REM with the License. You may obtain a copy of the License at
-REM
-REM http://www.apache.org/licenses/LICENSE-2.0
-REM
-REM Unless required by applicable law or agreed to in writing,
-REM software distributed under the License is distributed on an
-REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-REM KIND, either express or implied. See the License for the
-REM specific language governing permissions and limitations
-REM under the License.
-
-set MSDEV=C:\Program Files\VS6.0
-set HTTPD_BIN_DIR=C:\Program Files\Apache2
-set TEST_DIR=C:\tmp\svn-auto-test
-set SDK_DIR=C:\Program Files\VS.NET\Vc7\PlatformSDK\
-
-set HTTPD_SRC_DIR=..\httpd
-set BDB_DIR=..\db4-win32
-set NEON_DIR=..\neon
-set ZLIB_DIR=..\zlib
-set OPENSSL_DIR=..\openssl
-set INTL_DIR=..\svn-win32-libintl
-
-REM Uncomment this if you want clean subversion build, after testing
-REM set CLEAN_SVN=1
-
-REM Uncomment this if you want disable ra_svn tests
-REM set NO_RA_SVN=1
-
-REM Uncomment this if you want disable ra_dav tests
-REM set NO_RA_HTTP=1
-
-set SDKINC=%SDK_DIR%\include
-set SDKLIB=%SDK_DIR%\lib
-
-set PATH=%MSDEV%\VC98\Bin;%MSDEV%\Common\MSDev98\Bin\;%PATH%
-set INCLUDE=%SDKINC%;%MSDEV%\VC98\ATL\INCLUDE;%MSDEV%\VC98\INCLUDE;%MSDEV%\VC98\MFC\INCLUDE
-set LIB=%SDKLIB%;%MSDEV%\VC98\LIB;%MSDEV%\VC98\MFC\LIB
diff --git a/tools/buildbot/slaves/xp-vc60-ia32/svnbuild.bat b/tools/buildbot/slaves/xp-vc60-ia32/svnbuild.bat
deleted file mode 100644
index 2d5a671..0000000
--- a/tools/buildbot/slaves/xp-vc60-ia32/svnbuild.bat
+++ /dev/null
@@ -1,77 +0,0 @@
-REM Licensed to the Apache Software Foundation (ASF) under one
-REM or more contributor license agreements. See the NOTICE file
-REM distributed with this work for additional information
-REM regarding copyright ownership. The ASF licenses this file
-REM to you under the Apache License, Version 2.0 (the
-REM "License"); you may not use this file except in compliance
-REM with the License. You may obtain a copy of the License at
-REM
-REM http://www.apache.org/licenses/LICENSE-2.0
-REM
-REM Unless required by applicable law or agreed to in writing,
-REM software distributed under the License is distributed on an
-REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-REM KIND, either express or implied. See the License for the
-REM specific language governing permissions and limitations
-REM under the License.
-
-IF NOT EXIST ..\config.bat GOTO noconfig
-call ..\config.bat
-
-IF NOT "%OPENSSL_DIR%"=="" call :openssl
-IF ERRORLEVEL 1 GOTO ERROR
-
-set PARAMS=-t dsp --with-berkeley-db=%BDB_DIR% --with-libintl=%INTL_DIR% --with-zlib=%ZLIB_DIR% --with-httpd=%HTTPD_SRC_DIR% --with-neon=%NEON_DIR% --enable-bdb-in-apr-util
-IF NOT "%OPENSSL_DIR%"=="" set PARAMS=%PARAMS% --with-openssl=%OPENSSL_DIR%
-
-python gen-make.py %PARAMS%
-IF ERRORLEVEL 1 GOTO ERROR
-
-MSDEV.COM %HTTPD_SRC_DIR%\apache.dsw /MAKE "BuildBin - Win32 Release"
-IF ERRORLEVEL 1 GOTO ERROR
-
-MSDEV.COM subversion_msvc.dsw /USEENV /MAKE "__ALL_TESTS__ - Win32 Release"
-IF ERRORLEVEL 1 GOTO ERROR
-
-
-EXIT 0
-
-REM ----------------------------------------------------
-:ERROR
-ECHO.
-ECHO *** Whoops, something choked.
-ECHO.
-CD ..
-EXIT 1
-
-
-:openssl
-rem ====== Build openssl.
-pushd %OPENSSL_DIR%
-perl Configure VC-WIN32
-IF ERRORLEVEL 1 goto openssl-err1
-
-call ms\do_ms
-IF ERRORLEVEL 1 goto openssl-err1
-
-nmake -f ms\ntdll.mak /NOLOGO /S
-IF ERRORLEVEL 1 goto openssl-err1
-
-pushd out32dll
-call ..\ms\test
-IF ERRORLEVEL 1 goto openssl-err2
-
-popd
-popd
-EXIT /B 0
-
-:openssl-err2
-popd
-
-:openssl-err1
-popd
-EXIT 1
-
-:noconfig
-echo File config.bat not found. Please copy it from config.bat.tmpl and tweak for you.
-EXIT 2
diff --git a/tools/buildbot/slaves/xp-vc60-ia32/svncheck.bat b/tools/buildbot/slaves/xp-vc60-ia32/svncheck.bat
deleted file mode 100644
index 70e8768..0000000
--- a/tools/buildbot/slaves/xp-vc60-ia32/svncheck.bat
+++ /dev/null
@@ -1,51 +0,0 @@
-REM Licensed to the Apache Software Foundation (ASF) under one
-REM or more contributor license agreements. See the NOTICE file
-REM distributed with this work for additional information
-REM regarding copyright ownership. The ASF licenses this file
-REM to you under the Apache License, Version 2.0 (the
-REM "License"); you may not use this file except in compliance
-REM with the License. You may obtain a copy of the License at
-REM
-REM http://www.apache.org/licenses/LICENSE-2.0
-REM
-REM Unless required by applicable law or agreed to in writing,
-REM software distributed under the License is distributed on an
-REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-REM KIND, either express or implied. See the License for the
-REM specific language governing permissions and limitations
-REM under the License.
-
-IF NOT EXIST ..\config.bat GOTO noconfig
-call ..\config.bat
-
-set FS_TYPE=%1
-set RA_TYPE=%2
-
-REM By default, return zero
-set ERR=0
-
-if "%RA_TYPE%"=="ra_local" goto ra_local
-if "%RA_TYPE%"=="ra_svn" goto ra_svn
-if "%RA_TYPE%"=="ra_dav" goto ra_dav
-
-echo Unknown ra method '%RA_TYPE%'
-EXIT 3
-
-:ra_local
-python win-tests.py %TEST_DIR% -f %FS_TYPE% -c -r
-if ERRORLEVEL 1 set ERR=1
-EXIT %ERR%
-
-:ra_svn
-python win-tests.py %TEST_DIR% -f %FS_TYPE% -c -r -u svn://localhost
-if ERRORLEVEL 1 set ERR=1
-EXIT %ERR%
-
-:ra_dav
-python win-tests.py %TEST_DIR% -f %FS_TYPE% -c -r --httpd-dir="%HTTPD_BIN_DIR%" --httpd-port 1234
-if ERRORLEVEL 1 set ERR=1
-EXIT %ERR%
-
-:noconfig
-echo File config.bat not found. Please copy it from config.bat.tmpl and tweak for you.
-EXIT 2
diff --git a/tools/buildbot/slaves/xp-vc60-ia32/svnclean.bat b/tools/buildbot/slaves/xp-vc60-ia32/svnclean.bat
deleted file mode 100644
index 64df9b8..0000000
--- a/tools/buildbot/slaves/xp-vc60-ia32/svnclean.bat
+++ /dev/null
@@ -1,28 +0,0 @@
-REM Licensed to the Apache Software Foundation (ASF) under one
-REM or more contributor license agreements. See the NOTICE file
-REM distributed with this work for additional information
-REM regarding copyright ownership. The ASF licenses this file
-REM to you under the Apache License, Version 2.0 (the
-REM "License"); you may not use this file except in compliance
-REM with the License. You may obtain a copy of the License at
-REM
-REM http://www.apache.org/licenses/LICENSE-2.0
-REM
-REM Unless required by applicable law or agreed to in writing,
-REM software distributed under the License is distributed on an
-REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-REM KIND, either express or implied. See the License for the
-REM specific language governing permissions and limitations
-REM under the License.
-
-IF NOT EXIST ..\config.bat GOTO noconfig
-call ..\config.bat
-
-if NOT "%CLEAN_SVN%"=="" MSDEV.COM subversion_msvc.dsw /MAKE "__ALL_TESTS__ - Win32 Release" /CLEAN
-if ERRORLEVEL 1 EXIT 1
-
-EXIT 0
-
-:noconfig
-echo File config.bat not found. Please copy it from config.bat.tmpl and tweak for you.
-EXIT 2
diff --git a/tools/buildbot/slaves/xp-vc60-ia32/svnlog.bat b/tools/buildbot/slaves/xp-vc60-ia32/svnlog.bat
deleted file mode 100644
index bb0d872..0000000
--- a/tools/buildbot/slaves/xp-vc60-ia32/svnlog.bat
+++ /dev/null
@@ -1,25 +0,0 @@
-REM Licensed to the Apache Software Foundation (ASF) under one
-REM or more contributor license agreements. See the NOTICE file
-REM distributed with this work for additional information
-REM regarding copyright ownership. The ASF licenses this file
-REM to you under the Apache License, Version 2.0 (the
-REM "License"); you may not use this file except in compliance
-REM with the License. You may obtain a copy of the License at
-REM
-REM http://www.apache.org/licenses/LICENSE-2.0
-REM
-REM Unless required by applicable law or agreed to in writing,
-REM software distributed under the License is distributed on an
-REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-REM KIND, either express or implied. See the License for the
-REM specific language governing permissions and limitations
-REM under the License.
-
-IF NOT EXIST ..\config.bat GOTO noconfig
-call ..\config.bat
-
-EXIT 0
-
-:noconfig
-echo File config.bat not found. Please copy it from config.bat.tmpl and tweak for you.
-EXIT 2
diff --git a/tools/client-side/bash_completion b/tools/client-side/bash_completion
index 53632fb..d2095ca 100644
--- a/tools/client-side/bash_completion
+++ b/tools/client-side/bash_completion
@@ -248,7 +248,8 @@ _svn()
cmds="$cmds patch propdel pdel propedit pedit propget pget proplist"
cmds="$cmds plist propset pset relocate resolve resolved revert status"
cmds="$cmds switch unlock update upgrade"
- cmds="$cmds shelve shelves unshelve"
+ cmds="$cmds x-shelf-diff x-shelf-drop x-shelf-list x-shelf-list-by-paths"
+ cmds="$cmds x-shelf-log x-shelf-save x-shelve x-shelves x-unshelve"
# help options have a strange command status...
local helpOpts='--help -h'
@@ -845,9 +846,11 @@ _svn()
# otherwise build possible options for the command
pOpts="--username --password --no-auth-cache --non-interactive \
+ --password-from-stdin \
--trust-server-cert-failures \
--force-interactive"
- mOpts="-m --message -F --file --encoding --force-log --with-revprop"
+ mOpts="-m --message -F --file --encoding --force-log --with-revprop \
+ --editor-cmd"
rOpts="-r --revision"
qOpts="-q --quiet"
nOpts="-N --non-recursive --depth"
@@ -886,16 +889,16 @@ _svn()
--remove-ignored --remove-unversioned --vacuum-pristines"
;;
commit|ci)
- cmdOpts="$mOpts $qOpts $nOpts --targets --editor-cmd $pOpts \
+ cmdOpts="$mOpts $qOpts $nOpts --targets $pOpts \
--no-unlock $cOpts --keep-changelists \
--include-externals"
;;
copy|cp)
- cmdOpts="$mOpts $rOpts $qOpts --editor-cmd $pOpts --parents \
+ cmdOpts="$mOpts $rOpts $qOpts $pOpts --parents \
--ignore-externals --pin-externals"
;;
delete|del|remove|rm)
- cmdOpts="--force $mOpts $qOpts --targets --editor-cmd $pOpts \
+ cmdOpts="--force $mOpts $qOpts --targets $pOpts \
--keep-local"
;;
diff|di)
@@ -915,7 +918,7 @@ _svn()
;;
import)
cmdOpts="--auto-props --no-auto-props $mOpts $qOpts $nOpts \
- --no-ignore --editor-cmd $pOpts --force"
+ --no-ignore $pOpts --force"
;;
info)
cmdOpts="$pOpts $rOpts --targets -R --recursive --depth \
@@ -949,10 +952,10 @@ _svn()
$qOpts -v --verbose --incremental --log"
;;
mkdir)
- cmdOpts="$mOpts $qOpts --editor-cmd $pOpts --parents"
+ cmdOpts="$mOpts $qOpts $pOpts --parents"
;;
move|mv|rename|ren)
- cmdOpts="$mOpts $qOpts --force --editor-cmd $pOpts \
+ cmdOpts="$mOpts $qOpts --force $pOpts \
--parents --allow-mixed-revisions"
;;
patch)
@@ -965,7 +968,7 @@ _svn()
[[ $isRevProp || ! $prop ]] && cmdOpts="$cmdOpts --revprop"
;;
propedit|pedit|pe)
- cmdOpts="--editor-cmd $pOpts $mOpts --force"
+ cmdOpts="$pOpts $mOpts --force"
[[ $isRevProp || ! $prop ]] && \
cmdOpts="$cmdOpts --revprop $rOpts"
;;
@@ -1021,15 +1024,37 @@ _svn()
upgrade)
cmdOpts="$qOpts $pOpts"
;;
- shelve)
- cmdOpts="$qOpts --keep-local --delete --list -m --message -F --file --encoding --force-log --editor-cmd --dry-run --depth --targets $cOpts $pOpts"
+ x-shelf-list-by-paths)
+ cmdOpts="$pOpts"
;;
- unshelve)
- cmdOpts="$qOpts --keep-shelved --list --dry-run $pOpts"
+ x-shelf-diff)
+ cmdOpts="$pOpts --summarize"
;;
- shelves)
+ x-shelf-drop)
+ cmdOpts="$pOpts"
+ ;;
+ x-shelf-list|x-shelves)
+ cmdOpts="$qOpts $pOpts"
+ ;;
+ x-shelf-log)
cmdOpts="$qOpts $pOpts"
;;
+ x-shelf-save)
+ cmdOpts="--dry-run \
+ --depth --targets $cOpts \
+ $mOpts \
+ $qOpts $pOpts"
+ ;;
+ x-shelve)
+ cmdOpts="--keep-local --dry-run \
+ --depth --targets $cOpts \
+ $mOpts \
+ $qOpts $pOpts"
+ ;;
+ x-unshelve)
+ cmdOpts="--drop --dry-run \
+ $qOpts $pOpts"
+ ;;
*)
;;
esac
diff --git a/tools/client-side/svn-mergeinfo-normalizer/help-cmd.c b/tools/client-side/svn-mergeinfo-normalizer/help-cmd.c
index d2f1731..09e611e 100644
--- a/tools/client-side/svn-mergeinfo-normalizer/help-cmd.c
+++ b/tools/client-side/svn-mergeinfo-normalizer/help-cmd.c
@@ -176,7 +176,7 @@ svn_min__help(apr_getopt_t *os,
svn_stringbuf_appendcstr(version_footer, "* KWallet (KDE)\n");
#endif
- return svn_opt_print_help4(os,
+ return svn_opt_print_help5(os,
"svn-mergeinfo-normalizer",
opt_state ? opt_state->version : FALSE,
opt_state ? opt_state->quiet : FALSE,
diff --git a/tools/client-side/svn-mergeinfo-normalizer/mergeinfo-normalizer.h b/tools/client-side/svn-mergeinfo-normalizer/mergeinfo-normalizer.h
index 8afff31..9112f05 100644
--- a/tools/client-side/svn-mergeinfo-normalizer/mergeinfo-normalizer.h
+++ b/tools/client-side/svn-mergeinfo-normalizer/mergeinfo-normalizer.h
@@ -117,7 +117,7 @@ svn_opt_subcommand_t
svn_min__remove_branches;
/* See definition in svn.c for documentation. */
-extern const svn_opt_subcommand_desc2_t svn_min__cmd_table[];
+extern const svn_opt_subcommand_desc3_t svn_min__cmd_table[];
/* See definition in svn.c for documentation. */
extern const int svn_min__global_options[];
diff --git a/tools/client-side/svn-mergeinfo-normalizer/svn-mergeinfo-normalizer.c b/tools/client-side/svn-mergeinfo-normalizer/svn-mergeinfo-normalizer.c
index c0c7fc3..fd12cc6 100644
--- a/tools/client-side/svn-mergeinfo-normalizer/svn-mergeinfo-normalizer.c
+++ b/tools/client-side/svn-mergeinfo-normalizer/svn-mergeinfo-normalizer.c
@@ -221,43 +221,44 @@ const int svn_min__global_options[] =
opt_config_dir, opt_config_options, 0
};
-const svn_opt_subcommand_desc2_t svn_min__cmd_table[] =
+const svn_opt_subcommand_desc3_t svn_min__cmd_table[] =
{
- { "help", svn_min__help, {"?", "h"}, N_
- ("Describe the usage of this program or its subcommands.\n"
- "usage: help [SUBCOMMAND...]\n"),
+ { "help", svn_min__help, {"?", "h"}, {N_(
+ "Describe the usage of this program or its subcommands.\n"
+ "usage: help [SUBCOMMAND...]\n"
+ )},
{0} },
/* This command is also invoked if we see option "--help", "-h" or "-?". */
- { "analyze", svn_min__analyze, { "analyse" }, N_
- ("Generate a report of which part of the sub-tree mergeinfo can be\n"
+ { "analyze", svn_min__analyze, { "analyse" }, {N_(
+ "Generate a report of which part of the sub-tree mergeinfo can be\n"
"removed and which part can't.\n"
"usage: analyze [WCPATH...]\n"
- "\n"
+ "\n"), N_(
" If neither --remove-obsoletes, --remove-redundant nor --combine-ranges\n"
" option is given, all three will be used implicitly.\n"
- "\n"
+ "\n"), N_(
" In verbose mode, the command will behave just like 'normalize --dry-run'\n"
" but will show an additional summary of all deleted branches that were\n"
" encountered plus the revision of their latest deletion (if available).\n"
- "\n"
+ "\n"), N_(
" In non-verbose mode, the per-node output does not give the parent path,\n"
" no successful elisions and branch removals nor the list of remaining\n"
" branches.\n"
- ),
+ )},
{opt_targets, opt_depth, 'v',
opt_remove_obsoletes, opt_remove_redundant,
opt_remove_redundant_misaligned, opt_combine_ranges} },
- { "normalize", svn_min__normalize, { 0 }, N_
- ("Normalize / reduce the mergeinfo throughout the working copy sub-tree.\n"
+ { "normalize", svn_min__normalize, { 0 }, {N_(
+ "Normalize / reduce the mergeinfo throughout the working copy sub-tree.\n"
"usage: normalize [WCPATH...]\n"
- "\n"
+ "\n"), N_(
" If neither --remove-obsoletes, --remove-redundant, --combine-ranges\n"
" nor --remove-redundant-misaligned option is given, --remove-redundant\n"
" will be used implicitly.\n"
- "\n"
+ "\n"), N_(
" In non-verbose mode, only general progress as well as a summary before\n"
" and after the normalization process will be shown. Note that sub-node\n"
" mergeinfo which could be removed entirely does not contribute to the\n"
@@ -265,12 +266,12 @@ const svn_opt_subcommand_desc2_t svn_min__cmd_table[] =
" ranges combined only refers to the mergeinfo lines still present after\n"
" the normalization process. To get total numbers, compare the initial\n"
" with the final mergeinfo statistics.\n"
- "\n"
+ "\n"), N_(
" The detailed operation log in verbose mode replaces the progress display.\n"
" For each node with mergeinfo, the nearest parent node with mergeinfo is\n"
" given - if there is one and the result of trying to remove the mergeinfo\n"
" is shown for each branch. The various outputs are:\n"
- "\n"
+ "\n"), N_(
" elide redundant branch - Revision ranges are the same as in the parent.\n"
" Mergeinfo for this branch can be elided.\n"
" elide branch - Not an exact match with the parent but the\n"
@@ -324,32 +325,34 @@ const svn_opt_subcommand_desc2_t svn_min__cmd_table[] =
" The sub-tree mergeinfo cannot be elided.\n"
" REVERSE RANGE(S) found - The mergeinfo contains illegal reverse ranges.\n"
" The sub-tree mergeinfo cannot be elided.\n"
- "\n"
+ "\n"), N_(
" If all branches have been removed from a nodes' mergeinfo, the whole\n"
" svn:mergeinfo property will be removed. Otherwise, only obsolete\n"
" branches will be removed. In verbose mode, a list of branches that\n"
- " could not be removed will be shown per node.\n"),
+ " could not be removed will be shown per node.\n"
+ )},
{opt_targets, opt_depth, opt_dry_run, 'q', 'v',
opt_remove_obsoletes, opt_remove_redundant,
opt_remove_redundant_misaligned, opt_combine_ranges} },
- { "remove-branches", svn_min__remove_branches, { 0 }, N_
- ("Read a list of branch names from the given file and remove all\n"
+ { "remove-branches", svn_min__remove_branches, { 0 }, {N_(
+ "Read a list of branch names from the given file and remove all\n"
"mergeinfo referring to these branches from the given targets.\n"
"usage: remove-branches [WCPATH...] --file FILE\n"
- "\n"
+ "\n"), N_(
" The command will behave just like 'normalize --remove-obsoletes' but\n"
" will never actually contact the repository. Instead, it assumes any\n"
" path given in FILE is a deleted branch.\n"
- "\n"
+ "\n"), N_(
" Compared to a simple 'normalize --remove-obsoletes' run, this command\n"
" allows for selective removal of obsolete branches. It may therefore be\n"
" better suited for large deployments with complex branch structures.\n"
" You may also use this to remove mergeinfo that refers to still existing\n"
- " branches.\n"),
+ " branches.\n"
+ )},
{opt_targets, opt_depth, opt_dry_run, 'q', 'v', 'F'} },
- { NULL, NULL, {0}, NULL, {0} }
+ { NULL, NULL, {0}, {NULL}, {0} }
};
@@ -414,7 +417,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
svn_client_ctx_t *ctx;
apr_array_header_t *received_opts;
int i;
- const svn_opt_subcommand_desc2_t *subcommand = NULL;
+ const svn_opt_subcommand_desc3_t *subcommand = NULL;
svn_min__cmd_baton_t command_baton = { 0 };
svn_auth_baton_t *ab;
svn_config_t *cfg_config;
@@ -639,7 +642,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
just typos/mistakes. Whatever the case, the subcommand to
actually run is svn_cl__help(). */
if (opt_state.help)
- subcommand = svn_opt_get_canonical_subcommand2(svn_min__cmd_table, "help");
+ subcommand = svn_opt_get_canonical_subcommand3(svn_min__cmd_table, "help");
/* If we're not running the `help' subcommand, then look for a
subcommand in the first argument. */
@@ -650,8 +653,8 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
if (opt_state.version)
{
/* Use the "help" subcommand to handle the "--version" option. */
- static const svn_opt_subcommand_desc2_t pseudo_cmd =
- { "--version", svn_min__help, {0}, "",
+ static const svn_opt_subcommand_desc3_t pseudo_cmd =
+ { "--version", svn_min__help, {0}, {""},
{opt_version, /* must accept its own option */
'q', /* brief output */
'v', /* verbose output */
@@ -676,7 +679,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
SVN_ERR(svn_utf_cstring_to_utf8(&first_arg, os->argv[os->ind++],
pool));
- subcommand = svn_opt_get_canonical_subcommand2(svn_min__cmd_table,
+ subcommand = svn_opt_get_canonical_subcommand3(svn_min__cmd_table,
first_arg);
if (subcommand == NULL)
{
@@ -704,12 +707,12 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
if (opt_id == 'h' || opt_id == '?')
continue;
- if (! svn_opt_subcommand_takes_option3(subcommand, opt_id,
+ if (! svn_opt_subcommand_takes_option4(subcommand, opt_id,
svn_min__global_options))
{
const char *optstr;
const apr_getopt_option_t *badopt =
- svn_opt_get_option_from_code2(opt_id, svn_min__options,
+ svn_opt_get_option_from_code3(opt_id, svn_min__options,
subcommand, pool);
svn_opt_format_option(&optstr, badopt, FALSE, pool);
if (subcommand->name[0] == '-')
diff --git a/tools/client-side/svn-mergeinfo-normalizer/wc_mergeinfo.c b/tools/client-side/svn-mergeinfo-normalizer/wc_mergeinfo.c
index 6d7b841..edc2208 100644
--- a/tools/client-side/svn-mergeinfo-normalizer/wc_mergeinfo.c
+++ b/tools/client-side/svn-mergeinfo-normalizer/wc_mergeinfo.c
@@ -112,8 +112,8 @@ static int
compare_mergeinfo(const void *lhs,
const void *rhs)
{
- const mergeinfo_t *lhs_mi = *(const mergeinfo_t **)lhs;
- const mergeinfo_t *rhs_mi = *(const mergeinfo_t **)rhs;
+ const mergeinfo_t *lhs_mi = *(const mergeinfo_t *const *)lhs;
+ const mergeinfo_t *rhs_mi = *(const mergeinfo_t *const *)rhs;
return strcmp(lhs_mi->local_path, rhs_mi->local_path);
}
diff --git a/tools/client-side/svn-viewspec.py b/tools/client-side/svn-viewspec.py
index cdcd495..0f9ddf4 100755
--- a/tools/client-side/svn-viewspec.py
+++ b/tools/client-side/svn-viewspec.py
@@ -121,6 +121,8 @@ DEPTH_FILES = 'files'
DEPTH_IMMEDIATES = 'immediates'
DEPTH_INFINITY = 'infinity'
+os_system = None
+args = None
class TreeNode:
"""A representation of a single node in a Subversion sparse
@@ -159,8 +161,8 @@ def svn_path_compare_paths(path1, path2):
NOTE: Stolen unapologetically from Subversion's Python bindings
module svn.core."""
- path1_len = len(path1);
- path2_len = len(path2);
+ path1_len = len(path1)
+ path2_len = len(path2)
min_len = min(path1_len, path2_len)
i = 0
@@ -280,10 +282,10 @@ def checkout_tree(base_url, revision, tree_node, target_dir, is_top=True):
if revision != -1:
revision_str = "--revision=%d " % (revision)
if is_top:
- os.system('svn checkout "%s" "%s" --depth=%s %s'
+ os_system('svn checkout "%s" "%s" --depth=%s %s'
% (base_url, target_dir, depth, revision_str))
else:
- os.system('svn update "%s" --set-depth=%s %s'
+ os_system('svn update "%s" --set-depth=%s %s'
% (target_dir, depth, revision_str))
child_names = tree_node.children.keys()
child_names.sort(svn_path_compare_paths)
@@ -304,27 +306,34 @@ def checkout_spec(viewspec, target_dir):
def usage_and_exit(errmsg=None):
stream = errmsg and sys.stderr or sys.stdout
- msg = __doc__.replace("__SCRIPTNAME__", os.path.basename(sys.argv[0]))
+ msg = __doc__.replace("__SCRIPTNAME__", os.path.basename(args[0]))
stream.write(msg)
if errmsg:
stream.write("ERROR: %s\n" % (errmsg))
- sys.exit(errmsg and 1 or 0)
+ return 1
+ return 0
+
+def main(os_sys, args_in):
+ global os_system
+ global args
+ os_system = os_sys
+ args = args_in
-def main():
- argc = len(sys.argv)
+ argc = len(args)
if argc < 2:
- usage_and_exit('Not enough arguments.')
- subcommand = sys.argv[1]
+ return usage_and_exit('Not enough arguments.')
+ subcommand = args[1]
if subcommand == 'help':
- usage_and_exit()
+ return usage_and_exit()
elif subcommand == 'help-format':
msg = FORMAT_HELP.replace("__SCRIPTNAME__",
- os.path.basename(sys.argv[0]))
+ os.path.basename(args[0]))
sys.stdout.write(msg)
+ return 1
elif subcommand == 'examine':
if argc < 3:
- usage_and_exit('No viewspec file specified.')
- fp = (sys.argv[2] == '-') and sys.stdin or open(sys.argv[2], 'r')
+ return usage_and_exit('No viewspec file specified.')
+ fp = (args[2] == '-') and sys.stdin or open(args[2], 'r')
viewspec = parse_viewspec(fp)
sys.stdout.write("Url: %s\n" % (viewspec.base_url))
revision = viewspec.revision
@@ -336,13 +345,14 @@ def main():
viewspec.tree.dump(True)
elif subcommand == 'checkout':
if argc < 3:
- usage_and_exit('No viewspec file specified.')
+ return usage_and_exit('No viewspec file specified.')
if argc < 4:
- usage_and_exit('No target directory specified.')
- fp = (sys.argv[2] == '-') and sys.stdin or open(sys.argv[2], 'r')
- checkout_spec(parse_viewspec(fp), sys.argv[3])
+ return usage_and_exit('No target directory specified.')
+ fp = (args[2] == '-') and sys.stdin or open(args[2], 'r')
+ checkout_spec(parse_viewspec(fp), args[3])
else:
- usage_and_exit('Unknown subcommand "%s".' % (subcommand))
+ return usage_and_exit('Unknown subcommand "%s".' % (subcommand))
if __name__ == "__main__":
- main()
+ if main(os.system, sys.argv):
+ sys.exit(1)
diff --git a/tools/client-side/svnconflict/svnconflict.c b/tools/client-side/svnconflict/svnconflict.c
index 3ee149b..d7b1242 100644
--- a/tools/client-side/svnconflict/svnconflict.c
+++ b/tools/client-side/svnconflict/svnconflict.c
@@ -148,18 +148,19 @@ static const int svnconflict_global_options[] =
{ opt_auth_username, opt_auth_password, opt_auth_password_from_stdin,
opt_config_dir, opt_config_options, 0 };
-static const svn_opt_subcommand_desc2_t svnconflict_cmd_table[] =
+static const svn_opt_subcommand_desc3_t svnconflict_cmd_table[] =
{
/* This command is also invoked if we see option "--help", "-h" or "-?". */
- { "help", svnconflict_help, {"?", "h"}, N_
- ("Describe the usage of this program or its subcommands.\n"
- "usage: help [SUBCOMMAND...]\n"),
+ { "help", svnconflict_help, {"?", "h"}, {N_(
+ "Describe the usage of this program or its subcommands.\n"
+ "usage: help [SUBCOMMAND...]\n"
+ )},
{0} },
- { "list", svnconflict_list, {"ls"}, N_
- ("List conflicts at a conflicted path.\n"
+ { "list", svnconflict_list, {"ls"}, {N_(
+ "List conflicts at a conflicted path.\n"
"usage: list PATH\n"
- "\n"
+ "\n"), N_(
" List conflicts at PATH, one per line. Possible conflicts are:\n"
" \n"
" text-conflict\n"
@@ -176,67 +177,67 @@ static const svn_opt_subcommand_desc2_t svnconflict_cmd_table[] =
" If a tree conflict exists, no text or property conflicts exist.\n"
" \n"
" If PATH is not in conflict, the exit code will be 1, and 0 otherwise.\n"
- ""),
+ )},
{0}, },
- { "options-text", svnconflict_options_text, {0}, N_
- ("List options for resolving a text conflict at path.\n"
+ { "options-text", svnconflict_options_text, {0}, {N_(
+ "List options for resolving a text conflict at path.\n"
"usage: options-text PATH\n"
- "\n"
+ "\n"), N_(
" List text conflict resolution options at PATH, one per line.\n"
" Each line contains a numeric option ID, a colon, and a description.\n"
" If PATH is not in conflict, the exit code will be 1, and 0 otherwise.\n"
- ""),
+ )},
{0}, },
- { "options-prop", svnconflict_options_prop, {0}, N_
- ("List options for resolving a property conflict at path.\n"
+ { "options-prop", svnconflict_options_prop, {0}, {N_(
+ "List options for resolving a property conflict at path.\n"
"usage: options-prop PATH\n"
- "\n"
+ "\n"), N_(
" List property conflict resolution options at PATH, one per line.\n"
" Each line contains a numeric option ID, a colon, and a description.\n"
" If PATH is not in conflict, the exit code will be 1, and 0 otherwise.\n"
- ""),
+ )},
{0}, },
- { "options-tree", svnconflict_options_tree, {0}, N_
- ("List options for resolving a tree conflict at path.\n"
+ { "options-tree", svnconflict_options_tree, {0}, {N_(
+ "List options for resolving a tree conflict at path.\n"
"usage: options-tree PATH\n"
- "\n"
+ "\n"), N_(
" List tree conflict resolution options at PATH, one per line.\n"
" Each line contains a numeric option ID, a colon, and a description.\n"
" If PATH is not in conflict, the exit code will be 1, and 0 otherwise.\n"
- ""),
+ )},
{0}, },
- { "resolve-text", svnconflict_resolve_text, {0}, N_
- ("Resolve the text conflict at path.\n"
+ { "resolve-text", svnconflict_resolve_text, {0}, {N_(
+ "Resolve the text conflict at path.\n"
"usage: resolve-text OPTION_ID PATH\n"
- "\n"
+ "\n"), N_(
" Resolve the text conflict at PATH with a given resolution option.\n"
" If PATH is not in conflict, the exit code will be 1, and 0 otherwise.\n"
- ""),
+ )},
{0}, },
- { "resolve-prop", svnconflict_resolve_prop, {0}, N_
- ("Resolve the property conflict at path.\n"
+ { "resolve-prop", svnconflict_resolve_prop, {0}, {N_(
+ "Resolve the property conflict at path.\n"
"usage: resolve-prop PROPNAME OPTION_ID PATH\n"
- "\n"
+ "\n"), N_(
" Resolve conflicted property PROPNAME at PATH with a given resolution option.\n"
" If PATH is not in conflict, the exit code will be 1, and 0 otherwise.\n"
- ""),
+ )},
{0}, },
- { "resolve-tree", svnconflict_resolve_tree, {0}, N_
- ("Resolve the tree conflict at path.\n"
+ { "resolve-tree", svnconflict_resolve_tree, {0}, {N_(
+ "Resolve the tree conflict at path.\n"
"usage: resolve-tree OPTION_ID PATH\n"
- "\n"
+ "\n"), N_(
" Resolve the tree conflict at PATH with a given resolution option.\n"
" If PATH is not in conflict, the exit code will be 1, and 0 otherwise.\n"
- ""),
+ )},
{0}, },
- { NULL, NULL, {0}, NULL, {0} }
+ { NULL, NULL, {0}, {NULL}, {0} }
};
/* Version compatibility check */
@@ -297,7 +298,7 @@ svnconflict_help(apr_getopt_t *os, void *baton, apr_pool_t *pool)
SVN_ERR(svn_ra_print_modules(version_footer, pool));
}
- SVN_ERR(svn_opt_print_help4(os,
+ SVN_ERR(svn_opt_print_help5(os,
"svnconflict", /* ### erm, derive somehow? */
opt_state ? opt_state->version : FALSE,
FALSE, /* quiet */
@@ -368,12 +369,12 @@ svnconflict_list(apr_getopt_t *os, void *baton, apr_pool_t *pool)
&conflict, local_abspath, ctx, pool));
if (text_conflicted)
- svn_cmdline_printf(pool, "text-conflict\n");
+ SVN_ERR(svn_cmdline_printf(pool, "text-conflict\n"));
for (i = 0; i < props_conflicted->nelts; i++)
{
const char *propname = APR_ARRAY_IDX(props_conflicted, i, const char *);
- svn_cmdline_printf(pool, "prop-conflict: %s\n", propname);
+ SVN_ERR(svn_cmdline_printf(pool, "prop-conflict: %s\n", propname));
}
if (tree_conflicted)
@@ -385,14 +386,14 @@ svnconflict_list(apr_getopt_t *os, void *baton, apr_pool_t *pool)
&local_change,
conflict, ctx,
pool, pool));
- svn_cmdline_printf(pool, "tree-conflict: %s %s\n",
- incoming_change, local_change);
+ SVN_ERR(svn_cmdline_printf(pool, "tree-conflict: %s %s\n",
+ incoming_change, local_change));
}
return SVN_NO_ERROR;
}
-static void
+static svn_error_t *
print_conflict_options(apr_array_header_t *options, apr_pool_t *pool)
{
int i;
@@ -406,8 +407,9 @@ print_conflict_options(apr_array_header_t *options, apr_pool_t *pool)
option = APR_ARRAY_IDX(options, i, svn_client_conflict_option_t *);
id = svn_client_conflict_option_get_id(option);
label = svn_client_conflict_option_get_label(option, pool);
- svn_cmdline_printf(pool, "%d: %s\n", id, label);
+ SVN_ERR(svn_cmdline_printf(pool, "%d: %s\n", id, label));
}
+ return SVN_NO_ERROR;
}
/* This implements the `svn_opt_subcommand_t' interface. */
@@ -438,7 +440,7 @@ svnconflict_options_text(apr_getopt_t *os, void *baton, apr_pool_t *pool)
SVN_ERR(svn_client_conflict_text_get_resolution_options(&options,
conflict, ctx,
pool, pool));
- print_conflict_options(options, pool);
+ SVN_ERR(print_conflict_options(options, pool));
return SVN_NO_ERROR;
}
@@ -471,7 +473,7 @@ svnconflict_options_prop(apr_getopt_t *os, void *baton, apr_pool_t *pool)
SVN_ERR(svn_client_conflict_prop_get_resolution_options(&options,
conflict, ctx,
pool, pool));
- print_conflict_options(options, pool);
+ SVN_ERR(print_conflict_options(options, pool));
return SVN_NO_ERROR;
}
@@ -505,7 +507,7 @@ svnconflict_options_tree(apr_getopt_t *os, void *baton, apr_pool_t *pool)
SVN_ERR(svn_client_conflict_tree_get_resolution_options(&options,
conflict, ctx,
pool, pool));
- print_conflict_options(options, pool);
+ SVN_ERR(print_conflict_options(options, pool));
return SVN_NO_ERROR;
}
@@ -640,7 +642,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
apr_array_header_t *received_opts;
svnconflict_cmd_baton_t command_baton;
int i;
- const svn_opt_subcommand_desc2_t *subcommand = NULL;
+ const svn_opt_subcommand_desc3_t *subcommand = NULL;
svn_auth_baton_t *ab;
svn_config_t *cfg_config;
apr_hash_t *cfg_hash;
@@ -741,7 +743,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
just typos/mistakes. Whatever the case, the subcommand to
actually run is svnconflict_help(). */
if (opt_state.help)
- subcommand = svn_opt_get_canonical_subcommand2(svnconflict_cmd_table,
+ subcommand = svn_opt_get_canonical_subcommand3(svnconflict_cmd_table,
"help");
/* If we're not running the `help' subcommand, then look for a
@@ -753,8 +755,8 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
if (opt_state.version)
{
/* Use the "help" subcommand to handle the "--version" option. */
- static const svn_opt_subcommand_desc2_t pseudo_cmd =
- { "--version", svnconflict_help, {0}, "",
+ static const svn_opt_subcommand_desc3_t pseudo_cmd =
+ { "--version", svnconflict_help, {0}, {""},
{opt_version, /* must accept its own option */
opt_config_dir /* all commands accept this */
} };
@@ -777,7 +779,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
SVN_ERR(svn_utf_cstring_to_utf8(&first_arg, os->argv[os->ind++],
pool));
- subcommand = svn_opt_get_canonical_subcommand2(svnconflict_cmd_table,
+ subcommand = svn_opt_get_canonical_subcommand3(svnconflict_cmd_table,
first_arg);
if (subcommand == NULL)
{
@@ -804,12 +806,12 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
if (opt_id == 'h' || opt_id == '?')
continue;
- if (! svn_opt_subcommand_takes_option3(subcommand, opt_id,
+ if (! svn_opt_subcommand_takes_option4(subcommand, opt_id,
svnconflict_global_options))
{
const char *optstr;
const apr_getopt_option_t *badopt =
- svn_opt_get_option_from_code2(opt_id, svnconflict_options,
+ svn_opt_get_option_from_code3(opt_id, svnconflict_options,
subcommand, pool);
svn_opt_format_option(&optstr, badopt, FALSE, pool);
if (subcommand->name[0] == '-')
diff --git a/tools/client-side/svnviewspec_test.py b/tools/client-side/svnviewspec_test.py
new file mode 100755
index 0000000..ad98b15
--- /dev/null
+++ b/tools/client-side/svnviewspec_test.py
@@ -0,0 +1,428 @@
+#!/usr/bin/env python
+#
+# svnviewspec_test.py: testing the 'svn-viewspec.py' tool.
+#
+# Execute these tests using 'pytest' (pytest.org):
+# py.test svnviewspec_test.py
+#
+# Subversion is a tool for revision control.
+# See http://subversion.apache.org for more information.
+#
+# ====================================================================
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+######################################################################
+
+
+import sys
+import os.path
+import tempfile
+
+sys.path.append(os.path.abspath(os.path.realpath(__file__)))
+
+svn_viewspec = __import__("svn-viewspec")
+__SCRIPTNAME__ = 'svn-viewspec.py'
+
+
+#########################################################################
+# mock the 'system' call
+os_system_lines = []
+
+def my_os_system(str):
+ os_system_lines.append(str)
+
+def setup_function(function):
+ global os_system_lines
+ os_system_lines = []
+
+#########################################################################
+
+def perform_viewspec(args):
+ return svn_viewspec.main(my_os_system, [__SCRIPTNAME__] + args)
+
+def test_that_viewspec_does_checkout_for_its_own_inline_example(capsys):
+
+ spec = """Format: 1
+Url: http://svn.apache.org/r/a/s
+Revision: 36
+
+trunk/**
+branches/1.5.x/**
+branches/1.6.x/**
+README
+branches/1.4.x/STATUS
+branches/1.4.x/s/tests/cmdline/~
+"""
+
+ perform_viewspec(
+ ["checkout", (make_temp_file_containing(spec)), "a/b"])
+ sys_out_lines, sys_err_lines = capsys.readouterr()
+
+ expected = \
+"""svn checkout "http://svn.apache.org/r/a/s" "a/b" --depth=empty --revision=36
+svn update "a/b/README" --set-depth=empty --revision=36
+svn update "a/b/branches" --set-depth=empty --revision=36
+svn update "a/b/branches/1.4.x" --set-depth=empty --revision=36
+svn update "a/b/branches/1.4.x/STATUS" --set-depth=empty --revision=36
+svn update "a/b/branches/1.4.x/s" --set-depth=empty --revision=36
+svn update "a/b/branches/1.4.x/s/tests" --set-depth=empty --revision=36
+svn update "a/b/branches/1.4.x/s/tests/cmdline" --set-depth=files --revision=36
+svn update "a/b/branches/1.5.x" --set-depth=infinity --revision=36
+svn update "a/b/branches/1.6.x" --set-depth=infinity --revision=36
+svn update "a/b/trunk" --set-depth=infinity --revision=36"""
+
+ all_the_lines_should_be_the_same(expected, os_system_lines)
+
+ all_the_lines_should_be_the_same([], sys_err_lines)
+ all_the_lines_should_be_the_same([], sys_out_lines)
+
+
+def test_that_viewspec_does_checkout_for_a_tilde_at_root_case(capsys):
+
+ spec = """Format: 1
+Url: http://svn.apache.org/repos/asf/svn
+
+~
+"""
+
+ perform_viewspec(
+ ["checkout", (make_temp_file_containing(spec)), "a/b"])
+ sys_out_lines, sys_err_lines = capsys.readouterr()
+
+ expected = \
+"""svn checkout "http://svn.apache.org/repos/asf/svn" "a/b" --depth=files"""
+
+ # print ">>>" + "\n".join(os_system_lines) + "<<<"
+
+ all_the_lines_should_be_the_same(expected, os_system_lines)
+
+ all_the_lines_should_be_the_same([], sys_err_lines)
+ all_the_lines_should_be_the_same([], sys_out_lines)
+
+
+def test_that_viewspec_does_checkout_a_splat_at_root_case(capsys):
+
+ spec = """Format: 1
+Url: http://svn.apache.org/r/a/svn
+
+*
+"""
+
+ perform_viewspec(
+ ["checkout", (make_temp_file_containing(spec)), "a/b"])
+ sys_out_lines, sys_err_lines = capsys.readouterr()
+
+ expected = \
+"""svn checkout "http://svn.apache.org/r/a/svn" "a/b" --depth=immediates"""
+
+ # print ">>>" + "\n".join(os_system_lines) + "<<<"
+
+ all_the_lines_should_be_the_same(expected, os_system_lines)
+
+ all_the_lines_should_be_the_same([], sys_err_lines)
+ all_the_lines_should_be_the_same([], sys_out_lines)
+
+
+def test_that_viewspec_does_checkout_an_infinity_from_root_case(capsys):
+
+ spec = """Format: 1
+Url: http://svn.apache.org/r/a/s
+
+**
+"""
+
+ perform_viewspec(
+ ["checkout", (make_temp_file_containing(spec)), "a/b"])
+ sys_out_lines, sys_err_lines = capsys.readouterr()
+
+ expected = \
+"""svn checkout "http://svn.apache.org/r/a/s" "a/b" --depth=infinity"""
+
+ # print ">>>" + "\n".join(os_system_lines) + "<<<"
+
+ all_the_lines_should_be_the_same(expected, os_system_lines)
+
+ all_the_lines_should_be_the_same([], sys_err_lines)
+ all_the_lines_should_be_the_same([], sys_out_lines)
+
+
+def test_that_viewspec_does_checkout_for_a_splat_n_tilde_in_a_subdir_case(capsys):
+ spec = """Format: 1
+Url: http://svn.apache.org/repos/asf/svn
+
+branches/foo/*
+branches/bar/~
+"""
+
+ perform_viewspec(
+ ["checkout", (make_temp_file_containing(spec)), "a/b"])
+ sys_out_lines, sys_err_lines = capsys.readouterr()
+
+ expected = \
+"""svn checkout "http://svn.apache.org/repos/asf/svn" "a/b" --depth=empty
+svn update "a/b/branches" --set-depth=empty
+svn update "a/b/branches/bar" --set-depth=files
+svn update "a/b/branches/foo" --set-depth=immediates"""
+
+ all_the_lines_should_be_the_same(expected, os_system_lines)
+
+ all_the_lines_should_be_the_same([], sys_err_lines)
+ all_the_lines_should_be_the_same([], sys_out_lines)
+
+
+def test_that_viewspec_does_examine_for_its_own_inline_example2(capsys):
+
+ spec = """Format: 1
+Url: http://svn.apache.org/repos/asf/subversion
+Revision: 36366
+
+trunk/**
+branches/1.5.x/**
+branches/1.6.x/**
+README
+branches/1.4.x/STATUS
+branches/1.4.x/subversion/tests/cmdline/~
+"""
+
+ perform_viewspec(
+ ["examine", (make_temp_file_containing(spec)), "a/b"])
+ sys_out_lines, sys_err_lines = capsys.readouterr()
+
+ all_the_lines_should_be_the_same([], os_system_lines)
+
+ expected = \
+ """Path: (depth=empty)
+ Path: README (depth=empty)
+ Path: branches (depth=empty)
+ Path: 1.4.x (depth=empty)
+ Path: STATUS (depth=empty)
+ Path: subversion (depth=empty)
+ Path: tests (depth=empty)
+ Path: cmdline (depth=files)
+ Path: 1.5.x (depth=infinity)
+ Path: 1.6.x (depth=infinity)
+ Path: trunk (depth=infinity)"""
+
+ all_the_lines_should_be_the_same(expected, sys_err_lines)
+
+ expected = \
+ """Url: http://svn.apache.org/repos/asf/subversion
+Revision: 36366
+
+"""
+
+ all_the_lines_should_be_the_same(expected, sys_out_lines)
+
+
+def test_that_viewspec_prints_help(capsys):
+
+ rc = perform_viewspec(["help"])
+ sys_out_lines, sys_err_lines = capsys.readouterr()
+
+ assert 0 == rc
+
+ all_the_lines_should_be_the_same([], sys_err_lines)
+
+ expected = \
+ """__SCRIPTNAME__: checkout utility for sparse Subversion working copies
+
+Usage: 1. __SCRIPTNAME__ checkout VIEWSPEC-FILE TARGET-DIR
+ 2. __SCRIPTNAME__ examine VIEWSPEC-FILE
+ 3. __SCRIPTNAME__ help
+ 4. __SCRIPTNAME__ help-format
+
+VIEWSPEC-FILE is the path of a file whose contents describe a
+Subversion sparse checkouts layout, or '-' if that description should
+be read from stdin. TARGET-DIR is the working copy directory created
+by this script as it checks out the specified layout.
+
+1. Parse VIEWSPEC-FILE and execute the necessary 'svn' command-line
+ operations to build out a working copy tree at TARGET-DIR.
+
+2. Parse VIEWSPEC-FILE and dump out a human-readable representation of
+ the tree described in the specification.
+
+3. Show this usage message.
+
+4. Show information about the file format this program expects.
+ """.replace("__SCRIPTNAME__", __SCRIPTNAME__)
+
+ all_the_lines_should_be_the_same(expected, sys_out_lines)
+
+
+def test_that_viewspec_prints_unknown_subcommand(capsys):
+
+ rc = perform_viewspec(["helppppppppp"])
+ sys_out_lines, sys_err_lines = capsys.readouterr()
+
+ assert 1 == rc
+
+ all_the_lines_should_be_the_same([], sys_out_lines)
+
+ expected = \
+ """__SCRIPTNAME__: checkout utility for sparse Subversion working copies
+
+Usage: 1. __SCRIPTNAME__ checkout VIEWSPEC-FILE TARGET-DIR
+ 2. __SCRIPTNAME__ examine VIEWSPEC-FILE
+ 3. __SCRIPTNAME__ help
+ 4. __SCRIPTNAME__ help-format
+
+VIEWSPEC-FILE is the path of a file whose contents describe a
+Subversion sparse checkouts layout, or '-' if that description should
+be read from stdin. TARGET-DIR is the working copy directory created
+by this script as it checks out the specified layout.
+
+1. Parse VIEWSPEC-FILE and execute the necessary 'svn' command-line
+ operations to build out a working copy tree at TARGET-DIR.
+
+2. Parse VIEWSPEC-FILE and dump out a human-readable representation of
+ the tree described in the specification.
+
+3. Show this usage message.
+
+4. Show information about the file format this program expects.
+
+ERROR: Unknown subcommand "helppppppppp".""".replace("__SCRIPTNAME__", __SCRIPTNAME__)
+
+ all_the_lines_should_be_the_same(expected, sys_err_lines)
+
+
+def test_that_viewspec_prints_help_format(capsys):
+
+ rc = perform_viewspec(["help-format"])
+ sys_out_lines, sys_err_lines = capsys.readouterr()
+
+ assert 1 == rc
+
+ # print ">>>" + "\n".join(sys_out_lines) + "<<<<"
+
+ expected = \
+ """Viewspec File Format
+====================
+
+The viewspec file format used by this tool is a collection of headers
+(using the typical one-per-line name:value syntax), followed by an
+empty line, followed by a set of one-per-line rules.
+
+The headers must contain at least the following:
+
+ Format - version of the viewspec format used throughout the file
+ Url - base URL applied to all rules; tree checkout location
+
+The following headers are optional:
+
+ Revision - version of the tree items to checkout
+
+Following the headers and blank line separator are the path rules.
+The rules are list of URLs -- relative to the base URL stated in the
+headers -- with optional annotations to specify the desired working
+copy depth of each item:
+
+ PATH/** - checkout PATH and all its children to infinite depth
+ PATH/* - checkout PATH and its immediate children
+ PATH/~ - checkout PATH and its file children
+ PATH - checkout PATH non-recursively
+
+By default, the top-level directory (associated with the base URL) is
+checked out with empty depth. You can override this using the special
+rules '**', '*', and '~' as appropriate.
+
+It is not necessary to explicitly list the parent directories of each
+path associated with a rule. If the parent directory of a given path
+is not "covered" by a previous rule, it will be checked out with empty
+depth.
+
+Examples
+========
+
+Here's a sample viewspec file:
+
+ Format: 1
+ Url: http://svn.apache.org/repos/asf/subversion
+ Revision: 36366
+
+ trunk/**
+ branches/1.5.x/**
+ branches/1.6.x/**
+ README
+ branches/1.4.x/STATUS
+ branches/1.4.x/subversion/tests/cmdline/~
+
+You may wish to version your viewspec files. If so, you can use this
+script in conjunction with 'svn cat' to fetch, parse, and act on a
+versioned viewspec file:
+
+ $ svn cat http://svn.example.com/specs/dev-spec.txt |
+ __SCRIPTNAME__ checkout - /path/to/target/directory
+ """.replace("__SCRIPTNAME__", __SCRIPTNAME__)
+
+ all_the_lines_should_be_the_same(expected, sys_out_lines)
+
+ all_the_lines_should_be_the_same([], sys_err_lines)
+
+
+def test_that_viewspec_does_checkout_with_no_revision_specified(capsys):
+
+ spec = """Format: 1
+Url: http://svn.apache.org/repos/asf/svn
+
+trunk/**
+branches/1.5.x/**
+branches/1.6.x/**
+README
+branches/1.4.x/STATUS
+branches/1.4.x/s/tests/cmdline/~
+"""
+
+ perform_viewspec(
+ ["checkout", (make_temp_file_containing(spec)), "a/b"])
+ sys_out_lines, sys_err_lines = capsys.readouterr()
+
+ expected = \
+ """svn checkout "http://svn.apache.org/repos/asf/svn" "a/b" --depth=empty
+ svn update "a/b/README" --set-depth=empty
+ svn update "a/b/branches" --set-depth=empty
+ svn update "a/b/branches/1.4.x" --set-depth=empty
+ svn update "a/b/branches/1.4.x/STATUS" --set-depth=empty
+ svn update "a/b/branches/1.4.x/s" --set-depth=empty
+ svn update "a/b/branches/1.4.x/s/tests" --set-depth=empty
+ svn update "a/b/branches/1.4.x/s/tests/cmdline" --set-depth=files
+ svn update "a/b/branches/1.5.x" --set-depth=infinity
+ svn update "a/b/branches/1.6.x" --set-depth=infinity
+ svn update "a/b/trunk" --set-depth=infinity """
+
+ all_the_lines_should_be_the_same(expected, os_system_lines)
+ all_the_lines_should_be_the_same([], sys_err_lines)
+ all_the_lines_should_be_the_same([], sys_out_lines)
+
+
+def all_the_lines_should_be_the_same(expected_lines,
+ actual_lines):
+ if not isinstance(expected_lines, list):
+ expected_lines = expected_lines.splitlines()
+ if not isinstance(actual_lines, list):
+ actual_lines = actual_lines.splitlines()
+ assert len(actual_lines) == len(expected_lines)
+ for i, line in enumerate(actual_lines):
+ assert line.strip() == expected_lines[i].strip()
+
+
+def make_temp_file_containing(spec):
+ new_file, filename = tempfile.mkstemp()
+ os.write(new_file, spec)
+ os.close(new_file)
+ return filename
diff --git a/tools/dev/svnmover/svnmover.c b/tools/dev/svnmover/svnmover.c
index 8bc8b65..a7cffd7 100644
--- a/tools/dev/svnmover/svnmover.c
+++ b/tools/dev/svnmover/svnmover.c
@@ -2436,7 +2436,7 @@ do_put_file(svn_branch__txn_t *txn,
else
SVN_ERR(svn_stream_for_stdin2(&src, FALSE, scratch_pool));
- svn_stringbuf_from_stream(&text, src, 0, scratch_pool);
+ SVN_ERR(svn_stringbuf_from_stream(&text, src, 0, scratch_pool));
}
payload = svn_element__payload_create_file(props, text, scratch_pool);
@@ -4042,7 +4042,7 @@ display_version(apr_getopt_t *os, svn_boolean_t _quiet, apr_pool_t *pool)
version_footer = svn_stringbuf_create(ra_desc_start, pool);
SVN_ERR(svn_ra_print_modules(version_footer, pool));
- SVN_ERR(svn_opt_print_help4(NULL, "svnmover", TRUE, _quiet, FALSE,
+ SVN_ERR(svn_opt_print_help5(NULL, "svnmover", TRUE, _quiet, FALSE,
version_footer->data,
NULL, NULL, NULL, NULL, NULL, pool));
diff --git a/tools/dev/svnraisetreeconflict/svnraisetreeconflict.c b/tools/dev/svnraisetreeconflict/svnraisetreeconflict.c
index 65825d5..a68b5d2 100644
--- a/tools/dev/svnraisetreeconflict/svnraisetreeconflict.c
+++ b/tools/dev/svnraisetreeconflict/svnraisetreeconflict.c
@@ -52,7 +52,7 @@
static svn_error_t *
version(apr_pool_t *pool)
{
- return svn_opt_print_help4(NULL, "svnraisetreeconflict", TRUE, FALSE, FALSE,
+ return svn_opt_print_help5(NULL, "svnraisetreeconflict", TRUE, FALSE, FALSE,
NULL, NULL, NULL, NULL, NULL, NULL, pool);
}
diff --git a/tools/dev/unix-build/Makefile.svn b/tools/dev/unix-build/Makefile.svn
index 2c0561c..91aa899 100644
--- a/tools/dev/unix-build/Makefile.svn
+++ b/tools/dev/unix-build/Makefile.svn
@@ -45,6 +45,7 @@ EXCLUSIVE_WC_LOCKS ?= 1
USE_HTTPV1 ?= no
USE_AUTHZ_SHORT_CIRCUIT ?= no
RAMDISK ?= /ramdisk
+MAKE_JOBS ?= 4
PWD = $(shell pwd)
UNAME = $(shell uname)
@@ -71,6 +72,12 @@ endif # 2.2
endif # 2.3
endif # 2.4
+ifeq ($(UNAME),OpenBSD)
+# Pick the correct base compiler (ie. clang rather than ancient gcc 4.2.1)
+CC = cc
+CXX = c++
+endif
+
TAG ?= none
ifeq ($(TAG),none)
BRANCH ?= trunk
@@ -170,18 +177,19 @@ FETCH_CMD = wget -c
SUBVERSION_REPOS_URL = https://svn.apache.org/repos/asf/subversion
BDB_URL = http://download.oracle.com/berkeley-db/$(BDB_DIST)
APR_URL = https://svn.apache.org/repos/asf/apr/apr
-APR_ICONV_URL = https://www.apache.org/dist/apr/$(APR_ICONV_DIST)
+APR_ICONV_URL = https://archive.apache.org/dist/apr/$(APR_ICONV_DIST)
GNU_ICONV_URL = https://ftp.gnu.org/pub/gnu/libiconv/$(GNU_ICONV_DIST)
APR_UTIL_URL = https://svn.apache.org/repos/asf/apr/apr-util
HTTPD_URL = https://archive.apache.org/dist/httpd/$(HTTPD_DIST)
-NEON_URL = http://webdav.org/neon/$(NEON_DIST)
+#NEON_URL = http://webdav.org/neon/$(NEON_DIST)
+NEON_URL = http://ftp.openbsd.org/pub/OpenBSD/distfiles/$(NEON_DIST)
SERF_URL = https://svn.apache.org/repos/asf/serf/tags/$(SERF_VER)
SERF_OLD_URL = https://svn.apache.org/repos/asf/serf/tags/$(SERF_OLD_VER)
SQLITE_URL = https://www.sqlite.org/2017/$(SQLITE_DIST)
CYRUS_SASL_URL = ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/$(CYRUS_SASL_DIST)
LIBMAGIC_URL = ftp://ftp.astron.com/pub/file/$(LIBMAGIC_DIST)
RUBY_URL = https://cache.ruby-lang.org/pub/ruby/2.4/$(RUBY_DIST)
-BZ2_URL = http://bzip.org/$(BZ2_VER)/$(BZ2_DIST)
+BZ2_URL = https://ftp.openbsd.org/pub/OpenBSD/distfiles/$(BZ2_DIST)
PYTHON_URL = https://python.org/ftp/python/$(PYTHON_VER)/$(PYTHON_DIST)
JUNIT_URL = https://downloads.sourceforge.net/project/junit/junit/$(JUNIT_VER)/$(JUNIT_DIST)
GETTEXT_URL = https://ftp.gnu.org/pub/gnu/gettext/$(GETTEXT_DIST)
@@ -238,6 +246,10 @@ endif
# We need this to make sure some targets below pick up the right libraries
LD_LIBRARY_PATH=$(PREFIX)/apr/lib:$(PREFIX)/gettext/lib:$(PREFIX)/iconv/lib:$(PREFIX)/bdb/lib:$(PREFIX)/neon/lib:$(PREFIX)/serf/lib:$(PREFIX)/sqlite/lib:$(PREFIX)/cyrus-sasl/lib:$(PREFIX)/iconv/lib:$(PREFIX)/libmagic/lib:$(PREFIX)/ruby/lib:$(PREFIX)/python/lib:$(PREFIX)/svn-$(WC)/lib
+# We need this to make sure some targets below pick up the right pkg-config files
+PKG_CONFIG_PATH=$(PREFIX)/apr/lib/pkgconfig:$(PREFIX)/neon/lib/pkgconfig:$(PREFIX)/serf/lib/pkgconfig:$(PREFIX)/sqlite/lib/pkgconfig:$(PREFIX)/ruby/lib/pkgconfig:$(PREFIX)/python/lib/pkgconfig:$(PREFIX)/lz4/lib/pkgconfig
+
+
#######################################################################
# Main targets.
#######################################################################
@@ -331,6 +343,7 @@ $(BDB_OBJDIR)/.retrieved: $(DISTDIR)/$(BDB_DIST)
$(BDB_OBJDIR)/.configured: $(BDB_OBJDIR)/.retrieved
cd $(BDB_SRCDIR)/build_unix \
&& env CFLAGS="-g $(PROFILE_CFLAGS)" GREP="`which grep`" \
+ CC=$(CC) CXX=$(CXX) \
../dist/configure \
--prefix=$(PREFIX)/bdb \
--enable-debug
@@ -338,7 +351,7 @@ $(BDB_OBJDIR)/.configured: $(BDB_OBJDIR)/.retrieved
# compile bdb
$(BDB_OBJDIR)/.compiled: $(BDB_OBJDIR)/.configured
- (cd $(BDB_SRCDIR)/build_unix && env MAKEFLAGS= make)
+ (cd $(BDB_SRCDIR)/build_unix && env MAKEFLAGS= make -j${MAKE_JOBS})
touch $@
# install bdb
@@ -388,6 +401,8 @@ $(APR_OBJDIR)/.configured: $(APR_OBJDIR)/.retrieved $(BDB_OBJDIR)/.installed
cd $(APR_SRCDIR) && ./buildconf
cd $(APR_OBJDIR) \
&& env CFLAGS="-O0 -g $(PROFILE_CFLAGS)" GREP="`which grep`" \
+ PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) \
+ CC=$(CC) CXX=$(CXX) \
$(APR_SRCDIR)/configure \
--prefix=$(PREFIX)/apr \
--enable-maintainer-mode \
@@ -397,7 +412,7 @@ $(APR_OBJDIR)/.configured: $(APR_OBJDIR)/.retrieved $(BDB_OBJDIR)/.installed
# compile apr
$(APR_OBJDIR)/.compiled: $(APR_OBJDIR)/.configured
- (cd $(APR_OBJDIR) && env MAKEFLAGS= make)
+ (cd $(APR_OBJDIR) && env MAKEFLAGS= make -j${MAKE_JOBS})
touch $@
# install apr
@@ -436,7 +451,9 @@ $(APR_ICONV_OBJDIR)/.configured: $(APR_ICONV_OBJDIR)/.retrieved \
$(APR_OBJDIR)/.installed
cd $(APR_ICONV_OBJDIR) \
&& env CFLAGS="-g $(PROFILE_CFLAGS) -DAPR_POOL_DEBUG" \
+ CC=$(CC) CXX=$(CXX) \
GREP="`which grep`" \
+ PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) \
$(APR_ICONV_SRCDIR)/configure \
--prefix=$(PREFIX)/apr \
--with-apr=$(PREFIX)/apr
@@ -445,7 +462,7 @@ $(APR_ICONV_OBJDIR)/.configured: $(APR_ICONV_OBJDIR)/.retrieved \
# compile apr-iconv
$(APR_ICONV_OBJDIR)/.compiled: $(APR_ICONV_OBJDIR)/.configured
(cd $(APR_ICONV_OBJDIR) \
- && env MAKEFLAGS= make CPPFLAGS="-D_OSD_POSIX" CFLAGS="-g -O0 $(PROFILE_CFLAGS)")
+ && env MAKEFLAGS= make CPPFLAGS="-D_OSD_POSIX" CFLAGS="-g -O0 $(PROFILE_CFLAGS)" -j${MAKE_JOBS})
touch $@
# install apr-iconv
@@ -520,6 +537,7 @@ $(GNU_ICONV_OBJDIR)/.configured: $(GNU_ICONV_OBJDIR)/.retrieved
${MAKE} -f Makefile.devel lib/aliases.h
cd $(GNU_ICONV_OBJDIR) \
&& env CFLAGS="-g $(PROFILE_CFLAGS)" GREP="`which grep`"\
+ PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) \
$(GNU_ICONV_SRCDIR)/configure \
--prefix=$(PREFIX)/iconv \
--enable-extra-encodings
@@ -527,7 +545,7 @@ $(GNU_ICONV_OBJDIR)/.configured: $(GNU_ICONV_OBJDIR)/.retrieved
# compile gnu-iconv
$(GNU_ICONV_OBJDIR)/.compiled: $(GNU_ICONV_OBJDIR)/.configured
- (cd $(GNU_ICONV_OBJDIR) && env MAKEFLAGS= make)
+ (cd $(GNU_ICONV_OBJDIR) && env MAKEFLAGS= make -j${MAKE_JOBS})
touch $@
# install gnu-iconv
@@ -590,7 +608,9 @@ $(APR_UTIL_OBJDIR)/.configured: $(APR_UTIL_OBJDIR)/.retrieved \
cd $(APR_UTIL_SRCDIR) && ./buildconf --with-apr=$(APR_SRCDIR)
cd $(APR_UTIL_OBJDIR) \
&& env LD_LIBRARY_PATH=$(PREFIX)/bdb/lib \
+ PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) \
CFLAGS="-O0 -g $(PROFILE_CFLAGS) -DAPR_POOL_DEBUG" \
+ CC=$(CC) CXX=$(CXX) \
GREP="`which grep`" \
$(APR_UTIL_SRCDIR)/configure \
--prefix=$(PREFIX)/apr \
@@ -602,7 +622,7 @@ $(APR_UTIL_OBJDIR)/.configured: $(APR_UTIL_OBJDIR)/.retrieved \
# compile apr-util
$(APR_UTIL_OBJDIR)/.compiled: $(APR_UTIL_OBJDIR)/.configured
- (cd $(APR_UTIL_OBJDIR) && env MAKEFLAGS= make)
+ (cd $(APR_UTIL_OBJDIR) && env MAKEFLAGS= make -j${MAKE_JOBS})
touch $@
# install apr-util
@@ -681,6 +701,13 @@ $(HTTPD_OBJDIR)/acinclude.diff:
echo >>$@.tmp ' AC_CHECK_FUNCS(SSL_set_state)'
mv -f $@.tmp $@
+# fix build without APR_HAS_THREADS (broken by r1750836)
+ifneq ($(THREADING),yes)
+HTTPD_REVERT_1750836_CMD = (cd $(HTTPD_SRCDIR)/modules/proxy && svn diff -c-1750836 https://svn.apache.org/repos/asf/httpd/httpd/branches/2.2.x/modules/proxy/proxy_util.c | patch)
+else
+HTTPD_REVERT_1750836_CMD = true
+endif
+
# retrieve httpd
$(HTTPD_OBJDIR)/.retrieved: $(DISTDIR)/$(HTTPD_DIST) \
$(HTTPD_OBJDIR)/chil-engine.diff $(HTTPD_OBJDIR)/ssl-set-state.diff \
@@ -709,6 +736,7 @@ $(HTTPD_OBJDIR)/.retrieved: $(DISTDIR)/$(HTTPD_DIST) \
< $(HTTPD_SRCDIR)/modules/ssl/${f}.orig \
> $(HTTPD_SRCDIR)/modules/ssl/${f};\
)
+ $(HTTPD_REVERT_1750836_CMD)
touch $@
# configure httpd
@@ -717,7 +745,9 @@ $(HTTPD_OBJDIR)/.configured: $(HTTPD_OBJDIR)/.retrieved \
cd $(HTTPD_SRCDIR) && ./buildconf
cd $(HTTPD_OBJDIR) \
&& env CFLAGS="-g $(PROFILE_CFLAGS) -DAPR_POOL_DEBUG" \
+ CC=$(CC) CXX=$(CXX) \
GREP="`which grep`" \
+ PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) \
$(HTTPD_SRCDIR)/configure \
--prefix=$(PREFIX)/httpd \
--enable-maintainer-mode \
@@ -731,7 +761,7 @@ $(HTTPD_OBJDIR)/.configured: $(HTTPD_OBJDIR)/.retrieved \
# compile httpd
$(HTTPD_OBJDIR)/.compiled: $(HTTPD_OBJDIR)/.configured
- (cd $(HTTPD_OBJDIR) && env MAKEFLAGS= make)
+ (cd $(HTTPD_OBJDIR) && env MAKEFLAGS= make -j${MAKE_JOBS})
touch $@
# install httpd
@@ -802,6 +832,8 @@ $(NEON_OBJDIR)/.configured: $(NEON_OBJDIR)/.retrieved
fi
cd $(NEON_OBJDIR) \
&& env CFLAGS="-g $(PROFILE_CFLAGS)" GREP="`which grep`" \
+ CC=$(CC) CXX=$(CXX) \
+ PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) \
$(NEON_SRCDIR)/configure \
PATH=$(NEON_OBJDIR):$$PATH \
--prefix=$(PREFIX)/neon \
@@ -812,7 +844,7 @@ $(NEON_OBJDIR)/.configured: $(NEON_OBJDIR)/.retrieved
# compile neon
$(NEON_OBJDIR)/.compiled: $(NEON_OBJDIR)/.configured
- (cd $(NEON_OBJDIR) && env MAKEFLAGS= make)
+ (cd $(NEON_OBJDIR) && env MAKEFLAGS= make -j${MAKE_JOBS})
touch $@
# install neon
@@ -860,11 +892,13 @@ $(SERF_OBJDIR)/.retrieved:
$(SERF_OBJDIR)/.compiled: $(SERF_OBJDIR)/.retrieved \
$(APR_UTIL_OBJDIR)/.installed
cd $(SERF_SRCDIR) && \
- scons DEBUG=1 \
+ scons -j${MAKE_JOBS} DEBUG=1 \
CFLAGS="-O0 -g $(PROFILE_CFLAGS) -DAPR_POOL_DEBUG" \
+ CC=$(CC) CXX=$(CXX) \
APR=$(PREFIX)/apr \
APU=$(PREFIX)/apr \
- PREFIX=$(PREFIX)/serf
+ PREFIX=$(PREFIX)/serf \
+ PKG_CONFIG_PATH=$(PKG_CONFIG_PATH)
touch $@
# install serf
@@ -905,6 +939,7 @@ $(SERF_OLD_OBJDIR)/.compiled: $(SERF_OLD_OBJDIR)/.retrieved \
$(APR_UTIL_OBJDIR)/.installed
cd $(SERF_OLD_SRCDIR) && \
env CFLAGS="-O0 -g $(PROFILE_CFLAGS) -DAPR_POOL_DEBUG" \
+ CC=$(CC) CXX=$(CXX) \
./serfmake --with-apr=$(PREFIX)/apr \
--prefix=$(PREFIX)/serf-old \
build
@@ -956,6 +991,8 @@ endif
$(SQLITE_OBJDIR)/.configured: $(SQLITE_OBJDIR)/.retrieved
cd $(SQLITE_OBJDIR) \
&& env CFLAGS="-g $(PROFILE_CFLAGS)" GREP="`which grep`" \
+ PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) \
+ CC=$(CC) CXX=$(CXX) \
$(SQLITE_SRCDIR)/configure \
--prefix=$(PREFIX)/sqlite \
$(THREADSAFE_FLAG)
@@ -963,7 +1000,7 @@ $(SQLITE_OBJDIR)/.configured: $(SQLITE_OBJDIR)/.retrieved
# compile sqlite
$(SQLITE_OBJDIR)/.compiled: $(SQLITE_OBJDIR)/.configured
- (cd $(SQLITE_OBJDIR) && env MAKEFLAGS= make)
+ (cd $(SQLITE_OBJDIR) && env MAKEFLAGS= make -j${MAKE_JOBS})
touch $@
# install sqlite
@@ -1025,7 +1062,9 @@ $(CYRUS_SASL_OBJDIR)/.configured: $(CYRUS_SASL_OBJDIR)/.retrieved \
cd $(CYRUS_SASL_OBJDIR) \
&& env CFLAGS="-g $(PROFILE_CFLAGS)" \
CPPFLAGS="-I/usr/include/kerberosV" \
+ CC=$(CC) CXX=$(CXX) \
GREP="`which grep`" \
+ PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) \
$(CYRUS_SASL_SRCDIR)/configure \
--with-dbpath=$(PREFIX)/cyrus-sasl/etc/sasldb2 \
--with-plugindir=$(PREFIX)/cyrus-sasl/lib/sasl2 \
@@ -1037,7 +1076,7 @@ $(CYRUS_SASL_OBJDIR)/.configured: $(CYRUS_SASL_OBJDIR)/.retrieved \
--prefix=$(PREFIX)/cyrus-sasl
touch $@
-# compile cyrus-sasl
+# compile cyrus-sasl (ignore MAKE_JOBS; multiple jobs cause random build failures)
$(CYRUS_SASL_OBJDIR)/.compiled: $(CYRUS_SASL_OBJDIR)/.configured
(cd $(CYRUS_SASL_OBJDIR) && env MAKEFLAGS= make)
touch $@
@@ -1077,6 +1116,8 @@ $(LIBMAGIC_OBJDIR)/.retrieved: $(DISTDIR)/$(LIBMAGIC_DIST)
$(LIBMAGIC_OBJDIR)/.configured: $(LIBMAGIC_OBJDIR)/.retrieved
cd $(LIBMAGIC_OBJDIR) \
&& env CFLAGS="-g $(PROFILE_CFLAGS)" GREP="`which grep`"\
+ CC=$(CC) CXX=$(CXX) \
+ PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) \
$(LIBMAGIC_SRCDIR)/configure \
--enable-fsect-man5 \
--prefix=$(PREFIX)/libmagic
@@ -1084,7 +1125,7 @@ $(LIBMAGIC_OBJDIR)/.configured: $(LIBMAGIC_OBJDIR)/.retrieved
# compile libmagic
$(LIBMAGIC_OBJDIR)/.compiled: $(LIBMAGIC_OBJDIR)/.configured
- (cd $(LIBMAGIC_OBJDIR) && env MAKEFLAGS= make)
+ (cd $(LIBMAGIC_OBJDIR) && env MAKEFLAGS= make -j${MAKE_JOBS})
touch $@
# install libmagic
@@ -1111,13 +1152,54 @@ ruby-clean:
$(DISTDIR)/$(RUBY_DIST):
cd $(DISTDIR) && $(FETCH_CMD) $(RUBY_URL)
+$(RUBY_OBJDIR)/openssl_missing.patch:
+ mkdir -p $(dir $@)
+ echo > $@.tmp 'Index: ext/openssl/openssl_missing.h'
+ echo >> $@.tmp '--- ext/openssl/openssl_missing.h.orig'
+ echo >> $@.tmp '+++ ext/openssl/openssl_missing.h'
+ echo >> $@.tmp '@@ -119,6 +119,9 @@ void ossl_HMAC_CTX_free(HMAC_CTX *);'
+ echo >> $@.tmp ' #if !defined(HAVE_X509_STORE_SET_EX_DATA)'
+ echo >> $@.tmp ' # define X509_STORE_set_ex_data(x, idx, data) \'
+ echo >> $@.tmp ' CRYPTO_set_ex_data(&(x)->ex_data, (idx), (data))'
+ echo >> $@.tmp '+#endif'
+ echo >> $@.tmp '+'
+ echo >> $@.tmp '+#if !defined(HAVE_X509_STORE_GET_EX_NEW_INDEX)'
+ echo >> $@.tmp ' # define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \'
+ echo >> $@.tmp ' CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, (l), (p), \'
+ echo >> $@.tmp ' (newf), (dupf), (freef))'
+ echo >> $@.tmp '@@ -192,6 +195,7 @@ void ossl_X509_REQ_get0_signature(const X509_REQ *, co'
+ echo >> $@.tmp ' #endif'
+ echo >> $@.tmp ' '
+ echo >> $@.tmp ' #if !defined(HAVE_OPAQUE_OPENSSL)'
+ echo >> $@.tmp '+#if defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000fL'
+ echo >> $@.tmp ' #define IMPL_PKEY_GETTER(_type, _name) \'
+ echo >> $@.tmp ' static inline _type *EVP_PKEY_get0_##_type(EVP_PKEY *pkey) { \'
+ echo >> $@.tmp ' return pkey->pkey._name; }'
+ echo >> $@.tmp '@@ -243,6 +247,7 @@ IMPL_PKEY_GETTER(EC_KEY, ec)'
+ echo >> $@.tmp ' #undef IMPL_PKEY_GETTER'
+ echo >> $@.tmp ' #undef IMPL_KEY_ACCESSOR2'
+ echo >> $@.tmp ' #undef IMPL_KEY_ACCESSOR3'
+ echo >> $@.tmp '+#endif'
+ echo >> $@.tmp ' #endif /* HAVE_OPAQUE_OPENSSL */'
+ echo >> $@.tmp ' '
+ echo >> $@.tmp ' #if defined(HAVE_AUTHENTICATED_ENCRYPTION) && !defined(EVP_CTRL_AEAD_GET_TAG)'
+ mv -f $@.tmp $@
+
+ifeq ($(UNAME),OpenBSD)
+RUBY_SSL_EX_NEW_DATA_PATCH = sed -i -e '/^have_func("X509_STORE_set_ex_data")$$/ { p; s/^.*$$/\have_func("X509_STORE_get_ex_new_index")/; }'
+else
+RUBY_SSL_EX_NEW_DATA_PATCH = true
+endif
+
# retrieve ruby
#
-$(RUBY_OBJDIR)/.retrieved: $(DISTDIR)/$(RUBY_DIST)
+$(RUBY_OBJDIR)/.retrieved: $(DISTDIR)/$(RUBY_DIST) $(RUBY_OBJDIR)/openssl_missing.patch
$(call do_check_sha256,$(RUBY_DIST))
[ -d $(RUBY_OBJDIR) ] || mkdir -p $(RUBY_OBJDIR)
tar -C $(SRCDIR) -zxf $(DISTDIR)/$(RUBY_DIST)
-which ghead && sed -i -e "s/head -c/ghead -c/" $(RUBY_SRCDIR)/configure
+ $(RUBY_SSL_EX_NEW_DATA_PATCH) $(RUBY_SRCDIR)/ext/openssl/extconf.rb
+ cd $(RUBY_SRCDIR) && patch -p0 < $(RUBY_OBJDIR)/openssl_missing.patch
touch $@
ifeq ($(THREADING),yes)
@@ -1130,6 +1212,8 @@ endif
$(RUBY_OBJDIR)/.configured: $(RUBY_OBJDIR)/.retrieved
cd $(RUBY_OBJDIR) \
&& env CFLAGS="-g $(PROFILE_CFLAGS)" GREP="`which grep`"\
+ CC=$(CC) CXX=$(CXX) \
+ PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) \
$(RUBY_SRCDIR)/configure \
--prefix=$(PREFIX)/ruby \
--enable-shared \
@@ -1140,7 +1224,7 @@ $(RUBY_OBJDIR)/.configured: $(RUBY_OBJDIR)/.retrieved
--without-gmp
touch $@
-# compile ruby
+# compile ruby (ignore MAKE_JOBS; multiple jobs cause random build failures)
$(RUBY_OBJDIR)/.compiled: $(RUBY_OBJDIR)/.configured
(cd $(RUBY_OBJDIR) && env MAKEFLAGS= make)
touch $@
@@ -1177,7 +1261,8 @@ $(BZ2_OBJDIR)/.retrieved: $(DISTDIR)/$(BZ2_DIST)
# compile bz2
$(BZ2_OBJDIR)/.compiled: $(BZ2_OBJDIR)/.retrieved
- (cd $(BZ2_SRCDIR) && env MAKEFLAGS= make CFLAGS="-g $(PROFILE_CFLAGS) -fPIC")
+ (cd $(BZ2_SRCDIR) && env MAKEFLAGS= make CC=$(CC) CXX=$(CXX) \
+ CFLAGS="-g $(PROFILE_CFLAGS) -fPIC" -j${MAKE_JOBS})
touch $@
# install bz2
@@ -1237,9 +1322,11 @@ $(PYTHON_OBJDIR)/.configured: $(PYTHON_OBJDIR)/.retrieved \
$(BZ2_OBJDIR)/.installed
cd $(PYTHON_OBJDIR) \
&& env CFLAGS="-g $(PROFILE_CFLAGS)" GREP="`which grep`" \
+ CC=$(CC) CXX=$(CXX) \
CPPFLAGS="-I$(PREFIX)/bz2/include" \
LDFLAGS="-Wl,-rpath=$(PREFIX)/python/lib -L$(PREFIX)/bz2/lib" \
LD_LIBRARY_PATH="$(LD_LIBRARY_PATH):$$LD_LIBRARY_PATH" \
+ PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) \
$(PYTHON_SRCDIR)/configure \
--prefix=$(PREFIX)/python \
--enable-shared \
@@ -1253,7 +1340,7 @@ $(PYTHON_OBJDIR)/.compiled: $(PYTHON_OBJDIR)/.configured
(cd $(PYTHON_OBJDIR) && \
env MAKEFLAGS= \
LD_LIBRARY_PATH="$(LD_LIBRARY_PATH):$$LD_LIBRARY_PATH" \
- make)
+ make -j${MAKE_JOBS})
touch $@
# install python
@@ -1306,7 +1393,9 @@ $(GETTEXT_OBJDIR)/.retrieved: $(DISTDIR)/$(GETTEXT_DIST)
$(GETTEXT_OBJDIR)/.configured: $(GETTEXT_OBJDIR)/.retrieved
cd $(GETTEXT_SRCDIR) \
&& env CFLAGS="-g $(PROFILE_CFLAGS)" GREP="`which grep`"\
+ CC=$(CC) CXX=$(CXX) \
LDFLAGS="-L$(PREFIX)/iconv/lib" \
+ PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) \
$(GETTEXT_SRCDIR)/configure \
--prefix=$(PREFIX)/gettext \
--with-libiconv-prefix=$(PREFIX)/iconv \
@@ -1324,7 +1413,7 @@ $(GETTEXT_OBJDIR)/.configured: $(GETTEXT_OBJDIR)/.retrieved
# compile gettext
$(GETTEXT_OBJDIR)/.compiled: $(GETTEXT_OBJDIR)/.configured
- (cd $(GETTEXT_SRCDIR) && env MAKEFLAGS= make)
+ (cd $(GETTEXT_SRCDIR) && env MAKEFLAGS= make -j${MAKE_JOBS})
touch $@
# install gettext
@@ -1365,7 +1454,8 @@ $(LZ4_OBJDIR)/.configured: $(LZ4_OBJDIR)/.retrieved
# compile lz4
$(LZ4_OBJDIR)/.compiled: $(LZ4_OBJDIR)/.configured
(cd $(LZ4_SRCDIR)/lib && \
- env MAKEFLAGS= $(MAKE) PREFIX=$(PREFIX)/lz4)
+ env MAKEFLAGS= $(MAKE) CC=$(CC) CXX=$(CXX) \
+ -j${MAKE_JOBS} PREFIX=$(PREFIX)/lz4)
touch $@
# install lz4
@@ -1467,6 +1557,7 @@ SERF_FLAG=--with-serf="$(PREFIX)/serf"
# serf >= 1.3.0 is built with scons and no longer sets up rpath linker flags,
# so we have to do that ourselves :(
SERF_LDFLAG=-Wl,-rpath,$(PREFIX)/serf/lib -Wl,-rpath,$(PREFIX)/bdb/lib
+LZ4_LDFLAG=-Wl,-rpath,$(PREFIX)/lz4/lib
MOD_DAV_SVN=modules/svn-$(WC)/mod_dav_svn.so
MOD_AUTHZ_SVN=modules/svn-$(WC)/mod_authz_svn.so
MOD_DONTDOTHAT=modules/svn-$(WC)/mod_dontdothat.so
@@ -1492,6 +1583,17 @@ SVN_WITH_HTTPD=--with-apxs="$(PREFIX)/httpd/bin/apxs" \
SVN_WITH_SASL=--with-sasl="$(PREFIX)/cyrus-sasl"
endif
+# On OpenBSD, MExtUtils -e ldopts outputs -L/usr/local/lib, which can
+# cause us to link Perl bindings against the wrong set of SVN libraries.
+# As a workaround, we patch the configure script after it has been generated.
+ifeq ($(UNAME),OpenBSD)
+SWIG_PL_INCLUDES_HACK= sed -i 's^\($$PERL -MExtUtils::Embed -e ccopts\)^\1 | sed -e s@-I/usr/local/include@@^' $(svn_builddir)/configure
+SWIG_PL_LINK_HACK= sed -i 's^\($$PERL -MExtUtils::Embed -e ldopts\)^\1 | sed -e s@-L/usr/local/lib@@^' $(svn_builddir)/configure
+else
+SWIG_PL_INCLUDES_HACK=true
+SWIG_PL_LINK_HACK=true
+endif
+
$(SVN_OBJDIR)/.configured: $(SVN_OBJDIR)/.retrieved $(DISTDIR)/$(JUNIT_DIST) \
$(APR_OBJDIR)/.installed $(APR_UTIL_OBJDIR)/.installed \
$(BDB_OBJDIR)/.installed $(SQLITE_OBJDIR)/.installed \
@@ -1500,11 +1602,15 @@ $(SVN_OBJDIR)/.configured: $(SVN_OBJDIR)/.retrieved $(DISTDIR)/$(JUNIT_DIST) \
$(SERF_OBJDIR)/.installed $(SERF_OLD_OBJDIR)/.installed \
$(RUBY_OBJDIR)/.installed $(PYTHON_OBJDIR)/.installed
cd $(SVN_SRCDIR) && ./autogen.sh
+ $(SWIG_PL_INCLUDES_HACK)
+ $(SWIG_PL_LINK_HACK)
cd $(svn_builddir) && \
- env LDFLAGS="-L$(PREFIX)/neon/lib -L$(PREFIX)/apr/lib $(SERF_LDFLAG) -L$(PREFIX)/gettext/lib -L$(PREFIX)/iconv/lib" \
+ env LDFLAGS="-L$(PREFIX)/neon/lib -L$(PREFIX)/apr/lib $(SERF_LDFLAG) $(LZ4_LDFLAG) -L$(PREFIX)/gettext/lib -L$(PREFIX)/iconv/lib" \
+ CC=$(CC) CXX=$(CXX) \
CFLAGS="-I$(PREFIX)/gettext/include -DAPR_POOL_DEBUG" \
CXXFLAGS="-I$(PREFIX)/gettext/include -DAPR_POOL_DEBUG" \
LD_LIBRARY_PATH="$(LD_LIBRARY_PATH):$$LD_LIBRARY_PATH" \
+ PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) \
GREP="`which grep`" \
PATH=$(PREFIX)/ruby/bin:$(PREFIX)/python/bin:$(PREFIX)/gettext/bin:$$PATH \
$(SVN_SRCDIR)/configure \
@@ -1533,7 +1639,7 @@ $(SVN_OBJDIR)/.configured: $(SVN_OBJDIR)/.retrieved $(DISTDIR)/$(JUNIT_DIST) \
# compile svn
$(SVN_OBJDIR)/.compiled: $(SVN_OBJDIR)/.configured
cd $(svn_builddir) \
- && env MAKEFLAGS= make EXTRA_CFLAGS="$(PROFILE_CFLAGS) $(W_NO_SYSTEM_HEADERS)"
+ && env MAKEFLAGS= make -j${MAKE_JOBS} EXTRA_CFLAGS="$(PROFILE_CFLAGS) $(W_NO_SYSTEM_HEADERS)"
touch $@
# install svn
@@ -1552,17 +1658,30 @@ $(SVN_OBJDIR)/.pre-generated-swig-cleaned:
&& env MAKEFLAGS= make clean-swig
touch $@
+
+# On OpenBSD, Perl's LDDLFLAGS include -L/usr/local/lib, which can cause
+# us to link Perl bindings against the wrong set of SVN libraries.
+# We manually fix up the generated Makefile.PL to work around this issue.
+ifeq ($(UNAME),OpenBSD)
+MAKEFILE_PL_LDDLFLAGS_HACK= sed -i 's@^WriteMakefile@$$config{LDDLFLAGS} =~ s+-L/usr/local/lib++; WriteMakefile@' \
+ $(SVN_SRCDIR)/subversion/bindings/swig/perl/native/Makefile.PL
+else
+MAKEFILE_PL_LDDLFLAGS_HACK=true
+endif
+
$(SVN_OBJDIR)/.bindings-compiled: $(SVN_OBJDIR)/.installed $(SVN_OBJDIR)/.pre-generated-swig-cleaned
cd $(svn_builddir) \
&& env LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) \
- env MAKEFLAGS= make swig-py
+ env MAKEFLAGS= make -j${MAKE_JOBS} swig-py
cd $(svn_builddir) && \
env PATH=$(PREFIX)/ruby/bin:$$PATH \
- LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) env MAKEFLAGS= make swig-rb
+ LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) env MAKEFLAGS= make -j${MAKE_JOBS} swig-rb
if [ $(ENABLE_PERL_BINDINGS) = yes ]; then \
+ cd $(svn_builddir) && make $(SVN_SRCDIR)/subversion/bindings/swig/perl/native/Makefile.PL; \
+ $(MAKEFILE_PL_LDDLFLAGS_HACK); \
cd $(svn_builddir) \
&& env LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) \
- env MAKEFLAGS= make swig-pl; \
+ env MAKEFLAGS= make -j${MAKE_JOBS} swig-pl; \
fi
if [ $(ENABLE_JAVA_BINDINGS) = yes ]; then \
cd $(svn_builddir) \
@@ -1576,13 +1695,15 @@ $(SVN_OBJDIR)/.bindings-installed: $(SVN_OBJDIR)/.bindings-compiled
env MAKEFLAGS= make install-swig-py
cd $(svn_builddir) && \
env PATH=$(PREFIX)/ruby/bin:$$PATH \
- LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) env MAKEFLAGS= make install-swig-rb
+ LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) MAKEFLAGS= make install-swig-rb
if [ $(ENABLE_PERL_BINDINGS) = yes ]; then \
cd $(svn_builddir) \
- && env MAKEFLAGS= make install-swig-pl-lib; \
- cd subversion/bindings/swig/perl/native \
- && perl Makefile.PL PREFIX="$(SVN_PREFIX)" \
- && env MAKEFLAGS= make install; \
+ && env MAKEFLAGS= LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) \
+ make install-swig-pl-lib; \
+ cd subversion/bindings/swig/perl/native \
+ && perl Makefile.PL PREFIX="$(SVN_PREFIX)" \
+ && env MAKEFLAGS= LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) \
+ make install; \
fi
if [ $(ENABLE_JAVA_BINDINGS) = yes ]; then \
cd $(svn_builddir) \
@@ -1913,6 +2034,7 @@ endif
HTTPD_CMD = env LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) $(LIB_PTHREAD_HACK) \
$(PREFIX)/httpd/bin/apachectl
+HTTPD_LOG_ROTATE = mv $(PREFIX)/httpd/logs/error_log $(PREFIX)/httpd/logs/error_log.old
HTTPD_START_CMD = $(HTTPD_CMD) -f $(HTTPD_CHECK_CONF) -k start
HTTPD_START_CMD_PROXY = $(HTTPD_CMD) -f $(HTTPD_PROXY_CONF)
HTTPD_START_CMD_DEBUG = $(HTTPD_START_CMD) -X
@@ -1931,6 +2053,7 @@ SVNSERVE_STOP_CMD = kill `cat $(PWD)/svnserve-$(WC).pid`; sleep 3; \
rm -f $(PWD)/svnserve-$(WC).pid
start-httpd: $(HTTPD_CHECK_CONF)
+ -$(HTTPD_LOG_ROTATE)
$(HTTPD_START_CMD)
@echo "To run tests over http, run:"
@echo " make check BASE_URL=http://localhost:$(HTTPD_CHECK_PORT)"
@@ -1971,6 +2094,7 @@ define do_check
env LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) $(LIB_PTHREAD_HACK) \
env MAKEFLAGS= make check PARALLEL=$(PARALLEL) CLEANUP=$(CLEANUP) \
EXCLUSIVE_WC_LOCKS=$(EXCLUSIVE_WC_LOCKS) \
+ SVN_BIN_DIR=$(SVN_PREFIX)/bin \
MEMCACHED_SERVER=$(MEMCACHED_SERVER) $1 FS_TYPE=$$fs; \
for log in tests.log fails.log; do \
test -f $$log && mv -f $$log $$log.$@-$$fs; \
@@ -2052,7 +2176,7 @@ svn-check-javahl:
-if [ $(ENABLE_JAVA_BINDINGS) = yes ]; then \
(cd $(svn_builddir) && \
env LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) \
- env MAKEFLAGS= make $(JAVAHL_CHECK_TARGET) 2>&1) | \
+ MAKEFLAGS= make $(JAVAHL_CHECK_TARGET) 2>&1) | \
tee $(svn_builddir)/tests.log.bindings.javahl; \
fi
diff --git a/tools/dev/unix-build/README b/tools/dev/unix-build/README
index 13cdc42..8a3780c 100644
--- a/tools/dev/unix-build/README
+++ b/tools/dev/unix-build/README
@@ -94,3 +94,22 @@ everything is "svn-check".
Notes
=====
The script currently doesn't build Ctypes Python bindings.
+
+OpenBSD-specific notes
+======================
+On OpenBSD install the following packages to get dependencies and
+tools not covered by this Makefile:
+
+pkg_add autoconf automake bison coreutils gmake gperf groff libtool \
+ python ruby scons subversion swig wget
+
+Some of these packages are available in several versions. Tested at time
+of writing were: autoconf-2.68 automake-1.19 python-2.7.14 ruby-2.4.2
+
+OpenBSD's autoconf and automake wrappers require desired versions in
+environment variables and will raise errors if these aren't set:
+export AUTOCONF_VERSION=2.68
+export AUTOMAKE_VERSION=1.19
+
+A 'python' symlink is required; follow instructions printed by pkg_add
+when the python package is installed.
diff --git a/tools/dev/wc-ng/svn-wc-db-tester.c b/tools/dev/wc-ng/svn-wc-db-tester.c
index ccdd102..ba63b63 100644
--- a/tools/dev/wc-ng/svn-wc-db-tester.c
+++ b/tools/dev/wc-ng/svn-wc-db-tester.c
@@ -44,7 +44,7 @@
static svn_error_t *
version(apr_pool_t *pool)
{
- return svn_opt_print_help4(NULL, "svn-wc-db-tester", TRUE, FALSE, FALSE,
+ return svn_opt_print_help5(NULL, "svn-wc-db-tester", TRUE, FALSE, FALSE,
NULL, NULL, NULL, NULL, NULL, NULL, pool);
}
diff --git a/tools/dev/which-error.py b/tools/dev/which-error.py
index 6c683cb..fca4c47 100755
--- a/tools/dev/which-error.py
+++ b/tools/dev/which-error.py
@@ -23,7 +23,7 @@
# under the License.
# ====================================================================
#
-# $HeadURL: https://svn.apache.org/repos/asf/subversion/branches/1.10.x/tools/dev/which-error.py $
+# $HeadURL: https://svn.apache.org/repos/asf/subversion/branches/1.11.x/tools/dev/which-error.py $
# $LastChangedDate: 2016-04-30 08:16:53 +0000 (Sat, 30 Apr 2016) $
# $LastChangedBy: stefan2 $
# $LastChangedRevision: 1741723 $
diff --git a/tools/dist/README.backport b/tools/dist/README.backport
index 0b9c66e..c3fdc68 100644
--- a/tools/dist/README.backport
+++ b/tools/dist/README.backport
@@ -7,20 +7,23 @@ F1. Auto-merge bot; the nightly svn-role commits.
F2. Conflicts detector bot; the svn-backport-conflicts-1.9.x buildbot task.
-And two interactive functions, described later.
+And two interactive functions¹:
+
+F3. Reviewing STATUS nominations and casting votes.
+
+F4. Adding new entries to STATUS.
The scripts are:
backport.pl:
- oldest script, implements both [F1] and [F2], plus two interactive
- functions¹. As of March 2015, used in production by svn-role and
- by svn-backport-conflicts-1.9.x.
+ oldest script, implements [F1], [F2], and [F3]. As of Feb 2018, used in
+ production by svn-role (running on svn-qavm3) and by svn-backport-conflicts-1.9.x
+ (a buildbot job).
nominate.pl:
- Symlink to backport.pl. Implements one of the two interactive features.
- Not used by bots.
+ Symlink to backport.pl. Implements [F4]. (The script inspects its argv[0].)
backport_tests_pl.py:
Regression tests for backport.pl.
@@ -39,9 +42,11 @@ backport/*.py:
detect-conflicting-backports.py:
Implementation of [F2] using backport.py.
+ Not currently used in production.
merge-approved-backports.py:
Implementation of [F1] using backport.py.
+ Not currently used in production.
backport_tests_py.py:
Regression tests for detect-conflicting-backports.py and merge-approved-backports.py
@@ -52,13 +57,28 @@ backport_tests.py:
svntest framework (../../subversion/tests/cmdline/svntest/), which is
written in Python 2.
-backport*.dump:
+ Note that backport_tests.py and backport/*.py are written in different
+ languages, so they never 'import' each other. backport_tests.py invokes
+ detect-conflicting-backports.py, merge-approved-backports.py, and
+ backport.pl in the same manner: through subprocess.check_call().
+
+backport_tests_data/backport*.dump:
Expected output files for backport_tests.py; see the BackportTest
- decorator.
+ decorator in backport_tests.py.
All scripts can be run with '--help' to display their usage messages.
+backport.pl is considered deprecated since backport.py is better architected
+and is written in a language that many more active developers are comfortable
+with. The unattended jobs [F1] and [F2] should be converted to using
+backport.py whenever someone gets around to do the legwork. The interactive
+versions [F3] and [F4] are still in active use, however, so the physical
+backport.pl script should be kept around until Python versions of these are
+available.
+
+
+TODO: document that "Notes: ... --accept=foo ..." is parsed, see backport_tests.py #3.
¹ For backport.pl's interactive features, see:
diff --git a/tools/dist/backport.pl b/tools/dist/backport.pl
index 67f8313..a8a7836 100755
--- a/tools/dist/backport.pl
+++ b/tools/dist/backport.pl
@@ -9,11 +9,11 @@ use v5.10.0; # needed for $^V
# experimental and "subject to change" in v5.18 (see perl5180delta). Every
# use of it now triggers a warning.
#
-# As of Perl v5.24.1, the semantics of given/when provided by Perl are
+# As of Perl v5.26.1, the semantics of given/when provided by Perl are
# compatible with those expected by the script, so disable the warning for
# those Perls. But don't try to disable the the warning category on Perls
# that don't know that category, since that breaks compilation.
-no if (v5.17.0 le $^V and $^V le v5.24.1),
+no if (v5.17.0 le $^V and $^V le v5.26.1),
warnings => 'experimental::smartmatch';
# Licensed to the Apache Software Foundation (ASF) under one
@@ -791,7 +791,7 @@ sub vote {
# Add to state votes that aren't '+0' or 'edit'
$state->{$_->{digest}}++ for grep
- +{ qw/-1 t -0 t +1 t/ }->{$_->{vote}},
+ ($_->{approval} or $_->{vote} =~ /^(-1|-0|[+]1)$/),
@votesarray;
}
}
@@ -1279,7 +1279,7 @@ sub nominate_main {
# Open the file in line-mode (not paragraph-mode).
my @STATUS;
tie @STATUS, "Tie::File", $STATUS, recsep => "\n";
- my ($index) = grep { $STATUS[$_] =~ /^Veto/ } (0..$#STATUS);
+ my ($index) = grep { $STATUS[$_] =~ /^Veto|^Approved/ } (0..$#STATUS);
die "Couldn't find where to add an entry" unless $index;
# Add an empty line if needed.
@@ -1297,7 +1297,8 @@ sub nominate_main {
# Done!
system "$SVN diff -- $STATUS";
if (prompt "Commit this nomination? ") {
- system "$SVN commit -m '* STATUS: Nominate r$revnums[0].' -- $STATUS";
+ my $header = join ', ', map "r$_", @revnums;
+ system "$SVN commit -m '* STATUS: Nominate $header.' -- $STATUS";
exit $?;
}
elsif (!$had_local_mods or prompt "Revert STATUS (destroying local mods)? ") {
diff --git a/tools/dist/backport/status.py b/tools/dist/backport/status.py
index 727939d..7ec378d 100644
--- a/tools/dist/backport/status.py
+++ b/tools/dist/backport/status.py
@@ -194,10 +194,10 @@ class StatusFile:
try:
entry = StatusEntry(para_text, status_file=self)
kind = Kind.nomination
- except ParseException:
+ except ParseException as e:
kind = Kind.unknown
- logger.warning("Failed to parse entry {!r} in {!r}".format(
- para_text, status_fp))
+ logger.warning("Failed to parse entry {!r} in {!r}: {}".format(
+ para_text, status_fp, e))
else:
kind = Kind.preamble
@@ -379,9 +379,11 @@ class StatusEntry:
raise ParseException("Entry found with neither branch nor revisions")
# Parse the logsummary.
- while lines and not self._is_subheader(lines[0]):
+ while True:
self.logsummary.append(lines[0])
lines = lines[1:]
+ if (not lines) or self._is_subheader(lines[0]):
+ break
# Parse votes.
if "Votes:" in lines:
diff --git a/tools/dist/backport_tests.py b/tools/dist/backport_tests.py
index ec483a7..27df294 100644
--- a/tools/dist/backport_tests.py
+++ b/tools/dist/backport_tests.py
@@ -53,6 +53,12 @@ import sys
@contextlib.contextmanager
def chdir(dir):
+ """This is a context manager that saves the current working directory's
+ pathname. Upon entry it chdir's to the argument DIR; upon exit it chdir's
+ back to the saved pathname.
+
+ The current working directory is restored using os.chdir(), not os.fchdir().
+ """
try:
saved_dir = os.getcwd()
os.chdir(dir)
@@ -660,6 +666,21 @@ def backport_unicode_entry(sbox):
# Run it.
run_backport(sbox)
+#----------------------------------------------------------------------
+@BackportTest('76cee987-25c9-4d6c-ad40-000000000013')
+def backport_logsummary_colon(sbox):
+ "a logsummary that looks like a header"
+
+ # r6: nominate r4
+ approved_entries = [
+ make_entry([4], logsummary="HTTPv2: Add comments."),
+ ]
+ sbox.simple_append(STATUS, serialize_STATUS(approved_entries))
+ sbox.simple_commit(message='Nominate r4')
+
+ # Run it.
+ run_backport(sbox)
+
#----------------------------------------------------------------------
@@ -680,6 +701,7 @@ test_list = [ None,
backport_otherproject_change,
backport_STATUS_mods,
backport_unicode_entry,
+ backport_logsummary_colon,
# When adding a new test, include the test number in the last
# 6 bytes of the UUID, in decimal.
]
diff --git a/tools/dist/backport_tests_data/backport_logsummary_colon.dump b/tools/dist/backport_tests_data/backport_logsummary_colon.dump
new file mode 100644
index 0000000..db9d6ce
--- /dev/null
+++ b/tools/dist/backport_tests_data/backport_logsummary_colon.dump
@@ -0,0 +1,522 @@
+SVN-fs-dump-format-version: 2
+
+UUID: 76cee987-25c9-4d6c-ad40-000000000013
+
+Revision-number: 0
+Prop-content-length: 10
+Content-length: 10
+
+PROPS-END
+
+Revision-number: 1
+Prop-content-length: 83
+Content-length: 83
+
+K 10
+svn:author
+V 7
+jrandom
+K 7
+svn:log
+V 27
+Log message for revision 1.
+PROPS-END
+
+Node-path: A
+Node-kind: dir
+Node-action: add
+Prop-content-length: 10
+Content-length: 10
+
+PROPS-END
+
+
+Node-path: A/B
+Node-kind: dir
+Node-action: add
+Prop-content-length: 10
+Content-length: 10
+
+PROPS-END
+
+
+Node-path: A/B/E
+Node-kind: dir
+Node-action: add
+Prop-content-length: 10
+Content-length: 10
+
+PROPS-END
+
+
+Node-path: A/B/E/alpha
+Node-kind: file
+Node-action: add
+Text-content-md5: d1fa4a3ced98961674a441930a51f2d3
+Text-content-sha1: b347d1da69df9a6a70433ceeaa0d46c8483e8c03
+Prop-content-length: 10
+Text-content-length: 26
+Content-length: 36
+
+PROPS-END
+This is the file 'alpha'.
+
+
+Node-path: A/B/E/beta
+Node-kind: file
+Node-action: add
+Text-content-md5: 67c756078f24f946f6ec2d00d02f50e1
+Text-content-sha1: d001710ac8e622c6d1fe59b1e265a3908acdd2a3
+Prop-content-length: 10
+Text-content-length: 25
+Content-length: 35
+
+PROPS-END
+This is the file 'beta'.
+
+
+Node-path: A/B/F
+Node-kind: dir
+Node-action: add
+Prop-content-length: 10
+Content-length: 10
+
+PROPS-END
+
+
+Node-path: A/B/lambda
+Node-kind: file
+Node-action: add
+Text-content-md5: 911c7a8d869b8c1e566f57da54d889c6
+Text-content-sha1: 784a9298366863da2b65ebf82b4e1123755a2421
+Prop-content-length: 10
+Text-content-length: 27
+Content-length: 37
+
+PROPS-END
+This is the file 'lambda'.
+
+
+Node-path: A/C
+Node-kind: dir
+Node-action: add
+Prop-content-length: 10
+Content-length: 10
+
+PROPS-END
+
+
+Node-path: A/D
+Node-kind: dir
+Node-action: add
+Prop-content-length: 10
+Content-length: 10
+
+PROPS-END
+
+
+Node-path: A/D/G
+Node-kind: dir
+Node-action: add
+Prop-content-length: 10
+Content-length: 10
+
+PROPS-END
+
+
+Node-path: A/D/G/pi
+Node-kind: file
+Node-action: add
+Text-content-md5: adddfc3e6b605b5f90ceeab11b4e8ab6
+Text-content-sha1: 411e258dc14b42701fdc29b75f653e93f8686415
+Prop-content-length: 10
+Text-content-length: 23
+Content-length: 33
+
+PROPS-END
+This is the file 'pi'.
+
+
+Node-path: A/D/G/rho
+Node-kind: file
+Node-action: add
+Text-content-md5: 82f2211cf4ab22e3555fc7b835fbc604
+Text-content-sha1: 56388a031dffbf9df7c32e1f299b1d5d7ef60881
+Prop-content-length: 10
+Text-content-length: 24
+Content-length: 34
+
+PROPS-END
+This is the file 'rho'.
+
+
+Node-path: A/D/G/tau
+Node-kind: file
+Node-action: add
+Text-content-md5: 9936e2716e469bb686deb98c280ead58
+Text-content-sha1: 62e8c07d56bee94ea4577e80414fa8805aaf0175
+Prop-content-length: 10
+Text-content-length: 24
+Content-length: 34
+
+PROPS-END
+This is the file 'tau'.
+
+
+Node-path: A/D/H
+Node-kind: dir
+Node-action: add
+Prop-content-length: 10
+Content-length: 10
+
+PROPS-END
+
+
+Node-path: A/D/H/chi
+Node-kind: file
+Node-action: add
+Text-content-md5: 8f5ebad6d1f7775c2682e54417cbe4d3
+Text-content-sha1: abeac1bf62099ab66b44779198dc19f40e3244f4
+Prop-content-length: 10
+Text-content-length: 24
+Content-length: 34
+
+PROPS-END
+This is the file 'chi'.
+
+
+Node-path: A/D/H/omega
+Node-kind: file
+Node-action: add
+Text-content-md5: fe4ec8bdd3d2056db4f55b474a10fadc
+Text-content-sha1: c06e671bf15a6af55086176a0931d3b5034c82e6
+Prop-content-length: 10
+Text-content-length: 26
+Content-length: 36
+
+PROPS-END
+This is the file 'omega'.
+
+
+Node-path: A/D/H/psi
+Node-kind: file
+Node-action: add
+Text-content-md5: e81f8f68ba50e749c200cb3c9ce5d2b1
+Text-content-sha1: 9c438bde39e8ccbbd366df2638e3cb6700950204
+Prop-content-length: 10
+Text-content-length: 24
+Content-length: 34
+
+PROPS-END
+This is the file 'psi'.
+
+
+Node-path: A/D/gamma
+Node-kind: file
+Node-action: add
+Text-content-md5: 412138bd677d64cd1c32fafbffe6245d
+Text-content-sha1: 74b75d7f2e1a0292f17d5a57c570bd89783f5d1c
+Prop-content-length: 10
+Text-content-length: 26
+Content-length: 36
+
+PROPS-END
+This is the file 'gamma'.
+
+
+Node-path: A/mu
+Node-kind: file
+Node-action: add
+Text-content-md5: baf78ae06a2d5b7d9554c5f1280d3fa8
+Text-content-sha1: b4d00c56351d1a752e24d839d41a362d8da4a4c7
+Prop-content-length: 10
+Text-content-length: 23
+Content-length: 33
+
+PROPS-END
+This is the file 'mu'.
+
+
+Node-path: iota
+Node-kind: file
+Node-action: add
+Text-content-md5: 2d18c5e57e84c5b8a5e9a6e13fa394dc
+Text-content-sha1: 2c0aa9014a0cd07f01795a333d82485ef6d083e2
+Prop-content-length: 10
+Text-content-length: 25
+Content-length: 35
+
+PROPS-END
+This is the file 'iota'.
+
+
+Revision-number: 2
+Prop-content-length: 68
+Content-length: 68
+
+K 10
+svn:author
+V 7
+jrandom
+K 7
+svn:log
+V 12
+Create trunk
+PROPS-END
+
+Node-path: subversion
+Node-kind: dir
+Node-action: add
+Prop-content-length: 10
+Content-length: 10
+
+PROPS-END
+
+
+Node-path: subversion/branches
+Node-kind: dir
+Node-action: add
+Prop-content-length: 10
+Content-length: 10
+
+PROPS-END
+
+
+Node-path: subversion/tags
+Node-kind: dir
+Node-action: add
+Prop-content-length: 10
+Content-length: 10
+
+PROPS-END
+
+
+Node-path: subversion/trunk
+Node-kind: dir
+Node-action: add
+Prop-content-length: 10
+Content-length: 10
+
+PROPS-END
+
+
+Node-path: subversion/trunk/A
+Node-kind: dir
+Node-action: add
+Node-copyfrom-rev: 1
+Node-copyfrom-path: A
+
+
+Node-path: subversion/trunk/iota
+Node-kind: file
+Node-action: add
+Node-copyfrom-rev: 1
+Node-copyfrom-path: iota
+Text-copy-source-md5: 2d18c5e57e84c5b8a5e9a6e13fa394dc
+Text-copy-source-sha1: 2c0aa9014a0cd07f01795a333d82485ef6d083e2
+
+
+Node-path: A
+Node-action: delete
+
+
+Node-path: iota
+Node-action: delete
+
+
+Revision-number: 3
+Prop-content-length: 87
+Content-length: 87
+
+K 10
+svn:author
+V 7
+jrandom
+K 7
+svn:log
+V 31
+Create branch, with STATUS file
+PROPS-END
+
+Node-path: branch
+Node-kind: dir
+Node-action: add
+Node-copyfrom-rev: 2
+Node-copyfrom-path: subversion/trunk
+
+
+Node-path: branch/STATUS
+Node-kind: file
+Node-action: add
+Text-content-md5: d41d8cd98f00b204e9800998ecf8427e
+Text-content-sha1: da39a3ee5e6b4b0d3255bfef95601890afd80709
+Prop-content-length: 10
+Text-content-length: 0
+Content-length: 10
+
+PROPS-END
+
+
+Revision-number: 4
+Prop-content-length: 68
+Content-length: 68
+
+K 10
+svn:author
+V 7
+jrandom
+K 7
+svn:log
+V 12
+First change
+PROPS-END
+
+Node-path: subversion/trunk/iota
+Node-kind: file
+Node-action: change
+Text-content-md5: 67f471c2ecc2c9e561d122d6e6b0f847
+Text-content-sha1: 750accb6e7f880a1d05ce725c19eb60183bb4b26
+Text-content-length: 38
+Content-length: 38
+
+This is the file 'iota'.
+First change
+
+
+Revision-number: 5
+Prop-content-length: 69
+Content-length: 69
+
+K 10
+svn:author
+V 7
+jrandom
+K 7
+svn:log
+V 13
+Second change
+PROPS-END
+
+Node-path: subversion/trunk/A/mu
+Node-kind: file
+Node-action: change
+Text-content-md5: eab751301b4e650c83324dfef4aad667
+Text-content-sha1: ab36cad564c7c50dec5ac1eb0bf879cf4e3a5f99
+Text-content-length: 37
+Content-length: 37
+
+This is the file 'mu'.
+Second change
+
+
+Revision-number: 6
+Prop-content-length: 67
+Content-length: 67
+
+K 10
+svn:author
+V 7
+jrandom
+K 7
+svn:log
+V 11
+Nominate r4
+PROPS-END
+
+Node-path: branch/STATUS
+Node-kind: file
+Node-action: change
+Text-content-md5: 21cf72d59d9e71a49260e3cf31f78b76
+Text-content-sha1: 9938559a403d5a18099aace3db6719bdb8940449
+Text-content-length: 245
+Content-length: 245
+
+Status of 1.8.x:
+
+Candidate changes:
+==================
+
+Random new subheading:
+======================
+
+Veto-blocked changes:
+=====================
+
+Approved changes:
+=================
+
+ * r4
+ HTTPv2: Add comments.
+ Votes:
+ +1: jrandom
+
+
+
+Revision-number: 7
+Prop-content-length: 135
+Content-length: 135
+
+K 10
+svn:author
+V 6
+daniel
+K 7
+svn:log
+V 80
+Merge r4 from trunk:
+
+ * r4
+ HTTPv2: Add comments.
+ Votes:
+ +1: jrandom
+
+PROPS-END
+
+Node-path: branch
+Node-kind: dir
+Node-action: change
+Prop-content-length: 54
+Content-length: 54
+
+K 13
+svn:mergeinfo
+V 19
+/subversion/trunk:4
+PROPS-END
+
+
+Node-path: branch/STATUS
+Node-kind: file
+Node-action: change
+Text-content-md5: 6f71fec92afeaa5c1ebe02349f548ca9
+Text-content-sha1: eece02003d9c51610249e3fdd0d4e191e02ba3b7
+Text-content-length: 185
+Content-length: 185
+
+Status of 1.8.x:
+
+Candidate changes:
+==================
+
+Random new subheading:
+======================
+
+Veto-blocked changes:
+=====================
+
+Approved changes:
+=================
+
+
+Node-path: branch/iota
+Node-kind: file
+Node-action: change
+Text-content-md5: 67f471c2ecc2c9e561d122d6e6b0f847
+Text-content-sha1: 750accb6e7f880a1d05ce725c19eb60183bb4b26
+Text-content-length: 38
+Content-length: 38
+
+This is the file 'iota'.
+First change
+
+
diff --git a/tools/dist/create-minor-release-branch.py b/tools/dist/create-minor-release-branch.py
new file mode 100755
index 0000000..7126edd
--- /dev/null
+++ b/tools/dist/create-minor-release-branch.py
@@ -0,0 +1,298 @@
+#!/usr/bin/env python
+# python: coding=utf-8
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+
+# About this script:
+# This script is intended to automate steps in creating a new Subversion
+# minor release.
+
+import os
+import re
+import sys
+import logging
+import subprocess
+import argparse # standard in Python 2.7
+
+from release import Version
+
+
+# Some constants
+repos = 'https://svn.apache.org/repos/asf/subversion'
+secure_repos = 'https://svn.apache.org/repos/asf/subversion'
+buildbot_repos = 'https://svn.apache.org/repos/infra/infrastructure/buildbot/aegis/buildmaster'
+
+# Local working copies
+base_dir = None # set by main()
+
+def get_trunk_wc_path(path=None):
+ trunk_wc_path = os.path.join(base_dir, 'svn-trunk')
+ if path is None: return trunk_wc_path
+ return os.path.join(trunk_wc_path, path)
+def get_branch_wc_path(ver, path=None):
+ branch_wc_path = os.path.join(base_dir, ver.branch + '.x')
+ if path is None: return branch_wc_path
+ return os.path.join(branch_wc_path, path)
+def get_buildbot_wc_path(path=None):
+ buildbot_wc_path = os.path.join(base_dir, 'svn-buildmaster')
+ if path is None: return buildbot_wc_path
+ return os.path.join(buildbot_wc_path, path)
+
+def get_trunk_url():
+ return secure_repos + '/trunk'
+def get_branch_url(ver):
+ return secure_repos + '/branches/' + ver.branch + '.x'
+def get_tag_url(ver):
+ return secure_repos + '/tags/' + ver.base
+def get_buildbot_url():
+ return buildbot_repos
+
+#----------------------------------------------------------------------
+# Utility functions
+
+def run(cmd, dry_run=False):
+ print('+ ' + ' '.join(cmd))
+ if not dry_run:
+ stdout = subprocess.check_output(cmd)
+ print(stdout)
+
+def run_svn(cmd, dry_run=False):
+ run(['svn'] + cmd, dry_run)
+
+def svn_commit(cmd):
+ run_svn(['commit'] + cmd, dry_run=True)
+
+def svn_checkout(*args):
+ args = ['checkout'] + list(args) + ['--revision={2017-12-01}']
+ run_svn(args)
+
+#----------------------------------------------------------------------
+def edit_file(path, pattern, replacement):
+ print("Editing '%s'" % (path,))
+ print(" pattern='%s'" % (pattern,))
+ print(" replace='%s'" % (replacement,))
+ old_text = open(path, 'r').read()
+ new_text = re.sub(pattern, replacement, old_text)
+ assert new_text != old_text
+ open(path, 'w').write(new_text)
+
+def prepend_file(path, text):
+ print("Prepending to '%s'" % (path,))
+ print(" text='%s'" % (text,))
+ original = open(path, 'r').read()
+ open(path, 'w').write(text + original)
+
+#----------------------------------------------------------------------
+def make_release_branch(ver):
+ run_svn(['copy', get_trunk_url(), get_branch_url(ver),
+ '-m', 'Create the ' + ver.branch + '.x release branch.'],
+ dry_run=True)
+
+#----------------------------------------------------------------------
+def update_minor_ver_in_trunk(ver):
+ """Change the minor version in trunk to the next (future) minor version.
+ """
+ trunk_wc = get_trunk_wc_path()
+ trunk_url = get_trunk_url()
+ svn_checkout(trunk_url, trunk_wc)
+
+ prev_ver = Version('1.%d.0' % (ver.minor - 1,))
+ next_ver = Version('1.%d.0' % (ver.minor + 1,))
+ relpaths = []
+
+ relpath = 'subversion/include/svn_version.h'
+ relpaths.append(relpath)
+ edit_file(get_trunk_wc_path(relpath),
+ r'(#define SVN_VER_MINOR *)%s' % (ver.minor,),
+ r'\g<1>%s' % (next_ver.minor,))
+
+ relpath = 'subversion/tests/cmdline/svntest/main.py'
+ relpaths.append(relpath)
+ edit_file(get_trunk_wc_path(relpath),
+ r'(SVN_VER_MINOR = )%s' % (ver.minor,),
+ r'\g<1>%s' % (next_ver.minor,))
+
+ relpath = 'subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java'
+ relpaths.append(relpath)
+ try:
+ # since r1817921 (just after branching 1.10)
+ edit_file(get_trunk_wc_path(relpath),
+ r'SVN_VER_MINOR = %s;' % (ver.minor,),
+ r'SVN_VER_MINOR = %s;' % (next_ver.minor,))
+ except:
+ # before r1817921: two separate places
+ edit_file(get_trunk_wc_path(relpath),
+ r'version.isAtLeast\(1, %s, 0\)' % (ver.minor,),
+ r'version.isAtLeast\(1, %s, 0\)' % (next_ver.minor,))
+ edit_file(get_trunk_wc_path(relpath),
+ r'1.%s.0, but' % (ver.minor,),
+ r'1.%s.0, but' % (next_ver.minor,))
+
+ relpath = 'CHANGES'
+ relpaths.append(relpath)
+ # insert at beginning of CHANGES file
+ prepend_file(get_trunk_wc_path(relpath),
+ 'Version ' + next_ver.base + '\n'
+ + '(?? ??? 20XX, from /branches/' + next_ver.branch + '.x)\n'
+ + get_tag_url(next_ver) + '\n'
+ + '\n')
+
+ log_msg = '''\
+Increment the trunk version number to %s, and introduce a new CHANGES
+section, following the creation of the %s.x release branch.
+
+* subversion/include/svn_version.h,
+ subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java,
+ subversion/tests/cmdline/svntest/main.py
+ (SVN_VER_MINOR): Increment to %s.
+
+* CHANGES: New section for %s.0.
+''' % (next_ver.branch, ver.branch, next_ver.minor, next_ver.branch)
+ commit_paths = [get_trunk_wc_path(p) for p in relpaths]
+ svn_commit(commit_paths + ['-m', log_msg])
+
+#----------------------------------------------------------------------
+def create_status_file_on_branch(ver):
+ branch_wc = get_branch_wc_path(ver)
+ branch_url = get_branch_url(ver)
+ svn_checkout(branch_url, branch_wc, '--depth=immediates')
+
+ status_local_path = os.path.join(branch_wc, 'STATUS')
+ text='''\
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * *
+ * THIS RELEASE STREAM IS OPEN FOR STABILIZATION. *
+ * *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+
+This file tracks the status of releases in the %s.x line.
+
+See http://subversion.apache.org/docs/community-guide/releasing.html#release-stabilization
+for details on how release lines and voting work, what kinds of bugs can
+delay a release, etc.
+
+Status of %s:
+
+Candidate changes:
+==================
+
+
+Veto-blocked changes:
+=====================
+
+
+Approved changes:
+=================
+''' % (ver.branch, ver.base)
+ open(status_local_path, 'wx').write(text)
+ run_svn(['add', status_local_path])
+ svn_commit([status_local_path,
+ '-m', '* branches/' + ver.branch + '.x/STATUS: New file.'])
+
+#----------------------------------------------------------------------
+def update_backport_bot(ver):
+ print("""MANUAL STEP: Fork & edit & pull-request on GitHub:
+https://github.com/apache/infrastructure-puppet/blob/deployment/modules/svnqavm_pvm_asf/manifests/init.pp
+"Add new %s.x branch to list of backport branches"
+""" % (ver.branch,))
+ print("""Someone needs to run the 'svn checkout' manually.
+The exact checkout command is documented in machines/svn-qavm2/notes.txt
+in the private repository (need to use a trunk client and the svn-master.a.o
+hostname).
+""")
+
+#----------------------------------------------------------------------
+def update_buildbot_config(ver):
+ """Add the new branch to the list of branches monitored by the buildbot
+ master.
+ """
+ buildbot_wc = get_buildbot_wc_path()
+ buildbot_url = get_buildbot_url()
+ svn_checkout(buildbot_url, buildbot_wc)
+
+ prev_ver = Version('1.%d.0' % (ver.minor - 1,))
+ next_ver = Version('1.%d.0' % (ver.minor + 1,))
+
+ relpath = 'master1/projects/subversion.conf'
+ edit_file(get_buildbot_wc_path(relpath),
+ r'(MINOR_LINES=\[.*%s)(\])' % (prev_ver.minor,),
+ r'\1, %s\2' % (ver.minor,))
+
+ log_msg = '''\
+Subversion: start monitoring the %s branch.
+''' % (ver.branch)
+ commit_paths = [get_buildbot_wc_path(relpath)]
+ svn_commit(commit_paths + ['-m', log_msg])
+
+#----------------------------------------------------------------------
+def steps(args):
+ ver = Version('1.10.0')
+
+ make_release_branch(ver)
+ update_minor_ver_in_trunk(ver)
+ create_status_file_on_branch(ver)
+ update_backport_bot(ver)
+ update_buildbot_config(ver)
+
+
+#----------------------------------------------------------------------
+# Main entry point for argument parsing and handling
+
+def main():
+ 'Parse arguments, and drive the appropriate subcommand.'
+
+ # Setup our main parser
+ parser = argparse.ArgumentParser(
+ description='Create an Apache Subversion release branch.')
+ parser.add_argument('--verbose', action='store_true', default=False,
+ help='Increase output verbosity')
+ parser.add_argument('--base-dir', default=os.getcwd(),
+ help='''The directory in which to create needed files and
+ folders. The default is the current working
+ directory.''')
+ subparsers = parser.add_subparsers(title='subcommands')
+
+ # Setup the parser for the build-env subcommand
+ subparser = subparsers.add_parser('steps',
+ help='''Run the release-branch-creation steps.''')
+ subparser.set_defaults(func=steps)
+
+ # Parse the arguments
+ args = parser.parse_args()
+
+ global base_dir
+ base_dir = args.base_dir
+
+ # Set up logging
+ logger = logging.getLogger()
+ if args.verbose:
+ logger.setLevel(logging.DEBUG)
+ else:
+ logger.setLevel(logging.INFO)
+
+ # Make timestamps in tarballs independent of local timezone
+ os.environ['TZ'] = 'UTC'
+
+ # finally, run the subcommand, and give it the parsed arguments
+ args.func(args)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/tools/dist/edit-N-log-messages b/tools/dist/edit-N-log-messages
new file mode 100755
index 0000000..fa6a2a2
--- /dev/null
+++ b/tools/dist/edit-N-log-messages
@@ -0,0 +1,94 @@
+#!/usr/bin/env zsh
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+set -e
+
+# setup
+0=${0:t}; NAME=$0
+svn=${SVN:-svn}
+svnadmin=${SVNADMIN:-svnadmin}
+
+usage() {
+ echo "usage: $NAME -r N:M"
+ echo " will retrieve all log messages in the range rN:rM, open them in"
+ echo " \$EDITOR, and commit any edits to them."
+ echo ""
+ echo " Run this with cwd being a working copy of ^/subversion/trunk."
+ # TODO: We only need the cwd in case SVN_CLIENT__REVKIND_NEEDS_WC() is true
+ # for N or M. When N and M are both numeric or HEAD, teach this script
+ # to disregard its cwd and contact ^/subversion/trunk directly.
+}
+
+# parse argv
+while getopts r: letter; do
+ if [[ $letter == r ]]; then
+ revision_range=$OPTARG
+ else
+ usage >&2
+ exit 1
+ fi
+done
+shift $((OPTIND - 1))
+[[ -n $revision_range ]] || { usage >&2; exit 1; }
+
+# get log messages
+cd "$(mktemp -d)"
+echo "${0}: Temporary directory: ${(q-)PWD}"
+revisions=( ${(f)"$(
+ # We use $OLDPWD rather than a URL in case $revision_range is, say,
+ # "BASE:HEAD".
+ $svn log -q -r $revision_range -- $OLDPWD |
+ grep '^r' | cut -d' ' -f1 | grep '^r[0-9]*$'
+)"} )
+for rN in $revisions; do
+ $svn propget --revprop -r $rN --strict 'svn:log' -- $OLDPWD > ./$rN &
+done
+wait
+
+# set up to detect which ones have changed
+$svnadmin create ./.r
+$svn checkout -q file://$PWD/.r ./
+$svn add -q ./r*
+$svn commit -q -m "Import revisions $revision_range"
+rm -rf ./.r # (!)
+
+# edit
+case $EDITOR in
+ (*vim*) $EDITOR -p ./r*;;
+ (*) $EDITOR ./r*;;
+esac
+
+# prompt for permission to continue
+if $svn status -q | grep -q ''; then
+ $svn status -q
+ read -q "?Commit the above propedits? " || { echo "${0}: exiting"; exit 0; }
+ echo ""
+else
+ echo "${0}: No changes."
+ echo "${0}: You can remove ${(q-)PWD} now."
+ exit 0
+fi
+
+# make propedits
+# TODO: make these changes atomically
+# 'svn propedit' is atomic and could drive a non-interactive $EDITOR, but for
+# now, we just trust the committer to read commits@.
+targets=( ${(f)"$($svn status -q | grep '^M' | cut -c9-)"} )
+for i in $targets; do
+ $svn propset --revprop -r $i -F ./$i -- 'svn:log' $OLDPWD
+done
diff --git a/tools/dist/release.py b/tools/dist/release.py
index 5518d6f..e101179 100755
--- a/tools/dist/release.py
+++ b/tools/dist/release.py
@@ -51,6 +51,7 @@ import operator
import itertools
import subprocess
import argparse # standard in Python 2.7
+import io
# Find ezt, using Subversion's copy, if there isn't one on the system.
try:
@@ -71,16 +72,16 @@ tool_versions = {
'954bd69b391edc12d6a4a51a2dd1476543da5c6bbf05a95b59dc0dd6fd4c2969'],
'libtool' : ['2.4.6',
'e3bd4d5d3d025a36c21dd6af7ea818a2afcd4dfc1ea5a17b39d7854bcd0c06e3'],
- 'swig' : ['3.0.10',
- '2939aae39dec06095462f1b95ce1c958ac80d07b926e48871046d17c0094f44c'],
+ 'swig' : ['3.0.12',
+ '7cf9f447ae7ed1c51722efc45e7f14418d15d7a1e143ac9f09a668999f4fc94d'],
},
'1.10' : {
'autoconf' : ['2.69',
'954bd69b391edc12d6a4a51a2dd1476543da5c6bbf05a95b59dc0dd6fd4c2969'],
'libtool' : ['2.4.6',
'e3bd4d5d3d025a36c21dd6af7ea818a2afcd4dfc1ea5a17b39d7854bcd0c06e3'],
- 'swig' : ['3.0.10',
- '2939aae39dec06095462f1b95ce1c958ac80d07b926e48871046d17c0094f44c'],
+ 'swig' : ['3.0.12',
+ '7cf9f447ae7ed1c51722efc45e7f14418d15d7a1e143ac9f09a668999f4fc94d'],
},
'1.9' : {
'autoconf' : ['2.69',
@@ -102,7 +103,7 @@ tool_versions = {
# The version that is our current recommended release
# ### TODO: derive this from svn_version.h; see ../../build/getversion.py
-recommended_release = '1.9'
+recommended_release = '1.10'
# Some constants
repos = 'https://svn.apache.org/repos/asf/subversion'
@@ -174,7 +175,7 @@ class Version(object):
ver_tag = '" (Alpha %d)"' % self.pre_num
ver_numtag = '"-alpha%d"' % self.pre_num
elif self.pre == 'beta':
- ver_tag = '" (Beta %d)"' % args.version.pre_num
+ ver_tag = '" (Beta %d)"' % self.pre_num
ver_numtag = '"-beta%d"' % self.pre_num
elif self.pre == 'rc':
ver_tag = '" (Release Candidate %d)"' % self.pre_num
@@ -712,9 +713,13 @@ def roll_tarballs(args):
filepath = os.path.join(get_tempdir(args.base_dir), filename)
shutil.move(filepath, get_deploydir(args.base_dir))
filepath = os.path.join(get_deploydir(args.base_dir), filename)
- m = hashlib.sha1()
- m.update(open(filepath, 'r').read())
- open(filepath + '.sha1', 'w').write(m.hexdigest())
+ if args.version < Version("1.11.0-alpha1"):
+ # 1.10 and earlier generate *.sha1 files for compatibility reasons.
+ # They are deprecated, however, so we don't publicly link them in
+ # the announcements any more.
+ m = hashlib.sha1()
+ m.update(open(filepath, 'r').read())
+ open(filepath + '.sha1', 'w').write(m.hexdigest())
m = hashlib.sha512()
m.update(open(filepath, 'r').read())
open(filepath + '.sha512', 'w').write(m.hexdigest())
@@ -737,8 +742,12 @@ def sign_candidates(args):
def sign_file(filename):
asc_file = open(filename + '.asc', 'a')
logging.info("Signing %s" % filename)
- proc = subprocess.check_call(['gpg', '-ba', '-o', '-', filename],
- stdout=asc_file)
+ if args.userid:
+ proc = subprocess.check_call(['gpg', '-ba', '-u', args.userid,
+ '-o', '-', filename], stdout=asc_file)
+ else:
+ proc = subprocess.check_call(['gpg', '-ba', '-o', '-', filename],
+ stdout=asc_file)
asc_file.close()
target = get_target(args)
@@ -773,8 +782,9 @@ def post_candidates(args):
#----------------------------------------------------------------------
# Create tag
+# Bump versions on branch
-def create_tag(args):
+def create_tag_only(args):
'Create tag in the repository'
target = get_target(args)
@@ -805,56 +815,80 @@ def create_tag(args):
logging.error("Do you need to pass --branch=trunk?")
raise
+def bump_versions_on_branch(args):
+ 'Bump version numbers on branch'
+
+ logging.info('Bumping version numbers on the branch')
+
+ if not args.branch:
+ args.branch = 'branches/%d.%d.x' % (args.version.major, args.version.minor)
+
+ branch = secure_repos + '/' + args.branch.rstrip('/')
+
+ def replace_in_place(fd, startofline, flat, spare):
+ """In file object FD, replace FLAT with SPARE in the first line
+ starting with regex STARTOFLINE."""
+
+ pattern = r'^(%s)%s' % (startofline, re.escape(flat))
+ repl = r'\g<1>%s' % (spare,)
+ fd.seek(0, os.SEEK_SET)
+ lines = fd.readlines()
+ for i, line in enumerate(lines):
+ replacement = re.sub(pattern, repl, line)
+ if replacement != line:
+ lines[i] = replacement
+ break
+ else:
+ raise RuntimeError("Could not replace r'%s' with r'%s' in '%s'"
+ % (pattern, repl, fd.url))
+
+ fd.seek(0, os.SEEK_SET)
+ fd.writelines(lines)
+ fd.truncate() # for current callers, new value is never shorter.
+
+ new_version = Version('%d.%d.%d' %
+ (args.version.major, args.version.minor,
+ args.version.patch + 1))
+
+ HEAD = subprocess.check_output(['svn', 'info', '--show-item=revision',
+ '--', branch]).strip()
+ HEAD = int(HEAD)
+ def file_object_for(relpath):
+ fd = tempfile.NamedTemporaryFile()
+ url = branch + '/' + relpath
+ fd.url = url
+ subprocess.check_call(['svn', 'cat', '%s@%d' % (url, HEAD)],
+ stdout=fd)
+ return fd
+
+ svn_version_h = file_object_for('subversion/include/svn_version.h')
+ replace_in_place(svn_version_h, '#define SVN_VER_PATCH *',
+ str(args.version.patch), str(new_version.patch))
+
+ STATUS = file_object_for('STATUS')
+ replace_in_place(STATUS, 'Status of ',
+ str(args.version), str(new_version))
+
+ svn_version_h.seek(0, os.SEEK_SET)
+ STATUS.seek(0, os.SEEK_SET)
+ subprocess.check_call(['svnmucc', '-r', str(HEAD),
+ '-m', 'Post-release housekeeping: '
+ 'bump the %s branch to %s.'
+ % (branch.split('/')[-1], str(new_version)),
+ 'put', svn_version_h.name, svn_version_h.url,
+ 'put', STATUS.name, STATUS.url,
+ ])
+ del svn_version_h
+ del STATUS
+
+def create_tag_and_bump_versions(args):
+ '''Create tag in the repository and, if not a prerelease version,
+ bump version numbers on the branch'''
+
+ create_tag_only(args)
+
if not args.version.is_prerelease():
- logging.info('Bumping revisions on the branch')
- def replace_in_place(fd, startofline, flat, spare):
- """In file object FD, replace FLAT with SPARE in the first line
- starting with STARTOFLINE."""
-
- fd.seek(0, os.SEEK_SET)
- lines = fd.readlines()
- for i, line in enumerate(lines):
- if line.startswith(startofline):
- lines[i] = line.replace(flat, spare)
- break
- else:
- raise RuntimeError('Definition of %r not found' % startofline)
-
- fd.seek(0, os.SEEK_SET)
- fd.writelines(lines)
- fd.truncate() # for current callers, new value is never shorter.
-
- new_version = Version('%d.%d.%d' %
- (args.version.major, args.version.minor,
- args.version.patch + 1))
-
- def file_object_for(relpath):
- fd = tempfile.NamedTemporaryFile()
- url = branch + '/' + relpath
- fd.url = url
- subprocess.check_call(['svn', 'cat', '%s@%d' % (url, args.revnum)],
- stdout=fd)
- return fd
-
- svn_version_h = file_object_for('subversion/include/svn_version.h')
- replace_in_place(svn_version_h, '#define SVN_VER_PATCH ',
- str(args.version.patch), str(new_version.patch))
-
- STATUS = file_object_for('STATUS')
- replace_in_place(STATUS, 'Status of ',
- str(args.version), str(new_version))
-
- svn_version_h.seek(0, os.SEEK_SET)
- STATUS.seek(0, os.SEEK_SET)
- subprocess.check_call(['svnmucc', '-r', str(args.revnum),
- '-m', 'Post-release housekeeping: '
- 'bump the %s branch to %s.'
- % (branch.split('/')[-1], str(new_version)),
- 'put', svn_version_h.name, svn_version_h.url,
- 'put', STATUS.name, STATUS.url,
- ])
- del svn_version_h
- del STATUS
+ bump_versions_on_branch(args)
#----------------------------------------------------------------------
# Clean dist
@@ -938,6 +972,7 @@ def write_news(args):
'version_base' : args.version.base,
'anchor': args.version.get_download_anchor(),
'is_recommended': ezt_bool(args.version.is_recommended()),
+ 'announcement_url': args.announcement_url,
}
if args.version.is_prerelease():
@@ -947,37 +982,50 @@ def write_news(args):
template = ezt.Template()
template.parse(get_tmplfile(template_filename).read())
- template.generate(sys.stdout, data)
+
+ # Insert the output into an existing file if requested, else print it
+ if args.edit_html_file:
+ tmp_name = args.edit_html_file + '.tmp'
+ with open(args.edit_html_file, 'r') as f, open(tmp_name, 'w') as g:
+ inserted = False
+ for line in f:
+ if not inserted and line.startswith('<div class="h3" id="news-'):
+ template.generate(g, data)
+ g.write('\n')
+ inserted = True
+ g.write(line)
+ os.remove(args.edit_html_file)
+ os.rename(tmp_name, args.edit_html_file)
+ else:
+ template.generate(sys.stdout, data)
-def get_sha1info(args):
- 'Return a list of sha1 info for the release'
+def get_fileinfo(args):
+ 'Return a list of file info (filenames) for the release tarballs'
target = get_target(args)
- sha1s = glob.glob(os.path.join(target, 'subversion*-%s*.sha1' % args.version))
+ files = glob.glob(os.path.join(target, 'subversion*-%s*.asc' % args.version))
+ files.sort()
class info(object):
pass
- sha1info = []
- for s in sha1s:
+ fileinfo = []
+ for f in files:
i = info()
- # strip ".sha1"
- i.filename = os.path.basename(s)[:-5]
- i.sha1 = open(s, 'r').read()
- sha1info.append(i)
+ # strip ".asc"
+ i.filename = os.path.basename(f)[:-4]
+ fileinfo.append(i)
- return sha1info
+ return fileinfo
def write_announcement(args):
'Write the release announcement.'
- sha1info = get_sha1info(args)
siginfo = "\n".join(get_siginfo(args, True)) + "\n"
data = { 'version' : str(args.version),
- 'sha1info' : sha1info,
'siginfo' : siginfo,
'major-minor' : args.version.branch,
'major-minor-patch' : args.version.base,
@@ -1007,10 +1055,10 @@ def write_announcement(args):
def write_downloads(args):
'Output the download section of the website.'
- sha1info = get_sha1info(args)
+ fileinfo = get_fileinfo(args)
data = { 'version' : str(args.version),
- 'fileinfo' : sha1info,
+ 'fileinfo' : fileinfo,
}
template = ezt.Template(compress_whitespace = False)
@@ -1174,6 +1222,173 @@ def get_keys(args):
fd.seek(0)
subprocess.check_call(['gpg', '--import'], stdin=fd)
+def add_to_changes_dict(changes_dict, audience, section, change, revision):
+ # Normalize arguments
+ if audience:
+ audience = audience.upper()
+ if section:
+ section = section.lower()
+ change = change.strip()
+
+ if not audience in changes_dict:
+ changes_dict[audience] = dict()
+ if not section in changes_dict[audience]:
+ changes_dict[audience][section] = dict()
+
+ changes = changes_dict[audience][section]
+ if change in changes:
+ changes[change].add(revision)
+ else:
+ changes[change] = set([revision])
+
+def print_section(changes_dict, audience, section, title, mandatory=False):
+ if audience in changes_dict:
+ audience_changes = changes_dict[audience]
+ if mandatory or (section in audience_changes):
+ if title:
+ print(' - %s:' % title)
+ if section in audience_changes:
+ print_changes(audience_changes[section])
+ elif mandatory:
+ print(' (none)')
+
+def print_changes(changes):
+ # Print in alphabetical order, so entries with the same prefix are together
+ for change in sorted(changes):
+ revs = changes[change]
+ rev_string = 'r' + str(min(revs)) + (' et al' if len(revs) > 1 else '')
+ print(' * %s (%s)' % (change, rev_string))
+
+def write_changelog(args):
+ 'Write changelog, parsed from commit messages'
+ # Changelog lines are lines with the following format:
+ # '['[audience[:section]]']' <message>
+ # or:
+ # <message> '['[audience[:section]]']'
+ # where audience = U (User-visible) or D (Developer-visible)
+ # section = general|major|minor|client|server|clientserver|other|api|bindings
+ # (section is optional and is treated case-insensitively)
+ # message = the actual text for CHANGES
+ #
+ # This means the "changes label" can be used as prefix or suffix, and it
+ # can also be left empty (which results in an uncategorized changes entry),
+ # if the committer isn't sure where the changelog entry belongs.
+ #
+ # Putting [skip], [ignore], [c:skip] or [c:ignore] somewhere in the
+ # log message means this commit must be ignored for Changelog processing
+ # (ignored even with the --include-unlabeled-summaries option).
+ #
+ # If there is no changes label anywhere in the commit message, and the
+ # --include-unlabeled-summaries option is used, we'll consider the summary
+ # line of the commit message (= first line except if it starts with a *)
+ # as an uncategorized changes entry, except if it contains "status",
+ # "changes", "post-release housekeeping" or "follow-up".
+ #
+ # Examples:
+ # [U:major] Better interactive conflict resolution for tree conflicts
+ # ra_serf: Adjustments for serf versions with HTTP/2 support [U:minor]
+ # [U] Fix 'svn diff URL@REV WC' wrongly looks up URL@HEAD (issue #4597)
+ # Fix bug with canonicalizing Window-specific drive-relative URL []
+ # New svn_ra_list() API function [D:api]
+ # [D:bindings] JavaHL: Allow access to constructors of a couple JavaHL classes
+
+ branch = secure_repos + '/' + args.branch
+ previous = secure_repos + '/' + args.previous
+ include_unlabeled = args.include_unlabeled
+
+ mergeinfo = subprocess.check_output(['svn', 'mergeinfo', '--show-revs',
+ 'eligible', '--log', branch, previous]).splitlines()
+
+ separator_pattern = re.compile('^-{72}$')
+ revline_pattern = re.compile('^r(\d+) \| [^\|]+ \| [^\|]+ \| \d+ lines?$')
+ changes_prefix_pattern = re.compile('^\[(U|D)?:?([^\]]+)?\](.+)$')
+ changes_suffix_pattern = re.compile('^(.+)\[(U|D)?:?([^\]]+)?\]$')
+
+ changes_dict = dict() # audience -> (section -> (change -> set(revision)))
+ revision = -1
+ got_firstline = False
+ unlabeled_summary = None
+ changes_ignore = False
+ audience = None
+ section = None
+ message = None
+
+ for line in mergeinfo:
+ if separator_pattern.match(line):
+ # New revision section. Reset variables.
+ # If there's an unlabeled summary from a previous section, and
+ # include_unlabeled is True, put it into uncategorized_changes.
+ if include_unlabeled and unlabeled_summary and not changes_ignore:
+ add_to_changes_dict(changes_dict, None, None,
+ unlabeled_summary, revision)
+ revision = -1
+ got_firstline = False
+ unlabeled_summary = None
+ changes_ignore = False
+ audience = None
+ section = None
+ message = None
+ continue
+
+ revmatch = revline_pattern.match(line)
+ if revmatch and (revision == -1):
+ # A revision line: get the revision number
+ revision = int(revmatch.group(1))
+ logging.debug('Changelog processing revision r%d' % revision)
+ continue
+
+ if line.strip() == '':
+ # Skip empty / whitespace lines
+ continue
+
+ if not got_firstline:
+ got_firstline = True
+ if (not re.search('status|changes|post-release housekeeping|follow-up|^\*',
+ line, re.IGNORECASE)
+ and not changes_prefix_pattern.match(line)
+ and not changes_suffix_pattern.match(line)):
+ unlabeled_summary = line
+
+ if re.search('\[(c:)?(skip|ignore)\]', line, re.IGNORECASE):
+ changes_ignore = True
+
+ prefix_match = changes_prefix_pattern.match(line)
+ if prefix_match:
+ audience = prefix_match.group(1)
+ section = prefix_match.group(2)
+ message = prefix_match.group(3)
+ add_to_changes_dict(changes_dict, audience, section, message, revision)
+
+ suffix_match = changes_suffix_pattern.match(line)
+ if suffix_match:
+ message = suffix_match.group(1)
+ audience = suffix_match.group(2)
+ section = suffix_match.group(3)
+ add_to_changes_dict(changes_dict, audience, section, message, revision)
+
+ # Output the sorted changelog entries
+ # 1) Uncategorized changes
+ print_section(changes_dict, None, None, None)
+ print
+ # 2) User-visible changes
+ print(' User-visible changes:')
+ print_section(changes_dict, 'U', None, None)
+ print_section(changes_dict, 'U', 'general', 'General')
+ print_section(changes_dict, 'U', 'major', 'Major new features')
+ print_section(changes_dict, 'U', 'minor', 'Minor new features and improvements')
+ print_section(changes_dict, 'U', 'client', 'Client-side bugfixes', mandatory=True)
+ print_section(changes_dict, 'U', 'server', 'Server-side bugfixes', mandatory=True)
+ print_section(changes_dict, 'U', 'clientserver', 'Client-side and server-side bugfixes')
+ print_section(changes_dict, 'U', 'other', 'Other tool improvements and bugfixes')
+ print_section(changes_dict, 'U', 'bindings', 'Bindings bugfixes', mandatory=True)
+ print
+ # 3) Developer-visible changes
+ print(' Developer-visible changes:')
+ print_section(changes_dict, 'D', None, None)
+ print_section(changes_dict, 'D', 'general', 'General', mandatory=True)
+ print_section(changes_dict, 'D', 'api', 'API changes', mandatory=True)
+ print_section(changes_dict, 'D', 'bindings', 'Bindings')
+
#----------------------------------------------------------------------
# Main entry point for argument parsing and handling
@@ -1231,6 +1446,10 @@ def main():
subparser.add_argument('--target',
help='''The full path to the directory containing
release artifacts.''')
+ subparser.add_argument('--userid',
+ help='''The (optional) USER-ID specifying the key to be
+ used for signing, such as '110B1C95' (Key-ID). If
+ omitted, uses the default key.''')
# Setup the parser for the post-candidates subcommand
subparser = subparsers.add_parser('post-candidates',
@@ -1247,8 +1466,26 @@ def main():
# Setup the parser for the create-tag subcommand
subparser = subparsers.add_parser('create-tag',
- help='''Create the release tag.''')
- subparser.set_defaults(func=create_tag)
+ help='''Create the release tag and, if not a prerelease
+ version, bump version numbers on the branch.''')
+ subparser.set_defaults(func=create_tag_and_bump_versions)
+ subparser.add_argument('version', type=Version,
+ help='''The release label, such as '1.7.0-alpha1'.''')
+ subparser.add_argument('revnum', type=lambda arg: int(arg.lstrip('r')),
+ help='''The revision number to base the release on.''')
+ subparser.add_argument('--branch',
+ help='''The branch to base the release on,
+ relative to ^/subversion/.''')
+ subparser.add_argument('--username',
+ help='''Username for ''' + secure_repos + '''.''')
+ subparser.add_argument('--target',
+ help='''The full path to the directory containing
+ release artifacts.''')
+
+ # Setup the parser for the bump-versions-on-branch subcommand
+ subparser = subparsers.add_parser('bump-versions-on-branch',
+ help='''Bump version numbers on branch.''')
+ subparser.set_defaults(func=bump_versions_on_branch)
subparser.add_argument('version', type=Version,
help='''The release label, such as '1.7.0-alpha1'.''')
subparser.add_argument('revnum', type=lambda arg: int(arg.lstrip('r')),
@@ -1288,6 +1525,11 @@ def main():
help='''Output to stdout template text for use in the news
section of the Subversion website.''')
subparser.set_defaults(func=write_news)
+ subparser.add_argument('--announcement-url',
+ help='''The URL to the archived announcement email.''')
+ subparser.add_argument('--edit-html-file',
+ help='''Insert the text into this file
+ news.html, index.html).''')
subparser.add_argument('version', type=Version,
help='''The release label, such as '1.7.0-alpha1'.''')
@@ -1338,6 +1580,29 @@ def main():
separate subcommand.''')
subparser.set_defaults(func=cleanup)
+ # write-changelog
+ subparser = subparsers.add_parser('write-changelog',
+ help='''Output to stdout changelog entries parsed from
+ commit messages, optionally labeled with a category
+ like [U:client], [D:api], [U], ...''')
+ subparser.set_defaults(func=write_changelog)
+ subparser.add_argument('branch',
+ help='''The branch (or tag or trunk), relative to
+ ^/subversion/, of which to generate the
+ changelog, when compared to "previous".''')
+ subparser.add_argument('previous',
+ help='''The "previous" branch or tag, relative to
+ ^/subversion/, to compare "branch" against.''')
+ subparser.add_argument('--include-unlabeled-summaries',
+ dest='include_unlabeled',
+ action='store_true', default=False,
+ help='''Include summary lines that do not have a changes
+ label, unless an explicit [c:skip] or [c:ignore]
+ is part of the commit message (except if the
+ summary line contains 'STATUS', 'CHANGES',
+ 'Post-release housekeeping', 'Follow-up' or starts
+ with '*').''')
+
# Parse the arguments
args = parser.parse_args()
diff --git a/tools/dist/templates/download.ezt b/tools/dist/templates/download.ezt
index 4c6fda8..19dac3d 100644
--- a/tools/dist/templates/download.ezt
+++ b/tools/dist/templates/download.ezt
@@ -2,16 +2,14 @@
<table class="centered">
<tr>
<th>File</th>
- <th>Checksum (SHA1)</th>
<th>Checksum (SHA512)</th>
<th>Signatures</th>
</tr>
[for fileinfo]<tr>
<td><a href="[[]preferred]subversion/[fileinfo.filename]">[fileinfo.filename]</a></td>
- <td class="checksum">[fileinfo.sha1]</td>
<!-- The sha512 line does not have a class="checksum" since the link needn't
be rendered in monospace. -->
- <td>[<a href="http://www.apache.org/dist/subversion/[fileinfo.filename].sha512">SHA-512</a>]</td>
- <td>[<a href="http://www.apache.org/dist/subversion/[fileinfo.filename].asc">PGP</a>]</td>
+ <td>[<a href="https://www.apache.org/dist/subversion/[fileinfo.filename].sha512">SHA-512</a>]</td>
+ <td>[<a href="https://www.apache.org/dist/subversion/[fileinfo.filename].asc">PGP</a>]</td>
</tr>[end]
</table>
diff --git a/tools/dist/templates/rc-news.ezt b/tools/dist/templates/rc-news.ezt
index a645ffa..04f094d 100644
--- a/tools/dist/templates/rc-news.ezt
+++ b/tools/dist/templates/rc-news.ezt
@@ -8,10 +8,10 @@
release is not intended for production use, but is provided as a milestone
to encourage wider testing and feedback from intrepid users and maintainers.
Please see the
- <a href="">release
+ <a href="[announcement_url]">release
announcement</a> for more information about this release, and the
<a href="/docs/release-notes/[major-minor].html">release notes</a> and
- <a href="http://svn.apache.org/repos/asf/subversion/tags/[version]/CHANGES">
+ <a href="https://svn.apache.org/repos/asf/subversion/tags/[version]/CHANGES">
change log</a> for information about what will eventually be
in the [version_base] release.</p>
diff --git a/tools/dist/templates/rc-release-ann.ezt b/tools/dist/templates/rc-release-ann.ezt
index ca5f4d0..6c089bd 100644
--- a/tools/dist/templates/rc-release-ann.ezt
+++ b/tools/dist/templates/rc-release-ann.ezt
@@ -5,12 +5,8 @@ Subject: [[]ANNOUNCE] Apache Subversion [version] released
I'm happy to announce the release of Apache Subversion [version].
Please choose the mirror closest to you by visiting:
- http://subversion.apache.org/download.cgi#[anchor]
+ https://subversion.apache.org/download.cgi#[anchor]
-The SHA1 checksums are:
-
-[for sha1info] [sha1info.sha1] [sha1info.filename]
-[end]
SHA-512 checksums are available at:
https://www.apache.org/dist/subversion/subversion-[version].tar.bz2.sha512
@@ -19,9 +15,9 @@ SHA-512 checksums are available at:
PGP Signatures are available at:
- http://www.apache.org/dist/subversion/subversion-[version].tar.bz2.asc
- http://www.apache.org/dist/subversion/subversion-[version].tar.gz.asc
- http://www.apache.org/dist/subversion/subversion-[version].zip.asc
+ https://www.apache.org/dist/subversion/subversion-[version].tar.bz2.asc
+ https://www.apache.org/dist/subversion/subversion-[version].tar.gz.asc
+ https://www.apache.org/dist/subversion/subversion-[version].zip.asc
For this release, the following people have provided PGP signatures:
@@ -57,13 +53,18 @@ end users please.
Release notes for the [major-minor].x release series may be found at:
- http://subversion.apache.org/docs/release-notes/[major-minor].html
+ https://subversion.apache.org/docs/release-notes/[major-minor].html
You can find the list of changes between [version] and earlier versions at:
- http://svn.apache.org/repos/asf/subversion/tags/[version]/CHANGES
+ https://svn.apache.org/repos/asf/subversion/tags/[version]/CHANGES
Questions, comments, and bug reports to users@subversion.apache.org.
Thanks,
- The Subversion Team
+
+--
+To unsubscribe, please see:
+
+ https://subversion.apache.org/mailing-lists.html#unsubscribing
diff --git a/tools/dist/templates/stable-news.ezt b/tools/dist/templates/stable-news.ezt
index 8fcaae9..4cd82ac 100644
--- a/tools/dist/templates/stable-news.ezt
+++ b/tools/dist/templates/stable-news.ezt
@@ -10,10 +10,10 @@
[else] This is the most complete release of the [major-minor].x line to date,
and we encourage all users to upgrade as soon as reasonable.
[end] Please see the
- <a href=""
+ <a href="[announcement_url]"
>release announcement</a> and the
- <a href="http://svn.apache.org/repos/asf/subversion/tags/[version]/CHANGES"
- >change log</a> for more information about this release.</p>
+ <a href="/docs/release-notes/[major-minor]"
+ >release notes</a> for more information about this release.</p>
<p>To get this release from the nearest mirror, please visit our
<a href="/download.cgi#[anchor]">download page</a>.</p>
diff --git a/tools/dist/templates/stable-release-ann.ezt b/tools/dist/templates/stable-release-ann.ezt
index 2aec041..d334de4 100644
--- a/tools/dist/templates/stable-release-ann.ezt
+++ b/tools/dist/templates/stable-release-ann.ezt
@@ -7,7 +7,7 @@ To: announce@subversion.apache.org, users@subversion.apache.org, dev@subversion.
I'm happy to announce the release of Apache Subversion [version].
Please choose the mirror closest to you by visiting:
- http://subversion.apache.org/download.cgi#[anchor]
+ https://subversion.apache.org/download.cgi#[anchor]
[if-any dot-zero]
This is a stable feature release of the Apache Subversion open source
version control system.
@@ -18,10 +18,6 @@ open source version control system.
This is a stable bugfix release of the Apache Subversion open source
version control system.
[end][end]
-The SHA1 checksums are:
-
-[for sha1info] [sha1info.sha1] [sha1info.filename]
-[end]
SHA-512 checksums are available at:
https://www.apache.org/dist/subversion/subversion-[version].tar.bz2.sha512
@@ -30,22 +26,27 @@ SHA-512 checksums are available at:
PGP Signatures are available at:
- http://www.apache.org/dist/subversion/subversion-[version].tar.bz2.asc
- http://www.apache.org/dist/subversion/subversion-[version].tar.gz.asc
- http://www.apache.org/dist/subversion/subversion-[version].zip.asc
+ https://www.apache.org/dist/subversion/subversion-[version].tar.bz2.asc
+ https://www.apache.org/dist/subversion/subversion-[version].tar.gz.asc
+ https://www.apache.org/dist/subversion/subversion-[version].zip.asc
For this release, the following people have provided PGP signatures:
[siginfo]
Release notes for the [major-minor].x release series may be found at:
- http://subversion.apache.org/docs/release-notes/[major-minor].html
+ https://subversion.apache.org/docs/release-notes/[major-minor].html
You can find the list of changes between [version] and earlier versions at:
- http://svn.apache.org/repos/asf/subversion/tags/[version]/CHANGES
+ https://svn.apache.org/repos/asf/subversion/tags/[version]/CHANGES
Questions, comments, and bug reports to users@subversion.apache.org.
Thanks,
- The Subversion Team
+
+--
+To unsubscribe, please see:
+
+ https://subversion.apache.org/mailing-lists.html#unsubscribing
diff --git a/tools/examples/svnlook.py b/tools/examples/svnlook.py
index 5865e22..dd797a0 100755
--- a/tools/examples/svnlook.py
+++ b/tools/examples/svnlook.py
@@ -21,7 +21,7 @@
# under the License.
######################################################################
#
-# $HeadURL: https://svn.apache.org/repos/asf/subversion/branches/1.10.x/tools/examples/svnlook.py $
+# $HeadURL: https://svn.apache.org/repos/asf/subversion/branches/1.11.x/tools/examples/svnlook.py $
# $LastChangedDate: 2013-11-14 11:11:07 +0000 (Thu, 14 Nov 2013) $
# $LastChangedRevision: 1541878 $
diff --git a/tools/hook-scripts/commit-access-control.pl.in b/tools/hook-scripts/commit-access-control.pl.in
index 5710276..2a4c266 100755
--- a/tools/hook-scripts/commit-access-control.pl.in
+++ b/tools/hook-scripts/commit-access-control.pl.in
@@ -6,7 +6,7 @@
# commit in repository REPOS using the permissions listed in the
# configuration file CONF_FILE.
#
-# $HeadURL: https://svn.apache.org/repos/asf/subversion/branches/1.10.x/tools/hook-scripts/commit-access-control.pl.in $
+# $HeadURL: https://svn.apache.org/repos/asf/subversion/branches/1.11.x/tools/hook-scripts/commit-access-control.pl.in $
# $LastChangedDate: 2009-11-16 19:07:17 +0000 (Mon, 16 Nov 2009) $
# $LastChangedBy: hwright $
# $LastChangedRevision: 880911 $
diff --git a/tools/hook-scripts/mailer/mailer.py b/tools/hook-scripts/mailer/mailer.py
index c8d658c..9698298 100755
--- a/tools/hook-scripts/mailer/mailer.py
+++ b/tools/hook-scripts/mailer/mailer.py
@@ -22,10 +22,10 @@
#
# mailer.py: send email describing a commit
#
-# $HeadURL: https://svn.apache.org/repos/asf/subversion/branches/1.10.x/tools/hook-scripts/mailer/mailer.py $
-# $LastChangedDate: 2017-01-07 19:35:49 +0000 (Sat, 07 Jan 2017) $
-# $LastChangedBy: julianfoad $
-# $LastChangedRevision: 1777846 $
+# $HeadURL: https://svn.apache.org/repos/asf/subversion/branches/1.11.x/tools/hook-scripts/mailer/mailer.py $
+# $LastChangedDate: 2018-02-18 19:06:38 +0000 (Sun, 18 Feb 2018) $
+# $LastChangedBy: danielsh $
+# $LastChangedRevision: 1824690 $
#
# USAGE: mailer.py commit REPOS REVISION [CONFIG-FILE]
# mailer.py propchange REPOS REVISION AUTHOR REVPROPNAME [CONFIG-FILE]
@@ -71,16 +71,10 @@ _MIN_SVN_VERSION = [1, 5, 0]
# Import the Subversion Python bindings, making sure they meet our
# minimum version requirements.
-try:
- import svn.fs
- import svn.delta
- import svn.repos
- import svn.core
-except ImportError:
- sys.stderr.write(
- "You need version %s or better of the Subversion Python bindings.\n" \
- % ".".join([str(x) for x in _MIN_SVN_VERSION]))
- sys.exit(1)
+import svn.fs
+import svn.delta
+import svn.repos
+import svn.core
if _MIN_SVN_VERSION > [svn.core.SVN_VER_MAJOR,
svn.core.SVN_VER_MINOR,
svn.core.SVN_VER_PATCH]:
diff --git a/tools/hook-scripts/svn2feed.py b/tools/hook-scripts/svn2feed.py
index c3abe8c..bbe9cd1 100755
--- a/tools/hook-scripts/svn2feed.py
+++ b/tools/hook-scripts/svn2feed.py
@@ -70,7 +70,7 @@ Options:
# is actually set only on initial feed creation, and thereafter simply
# re-used from the pickle each time.
-# $HeadURL: https://svn.apache.org/repos/asf/subversion/branches/1.10.x/tools/hook-scripts/svn2feed.py $
+# $HeadURL: https://svn.apache.org/repos/asf/subversion/branches/1.11.x/tools/hook-scripts/svn2feed.py $
# $LastChangedDate: 2016-04-30 08:16:53 +0000 (Sat, 30 Apr 2016) $
# $LastChangedBy: stefan2 $
# $LastChangedRevision: 1741723 $
diff --git a/tools/hook-scripts/svnperms.py b/tools/hook-scripts/svnperms.py
index 6f059fa..6ee91e2 100755
--- a/tools/hook-scripts/svnperms.py
+++ b/tools/hook-scripts/svnperms.py
@@ -21,7 +21,7 @@
#
#
-# $HeadURL: https://svn.apache.org/repos/asf/subversion/branches/1.10.x/tools/hook-scripts/svnperms.py $
+# $HeadURL: https://svn.apache.org/repos/asf/subversion/branches/1.11.x/tools/hook-scripts/svnperms.py $
# $LastChangedDate: 2016-04-30 08:16:53 +0000 (Sat, 30 Apr 2016) $
# $LastChangedBy: stefan2 $
# $LastChangedRevision: 1741723 $
diff --git a/tools/server-side/fsfs-reshard.py b/tools/server-side/fsfs-reshard.py
index d9937ad..25e19db 100755
--- a/tools/server-side/fsfs-reshard.py
+++ b/tools/server-side/fsfs-reshard.py
@@ -46,7 +46,7 @@
# under the License.
# ====================================================================
#
-# $HeadURL: https://svn.apache.org/repos/asf/subversion/branches/1.10.x/tools/server-side/fsfs-reshard.py $
+# $HeadURL: https://svn.apache.org/repos/asf/subversion/branches/1.11.x/tools/server-side/fsfs-reshard.py $
# $LastChangedDate: 2016-04-30 08:16:53 +0000 (Sat, 30 Apr 2016) $
# $LastChangedBy: stefan2 $
# $LastChangedRevision: 1741723 $
diff --git a/tools/server-side/svnauthz.c b/tools/server-side/svnauthz.c
index fc6cd89..0744d07 100644
--- a/tools/server-side/svnauthz.c
+++ b/tools/server-side/svnauthz.c
@@ -110,29 +110,34 @@ static svn_opt_subcommand_t
/* Array of available subcommands.
* The entire list must be terminated with an entry of nulls.
*/
-static const svn_opt_subcommand_desc2_t cmd_table[] =
+static const svn_opt_subcommand_desc3_t cmd_table[] =
{
- {"help", subcommand_help, {"?", "h"},
- ("usage: svnauthz help [SUBCOMMAND...]\n\n"
- "Describe the usage of this program or its subcommands.\n"),
+ {"help", subcommand_help, {"?", "h"}, {(
+ "usage: svnauthz help [SUBCOMMAND...]\n"
+ "\n"
+ "Describe the usage of this program or its subcommands.\n"
+ )},
{0} },
- {"validate", subcommand_validate, {0} /* no aliases */,
- ("Checks the syntax of an authz file.\n"
+ {"validate", subcommand_validate, {0} /* no aliases */, {(
+ "Checks the syntax of an authz file.\n"
"usage: 1. svnauthz validate TARGET\n"
- " 2. svnauthz validate --transaction TXN REPOS_PATH FILE_PATH\n\n"
+ " 2. svnauthz validate --transaction TXN REPOS_PATH FILE_PATH\n"
+ "\n"
" 1. Loads and validates the syntax of the authz file at TARGET.\n"
" TARGET can be a path to a file or an absolute file:// URL to an authz\n"
- " file in a repository, but cannot be a repository relative URL (^/).\n\n"
+ " file in a repository, but cannot be a repository relative URL (^/).\n"
+ "\n"
" 2. Loads and validates the syntax of the authz file at FILE_PATH in the\n"
- " transaction TXN in the repository at REPOS_PATH.\n\n"
+ " transaction TXN in the repository at REPOS_PATH.\n"
+ "\n"
"Returns:\n"
" 0 when syntax is OK.\n"
" 1 when syntax is invalid.\n"
" 2 operational error\n"
- ),
+ )},
{'t'} },
- {"accessof", subcommand_accessof, {0} /* no aliases */,
- ("Print or test the permissions set by an authz file.\n"
+ {"accessof", subcommand_accessof, {0} /* no aliases */, {(
+ "Print or test the permissions set by an authz file.\n"
"usage: 1. svnauthz accessof TARGET\n"
" 2. svnauthz accessof -t TXN REPOS_PATH FILE_PATH\n"
"\n"
@@ -159,10 +164,10 @@ static const svn_opt_subcommand_desc2_t cmd_table[] =
" 1 when syntax is invalid.\n"
" 2 operational error\n"
" 3 when '--is' argument doesn't match\n"
- ),
+ )},
{'t', svnauthz__username, svnauthz__path, svnauthz__repos, svnauthz__is,
svnauthz__groups_file, 'R'} },
- { NULL, NULL, {0}, NULL, {0} }
+ { NULL, NULL, {0}, {NULL}, {0} }
};
static svn_error_t *
@@ -171,11 +176,14 @@ subcommand_help(apr_getopt_t *os, void *baton, apr_pool_t *pool)
struct svnauthz_opt_state *opt_state = baton;
const char *header =
("general usage: svnauthz SUBCOMMAND TARGET [ARGS & OPTIONS ...]\n"
- " " SVNAUTHZ_COMPAT_NAME " TARGET\n\n"
+ " " SVNAUTHZ_COMPAT_NAME " TARGET\n"
+ "\n"
"If the command name starts with '" SVNAUTHZ_COMPAT_NAME "', runs in\n"
- "pre-1.8 compatibility mode: run the 'validate' subcommand on TARGET.\n\n"
+ "pre-1.8 compatibility mode: run the 'validate' subcommand on TARGET.\n"
+ "\n"
"Type 'svnauthz help <subcommand>' for help on a specific subcommand.\n"
- "Type 'svnauthz --version' to see the program version.\n\n"
+ "Type 'svnauthz --version' to see the program version.\n"
+ "\n"
"Available subcommands:\n");
const char *fs_desc_start
@@ -186,7 +194,7 @@ subcommand_help(apr_getopt_t *os, void *baton, apr_pool_t *pool)
version_footer = svn_stringbuf_create(fs_desc_start, pool);
SVN_ERR(svn_fs_print_modules(version_footer, pool));
- SVN_ERR(svn_opt_print_help4(os, "svnauthz",
+ SVN_ERR(svn_opt_print_help5(os, "svnauthz",
opt_state ? opt_state->version : FALSE,
FALSE, /* quiet */
FALSE, /* verbose */
@@ -459,7 +467,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
{
svn_error_t *err;
- const svn_opt_subcommand_desc2_t *subcommand = NULL;
+ const svn_opt_subcommand_desc3_t *subcommand = NULL;
struct svnauthz_opt_state opt_state = { 0 };
apr_getopt_t *os;
apr_array_header_t *received_opts;
@@ -545,9 +553,9 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
{
/* Pre 1.8 compatibility mode. */
if (argc == 1) /* No path argument */
- subcommand = svn_opt_get_canonical_subcommand2(cmd_table, "help");
+ subcommand = svn_opt_get_canonical_subcommand3(cmd_table, "help");
else
- subcommand = svn_opt_get_canonical_subcommand2(cmd_table, "validate");
+ subcommand = svn_opt_get_canonical_subcommand3(cmd_table, "validate");
}
/* If the user asked for help, then the rest of the arguments are
@@ -555,7 +563,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
just typos/mistakes. Whatever the case, the subcommand to
actually run is subcommand_help(). */
if (opt_state.help)
- subcommand = svn_opt_get_canonical_subcommand2(cmd_table, "help");
+ subcommand = svn_opt_get_canonical_subcommand3(cmd_table, "help");
if (subcommand == NULL)
{
@@ -564,8 +572,8 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
if (opt_state.version)
{
/* Use the "help" subcommand to handle the "--version" option. */
- static const svn_opt_subcommand_desc2_t pseudo_cmd =
- { "--version", subcommand_help, {0}, "",
+ static const svn_opt_subcommand_desc3_t pseudo_cmd =
+ { "--version", subcommand_help, {0}, {""},
{svnauthz__version /* must accept its own option */ } };
subcommand = &pseudo_cmd;
@@ -585,7 +593,7 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
SVN_ERR(svn_utf_cstring_to_utf8(&first_arg, os->argv[os->ind++],
pool));
- subcommand = svn_opt_get_canonical_subcommand2(cmd_table, first_arg);
+ subcommand = svn_opt_get_canonical_subcommand3(cmd_table, first_arg);
if (subcommand == NULL)
{
os->ind++;
@@ -658,11 +666,11 @@ sub_main(int *exit_code, int argc, const char *argv[], apr_pool_t *pool)
if (opt_id == 'h' || opt_id == '?')
continue;
- if (! svn_opt_subcommand_takes_option3(subcommand, opt_id, NULL))
+ if (! svn_opt_subcommand_takes_option4(subcommand, opt_id, NULL))
{
const char *optstr;
const apr_getopt_option_t *badopt =
- svn_opt_get_option_from_code2(opt_id, options_table, subcommand,
+ svn_opt_get_option_from_code3(opt_id, options_table, subcommand,
pool);
svn_opt_format_option(&optstr, badopt, FALSE, pool);
if (subcommand->name[0] == '-')
diff --git a/tools/server-side/svnpubsub/svnwcsub.py b/tools/server-side/svnpubsub/svnwcsub.py
index 1a65b37..ca47293 100755
--- a/tools/server-side/svnpubsub/svnwcsub.py
+++ b/tools/server-side/svnpubsub/svnwcsub.py
@@ -32,7 +32,7 @@
# TODO:
# - bulk update at startup time to avoid backlog warnings
-# - fold BDEC into Daemon
+# - fold BigDoEverythingClasss ("BDEC") into Daemon
# - fold WorkingCopy._get_match() into __init__
# - remove wc_ready(). assume all WorkingCopy instances are usable.
# place the instances into .watch at creation. the .update_applies()
diff --git a/win-tests.py b/win-tests.py
index 5aaa37c..c8f97ae 100644
--- a/win-tests.py
+++ b/win-tests.py
@@ -24,7 +24,7 @@ Driver for running the tests on Windows.
For a list of options, run this script with the --help option.
"""
-# $HeadURL: https://svn.apache.org/repos/asf/subversion/branches/1.10.x/win-tests.py $
+# $HeadURL: https://svn.apache.org/repos/asf/subversion/branches/1.11.x/win-tests.py $
# $LastChangedRevision: 1813897 $
import os, sys, subprocess