Checkout Tools
  • last updated 6 hours ago
Constraints: committers
Constraints: files
Constraints: dates
Make testsuite work on Windows, if path to Python contain spaces.

* subversion/tests/clients/cmdline/svntest/

(create_python_hook_script): Add quotes around path to Python.

* subversion/tests/clients/cmdline/svntest/

(create_python_hook_script): Avoid incorrect use of os.path.join. Simplify

code. Followup to r17275.

Simplify implementation of enable_revprop_changes by using

get_pre_revprop_change_hook_path and create_python_hook_script.

* subversion/tests/clients/cmdline/svntest/

(enable_revprop_changes): Simplify implementation.

* svntest/

(get_pre_revprop_change_hook_path): New function.

  1. … 1 more file in changeset.
Issue #443: Post-commit hook script (error) output lost.

Fix portability issues in commit_tests 34.

* subversion/tests/clients/cmdline/

(post_commit_hook_test): Use the create_python_hook_script function

for better portability.

* subversion/tests/clients/cmdline/svntest/

(create_python_hook_script): New function. Creates a portable Python based

hook script.

Patch by: Madan U Sreenivasan <>

(Tweaked by me.)

Review by: malcolm


  1. … 1 more file in changeset.
Add error checking for command-line arguments to the Python regression tests.

Previously, a bad option would cause the test file to run in a default mode

as if no arguments were given, and any extra test numbers were ignored.

* subversion/tests/clients/cmdline/svntest/

(run_tests): Allow errors in option and argument parsing to be reported.

Report an error if there are extra arguments.

* subversion/tests/clients/cmdline/svntest/

Fix typo. Followup to r17098.

Report termination due to signals (segfaults) on platforms which support it.

* subversion/tests/clients/cmdline/svntest/

(SVNProcessTerminatedBySignal): Exception to raise on abnormal

subprocess termination due to a signal.

(platform_with_os_wait): New global indicating if we can call os.wait().

(run_command_stdin): Check the os.wait() return code, if possible.

Activate some Windows-specific behaviour on Cygwin too:


- Windows-specific augmented file:// URLs

* subversion/libsvn_ra_local/split_url.c (svn_ra_local__split_URL):

Activate Windows-specific augmented file:// URL parsing on Cygwin too.

Make an implicit loss of const into an explicit cast to silence warning.

* subversion/svnversion/main.c (main):

* subversion/clients/cmdline/main.c (main):

* subversion/tests/clients/cmdline/svntest/ (get_admin_name):

Enable SVN_ASP_DOT_NET_HACK on Cygwin.

  1. … 3 more files in changeset.
Fix typo. Followup to r16266.

* subversion/tests/clients/cmdline/svntest/

(create_config_dir): Fix typo ("Create", not "Ccreate").

Factor config dir creation in the Python tests into a single function.

[in subversion/tests/clients/cmdline]

* svntest/ (create_config_dir): New. Based on


* (create_config), (timestamp_behaviour): Use svntest.main.create_config_dir().

  1. … 2 more files in changeset.
Remove knowledge about the admin directory name from the public

API, preparing the way for run-time parameterisation.


- _svn is now always a reserved name, just like .svn.

- On Windows, setting the environment variable SVN_ASP_DOT_NET_HACK

will change the admin dir name to "_svn".

* subversion/include/svn_wc.h

(svn_wc_is_adm_dir, svn_wc_set_adm_dir): New prototypes.

(SVN_WC_ADM_DIR_NAME): Deprecate.

* subversion/libsvn_wc/adm_files.c: Include apr_atomic.h.

(DEFAULT_ADM_DIR_NAME): New constant.

(adm_dir_name) New file-scope variable.

(svn_wc_is_adm_dir, svn_wc_set_adm_dir): Implement.

(v_extend_with_adm_name): Use adm_dir_name instead of SVN_WC_ADM_DIR_NAME.

* subversion/libsvn_subr/cmdline.c: Include apr_atomic.h and apr_pools.h.

(svn_apr_initialize): New. Initialization for apr and apr-atomic.

(svn_cmdline_init) Use svn_apr_initialize instead of apr_initialize.

* subversion/libsvn_wc/copy.c (post_copy_cleanup): Call svn_wc__adm_path

to construct the path to the admin directory.

* subversion/libsvn_wc/adm_ops.c (erase_from_wc),

subversion/libsvn_wc/status.c (get_dir_status),

subversion/libsvn_wc/update_editor.c (add_directory),

subversion/libsvn_client/add.c (add_dir_recursive),

subversion/libsvn_client/commit.c (import_dir, svn_client_import2):

Call svn_wc_is_adm_dir instead of strcmp'ing with SVN_WC_ADM_DIR_NAME.

* subversion/libsvn_subr/opt.c (svn_opt_args_to_target_array2):

Check all valid admin dir names and document the fact that this

list a non-canonical copy.

* subversion/clients/cmdline/main.c,


tools/examples/minimal_client.c: On Windows, if the environment variable

SVN_ASP_DOT_NET_HACK is set, change the admin dir name to "_svn".

* Add option to test with "_svn".

* subversion/tests/clients/cmdline/svntest/ (get_admin_name):

Return '.svn' or '_svn', depending on the environment.

* subversion/tests/clients/cmdline/,




Use svntest.main.get_admin_name() instead of explicit '.svn'.

  1. … 18 more files in changeset.
Fixed issue 2404 by disallowing copy or move (copy plus delete)

operations between working copies from different repositories.

* subversion/libsvn_wc/copy.c

(svn_wc_copy2): Open the svn_wc_adm_access_t * to src_path earlier,

still assuming that it is okay to bail out of this function if an

error is encountered without calling svn_wc_adm_close(). Use

svn_path_split_if_file() to dissect src_path_dir from src_path, and

grab its svn_wc_entry_t * for comparison of repository URIs to

dst_entry. Return an error if they don't match. Note that we

might now be able to avoid a call to svn_io_check_path() (since we

already have the node kind in hand at that point). I didn't remove

this in fear of removing necessary error checking.

* subversion/tests/clients/cmdline/

(wc_to_wc_copy_between_different_repos): New test case confirming

that we do not allow WC to WC copy attempts between different


(test_list): Added wc_to_wc_copy_between_different_repos to the


* subversion/tests/clients/cmdline/svntest/

(Sandbox): Updated the doc string.

(Sandbox.dependents): New list member (defaults to None).

(Sandbox.__init__): Refactored majorty of body into _set_name().

(Sandbox._set_name): New method used to reset an instance's name,

and other variables which derive their value from the name.

(Sandbox.clone_dependent): Creates a near-copy of the instance and

sets it as a dependent.

(Sandbox.cleanup_test_paths): Cleanup our dependents as well.

  1. … 2 more files in changeset.
* subversion/tests/clients/cmdline/svntest/

(run_tests): When my_getopt() throws a getopt.GetoptError exception,

set both local variables "opts" and "args" to prevent an

UnboundLocalError when referencing "opts" later in the function.

This can occur when passing bogus arguments to a black box test,

such as --cleanup=1 (when only --cleanup is recognized).

* subversion/tests/clients/cmdline/svntest/

(greek_state): Make default test file contents newline-terminated,

as has been documented in ../../greek-tree.txt all along.

Adjust all tests accordingly, occasionally tweaking other data to be

consistent with the policy that lines should be newline-terminated:

* subversion/tests/clients/cmdline/




basic_cat): Adjust.

* subversion/tests/clients/cmdline/


merge_mixed_revisions): Adjust.

* subversion/tests/clients/cmdline/







nested_in_read_only): Adjust.

* subversion/tests/clients/cmdline/







nonrecursive_switching): Adjust.

* subversion/tests/clients/cmdline/






repos_to_wc_copy_eol_keywords): Adjust.

* subversion/tests/clients/cmdline/


diff_deleted_in_head): Adjust.

* subversion/tests/clients/cmdline/



export_native_eol_option): Adjust.

* subversion/tests/clients/cmdline/





export_with_externals): Adjust.

* subversion/tests/clients/cmdline/










cherry_pick_text_conflict): Adjust.

* subversion/tests/clients/cmdline/



propset_commit_checkout_nocrash): Adjust.

* subversion/tests/clients/cmdline/

(blame_in_xml): Adjust.

* subversion/tests/clients/cmdline/

(cat_traces_renames): Adjust.

* subversion/tests/clients/cmdline/

(cat_skip_uncattable): Adjust.

  1. … 13 more files in changeset.
Make it easier to run the tests in a ramdisk, by having tests put all

temporary data under one subtree, that is, under one mountable point.

* subversion/tests/clients/cmdline/svntest/

(work_dir): New intermediate variable.

(general_repo_dir, general_wc_dir, local_tmp): Put in work_dir.


* tools/test-scripts/svntest/README:

* subversion/tests/clients/cmdline/README: Update instructions.


(check-clean): Clean up the new work directory.

* subversion/tests/clients/cmdline/

(HTTPD_CFG): Adjust httpd.conf template.

* build/win32/

* packages/rpm/rhel-3/httpd.davcheck.conf:

* packages/rpm/rhel-4/httpd.davcheck.conf:

* packages/rpm/redhat-8+/httpd.davcheck.conf:

* packages/rpm/redhat-7.x/httpd.davcheck.conf: Same.

* subversion/bindings/java/javahl/src/org/tigris/subversion/javahl/\


(SVNTests): Add comments about the paths, but don't change them.

  1. … 11 more files in changeset.
* subversion/tests/clients/cmdline/svntest/ (run_tests): Move

the url-scrubbing code committed in r14407 down a bit so that we

also handle BASE_URL. Thanks to Philip Martin for the tip.

* subversion/tests/clients/cmdline/svntest/ (run_tests):

Normalize the url arg to have no trailing slash internally since

several tests rely on there *not* being one due to some braindead

URL joining work. Now all tests pass whether for '--url

http://localhost/' as well as '--url http://localhost'.

Use GNU-style getopt if available (Python >= 2.3) in the Python testsuite, to

allow arguments and options to be freely intermixed.

Fixes issue 2237.

* subversion/tests/clients/cmdline/svntest/

Call getopt.gnu_getopt() if it exists,

otherwise fall back to getopt.getopt().

URIs have schemes, not schemas. Fix everywhere.


* doc/misc-docs/quick_walkthrough.xml

* notes/webdav-general-summary

* subversion/bindings/swig/java/org/tigris/subversion/test/

* subversion/clients/cmdline/main.c

* subversion/libsvn_client/diff.c

* subversion/libsvn_fs_base/lock.c

* subversion/libsvn_fs_fs/lock.c

* subversion/libsvn_ra/ra_loader.c

* subversion/libsvn_ra_dav/props.c

* subversion/libsvn_ra_local/split_url.c

* subversion/tests/clients/cmdline/

* subversion/tests/clients/cmdline/

* subversion/tests/clients/cmdline/

* subversion/tests/clients/cmdline/getopt_tests_data/svn--version_stdout

* subversion/tests/clients/cmdline/getopt_tests_data/svn_help_log_switch_stdout

* subversion/tests/clients/cmdline/getopt_tests_data/svn_version_stdout

* subversion/tests/clients/cmdline/svntest/

* tools/dev/


* www/faq.html

  1. … 20 more files in changeset.
Merge locking branch to trunk, by comparing trunkURL with branchURL.

This is not a test. This is an actual addition of a very large feature.

This merge passes 'make check' over all three RA implementations.

To see commit logs for this feature, examine /branches/locking, r11749:13570.

  1. … 183 more files in changeset.
Fix Windows test failures introduced in r12687 (I hope - cannot test).

* subversion/tests/clients/cmdline/svntest/ (copy_repos): Permit CRLF

newlines in 'svnadmin dump' and 'svnadmin load' feedback.

Fix issue 2181: Add "svnlook {propget,proplist} --revprop".

Patch by: Oliver Klozoff <>

(Tweaked by me.)

* subversion/svnlook/main.c

(subcommand_plist, subcommand_pget):

Pass NULL for the path argument to do_plist/do_pget

when --revprop is specified.

(do_plist, do_pget):

When the 'path' argument is NULL, switch from svn_fs_node_proplist/

svn_fs_node_prop to svn_fs_revision_proplist/svn_fs_revision_prop.

* subversion/tests/clients/cmdline/

(run_svnlook, expect): New utility functions.

(test_youngest): Rename to...

(test_misc): ...this, and make it test a whole lot more.

(test_list): Added the new tests.

* subversion/tests/clients/cmdline/svntest/

(run_command_stdin): New. Just like 'run_command',

except it allows the caller to specify data to be piped into

the command's stdin.

  1. … 2 more files in changeset.
Documentation fixes:

* subversion/tests/clients/cmdline/svntest/

(run_svn): Don't recommend a nonexistent function.

* subversion/tests/clients/cmdline/svntest/

(run_and_verify_svn): State what is returned.

  1. … 1 more file in changeset.
This patch implements fixed size keywords for Subversion,

see issue #2095 for more details.

Patch provided by Tom Molesworth <tom at molesworth name>, regression

tests by me. Thanks Greg Hudson for comments.

* subversion/libsvn_subr/subst.c

(translate_keyword_subst): Added fixed length keyword handling

* subversion/tests/clients/cmdline/

(verify_exluded_output): New helper function

(diff_keywords): New test, check that keywords won't show up on

diff, and that they show when they should.

* subversion/tests/clients/cmdline/

(keywords_from_birth): Added testing of fixed length keywords.

(setup_working_copy): Signature changed, it now takes second

argument: length of the value field (value_len). This is used

by fixed keyword tests.

(check_keywords): New helper function

(fixed_length_keywords_path): New test path

* subversion/tests/clients/cmdline/svntest/

(canonize_url): New helper function

* doc/book/TODO

Added entry for fixed length keywords.

  1. … 4 more files in changeset.
Make "make check" work properly when Subversion is built without BDB.

* subversion/tests/clients/cmdline/svntest/ If no fs_type

parameter is given, don't pass --fs-type to svnadmin create.

Fix the bug whereby a test raising svntest.Skip would cause the exit

status of the entire test run to be non-zero. Thanks to Christian

Schaffner and Brian W. Fitzpatrick for analysis.

* subversion/tests/clients/cmdline/svntest/

(_Predicate.convert_result): New name for convert_error(). All

callers and overriding classes adjusted accordingly.

(_Predicate.skip_text): Call arg 'result' not 'error'.

( Don't bother to set error in SVNTestStatusCodeError

case, because the error will never be used anyway. Document.

* subversion/tests/clients/cmdline/svntest/

(_internal_run_tests): Don't exit non-zero unless actual test

failure happened.

  1. … 1 more file in changeset.
Improve option handling in the test scripts.

* build/ (main): Prefer (and generate) the '--opt=val'

spelling of the long options.

* subversion/tests/svn_tests_main.c (main): Print out the ignored

argument, for easier debugging.

* subversion/tests/clients/cmdline/svntest/ (run_tests): Use

the getopt module to parse options, in order to support both

'--opt=val' and '--opt val' long-option spelling.

  1. … 2 more files in changeset.
Merge the changes from the fs-abstraction branch. This allows the

libsvn_fs_fs filesystem to sit alongside the old BDB filesystem in the

same executable.

  1. … 89 more files in changeset.
Follow up to revision r8029: adjust tests, python bindings, and COM bindings

for new copyright date.

Note that the change to subversion/bindings/com/SVNCOM.rc seems to affect

every line of the file, because it inadvertently fixed the line endings in

the repository. They were probably broken due to an old bug, see

for details, and see also r8141.

* subversion/tests/libsvn_subr/

* subversion/tests/clients/cmdline/

* subversion/tests/clients/cmdline/

* subversion/tests/clients/cmdline/

* subversion/tests/clients/cmdline/

* subversion/tests/clients/cmdline/

* subversion/tests/clients/cmdline/

* subversion/tests/clients/cmdline/

* subversion/tests/clients/cmdline/

* subversion/tests/clients/cmdline/

* subversion/tests/clients/cmdline/

* subversion/tests/clients/cmdline/

* subversion/tests/clients/cmdline/

* subversion/tests/clients/cmdline/

* subversion/tests/clients/cmdline/

* subversion/tests/clients/cmdline/

* subversion/tests/clients/cmdline/

* subversion/tests/clients/cmdline/svntest/

* subversion/tests/clients/cmdline/svntest/

* subversion/tests/clients/cmdline/svntest/

* subversion/tests/clients/cmdline/svntest/

* subversion/tests/clients/cmdline/svntest/

* subversion/tests/clients/cmdline/

* subversion/tests/clients/cmdline/

* subversion/tests/clients/cmdline/

* subversion/tests/clients/cmdline/

* subversion/bindings/swig/python/svn/

* subversion/bindings/swig/python/svn/

* subversion/bindings/swig/python/svn/

* subversion/bindings/swig/python/svn/

* subversion/bindings/swig/python/svn/

* subversion/bindings/swig/python/svn/

* subversion/bindings/swig/python/svn/

* subversion/bindings/swig/python/svn/

* subversion/bindings/swig/python/svn/

* subversion/bindings/swig/python/

* subversion/bindings/com/SVNCOM.cpp

* subversion/bindings/com/SVN.cpp

* subversion/bindings/com/SVNStatus.cpp

* subversion/bindings/com/SVNCOM.rc

* subversion/bindings/com/StdAfx.cpp

* subversion/bindings/com/misc.cpp

Extend copyright range.

  1. … 41 more files in changeset.
Be consistent about using svntest.main.safe_rmtree everywhere, and add

a retry option to be used when deleting repositories to account for

the fact that the client and server are not synchronized during ra_svn

and ra_dav tests. This could otherwise lead to spurious failures on

Windows, where a file cannot be deleted while a process holds it open.

* subversion/tests/clients/cmdline/svntest/ (safe_rmtree):

Add optional parameter 'retry' and exponential-sleep logic.

* subversion/tests/clients/cmdline/,



subversion/tests/clients/cmdline/svntest/ Use safe_rmtree

everywhere instead of shutil.rmtree, with 'retry' enabled if removing

a repository.

  1. … 4 more files in changeset.