如何使用SmartSVN撤销所有本地变更但排除变更集内文件?
在SmartSVN中撤销所有本地变更但排除变更集内文件的实现方法
当然可以实现,下面提供两种方案,其中包含满足你需求的单条命令操作方式:
图形界面快速操作(适合可视化偏好)
- 打开工作副本根目录的变更视图,点击视图顶部的筛选按钮,选择「未在变更集中」,系统会自动过滤出所有不在变更集内的本地变更文件/文件夹
- 选中所有筛选后的内容,右键选择
Revert,即可仅撤销这些未纳入变更集的变更,变更集内的文件完全不受影响
单条命令实现(满足批量/命令行需求)
SmartSVN底层依赖SVN命令行工具,你可以通过以下方式实现单条命令操作:
- 在SmartSVN的变更集面板中,选中目标变更集内的所有文件,右键选择「复制路径」,将这些文件的相对路径复制到剪贴板
- 把剪贴板中的路径按换行拆分,替换到下面命令的
file1/path、file2/path位置,在工作副本根目录的终端执行:
echo -e "file1/path\nfile2/path" | svn status | awk '{print $2}' | grep -vxFf - | xargs svn revert
这条命令会先列出所有存在本地变更的文件,排除掉变更集内的文件后,对剩余文件执行撤销操作。
如果需要重复操作,也可以先把变更集文件路径保存到临时文件(比如keep-files.txt),再执行:
svn status | awk '{print $2}' | grep -vxFf keep-files.txt | xargs svn revert
内容的提问来源于stack exchange,提问作者YungDeiza
相关产品推荐
相关产品推荐

