- r981091: 2010-07-31 20:46:59 [stefan2] User: stefan2
-
[performance] /subversion/include/private/svn_file_cache.h [log, file]
[performance] /subversion/libsvn_subr/svn_file_cache.c [log, file]
Introduce a private file handle cache API and provide an implementation.
* subversion/include/private/svn_file_cache.h
(svn_file_cache_t, svn_file_cache__handle_t): introduce new opaque data types
(svn_file_cache__open, svn_file_cache__has_file,
svn_file_cache__get_apr_handle, svn_file_cache__get_name,
svn_file_cache__close, svn_file_cache__flush, svn_file_cache__create_cache):
declare new private API functions
* subversion/libsvn_subr/svn_file_cache.c
(cache_entry_t, entry_link_t, entry_list_t): define new internal data structures
(svn_file_cache_t, svn_file_cache__handle_t): define data types used in the API
(lock_cache, unlock_cache, init_list, init_link, link_link, unlink_link,
get_previous_entry, get_next_entry, append_to_list, remove_from_list,
find_first, auto_close_cached_handle, internal_file_open, internal_close_file,
close_handle_before_cleanup, open_entry, close_oldest_idle, auto_close_oldest,
pointer_is_closer): new utility functions
(svn_file_cache__open, svn_file_cache__has_file,
svn_file_cache__get_apr_handle, svn_file_cache__get_name,
svn_file_cache__close, svn_file_cache__flush, svn_file_cache__create_cache):
implement new private API functions
- r981090: 2010-07-31 20:28:49 [stefan2] User: stefan2
-
[performance] /subversion/include/private/svn_serializer.h [log, file]
[performance] /subversion/libsvn_subr/svn_serializer.c [log, file]
Introduce a simple serialization framework that simplifies and
speeds up serialization of most data structures used by FSFS,
for instance.
* subversion/include/private/svn_serializer.h
(PCPCSTR, PCPCVOID, PPVOID): introduce useful typedefs
(svn_serializer__context_t): introduce new data type
(svn_serializer__init, svn_serializer__push, svn_serializer__pop,
svn_serializer__add_string, svn_serializer__get): declare new
serialization functions
(svn_deserializer__resolve): declare new deserialization function
* subversion/libsvn_subr/svn_serializer.c
(source_stack_t, svn_serializer__context_t): define structs
(align_buffer_end, store_current_end_pointer): new utility functions
(svn_serializer__init, svn_serializer__push, svn_serializer__pop,
svn_serializer__add_string, svn_serializer__get,
svn_deserializer__resolve): implement functions
- r981087: 2010-07-31 20:22:50 [stefan2] User: stefan2
-
[performance] /subversion/libsvn_subr/cache-membuffer.c [diff, log, file]
Code formatting only: Inserting a few spaces where they belong.
* subversion/libsvn_subr/cache-membuffer.c
(membuffer_cache_set, membuffer_cache_get,
svn_cache__create_membuffer_cache): minor formatting fixes
- r981075: 2010-07-31 16:52:01 [artagnon] User: artagnon
-
/subversion/tests/cmdline/svnrdump_tests.py [diff, log, file]
/subversion/tests/cmdline/svnrdump_tests_data/skeleton.dump [log, file]
/subversion/tests/cmdline/svntest/actions.py [diff, log, file]
svnrdump: Add some WIP tests for loading
* subversion/tests/cmdline/svnrdump_tests_data/skeleton.dump: Import
this dumpfile from svnadmin_tests_data after converting to dumpfile
v3 format. This is used in the skeleton_load test in svnrdump.
* subversion/tests/cmdline/svntest/actions.py
(run_and_verify_dump): Add a new argument delta to run 'svnadmin
dump' with '--deltas', since svnrdump can only be checked against
this.
(run_and_verify_svnrdump, run_and_verify_svnrdump_dump,
run_and_verify_svnrdump_load): Split run_and_verify_svnrdump into
two different functions for dumping and loading. The load
counterpart directly wraps main.svnrdump_binary in
main.run_command_stdin.
* subversion/tests/cmdline/svnrdump_tests.py
(run_test, run_dump_test, run_load_test): Split run_test into
run_dump_test and run_load_test, and remove run_test itself.
(run_dump_test): Call run_and_verify_svnrdump_dump as opposed to
run_and_verify_svnrdump.
(run_load_test): Enable revprop changes on the repository, and run
run_and_verify_svnrdump_load. Also set the UUID of the repository to
the UUID specified in the dumpfile so that the outputs don't diverge
there.
(basic_svnrdump, basic_dump): Rename the test to reflect the fact
that we also have load tests now.
(revision_0, revision_0_dump, revision_0_load): Remove the
revision_0 test to create two specialized versions of the test for
dumping and loading revision 0.
(skeleton_load): Add a new test to use the new dumpfile
skeleton.dump.
(copy_and_modify): Call run_dump_test instead of the now
non-existant run_test.
(test_list): Add the fresh tests. basic_svndump, revision_0_dump and
revision_0_load should pass while skeleton_load and copy_and_modify
should fail because of work-in-progress.
- r981074: 2010-07-31 16:36:57 [artagnon] User: artagnon
-
/subversion/svnrdump/load_editor.c [diff, log, file]
* subversion/svnrdump/load_editor.c
(commit_callback): Don't print wrong progress information. Instead,
use a simple progress indicator that's useful for checking in tests.
(close_revision): Print a simple progress message for revision 0 for
checking in tests.
- r981039: 2010-07-31 12:00:21 [artagnon] User: artagnon
-
/subversion/svnrdump/dumpfile_parser.c [old log]
/subversion/svnrdump/load_editor.c [diff, log, file]
/subversion/svnrdump/load_editor.h [diff, log, file]
/subversion/svnrdump/svnrdump.c [diff, log, file]
svnrdump: Restructure workflow to include revprops and handle r0
Revprops are set at the time of creation of the commit_editor;
therefore, every revision needs a corresponding
commit_editor. Revprops are known only while parsing the dumpfile, so
creating the commit_editor in advance is a mistake -- we must create
it immediately after the revprops have been parsed in. Also, by virtue
of the commit_editor being unable to rewrite any revisions, it cannot
handle revision 0.
Memory management has also changed due to the "one commit_editor per
revision" design- within one revision, all allocations are done in a
revision-specific pool in the parser_baton.
* subversion/svnrdump/dumpfile_parser.c: Remove file and move all the
code out into load_editor.c.
* subversion/svnrdump/load_editor.c
(build_dumpfile_parser, get_dumpstream_loader): Cosmetic
rename. Change API to accept a session instead of editor/
edit_baton. The editor/ edit_baton is created in new_node_record
now. Add the code for setting up the parser and parse_baton.
(drive_load_editor, get_load_editor): Remove both functions: There
is no more load editor- just a dumpstream loader to be driven.
(drive_dumpstream_loader): New function to simply call
svn_repos_parse_dumpstream2 now.
(new_revision_record): Don't open_root here since we don't have a
commit_editor yet. Allocate memory to the revision-specific pool in
the parser_baton pool and set the commit_editor/ commit_edit_baton
to NULL.
(uuid_record): Set the uuid field in parse_baton. Currenly unused.
(new_node_record): If the commit_editor doesn't already exist, it
means that this is the first node in the revision: take this
opportunity to create the commit editor and call set_target_revision
and open_root. Note that this commit editor will be used for all
nodes in this revision. Also change the if-statement into a
switch-case for the action, just like in the dumpfile_parser.
(set_revision_property): Implement special handling for revision 0
and stuff the datestamp into the parse_baton to use in
close_revision.
(set_node_property, delete_node_property, remove_node_props,
set_fulltext, apply_textdelta, close_node): Import the relevant code
from dumpfile_parser.c making minor semantic modifications where
necessary.
(close_revision): For revision 0, don't attempt to close a
non-existant commit_editor; since revision 0 doesn't have any nodes,
new_node_record is never fired and consequently, a commit_editor is
never created. Also implement special handling for the datestamp
after closing the revision (learnt from svnadmin).
* subversion/svnrdump/load_editor.h
(build_dumpfile_parser, get_dumpstream_loader): Track rename.
(drive_load_editor, get_load_editor): Track removal.
(drive_dumpstream_loader): Track new function creation.
(revision_baton): Add a revprop_table to store the revprops before
writing them.
(parse_baton): Add session and uuid. Session is needed to make RA
API calls outside the operation of the commit editor, and uuid is
currently just set appropriately, not used anywhere.
* subversion/svnrdump/svnrdump.c
(load_revision): Track API changes.
- r980931: 2010-07-30 19:27:01 [cmpilato] C. Michael Pilato
-
[issue-2779-dev] /BRANCH-README [diff, log, file]
[issue-2779-dev] /subversion/libsvn_ra_serf/options.c [diff, log, file]
[issue-2779-dev] /subversion/libsvn_ra_serf/ra_serf.h [diff, log, file]
[issue-2779-dev] /subversion/libsvn_ra_serf/serf.c [diff, log, file]
On the 'issue-2779-dev' branch:
Get ra_serf's 301/302 handling back to parity with ra_neon's.
* subversion/libsvn_ra_serf/ra_serf.h
(svn_ra_serf__exchange_capabilities): Add 'corrected_url' parameter.
* subversion/libsvn_ra_serf/options.c
(svn_ra_serf__exchange_capabilities): Add 'corrected_url' parameter,
and handle 301 and 302 status codes directly when 'corrected_url' is
of interest to the caller.
(svn_ra_serf__has_capability): Update call to
svn_ra_serf__exchange_capabilities().
* subversion/libsvn_ra_serf/serf.c
(svn_ra_serf__open): Update call to svn_ra_serf__exchange_capabilities().
* BRANCH-README
Note that the ra_serf basic work is done, too.
- r980929: 2010-07-30 19:10:14 [cmpilato] C. Michael Pilato
-
Click to show all 30 changes...
Sync with trunk changes. (Merged /subversion/trunk:r980618-980924)
- r980924: 2010-07-30 19:04:17 [cmpilato] C. Michael Pilato
-
/subversion/libsvn_ra_serf/blame.c [diff, log, file]
/subversion/libsvn_ra_serf/commit.c [diff, log, file]
/subversion/libsvn_ra_serf/getlocations.c [diff, log, file]
/subversion/libsvn_ra_serf/getlocationsegments.c [diff, log, file]
/subversion/libsvn_ra_serf/mergeinfo.c [diff, log, file]
/subversion/libsvn_ra_serf/options.c [diff, log, file]
/subversion/libsvn_ra_serf/property.c [diff, log, file]
/subversion/libsvn_ra_serf/ra_serf.h [diff, log, file]
/subversion/libsvn_ra_serf/update.c [diff, log, file]
/subversion/libsvn_ra_serf/util.c [diff, log, file]
Finish issue #3685: ra_serf fails to alert users of relocated
repositories (301/302 handling).
* subversion/libsvn_ra_serf/ra_serf.h
(svn_ra_serf__simple_request_context_t): Add 'location' member.
(struct svn_ra_serf__xml_parser_t): Add 'location' member.
(svn_ra_serf__error_on_status): Add 'location' parameter.
(svn_ra_serf__response_get_location): New function.
* subversion/libsvn_ra_serf/util.c
(svn_ra_serf__response_get_location): New function.
(svn_ra_serf__handle_status_only, svn_ra_serf__handle_multistatus_only,
svn_ra_serf__handle_xml_parser): Use svn_ra_serf__response_get_location()
to populate the context's
'location' member.
(svn_ra_serf__error_on_status): Add 'location' parameter, and use it
(instead of the 'path' parameter) to report redirect locations.
* subversion/libsvn_ra_serf/blame.c
(svn_ra_serf__get_file_revs): Update call to svn_ra_serf__error_on_status().
* subversion/libsvn_ra_serf/commit.c
(return_response_err): Update call to svn_ra_serf__error_on_status(),
and give the code some room to breathe.
* subversion/libsvn_ra_serf/getlocations.c
(svn_ra_serf__get_locations): Update call to svn_ra_serf__error_on_status().
* subversion/libsvn_ra_serf/getlocationsegments.c
(svn_ra_serf__get_location_segments): Update call to
svn_ra_serf__error_on_status(). While here, fix an error leak, too.
* subversion/libsvn_ra_serf/mergeinfo.c
(svn_ra_serf__get_mergeinfo): Update call to svn_ra_serf__error_on_status().
* subversion/libsvn_ra_serf/options.c
(svn_ra_serf__exchange_capabilities): Use svn_ra_serf__error_on_status() to
notice common errors, including the 301/302 redirect variety.
* subversion/libsvn_ra_serf/property.c
(svn_ra_serf__wait_for_props): Update call to svn_ra_serf__error_on_status().
* subversion/libsvn_ra_serf/update.c
(handle_stream): Use svn_ra_serf__response_get_location(), and
update call to svn_ra_serf__error_on_status().
- r980910: 2010-07-30 18:23:52 [artagnon] User: artagnon
-
/subversion/svnrdump/dumpfile_parser.c [diff, log, file]
* subversion/svnrdump/dumpfile_parser.c
(new_node_record, apply_textdelta, close_node, close_revision): Wrap
all the calls to commit_editor callback functions in SVN_ERR.
- r980889: 2010-07-30 17:05:37 [artagnon] User: artagnon
-
/subversion/svnrdump/dumpfile_parser.c [diff, log, file]
/subversion/svnrdump/load_editor.c [diff, log, file]
/subversion/svnrdump/load_editor.h [diff, log, file]
/subversion/svnrdump/svnrdump.c [diff, log, file]
svnrdump: Add a buggy proof-of-concept load implementation. Currently
loads a few revisions with the wrong headers.
* subversion/svnrdump/dumpfile_parser.c
(new_revision_record): Write in the logic for handing a new revision
record. Parse the headers and set the directory baton using
commit_editor->open_root.
(new_node_record): Write in the logic for parsing the headers into
the action field of the node_baton. Then, depending on the
Node-action header, call the right commit_editor function.
(apply_window): Remove both versions of the function in favor of
calling the corresponding function in the commit_editor from
apply_textdelta.
(apply_textdelta): Set the handler/ handler baton using the
corresponding callback in commit_editor. Remove references to the
baton we used to have for applying a textdelta.
(close_node, close_revision): Call the corresponding callback in
commit_editor.
(build_dumpfile_parser): Change API to accept the commit editor and
commit editor baton; these are central to the functionality in the
callback functions. Remove references to apply_baton; stuff the
commit_editor and commit_edit_baton in the parse_baton instead.
* subversion/svnrdump/load_editor.c
(drive_load_editor): Change the API to omit operation- all
operations are handled within the callback functions. Track the
changed API of build_dumpfile_parser.
(get_load_editor): Change the API to omit operation. Instead of
hardcoding the latest revision, use the Revision-number header in
the dumpfile later.
* subversion/svnrdump/load_editor.h
(apply_baton, operation, commit_dir_baton): Remove structures.
(parse_baton): Modify to include commit_editor/ commit_edit_baton
instead of source/ target.
(node_baton): Add action and file baton; remove pool.
(revision_baton): Strip down to use only the necessary fields and
add a directory baton.
(build_dumpfile_parser, drive_load_editor, get_load_editor): Track
API changes and update documentation.
* subversion/svnrdump/svnrdump.c
(load_revisions): Track API changes.
- r980882: 2010-07-30 16:41:08 [danielsh] Daniel Shahaf
-
[atomic-revprop] /subversion/include/svn_repos.h [diff, log, file]
On the 'atomic-revprop' branch:
* subversion/svn/svn_repos.h
(svn_repos_fs_change_rev_prop4): Fix typo in docstring.
- r980878: 2010-07-30 16:05:21 [philip] Philip Martin
-
/subversion/libsvn_wc/status.c [diff, log, file]
* subversion/libsvn_wc/status.c
(svn_wc_walk_status): Make variable const to avoid a compiler warning.
- r980847: 2010-07-30 15:34:56 [stsp] Stefan Sperling
-
[1.6.x] /STATUS [diff, log, file]
* STATUS: Nominate r980811.
- r980830: 2010-07-30 15:27:00 [stsp] Stefan Sperling
-
[1.6.x-r980811] / [diff, log, file]
[1.6.x-r980811] /subversion/libsvn_fs_fs/fs.h [diff, log, file]
[1.6.x-r980811] /subversion/libsvn_fs_fs/fs_fs.c [diff, log, file]
On the 1.6.x-r980811 branch, merge r980811 from trunk, resolving conflicts.
- r980816: 2010-07-30 15:03:57 [stsp] Stefan Sperling
-
[1.6.x-r980811] / [log, file] (copied from r980812 of [1.6.x] /)
Create a brackport branch for r980811.
- r980811: 2010-07-30 14:54:26 [stsp] Stefan Sperling
-
/subversion/libsvn_fs_fs/fs.h [diff, log, file]
/subversion/libsvn_fs_fs/fs_fs.c [diff, log, file]
Fix the "missing fsfs.conf" file situation in FSFS.
This is a follow-up to the partial fix made in r905303.
Make svnadmin upgrade create the fsfs.conf file, and make svnadmin
hotcopy ask the user to run svnadmin upgrade if the file is missing.
* subversion/libsvn_fs_fs/fs.h
(SVN_FS_FS__MIN_CONFIG_FILE): New constant.
* subversion/libsvn_fs_fs/fs_fs.c
(upgrade_body): Try to create the fsfs.conf config file if it is not
a file, and error out if it is a directory.
(svn_fs_fs__hotcopy): Only try to copy fsfs.conf if the format is
new enough to support fsfs.conf. If copying fsfs.conf fails because
it does not exist, raise an error asking the user to run svnadmin upgrade.
Review by: danielsh
(but he saw a slightly older version of this diff)
- r980809: 2010-07-30 14:49:53 [julianfoad] Julian Foad
-
/subversion/libsvn_client/export.c [diff, log, file]
Fix a problem with export (export_tests 11) that occurs only
in SINGLE_DB builds.
* subversion/libsvn_client/export.c
(copy_versioned_files): Don't try to copy permissions from the source
directory if we're exporting from BASE, as then the source dir
on disk isn't relevant and may not exist.
- r980804: 2010-07-30 14:28:14 [hwright] Hyrum Wright
-
/subversion/libsvn_wc/status.c [diff, log, file]
Remove an unused parameter, and in doing so un-shadow a local variable.
* subversion/libsvn_wc/status.c
(handle_statii): Remove the local_abspath param.
(close_directory): Update callers to above.
- r980801: 2010-07-30 14:08:39 [danielsh] Daniel Shahaf
-
[atomic-revprop] /subversion/include/svn_dav.h [diff, log, file]
[atomic-revprop] /subversion/libsvn_ra_neon/fetch.c [diff, log, file]
[atomic-revprop] /subversion/libsvn_ra_neon/options.c [diff, log, file]
[atomic-revprop] /subversion/libsvn_ra_serf/commit.c [diff, log, file]
[atomic-revprop] /subversion/libsvn_ra_serf/options.c [diff, log, file]
[atomic-revprop] /subversion/mod_dav_svn/version.c [diff, log, file]
On the 'atomic-revprop' branch:
Teach ra_neon, ra_serf, and mod_dav_svn to perform a capabilities exchange.
* subversion/include/svn_dav.h
(SVN_DAV_NS_DAV_SVN_ATOMIC_REVPROPS): New macro.
* subversion/mod_dav_svn/version.c
(get_vsn_options): Advertise SVN_DAV_NS_DAV_SVN_ATOMIC_REVPROPS.
* subversion/libsvn_ra_serf/options.c
(capabilities_headers_iterator_callback, options_response_handler),
* subversion/libsvn_ra_neon/options.c
(parse_capabilities):
Map SVN_DAV_NS_DAV_SVN_ATOMIC_REVPROPS to SVN_RA_CAPABILITY_ATOMIC_REVPROPS.
* subversion/libsvn_ra_serf/commit.c
(svn_ra_serf__change_rev_prop),
* subversion/libsvn_ra_neon/fetch.c
(svn_ra_neon__change_rev_prop):
Exchange the ATOMIC_REVPROPS capability.
- r980799: 2010-07-30 14:07:49 [hwright] Hyrum Wright
-
[1.6.x] / [diff, log, file]
[1.6.x] /CHANGES [diff, log, file]
[1.6.x] /STATUS [diff, log, file]
[1.6.x] /subversion/svn/merge-cmd.c [diff, log, file]
[1.6.x] /subversion/tests/cmdline/merge_tests.py [diff, log, file]
Merge r959004 from trunk:
* r959004
Make 'svn' raise an error when the --reintegrate flag is supplied to a
2-URL merge (which isn't a supported use-case).
Justification:
Currently, the --reintegrate option is silently ignored, which has
led to at last one confused user.
Votes:
+1: cmpilato, rhuijben, stsp
- r980797: 2010-07-30 14:04:47 [philip] Philip Martin
-
/subversion/libsvn_wc/adm_files.c [diff, log, file]
* subversion/libsvn_wc/adm_files.c
(svn_wc__internal_ensure_adm): Treat not-present like deleted, this
makes single-db copy_tests 21 get a bit further.
- r980795: 2010-07-30 14:00:12 [stsp] Stefan Sperling
-
[1.6.x] /STATUS [diff, log, file]
* STATUS: Ooops, follow customary practice and add my username to vote.
- r980793: 2010-07-30 13:49:51 [stsp] Stefan Sperling
-
[1.6.x] /STATUS [diff, log, file]
* STATUS: Vote for r959004, approving.
- r980784: 2010-07-30 13:28:39 [philip] Philip Martin
-
/subversion/libsvn_wc/adm_files.c [diff, log, file]
/subversion/libsvn_wc/node.c [diff, log, file]
/subversion/libsvn_wc/wc_db.h [diff, log, file]
Remove an svn_wc_entry_t.
* subversion/libsvn_wc/adm_files.c
(svn_wc__internal_ensure_adm): Remove svn_wc_entry_t, use wc-ng calls.
* subversion/libsvn_wc/wc_db.h
(svn_wc__internal_get_copyfrom_info): New.
* subversion/libsvn_wc/node.c
(svn_wc__internal_get_copyfrom_info): Renamed from
svn_wc__node_get_copyfrom_info, adjust recursive call.
(svn_wc__node_get_copyfrom_info): Now just a wrapper.