Svn
重新創建 svn 儲存庫
在發生重大伺服器故障後,svn 儲存庫被破壞,我的工作版本是最新版本,
從我的工作版本重新創建 svn 儲存庫的方法是什麼?
在新伺服器上安裝 svn 並嘗試我的工作副本後
svn switch NEW_SVN_PATH .
我收到一個錯誤
Repository UUID '1c604742-6b16-462b-86e4-cc8bce959242' doesn't match expected UUID '6df69aeb-a72c-450d-8102-24036a3855f7'
初始化新的 svn 儲存庫後
- 在客戶端上將目前工作目錄的 svn 導出到不同的位置
- 從導出的位置執行 svn 導入到新的 svn url
- 現在做一個 svn 重定位到創建的新儲存庫。
雖然這可能會奏效,但我認為新的結帳可能會更好,而不是重新定位
不得不處理這個。我使用託管顛覆,並進行了轉儲然後導入。他們的導入過程沒有將 UUID 從舊倉庫轉移到新倉庫,所以我得到了與 OP 相同的錯誤。Stack Exchange 網站上的所有答案只告訴您如何使用“svnadmin setuuid”來處理這個問題,但這對我來說不是一個選項,因為我使用託管服務(因此 svnadmin 將無法訪問儲存庫)。我本可以輸入一張票,但不想等待,所以這是我通過手動更新我的工作副本的 UUID 來修復它的方法:
警告:僅當您確定工作副本和您重新指向的儲存庫絕對同步時才嘗試此操作。不知道如果他們不是會發生什麼。
該過程基本上是在工作副本的隱藏 svn 文件夾(名為 .svn 或 _svn 的文件夾)中名為“條目”的文件中用新 UUID 替換舊 UUID。完成後,您可以使用 TortoiseSVN 的“重新定位”將工作目錄指向新的儲存庫 URL。
- 在控制台視窗中,cd 到工作文件夾的根目錄。
- 執行命令以遞歸方式從“條目”文件中刪除“只讀”屬性:
attrib -R entries /S
- 使用文本編輯器的“在文件中替換”功能將舊 UUID 替換為新 UUID。我使用具有以下設置的 Visual Studio:查看:PATH_TO_WORKING_FOLDER_ROOT / 包括子文件夾:選中 / 查看這些文件類型:條目
- 撤消步驟 #2:
attrib +R entries /S
- 將工作副本“重新定位”到新 URL。我使用 TortoiseSVN:右鍵點擊工作文件夾,TortoiseSVN->重新定位。
我認為第 5 步所做的所有操作都是替換“條目”文件中的 URL,因此如果需要,您可以手動執行此操作。也可以使用“svn”命令行工具,但不知道我腦海中的命令。