You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Andrew <on...@gmail.com> on 2012/01/17 17:33:08 UTC

svn:externals to another svn:externals issue

Hello all!

I've got an issue with a repo that I manage regarding svn:externals
and have been unable to find any information regarding it (apologies
if the issue has already been brought up and I didn't find it.)

So I've got a pair of projects, we'll call them /tools and /libs.
Under each I'm using ./tags/v1.0 ./tags/v2.0 as well as an
svn:externals of ./tags/latest which points to the most recent tagged
version.  This all works fine.  What I'd like to do and seem to be
unable is to use svn:externals to point from /tools/tags/v2.0/libs to
/libs/tags/latest, as that directory only exists as a property of it's
parent.  I'd like to use this so that I don't have to worry about
updating the libs path for my tools every time I release a new
version.

Does anyone have any ideas on how I might be able to accomplish this
or a more effective way of managing this code?

Thanks!

-- 
Andrew
http://blog.psych0tik.net

Re: svn:externals to another svn:externals issue

Posted by Daniel Shahaf <da...@elego.de>.
Stephen Butler wrote on Wed, Jan 18, 2012 at 08:56:34 +0100:
> One idea is to
> 
>   svn rm ^/libs/tags/latest
>   svn cp ^/libs/tags/1.1 ^/libs/tags/latest

ITYM

    svnmucc rm ^/libs/tags/latest cp HEAD ^/libs/tags/1.1 ^/libs/tags/latest

Re: svn:externals to another svn:externals issue

Posted by Stephen Butler <sb...@elego.de>.
On Jan 17, 2012, at 17:33 , Andrew wrote:

> Hello all!
> 
> I've got an issue with a repo that I manage regarding svn:externals
> and have been unable to find any information regarding it (apologies
> if the issue has already been brought up and I didn't find it.)
> 
> So I've got a pair of projects, we'll call them /tools and /libs.
> Under each I'm using ./tags/v1.0 ./tags/v2.0 as well as an
> svn:externals of ./tags/latest which points to the most recent tagged
> version.  

Subversion tags are URLs in a repository.  The svn:externals values 
are stored, but not interpreted, in the repository.  

> This all works fine.  What I'd like to do and seem to be
> unable is to use svn:externals to point from /tools/tags/v2.0/libs to
> /libs/tags/latest, as that directory only exists as a property of it's
> parent.  I'd like to use this so that I don't have to worry about
> updating the libs path for my tools every time I release a new
> version.
> 
> Does anyone have any ideas on how I might be able to accomplish this
> or a more effective way of managing this code?

One idea is to

  svn rm ^/libs/tags/latest
  svn cp ^/libs/tags/1.1 ^/libs/tags/latest

every time you create a new tag, so that the .../latest URL is a copy
of the most recent tag.  Teams accustomed to "promotion levels"
(i.e., coming from a version control system that includes build and
release management) often use this kind of scheme after switching 
to Subversion.

But the actual content of .../latest is obscured by the generic name.
You need to run 'svn log' to find out what's actually there.

I'd prefer to use unique tag URLs in svn:externals, with peg revisions
of course.  When tagging a new releases, instead of silently swapping
a .../latest URL, I'd announce it via a bug-tracker or continuous 
integration system.  Or by email or just shouting across the room.  

Steve
--
Stephen Butler | Consultant
elego Software Solutions GmbH
Gustav-Meyer-Allee 25, 13355 Berlin, Germany
tel: +49 30 2345 8696 | mobile: +49 163 25 45 015
fax: +49 30 2345 8695 | http://www.elego.de
Geschäftsführer: Olaf Wagner | Sitz der Gesellschaft: Berlin
Amtsgericht Charlottenburg HRB 77719



Re: svn:externals to another svn:externals issue

Posted by Ryan Schmidt <su...@ryandesign.com>.
On Jan 17, 2012, at 10:33, Andrew wrote:

> So I've got a pair of projects, we'll call them /tools and /libs.
> Under each I'm using ./tags/v1.0 ./tags/v2.0 as well as an
> svn:externals of ./tags/latest which points to the most recent tagged
> version.  This all works fine.  What I'd like to do and seem to be
> unable is to use svn:externals to point from /tools/tags/v2.0/libs to
> /libs/tags/latest, as that directory only exists as a property of it's
> parent.  I'd like to use this so that I don't have to worry about
> updating the libs path for my tools every time I release a new
> version.
> 
> Does anyone have any ideas on how I might be able to accomplish this
> or a more effective way of managing this code?

My advice is don't. Instead, continue doing what you've presumably been doing: update the external to the specific version that your code works with. How can you guarantee today that you won't next month modify the library in a way that is not backwards-compatible?