我如何使用 rsync --delete 选项,但使删除命令变为“svn rm”?
我有一些配置文件等的存储库,但这些配置文件不是工作副本。我总是将它们复制到本地 svn 存储库目录(不包括 .svn),然后签入。我更改了许多文件名,因此我想删除存储库中的旧文件名(svn mv 对此有点过于复杂)。
编辑:哦,如果有一个 svn 选项可以给我相同的最终结果,那也很好。
答案1
我从来没有这样做过,但我解决这个问题的方法是编写一个脚本:
- 使用“--delete”选项运行 rsync
- 跑步
svn status
* - 收集所有缺失的文件名(以‘!’开头的行)
- 在该文件名列表上运行
svn rm
* - 您甚至可以使用
svn commit -m
*并附加注释,说明该文件在上述日期和时间执行 rsync 后已被删除。
* - 如果有必要,使用 ssh 远程运行命令。
答案2
svn 删除 $( svn 状态 | sed -e '/^!/!d' -e 's/^!//' )
svn 添加 $( svn 状态 | sed -e '/^?/!d' -e 's/^?//' )