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

Tree conflict breaks svn info on root of working copy

From: Fitzpatrick, Ben <ben.fitzpatrick_at_metoffice.gov.uk>
Date: Thu, 29 Aug 2013 14:00:55 +0000

Hi everyone,

Using Subversion 1.8.1 on Linux (RHEL6), a merge that creates a "local file obstruction, incoming file add upon merge" file tree conflict will break svn info on the root of the working copy. That tree conflict can be caused by adding a file with a particular name on one branch, committing, then independently adding a file with an identical name on another branch, committing, and then merging one branch into another.

Following the merge, if the working copy is at "/home/foo/working_copy", the error message will be:

foo_at_machine$ svn info /home/foo/working_copy/

...

svn: E155007: '/home/foo' is not a working copy

This exits with a return code of 1.

The error message refers to the parent directory above the root of the working copy. The working copy appears superficially fine, and "svn status" and even svn info on specific files and subdirectories works OK.

svn resolve --accept working on the tree conflict file makes the error go away.

This script reproduces the error for me:

#!/bin/bash
set -eu
TEST_DIR=$(mktemp -d)
mkdir $TEST_DIR/repo_files
svnadmin create $TEST_DIR/test_repos
TEST_REPOS_URL="file://$TEST_DIR/test_repos"
svn import -q $TEST_DIR/repo_files \
    $TEST_REPOS_URL/trunk -m " "
svn mkdir -q $TEST_REPOS_URL/branches -m " "
svn copy -q -r1 $TEST_REPOS_URL/trunk \
                $TEST_REPOS_URL/branches/foo -m " "
svn copy -q -r1 $TEST_REPOS_URL/trunk \
                $TEST_REPOS_URL/branches/bar -m " "
mkdir $TEST_DIR/wc_parent
svn checkout -q $TEST_REPOS_URL/branches/foo $TEST_DIR/wc_parent/working_copy
cd $TEST_DIR/wc_parent/working_copy
touch new_file
svn add -q new_file
svn commit -q -m " "
svn switch -q $TEST_REPOS_URL/branches/bar
touch new_file
svn add -q new_file
svn commit -q -m " "
svn update -q
svn merge -q --non-interactive $TEST_REPOS_URL/branches/foo
svn info

It should print the normal svn info output, then exit with an error like:

svn: E155007: '/var/tmp/tmp.wl6qMmFQMw/wc_parent' is not a working copy

Cheers,

Ben
Received on 2013-08-29 16:14:14 CEST

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