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

RE: moving tree-conflict victim results in assertion failure

From: Bert Huijben <bert_at_qqmail.nl>
Date: Fri, 29 Jul 2011 09:29:41 +0200

> -----Original Message-----
> From: Stefan Sperling [mailto:stsp_at_elego.de]
> Sent: vrijdag 29 juli 2011 1:38
> To: dev_at_subversion.apache.org
> Subject: moving tree-conflict victim results in assertion failure
>
> The script below creates a tree-conflict in a rather strange way
> (checkout on top of an existing unversioned tree). But what happens
> next is more interesting. It tries to move the tree-conflict victim
> and this triggers an assertion in wc_db.c.

The problem here is not moving a tree conflict but copying (moving?) a
deleted node (which happens to be tree conflicted.

I think we should make this return a proper error for 1.7.0 if it isn't in
the new move code.

        Bert

>
> This reproduces with trunk and 1.7.x.
>
> Script:
> [[[
> #!/bin/sh
>
> set -e
>
> cwd=`pwd`
> basename=`basename $0`
> scratch_area="`echo $basename | sed -e s/\.sh$//`"
> repos=$scratch_area/repos
> trunk=$scratch_area/trunk
> branch=$scratch_area/branch
> trunk_url=file:///$cwd/$repos/trunk
> branch_url=file:///$cwd/$repos/branch
>
> set -x
>
> rm -rf $scratch_area
> mkdir -p $scratch_area
>
> mkdir -p $trunk
> mkdir $trunk/epsilon
> echo zeta > $trunk/epsilon/zeta
>
> svnadmin create $cwd/$repos
> svn import $trunk $trunk_url -m "importing project tree"
> # Do not remove the imported tree, but try to checkout a WC on top of it:
> svn checkout $trunk_url $trunk
>
> svn st $trunk
>
> svn mv $trunk/epsilon $trunk/epsilon2
> ]]]
>
> The output (with 1.7.x) is:
>
> $ ./bug.sh
> + rm -rf bug
> + mkdir -p bug
> + mkdir -p bug/trunk
> + mkdir bug/trunk/epsilon
> + echo zeta
> + > bug/trunk/epsilon/zeta
> + svnadmin create /tmp/bug/repos
> + svn import bug/trunk file:////tmp/bug/repos/trunk -m importing project
> tree
> Adding bug/trunk/epsilon
> Adding bug/trunk/epsilon/zeta
>
> Committed revision 1.
> + svn checkout file:////tmp/bug/repos/trunk bug/trunk
> C bug/trunk/epsilon
> A bug/trunk/epsilon/zeta
> Checked out revision 1.
> + svn st bug/trunk
> D C bug/trunk/epsilon
> > local unversioned, incoming add upon update
> D bug/trunk/epsilon/zeta
> Summary of conflicts:
> Tree conflicts: 1
> + svn mv bug/trunk/epsilon bug/trunk/epsilon2
> A bug/trunk/epsilon2
> subversion/libsvn_wc/wc_db.c:4122: (apr_err=235000)
> svn: E235000: In file 'subversion/libsvn_wc/wc_db.c' line 4122: assertion
> failed (presence == svn_wc__db_status_normal)
> Abort trap (core dumped)
Received on 2011-07-29 09:30:30 CEST

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