Subversion 備份匯入後與實際工作版本整合作法

<style box background> 當 Subversion 的主機掛了之後,在找出之前定期匯出的備份檔案匯入重建的 Subversion Server 後,發現在工作版本執行更新時出現 No such revision xxxx 的錯誤訊息時所執行的解決作法. </quote>
<style box float-left> <ditaa name=exp>

+------+    +-------+
|{s}   |    |{s}    |
| SVN  |    | SVN   |
|      |<---|cPNK   |
|Server|    |Working|
|(2247)|    |(2332) |
+------+    +-------+
    ^
    \        +-------+
     +--=--->|{s}    |
             | SVN   |
             |cGRE   |
             |Working|
             |(2248) |
             +-------+

</ditaa> </quote>

  • 主要的問題在於匯入的備份資料少了實際工作版本的部份資料 Exp. 匯入的版本是 2247 但是實際工作的版本已經是 2332
  • 目標是將工作區的資料改成 2247 然後將現在的 2332 版本與之後異動過的資料加入 commit 成為 2248
  • 在工作資料區針對 svn update 或 commit 出現這錯誤的目錄進行以下的程序 Exp. /data/webdav
    1. 執行 svn checkout 到工作暫存目錄 /tmp/webdav 語法
    2. 執行 svn export 強制匯出現有工作版本到工作暫存目錄 /tmp/webdav 語法
    3. 執行 cp -a 將 .svn 相關版本控制檔案與最新版檔案蓋回現有目錄 語法
    4. 如果需要要將權限改正 Exp. 檔案所有者應該為 apache 就要改回 apache 語法
    5. 執行 svn commit 將整合修正版本上傳 語法
  • tech/subversion_fix.txt
  • 上一次變更: 2021/01/16 14:51
  • jonathan