I appear to be getting incorrect results reported by "svn info --xml" for a file which has tree conflicts.

I'm testing with svn 1.10.6 (and 1.9.12 which doesn't have this problem).

The results from "svn info" for the conflicted file appear correct.

However, "svn info --xml" reports the wrong information for "source-right"

(it appears to repeat the information given for "source-left"?).

Further details are given below.

Is this a known issue?

Is it fixed in the latest release?

 

This is the script I've used to reproduce the problem:

 

#!/bin/bash

set -eu

svn --version | head -1

TEST_DIR=$(mktemp -d)

svnadmin create $TEST_DIR/test-repos

REPOS_URL="file://$TEST_DIR/test-repos"

svn mkdir -q -m "" $REPOS_URL/trunk

svn copy -q -m "" $REPOS_URL/trunk@1 $REPOS_URL/branch1

svn copy -q -m "" $REPOS_URL/trunk@1 $REPOS_URL/branch2

svn checkout -q $REPOS_URL/branch1 $TEST_DIR/wc

cd $TEST_DIR/wc

echo "Test 1" > file

svn add -q file

svn commit -q -m ""

svn switch -q $REPOS_URL/branch2

echo "Test 2" > file

svn add -q file

svn commit -q -m ""

svn update -q

svn merge --non-interactive $REPOS_URL/branch1

echo === svn info file

svn info file

echo === svn info --xml file

svn info --xml file

cd $OLDPWD

rm -rf $TEST_DIR

 

"svn info file" reports the following:

 

<snip>...</snip>

Tree conflict: local file obstruction, incoming file add upon merge

  Source  left: (none) ^/trunk/file@1

  Source right: (file) ^/branch1/file@5

 

Using svn 1.10.6, "svn info --xml file" reports the following:

 

<snip>...</snip>

<tree-conflict

   kind="file"

  reason="obstruction"

   victim="file"

   action="add"

   operation="merge">

<version

   kind="none"

   path-in-repos="trunk/file"

   repos-url="file:///var/tmp/tmp.WtRD9QhuuQ/test-repos"

   revision="1"

   side="source-left"/>

<version

   side="source-right"

   kind="none"

   path-in-repos="trunk/file"

   repos-url="file:///var/tmp/tmp.WtRD9QhuuQ/test-repos"

   revision="1"/>

</tree-conflict>

</entry>

</info>

 

You can see the information for "source-right" is not correct.

It works fine with svn 1.9.12:

 

<version

   side="source-right"

   kind="file"

   path-in-repos="branch1/file"

   repos-url="file:///var/tmp/tmp.0EYqbyreRp/test-repos"

   revision="5"/>

 

I've tested with other sorts of tree conflict - they all show the same problem.

 

Thanks,

David