How I SVN in multiple plugins?

People,

I've bumped into a small problem with using SVN to get my plugins.

The first plugin I get is active_scaffold.

I use this syntax:

svn propset svn:externals "active_scaffold http://activescaffold.googlecode.com/svn/tags/active_scaffold" vendor/ plugins svn update vendor/plugins svn commit --message="SVN'd in Active Scaffold"

svn stat shows me this:

$ svn stat X vendor/rails X vendor/plugins/active_scaffold

Performing status on external item at 'vendor/rails'

Performing status on external item at 'vendor/plugins/active_scaffold'

which looks good.

The 2nd plugin I get is acts_as_authenticated.

I use this syntax:

svn propset svn:externals "acts_as_authenticated http://svn.techno-weenie.net/projects/plugins/acts_as_authenticated" vendor/plugins svn update vendor/plugins svn commit --message="SVN'd in Acts As Authenticated [ AAA ]"

svn stat shows me this:

$ svn stat X vendor/rails X vendor/plugins/acts_as_authenticated ? vendor/plugins/active_scaffold

Performing status on external item at 'vendor/rails'

Performing status on external item at 'vendor/plugins/ acts_as_authenticated'

This does not look good.

SVN has 'forgotten' my install of active_scaffold.

What is the proper way to use SVN to bring in multiple plugins?

-moi

Your example is breaking because each time you call propset it overwrites the previously stored property. You need to either a) use propedit, which will allow you to append to the existing properties value or b) use piston ( http://piston.rubyforge.org/) which is a much nicer way to vendor plugins.

Hope that helps.

Josh

Yep,

piston looks like a good idea. But… When I run it to pull in the rel_1-2-3 tag of Rails…

It doesn’t finish. I don’t get my shell prompt back.

All I see is this:

Adding tmp/sessions

Adding tmp/sockets Adding vendor Adding vendor/plugins Transmitting file data … Committed revision 2.

It is getting me some files; I see them when I use another terminal window to look.

I’ll give it an hour to finish and then I’ll kill piston.

-b

Ah,

piston finished:

Adding tmp/pids Adding tmp/sessions Adding tmp/sockets Adding vendor Adding vendor/plugins Transmitting file data …

Committed revision 2.

Now, I like piston; piston good.

-b

Mr K,

I added piston to my way of doing things.

piston syntax is easy.

Here is a demo script which SVN-checks-in a rails project named aaa10.

Then it uses piston to bolt-on… http://dev.rubyonrails.org/svn/rails/tags/rel_1-2-3 http://activescaffold.googlecode.com/svn/tags/active_scaffold http://svn.techno-weenie.net/projects/plugins/acts_as_authenticated

The script:

#!/bin/sh

Creates a Subversion repository in REPOS_ROOT/PROJECT. Creates a Rails

application named PROJECT, and checks it in the newly created repository.

set -x

PROJECT=aaa10 REPOS_ROOT=/pt/w/fg/svn4aaa10

debug

touch jnk /bin/rm -rf jnk $REPOS_ROOT/$PROJECT $PROJECT

debug

if [ -d $REPOS_ROOT/$PROJECT ]; then echo “The repository already exists - this script will not overwrite the repository at ‘$REPOS_ROOT/$PROJECT’”

exit 1 fi

if [ -d $PROJECT ]; then echo “The project already exists - this script will not overwrite the directory at ‘$PROJECT’” exit 1 fi

echo “Creating project ‘$PROJECT’, in new repository ‘$REPOS_ROOT’”

mkdir -p $REPOS_ROOT

svnadmin create --fs-type=fsfs $REPOS_ROOT/$PROJECT

REPOS=file://$REPOS_ROOT/$PROJECT

svn mkdir --message=“Initial project layout” $REPOS/trunk $REPOS/tags $REPOS/branches

rails $PROJECT cd $PROJECT svn checkout $REPOS/trunk .

svn add --force .

svn mkdir db/migrate

svn revert log/* svn propset svn:ignore “*.log” log svn revert config/database.yml

mv config/database.yml config/database.yml.sample svn add config/database.yml.sample svn propset svn:ignore “database.yml” config cp config/database.yml.sample config/database.yml

svn propset svn:ignore "

schema.rb" db

svn propset svn:ignore "" tmp svn propset svn:ignore “doc" doc svn propset svn:executable "find script -type f | grep -v '.svn' public/dispatch.

svn revert public/index.html svn commit --message=“New Rails project”

svn propset svn:externals "rails [http://dev.rubyonrails.org/svn/rails/trunk/

](http://dev.rubyonrails.org/svn/rails/trunk/)" vendor

svn propset svn:externals “rails http://dev.rubyonrails.org/svn/rails/tags/rel_1-2-3” vendor

piston import http://dev.rubyonrails.org/svn/rails/tags/rel_1-2-3 vendor/rails piston import http://activescaffold.googlecode.com/svn/tags/active_scaffold vendor/plugins/active_scaffold piston import http://svn.techno-weenie.net/projects/plugins/acts_as_authenticated vendor/plugins/acts_as_authenticated

exit

-b

Hi-again,

I enhanced the script with 4 commands at the end:

svn commit --message=“Rails123, and plugins bolted on” piston lock vendor/rails piston lock vendor/plugins/active_scaffold piston lock vendor/plugins/acts_as_authenticated

-b