我有一个svn工作副本,我试图反向合并几个最近的修订版.在我改变主意之前,我在合并之前取消了合并.现在,我的工作副本对大多数文件的祖先相关属性的更新有几千个"更改".我有大约10个混合实际代码更改的文件,我不想手动分开.
我是否有办法在不影响内容更改的情况下还原所有属性更改?
Jer*_*ale 32
svn revert `svn status | grep '^ M' | sed 's/^ M \+//g'`
Run Code Online (Sandbox Code Playgroud)
The*_*ice 18
如果使用'--depth empty'选项,则只会将更改还原到命令行中明确指定的路径,因此如果指定了所有具有属性更改但仍未保留内容更改的文件的目录.
例如,如果您的目录'foo'包含不需要的属性更改但文件'bar'在'foo'中,则以下内容应将mod保留为'bar',但还要恢复'foo'上的属性更改.
$svn revert --depth empty foo
Run Code Online (Sandbox Code Playgroud)
事实证明,Tortoise SVN可以很好地做到这一点.在提交对话框中,您可以按"文本状态"或"属性状态"对"已修改"文件进行排序.我只是按文本状态排序,然后还原所有具有"正常""文本状态"的"已修改"文件.