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