题
我正在考虑更新我的做法,并寻求一些帮助和建议!
我在运行joomla,oscommerce,drupal等的网站上做了很多工作,所以我创建了很多自定义组件/插件和黑客等。目前每个网站在我的xampp设置上都有自己的文件夹。我想做的是有一个默认设置(例如)Joomla设置,当我进行更改更新时,我可以做一些更新所有其他包含joomla的文件夹,几乎就像一个自动更新?
我也在考虑更多地使用Aptana IDE和SVN服务,例如 unuddle 来与他人分享我的工作,但是我之前没有使用SVN,也不确定是否可以使用SVN进行上述操作?
能够处理主/核项目并将更新发送到本地更新和实际服务器,这将非常棒,而无需维护许多不同的单个站点。
建议?
解决方案
是的,SVN将是一个很好的工具。将您的代码(例如:自定义Joomla组件)存储在源代码管理中。无论您想在何处使用该组件,只需将该特定文件夹的 checkout
或 export
添加到您的实际站点即可。这是构建存储库的一种方法:
unfuddle.com/myRepo/trunk/com_myComponent unfuddle.com/myRepo/trunk/com_anotherComponent
通过SSH登录您的实时服务器并运行以下命令:
> cd path/to/joomla/components > svn co http://unfuddle.com/myRepo/trunk/com_myComponent
每次更改代码时,提交更改,然后重新登录服务器并运行:
> cd path/to/joomla/components > svn up com_myComponent
这样做的一个真正好处是,如果你进行更新并破坏某些东西,你总是可以将它回滚到最后一个已知的“好”的东西。版本
至于自动化这个过程,如果它在不同的服务器上,你可能会失败。对于同一服务器上的多个部署,您可以非常轻松地编写shell脚本来为每个站点/组件运行上述命令。如果您需要完全自动化,您甚至可以设置一个cron作业,每天凌晨2点运行此脚本或者其他东西 - 我个人坚持使用手动方法,但它仍然是一个选项。
为了在本地使用您的SVN存储库,我建议您查看 TortoiseSVN (如果您是在Windows上):这是使用SVN的最简单,最简单的方法。
其他提示
对于自动化操作,您可以使用SVN挂钩。有一个post-commit钩子,所以每次你提交时,你的钩子脚本都可以告诉其他机器进行SVN更新以获取最新的代码。
有关详情,请参阅使用Subversion进行版本控制 - 实现存储库挂钩。
我对你的情况没有一个好的答案,但我不认为Subversion本身就是答案。
此问题解决了Subversion跨“项目”共享机制的一些担忧。
Subversion当然可以处理这个难题的源代码管理部分。自动分发,我还会使用其他工具。
查看 Capistrano 。我已经习惯了几次,一旦你搞清楚了,它就相当不错了。针对rails,但应该适用于需要从存储库获取代码并将其部署在不同服务器上的任何内容。