Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

improving behavior with git submodules

  • Loading branch information...
commit 05c707cf625a90a6b78653dae75e453c308f881c 1 parent aa23020
Ken Miller authored
4 lib/capistrano/recipes/deploy/scm/git.rb
View
@@ -148,7 +148,7 @@ def checkout(revision, destination)
if variable(:git_enable_submodules)
execute << "#{git} submodule #{verbose} init"
execute << "#{git} submodule #{verbose} sync"
- execute << "#{git} submodule #{verbose} update --recursive"
+ execute << "#{git} submodule #{verbose} update --init --recursive"
end
execute.join(" && ")
@@ -187,7 +187,7 @@ def sync(revision, destination)
execute << "#{git} submodule #{verbose} init"
execute << "for mod in `#{git} submodule status | awk '{ print $2 }'`; do #{git} config -f .git/config submodule.${mod}.url `#{git} config -f .gitmodules --get submodule.${mod}.url` && echo Synced $mod; done"
execute << "#{git} submodule #{verbose} sync"
- execute << "#{git} submodule #{verbose} update"
+ execute << "#{git} submodule #{verbose} update --init --recursive"
end
# Make sure there's nothing else lying around in the repository (for
6 test/deploy/scm/git_test.rb
View
@@ -40,7 +40,7 @@ def test_checkout
# with submodules
@config[:git_enable_submodules] = true
- assert_equal "#{git} clone -q git@somehost.com:project.git /var/www && cd /var/www && #{git} checkout -q -b deploy #{rev} && #{git} submodule -q init && #{git} submodule -q sync && #{git} submodule -q update --recursive", @source.checkout(rev, dest).gsub(/\s+/, ' ')
+ assert_equal "#{git} clone -q git@somehost.com:project.git /var/www && cd /var/www && #{git} checkout -q -b deploy #{rev} && #{git} submodule -q init && #{git} submodule -q sync && #{git} submodule -q update --init --recursive", @source.checkout(rev, dest).gsub(/\s+/, ' ')
end
def test_checkout_with_verbose_should_not_use_q_switch
@@ -101,7 +101,7 @@ def test_sync
# with submodules
@config[:git_enable_submodules] = true
- assert_equal "cd #{dest} && #{git} fetch -q origin && #{git} reset -q --hard #{rev} && #{git} submodule -q init && for mod in `#{git} submodule status | awk '{ print $2 }'`; do #{git} config -f .git/config submodule.${mod}.url `#{git} config -f .gitmodules --get submodule.${mod}.url` && echo Synced $mod; done && #{git} submodule -q sync && #{git} submodule -q update && #{git} clean -q -d -x -f", @source.sync(rev, dest)
+ assert_equal "cd #{dest} && #{git} fetch -q origin && #{git} reset -q --hard #{rev} && #{git} submodule -q init && for mod in `#{git} submodule status | awk '{ print $2 }'`; do #{git} config -f .git/config submodule.${mod}.url `#{git} config -f .gitmodules --get submodule.${mod}.url` && echo Synced $mod; done && #{git} submodule -q sync && #{git} submodule -q update --init --recursive && #{git} clean -q -d -x -f", @source.sync(rev, dest)
end
def test_sync_with_remote
@@ -138,7 +138,7 @@ def test_remote_clone_with_submodules
@config[:git_enable_submodules] = true
dest = "/var/www"
rev = 'c2d9e79'
- assert_equal "git clone -q -o username git@somehost.com:project.git /var/www && cd /var/www && git checkout -q -b deploy #{rev} && git submodule -q init && git submodule -q sync && git submodule -q update --recursive", @source.checkout(rev, dest)
+ assert_equal "git clone -q -o username git@somehost.com:project.git /var/www && cd /var/www && git checkout -q -b deploy #{rev} && git submodule -q init && git submodule -q sync && git submodule -q update --init --recursive", @source.checkout(rev, dest)
end
# Tests from base_test.rb, makin' sure we didn't break anything up there!
Please sign in to comment.
Something went wrong with that request. Please try again.