Checkout Tools
  • last updated 1 hour ago
Constraints: committers
Constraints: files
Constraints: dates

Changeset 1335695 is being indexed.

Follow-up to r1335566:

* subversion/include/svn_io.h,

* subversion/libsvn_subr/stream.c

(svn_stream_lazyopen_create): Tweak function signature and behavior

to just return the stream directly (rather than an error).

* subversion/libsvn_wc/adm_ops.c

(svn_wc__get_pristine_contents_by_checksum): Update call to


Suggested by: gstein

Factor out the HTTPv1 CHECKOUT processing.

* subversion/libsvn_ra_serf/commit.c:

(checkout_context_t): adjust commentary. this structure is now

associated *only* for the request processing.

(commit_context_t): do not hold a checkout structure, but just a new

BASELINE_URL member for the resulting working resource.

(dir_context_t, file_context_t): drop the checkout context and

retain just the URL of the working resource

(checkout_node): new helper function to run a synchronous CHECKOUT

request, and return the resulting working resource's URL.

(checkout_dir): take a SCRATCH_POOL. rejigger in terms of the

resulting WORKING_URL member and loss of the CHECKOUT member. use

the new checkout_node() helper.

(checkout_file): take a SCRATCH_POOL. rewrite in terms of the new

WORKING_URL member and loss of the CHECKOUT member. use the new

checkout_node() helper function.

(setup_copy_dir_headers): switch to the new WORKING_URL member

(open_root): pass a scratch pool to checkout_dir() and adjust for

the enw BASELINE_URL member

(delete_entry, add_directory, change_dir_prop, add_file): pass a

scratch pool to checkout_dir, and adjust for the new WORKING_URL


(close_directory): adjust for the new WORKING_URL member

(close_file): pass a scratch pool to checkout_file, and adjust for

the new WORKING_URL mebmer

* CHANGES: In the 1.8 section, list a new feature of ra_serf (see r1333936)

Revise examples shown in the output of 'svn help log'.

* subversion/svn/main.c

(svn_cl__cmd_table): Provide more useful examples and explain the purpose

of each example in detail.

* subversion/tests/cmdline/getopt_tests_data/svn_help_log_switch_stdout:

Adjust expected output.

In the output of 'svn help log', provide an example that shows how

to view log messages for any changes the next 'svn update' will apply.

* subversion/svn/main.c

(svn_cl__cmd_table): Add an example to 'svn help log': svn log -rBASE:HEAD

* subversion/tests/cmdline/getopt_tests_data/svn_help_log_switch_stdout:

Adjust expected output.

Inspired by: anatoly techtonik

Avoid opening pristine store file handles until they are actually


* subversion/libsvn_wc/adm_ops.c

(get_pristine_lazyopen_baton_t): New private callback baton type.

(get_pristine_lazyopen_func): Callback implementation.

(svn_wc__get_pristine_contents_by_checksum): Use the new lazyopen

stream mechanics to avoid opening a file handle to the pristine

contents until it's first really needed.

Suggested by: gstein

On the ev2-export branch:

* subversion/tests/cmdline/

(basic_commit_corruption): Conditionally skip, with an explanitory note.

On the ev2-export branch:

Out daily sync merge: bring up-to-date with trunk.

  1. … 6 more files in changeset.
* docs/community-guide/

($SVN): Use $SVN from the environment, if set.

Split out a couple of tests which are really testing different things.

* subversion/tests/cmdline/

(basic_corruption): Split into...

(basic_commit_corruption, basic_update_corruption): ...these.

(test_list): Update.

Introduce a generic (and as-yet-unused) lazy-open wrapper stream.

* subversion/include/svn_io.h

(svn_stream_lazyopen_func_t): New callback function type.

(svn_stream_lazyopen_create): New function.

* subversion/libsvn_subr/stream.c

(lazyopen_baton_t): New private baton type.

(lazyopen_if_unopened, read_handler_lazyopen, skip_handler_lazyopen,

write_handler_lazyopen, close_handler_lazyopen,

mark_handler_lazyopen, seek_handler_lazyopen): New helper

functions, machinery for...

(svn_stream_lazyopen_create): ... this new API implemention.

Suggested by: gstein

* STATUS: Nominate r1335555, with +1 from danielsh via IRC.

Fix python tests execution for jsvn.

* subversion/tests/cmdline/svntest/

(execute_tests): svnversion_binary variable was used instead of svnmucc_binary

Patch by: Dmitry Pavlenko <>

* subversion/include/svn_ra.h

(svn_ra_get_wc_contents_func_t): Re-wrap long lines, and doc @since.

During FSFS hotcopy, create a revprop-generation file in the destination

if the source has one. A new revprop cache namespace is forced for the

destination because the hotcopy operation cannot reliably detect which

generation of revprops it has copied.

* subversion/libsvn_fs_fs/fs_fs.c

(hotcopy_body): Create a revprop-generation file in the destination

filesystem, with a value of zero, if such a file exists in the source.

* subversion/tests/cmdline/

(check_hotcopy_fsfs): Ensure that the revprop-generation file in the

hotcopy destination has a value of zero.

(hotcopy_dot, hotcopy_incremental,

hotcopy_incremental_packed): Remove XFail marker.

* subversion/libsvn_fs_fs/fs.h

(PATH_REVPROP_GENERATION): Fix typo in this macro: geneneration -> generation

In FSFS hotcopy, initialise shared FS data and caches for the destination

filesystem in a special way.

Trying to initialise shared data for the dst_fs before calling

svn_fs_fs__hotcopy() fails because the UUID of dst_fs it not initialised yet.

Untie this chicken-and-egg knot by pointing the shared data pointer in dst_fs

to the data for src_fs. See the comment added in hotcopy_setup_shared_fs_data().

* subversion/libsvn_fs_fs/fs.c

(fs_hotcopy): Do not attempt to initialise shared data for dst_fs here.

* subversion/libsvn_fs_fs/fs_fs.c

(hotcopy_setup_shared_fs_data): New helper function that points the shared

data pointer of the hotcopy destination to shared data of the hotcopy source.

(hotcopy_create_empty_dest, svn_fs_fs__hotcopy): Initialise shared data

and caches for the hotcopy destination.

* subversion/tests/cmdline/

(hotcopy_symlink): This test now PASSes again, so remove the XFail marker.

Add --log-level argument to


(.): Add documentation of new argument and fix some indenting and placement.

(.): Parse --log-level

(.): Pass log level to the test harness.

* build/

(_run_py_test): Setup logger if not previously setup correctly.

* subversion/libsvn_fs_fs/fs.c

(fs_hotcopy): Remove #if 0 commented code that was added in r1331125.

This won't ever be used as-is. Discussed with danielsh who said:

"We should remove that temp code and ensure we open DST_FS and

initialize its caches properly in all cases."

* subversion/libsvn_fs_fs/fs.c

(fs_hotcopy): Re-indent. No functional change.

* subversion/libsvn_fs_fs/fs.c

(fs_hotcopy): Garbage collect intermediate 'path' variable.

Just use src_path and dst_path directly. No functional change.

* subversion/libsvn_fs_fs/fs.c

(fs_hotcopy): Remove redundant temporary 'fs' variables.

Just use the existing src_fs and dst_fs directly.

No functional change.

Simplify some path processing in libsvn_client's lock processing by just

storing the absolute path in the baton.

* subversion/libsvn_client/locking_commands.c

(lock_baton): Rename field.

(store_locks_callback): Use a simple join. Update user.

(svn_client_lock, svn_client_unlock): Store abspath in baton.

* subversion/tests/cmdline/

(unlock_already_unlocked_files): Remove serf specific skip marker as this

problem appears to be fixed by the recent serf work.

Propagate the handler into the response processing callbacks.

* subversion/libsvn_ra_serf/update.c:

(report_fetch_t): add HANDLER field

(handle_fetch, handle_stream, handle_local_fetch): assert we have

the handler, and use it.

(fetch_file, svn_ra_serf__get_file): initialize HANDLER

Make svn_ra_serf__handle_server_error private.

* subversion/libsvn_ra_serf/ra_serf.h:

(svn_ra_serf__handle_server_error): removed

* subversion/libsvn_ra_serf/util.c:

(svn_ra_serf__handle_server_error); renamed to ...

(handle_server_error): ... this. rename param to SCRATCH_POOL.

(svn_ra_serf__handle_xml_parser): track rename

(handle_response): track rename

On the ev2-export branch:

* subversion/libsvn_client/commit_util.c

(svn_client__do_commit): Track which files have modifications, and send

the appropriate txdelta notification.

Switch the locks processing over to proper error parsing/handling.

* subversion/libsvn_ra_serf/locks.c:

(lock_info_t): remove DONE member.

(determine_error): new helper for resolving the correct error to

return from locking operations.

(handle_lock): for errors 403 and 423, switch over to processing the

body for a potential human-readable server error. drop the older

error handling.

(svn_ra_serf__get_lock, svn_ra_serf__lock): switch to HANDLER->DONE

and run_one(), and use determine_error() to select the returned error.

* subversion/libsvn_ra_serf/util.c:

(handle_response_cb): ensure that DONE is set if we ever see EOF

On the ev2-export branch:

Fetch the children of the actual working node, not whatever happened to

be there before. This is pertinent in the case of replaced directories.

* subversion/libsvn_client/commit_util.c

(do_item_commit): Use svn_wc__node_get_children_of_working_node() to get

the children of an added directory.

On the ev2-export branch:

Handle replacements when committing additions and copies.

* subversion/libsvn_client/commit_util.c

(do_item_commit): Account for replacements.