"C. Michael Pilato" <cmpil...@collab.net> writes:

> On 03/19/2012 01:25 PM, Philip Martin wrote:
>> Philip Martin <philip.mar...@wandisco.com> writes:
>> 
>>> I can reproduce ove ra_local:
>>>
>>> svnadmin create repo
>>> svn mkdir -mm file://`pwd`/repo/A
>>> svn mkdir -mm file://`pwd`/repo/B
>>> svn co file://`pwd`/repo wc1
>>> svn co file://`pwd`/repo wc2
>>> svn ps svn:mergeinfo /P:2 wc1/A
>>> svn ps svn:mergeinfo /Q:2 wc2/B
>>> svn mkdir wc1/X
>>> svn mkdir wc2/Y
>>> svn ci -mm wc1 & svn ci -mm wc2 & wait
>>>
>>> Gives:
>>>
>>> Sending        wc1/A
>>> Adding         wc1/X
>>> Sending        wc2/B
>>> Adding         wc2/Y
>>>
>>> Committed revision 3.
>>> svn: E160004: Commit failed (details follow):
>>> svn: E160004: predecessor count for the root node-revision is wrong: found 
>>> 3, committing r4
>
> Is this problem specific to the FSFS backend?

Yes, I think it is.

For BDB the dag_node_t type in dag.c doesn't have a node_revision
member.  When update_ancestry does svn_fs_bdb__put_node_revision it
writes to the database and subsequent svn_fs_bdb__get_node_revision will
see the updated value.

For FSFS the svn_fs_fs__put_node_revision call writes to the
transactions subdir but the in-memory node_revision doesn't get changed.

-- 
uberSVN: Apache Subversion Made Easy
http://www.uberSVN.com

Reply via email to