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

Changeset 843187 is being indexed.

Rework the path library to accept and return "" as the only canonical

empty path. Make sure the client canonicalizes all paths passed to

the libraries. The path library now assumes that its inputs are

canonical. Remove the use of explicit "." except for a few special


* subversion/include/svn_path.h (svn_path_join, svn_path_split,

svn_path_is_empty, svn_path_is_single_path_component,

svn_path_split_if_file, svn_path_url_add_component): Tweak documentation.

* subversion/libsvn_subr/path.c


(SVN_PATH_SEPARATOR): Delete macro as we cannot change the separator. Change

all uses in the file to an explicit '/'.

(discount_trailing_dot_slash, is_canonical_nts): New functions.

(svn_path_canonicalize, svn_path_canonicalize_nts): Strip trailing

dots as well as slashes, convert "." to "".

(svn_path_join_many): Rework without considering ".".

(add_component_internal): No need to canonicalize.

(svn_path_remove_component, svn_path_remove_component_nts): No need

to canonicalize input. After removing component, strip trailing dots

and slashes, and convert "." to "".

(svn_path_basename): Convert "." to "".

(svn_path_split): No need to canonicalize input.

(svn_path_get_longest_ancestor): No need to canonicalize inputs.

(svn_path_decompose): Convert "." to "".

(svn_path_split_if_file): Return "" as empty path if input is a


(svn_path_url_add_component): Canonicalize input URL.

(svn_path_internal_style, svn_path_local_style, svn_path_join,

svn_path_is_empty, svn_path_is_empty_nts, svn_path_compare_paths,

svn_path_compare_paths_nts, svn_path_is_child,

svn_path_is_single_path_component): Change to use new macros, or to

use explicit '/', or to assert canonical input.

* subversion/clients/cmdline/util.c

(svn_cl__args_to_target_array): Add canonicalization of paths. Move

svn_path_basename call after UTF-8 and canonicalization.

(svn_cl__edit_externally): Convert "" to "." to satisfy APR.

* subversion/tests/libsvn_subr/path-test.c

(SVN_EMPTY_PATH): New macro.

(test_path_split): Remove non-canonical inputs. Add new tests. Test

svn_path_split_nts as well.

(test_join, test_basename): Remove non-canonical inputs. Add new tests.

(test_canonicalize): New test.

* subversion/libsvn_subr/io.c (svn_io_remove_dir, svn_io_stat, svn_io_dir_open,

apr_dir_is_empty): Convert "" to "." to satisfy APR.

* subversion/libsvn_client/update.c (svn_client_update): Accept "" path.

* subversion/mod_dav_svn/update.c (get_from_path_map): Break on "/". How did

this ever work before?

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

svn_path_canonicalize_nts call.

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

svn_path_canonicalize_nts call.

Replace explicit "." with "" and remove the construct

if (svn_path_is_empty_nts(path))

path = "."

from the following files

* subversion/libsvn_wc/entries.c

* subversion/libsvn_wc/adm_ops.c

* subversion/libsvn_wc/adm_files.c

* subversion/libsvn_wc/update_editor.c

* subversion/libsvn_client/switch.c

* subversion/libsvn_client/ra.c

* subversion/libsvn_client/delete.c

* subversion/libsvn_client/diff.c

* subversion/libsvn_client/copy.c

* subversion/libsvn_client/repos_diff.c

* subversion/libsvn_client/commit_util.c

* subversion/libsvn_client/commit.c

* subversion/libsvn_client/add.c

* subversion/libsvn_client/commit.c

* subversion/clients/cmdline/merge-cmd.c

* subversion/clients/cmdline/checkout-cmd.c

* subversion/clients/cmdline/switch-cmd.c

* subversion/clients/cmdline/import-cmd.c

* subversion/libsvn_ra_dav/fetch.c

* subversion/libsvn_ra_dav/commit.c

    • -54
    • +142
    • -2
    • +0
    • -2
    • +0
    • -2
    • +2
    • -240
    • +219
    • -15
    • +15
    • -6
    • +0
    • -1
    • +1
  1. … 13 more files in changeset.
* subversion/libsvn_wc/props.c (svn_wc_props_modified_p): Avoid memory

leaks by passing subpool instead of pool to svn_wc_entry.

Patch by: Joel Rosdahl <>

Fix the Stream wrapping class. It had moved from elsewhere, but wasn't

corrected for its new home in


- import the string module, but hide it from users

- drop the 'util.' prefix and use _string

- Stream.write: drop the 'util.' prefix

While as OSCON, I was talking with some people who want to embed SVN

in their program. In order to dynamically allocate some of the

structures, they need a context pointer to hold their private state

(e.g. the target of a thunking vtable layer). To help these people

out, we simply add a little context field to some of our structures.

Normally, this will be NULL (especially if the structure is statically

allocated constant data).

* svn_delta.h (svn_delta_editor_t): add a void* context field.

This fixes a few small bugs in the Client library bindings.

* bindings/swig/svn_client.i:

- Fixed a crash in the 'out' %typemap that converts an apr_array_header_t

into a python list.

- Added %typemaps for const char *xml_src and const char *xml_dst that

explicitly allow these arguments to be 'None' in python.

Oops. A 'to' got dropped.
* index.html: Don't claim that we'll have all CVS features, just most

of them.

Voted for 18 - josander <>
* build/ Allow use of neon 0.23.1 through 0.23.3.

* www/project_faq.html: Add FAQ entry relating to SSH forwarding.

Upgrade to use Neon 0.23.3 which hopefully fixes the Windows build

issues for real this time.

* build/

Require Neon 0.23.3.


Update to use Neon 0.23.3.


Mention Neon 0.23.3.

Darn tabs
Votes from Bruce Atherton
Added a couple of new logos from Bruce Atherton ( and Michael Meehan
Added new logo from Diego Navarro (
Unify some duplicated code before things get out of sync:

* subversion/include/svn_types.h, subversion/libsvn_subr/validate.c

(svn_mime_type_is_binary): New function.

(svn_mime_type_validate): Renamed from svn_validate_mime_type, so we

have a consistent prefix for mime-type stuff now. All callers


* subversion/clients/cmdline/feedback.c

(notify): Just call svn_mime_type_is_binary, instead of doing

it by hand.

* subversion/libsvn_wc/questions.c

(svn_wc_has_binary_prop): Same, and users may apply in person for a

refund of the cycles wasted this way.

    • -7
    • +1
    • -1
    • +1
    • -1
    • +12
    • -8
    • +13
Resolve issue #888:

Committing an added binary files failed to give "(bin)" feedback, now

it does.

* subversion/libsvn_client/commit_util.c

(do_item_commit): Pass mime-type to notify in the file case. Also,

put braces around conditional bodies for clarity.

* subversion/tests/clients/cmdline/

(update_binary_file, update_binary_file_2): Expect the new notification.

Votes from jknight

New XFAIL test for issue #888.

[in subversion/tests/clients/cmdline]

* (commit_one_new_binary_file): New test.

(test_list): Add commit_one_new_binary_file, marked as XFAIL.

* svntest/ (build_tree_from_commit): Tweak the regex to accept

the "Adding (bin)" status.

Votes from Nicholas Riley.
Hey, when I voted before, #18 wasn't a selection. It's nicer when you

see its icons vs #16.


<>: Vote for 18. And I hate trailing whitespace.

Now that we're so close to the end, it's time to see how the current

leader and runner-up fare when used as icons.

* images/tyrus-svn2-*.png, images/tyrus-svn2.ico,

images/cmpilato-wave-*.png, images/cmpilato-wave.ico:

Added six variants of tyrus-svn2 and cmpilato-wave:

- 256-colour (optimized palette) and 16-colour (Windows palette)

- 48, 32 and 16 pixels wide

and a Windwos icon that containes all those images.

* entries.html: Add links to those images.


    • ?
    • ?
    • ?
    • ?
    • ?
    • ?
    • ?
    • ?
    • ?
    • ?
    • ?
    • ?
    • ?
* build/win32/build_neon.bat:

Add "/D HAVE_EXPAT" to EXPAT_FLAGS to handle one issue with compiling

Neon and Subversion on Windows. However, this doesn't fix all of the

issues and the complete fix requires a release of Neon 0.23.3.

* bindings/swig/INSTALL: new instructions to get swig bindings working.

* bindings/swig/README: add pointer to INSTALL doc.

    • -0
    • +5
    • -0
    • +84
Votes from Anders Rune Jensen
Fix a typo.

Suggested by: Blair Zajac <>

* The test mode is in 'sys.argv[1]', not in 'type'.

Include svn_props.h
    • -0
    • +2
Votes from Will Andrews <>.
Votes from ehabkost