如何定期複製SVN儲存庫而不遺失目標標籤和分支?

如何定期複製SVN儲存庫而不遺失目標標籤和分支?

我們想要下載(匯出、簽出)完整的儲存庫,並定期匯入到不同的儲存庫(包含所有提交訊息),以便我們可以實施標籤/分支策略。

背景:我們的承包商只是對行李箱做出了承諾,他拒絕(讓我們保持技術性)創建標籤來對每個新庫進行版本控制(這樣我們就可以跟上變更管理)。

因此,我們希望每天將他們的庫導入到我們的主幹中,並根據我們的政策建立標籤和分支。

以前有人發生過這種情況嗎?

答案1

SO問題有很多看似合理的解決方案如何同步兩個 Subversion 儲存庫

看起來可能適用於您的選項建議使用SVK這基本上是 svn 的分散版本。

答案2

雖然這很不尋常,但我相信你應該能夠在 的幫助下做到這一點svnadmin

在承包商的儲存庫上,您可以執行以下命令:

svnadmin dump --incremental -r <LOWER REVISION>:<UPPER REVISION> /path/to/bad_repo > dumpfile

然後在你的儲存庫上:

svnadmin load --parent contractors_stuff/ /path/to/your/repository < dumpfile

這將逐步將承包商儲存庫中的修訂新增至contractors_stuff您真實儲存庫中的目錄。正如我所說,理論上它應該有效,但這絕對不是該功能的預期用途。首先肯定需要在非生產系統上進行測試,如果您對真實儲存庫的該部分進行更改,它可能會中斷。

理想情況下,您會告訴您的承包商採取行動並制定法律。

另一種技術解決方案是使用不同的版本控制系統,例如 Mercurial、Git 或其他可以更好地支援此類工作流程的 DCVS。

相關內容