The only thing keeping me from finally removing svn_wc_entry_t from
harvest_committables is keep_local. There was some discussion on IRC
a few days ago
but it really resolve things. It includes pointers to Neels patch to
make keep-local remove tree conflicts.
Tree conflicts generally prevent a commit, however if the conflict is
inside a directory that has been deleted with "svn rm --keep-local"
then the commit will be allowed. So
rm -rf repo wc
svnadmin create repo
svn mkdir -mm file://`pwd`/repo/A
svn mkdir -mm file://`pwd`/repo/A/B
svn co -r1 file://`pwd`/repo wc
svn cp file://`pwd`/repo/A wc/A/B
svn up wc # creates tree conflict for A/B
svn ci -mm wc # fails because of tree conflict
svn rm wc/foo # fails because of tree conflict
svn rm --keep-local wc/A # succeeds
svn ci -mm wc # succeeds
When A is rm'd the tree conflict is sort of still present, it shows up
in status, but it's all a bit dodgy. After the commit the unversioned
directory A/B still contains a .svn directory. If I revert, rather
than commit, then wc/A/B becomes unversioned.
In wc-metadata.sql there is a comment about working_node.keep_local
My immediate problem is how to replace entry->keep_local in
harvest_committables. Two options are:
1. XFAIL tree_conflicts 17.
2. Add svn_wc__db_temp_get_keep_local.
3. Use Neels' patch to make rm --keep-local/--force remove tree conflicts.
Any other ideas?
Received on 2010-05-12 20:18:00 CEST