capistrano: Do not load SCM tasks unless an SCM is defined

Related to #718 and a handful of other issues which relate to deploying without an SCM, unloading the SCM, deploying via copy, tar ball, BitTorrent or quantum entanglement.

I propose, based on the work done in #718 to only load the flow, that without set(:scm, “something”) we should not load an SCM at all.

I propose that we could solve this by doing runtime class resolution, and autoloading of files incase a class is undefined, which may mandate changes to the structure of the SCM code. In that case we would still load the git namespace from git.rake (and others) - but avoid, if possible inserting the tools, which we could do in an include or similar hook in git.rb

About this issue

  • Original URL
  • State: closed
  • Created 10 years ago
  • Comments: 32 (22 by maintainers)

Commits related to this issue

Most upvoted comments

Capistrano 3.7.0.beta1 has been released! 🎉

This version brings a new SCM plugin system, and notably for observers of this thread, it adds set :scm, nil to disable SCM behavior completely. You can read more about the new behavior here:

After almost 3 years, I can now say that the feature is complete and I am closing this issue. Please test the beta and send us feedback!