SVN跨版本庫遷移目錄並保留提交日誌

2022-09-17 21:27:22 字數 1738 閱讀 2478

現在有乙份**code在版本庫reposa/dirb/下,現在想把它移動到reposb/diraa/下,本來打算交給sa做,沒想到sa似乎 也不太懂的樣子。於是,自己在vps搭建了乙個svnserver,然後在網上查了一下資料,確實沒有明確的攻略,不過,綜合一下,卻也解決了問題。

需要達到的目的是:

1. 將**移動到新的版本庫

2. 將原始的提交記錄保留

版本庫的結構如下,有reposa和reposb這兩個版本庫,然後紅色的reposa/dirb/code就是需要移動的**目錄。本來打算用 svn move來做的,後來發現因為是不同的版本庫,所以這個想法被淘汰了。於是就要在server上想辦法了,svnadmin有兩個引數dump和load 可以將版本庫提取出來/載入進去,還有命令svndumpfilter可以過濾某些不想要/只想要的目錄,這些就足以達到目的了。

版本庫的結構如下,要將code移動到reposb/diraa下邊:

於是,要開始嘍

注意,svn命令是在svn client端執行的,svnadmin svnserver svndumpfilter都是在svn server端執行的。

1234567891011121314

#進入svn版本庫目錄cd/opt/svndata

ls#reposa reposb#將reposa匯出到乙個檔案中svnadmindumpreposa/>f1

#將reposa中的code過濾出來,svndumpfilter include表示只保留制定的目錄和檔案svndumpfilterinclude dirb/code f2

#將dumpfile2匯入相應的目錄,也就是reposb/diraa/,用parent-dir來指定svnadminload reposb --parent-dirdiraa

這個時候會有提示說

1

svnadmin:filenotfound:transaction '1-1',path 'diraa/dirb/code'

這個時候,需要給reposb新建乙個dirb資料夾

123

mkdir/path/to/reposb/diraa/dirb

svn add/path/to/reposb/diraa/dirb

svn ci-m"新增臨時資料夾"/path/to/reposb/diraa/dirb

再次執行命令

1

svnadminload reposb --parent-dirdiraa 

就會得到

1234

...*adding path :diraa/dirb/code ...done.*adding path :diraa/dirb/code/filea ...done....

然後,code資料夾現在在reposb/diraa/dirb/code/這個路徑,可以使用svn mv在客戶端移動目錄

1

svn mv/path/to/reposb/diraa/dirb/code//path/to/reposb/diraa/

這樣就把reposa/dirb/code/轉移到了reposb/diraa/code/,並且保留了相應的提交日誌,目標達成。

SVN跨版本庫遷移目錄並保留提交日誌

這幾天有這樣乙個問題,現在有乙份 code在版本庫reposa dirb 下,現在想把它移動到reposb diraa 下,本來打算交給sa做,沒想到sa似乎也不太懂的樣子。於是,自己在vps搭建了乙個svnserver,然後在網上查了一下資料,確實沒有明確的攻略,不過,綜合一下,卻也解決了問題。需...

SVN 版本庫遷移

當因為記憶體限制或者其他某些原因,我們需要將svn版本從乙個伺服器a遷移到另外乙個伺服器b時,如果我們單純的只是將svn版本從伺服器a check out後將檔案重新放到伺服器b,將會缺失svn原有的日誌資訊等內容。linux環境下svn伺服器的安裝方式請參考 當我們需要保留原伺服器上所有的svn日...

SVN版本庫的遷移

兩台伺服器,進行 svn的遷移 系統平台 windows server 2003 版本庫 test 源伺服器 192.168.1.14 目標伺服器 192.168.1.12 源svn版本庫的 path d svn test 要遷移到的 path e svn test 首先說明 這個目標伺服器上的sv...