Leo*_*man 136 svn tortoisesvn merge svn-mergeinfo
当我在我的存储库中合并东西时,Subversion想要将大量svn:mergeinfo
属性添加/更改为与我想要合并的内容完全无关的文件.
有关此行为的问题之前已在Stack Overflow上提出过:
根据我从上面提到的主题中理解,看起来我的存储库中的很多文件都有明确的svn:mergeinfo
属性,当它们不应该时.建议是减少金额,只将这些属性放在相关的文件/文件夹上.
所以现在我的问题是:如何轻松删除那些不需要的属性?我正在使用TortoiseSVN,但我不愿意手动检查/修复数百个文件.有没有更简单的方法来删除这些不必要的svn:mergeinfo
属性?
PS我不是在寻找C++ SVN API代码.
Vin*_*ent 140
这是删除所有子树svn:mergeinfo属性但不在根文件夹中的另一种方法(这是分支正常工作所必需的).
从项目的根目录做:
svn propdel svn:mergeinfo -R
svn revert .
svn ci -m "Removed mergeinfo"
Run Code Online (Sandbox Code Playgroud)
Kel*_*vin 15
这是一种删除所有子树svn:mergeinfo属性的方法.在存储库的根目录中运行它:
svn propget svn:mergeinfo --depth=infinity
| grep -v "^/"
| grep -v "^\."
| cut -d- -f1
| xargs svn propdel svn:mergeinfo
Run Code Online (Sandbox Code Playgroud)
一行代码,便于复制/粘贴:
svn propget svn:mergeinfo --depth=infinity | grep -v "^/" | grep -v "^\." | cut -d- -f1 | xargs svn propdel svn:mergeinfo
Run Code Online (Sandbox Code Playgroud)
要在运行之前预览这将影响哪些文件,请将最后一个"propdel"更改为"propget"或完全删除最后一个xargs管道.
由于我对盲目svn:merge-info
删除属性没有信心,我已经实现了一个工具来分析工作副本的当前情况,并从非root合并信息属性中删除尽可能多的合并修订.在进行其他人工检查和控制后,可以提交工作副本上的更改.
不要犹豫,报告任何有关其使用的问题,以改善它.
Subversion 1.10引入了一个专门用于该任务的新工具: svn-mergeinfo-normalizer