You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Alexander Sinyushkin <Al...@svnkit.com> on 2009/07/29 20:58:36 UTC

Bug while trying to handle a property conflict caused by update

Hello,

I'd like to report two problems.

First of all, imagine you've two similar working copies of trunk from 
the same repo: wc1 and wc2.
Say, you have a directory wc1/A (and wc2/A, of course). You add a 
property 'xx' on wc1/A with the value '1' and
commit it. Then you add the same property 'xx' on wc2/A, but with the 
value '2' on wc2/A.

1. And here comes the first problem. If you run 'svn up --accept base' 
in wc2 you'll result with two files in wc2/A/.svn - dir-props (empty) 
and dir-prop-base (with value '1').
Then when you run 'svn up -rREV_WHERE_NO_XX_EXISTS_ON_A'  working copy 
gets updated, 'svn pl wc2/A' shows no properties but nevertheless, the file
wc2/A/.svn/dir-prop-base still resides in the admin area.

2. If instead of running an update with the key --accept you run simply 
'svn up' you'll get a property conflict. Then if you first try to select 
'df' and after that 'r'
svn crashes, like this:

Conflict for property 'xx' discovered on 'A'.
Select: (p) postpone, (df) diff-full, (e) edit,
        (s) show all options: df
--- tempfile.2.tmp      Wed Jul 29 22:54:54 2009
+++ tempfile.tmp        Wed Jul 29 22:54:54 2009
@@ -1 +1 @@
-1
\ No newline at end of file
+2
\ No newline at end of file
Select: (p) postpone, (df) diff-full, (e) edit, (r) resolved,
        (s) show all options: r
svn: Couldn't do property merge
svn: Conflict callback violated API: returned no merged file.

This leaves the wc in an incomplete state:
$  svn stat
!       .
!M      A

I've attached scripts for both of the two use-cases.
Regards,

----
Alexander Sinyushkin,
TMate Software,
http://svnkit.com/ - Java [Sub]Versioning Library!

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2376718