我有一个 SVN 项目的工作副本。文件被应用程序从此工作副本中删除。当我使用 SVN 命令行提交工作副本时,我想从存储库中删除这些已删除的文件。
如果我使用提交工作副本svn commit
它不会从项目中删除文件(因为它们没有在本地删除svn delete
。有什么方法可以告诉 SVN 删除(从存储库中)工作副本中丢失的任何文件吗?
use an
svn status
它将列出工作副本的更改。 (已删除的文件以 ! 开头)
然后你可以 :
svn delete file_to_del1 file_to_del2 etc
最后提交
您还可以编写一个小片段来自动执行此操作:
svn status | grep '^!' | awk '{print $2}' | xargs svn delete
最后添加一个别名:
alias svn_precommit="svn status | grep '^!' | awk '{print $2}' | xargs svn delete"
如果您需要在文件名中支持 @ / 空格,则需要使脚本复杂化(您不应该在文件名中使用这些字符,但有时这是其他人已经做出的决定) - 您可以直接在 .bashrc 中使用它:
svn_prepare_del() {
svn st | grep '^!' | awk '{$1=""; print " --force \""substr($0,2)"@\"" }' | xargs svn delete
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)