You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Bill Comisky <bc...@pobox.com> on 2003/07/23 17:44:32 UTC

'svn ln'? (was Re: let's kill svn:externals)

On Wed, 23 Jul 2003, solo turn wrote:

> is there an alternative which would fit better into the design and does the same thing?
> 

I use svn:externals only for intra-repostory "linking".  My needs would be
met by the equivalent of a "svn ln" command.  This seems like a feature 
that isn't creeping too far from cp/mv in my mind.

I didn't see any ENHANCEMENT issues open for a 'svn ln', and I'm having 
trouble searching the mailing list at the moment.  Is there any reason 
something like this would be a really bad idea?

On svn:externals.. I'm already using scripts to work around some
svn:externals limitations (like tagging & thumbtacking externals to
specific revisions).  It would be a bit messy, but scripting everything 
wouldn't kill me.  Though, in my case at least, something like 'svn ln' 
would work better.

bill

-- 
Bill Comisky
bcomisky@pobox.com

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

Re: 'svn ln'? (was Re: let's kill svn:externals)

Posted by SteveKing <st...@gmx.ch>.
----- Original Message ----- 
From: <pl...@lanminds.com>

> It's been discussed before, the real problem seems to be how to 
> implement symlinks in a portable way.  Basically, UNIX (and it's 
> variants/derivatives) is the only platform where the concept of 
> symlinks really exists.  Windows has "shortcuts", but they're not at 
> all the same as symlinks (AFAIK).  Then, there's MacOS.  I don't know 

Windows has, besides the shortcuts, also something called "hardlinks". But
only on NTFS formatted harddisk - FAT doesn't support that feature.

Stefan


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

Re: 'svn ln'? (was Re: let's kill svn:externals)

Posted by Jack Repenning <jr...@collab.net>.
At 5:37 PM -0500 7/23/03, Bill Comisky wrote:
>What I'm imagining are links in "space" but not in "time", that is links
>between nodes within the tree at revision == N.  So when you checkout an
>old revision your links are followed within that revision.  On a 'svn cp'
>the links pointing to nodes within the copied directory would have to now
>point to new tag/branch.  I don't know, maybe it is simpler to link on the
>OS side (though less portable).


If I'm following you correctly, this is Really Hard To Do in 
Subversion.  In SVN, a directory contains a particular version of a 
file, not the abstract file.  Every time a file or directory gets a 
new revision, so does its containing directory.  And therefore, *its* 
containing directory.  And so on.  And so on.  Clear back to the root 
of the repository.  This is intimately related to one of the SVN 
trademark cool things: O(1) tags.

Looking over your remarks, you may also be assuming that all files 
are within the same repository--notably, that all files use the same 
conventions about where  you copy things to.  This is not necessarily 
the case.
-- 
-==-
Jack Repenning
CollabNet, Inc.
8000 Marina Boulevard, Suite 600
Brisbane, California 94005
o: 650.228.2562
c: 408.835-8090

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

Re: 'svn ln'? (was Re: let's kill svn:externals)

Posted by Bill Comisky <bc...@pobox.com>.
On Wed, 23 Jul 2003 pll@lanminds.com wrote:

> 
> >>>>> On Wed, 23 Jul 2003, "Bill" == Bill Comisky wrote:
> 
>   Bill> I didn't see any ENHANCEMENT issues open for a 'svn ln', and
>   Bill> I'm having trouble searching the mailing list at the moment.
>   Bill> Is there any reason something like this would be a really bad
>   Bill> idea?
> 
> It's been discussed before, the real problem seems to be how to 
> implement symlinks in a portable way.  Basically, UNIX (and it's 
> variants/derivatives) is the only platform where the concept of 
> symlinks really exists.  Windows has "shortcuts", but they're not at 
> all the same as symlinks (AFAIK).  Then, there's MacOS.  I don't know 
> if OS X supports symlinks or not, one would hope, since it's BSD 
> based.  However, I recently heard they also somehow managed to keep 
> the data/resource forks concept alive in OS X as well.
> 
> So, I don't think that it's a bad idea, I just think it's a difficult 
> idea to implement correctly in a portable manner.
> 
> I would definitely love such a feature myself :)

Are we talking about the same thing?  I'm not talking about versioning OS 
symlinks, but internal-to-the-Subversion-filesystem links.  Granted I can 
see how versioning OS symlinks could give similar behaviour.

I don't know how/if this can be done since I've only just started trying 
to figure out the SVN guts (currently looking at the figures in 
svn-design.pdf, chapter 7, "Repository Structure").  

What I'm imagining are links in "space" but not in "time", that is links
between nodes within the tree at revision == N.  So when you checkout an
old revision your links are followed within that revision.  On a 'svn cp'
the links pointing to nodes within the copied directory would have to now
point to new tag/branch.  I don't know, maybe it is simpler to link on the
OS side (though less portable).  But you'd have to checkout enough of the
tree to make sure and get the stuff being linked to.  I'd like to be able
to just checkout /repo/dir2 below and then update, and have the changes in
/repo/dir2/dira mirrored in /repo/dir1/dira.

/repo/dir1/dira
         /dirb
         /dirc
     dir2/(link to repo/dir1/dira)
         /dird

Though I'm sure there are issues I'm not considering, like if you checkout
the whole /repo then make changes to both /repo/dir1/dira and
/repo/dir2/dira.  I supposed you'd have to merge or choke on that.

Just speculating, is any of this feasible (or desirable)?  I'm trying to
come up with something to replace my use of svn:externals for this
purpose, since I'm not feeling real secure about its future right now. :)

bill

-- 
Bill Comisky
bcomisky@pobox.com

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

Re: 'svn ln'? (was Re: let's kill svn:externals)

Posted by Jack Repenning <jr...@collab.net>.
At 4:23 PM -0400 7/23/03, pll@lanminds.com wrote:
>Then, there's MacOS.  I don't know
>if OS X supports symlinks or not

Yes.

>However, I recently heard they also somehow managed to keep
>the data/resource forks concept alive in OS X as well.

Yes, and also to invent a new thing (variously called "package" or 
"bundle") that's giving us fits.  We've taken to calling these 
"opaque collections," and they're a whole whale of fun ... but not 
relevant to the symlink question.

But even granted symlinks, "the svn:externals problem" is not 
necessarily solved.  The hard questions are things like redefining 
things when branches are created, propagating checkouts, commits, 
log, blah blah through them, linking to foreign entities like other 
repositories, other VC systems, tarballs, blah blah.
-- 
-==-
Jack Repenning
CollabNet, Inc.
8000 Marina Boulevard, Suite 600
Brisbane, California 94005
o: 650.228.2562
c: 408.835-8090

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

Re: 'svn ln'? (was Re: let's kill svn:externals)

Posted by Jeffrey Melloy <jm...@visualdistortion.org>.
Symlinks definitely work on OS X, and there are also OS 9 style 
"Aliases", using the data/resource forks, etc.

- Jeff
On Wednesday, July 23, 2003, at 03:23  PM, pll@lanminds.com wrote:

>
>>>>>> On Wed, 23 Jul 2003, "Bill" == Bill Comisky wrote:
>
>   Bill> I didn't see any ENHANCEMENT issues open for a 'svn ln', and
>   Bill> I'm having trouble searching the mailing list at the moment.
>   Bill> Is there any reason something like this would be a really bad
>   Bill> idea?
>
> It's been discussed before, the real problem seems to be how to
> implement symlinks in a portable way.  Basically, UNIX (and it's
> variants/derivatives) is the only platform where the concept of
> symlinks really exists.  Windows has "shortcuts", but they're not at
> all the same as symlinks (AFAIK).  Then, there's MacOS.  I don't know
> if OS X supports symlinks or not, one would hope, since it's BSD
> based.  However, I recently heard they also somehow managed to keep
> the data/resource forks concept alive in OS X as well.
>
> So, I don't think that it's a bad idea, I just think it's a difficult
> idea to implement correctly in a portable manner.
>
> I would definitely love such a feature myself :)
>
> HTH,
> -- 
>
> Seeya,
> Paul
> --
> Key fingerprint = 1660 FECC 5D21 D286 F853  E808 BB07 9239 53F1 28EE
>
> 	It may look like I'm just sitting here doing nothing,
>    but I'm really actively waiting for all my problems to go away.
>
> 	 If you're not having fun, you're not doing it right!
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
> For additional commands, e-mail: dev-help@subversion.tigris.org
>


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

Re: 'svn ln'? (was Re: let's kill svn:externals)

Posted by pl...@lanminds.com.
>>>>> On Wed, 23 Jul 2003, "Bill" == Bill Comisky wrote:

  Bill> I didn't see any ENHANCEMENT issues open for a 'svn ln', and
  Bill> I'm having trouble searching the mailing list at the moment.
  Bill> Is there any reason something like this would be a really bad
  Bill> idea?

It's been discussed before, the real problem seems to be how to 
implement symlinks in a portable way.  Basically, UNIX (and it's 
variants/derivatives) is the only platform where the concept of 
symlinks really exists.  Windows has "shortcuts", but they're not at 
all the same as symlinks (AFAIK).  Then, there's MacOS.  I don't know 
if OS X supports symlinks or not, one would hope, since it's BSD 
based.  However, I recently heard they also somehow managed to keep 
the data/resource forks concept alive in OS X as well.

So, I don't think that it's a bad idea, I just think it's a difficult 
idea to implement correctly in a portable manner.

I would definitely love such a feature myself :)

HTH,
-- 

Seeya,
Paul
--
Key fingerprint = 1660 FECC 5D21 D286 F853  E808 BB07 9239 53F1 28EE

	It may look like I'm just sitting here doing nothing,
   but I'm really actively waiting for all my problems to go away.

	 If you're not having fun, you're not doing it right!



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