blob: cb1fdcbf8a48d375a92d73c54a4ea3e1f9d0cc2b [file] [log] [blame]
This branch is for handling replacing files with history within a wc.
This covers issues #2148, #2135, #1516 and #845.
Resolution of this issue paves the way for resolving issue #2144.
Specific list of items to do:
* Implement handling of properties [done].
* Implement handling of properties on directories. [done]
* Write tests
- revert of locally replaced file [ done ]
- revert of locally replaced file with props [ done ]
- update with changes to a replaced file (with props)
- update with changes to a replaced file (with prop-changes)
* Change tests from XFAIL to PASS: [ done ]
- revert_tests 4 (revert_replace_with_history_with_props)
to do this, a revert-file needs to be implemented for prop-base [done]
* Implement the enhancements to the cp and mv command [ done ]
* Possibly enhance the handling of checksums. Right now the code isn't
storing checksums for replaced files. To fix this would require a new
field in entries which is no problem, since we need to upgrade the wc
format anyway. [ not done; should be part of a larger issue with checksums ]
These sources are possible sources for replacements (with history) in a wc:
- wc->wc copy or move operations
- repos->wc copy operations
- merge operations which contain 'R' (replacement) updates
- merge operations which contain 'D+A' (delete + add) updates
Thoughts
========
* Running 'update' on a target means getting changes from the repository
into the working copy. If a file is replaced and the repository sends
changes to the original file, that is a tree conflict.
Currently we merge the changes into the replaced file and signal
conflicts if there are any (content-conflicts).
* Running a 'merge' on a directory which includes a replaced-with-history
file, though, would not need to result in conflicts. Does ancestry play
a role here? If so, which? [ currently handled as a normal update;
list discussion (non-conclusive) at
http://subversion.tigris.org/servlets/ReadMsg?listName=dev&msgNo=105168 ]
-*- text -*-