【问题标题】:IDE, SVN and pushing to sites!IDE、SVN 和推送到网站!
【发布时间】:2008-11-02 23:35:27
【问题描述】:

我正在考虑更新我的做法,并寻求一些帮助和建议!

我在运行 joomla、oscommerce、drupal 等的网站上做了很多工作,因此我创建了很多自定义组件/插件和黑客等。目前每个网站在我的 xampp 设置中都有自己的文件夹。我想做的是(例如)Joomla 设置的默认设置,当我进行更改更新时,我可以做一些更新包含 joomla 的所有其他文件夹的操作,就像自动更新一样?

我也在考虑更多地使用 Aptana IDE 和 SVN 服务(例如 unfuddle)与他人分享我的工作,但我之前没有使用过 SVN,不确定是否可以使用 SVN 完成上述操作?

如果能够处理主要/核心项目并将更新发送到本地更新和实际服务器,而无需维护许多不同的单独站点,那就太好了。

建议?

【问题讨论】:

    标签: php svn ide aptana unfuddle


    【解决方案1】:

    是的,SVN 将是一个很好的工具。将您的代码(例如:自定义 Joomla 组件)存储在源代码管理中。无论您想在哪里使用该组件,只需将该特定文件夹的checkoutexport 放入您的实时站点。这是构建存储库的一种方式:

    unfuddle.com/myRepo/trunk/com_myComponent
    unfuddle.com/myRepo/trunk/com_anotherComponent
    

    通过 SSH 登录到您的实时服务器并运行以下命令:

    > cd 路径/到/joomla/组件 > svn co http://unfuddle.com/myRepo/trunk/com_myComponent

    每当您更改代码时,提交更改,然后重新登录服务器并运行:

    > cd 路径/到/joomla/组件 > svn up com_myComponent

    这样做的真正好处是,如果您进行更新并破坏某些内容,您始终可以将其回滚到最后一个已知的“良好”版本。

    至于自动化这个过程,如果它在不同的服务器上,你可能会不走运。对于同一台服务器上的多个部署,您可以很容易地编写一个 shell 脚本来为每个站点/组件运行上述命令。如果您需要完全自动化,您甚至可以设置一个 cron 作业以在每天凌晨 2 点或其他时间运行此脚本 - 我个人会坚持使用手动方法,但它仍然是一种选择。

    要在本地使用您的 SVN 存储库,我建议您查看 TortoiseSVN(如果您使用的是 Windows):这是使用 SVN 最简单、最简单的方法。

    【讨论】:

    • 一些很好的建议,我担心 SVN 将是一场艰苦的斗争,所以你的指南真的很有帮助。共同结帐-更新?这是否也会将所有 svn 文件放入文件夹中,还是使用干净的方式获取文件?
    • 是的,co = 结帐,up = 更新。使用 checkout/update 创建所有带有 SVN 元数据的 .svn 文件夹,这是不可取的。解决此问题的两种方法:改用“导出”,或者使用 apache .htaccess 文件来禁止访问 .svn 文件夹。许多人更喜欢第一种选择(虽然不是我)
    【解决方案2】:

    为了实现自动化,您可以为此使用 SVN 挂钩。有一个 post-commit 钩子,所以每次提交时,你的钩子脚本都会告诉其他机器进行 SVN 更新以获取最新代码。

    有关详细信息,请参阅Version Control with Subversion - Implementing Repository Hooks

    【讨论】:

      【解决方案3】:

      对于您的情况,我没有一个好的答案,但我认为 Subversion 本身并不是答案。

      This Question 解决了对 Subversion 跨“项目”共享机制的一些担忧。

      Subversion 当然可以处理这个难题的源代码管理部分。自动分发,我会使用其他工具。

      【讨论】:

        【解决方案4】:

        查看Capistrano。我已经用过几次了,一旦你弄明白了,它就很不错了。针对 Rails,但应该适用于需要从存储库获取代码并将其部署在不同服务器上的任何应用。

        【讨论】:

        • 我会看看这听起来很有趣,虽然我们正在运行 RHEL 服务器,但我认为它们不运行 ruby​​ :(
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-02-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-29
        • 2016-04-08
        • 2017-05-02
        相关资源
        最近更新 更多