簡體   English   中英

如何完全刪除包含空格的SVN標簽?

[英]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工具過濾存儲庫歷史記錄

  1. 使用svnadmin dump /var/svn-repos/$PROJECT > /tmp/$PROJECT.dump轉儲存儲庫
  2. 使用svndumpfilter過濾存儲庫歷史記錄:

    svndumpfilter exclude "tags/version 3.6.2" --drop-empty-revs < /tmp/$PROJECT.dump > /tmp/filtered.dump 2>/tmp/filterlog.txt

  3. 查看filterlog.txt以確保歷史記錄過濾按預期完成。

  4. 使用svnadmin create命令創建新的空存儲庫。

  5. 使用svnadmin load命令將過濾的轉儲加載到新的存儲庫。 該存儲庫將具有整個歷史記錄,但不再存在與“標簽/版本3.6.2”相關的提交。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM