--- Ryan Schmidt <subversion-2007a@ryandesign.com>
wrote:
> On Feb 6, 2007, at 11:55, Frodak wrote:
>
> > I think the source of the issue is how cygwin's
> > version of stat performs exe magic. So if file
> exists
> > it'll get return information about file, if file
> > doesn't exist but file.exe does exist, stat
> returns
> > information about file.exe.
> >
> > If I recall correctly most things that NEED to
> work
> > around this have been updated to use something
> other
> > then stat to see if the object exists.
> >
> > I don't think you'll run into the problem often
> > though. I think that the directory would normally
> > always be exported first.
> >
> > Sorry, I couldn't be more helpful.
>
> No, that's quite helpful. I would say it confirms
> that we have an
> undesired behavior in Subversion. The order of items
> being exported
> or checked out is rather random, as far as I can
> tell, so anyone with
> the problematic repository contents (foo.exe and foo
> in same
> directory) could run into the same problem.
>
> I would say that Subversion should be updated to not
> use stat, or if
> that's not possible, then it should stat foo, and if
> it thinks foo
> exists, then it should also stat foo.exe, and if
> that also exists,
> then it should compare those two in as accurate a
> way as possible
> (can we look at inode numbers or their equivalent?)
> to determine if
> what it thinks is foo is really foo.exe. And... if
> those checks can
> be made to only occur on Windows under cygwin then I
> guess that would
> be best.
>
> Is Subversion calling stat directly, or is it using
> an APR function
> for that? If an APR function, then these fixes
> should be made in APR,
> not Subversion, right?
>
I did some more searching on the cygwin list about the
stat() function. It is a feature of cygwin. If you
search on the cygwin ML you'll find plenty of
complaints when stat foo doesn't equal stat foo.exe.
This is a WAG because I haven't looked at the
subversion software. But because this is the UNIX
port of subversion, either APR or subversion itself is
using stat(). I wouldn't want to touch APR because I
don't know what other projects are using it and who
want the current behavior. My experiences on VIM
regarding mixing UNIX and Windows systems calls is a
complete hassle. I would just check to see if svn is
using stat() or the APR version of stat() and just do
it twice when required.
You should probably contact the cygwin subversion
maintainer because I think that they already have
cygwin specific patches they use.
--Frodak
(Shameless plug, if you check the VIM dev mailing list
you'll see a patch I submitted getting windows
clipboard functionality when compiling the non-gui
version on cygwin)
____________________________________________________________________________________
We won't tell. Get more on shows you hate to love
(and love to hate): Yahoo! TV's Guilty Pleasures list.
http://tv.yahoo.com/collections/265
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Wed Feb 7 16:14:04 2007