SVN伺服器從windows遷移至Linux

2022-03-21 16:32:25 字數 2959 閱讀 7239

一、備份visualsvn專案

1. 現在要使用linux作為svn伺服器,之前是在windows server 2008上的,用的是visualsvn,作者除了遷移了svn還有禪道,gitlab等,為此可是查閱了很多資料,為此做乙個總結,希望以後遇到類似問題的有資料可查,有興趣的可以看看我的其他隨筆。

2. 現在svn中有乙個專案fpp,需要將fpp這個專案匯出到linux環境下。執行cmd,輸入命令 svnadmin dump e:\repositories\fpp > e:\svnbak\fpp.dump將專案匯出到e:\svnbak目錄下。

3. 可見命令會匯出每個版本的詳細資訊,保證了之前的歷史資訊不會丟失。現在我們便得到備份檔案fpp.dump.

二、上傳備份檔案到linux

1. 利用ftp, ssh,scp等工具將fpp.dump檔案傳輸到linux伺服器上,這裡利用直接利用openssh這個軟體上傳。檔案的路徑為/root/fpp.dump。

三、linux下svn的安裝與配置

1. linux下安裝svn,這裡直接利用yum命令進行安裝。`yum install subversion`完成subversion的安裝。

2. 建立版本庫目錄svndata。

mkdir /svndata

svnserve -d -r /svndata` #啟動svn,設定版本庫目錄為/svndata

有時啟動失敗的話,檢視埠是否被占用,`kill -9 1524`(程序號),殺死程序再執行命令

svnserve -d -r /svndata

不知道是那個程序也可以直接殺死所有程序

killall svnserve #關閉svn

3. 建立專案庫

svnadmin create /svndata/fpp #fpp就是你的專案名,這個以後要用到

4. 配置使用者訪問許可權

cd /svndata/fpp/conf

vi svnserve.conf

釋放如下幾行的注釋 ,之前查資料遇到一些什麼都不懂就敢往上發,還有的人說把這幾個注釋了,有的是第一項引數為read的話就不用設定賬號了。

anon-access = none #匿名使用者不可讀寫,人多需要設定許可權必須設定為none

auth-access = write #授權使用者可寫

password-db = passwd #以哪個檔案作為使用者密碼檔案

authz-db = authz #以哪個檔案作為許可權檔案

後面兩個也可以寫絕對路徑,建議寫絕對路徑。

password-db = /svndata/fpp/conf/passwd

authz-db = /svndata/fpp/conf/authz

5. 增加訪問使用者,格式為(username = password)

特別注意!!!等號兩邊要加空格,否則無效。沒有加空格,就一直沒用,在linux所有配置檔案裡都是注意

四、匯入備份檔案

1. 輸入命令: svnadmin load /svndata/fpp < /root/fpp.dump

五、客戶端進行**的檢出

1.windows端安裝tortoisesvn, 右鍵svn checkout

2. 在開啟的對話方塊中,輸入svn庫的位址,確定便可以同步專案,ip位址加專案名稱。

3. svn提示檢出成功,在目錄下可以找到檢出的專案。

4. 對於以前的專案,重定向到新的svn伺服器,右鍵->tortoisesvn->relocate,在彈出的對話方塊中填寫新的位址,tortoisesvn會提示修改成功,之後,就可以使用新的svn了。

常見問題總結如下:

1、不知道該怎麼設定 svn://url 這個路徑

2、三個需要設定的檔案,其中authz這個裡面的[repos:/]這個到底該怎麼設定

3、認證失敗問題出在**?

4、svn import 目錄1 "svn://localhost/目錄2" -m "first version" 目錄2到底怎麼設定?

5、import 的時候出現「條目從本地編碼轉換到utf8失敗」

6、伺服器端都沒問題了,但是客戶端不能連線主機

下面就根據這幾個問題,一一解答:

1、svn可以分為單個或多個版本庫,假設:

版本庫目錄為 /data/svndata/repos1

啟動程式如果是:svnserve -d -r /data/svndata/repos1

這代表你當前svn只為repos1這個版本庫工作,客戶端訪問直接svn://ip/ 就可以了,後面不跟目錄

啟動程式如果是:svnserve -d -r /data/svndata/ 這代表你當前svn可以多版本庫執行,客戶端訪問就需要加上 svn://ip/repos1 這樣才能訪問repos1版本庫

2、第乙個問題是對應的

如果是乙個版本庫,那應該設定成如下:

[groups]

admin = user1,user2

[/]@admin=rw

如果是多個版本庫,那就應該設定成這樣:

[groups]

admin = user1,user2

[repos1:/]

@admin = rw

3、認證失敗的問題,就是對上述兩個問題沒有相對應的設定好,要麼都安乙個版本庫設定,要麼都安多個版本庫設定,只要對應設定好,應該就是沒有問題的。

4、目錄2是由svn建立的,不用自己去設定,假設:

svn import /tmp/ceshi "svn://localhost/a/b/c" -m "first version"

這樣的話,當你checkout的時候,你本地的目錄就應該是: /a/b/c

5、網上都說是lang沒設定好,可是我的不是這個問題,我的是匯入的原始檔中有些檔案自身的檔名亂碼,建議使用sublime而不要用notepad。

6、伺服器都設定好了,那要是客戶端還連不上,就是防火牆的問題了,去/etc/sysconfig/iptables 設定一下,開啟預設的3690埠就可以了

windows 架設SVN伺服器

想完整走一遍svn布置及使用流程,試完整理了一下 ctrl r,輸入cmd進終端,在命令列下執行svn命令,如下,則安裝成功 step 2 建立倉庫 建立乙個倉庫空資料夾e repos,並在repos資料夾上右鍵選中tortoisesvn create repository here step 3 ...

windows 下安裝SVN伺服器

2.安裝 3.配置 1 建立空資料夾d svndata webdemo 2 命令列svnadmin create d svndata webdemo 3 開啟d svndata webdemo conf svnserve.conf取消注釋並設定 anon access none auth acess...

windows版svn伺服器配置

1.安裝服務端和客戶端 2.建立版本庫 repository 首先建立一資料夾如 d svn,作為所有版本庫的根目錄。然後進入命令列並切換到subversion的bin目錄。輸入如下命令 svnadmin create d svn repos1 此命令在 d svn 下建立乙個版本庫 repos1 ...