差異處
這裏顯示兩個版本的差異處。
| 兩邊的前次修訂版 前次修改 下次修改 | 前次修改 | ||
| tech:subversion_fix [2008/02/01 12:04] – jonathan | tech:subversion_fix [2021/01/16 14:51] (目前版本) – 更換 Plugin jonathan | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| + | ====== Subversion 備份匯入後與實際工作版本整合作法 ====== | ||
| + | <style box background> | ||
| + | 當 Subversion 的主機掛了之後,在找出之前定期匯出的備份檔案匯入重建的 Subversion Server 後,發現在工作版本執行更新時出現 **No such revision xxxx** 的錯誤訊息時所執行的解決作法. | ||
| + | </ | ||
| + | \\ | ||
| + | <style box float-left> | ||
| + | <ditaa name=exp> | ||
| + | +------+ | ||
| + | |{s} | ||
| + | | SVN | | SVN | | ||
| + | | |< | ||
| + | |Server| | ||
| + | |(2247)| | ||
| + | +------+ | ||
| + | ^ | ||
| + | \ +-------+ | ||
| + | | ||
| + | | SVN | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | * 主要的問題在於匯入的備份資料少了實際工作版本的部份資料 Exp. 匯入的版本是 2247 但是實際工作的版本已經是 2332 | ||
| + | * 目標是將工作區的資料改成 2247 然後將現在的 2332 版本與之後異動過的資料加入 commit 成為 2248 | ||
| + | * 在工作資料區針對 svn update 或 commit 出現這錯誤的目錄進行以下的程序 ++Exp. / | ||
| + | [root@www webdav]# pwd | ||
| + | / | ||
| + | [root@www webdav]# svn update | ||
| + | svn: REPORT 要求於 '/ | ||
| + | svn: | ||
| + | No such revision 2285 | ||
| + | |||
| + | [root@www webdav]# svn info | ||
| + | 路徑: . | ||
| + | URL: http:// | ||
| + | 修訂版: 848 | ||
| + | 節點種類: | ||
| + | 排程: 正常 | ||
| + | 最後更新作者: | ||
| + | 最後修改修訂版: | ||
| + | 最後修改日期: | ||
| + | |||
| + | </ | ||
| + | - 執行 svn checkout 到工作暫存目錄 /tmp/webdav ++語法|< | ||
| + | svn co http:// | ||
| + | </ | ||
| + | - 執行 svn export 強制匯出現有工作版本到工作暫存目錄 /tmp/webdav ++語法|< | ||
| + | svn export --force / | ||
| + | </ | ||
| + | - 執行 cp -a 將 .svn 相關版本控制檔案與最新版檔案蓋回現有目錄 ++語法|< | ||
| + | cp -a /tmp/webdav /data/ | ||
| + | </ | ||
| + | - 如果需要要將權限改正 Exp. 檔案所有者應該為 apache 就要改回 apache ++語法|< | ||
| + | chown -R apache: | ||
| + | </ | ||
| + | - 執行 svn commit 將整合修正版本上傳 ++語法|< | ||
| + | svn ci -m "Fix SVN version" | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | ===== 參考資料 ===== | ||
| + | * http:// | ||
| + | |||
| + | {{tag> | ||