svnsync 兩個svn庫之間的同步

2021-06-02 14:16:20 字數 1659 閱讀 9961

今天專案例會時提到乙個這樣的問題,我們公司做的乙個產品是和客戶公司共同開發、需要兩邊公司都有svn庫,這樣就導致兩個svn庫的**不同步,所以這樣就需要設定成兩個svn庫進行同步,google了一下發現網上好多大蝦都已經搞過,所以順手牽樣搞下來學習一下,供大家分享一下 

試驗下來,svnsync除了目標庫為唯讀之外,其它功能都很強大,實現也相對簡單。

如用svnsync 同步備份linux 下svn版本庫到windows

要同步的專案名稱:mu

svn版本庫1。4以上

源目錄:svn:

目標目錄:svn:

方法:1.如果目標目錄存在相同的專案,請先清除,重新建立空專案

svnadmin create mu

2.在mu目錄下hooks目錄下,建立

pre_revprop-change.bat 全部內容只有一行:exit 0

如果用拷貝同目錄下的pre_revprop-change.tmpl 則必須刪除最後三行的內容或替換為只有一行:exit 0

不然下面初始化同步的時候,將停頓

3. 執行 初始化

svnsync init svn: svn:

即svnsync init 目標庫 源庫

將向你詢問登入目標庫和源庫的使用者名稱和密碼,建議為兩個庫設定相同的使用者名稱及相同的密碼

正確後,顯示

copied properties for revision 0.

4.執行同步

svnsync sync svn:

即svnsync sync 目標庫

正確執行後,顯示

committed revision 1.

copied properties for revision 1.

committed revision 2.

copied properties for revision 2.

committed revision 3.

copied properties for revision 3.

committed revision 4.

copied properties for revision 4.

committed revision 5.

copied properties for revision 5.

committed revision 6.

copied properties for revision 6.

committed revision 7.

copied properties for revision 7.

committed revision 8.

...5.更新同步

在源庫的hooks下面,新增post-commit 指令碼

可拷貝post-commit.tmpl 即

cp post-commit.tmpl post-commit 然後

把 post-commit 中,最後兩行替換為

svnsync sync  --non-interactive svn: --sync-username user --sync-password user

即提交更新後,即執行同步命令,不進行互動

把post-commit 設為755許可權。

ps:如果post-commit指令碼出錯,或者無可執行許可權,在提交更新時會報錯

使用svnsync實時備份SVN版本庫

前段時間把svn版本庫從win遷移到了linux上,沒隔幾天那台win的磁碟就嚴重壞道了。這 什麼運氣!花費了點時間研究了下svn自己的同步工具。寫個日誌記錄下。注意 svnsync要求svn版本1.4 下面的內容來自svnbook 1.4 svnsync svnsync是subversion的遠端...

SVN匯出兩個版本之間的差異檔案

例如你上一次部署的版本是r20,你今次想部署的版本是r30,但是你只需要更新r30與r20版本之間的不同的檔案,就是兩個版本之間的差異檔案,那麼使用tortoisesvn可以很容易的做到這個事情。先選擇showlog檢視修改記錄,然後選擇你要比較的兩個版本,然後按右鍵選 compare revisi...

漫步於兩個心靈之間

最近在網上碰到一和我幾乎用乙個鼻孔出氣的人,才第一次體會到王力巨集的那句歌詞 我還沒說可惜 你已經在嘆氣 不可思議的默契 驚嘆彼此心靈相似的同時,也享用了那份獨到的快樂。說實話我戀愛過,但即使我的戀人也不曾這樣和我心有靈犀一點通。就這樣漫步在兩個心靈間,像靜靜的湖面.也許網路並不能保證什麼,尤其是人...