2014-11-06 16 views
0

我想創建一個在線svn倉庫的鏡像庫,所以我可以讓源代碼具有同步在線repo上的更改的能力。並開始檢查鏡像回購代碼。對其進行更改。無法簽出使用svnsync創建的鏡像庫的代碼

在執行了使用svnsync的步驟之後,我確實執行了我的第一個svnsync sync命令後,沒有源代碼被複制到鏡像庫。

我誤解了使用svnsync或者我誤解了所有的svn鏡像機制?我如何檢出鏡像回購代碼。並開始努力呢?

注意 我做了以下操作來創建鏡像svn回購。

$ svnadmin create dest 
$ cat <<'EOF' > dest/hooks/pre-revprop-change 
#!/bin/sh 
USER="$3" 

if [ "$USER" = "svnsync" ]; then exit 0; fi 

echo "Only the svnsync user can change revprops" >&2 
exit 1 
EOF 

$ chmod +x dest/hooks/pre-revprop-change 
$ svnsync init --username svnsync file://`pwd`/dest http://thesource/source/repos 
$ svnsync sync file://`pwd`/dest 

回答

0

我發現了使用svnsync創建鏡像的步驟中缺少的步驟。如下面的blog post and the second comment in the post描述的問題解決了使用以下命令傾銷公共倉庫:

$ svnrdump dump http://sourceRepo/svn/repo > /tmp/sourceDump

我們可以選擇使用-rX-rX:Y轉儲特定修訂或修訂範圍。之後,我們開始使用以下命令來創建鏡像庫:

$ svnadmin create destRepo 
$ cat <<'EOF' > /pathToCreatedRepo/destRepo/hooks/pre-revprop-change 
#!/bin/sh 
USER="$3" 

if [ "$USER" = "svnsync" ]; then exit 0; fi 

echo "Only the svnsync user can change revprops" >&2 
exit 1 
EOF 

$ chmod +x /pathToCreatedRepo/destRepo/hooks/pre-revprop-change 

之後,我們需要使用以下命令轉儲文件導入到新destRepo

$ svnadmin load /pathToCreatedRepo/destRepo < /tmp/sourceDump 

,我們現在做的使用以下命令同步初始化:

$ svnsync initialize --allow-non-empty file:///pathToCreatedRepo/destRepo http://sourceRepo/svn/repo 

注意我們必須在這裏加一個參數--allow-non-empty使SVN能夠通過先前加載的現有轉儲進行同步。現在,我們可以做的新destRepo

$ svnsync sync file:///pathToCreatedRepo/destRepo 

我現在可以從鏡像存儲庫:)

0

艾哈邁德

我建議不要把SVN倉庫一樣的git在那裏你可以推/拉提交來回。

如果處理本地脫機鏡像是必須的,那麼git-svn是一個解決方案,但首先要仔細學習。

+0

現在我試圖克隆回購籤碼的普通sync電話。使用'git-svn',但問題出在我公司的內部基礎架構上,他們需要SVN而不是GIT 謝謝Maher的幫助 – 2014-11-09 15:42:55

+0

您需要在本地鏡像中維護公共存儲庫的歷史記錄嗎?或者你可以做一個完整的重新導入到一個快照? – 2014-11-09 16:59:44

+0

我需要跟上公共存儲庫的提交,但我不在乎舊的歷史 – 2014-11-10 09:08:51