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

Re: [TSVN] Re: symbolic links - unix to unix via Tortoise

From: Joseph Galbraith <galb_at_vandyke.com>
Date: 2005-08-09 16:34:08 CEST

Mark Richards wrote:
> Joseph,
>
> Thanks for the clear explanation.
>
> I had mistakenly used the term "windows symbolic link" when I meant to say
> "linux symbolic link", which likely threw a lot of confusion into the
> discussion since a shortcut is far removed from what ln creates. I've also
> perhaps not been clear about what it is that I'm trying to accomplish.
>
> Here's what is NOT being done:
>
> - I am NOT storing files on a windows filesystem

But you are: all filesystems accessed through windows
of necessity conform to the windows file system api.

> - I am NOT managing a SVN repository on a windows filesystem

Again, you are, because you are using TSVN on a windows
workstation; TSVN calls the windows kernel to create the
files in your working copy. The windows kernel has a
certain view of how filesystems works. This view does
not (currently) include symbolic links.

> - I am NOT using Samba as a communications channel for Tortoise (although
> it's there if I want it)

SVN however is using the Samba communications channel to
write you working copy to your linux disk. If samba the
samba protocol is not capable of represents a symbolic
link, then a symbolic link cannot be created in your
working copy.

> Is DAV able to negotiate (read, write) Linux symbolic links? Since it is
> running on the Linux box via Apache, I would think (or hope) so.
>
> Carrying this assumption forward, perhaps in a leap of stupidity on my part,
> I then assumed that if the above are true Tortoise would merely *pass things
> along* - binary data is binary data.

Here is source of confusion: symbolic links are not binary data.

On unix, it may be true that the symbolic link is
represented by a special flag set in the filesystem
and some binary file data which specifies the target
of the link.

However, there is not any gaurentee that the specific
flag value or format of the binary data are the same
between linux, freebsd, AIX, and solaris filesystems.
It certainly won't be the same binary data and flag
that Windows Longhorn uses.

So, in order to make symbolic links portable, they
are stored in the subversion repository as a attribute
that says, "This is a symbolic link." and a string
which says, "This is the target." (These are stored
in a subversion format, not the format that your
unix file system uses.)

It is then up to the client (TSVN) using the host operating
system APIs (Windows) to construct the appropriate file
system object using this data.

There is simply no way to do this on windows prior to longhorn.

Thanks,

Joseph

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tortoisesvn.tigris.org
For additional commands, e-mail: dev-help@tortoisesvn.tigris.org
Received on Tue Aug 9 16:30:12 2005

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