You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Res Pons <po...@hotmail.com> on 2006/08/14 14:11:26 UTC

SVN Externals

Hi Everyone

I'm confused as to how to set up svn externals on the server level for our 
developers in different groups to always check out a certain folder of 
another project when they check out their respective projectes?

Thanks

_________________________________________________________________
FREE pop-up blocking with the new MSN Toolbar � get it now! 
http://toolbar.msn.click-url.com/go/onm00200415ave/direct/01/

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

Re: SVN Externals

Posted by Res Pons <po...@hotmail.com>.
That's exactly what I want and not that I don't mind but I like it better 
that I have to check in the changes of the externals folder separately; it 
keeps things clean. Provided one remembers to check them in.  Thanks for 
everything.

----Original Message Follows----
From: Ryan Schmidt <su...@ryandesign.com>
To: Res Pons <po...@hotmail.com>
CC: markp@softlanding.com, users@subversion.tigris.org
Subject: Re: SVN Externals
Date: Fri, 18 Aug 2006 01:58:01 +0200


On Aug 17, 2006, at 23:35, Res Pons wrote:

>>>Thanks for all the info.  So if I'm running svn on a linux  redhat  
>>>enterprise 3.5 server and I have the following projects  at the root  of 
>>>the repo
>>>
>>>ProjA
>>>ProjB
>>>ProjC
>>>ProjD (just a common library folder w/o branches & tags & trunk   
>>>subfolders)
>>>
>>>And I want projD to be symlinked into A, B, & C when everyone   checks 
>>>out these 3 latter projects so they automatically get  projD  into their 
>>>working folders... say I go to ProjA and create  a file  called what and 
>>>what I do put in it and just check it  in?  Our SVN  server is a Linux 
>>>box and developers either use  Eclipse plugin or  svn commnad line; the 
>>>Tortoise example totally  lost me.  Sorry.
>>
>>If $REPO is the URL to your repository, then:
>>
>>cd /working/copy/of/ProjA/trunk
>>svn propset svn:externals "libs $REPO/ProjD" .
>>svn ci -m "Adding external to bring $REPO/ProjD into this project   into a 
>>directory called libs"
>
>Very clear.  I just ran your command and replaced the paths and it  worked. 
>  Now, here's a question I have: Whatever I do in this newly  created 
>symlinked folder...does svn treat it as if I was directly  in the folder or 
>inside the source project?  Thanks your example  was very clear.

Using the command-line client, if you make changes in your project  proper, 
and also within the "libs" directory pulled in via external,  and you commit 
the root of the working copy, only the changes to the  project proper will 
be committed; the changes in the libs directory  will not be committed. You 
can commit them separately by changing to  that directory and committing, 
and they will be committed back to  $REPO/ProjD where that directory comes 
from. This also means that any  other project using $REPO/ProjD via external 
will automatically  inherit these changes, which should be what you want. If 
that isn't  what you want, then externals may not be the right solution for 
this  task.

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

_________________________________________________________________
On the road to retirement? Check out MSN Life Events for advice on how to 
get there! http://lifeevents.msn.com/category.aspx?cid=Retirement

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

Re: SVN Externals

Posted by Ryan Schmidt <su...@ryandesign.com>.
On Aug 17, 2006, at 23:35, Res Pons wrote:

>>> Thanks for all the info.  So if I'm running svn on a linux  
>>> redhat  enterprise 3.5 server and I have the following projects  
>>> at the root  of the repo
>>>
>>> ProjA
>>> ProjB
>>> ProjC
>>> ProjD (just a common library folder w/o branches & tags & trunk   
>>> subfolders)
>>>
>>> And I want projD to be symlinked into A, B, & C when everyone   
>>> checks out these 3 latter projects so they automatically get  
>>> projD  into their working folders... say I go to ProjA and create  
>>> a file  called what and what I do put in it and just check it  
>>> in?  Our SVN  server is a Linux box and developers either use  
>>> Eclipse plugin or  svn commnad line; the Tortoise example totally  
>>> lost me.  Sorry.
>>
>> If $REPO is the URL to your repository, then:
>>
>> cd /working/copy/of/ProjA/trunk
>> svn propset svn:externals "libs $REPO/ProjD" .
>> svn ci -m "Adding external to bring $REPO/ProjD into this project   
>> into a directory called libs"
>
> Very clear.  I just ran your command and replaced the paths and it  
> worked.  Now, here's a question I have: Whatever I do in this newly  
> created symlinked folder...does svn treat it as if I was directly  
> in the folder or inside the source project?  Thanks your example  
> was very clear.

Using the command-line client, if you make changes in your project  
proper, and also within the "libs" directory pulled in via external,  
and you commit the root of the working copy, only the changes to the  
project proper will be committed; the changes in the libs directory  
will not be committed. You can commit them separately by changing to  
that directory and committing, and they will be committed back to  
$REPO/ProjD where that directory comes from. This also means that any  
other project using $REPO/ProjD via external will automatically  
inherit these changes, which should be what you want. If that isn't  
what you want, then externals may not be the right solution for this  
task.

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

Re: SVN Externals

Posted by Mark Phippard <ma...@softlanding.com>.
"Res Pons" <po...@hotmail.com> wrote on 08/17/2006 05:35:45 PM:

> Very clear.  I just ran your command and replaced the paths and it 
worked. 
> Now, here's a question I have: Whatever I do in this newly created 
symlinked 
> folder...does svn treat it as if I was directly in the folder or inside 
the 
> source project?  Thanks your example was very clear.

Yes.  I *think* to commit changes with the command line you might need to 
do the externals separate from other files, or maybe there is an option to 
commit.  I know with Subclipse we can commit them all together in one 
commit.

Some other commands, like status and update have an --ignore-externals 
option if you do not want them to process into the externals folders. This 
can be a time saver if you externals is pointing to a tag and you do not 
want to waste time processing it.

Mark

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

Re: SVN Externals

Posted by Res Pons <po...@hotmail.com>.
Very clear.  I just ran your command and replaced the paths and it worked.  
Now, here's a question I have: Whatever I do in this newly created symlinked 
folder...does svn treat it as if I was directly in the folder or inside the 
source project?  Thanks your example was very clear.

----Original Message Follows----
From: Ryan Schmidt <su...@ryandesign.com>
To: Res Pons <po...@hotmail.com>
CC: markp@softlanding.com, users@subversion.tigris.org
Subject: Re: SVN Externals
Date: Thu, 17 Aug 2006 22:20:42 +0200

On Aug 17, 2006, at 21:59, Res Pons wrote:

>Thanks for all the info.  So if I'm running svn on a linux redhat  
>enterprise 3.5 server and I have the following projects at the root  of the 
>repo
>
>ProjA
>ProjB
>ProjC
>ProjD (just a common library folder w/o branches & tags & trunk  
>subfolders)
>
>And I want projD to be symlinked into A, B, & C when everyone  checks out 
>these 3 latter projects so they automatically get projD  into their working 
>folders... say I go to ProjA and create a file  called what and what I do 
>put in it and just check it in?  Our SVN  server is a Linux box and 
>developers either use Eclipse plugin or  svn commnad line; the Tortoise 
>example totally lost me.  Sorry.

If $REPO is the URL to your repository, then:

cd /working/copy/of/ProjA/trunk
svn propset svn:externals "libs $REPO/ProjD" .
svn ci -m "Adding external to bring $REPO/ProjD into this project  into a 
directory called libs"

It's explained in the book:

http://svnbook.red-bean.com/en/1.2/svn.advanced.externals.html

_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today - it's FREE! 
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/

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

Re: SVN Externals

Posted by Ryan Schmidt <su...@ryandesign.com>.
On Aug 17, 2006, at 21:59, Res Pons wrote:

> Thanks for all the info.  So if I'm running svn on a linux redhat  
> enterprise 3.5 server and I have the following projects at the root  
> of the repo
>
> ProjA
> ProjB
> ProjC
> ProjD (just a common library folder w/o branches & tags & trunk  
> subfolders)
>
> And I want projD to be symlinked into A, B, & C when everyone  
> checks out these 3 latter projects so they automatically get projD  
> into their working folders... say I go to ProjA and create a file  
> called what and what I do put in it and just check it in?  Our SVN  
> server is a Linux box and developers either use Eclipse plugin or  
> svn commnad line; the Tortoise example totally lost me.  Sorry.

If $REPO is the URL to your repository, then:

cd /working/copy/of/ProjA/trunk
svn propset svn:externals "libs $REPO/ProjD" .
svn ci -m "Adding external to bring $REPO/ProjD into this project  
into a directory called libs"

It's explained in the book:

http://svnbook.red-bean.com/en/1.2/svn.advanced.externals.html


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

RE: SVN Externals

Posted by Res Pons <po...@hotmail.com>.
I understand it better now. Thanks for all your help :)

----Original Message Follows----
From: Mark Phippard <ma...@softlanding.com>
To: "Res Pons" <po...@hotmail.com>
CC: users@subversion.tigris.org
Subject: RE: SVN Externals
Date: Thu, 17 Aug 2006 16:15:43 -0400

"Res Pons" <po...@hotmail.com> wrote on 08/17/2006 03:59:48 PM:

 > Thanks for all the info.  So if I'm running svn on a linux redhat
enterprise
 > 3.5 server and I have the following projects at the root of the repo
 >
 > ProjA
 > ProjB
 > ProjC
 > ProjD (just a common library folder w/o branches & tags & trunk
subfolders)
 >
 > And I want projD to be symlinked into A, B, & C when everyone checks out

 > these 3 latter projects so they automatically get projD into their
working
 > folders... say I go to ProjA and create a file called what and what I do
put
 > in it and just check it in?  Our SVN server is a Linux box and
developers
 > either use Eclipse plugin or svn commnad line; the Tortoise example
totally
 > lost me.  Sorry.

The TortoiseSVN example was meant to be an example of a repository that
was using svn:externals and how it was structured.  It had nothing to do
with the tool itself.

You would need to checkout ProjA.  Then say you wanted to have a folder
named "common" beneath it that was really a symlink to ProjA.  To do this,
you need to set the svn:externals property on the ProjA folder in your WC.
  Then commit the change.  Then when you run svn up or svn co, it will
create the common folder from ProjD.

Mark

_________________________________________________________________
Is your PC infected? Get a FREE online computer virus scan from McAfee� 
Security. http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963

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

RE: SVN Externals

Posted by Mark Phippard <ma...@softlanding.com>.
"Res Pons" <po...@hotmail.com> wrote on 08/17/2006 03:59:48 PM:

> Thanks for all the info.  So if I'm running svn on a linux redhat 
enterprise 
> 3.5 server and I have the following projects at the root of the repo
> 
> ProjA
> ProjB
> ProjC
> ProjD (just a common library folder w/o branches & tags & trunk 
subfolders)
> 
> And I want projD to be symlinked into A, B, & C when everyone checks out 

> these 3 latter projects so they automatically get projD into their 
working 
> folders... say I go to ProjA and create a file called what and what I do 
put 
> in it and just check it in?  Our SVN server is a Linux box and 
developers 
> either use Eclipse plugin or svn commnad line; the Tortoise example 
totally 
> lost me.  Sorry.

The TortoiseSVN example was meant to be an example of a repository that 
was using svn:externals and how it was structured.  It had nothing to do 
with the tool itself.

You would need to checkout ProjA.  Then say you wanted to have a folder 
named "common" beneath it that was really a symlink to ProjA.  To do this, 
you need to set the svn:externals property on the ProjA folder in your WC. 
 Then commit the change.  Then when you run svn up or svn co, it will 
create the common folder from ProjD.

Mark


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

RE: SVN Externals

Posted by Res Pons <po...@hotmail.com>.
Mark

Thanks for all the info.  So if I'm running svn on a linux redhat enterprise 
3.5 server and I have the following projects at the root of the repo

ProjA
ProjB
ProjC
ProjD (just a common library folder w/o branches & tags & trunk subfolders)

And I want projD to be symlinked into A, B, & C when everyone checks out 
these 3 latter projects so they automatically get projD into their working 
folders... say I go to ProjA and create a file called what and what I do put 
in it and just check it in?  Our SVN server is a Linux box and developers 
either use Eclipse plugin or svn commnad line; the Tortoise example totally 
lost me.  Sorry.

----Original Message Follows----
From: Mark Phippard <ma...@softlanding.com>
To: "Res Pons" <po...@hotmail.com>
CC: users@subversion.tigris.org
Subject: RE: SVN Externals
Date: Thu, 17 Aug 2006 12:36:28 -0400

"Res Pons" <po...@hotmail.com> wrote on 08/17/2006 12:19:15 PM:

 > 2nd try.  I do not understand svn externals just reading the very brief
&
 > UNCLEAR section in the svn manual.
 >
 > I have a single top folder(project) with 4 or 5 subfolders.  I would
like to
 > use svn externals to symlink this top project into other projects.  The
 > manual is very unclear whether I do this at the server level or user
level
 > or whether each user needs to do it for themselves.  I ran the example
 > provided in the manual replacing the values with mine and I get tons of
 > errors.
 >
 > svn propget svn:externals url project
 >
 > WHAT AM I DOING WRONG? Would someone please explain this to me step by
step
 > in laymen simpleton terms?  Thanks.

svn:externals is a versioned property.  This means you set it in a local
working copy and then commit it to the repository.  Once you do this, then
everyone gets it.

You set the property on a parent folder of the location you want the
externals to exist.  For example, the TortoiseSVN repository has a folder
named "ext" under which they want to store some of their dependencies. The
"ext" folder contains the property svn:externals and it contains this for
a value:

Subversion https://svn.collab.net/repos/svn/branches/1.4.x/
apr https://svn.apache.org/repos/asf/apr/apr/tags/0.9.12/
apr-util https://svn.apache.org/repos/asf/apr/apr-util/tags/0.9.12/
apr-iconv https://svn.apache.org/repos/asf/apr/apr-iconv/tags/0.9.7/
neon http://svn.webdav.org/repos/projects/neon/tags/0.25.5/

When the TortoiseSVN project is checked out and the ext folder is
processed, the presence of the svn:externals property on the folder causes
these additional folders to be created and populated beneath it:

Subversion
apr
apr-util
apr-iconv
neon

Hope this helps.

Mark

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

_________________________________________________________________
Don�t just search. Find. Check out the new MSN Search! 
http://search.msn.click-url.com/go/onm00200636ave/direct/01/

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

RE: SVN Externals

Posted by Mark Phippard <ma...@softlanding.com>.
"Res Pons" <po...@hotmail.com> wrote on 08/17/2006 12:19:15 PM:

> 2nd try.  I do not understand svn externals just reading the very brief 
& 
> UNCLEAR section in the svn manual.
> 
> I have a single top folder(project) with 4 or 5 subfolders.  I would 
like to 
> use svn externals to symlink this top project into other projects.  The 
> manual is very unclear whether I do this at the server level or user 
level 
> or whether each user needs to do it for themselves.  I ran the example 
> provided in the manual replacing the values with mine and I get tons of 
> errors.
> 
> svn propget svn:externals url project
> 
> WHAT AM I DOING WRONG? Would someone please explain this to me step by 
step 
> in laymen simpleton terms?  Thanks.

svn:externals is a versioned property.  This means you set it in a local 
working copy and then commit it to the repository.  Once you do this, then 
everyone gets it.

You set the property on a parent folder of the location you want the 
externals to exist.  For example, the TortoiseSVN repository has a folder 
named "ext" under which they want to store some of their dependencies. The 
"ext" folder contains the property svn:externals and it contains this for 
a value:

Subversion https://svn.collab.net/repos/svn/branches/1.4.x/
apr https://svn.apache.org/repos/asf/apr/apr/tags/0.9.12/
apr-util https://svn.apache.org/repos/asf/apr/apr-util/tags/0.9.12/
apr-iconv https://svn.apache.org/repos/asf/apr/apr-iconv/tags/0.9.7/
neon http://svn.webdav.org/repos/projects/neon/tags/0.25.5/

When the TortoiseSVN project is checked out and the ext folder is 
processed, the presence of the svn:externals property on the folder causes 
these additional folders to be created and populated beneath it:

Subversion
apr
apr-util
apr-iconv
neon

Hope this helps.

Mark

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

RE: SVN Externals

Posted by Res Pons <po...@hotmail.com>.
2nd try.  I do not understand svn externals just reading the very brief & 
UNCLEAR section in the svn manual.

I have a single top folder(project) with 4 or 5 subfolders.  I would like to 
use svn externals to symlink this top project into other projects.  The 
manual is very unclear whether I do this at the server level or user level 
or whether each user needs to do it for themselves.  I ran the example 
provided in the manual replacing the values with mine and I get tons of 
errors.

svn propget svn:externals url project

WHAT AM I DOING WRONG? Would someone please explain this to me step by step 
in laymen simpleton terms?  Thanks.

----Original Message Follows----
From: "Res Pons" <po...@hotmail.com>
To: users@subversion.tigris.org
Subject: SVN Externals
Date: Mon, 14 Aug 2006 07:11:26 -0700

Hi Everyone

I'm confused as to how to set up svn externals on the server level for our 
developers in different groups to always check out a certain folder of 
another project when they check out their respective projectes?

Thanks

_________________________________________________________________
FREE pop-up blocking with the new MSN Toolbar � get it now! 
http://toolbar.msn.click-url.com/go/onm00200415ave/direct/01/

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

_________________________________________________________________
Don�t just search. Find. Check out the new MSN Search! 
http://search.msn.click-url.com/go/onm00200636ave/direct/01/

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