subversion

Checkout Tools
  • last updated 6 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates

Changeset 843043 is being indexed.

Fix for issue #868.

* Makefile.in (check): If $(BASE_URL) is defined, pass it to

run_tests.py so that DAV tests can be run with

"make check BASE_URL=http://localhost".

* win-tests.py: Accept an optional URL parameter and, if present,

pass it to the test harness so that DAV tests can be run with

"python win-tests.py r http://localhost".

(client_tests): Add module_tests.py.

* subversion/mod_dav_svn/repos.c: Include apr_want.h for string functions.

(dav_svn_get_resource): [SVNParentPath handler]

- Return a 403 error if a repository name isn't present in the URL.

- Fix the parser: If the repository name is the only component and

doesn't end in a slash, set true_relative_path to '/' instead of

running off the end of the string.

* subversion/tests/clients/cmdline/README: Update the instructions for

running DAV tests.

* subversion/tests/clients/cmdline/svntest/actions.py

(guarantee_greek_repository): Don't symlink or copy to current-repo.

(make_repo_and_wc): Call main.set_repos_paths, and use

main.current_repo_url to check out the working copy.

* subversion/tests/clients/cmdline/svntest/main.py (current_repo_dir):

Initialize to None and update docstring.

(set_repos_paths): New; set current_repo_dir and current_repo_url.

(run_one_test): Reset current_repo_dir and current_repo_url to None.

Scratch an itch: Exit immediately upon receiveing a ^C.

(run_tests): Don't set current_repo_url, set_repos_paths does that now.

* build/run_tests.py (TestHarness.__init__): New parameter 'base_url'.

(TestHarness._run_test): If self.base_url is defined, send an --url

flag to each Python test program.

(main): Handle --url flag, update usage text and docstring.

    • -8
    • +23
    /trunk/subversion/mod_dav_svn/repos.c
add mbk for libsvn_ra_pipe work
Finish issue #840.

* subversion/mod_dav_svn/liveprops.c

(dav_svn_namespace_uris, DAV_SVN_NAMESPACE_URI, SVN_RO_SVN_PROP,

SVN_RW_SVN_PROP, dav_svn_props, dav_svn_insert_prop): Use new

namespaces for dav-ish properties.

(DAV_SVN_NAMESPACE_URI_OLD, SVN_RO_SVN_OLD_PROP,

SVN_RW_SVN_OLD_PROP): Were DAV_SVN_NAMESPACE_URI, SVN_RO_SVN_PROP,

and SVN_RW_SVN_PROP, respectively.

* subversion/libsvn_ra_dav/commit.c

(log_message_prop, do_proppatch): Use new property namespace(s) when

the time is Right.

* subversion/mod_dav_svn/deadprops.c

(dav_svn_db_define_namespaces, get_repos_propname,

dav_svn_db_output_value, get_name, save_value): Use new property

namespaces.

* subversion/include/svn_dav.h

(SVN_FEATURE_USE_OLD_NAMESPACES): New #define for helping us find

and remove support for old namespaces in the future.

* subversion/libsvn_ra_dav/ra_dav.h

(SVN_RA_DAV__PROP_BASELINE_RELPATH_OLD, ELEM_baseline_relpath_old):

Wrap with new #define so we can more easily find and remove this

code in the future.

* subversion/libsvn_ra_dav/props.c

(elem_definitions, neon_descriptions, starting_props,

validate_element, svn_ra_dav__get_baseline_info): Wrap use of old

namespaces with new #define.

* subversion/libsvn_ra_dav/fetch.c

(svn_ra_dav__get_dir, add_props): Wrap use of old namespaces with

new #define.

(filter_props): Wrap use of old namespaces with new #define. Also,

pass final NULL to apr_pstrcat.

    • -5
    • +8
    /trunk/subversion/libsvn_ra_dav/ra_dav.h
    • -9
    • +22
    /trunk/subversion/libsvn_ra_dav/props.c
    • -4
    • +26
    /trunk/subversion/mod_dav_svn/liveprops.c
    • -1
    • +20
    /trunk/subversion/libsvn_ra_dav/fetch.c
    • -2
    • +14
    /trunk/subversion/libsvn_ra_dav/commit.c
    • -3
    • +45
    /trunk/subversion/mod_dav_svn/deadprops.c
* subversion/include/svn_hash.h

(svn_hash_diff): Fix capitalization in doc string.

* subversion/libsvn_ra_dav/fetch.c

(filter_props): New helper function to abstract duplicated code

formerly found in svn_ra_dav__get_file and svn_ra_dav__get_dir.

(svn_ra_dav__get_file, svn_ra_dav__get_dir): Move common code to

filter_props.

    • -198
    • +113
    /trunk/subversion/libsvn_ra_dav/fetch.c
Use `@example' instead of `@verbatim'. The latter was introduced into

Texinfo more recently, and is causing problems for people who haven't

upgraded -- and apparently, texi2dvi from texinfo-4.2.tar.gz still

doesn't handle it anyway.

    • -4
    • +4
    /trunk/doc/handbook/best_practices.texi
* subversion/libsvn_client/diff.c (do_single_file_merge): Add svn_wc_adm_close

    • -0
    • +2
    /trunk/subversion/libsvn_client/diff.c
Fix cleanup for log files that delete directories. Broken cleanup is bad!

* subversion/include/svn_wc.h (svn_wc_cleanup): Add access baton parameter.

* subversion/libsvn_client/cleanup.c (svn_client_cleanup): Pass NULL access

baton to svn_wc_cleanup.

* subversion/libsvn_wc/log.c (svn_wc_cleanup): Add access baton parameter.

Get lock before cleaning children, pass lock to children. Use strcmp

instead of memcmp for svn:this_dir. No need to check ENOENT explicitly.

* subversion/libsvn_wc/wc.h (svn_wc__adm_steal_write_lock): Add associated

access baton parameter.

* subversion/libsvn_wc/lock.c

(adm_ensure_set): New function.

(svn_wc__adm_steal_write_lock): Add associated access baton parameter.

(svn_wc_adm_open): Call adm_ensure_set.

    • -1
    • +1
    /trunk/subversion/libsvn_client/cleanup.c
    • -38
    • +18
    /trunk/subversion/libsvn_wc/log.c
Fix issue 867.

* subversion/libsvn_subr/path.c (svn_path_is_child): Allow ".foo" to

be a child of "."

* subversion/tests/libsvn_subr/path-test.c (test_path_is_child): Test

new behaviour.

    • -9
    • +11
    /trunk/subversion/tests/libsvn_subr/path-test.c
Add printf format checking.

Patch by: Mark Benedetto King <bking@inquira.com>

* subversion/include/svn_io.h (svn_stream_printf): Add printf __attribute__.

Followups to revision 2949:

* subversion/include/svn_wc.h

(svn_wc_statuses): Tweak doc string.

* subversion/libsvn_wc/status.c

(assemble_status): Remove comments about choosing error codes.

After reading the error code descriptions more carefully, agree with

both of Sander's choices, not just one of them.

* subversion/include/svn_error_codes.h

(SVN_ERR_UNEXPECTED_NODE_KIND): Replaces SVN_ERR_WC_UNEXPECTED_KIND.

All callers changed.

* subversion/libsvn_client/delete.c

(svn_client__can_delete): Use SVN_ERR_UNEXPECTED_NODE_KIND here

too.

* subversion/clients/cmdline/status.c

(svn_cl__generate_status_codes): Use '~' for

svn_wc_status_obstructed case.

* doc/handbook/client.texi

(Basic Work Cycle): Describe the new status code.

    • -2
    • +1
    /trunk/subversion/libsvn_client/delete.c
    • -1
    • +1
    /trunk/subversion/bindings/ruby/error.c
Supress Python warnings about usage of os.tempnam.

* subversion/tests/clients/cmdline/module_tests.py: Add a warning filter.

Implement the first half of issue #840: teach ra_dav to understand

both old and new property namespaces. Patch by Ben Collins-Sussman

with tweaks and fixes by cmpilato.

* svn_dav.h

(SVN_DAV_PROP_NS_SVN, SVN_DAV_PROP_NS_DAV,

SVN_DAV_PROP_NS_CUSTOM): define three new property namespaces.

* ra_dav.h

(SVN_RA_DAV__PROP_BASELINE_RELPATH_OLD,

SVN_RA_DAV__PROP_BASELINE_RELPATH): define an "old" version of the

baseline-relative-path property, to contrast against the correct,

new one. It turns out that this is actually the *only* renegade

network-generated property that is "polluting" the svn: namespace.

(ELEM_baseline_relpath_old): new enum.

* props.c

(elem_definitions, neon_descriptions): mention old and new

relpath props in these lists.

(validate_element): allow either old- or new- style baseline_relpath.

(starting_props): try to fetch *both* old and new baseline_relpath props.

(process_results, add_to_hash): when parsing a multistatus PROPFIND

response, only store the properties that were actually found. At

this point, we know that at least one of the baseline_relpath props

will be a 404, and that's totally fine.

(svn_ra_dav__get_baseline_info): try to pull the new-style

baseline-relpath property from the hash; if that fails, query for

the old-style one instead. Only die if both are unavailable.

* fetch.c

(add_props): this is the main filter that pushes props at

libsvn_wc. Recognize both old and new 'custom' namespaces.

Recognize both old and new 'svn' namespaces, filtering out the

baseline-rel-path only in the old namespace.

(svn_ra_dav__get_file, svn_ra_dav__get_dir): apply the same logic

here. This fixes a huge bug: can you believe that these functions

were completely ignoring 'svn:' properties up till now?! Oy. This

might fix issue #591. Also, while we're here, fix the bug in 'svn

ls', whereby __get_dir() wasn't looking in the correct namespaces to

decide if an entry had props or not.

    • -9
    • +51
    /trunk/subversion/libsvn_ra_dav/props.c
    • -2
    • +9
    /trunk/subversion/libsvn_ra_dav/ra_dav.h
    • -0
    • +18
    /trunk/subversion/include/svn_dav.h
    • -22
    • +142
    /trunk/subversion/libsvn_ra_dav/fetch.c
* www/project_status.html: Describe the interim release schedule, to

make Beta be less of a leap from whatever comes before it.

Thanks to Blair Zajac for spotting the uninitialized var warning that

led to this:

* subversion/libsvn_wc/adm_ops.c

(svn_wc_revert): Handle the fall-thru case of a entry that is

neither file nor dir.

* tools/client-side/svn_all_diffs.pl:

(read_from_process): If a spawned process fails, do not wait for the

user to hit return before quitting the script.

    • -5
    • +1
    /trunk/tools/client-side/svn_all_diffs.pl
* tools/client-side/svn_load_dirs.pl:

Reformat the entire file to the GNU coding standard.

Add HeadURL to `svn:keywords' and use it.

* tools/hook-scripts/commit-email.pl:

Add comments for the safe_read_from_pipe and read_from_process

subroutines.

Add HeadURL to `svn:keywords' and use it.

    • -0
    • +5
    /trunk/tools/hook-scripts/commit-email.pl
    • -843
    • +1057
    /trunk/tools/client-side/svn_load_dirs.pl
* tools/client-side/svn_all_diffs.pl:

New Perl script that gets the revisions that modified a specified

file or directory and prints the output of `svn diff' on between

all revisions that that modified the file or directory. Good for

seeing what changed over time and for tracking down when a

particular line in a file changed.

Set `svn:executable' to `on'.

Set `svn:keywords' to `HeadURL LastChangedBy LastChangedDate

LastChangedRevision' and use them.

    • -0
    • +112
    /trunk/tools/client-side/svn_all_diffs.pl
* subversion/include/svn_wc.h

(svn_wc_status_obstructed): new status code. This status is returned

whenever a resource is encountered that is different in kind than

expected (as recorded in the entry).

(svn_wc_statuses): Update comments to match the code.

* subversion/libsvn_wc/status.c

(assemble_status): Add functionality to detect an obstructed resource.

Redefine what STRICT does (since it wasn't doing anything).

(svn_wc_statuses): When getting the status on a directory and

the entry can't be obtained via the full path of that directory,

simply pass the incomplete entry to assemble_status.

Only descend into subdirectories if the subdirectory is a

working copy directory.

* subversion/libsvn_client/delete.c

(svn_client__can_delete): Don't let svn_wc_statuses be STRICT. Instead

handle the known states: obstructed, absent, modified.

* subversion/clients/cmdline/status.c

(svn_cl__generate_status_codes): Add a new moniker for the 'obstructed'

status.

    • -83
    • +154
    /trunk/subversion/libsvn_wc/status.c
    • -1
    • +12
    /trunk/subversion/libsvn_client/delete.c
This should teach me to run the _whole_ testsuite before committing ...

* subversion/tests/clients/cmdline/svntest/actions.py

(guarantee_greek_repository): Add missing comma to call to display_lines.

(run_and_veryfy_commit): Same for call to display_trees.

Another testsuite bugfix, this one for Windows.

* subversion/tests/clients/cmdline/module_tests.py: Use main.remove_wc

instead of plain shutil.rmtree when removing working copies.

Fix mod_dav_svn build on Windows.

* subversion/mod_dav_svn/mod_dav_svn.dsp: Added libsvn_subr/validate.c.

* subversion/libsvn_wc/adm_files.c

(check_adm_exists): when making sure the .svn/README file exists, use

svn_io_check_path and check for svn_node_file instead of using svn_io_stat.

this will catch the case where .svn/README is a directory. this also

removes the check for APR_STATUS_IS_EEXISTS, since as far as i can tell

EEXISTS isn't the kind of error we should be looking for anyway. in the

case where the .svn/README file doesn't exist, we would be getting back

APR_ENOENT from apr_stat anyway, and svn_io_check_path handles that for us.

Suggested by: Philip Martin <philip@codematters.co.uk>

    • -12
    • +6
    /trunk/subversion/libsvn_wc/adm_files.c
Testsuite bugfixes and refactoring.

[in subversion/tests/clients/cmdline]

* svntest/actions.py

(display_trees, display_lines, compare_and_display_lines): New functions.

(guarantee_greek_repository): Call display_lines to print import

errors, and display_trees to show tree differences.

(run_and_verify_commit, run_and_verify_status): Call display_trees

to show tree differences.

* svntest/tree.py

(SVNTreeNode.pprint): Fix text alignment, and add a FIXME about

checking the node type.

(compare_trees.display_nodes): Factor out printing expected and actual

nodes into a new nested function.

* svnadmin_tests.py

(dump_copied_dir): Call actions.compare_and_display_lines to check

stderr from 'svnadmin dump'.

(dump_move_dir_modify_child) Likewise. Also fix typo in docstring,

and make the test independent of the filesystem being

case-sensitive, as suggested by William Uther <will+@cs.cmu.edu>.

* subversion/libsvn_wc/adm_files.c

(check_adm_exists): trade an open and a close for a stat. since we don't

actually care about the contents of the .svn/README file, just that it is

there, there's no reason to bother opening it.

    • -4
    • +4
    /trunk/subversion/libsvn_wc/adm_files.c
* PORTING: Update Mac OS X 10.1 status to note NAV problem and add notes

regarding to Mac OS X 10.2.

Continuing issue #749. Pass the access baton to svn_wc__entry_modify.

This is quite a large change as far as the number of functions affected

is concerned, but it's all just to support svn_wc__entry_modify.

* subversion/libsvn_wc/entries.h (svn_wc__entry_modify): Change char*

path parameter to access baton.

* subversion/libsvn_wc/entries.c (svn_wc__entry_modify): Change char*

path parameter to access baton.

* subversion/include/svn_wc.h

(svn_wc_adm_access_pool): New function.

(svn_wc_diff_callbacks_t): Add an access baton parameter to the

members file_changed, file_added, file_deleted, dir_added, dir_deleted,

props_changed.

(svn_wc_copy): Change dst_parent parameter from char* to access baton.

(svn_wc_get_update_editor, svn_wc_get_switch_editor): Change anchor

parameter from a char* path to an access baton.

(svn_wc_add, svn_wc_install_file, svn_wc_merge, svn_wc_merge_prop_diffs,

svn_wc_revert): Add access baton parameter.

* subversion/include/svn_client.h (svn_client_copy): Add access baton

parameter and note it is temporary until 838 is fixed.

* subversion/libsvn_client/copy.c

(svn_client_copy, setup_copy): Add access baton parameter.

(repos_to_wc_copy, wc_to_wc_copy): Add access baton parameter. Open

and close access baton if required.

* subversion/clients/cmdline/copy-cmd.c (svn_cl__copy): Pass NULL access

baton to svn_client_copy.

* subversion/libsvn_client/client.h (svn_client__get_diff_editor): Add

access baton parameter.

* subversion/libsvn_client/diff.c

(diff_file_changed, diff_file_added, diff_file_deleted, diff_dir_added,

diff_dir_deleted, diff_props_changed, merge_file_changed,

merge_file_deleted, merge_dir_deleted): Add access baton parameter.

(merge_file_added, merge_dir_added): Add access baton parameter. Pass

access baton to svn_client_copy.

(merge_props_changed): Add access baton parameter. Pass access baton

to svn_wc_merge_prop_diffs.

(do_merge): Open and close an access baton. Pass access baton to

svn_client__get_diff_editor.

(do_single_file_merge): Open and close an access baton. Pass access

baton to svn_wc_merge.

(do_diff): Pass NULL access baton to svn_client__get_diff_editor.

* subversion/libsvn_client/commit.c (svn_client_commit): Remove node

kind check, add root check and open parent where possible.

* subversion/libsvn_client/add.c

(add_dir_recursive): Add access baton parameter.

(svn_client_add): Open/close access baton.

(svn_client_mkdir): Use svn_client_add to handle access batons.

* subversion/libsvn_client/repos_diff.c

(struct edit_baton): Add access baton member.

(delete_entry, add_directory, close_file, close_directory): Pass access

baton to svn_wc_diff_callbacks_t functions.

* subversion/libsvn_client/revert.c (svn_client_revert): Pass NULL access

baton to svn_wc_revert.

* subversion/libsvn_client/switch.c (svn_client_switch): Open and close

access batons. Pass access baton to svn_wc_get_switch_editor and

svn_wc_install_file.

* subversion/libsvn_client/update.c (svn_client_update): Open an access

baton and pass to svn_wc_get_update_editor.

* subversion/libsvn_wc/adm_ops.c

(svn_wc_process_committed): Pass access baton to svn_wc__entry_modify.

(mark_tree): Change char* path parameter to access baton. Pass

access baton to svn_wc__entry_modify.

(svn_wc_delete): Move access baton open/close to hold access baton for

longer. Pass access baton to mark_tree and svn_wc__entry_modify.

(svn_wc_add): Add an access baton parameter. Pass access baton to

mark_tree and svn_wc__entry_modify.

(svn_wc_revert): Add access baton parameter. Open/close access baton

if required. Pass access baton to svn_wc__entry_modify.

(resolve_conflict_on_entry): Open/close access baton. Pass access baton

to svn_wc__entry_modify.

* subversion/libsvn_wc/update_editor.c

(struct edit_baton): Add access baton member.

(maybe_bump_dir_revision): Retrieve access baton and pass to

svn_wc__entry_modify.

(prep_directory): Change char* path parameter to dir baton. Remove unused

force parameter and code. Open access baton for directory.

(open_root): Pass dir baton to prep_directory.

(delete_entry): Retrieve access baton instead of opening/closing it. Pass

dir baton to prep_directory.

(change_dir_prop): Retrieve access baton and pass to svn_wc__entry_modify.

(close_directory): Retrieve access baton instead of opening/closing it.

(svn_wc_install_file): Add access baton parameter. Don't open/close

access baton.

(close_file): Retrieve access baton and pass to svn_wc_install_file.

(close_edit): Close access baton.

(make_editor): Change char* anchor parameter to access baton. Store

access baton in edit baton.

(svn_wc_get_update_editor, svn_wc_get_switch_editor): Change char*

anchor parameter to access baton.

(svn_wc_get_checkout_editor): Pass NULL access baton to make_editor.

* subversion/libsvn_wc/diff.c (file_diff, directory_elements_diff,

delete_entry, close_directory, close_file): Pass NULL access baton to

svn_wc_diff_callbacks_t functions.

* subversion/libsvn_wc/log.c

(log_do_merge): Pass access baton to svn_wc_merge.

(log_do_modify_entry, log_do_delete_entry, log_do_committed,

svn_wc__run_log): Pass access baton to svn_wc__entry_modify.

* subversion/libsvn_wc/merge.c (svn_wc_merge): Add an access baton

parameter and pass to svn_wc__entry_modify.

* subversion/libsvn_wc/copy.c

(copy_file_administratively, copy_dir_administratively, svn_wc_copy): Add

an access baton parameter.

* subversion/libsvn_wc/props.c

(svn_wc_merge_prop_diffs): Add an acesss baton parameter. Remove

open/close of access baton.

(svn_wc_prop_set): Open and close an access baton.

* subversion/clients/cmdline/revert-cmd.c (svn_cl__revert): Canonicalize path.

* subversion/clients/cmdline/update-cmd.c (svn_cl__update): Remove

svn_wc_get_actual_target call. Canonicalize target.

* subversion/libsvn_wc/lock.c

(create_lock): Don't sleep for one second if the requested wait is zero.

(svn_wc_adm_access_pool): New function.

* subversion/tests/clients/cmdline/copy_tests.py

(no_wc_copy_overwrites): Run cleanup after failed copy.

* subversion/tests/clients/cmdline/basic_tests.py

(basic_corruption): Add 'svn cleanup' after failed 'svn update'.

    • -20
    • +52
    /trunk/subversion/libsvn_client/diff.c
    • -4
    • +10
    /trunk/subversion/libsvn_wc/merge.c
    • -10
    • +3
    /trunk/subversion/libsvn_client/commit.c
    • -2
    • +4
    /trunk/subversion/libsvn_client/update.c
    • -17
    • +26
    /trunk/subversion/libsvn_wc/lock.c
    • -8
    • +24
    /trunk/subversion/libsvn_client/add.c
    • -0
    • +6
    /trunk/subversion/libsvn_client/client.h
    • -8
    • +71
    /trunk/subversion/libsvn_client/copy.c
    • -11
    • +11
    /trunk/subversion/libsvn_wc/diff.c
    • -15
    • +14
    /trunk/subversion/libsvn_wc/log.c
  1. … 11 more files in changeset.
Added new logo from Olof Oberg (mill@acm.org)
    • ?
    /svn-logos/src/mill-svn-spiral-clock3.svg
    • ?
    /svn-logos/images/mill-svn-spiral-clock3.png
    • ?
    /svn-logos/images/mill-svn-spiral-clock3_sodipodi-screenshot-cropped.png
* packages/freebsd/apr/files/patch-apr-misc-unix-getopt.c

patch up the getopt code to work around a crash when no long name is

present. this has already been committed upstream, and adding it as

a patch is just a temporary fix to keep subversion from segfaulting

when you do 'svn --version' until i have a chance to update the port

to a newer version of apr.

    • -0
    • +15
    /trunk/packages/freebsd/apr/files/patch-apr-misc-unix-getopt.c
Add regression tests for issues 591 and 847.

* subversion/tests/clients/cmdline/copy_tests.py

(copy_files_with_properties): New test for issue 591.

* subversion/tests/clients/cmdline/update_tests.py

(update_after_add_rm_deleted): New test for issue 847.

* subversion/tests/clients/cmdline/basic_tests.py

(basic_checkup): More error checks.