Git 默认情况下Capistrano是如何工作的?

Git 默认情况下Capistrano是如何工作的?,git,deployment,capistrano,Git,Deployment,Capistrano,好吧,在你否决之前,听我说完。。。通过Capistrano部署cakePHP/Wordpress/Drupal/Symfony的在线演练很多,项目自己的文档也很不错,但是没有太多关于Capistrano默认情况下实际做什么的报道。具体地说,对文件夹/timestamp,/最近的timestamp进行git签出,将其签出到/current,webroot以前已被符号链接到/current 我问这个问题是因为我们有一个非标准的、被黑客攻击的capistrano部署过程,这是出于一些遗留的原因,我想让

好吧,在你否决之前,听我说完。。。通过Capistrano部署cakePHP/Wordpress/Drupal/Symfony的在线演练很多,项目自己的文档也很不错,但是没有太多关于Capistrano默认情况下实际做什么的报道。具体地说,对文件夹
/timestamp
/最近的timestamp
进行git签出,将其签出到
/current
,webroot以前已被符号链接到
/current

我问这个问题是因为我们有一个非标准的、被黑客攻击的capistrano部署过程,这是出于一些遗留的原因,我想让我们与默认行为保持一致。为了做到这一点,我想了解capistrano的默认行为实际上是什么


cp-Ra/home/username/deploy/shared///home/username/deploy/releases/20121026170156/
:这个命令要花很长时间才能完成,我没有看到任何关于
/shared
被这样使用的文档:
/shared
扮演的典型角色是什么?

虽然可能只是答案的开始,了解任何自由和开放源码软件项目的最佳方式之一

来自PHP世界的您可能不熟悉Ruby Gem是如何组成的。gem通过gem的
/bin
目录中的文件提供给系统路径[作为可执行文件]。-从这里您可以看到调用
cap production deploy
的过程从哪里开始

require 'capistrano/cli'
Capistrano::CLI.execute

在本例中,它加载CLI库,然后调用其中的命令。从这里开始追踪你需要的东西。

你问了几个问题,特别是关于
/shared
的部分是具体的,因此很难给出一个能帮助你的答案。谢谢@NewAlexandria。在哪里可以找到CLI库?还有一个
lib/capistrano/CLI/
dir,它保存了您将在
lib/capistrano/CLI.rb
中看到的所需文件。你可能会发现看一个更简单的宝石很容易。