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

[Santeri Hernejärvi <gray@gray.mine.nu>] Re: Crash while merging.

From: Karl Fogel <kfogel_at_newton.ch.collab.net>
Date: 2002-12-22 03:35:28 CET

[forwarding this here so it doesn't sit in my inbox]

attached mail follows:


Karl Fogel wrote:
> Santeri Hernejärvi <gray@gray.mine.nu> writes:
>
>>I'm trying to merge changes from a branch back to trunk and svn dumps core.
>>
>>Am I doing something wrong here?
>
>
> If Subversion is dumping core, then Subversion is doing something
> wrong, not you :-).
>
> Thanks for the backtrace; can you use it to come up with a small
> reproduction recipe? I'll bet we can fix this fairly quickly, if we
> have that.

Ok, I've got a script that reproduces this, with rev 4184.
Here's the output, with my patch applied, otherwise it dumps core.

I'm on irc, as gray, if I can help with anything.

Sorry it took so long, but I had some guests. ;)

.s

$ sh foo.sh

Committed revision 188.

Committed revision 189.

Committed revision 190.
Checked out revision 190.
A a
Adding a
Transmitting file data .
Committed revision 191.
At revision 191.

Committed revision 192.
A foo/a
Checked out revision 192.
A b
Adding b
Transmitting file data .
Committed revision 193.
At revision 193.
svn: Attempted to lock an already-locked dir
svn: working copy locked: trunk
svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)

Diff:

Index: subversion/libsvn_subr/io.c
===================================================================
--- subversion/libsvn_subr/io.c (revision 4186)
+++ subversion/libsvn_subr/io.c (working copy)
@@ -61,7 +61,7 @@
    apr_status_t apr_err;
    const char *path_native;

- if (path[0] == '\0')
+ if (path == NULL || path[0] == '\0') /* doesn't help much. */
      path = ".";

    /* Not using svn_io_stat() here because we want to check the

Script:

#!/bin/sh

REPOS=http://host/svn/repos
USER=user
PASS=pass

svn --username $USER --password $PASS -m "apa" mkdir $REPOS/test
svn --username $USER --password $PASS -m "apa" mkdir $REPOS/test/trunk
svn --username $USER --password $PASS -m "apa" mkdir $REPOS/test/branches
svn --username $USER --password $PASS co $REPOS/test/trunk trunk
cd trunk
date > a
svn add a
svn --username $USER --password $PASS ci -m "added a"
svn up
cd ..
svn --username $USER --password $PASS -m "branched" cp
http://$USER.mine.nu:81/svn/repos/test/trunk/ $REPOS/test/branches/foo/
svn --username $USER --password $PASS co
http://$USER.mine.nu:81/svn/repos/test/branches/foo/ foo
cd foo
date > b
svn add b
svn ci --username $USER --password $PASS -m "added b on branch"
svn up
cd ..
svn merge --username $USER --password $PASS $REPOS/test/trunk/ \
$REPOS/test/branches/foo/ trunk

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sun Dec 22 04:16:51 2002

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.