Jamis and everyone,

Like several other Capistrano users, I've had a need to deploy
applications located in subdirectories of git repositories.  I've
tried several approaches, and none have been completely satisfactory.

The best solution I've come up with so far is to add an :app_root
variable to my recipe and set it to the subdirectory in my git
repository that I want to actually deploy. I set :app_root like this

  set :app_root, "my_app"

To make this work, I also modified Capistrano's git module so that it
executes the following command after cloning the repository:

  git filter-branch --subdirectory-filter my_app

I'm pretty new to git, so I don't know if this is the best solution.
I think running git filter-branch on a large repository is probably a
pretty expensive operation, but this approach seems to work OK for
smaller repositories.

[Note to other git newbies: If you want to try this command, only run
it on a clone of your repository. You'll be very unhappy with me (and
yourself) if you run it on your actual working repository.]

I just pushed these changes to a fork of Capistrano on github:

  http://github.com/davidbody/capistrano/tree/master

I'd appreciate feedback from anyone, especially from git experts.

--David W. Body / Big Creek Software, LLC

--~--~---------~--~----~------------~-------~--~----~
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