使用‘svn rm’进行 rsync

使用‘svn rm’进行 rsync

我如何使用 rsync --delete 选项,但使删除命令变为“svn rm”?

我有一些配置文件等的存储库,但这些配置文件不是工作副本。我总是将它们复制到本地 svn 存储库目录(不包括 .svn),然后签入。我更改了许多文件名,因此我想删除存储库中的旧文件名(svn mv 对此有点过于复杂)。

编辑:哦,如果有一个 svn 选项可以给我相同的最终结果,那也很好。

答案1

我从来没有这样做过,但我解决这个问题的方法是编写一个脚本:

  1. 使用“--delete”选项运行 rsync
  2. 跑步svn status*
  3. 收集所有缺失的文件名(以‘!’开头的行)
  4. 在该文件名列表上运行svn rm*
  5. 您甚至可以使用svn commit -m*并附加注释,说明该文件在上述日期和时间执行 rsync 后已被删除。

* - 如果有必要,使用 ssh 远程运行命令。

答案2

svn 删除 $( svn 状态 | sed -e '/^!/!d' -e 's/^!//' )
svn 添加 $( svn 状态 | sed -e '/^?/!d' -e 's/^?//' )

我发现http://thedrupalblog.com/updating-drupal-module-subversion-integrated-filesystem-using-rsync#comment-421

相关内容