[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Commiting, tree conflicts and keep-local

From: Philip Martin <philip.martin_at_wandisco.com>
Date: Wed, 12 May 2010 18:55:08 +0100

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
http://colabti.org/irclogger/irclogger_log/svn-dev?date=2010-05-06#l44
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
being temporary.

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?

-- 
Philip
Received on 2010-05-12 20:18:00 CEST

This is an archived mail posted to the Subversion Dev mailing list.