一冀偶、備份VisualSVN項目
- 現(xiàn)在要使用Linux作為svn服務器评抚,之前是在windows Server 2008上的奸披,用的是VisualSVN污茵,作者除了遷移了svn還有禪道,gitlab等蝙昙,為此可是查閱了很多資料闪萄,為此做一個總結,希望以后遇到類似問題的有資料可查奇颠,有興趣的可以看看我的其他隨筆败去。
- 現(xiàn)在svn中有一個項目fpp,需要將fpp這個項目導出到linux環(huán)境下烈拒。運行cmd圆裕,輸入命令 svnadmin dump E:\Repositories\fpp > e:\svnbak\fpp.dump將項目導出到e:\svnbak目錄下广鳍。
- 可見命令會導出每個版本的詳細信息,保證了之前的歷史信息不會丟失∠抛保現(xiàn)在我們便得到備份文件fpp.dump.
二赊时、上傳備份文件到Linux
- 利用ftp, ssh,scp等工具將fpp.dump文件傳輸?shù)絃inux服務器上耿战,這里利用直接利用openSSH這個軟件上傳蛋叼。文件的路徑為/root/fpp.dump。
三剂陡、Linux下SVN的安裝與配置
- Linux下安裝svn狈涮,這里直接利用yum命令進行安裝。
yum install subversion
完成subversion的安裝鸭栖。 - 建立版本庫目錄svndata歌馍。
mkdir /svndata
svnserve -d -r /svndata
#啟動svn,設置版本庫目錄為/svndata
有時啟動失敗的話晕鹊,查看端口是否被占用松却,
kill -9 1524
(進程號),殺死進程再運行命令
svnserve -d -r /svndata
不知道是那個進程也可以直接殺死所有進程
killall svnserve
#關閉svn
- 建立項目庫
svnadmin create /svndata/fpp
#fpp就是你的項目名溅话,這個以后要用到 - 配置用戶訪問權限
cd /svndata/fpp/conf
vi svnserve.conf
釋放如下幾行的注釋 ,之前查資料遇到一些什么都不懂就敢往上發(fā)晓锻,還有的人說把這幾個注釋了,有的是第一項參數(shù)為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
- 增加訪問用戶躁锁,格式為(username = password)
特別注意!B咽贰战转!等號兩邊要加空格,否則無效以躯。沒有加空格槐秧,就一直沒用,在linux所有配置文件里都是注意
四忧设、導入備份文件
- 輸入命令:
svnadmin load /svndata/fpp < /root/fpp.dump
五色鸳、客戶端進行代碼的檢出
1.windows端安裝TortoiseSVN, 右鍵svn checkout
- 在打開的對話框中,輸入svn庫的地址见转,確定便可以同步項目,ip地址加項目名稱蒜哀。
- svn提示檢出成功斩箫,在目錄下可以找到檢出的項目吏砂。
- 對于以前的項目,重定向到新的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 的時候出現(xiàn)“條目從本地編碼轉(zhuǎn)換到UTF8失敗”
6、服務器端都沒問題了胳喷,但是客戶端不能連接主機
下面就根據(jù)這幾個問題湃番,一一解答:
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安券、網(wǎng)上都說是LANG沒設置好墩崩,可是我的不是這個問題,我的是導入的源文件中有些文件自身的文件名亂碼侯勉,建議使用sublime而不要用notepad鹦筹。
6、服務器都設置好了址貌,那要是客戶端還連不上铐拐,就是防火墻的問題了,去/etc/sysconfig/iptables 設置一下练对,打開默認的3690端口就可以了
參考原文地址:
https://www.cnblogs.com/lidabo/p/4633152.html
https://www.cnblogs.com/lxwphp/p/8031811.html