I just answered my own question.
Git doesn't understand URLs like "[EMAIL PROTECTED]:
8888:project.git", so normally one alters their ~/.ssh/config file to
compensate. Unfortunately Net::SSH ignores this file. This basically
demands that one use the standard SSH port for deploying with Git,
Capistrano, and SSH.
James
On Mar 3, 11:28 am, "James H." <[EMAIL PROTECTED]> wrote:
> Greetings.
>
> I'm trying to deploy an application that uses the Git SCM, which has
> access managed by Gitosis. All operations are done with SSH over a
> non-standard port with Gitosis. I've configured my deploy.rb
> correctly (ssh_options[:port] = some_port_number), but it seems that
> the Git deploy scheme is ignoring this configuration _after_ it asks
> me for my initial SSH password (implying that it gets half of this
> done correctly):
>
> -- BEGIN --
>
> triggering start callbacks for `deploy'
> * executing `multistage:ensure'
> *** Defaulting to `staging'
> * executing `staging'
> * executing `deploy'
> * executing `deploy:update'
> ** transaction: start
> * executing `deploy:update_code'
> updating the cached checkout on all servers
> * executing "if [ -d /home/deploy/project/shared/git_master ]; then
> cd /home/deploy/project
> /shared/git_master && git config remote.user.url
> [EMAIL PROTECTED]:project.git &
> & git config remote.user.fetch +refs/heads/*:refs/remotes/user/* &&
> git fetch
> user && git reset --hard 9bfc1ce05eff7c4cbbb379fd17d149fc87cc39e8;
> else git clon
> e -o user [EMAIL PROTECTED]:project.git /home/deploy/project/shared/
> git_master && cd
> /home/deploy/project/shared/git_master && git checkout -b deploy
> 9bfc1ce05eff7c4cbbb379f
> d17d149fc87cc39e8; fi"
> servers: ["staging"]
> Password:
> [staging] executing command
> ** [out] Initialized empty Git repository in /home/deploy/p4s/shared/
> git_master/.git
> /
> ** [err] ssh: connect to host 67.207.141.54 port 22: Connection
> refused
> ** [err] fatal:
> ** [err] The remote end hung up unexpectedly
> ** [err]
> ** [err] fetch-pack from '[EMAIL PROTECTED]:project.git' failed.
> command finished
> *** [deploy:update_code] rolling back
> * executing "rm -rf /home/deploy/project/releases/20080303161535;
> true"
> servers: ["staging"]
> [67.207.141.54] executing command
> command finished
> command "if [ -d /home/deploy/project/shared/git_master ]; then cd /
> home/deploy/project/share
> d/git_master && git config remote.user.url
> [EMAIL PROTECTED]:project.git && git
> config remote.project.fetch +refs/heads/*:refs/remotes/project/* &&
> git fetch user
> man && git reset --hard 9bfc1ce05eff7c4cbbb379fd17d149fc87cc39e8; else
> git clone -o user [EMAIL PROTECTED]:project.git /home/deploy/project/
> shared/git_master && cd /home
> /deploy/project/shared/git_master && git checkout -b deploy
> 9bfc1ce05eff7c4cbbb379fd17d14
> 9fc87cc39e8; fi" failed on staging
>
> -- END --
>
> I've configured my SCM settings as follows:
>
> -- SCM SETTINGS BEGIN --
>
> ssh_options[:port] = some_port_number
> set :scm, :git
> set :branch, "stable"
> set :scm_url, "staging" # In actuality, this is set to the IP address
> set :scm_passphrase, proc { Capistrano::CLI.password_prompt("SSH
> passphrase: ") }
>
> set :repository, "[EMAIL PROTECTED]:project.git"
> set :remote, scm_user # Set in ~/.caprc
> set :repository_cache, "git_master"
> set :deploy_via, :remote_cache
>
> -- END SCM SETTINGS --
>
> Does anyone have any idea what's going on? Has anyone else deployed
> with Gitosis managing their Git repository before? Any advice would
> be much appreciated.
>
> James H.
--~--~---------~--~----~------------~-------~--~----~
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/capistrano
-~----------~----~----~----~------~----~------~--~---