SVNを壊さずにdrushでモジュールを更新していますか?


8

右、これは2日間私を壊しています。どこにも答えられない!

サーバーにDrush 4.4があります。Unfuddle.com経由でSVNを使用しています。私はサイトを持っています。たくさんのモジュールを更新したいと思います。コードだけを更新してから、機能していることを確認し(DBの更新は現時点では問題ではありません)、関連するコードをコミットします。

以前は、drush dlがモジュールコードを削除せずに、単に古いモジュールの上からダウンロードするだけでした。それはもはやそうではありません。今、AFAICT、drushはモジュールディレクトリを削除し、新しいバージョンに置き換えます。更新されたモジュールに残っていない古いファイルの問題が解決されるため、これで問題ありません。

ただし、drush dlまたはupcコマンドを使用すると、これらのコマンドを実行すると実際に新しいバージョンが取得されるため、行き詰まっていますが、プロセス内のSVNデータフォルダーが破壊され、「!module / file.php」問題がもう存在しないファイル。

「drush upc / dl modulename --version-control = svn」は機能するはずですが、機能しません。SVNデータはまだ破壊されています。

これにより、svn del module、svn commit -m "Removed module"、drush dl module、(test the module)、svn add module、svn commit -m "Added module"-すべての場合の潜在的な悪夢が残りますモジュール、それは完全な恐怖です。

変更を自動コミットするようにDrushを設定したくありません。変更に満足したときに、それらをダウンロードしてすべて手動でコミットしたいだけです。これ難しいことではありませんが、私はそれを機能させることができません。

gitへの移行(そう、私はunfuddleがgitをサポートしていることを承知しています!)も解決策であるとアドバイスされていますが、すぐには解決できず、現時点では満足のいくものではありません。

誰かがこれにいくつかの光を当てることができますか?!


gitの方が習得しやすいかもしれません。
chrisjlee

回答:


6

これらのコマンドを実行すると実際に新しいバージョンが取得されますが、プロセス内のSVNデータフォルダーが破棄され、「!module / file.php」が残ります。

Drush 4.4を実行していますが、これは私には当てはまらないようです。実行するdrush upcdrush up.svnディレクトリをそのまま維持します。svn statusモジュールへの変更を確認できます。新しいファイルはで示され?、削除されたファイルはで示され!ます。

サイトの機能をテストします。モジュールがまだ正しく機能していることを確認したら、次のようなスニペットを使用してsvn add / removeを実行できます。

追加:

svn status | grep '^\?' | cut -c8- | while read f; do svn add "$f"; done

削除する:

svn status | grep '^\!' | cut -c8- | while read f; do svn rm "$f"; done

おそらく「svn dataを破壊する」は私の側のエラーでした-以前は何も表示されませんでした!しかし、ちょうど?、私はsvnを追加しました。これはおそらく私の側の無知のポイントです。以前の方法での作業のしやすさへの期待だったと思います。これは(現在、drushで修正されているため)実際には誤りでした。
NikLP、2011年

4

--svnsyncコマンドに追加する必要があります。

例:

 drush pm-update module_to_update --version-control=svn --svnsync 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.