3

不知何故,图像被保存为 text/ascii,我需要为数百个图像目录递归地执行此操作,所有这些目录都在一个根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并让'er rip。

于 2010-12-06T18:45:57.733 回答