You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Brandon Chubb <bf...@fenway.our.net> on 2008/01/18 18:10:51 UTC

conflicted link

If do a merge of a link and get a conflict, what's the correct
behavior?  Seems like it wouldn't make sense to do any conflict
marking like with a regular file.  

In my case I only care about a real softlink on a real OS (that supports
such a thing) -- not a regular file with some "link somefile" text
to fill in for real link support.

I find that what happens looks like this:

% svn merge -c 8 $REPO/trunk .
Skipped missing target: 'testfile'
A    testfile2
svn: In directory '.'
svn: '.svn/tmp/tempfile.3.tmp' has unsupported special file type '<<<<<<<'

I have to then remove the .tmp file before doing a cleanup and revert.
The testlink.{merge-left*,merge-right*} links are setup as  you would
expect, and there's a testlink.working that is a copy of the old
target of the link.

I was testing a fix for
http://subversion.tigris.org/issues/show_bug.cgi?id=3051
when I hit this -- that bug is fairly basic breakage when trying to
merge changes to a link.

(I confirmed the bad .tmp file behavior with both a 1.4.2 and 1.4.3 client
and 1.4.3 server.)

-bc


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: conflicted link

Posted by bf...@verizon.net.
Thanks for replying Stefan,

On Sat, 19 Jan 2008, Stefan Sperling wrote:
> On Fri, Jan 18, 2008 at 01:10:51PM -0500, Brandon Chubb wrote:
> > % svn merge -c 8 $REPO/trunk .
> > Skipped missing target: 'testfile'
> > A    testfile2
> > svn: In directory '.'
> > svn: '.svn/tmp/tempfile.3.tmp' has unsupported special file type '<<<<<<<'
> 
> Can you provide a shell script that reproduces this reliably?

Sure, see below..

> 
> > I have to then remove the .tmp file before doing a cleanup and revert.
> > The testlink.{merge-left*,merge-right*} links are setup as  you would
> > expect, and there's a testlink.working that is a copy of the old
> > target of the link.
> > 
> > I was testing a fix for
> > http://subversion.tigris.org/issues/show_bug.cgi?id=3051
> > when I hit this
> 
> Which fix for issue #3051 were you testing? Do you have one?

I've got one that works for the basic case, but since this is the
first time I've touched svn code, I should review svn/apr routines
instead of using standard C stuff, probably revisit any allocation
things I've done, and get someone more knowledgable to look it
over.  (Not that it's that big a patch.)

This assumes a fresh repo, but if not, see the "makes R4" line
and use the same thing on the final merge.  Here again, I don't
know what normal "recipes" look like.  It's not a bright thing
for the user to do perhaps, but I'm carefully avoiding the #3051
bug buy not removing old link targets, which makes it look less
realistic.

mkdir linktest
cd linktest
svn co svn://localhost/linkrepo .
mkdir trunk branches
svn add trunk branches
svn ci -m "start trunk,branches" .
svn switch svn://localhost/linkrepo/trunk
echo "test" > testfile1
ln -s testfile1 testlink
svn add testfile1 testlink
svn ci -m "add test file and link" .
svn cp -m "start branch" svn://localhost/linkrepo/trunk svn://localhost/linkrepo/branches/10
echo "more testing" > testfile2
ln -sf testfile2 testlink
svn add testfile2 
svn ci -m "update link" .	# makes R4
svn switch svn://localhost/linkrepo/branches/10
echo "yet more testing" > testfile3
svn add testfile3
ln -s testfile3 testlink
svn ci -m "update link in branch" .
svn merge -c 4 svn://localhost/linkrepo/trunk .


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: conflicted link

Posted by Stefan Sperling <st...@elego.de>.
On Fri, Jan 18, 2008 at 01:10:51PM -0500, Brandon Chubb wrote:
> % svn merge -c 8 $REPO/trunk .
> Skipped missing target: 'testfile'
> A    testfile2
> svn: In directory '.'
> svn: '.svn/tmp/tempfile.3.tmp' has unsupported special file type '<<<<<<<'

Can you provide a shell script that reproduces this reliably?

> I have to then remove the .tmp file before doing a cleanup and revert.
> The testlink.{merge-left*,merge-right*} links are setup as  you would
> expect, and there's a testlink.working that is a copy of the old
> target of the link.
> 
> I was testing a fix for
> http://subversion.tigris.org/issues/show_bug.cgi?id=3051
> when I hit this

Which fix for issue #3051 were you testing? Do you have one?

-- 
Stefan Sperling <st...@elego.de>                 Software Developer
elego Software Solutions GmbH                            HRB 77719
Gustav-Meyer-Allee 25, Gebaeude 12        Tel:  +49 30 23 45 86 96 
13355 Berlin                              Fax:  +49 30 23 45 86 95
http://www.elego.de                 Geschaeftsfuehrer: Olaf Wagner