SVNのテキスト/ASCIIとして保存された画像をバイナリに大量に変換するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/4369734

  •  09-10-2019
  •  | 
  •  

質問

どういうわけか画像はテキスト/ASCIIとして保存され、私は何百もの画像のディレクトリのためにこれを再帰的に行う必要があります。 images ディレクトリ。

いくつかの指示がありました ここ それは私に言う:

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

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

役に立ちましたか?

解決

シェル:

find -name '*.png' -exec \
sh -c "svn propdel svn:eol-style {} && svn propset svn:mime-type image/png {}" \;

他のヒント

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

find . -name .svn -prune -o print

これにより、ワーキングディレクトリ内のすべてのファイルがリストされます(.svnディレクトリをサン)。

これで、これをしばらく読むループと組み合わせることができます

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 そして、 'er ripしましょう。

次の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
};
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top