Plugins: svn externals vs. local repository

…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”?’

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” vendor/plugins

or use specific tag/branch:

svn propset svn:externals “plugin http://host/branch/stable
vendor/plugins

I prefer those methods over source imports :wink:

Cheers,
Łukasz

You could try managing your plugins with piston:

http://www.rubyinside.com/advent2006/12-piston.html

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

Sean

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” vendor/plugins

or use specific tag/branch:

svn propset svn:externals “plugin http://host/branch/stable
vendor/plugins

I prefer those methods over source imports :wink:

Cheers,
Łukasz

Łukasz Piestrzeniewicz wrote:

svn propset svn:externals “plugin -r78 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