I have tested the patch that Malcolm has made and it is working. Now the symbol link file created in windows contains the internal representation of the link.
From: Malcolm Rowe [mailto:firstname.lastname@example.org]
Sent: Tuesday, January 09, 2007 14:29
To: Marc Haesen
Cc: email@example.com; Erik Hülsmann
Subject: Re: Problem with symbolic links on windows introduced on trunk somewhere between revision 22556 and 22778
On Tue, Jan 09, 2007 at 10:59:53AM +0100, Marc Haesen wrote:
> I did some debugging and if I apply the following patch, the problem disappears. It seems that the code is trying to create a temporary file twice.
> The patch file is generated on windows (so it contains cr/lf)
> > When I checkout a directory containing a symbolic link on windows with a
> > client build from trunk (last revision I tried was 22811), I get the
> > following error message:
> > svn: REPORT request failed on '/svnrepos/repos/!svn/vcc/default'
> > svn: In directory 'xxxx'
> > svn: Can't open file 'xxxx\.svn\tmp\file.ext.tmp.tmp': The file exists.
> Index: subversion/libsvn_subr/subst.c
> --- subversion/libsvn_subr/subst.c (revision 22939)
> +++ subversion/libsvn_subr/subst.c (working copy)
> @@ -1610,7 +1610,6 @@
> /* Fall back to just copying the text-base. */
> SVN_ERR(svn_io_open_unique_file2(NULL, &dst_tmp, dst, ".tmp",
> svn_io_file_del_none, pool));
> - SVN_ERR(svn_io_file_create(dst_tmp, src->data, pool));
> return err;
That'll work in the sense that it won't give you an error, but it won't
populate the new contents of the new file (which should contain the
internal representation of the linke, it seems).
The problem is that svn_io_file_create() is failing because the
temporary file exists. Something like the attached should work, though
I can't test it.
Annoyingly, we don't have any symlink tests on Windows (because we can't
create symlinks there). We should fix that.
To unsubscribe, e-mail: firstname.lastname@example.org
For additional commands, e-mail: email@example.com
Received on Tue Jan 9 18:54:13 2007