右、これは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をサポートしていることを承知しています!)も解決策であるとアドバイスされましたが、すぐには解決できず、現時点では満足のいくものではありません。
誰かがこれにいくつかの光を当てることができますか?
これらのコマンドを実行すると実際に新しいバージョンが取得されますが、プロセス内のSVNデータフォルダーが破棄され、「!module/file.php」が残ります。
Drush 4.4を実行していますが、これは私には当てはまらないようです。 drush upc
またはdrush 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
追加する必要があります--svnsync
をコマンドに追加します。
例:
drush pm-update module_to_update --version-control=svn --svnsync