I unfortunately just spent a good chunk of time trying to figure out
why Capistrano 2.1.0 was refusing to use my cached Subversion
authentication credentials. When hitting the repository manually from
the command line, such as during a checkout, the Subversion 1.4.5
client would not prompt for a username a password, since that
information is already cached in ~/.subversion. However, Capistrano
would prompt every time. This behavior seems to have been a design
decision, because lib/capistrano/recipes/deploy/scm/subversion.rb line
101 specifically gives the Subversion client the --no-auth-cache flag.
I find this odd, because, speaking personally, once I type my
credentials once, I don't want to have to type them ever again. Why
wouldn't you want Capistrano to use cache credentials?

This issue may have been addressed on this group before and in other
places, but my Google skills didn't turn anything up. I did turn up
mention of the scm_auth_cache variable, which, when set, foregoes
passing --no-auth-cache to the Subversion client. However, after
setting the variable, I was still being prompted for a password. The
problem is that the --password flag is always passed to the Subversion
client (on line 100). It seems to me that if scm_auth_cache is set to
enable authentication caching, then the client should not be given the
--password flag so that it can use the cached password. Here is a
patch:

--- lib/capistrano/recipes/deploy/scm/subversion.rb (Original)
2008-01-14 17:26:11.000000000 -1000
+++ lib/capistrano/recipes/deploy/scm/subversion.rb (Patched)
2008-01-14 17:25:45.000000000 -1000
@@ -97,7 +97,7 @@
             username = variable(:scm_username)
             return "" unless username
             result = "--username #{variable(:scm_username)} "
-            result << "--password #{variable(:scm_password)} " unless
variable(:scm_prefer_prompt)
+            result << "--password #{variable(:scm_password)} " unless
variable(:scm_auth_cache) || variable(:scm_prefer_prompt)
             result << "--no-auth-cache " unless
variable(:scm_auth_cache)
             result
           end

Forgive me, because I'm sure this is answered somewhere, but is this
the best place to submit a patch? Should I email it directly to Jamis?
Where is Trac for Capistrano?

Thanks!
Cody

---

Cody Robbins
Sakuzaku, LLC
wearesakuzaku.com
--~--~---------~--~----~------------~-------~--~----~
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/capistrano
-~----------~----~----~----~------~----~------~--~---

Reply via email to