Paul, on the svn_log, I altered my capistrano lib locally for one application:
module Capistrano
module SCM
class Subversion < Base
private
def svn_log(path)
`svn log -q --limit 1 #{path} --username #{svn_username}
--password #{svn_password} --no-auth-cache`
end
def svn_username
configuration[:svn_username] || configuration[:username]
end
end
So as not to auth-cache and to add the svn_username since it doesn't
cache auth credentials.
this could be applied to trunk, now that I think about it, i thought
it was just me and a special circumstance.
On 1/25/07, Paul Stadig <[EMAIL PROTECTED]> wrote:
>
> I figured out a hack to get it to work using a monkey patch in my
> deploy.rb file:
>
> class Capistrano::SCM::Base
> private
> alias_method :run_checkout_old, :run_checkout
> def run_checkout(actor, guts, &block)
> run_checkout_old(actor, "eval `keychain --eval id_rsa` && #{guts}",
> &block)
> end
> end
>
> I would rather hear better alternatives if there are any. Additionally
> I think I found a bug in Capistrano, I was getting the error
>
> * querying latest revision...
> Permission denied (publickey,keyboard-interactive).
> svn: Connection closed unexpectedly
>
> and I assumed it was a problem with the ssh-agent on my app server when
> it was trying to check out the code. It is actually a problem on my
> local machine, and I think it is because the svn_log method on the
> SCM::Subversion class is not using the :subversion_username config. My
> username on my local machine is different than the username on my SVN
> server.
>
> At least I think that's the problem, but I may be wrong?
>
>
> Paul
>
> On Jan 25, 11:09 am, "Paul Stadig" <[EMAIL PROTECTED]> wrote:
> > I've search through the group, and I've been trying to figure out a way
> > to setup public/private key deployment for my particular situation.
> >
> > My SVN server is separate from my app server, and it requires public
> > key auth. I understand that Net::SSH does not support agent forwarding,
> > so I figured I have two options: 1) create a passwordless key just for
> > checking out from SVN (not totally desirable), or 2) setup a long
> > running ssh-agent using keychain
> > (http://www.gentoo.org/proj/en/keychain/).
> >
> > I've tried adding keychain to different files on my SVN server
> > (~/.bashrc, ~/.bash_profile, /etc/bash.bashrc, /etc/profile), but I'm
> > never able to get the ssh-agent environment variables to work with
> > capistrano. I'm not sure if the way capistrano is connecting it isn't
> > sourcing my .bashrc file or something?
> >
> > I've even tried running keychain in my before_update_code to set the
> > environment variables:
> >
> > task :before_update_code do
> > run 'env'
> > run 'keychain id_rsa' do |channel, stream, data|
> > if data =~ /^Enter passphrase/
> > $stdout.write("Please enter your SSH key password: ")
> > pwd = $stdin.readline
> > $stdout.puts pwd
> > channel.send_data pwd
> > end
> > end
> > run 'env'
> > end
> >
> > This works in the sense that the next time I log in to my SVN server
> > keychain automatically picks up my ssh key, but the capistrano session
> > does not seem to pick up the environment variables for the ssh-agent.
> >
> > So, capistrano won't pick up the environment variables from my profile,
> > and I can't inject environment variables into the capistrano session.
> > Does any one know how to accomplish either of these two?
> >
> > TIA,
> > Paul
>
>
> >
>
--
Charles Brian Quinn
self-promotion: www.seebq.com
highgroove studios: www.highgroove.com
slingshot hosting: www.slingshothosting.com
main: 678.389.9462 fax: 678.826.0969
Ruby on Rails Bootcamp at the Big Nerd Ranch
Intensive Ruby on Rails Training:
http://www.bignerdranch.com/classes/ruby.shtml
--~--~---------~--~----~------------~-------~--~----~
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/capistrano
-~----------~----~----~----~------~----~------~--~---