如何使用svn刪除先前的修訂?

如何使用svn刪除先前的修訂?

我想清除所有先前的修訂,只保留目前的修訂。

有沒有辦法做到這一點?

我找不到可能的命令來執行此操作:

[secret@vps303 ~]# svnadmin --help
general usage: svnadmin SUBCOMMAND REPOS_PATH  [ARGS & OPTIONS ...]
Type 'svnadmin help <subcommand>' for help on a specific subcommand.
Type 'svnadmin --version' to see the program version and FS modules.

Available subcommands:
   crashtest
   create
   deltify
   dump
   help (?, h)
   hotcopy
   list-dblogs
   list-unused-dblogs
   load
   lslocks
   lstxns
   pack
   recover
   rmlocks
   rmtxns
   setlog
   setrevprop
   setuuid
   upgrade
   verify

更新

似乎唯一的解決方案是匯出然後匯入,但是當我們運行時,存取權限設定也會匯出嗎svn export

答案1

答案確實是

svnadmin dump -r<revisionnumber> /old/repo/path > repo.dmp
svnadmin create /new/repo/path
svnadmin load  /new/repo/path <  repo.dmp

不是使用svn export,您可能會遺失一些方便的 svn:externals、svn:ignore's、svn:executable 等。較舊的修訂和日誌記錄還可以,但是您通常想要保留的內容:)

您通常可以透過將 ./conf 和 ./hooks 目錄從舊儲存庫複製到新儲存庫來複製可能的 auth/access/hook/其他配置。只要其中沒有硬編碼路徑,這些路徑就應該立即起作用。複製這些目錄後,請比較新舊儲存庫的檔案權限。

使用 svn 伺服器上的 svnadmin bin,不能使用 svn 用戶端執行此操作。

相關內容