【发布时间】:2008-10-13 21:12:09
【问题描述】:
我的 rails 应用程序位于 svn 存储库中,但其中一些插件是通过 git 安装的,后来添加到 svn 存储库中。如何更新这些插件?我似乎无法让脚本/插件更新来做任何事情。我真的很想更新 activemerchant 以摆脱 Inflector 警告。
【问题讨论】:
标签: ruby-on-rails svn git plugins
我的 rails 应用程序位于 svn 存储库中,但其中一些插件是通过 git 安装的,后来添加到 svn 存储库中。如何更新这些插件?我似乎无法让脚本/插件更新来做任何事情。我真的很想更新 activemerchant 以摆脱 Inflector 警告。
【问题讨论】:
标签: ruby-on-rails svn git plugins
如果您没有对插件进行任何本地更改并且您不需要跟踪更新将对其进行哪些更改,您可以再次运行script/plugin install,如果需要传递--force .例如:
script/plugin install --force git://github.com/dchelimsky/rspec.git
【讨论】:
如果您已经将插件的静态副本签入 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 命令来拉取更新、移动到不同的分支等。然后在它们处于您想要的状态时再次签入。
【讨论】:
在这种情况下我会做一件事,我删除插件目录然后我提交给 SVN,这将删除 repo 中的旧插件。 (我通常将它移动到 tmp 目录中,以防万一,等新的工作正常后将其延迟) 然后我重新安装新版本的插件,并再次提交。 很简单。
【讨论】:
您应该能够导航到插件的目录并点击:
git pull
。我很确定 script/install plugin 只是从 git repo 中检查代码。
【讨论】:
为了让 Git 能够将存储库识别为 Git 存储库,您需要将 .git 子目录及其下的所有内容也添加到 Subversion。否则,插件看起来就像另一堆源代码,Git 会说它“不是 Git 存储库”。
【讨论】:
遇到了同样的情况并使用了这个解决方案:将回形针作为插件安装在 svn 存储库中作为我的应用程序的一部分。现在我想改用最新版本,并且没有更改任何回形针插件,因此我可以轻松地将其从 app/svn 中删除,并将其安装为 gem。完成。
【讨论】: