3

どういうわけか、画像はtext / asciiとして保存されたので、すべて1つのルートimagesディレクトリの下にある何百もの画像ディレクトリに対してこれを再帰的に行う必要があります。

私はここで私に言ういくつかの指示を得ました:

svn proplist <yourfile>
svn propdel svn:eol-style <yourfile>
svn propset svn:mime-type application/octet-stream <yourfile>

これを行うことができるネイティブのsvn再帰的な方法はありますか?そうでない場合は、bashスクリプトを使用してこれを再帰的に適用する方法を誰かにアドバイスできますか?

4

3 に答える 3

3

シェル上:

find -name '*.png' -exec \
sh -c "svn propdel svn:eol-style {} && svn propset svn:mime-type image/png {}" \;
于 2010-12-06T18:41:48.857 に答える
1

次のPowerShellコードは、目的の機能を実現します。

foreach( $file in get-childitem -name -include *.png -exclude .svn -recurse) {
    &  svn propdel svn:eol-style $file;
    & svn propset svn:mime-type image/png $file
};
于 2012-07-02T19:43:55.270 に答える
1

これをテストできるSubversionリポジトリはありませんが、それほど難しくはありません。

find . -name .svn -prune -o print

これにより、作業ディレクトリ(.svnディレクトリを除く)内のすべてのファイルが一覧表示されます。

これで、これをwhile読み取りループと組み合わせることができます

find . -name .svn -prune -o print | while read file
do
   svn propdel svn:eol-style $file
   svn propset svn:mime-type application/octet-stream $file
done

ここで、ファイルにそのプロパティが設定されているかどうかを確認していないことに気付きました。私は単に気にしません。そして、これはすべてのファイルを実行します。find特定の種類のファイルのみを実行する場合は、次のコマンドを変更する必要があります。

find . -name .svn -prune -o -name "*.jpg" print

クリーンなSubversion作業ディレクトリから始めて、次のようなテストを実行することを強くお勧めします。

find . -name .svn -prune -o print | while read file
do
   echo svn propdel svn:eol-style $file
   echo svn propset svn:mime-type application/octet-stream $file
done

その出力が良さそうな場合は、を削除しechoて'erripします。

于 2010-12-06T18:45:57.733 に答える