Log Message: |
Shelving: Use whole-file storage and 3-way merge.
Use whole-file storage completely, instead of patch storage, and use
3-way merge to apply changes to a working file (and dir props).
Don't discriminate 'binary' files at storage time. When unshelving
(applying) a change, treat 'binary' files by the choose-one-or-the-other
method; raise a conflict if the working file differs from the stored
base.
In other words, this is closer to how a normal merge works.
TODO:
- The svn_client_shelf_export_patch() API is disabled for now.
- Handling of conflicts is weak.
* subversion/include/svn_client.h
(svn_client_shelf_test_apply_file): Avoid using the term 'patch' in the
doc string.
* subversion/libsvn_client/shelf.c
Implement storage of base and working text and props. Remove storage in
patch files.
* subversion/svn/shelf-cmd.c
Remove detection of 'reject' notifications from patching. Avoid using the
term 'patch' in doc strings.
* subversion/tests/cmdline/shelf_tests.py
(shelve_empty_deletes): Remove XFail, as now passes.
|