一、備份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 ...