# Plugins: svn externals vs. local repository

**URL:** <https://www.ruby-forum.com/t/plugins-svn-externals-vs-local-repository/99197>\
**Category:** Rails\
**Created:** [July 20, 2006, 10:33pm UTC](https://www.ruby-forum.com/t/plugins-svn-externals-vs-local-repository/99197 "2006-07-20T22:33:57Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![sjames](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/c57346/32.png) [@sjames](https://www.ruby-forum.com/u/sjames)\
**Post date:** [July 20, 2006, 10:33pm UTC](https://www.ruby-forum.com/t/plugins-svn-externals-vs-local-repository/99197/1 "2006-07-20T22:33:57Z")

</div>

…or, what is the best practise for ensuring that capistrano gets  
plugin code to the production server? Do you hook up your plugins to  
the originating repository (thereby automatically picking up changes  
to the plugin), or check them into your application’s repo and use  
“script/plugin update” to keep plugins fresh? Does that method mess  
with your .svn directories?

thanks for any input.  
jh

–  
James H.  
Web application developer  
Vancouver, BC

“Developing a coherent political analysis is in many respects  
contingent upon an ability to connect one context to another, a  
process not dissimilar to playing the kid’s game of dot-to-dot.”

- Ward Churchill, from ‘“A Government of Laws”?’

---

<div class="post-metadata">

**Author:** ![sjames](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/c57346/32.png) [@sjames](https://www.ruby-forum.com/u/sjames)\
**Post date:** [July 20, 2006, 10:41pm UTC](https://www.ruby-forum.com/t/plugins-svn-externals-vs-local-repository/99197/2 "2006-07-20T22:41:21Z")

</div>

James H. wrote:

> …or, what is the best practise for ensuring that capistrano gets  
> plugin code to the production server? Do you hook up your plugins to  
> the originating repository (thereby automatically picking up changes  
> to the plugin), or check them into your application’s repo and use  
> “script/plugin update” to keep plugins fresh? Does that method mess  
> with your .svn directories?

You can always bind your externals to specific version (note this -r78  
thingie):

svn propset svn:externals “plugin -r78 [http://host/trunk](http://host/trunk)” vendor/plugins

or use specific tag/branch:

svn propset svn:externals “plugin [http://host/branch/stable](http://host/branch/stable)”  
vendor/plugins

I prefer those methods over source imports 😉

Cheers,  
Åukasz

---

<div class="post-metadata">

**Author:** ![sjames](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/c57346/32.png) [@sjames](https://www.ruby-forum.com/u/sjames)\
**Post date:** [January 3, 2007, 5:03pm UTC](https://www.ruby-forum.com/t/plugins-svn-externals-vs-local-repository/99197/3 "2007-01-03T17:03:08Z")

</div>

You could try managing your plugins with piston:

[http://www.rubyinside.com/advent2006/12-piston.html](http://www.rubyinside.com/advent2006/12-piston.html)

That should keep them in line with your dev and prod environments.

Sean

---

<div class="post-metadata">

**Author:** ![sjames](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/c57346/32.png) [@sjames](https://www.ruby-forum.com/u/sjames)\
**Post date:** [December 28, 2006, 4:09pm UTC](https://www.ruby-forum.com/t/plugins-svn-externals-vs-local-repository/99197/4 "2006-12-28T16:09:26Z")

</div>

hello, i have trouble understanding.

my current application in on my local computer that is under svn. when i  
choose to do rake deploy on a remote server, do i need to do any extra  
configuration for my plugins that work on my local system?

Åukasz Piestrzeniewicz wrote:

> James H. wrote:
> 
> > …or, what is the best practise for ensuring that capistrano gets  
> > plugin code to the production server? Do you hook up your plugins to  
> > the originating repository (thereby automatically picking up changes  
> > to the plugin), or check them into your application’s repo and use  
> > “script/plugin update” to keep plugins fresh? Does that method mess  
> > with your .svn directories?
> 
> You can always bind your externals to specific version (note this -r78  
> thingie):
> 
> svn propset svn:externals “plugin -r78 [http://host/trunk](http://host/trunk)” vendor/plugins
> 
> or use specific tag/branch:
> 
> svn propset svn:externals “plugin [http://host/branch/stable](http://host/branch/stable)”  
> vendor/plugins
> 
> I prefer those methods over source imports 😉
> 
> Cheers,  
> Åukasz

---

<div class="post-metadata">

**Author:** ![sjames](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/c57346/32.png) [@sjames](https://www.ruby-forum.com/u/sjames)\
**Post date:** [February 13, 2007, 9:00pm UTC](https://www.ruby-forum.com/t/plugins-svn-externals-vs-local-repository/99197/5 "2007-02-13T21:00:01Z")

</div>

Åukasz Piestrzeniewicz wrote:

> svn propset svn:externals “plugin -r78 [http://host/trunk](http://host/trunk)” vendor/plugins

Just to add to this idea, since locking into a stable version of a  
plugin is ALWAYS a good idea for your production app, after you set the  
svn:externals as shwon above by Lukasz do this:

svn ci -m ‘updating svn:external svn property for backgroundrb’  
vendor/plugins  
svn up vendor/plugins  
rake backgroundrb:setup

I am using the example of backgroundrb plugin here…this will update  
your repository with the new properties and then when you update the  
plugin will install based on the revision specified by -r###.

Cheers,  
divotdave
