如何将svn中保存为文本/ascii的图像大批量转换为二进制?
不知何故,图像被保存为text/ascii,我需要递归地对数百个图像目录执行此操作,所有这些目录都位于一个根如何将svn中保存为文本/ascii的图像大批量转换为二进制?,svn,binary-data,corrupt-data,Svn,Binary Data,Corrupt Data,不知何故,图像被保存为text/ascii,我需要递归地对数百个图像目录执行此操作,所有这些目录都位于一个根images目录下 我收到一些指示,指示我: svn proplist <yourfile> svn propdel svn:eol-style <yourfile> svn propset svn:mime-type application/octet-stream <yourfile> svn属性列表 svn propdel svn:eol样式 s
images
目录下
我收到一些指示,指示我:
svn proplist <yourfile>
svn propdel svn:eol-style <yourfile>
svn propset svn:mime-type application/octet-stream <yourfile>
svn属性列表
svn propdel svn:eol样式
svn propset svn:mime类型应用程序/八位字节流
是否有一些本地svn递归方法可以做到这一点?如果没有,有人能告诉我如何用bash脚本递归地应用它吗?在shell上:
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
这将列出工作目录(sans.svn目录)中的所有文件
现在,您可以将其与while read循环相结合
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
如果输出看起来不错,则移除回声,让其撕裂。以下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
};