【问题标题】:How to update rails plugins installed through git but in a svn repo?如何更新通过 git 但在 svn repo 中安装的 rails 插件?
【发布时间】:2008-10-13 21:12:09
【问题描述】:

我的 rails 应用程序位于 svn 存储库中,但其中一些插件是通过 git 安装的,后来添加到 svn 存储库中。如何更新这些插件?我似乎无法让脚本/插件更新来做任何事情。我真的很想更新 activemerchant 以摆脱 Inflector 警告。

【问题讨论】:

    标签: ruby-on-rails svn git plugins


    【解决方案1】:

    如果您没有对插件进行任何本地更改并且您不需要跟踪更新将对其进行哪些更改,您可以再次运行script/plugin install,如果需要传递--force .例如:

    script/plugin install --force git://github.com/dchelimsky/rspec.git
    

    【讨论】:

    • 这种工作,但它使目录在 svn 方面处于未知状态,因为它实际上只是删除了 vendor/plugin/active_merchant 目录并重新安装它。
    【解决方案2】:

    如果您已经将插件的静态副本签入 Subversion,通过script/plugin 更新它可能会很痛苦,所以我最终要做的是将它从静态安装切换到 Git 签出全部在一个 Subversion 提交中:

    git clone git://github.com/foo/bar.git ~/foobar
    mv ~/foobar/.git rails_app/vendor/plugins/foobar/.git
    rm -rf ~/foobar
    cd rails_app/vendor/plugins
    git reset --hard
    

    然后确保将 .git 和所有其他已更改的内容添加到 Subversion 项目中,您将全部保持最新状态。您可以使用其他 git 命令来拉取更新、移动到不同的分支等。然后在它们处于您想要的状态时再次签入。

    【讨论】:

      【解决方案3】:

      在这种情况下我会做一件事,我删除插件目录然后我提交给 SVN,这将删除 repo 中的旧插件。 (我通常将它移动到 tmp 目录中,以防万一,等新的工作正常后将其延迟) 然后我重新安装新版本的插件,并再次提交。 很简单。

      【讨论】:

        【解决方案4】:

        您应该能够导航到插件的目录并点击: git pull 。我很确定 script/install plugin 只是从 git repo 中检查代码。

        【讨论】:

        • 嗯,你是什么意思他们“通过 git 安装”。如果他们不是 git repos 那你是什么意思?
        • 它们是从 git 存储库安装的,但位于我的应用程序的 svn 存储库中。如果这是有道理的。请参阅activemerchant.org 并查看插件/安装说明。
        【解决方案5】:

        为了让 Git 能够将存储库识别为 Git 存储库,您需要将 .git 子目录及其下的所有内容也添加到 Subversion。否则,插件看起来就像另一堆源代码,Git 会说它“不是 Git 存储库”。

        【讨论】:

          【解决方案6】:

          遇到了同样的情况并使用了这个解决方案:将回形针作为插件安装在 svn 存储库中作为我的应用程序的一部分。现在我想改用最新版本,并且没有更改任何回形针插件,因此我可以轻松地将其从 app/svn 中删除,并将其安装为 gem。完成。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2010-10-20
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多