Skip to content

Commit

Permalink
improving behavior with git submodules
Browse files Browse the repository at this point in the history
  • Loading branch information
Ken Miller committed Apr 22, 2011
1 parent aa23020 commit 05c707c
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 5 deletions.
4 changes: 2 additions & 2 deletions lib/capistrano/recipes/deploy/scm/git.rb
Expand Up @@ -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(" && ")
Expand Down Expand Up @@ -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
Expand Down
6 changes: 3 additions & 3 deletions test/deploy/scm/git_test.rb
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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!
Expand Down

0 comments on commit 05c707c

Please sign in to comment.