私の Rails アプリは svn リポジトリにありますが、いくつかのプラグインは git を介してインストールされ、後で svn リポジトリに追加されます。これらのプラグインを更新するにはどうすればよいですか? スクリプト/プラグインの更新を取得して何もできないようです。Inflector の警告を取り除くために、activemerchant を更新したいと思っています。
6 に答える
プラグインの静的コピーをSubversionにチェックインしている場合は、を介してプラグインを更新するのが面倒な場合がありますscript/plugin
。そのため、1回の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
次に、Subversionプロジェクトに変更された他のすべてのものを追加.git
してください。そうすれば、すべて最新の状態になります。他のgitコマンドを使用して、更新をプルダウンしたり、別のブランチに移動したりできます。次に、目的の状態になったら、もう一度チェックインします。
プラグインにローカルな変更を加えておらず、更新によってどのような変更が加えられるかを追跡する必要がない場合は、必要に応じてscript/plugin install
渡して再度実行でき--force
ます。例えば:
script/plugin install --force git://github.com/dchelimsky/rspec.git
この場合、プラグイン ディレクトリを削除してから SVN にコミットします。これにより、レポ内の古いプラグインが削除されます。(念のため、通常は tmp ディレクトリに移動し、後で新しいバージョンが正常に動作するようになったら削除します) 次に、プラグインの新しいバージョンを再インストールし、再度コミットします。簡単。
GitがリポジトリをGitリポジトリとして認識できるようにするには、.git
サブディレクトリとその下のすべてをSubversionに追加する必要があります。それ以外の場合、プラグインはソースコードの別の山のように見え、Gitは「Gitリポジトリではない」と表示します。
プラグインのディレクトリに移動して、: を押すだけでよいはずです
git pull
。script/install plugin
gitリポジトリからコードをチェックアウトするだけだと確信しています。
同じ状況に遭遇し、この解決策を使用しました: 私のアプリの一部として svn リポジトリにあるプラグインとして paperclip をインストールしました。代わりに最新バージョンを使用したいと思い、ペーパークリッププラグインを少し変更しなかったので、app/svn から簡単に削除して代わりに gem としてインストールできました。終わり。