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

Re: Update externals - trunk -> branch

From: Stefan Sperling <stsp_at_elego.de>
Date: Tue, 26 Mar 2013 21:18:23 +0100

On Tue, Mar 26, 2013 at 01:25:36PM -0500, C M wrote:
> Hmm, I wouldn't have expect that a merge would be needed to update a
> property value. Is there another way this can be accomplished?

No, apart from editing the property on the branch manually.

> Our team is new to SVN and feeling its way around the tool.

Trust me, running a merge that merges the revision which changed the
svn:externals property is the way this is intended to be done by design.

Below is an example which assumes a /trunk folder and a /branch
folder which is a copy of /trunk, plus one working copy of each
called 'trunk' and 'branch' respectively.

We first go into the trunk working copy, and then create a new directory
in the repository called /ext. This is defined as an external so that
it appears in the trunk working copy at the path epsilon/ext.
Next, the revision which defined the external at /trunk/epsilon is
merged into the branch.

For brackground info on 'svn merge' see 'svn help merge' and
http://svnbook.red-bean.com/en/1.7/svn.branchmerge.html

$ cd trunk
$ ls
alpha beta epsilon/ gamma/
$ svn ps svn:externals '^/'
$ svn mkdir ^/ext -m "add external dir to repos"

Committed revision 3.
$ svn propset svn:externals '^/ext ext' epsilon
property 'svn:externals' set on 'epsilon'
$ svn up
Updating '.':

Fetching external item into 'epsilon/ext':
External at revision 3.

At revision 3.
$ svn st
 M epsilon
X epsilon/ext

Performing status on external item at 'epsilon/ext':
$ svn ci -m "add external to epsilon"
Sending epsilon

Committed revision 4.
$ cd ../branch/ # go to working copy of branch
$ svn merge -c4 ^/trunk
--- Merging r4 into '.':
 U epsilon
--- Recording mergeinfo for merge of r4 into '.':
 U .
$ svn diff
Index: epsilon
===================================================================
--- epsilon (revision 2)
+++ epsilon (working copy)

Property changes on: epsilon
___________________________________________________________________
Added: svn:externals
## -0,0 +1 ##
+^/ext ext
Index: .
===================================================================
--- . (revision 2)
+++ . (working copy)

Property changes on: .
___________________________________________________________________
Added: svn:mergeinfo
   Merged /trunk:r4
$ svn ci -m "merge r4 from trunk"
Sending .
Sending epsilon

Committed revision 5.
$ svn up
Updating '.':

Fetching external item into 'epsilon/ext':
External at revision 5.

At revision 5.
$ svn st
X epsilon/ext

Performing status on external item at 'epsilon/ext':
$
Received on 2013-03-26 21:18:58 CET

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.