This page lists all Python scripts (and other files that use Python) throughout Subversion, categorized according to their Python 3 compatibility status.

Subversion community members and developers are invited to check scripts for Python 3 compatibility. Of course, we welcome patches to fix scripts that do not yet support Python 3. Please discuss your findings and submit patches for review on our dev mailing list.

Python 3 Supported

build/getversion.py
build/run_tests.py
build/transform_sql.py
build/generator/gen_win_dependencies.py
build/generator/gen_win.py
build/generator/gen_vcnet_vcproj.py
build/generator/swig/external_runtime.py
build/generator/swig/__init__.py
build/generator/swig/header_wrappers.py
build/generator/swig/checkout_swig_header.py
build/generator/util/__init__.py
build/generator/__init__.py
build/generator/extractor.py
build/generator/gen_make.py
build/generator/gen_base.py
build/generator/ezt.py
build/transform_config_hw.py
build/get-py-info.py
build/win32/make_dist.py
subversion/tests/cmdline/mod_authz_svn_tests.py
subversion/tests/cmdline/history_tests.py
subversion/tests/cmdline/dav_tests.py
subversion/tests/cmdline/input_validation_tests.py
subversion/tests/cmdline/log_tests.py
subversion/tests/cmdline/merge_automatic_tests.py
subversion/tests/cmdline/merge_reintegrate_tests.py
subversion/tests/cmdline/lock_tests.py
subversion/tests/cmdline/merge_tests.py
subversion/tests/cmdline/copy_tests.py
subversion/tests/cmdline/svnversion_tests.py
subversion/tests/cmdline/svneditor.py (fails to run if no "python" in $PATH , as per PEP394)
subversion/tests/cmdline/basic_tests.py
subversion/tests/cmdline/svnlook_tests.py
subversion/tests/cmdline/prop_tests.py
subversion/tests/cmdline/merge_authz_tests.py
subversion/tests/cmdline/resolve_tests.py
subversion/tests/cmdline/revert_tests.py
subversion/tests/cmdline/svntest/tree.py
subversion/tests/cmdline/svntest/wc.py
subversion/tests/cmdline/svntest/testcase.py
subversion/tests/cmdline/svntest/actions.py
subversion/tests/cmdline/svntest/__init__.py
subversion/tests/cmdline/svntest/mergetrees.py
subversion/tests/cmdline/svntest/factory.py
subversion/tests/cmdline/svntest/deeptrees.py
subversion/tests/cmdline/svntest/sandbox.py
subversion/tests/cmdline/svntest/verify.py
subversion/tests/cmdline/svntest/objects.py
subversion/tests/cmdline/svntest/main.py
subversion/tests/cmdline/svntest/err.py
subversion/tests/cmdline/svnauthz_tests.py
subversion/tests/cmdline/schedule_tests.py
subversion/tests/cmdline/entries_tests.py
subversion/tests/cmdline/patch_tests.py
subversion/tests/cmdline/export_tests.py
subversion/tests/cmdline/iprop_tests.py
subversion/tests/cmdline/commit_tests.py
subversion/tests/cmdline/authz_tests.py
subversion/tests/cmdline/legacy/utf8_tests.py
subversion/tests/cmdline/move_tests.py
subversion/tests/cmdline/changelist_tests.py
subversion/tests/cmdline/mergeinfo_tests.py
subversion/tests/cmdline/redirect_tests.py
subversion/tests/cmdline/getopt_tests.py
subversion/tests/cmdline/shelf_tests.py
subversion/tests/cmdline/special_tests.py
subversion/tests/cmdline/svnsync_authz_tests.py
subversion/tests/cmdline/depth_tests.py
subversion/tests/cmdline/trans_tests.py
subversion/tests/cmdline/autoprop_tests.py
subversion/tests/cmdline/import_tests.py
subversion/tests/cmdline/merge_tree_conflict_tests.py
subversion/tests/cmdline/stat_tests.py
subversion/tests/cmdline/pegrev_parse_tests.py
subversion/tests/cmdline/svnrdump_tests.py
subversion/tests/cmdline/info_tests.py
subversion/tests/cmdline/switch_tests.py
subversion/tests/cmdline/externals_tests.py
subversion/tests/cmdline/svnadmin_tests.py
subversion/tests/cmdline/wc_tests.py
subversion/tests/cmdline/cat_tests.py
subversion/tests/cmdline/update_tests.py
subversion/tests/cmdline/mod_dav_svn_tests.py
subversion/tests/cmdline/upgrade_tests.py
subversion/tests/cmdline/iprop_authz_tests.py
subversion/tests/cmdline/blame_tests.py
subversion/tests/cmdline/svnmover_tests.py
subversion/tests/cmdline/svndumpfilter_tests.py
subversion/tests/cmdline/svnmucc_tests.py
subversion/tests/cmdline/svnfsfs_tests.py
subversion/tests/cmdline/svnsync_tests.py
subversion/tests/cmdline/tree_conflict_tests.py
subversion/tests/cmdline/checkout_tests.py
subversion/tests/cmdline/relocate_tests.py
subversion/tests/cmdline/diff_tests.py
subversion/bindings/swig/python/svn/wc.py
subversion/bindings/swig/python/svn/client.py
subversion/bindings/swig/python/svn/__init__.py
subversion/bindings/swig/python/svn/core.py
subversion/bindings/swig/python/svn/repos.py
subversion/bindings/swig/python/svn/fs.py
subversion/bindings/swig/python/svn/delta.py
subversion/bindings/swig/python/svn/diff.py
subversion/bindings/swig/python/svn/ra.py
subversion/bindings/swig/python/tests/auth.py
subversion/bindings/swig/python/tests/wc.py
subversion/bindings/swig/python/tests/checksum.py
subversion/bindings/swig/python/tests/setup_path.py
subversion/bindings/swig/python/tests/client.py
subversion/bindings/swig/python/tests/trac/__init__.py
subversion/bindings/swig/python/tests/trac/test.py
subversion/bindings/swig/python/tests/trac/versioncontrol/tests/__init__.py
subversion/bindings/swig/python/tests/trac/versioncontrol/tests/svn_fs.py
subversion/bindings/swig/python/tests/trac/versioncontrol/__init__.py
subversion/bindings/swig/python/tests/trac/versioncontrol/main.py
subversion/bindings/swig/python/tests/trac/versioncontrol/svn_fs.py
subversion/bindings/swig/python/tests/core.py
subversion/bindings/swig/python/tests/mergeinfo.py
subversion/bindings/swig/python/tests/utils.py
subversion/bindings/swig/python/tests/fs.py
subversion/bindings/swig/python/tests/typemap.py
subversion/bindings/swig/python/tests/delta.py
subversion/bindings/swig/python/tests/run_all.py
subversion/bindings/swig/python/tests/repository.py
subversion/bindings/swig/python/tests/pool.py
subversion/bindings/swig/python/tests/ra.py
subversion/bindings/swig/python/__init__.py
subversion/bindings/swig/include/proxy.py
gen-make.py
Makefile.in
build/ac-macros/swig.m4
tools/backup/hot-backup.py.in
tools/dist/backport_tests_py.py
tools/dist/backport_tests.py
tools/dist/merge-approved-backports.py
tools/dist/backport/__init__.py
tools/dist/backport/status.py
tools/dist/backport/merger.py
tools/dist/backport_tests_pl.py
tools/dist/detect-conflicting-backports.py
tools/dev/which-error.py
tools/dev/wc-format.py
tools/examples/check-modified.py
tools/hook-scripts/mailer/mailer.py
tools/hook-scripts/mailer/tests/mailer-tweak.py
tools/hook-scripts/svnperms.py
tools/hook-scripts/validate-files.py
tools/po/l10n-report.py
subversion/tests/cmdline/davautocheck.sh
subversion/tests/cmdline/svnserveautocheck.sh
tools/dev/contribulyze.py
tools/client-side/svn-vendor.py
tools/server-side/svn-backup-dumps.py
tools/dev/gdb-py/svndbg/__init__.py
tools/dist/security/__init__.py
contrib/hook-scripts/case-insensitive.py

Python 3 Not Supported Yet

tools/server-side/fsfs-reshard.py
tools/server-side/svnpredumpfilter.py - AttributeError: module 'string' has no attribute 'strip'
tools/server-side/svn_server_log_parse.py
tools/server-side/test_svn_server_log_parse.py
contrib/client-side/svn_apply_autoprops.py - class file
contrib/client-side/svnmerge/svnmerge-migrate-test.sh
tools/dev/merge-graph.py - the 'print' on the last line won't have the intended effect
tools/examples/blame.py - str/bytes issues
tools/examples/dumpprops.py - str/bytes issues
tools/examples/getfile.py - str/bytes issues
tools/examples/walk-config-auth.py - NameError: name 'raw_input' is not defined
contrib/hook-scripts/pre-commit-check.py - AttributeError: 'dict_keys' object has no attribute 'sort' on line 83. (Also, downstream users would need to adapt their code, e.g., the type of keys and values of 'props' changed from str (py2) to bytes (py3).)
tools/dev/trails.py - uses `x/y` as index to a list. Also, only useful for debugging BDB which is deprecated.

Not Checked For Python 3 Yet

tools/hook-scripts/log-police.py
tools/hook-scripts/persist-ephemeral-txnprops.py
tools/hook-scripts/validate-extensions.py
tools/hook-scripts/verify-po.py
tools/hook-scripts/svn2feed.py
tools/client-side/svn-viewspec.py
tools/client-side/mergeinfo-sanitizer.py
tools/client-side/svnviewspec_test.py
tools/dist/changes-to-html.py
tools/dist/release.py
tools/dist/security/_gnupg.py
tools/dist/security/mailinglist.py
tools/dist/security/parser.py
tools/dist/security/adviser.py
tools/dist/security/mailer.py
tools/dist/advisory.py
tools/dist/checksums.py
tools/examples/revplist.py
tools/examples/geturl.py
tools/examples/putfile.py
tools/examples/svnlook.py
tools/examples/svnshell.py
tools/examples/get-location-segments.py
tools/dev/normalize-dump.py
tools/dev/check-license.py
tools/dev/iz/find-fix.py
tools/dev/iz/ff2csv.py
tools/dev/scramble-tree.py
tools/dev/gen_junit_report.py
tools/dev/sbox-ospath.py
tools/dev/wc-ng/count-progress.py
tools/dev/wc-ng/graph-data.py
tools/dev/mergegraph/save_as_sh.py
tools/dev/mergegraph/mergegraph.py
tools/dev/lock-check.py
tools/dev/random-commits.py
tools/dev/analyze-svnlogs.py
tools/dev/mklog.py
tools/dev/find-control-statements.py
tools/dev/benchmarks/suite1/benchmark.py
tools/dev/benchmarks/RepoPerf/copy_repo.py
tools/dev/benchmarks/RepoPerf/win_repo_bench.py
tools/dev/mlpatch.py
tools/dev/verify-history.py
tools/dev/gdb-py/svndbg/printers.py
tools/dev/po-merge.py
tools/bdb/erase-all-text-data.py
tools/bdb/svn-bdb-view.py
tools/bdb/whatis-rep.py
tools/bdb/svnfs.py
tools/bdb/skel.py
tools/server-side/svnpubsub/svnwcsub.py
tools/server-side/svnpubsub/revprop-change-hook.py
tools/server-side/svnpubsub/daemonize.py
tools/server-side/svnpubsub/svnpubsub/server.py
tools/server-side/svnpubsub/svnpubsub/util.py
tools/server-side/svnpubsub/svnpubsub/client.py
tools/server-side/svnpubsub/svnpubsub/__init__.py
tools/server-side/svnpubsub/svntweet.py
tools/server-side/svnpubsub/watcher.py
tools/server-side/svnpubsub/commit-hook.py
tools/server-side/svnpubsub/irkerbridge.py
tools/server-side/svnpubsub/testserver.py
win-tests.py
contrib/hook-scripts/pre-lock-require-needs-lock.py
contrib/hook-scripts/remove-zombie-locks.py
contrib/hook-scripts/commit-block-joke.py
contrib/hook-scripts/hook_toolbox.py
contrib/client-side/svn-hgmerge.py
contrib/client-side/incremental-update.py
contrib/client-side/svn_export_empty_files.py
contrib/client-side/svn-merge-vendor.py
contrib/client-side/svnmerge/svnmerge-migrate-history.py
contrib/client-side/svnmerge/svnmerge_test.py
contrib/client-side/svnmerge/svnmerge.py
contrib/client-side/svnmerge/svnmerge-migrate-history-remotely.py
contrib/server-side/authz_svn_group.py
contrib/server-side/add-needs-lock.py
contrib/server-side/fsfsfixer/fixer/fix-rev.py
contrib/server-side/fsfsfixer/fixer/__init__.py
contrib/server-side/fsfsfixer/fixer/find_good_id.py
contrib/server-side/fsfsfixer/fixer/fixer_config.py
contrib/server-side/svn-tweak-author.py
contrib/server-side/fsfsverify.py
notes/move-tracking/path_pairs_to_eid_map.py
notes/directory-index/dirindex.py
notes/directory-index/logimport.py
.ycm_extra_conf.py
subversion/tests/manual/tree-conflicts-add-vs-add.py
tools/server-side/svnpubsub/svnpubsub.tac
tools/examples/SvnCLBrowse
contrib/hook-scripts/enforcer/enforcer
contrib/server-side/load_repo_with_mergesensitive_copy.sh
tools/hook-scripts/mailer/tests/mailer-t1.sh
tools/dev/benchmarks/large_dirs/create_bigdir.sh

https://svn.apache.org/repos/asf/subversion/site/tools/generate-message-id-map.py

Obsolete

tools/hook-scripts/control-chars.py - obsolete. This check is now done in C, in the libsvn_repos commit editor (add_file_or_directory() calls svn_path_check_valid()). However, the #! line declares this a Python 3 script, so we could move it to tools/examples/.

tools/dev/wc-ng/bump-to-19.py - only important for 1.7-dev wc's.

tools/dev/wc-ng/populate-pristine.py - unconditional NotImplemented()

tools/hook-scripts/CVE-2017-9800-pre-commit.py - fixed in the core libraries since 2017

tools/client-side/change-svn-wc-format.py - obsolete since 1.7

tools/client-side/server-version.py - broken on both py2 and py3 (it gets response code 301 or 400 and bails out). Basically equivalent to `curl -LIX OPTIONS $URL | grep ^Server | perl -nE 'm#SVN/(\S+)# and say $1'|  grep .` except that nobody seems to actually put the SVN/* information in their "Server" header any more (at least, none out of the first four places I checked).

tools/dev/gen-py-errors.py - duplicate of `which-error.py list | grep`, or just `>>> SVN_ERR_FOO` at the Python REPL. Or, more simply, `svn: E160004: ... (apr_err=SVN_ERR_FS_CORRUPT)` already does give both the symbolic and numeric values.

tools/dev/gen-javahl-errors.py - not run since r869123 (in 2008).

tools/dev/find-bad-style.py

tools/dev/svn-merge-revs.py - Anyone actually using that? backport.pl's interactive mode provides the same/better functionality

tools/dev/graph-dav-servers.py

tools/dev/datecheck.py

tools/dev/histogram.py

tools/dev/log_revnum_change_asf.py - one time script, will never be needed again. Uses the ctypes bindings. Could be salvaged to examples/ or deleted

Unmaintained

contrib/client-side/svnmerge/svnmerge-migrate-history.py
contrib/client-side/svnmerge/svnmerge_test.py
contrib/client-side/svnmerge/svnmerge.py
contrib/client-side/svnmerge/svnmerge-migrate-history-remotely.py
subversion/bindings/ctypes-python/test/localrepos.py
subversion/bindings/ctypes-python/test/wc.py
subversion/bindings/ctypes-python/test/setup_path.py
subversion/bindings/ctypes-python/test/remoterepos.py
subversion/bindings/ctypes-python/test/svntypes.py
subversion/bindings/ctypes-python/test/run_all.py
subversion/bindings/ctypes-python/setup.py
subversion/bindings/ctypes-python/examples/log.py
subversion/bindings/ctypes-python/examples/trunkify.py
subversion/bindings/ctypes-python/examples/mucc.py
subversion/bindings/ctypes-python/examples/example.py
subversion/bindings/ctypes-python/csvn/auth.py
subversion/bindings/ctypes-python/csvn/wc.py
subversion/bindings/ctypes-python/csvn/core/__init__.py
subversion/bindings/ctypes-python/csvn/ext/__init__.py
subversion/bindings/ctypes-python/csvn/ext/listmixin.py
subversion/bindings/ctypes-python/csvn/ext/callback_receiver.py
subversion/bindings/ctypes-python/csvn/__init__.py
subversion/bindings/ctypes-python/csvn/types.py
subversion/bindings/ctypes-python/csvn/repos.py
subversion/bindings/ctypes-python/csvn/txn.py
subversion/libsvn_subr/genctype.py


  • No labels

1 Comment

  1. tools/server-side/svn-backup-dumps.py is now works both of py2 and py3 by change made in r1870204-r1870561, so I moved it in section "Python 3 Supported"