[英]How do I remove an SVN tag completely that contains spaces?
我試圖清理svn存儲庫並刪除包含空格的標簽,因此所有標簽和分支均符合git規范:
PROJECT=myproject
svnrepo=svn+ssh://rubo77@myserver.de/var/svn-repos/$PROJECT
svn rm "$svnrepo/tags/version 3.6.2"
但是看來,這在這里不起作用: 如何使用reposurgeon將svn存儲庫轉換為git?
如何將其完全刪除?
使用svn rm
刪除遠程存儲庫中的文件時,必須提供提交日志消息。 通過URL進行刪除,重命名,復制等操作時,操作將立即提交,即SVN存儲庫中需要日志消息的新修訂。
所以命令應該是:
PROJECT=myproject
svnrepo=svn+ssh://rubo77@myserver.de/var/svn-repos/$PROJECT
svn rm -m "Removed the tag" "$svnrepo/tags/version 3.6.2"
請注意,使用svn rm
不會完全刪除該標簽。 創建此標記的修訂版仍將存在於存儲庫歷史記錄中。
完全刪除路徑的唯一選擇是使用svndumpfilter
工具過濾存儲庫歷史記錄 :
svnadmin dump /var/svn-repos/$PROJECT > /tmp/$PROJECT.dump
轉儲存儲庫 使用svndumpfilter
過濾存儲庫歷史記錄:
svndumpfilter exclude "tags/version 3.6.2" --drop-empty-revs < /tmp/$PROJECT.dump > /tmp/filtered.dump 2>/tmp/filterlog.txt
查看filterlog.txt
以確保歷史記錄過濾按預期完成。
使用svnadmin create
命令創建新的空存儲庫。
使用svnadmin load
命令將過濾的轉儲加載到新的存儲庫。 該存儲庫將具有整個歷史記錄,但不再存在與“標簽/版本3.6.2”相關的提交。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.