subversion

Checkout Tools
  • last updated 3 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Remove the 'shelving-v3' branch, now it's reintegrated.
On the 'shelving-v3' branch: Catch up with trunk@1853898.
    • ?
    /branches/shelving-v3/subversion/libsvn_wc/wc-queries.sql
On the 'shelving-v3' branch: copy WC base using 'checkout' instead of 'cp -r'.

For now, this completely ignores the mixed-rev, switched-URL,

mixed-depth WC state, and performs a simple checkout from the repo.

Eventually it will need to recreate the exact base state, and will need to

read data from the user's WC instead of the repo for fast local operation.

* subversion/libsvn_client/shelf.c

(shelf_copy_base): Create shelf base WC by a simple checkout.

On the 'shelving-v3' branch: don't include unversioned files in count of changed paths.

* subversion/libsvn_client/shelf.c

(shelf_status_walk): Tweak a comment.

(shelf_copy_base): Be sure to remove all unversioned files.

On the 'shelving-v3' branch: remove debugging that broke tests.

* subversion/tests/cmdline/shelf_tests.py

(shelve_unshelve_verify): Remove a debugging 'raise' statement.

Re-implement shelving to use a separate WC for the storage of each shelf.

* subversion/include/svn_client.h

(svn_client__shelf_mods_editor): New.

(svn_client__shelf_replay): Add a notification callback.

* subversion/libsvn_client/shelf.c

(shelf_version_files_dir_abspath): Tweak the directory name to end in

".wc", for clarity.

(get_metadata_abspath,

get_base_file_abspath,

get_working_file_abspath,

get_base_props_abspath,

get_working_props_abspath): Delete.

(status_create,

kind_to_char,

char_to_kind,

status_to_char,

char_to_status,

wc_status_serialize,

wc_status_unserialize,

status_write): Delete.

(status_augment): New.

(status_read): Read WC status directly from shelf-storage WC.

(shelf_status_visitor_t,

shelf_status_baton_t,

shelf_status_visitor,

shelf_status_visit_path,

shelf_status_walk): Adjust to use a WC status walk directly.

(write_changes_baton_t,

notify_shelved,

notify_not_shelved,

read_props_from_wc,

write_props_to_shelf,

read_props_from_shelf,

store_file,

write_changes_visitor,

changelist_filter_baton_t,

changelist_filter_func,

wc_walk_status_multi,

shelf_write_changes): Delete.

(get_shelves_dir): New.

(shelf_construct): Use a different storage dir.

(paths_changed_walk_baton_t,

paths_changed_visitor,

shelf_paths_changed,

svn_client__shelf_paths_changed): Remove unneeded 'as abspath' option.

(send_notification,

apply_prop_mods,

apply_file_mods,

path_driver_cb_baton_t,

path_driver_cb_func,

shelf_replay_path_baton_t,

shelf_replay_path_visitor): Delete.

(svn_client__shelf_replay): Use the WC replay API instead of a shelf-

specific implementation.

(test_apply_file_visitor): Tweak constness.

(file_changed,

file_deleted,

file_added,

diff_baton_t,

diff_visitor): Delete.

(wc_mods_editor): Add explicit notification callback and result pool.

(svn_client__shelf_mods_editor): Expose in the semi-public API.

(svn_client__shelf_apply): Adjust calls.

(unapply_walk_baton_t,

unapply_visitor): New.

(svn_client__shelf_unapply): Rewrite, using a shelf status walk that

reverts each visited path.

(svn_client__shelf_diff): Rewrite, using a WC diff instead of a

shelf-specific implementation.

(shelf_copy_base): New.

(shelf_save_notifer_baton_t,

shelf_save_notifier): New.

(svn_client__shelf_save_new_version3): Rewrite, using a WC replay piped

into a shelf mods editor.

(svn_client__shelf_list): Adjust the shelf storage dir.

* subversion/tests/cmdline/shelf_tests.py

(shelve_mkdir,

shelve_replace_dir): Don't expect "cannot shelve". Do expect failure, for

now.

(shelve_rmdir,

shelve_file_copy,

shelve_dir_copy): Don't expect "cannot shelve".

(refuse_to_shelve_conflict): Change the test case to avoid a known,

unrelated bug.

* subversion/tests/cmdline/svntest/sandbox.py

(Sandbox.build): Expect each sandbox to use an additional WC directory

"<wc-dir-basename>.shelves".

* notes/shelving/shelf-structure.txt

Update to this version.

Make a branch for shelving v3.