更新時(shí)間:2022-09-30 10:33:09 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1525次
1.安裝Subversion;
# yum install -y subversion
2.檢查是否安裝成功(查看SVN版本號(hào))
# svnserve --version
3.創(chuàng)建版本庫(kù)
//先建目錄
# mkdir /data/svn
# cd /data/svn
//創(chuàng)建版本庫(kù)
# svnadmin create /data/svn/project
# cd project
//會(huì)看到自動(dòng)生成的版本庫(kù)文件
# ls
conf db format hooks locks README.txt
這樣SVN環(huán)境搭建成功。
1.進(jìn)入版本庫(kù)中的配置目錄conf,
# cd conf
# ls
authz passwd svnserve.conf
權(quán)限配置文件(authz),用戶名口令文件(passwd),svn服務(wù)綜合配置文件(svnserve.conf)
要注意一點(diǎn),任何配置文件的有效配置行,都 **不允許存在前置空格** ,否則程序可能會(huì)出錯(cuò),給你一個(gè) ``Option expected`` 的提示。
2.修改權(quán)限配置文件(authz)
# vim authz
將用戶svnuser1,svnuser2加入snvuser用戶組,
用戶組svnuser對(duì)版本庫(kù)project具有讀和寫(xiě)的權(quán)限。
3.配置用戶名命令文件(passwd)
# vim passwd
4.配置SVN服務(wù)綜合配置文件 (svnserve.conf)
# vim svnserve.conf
//找到以下配置項(xiàng),將前面的#號(hào)去掉,然后做相應(yīng)的配置
anon-access = none //匿名用戶訪問(wèn)權(quán)限:無(wú)
auth-access = write //普通用戶訪問(wèn)權(quán)限:讀、寫(xiě)
password-db = passwd //密碼文件
authz-db = authz //權(quán)限配置文件
realm = /data/svn/project //版本庫(kù)所在
注意:所有以上的配置項(xiàng)都需要頂格,即前面不能預(yù)留空格,否則報(bào)錯(cuò)
5.啟動(dòng)svn服務(wù)
-r 添加 版本庫(kù)的根目錄
-d 讓SVN以deamon的形式運(yùn)行
# svnserve -d -r /data/svn
如果提示:
svnserve: Can't bind server socket: Address already in use
說(shuō)明svn已經(jīng)被啟動(dòng)了,由于我們修改了配置文件,因此需要重啟svn服務(wù)
//查看svn服務(wù)詳情
# ps aux | grep svn
790 ? 00:00:00 svnserve
//將svn服務(wù)強(qiáng)制停止 其中790為svn服務(wù)的ID號(hào),-9是kill的參數(shù)
# kill -9 790
或者用:
# killall svnserve
再運(yùn)行 svnserve -d -r /data/svn,進(jìn)行啟動(dòng)服務(wù)
6.測(cè)試服務(wù)器:
//我們?cè)趙eb目錄測(cè)試(/home/www)
# cd /root/www
# svn co svn://localhost/project
如果提示:Checked out revision 1.
表示checkout成功
我們添加新文件來(lái)測(cè)試是否提交成功
# cd /root/www
# touch index.php
# svn add index.php //成功的話會(huì)顯示 A index.php
# svn commit index.php -m //"測(cè)試提交文件"
假如最后提示:
Adding index.php
Transmitting file data .
Committed revision 2.
則表示我們svn服務(wù)器搭建成功!文件已經(jīng)能夠推送了。
7.本地拉取、推送
在本地安裝SVN,建立個(gè)文件夾,右鍵點(diǎn)檢svn checkout...
點(diǎn)擊ok,提示輸入用戶名和密碼
就填剛才我們創(chuàng)建的lsvnuser1或lsvnuser2,和對(duì)應(yīng)的密碼即可。
在web目錄中checkout 版本庫(kù)
# svn co svn://localhost/project /root/www --username svnuser1 --111111
進(jìn)入/data/svn/project/hooks下,建立post-commit文件:
# cd /data/svn/project/hooks
# vim post-commit
//在該文件里添加如下代碼,保存
#!/bin/sh
#設(shè)定環(huán)境變量,如果沒(méi)有設(shè)定可能會(huì)出現(xiàn)update報(bào)錯(cuò)
#設(shè)定語(yǔ)言,根據(jù)系統(tǒng)語(yǔ)言設(shè)置,如果是GBK就設(shè)置為 LANG=zh_CN.GBK
export LANG=en_US.utf8
SVN_PATH=/usr/bin/svn //這里不用改
WEB_PATH=/root/www/porject //web目錄,如果你的不同,可以改
//這里的用戶隨便一個(gè)就好
$SVN_PATH update $WEB_PATH --username 'svnuser1' --password '111111' --no-auth-cache
保存退出,修改post-commit用戶為www目錄的用戶,給past-commit執(zhí)行權(quán)限:
# chmod 755 post-commit
即成功完成了。
測(cè)試:在本地電腦新建一個(gè)文件提交到版本庫(kù),查看/root/www/project目錄下是否自動(dòng)更新對(duì)應(yīng)文件。
()內(nèi)為命令簡(jiǎn)寫(xiě).
checkout (co) 提取
commit (ci) 提交
update (up) 更新
list (ls) 列表
# svn up -r 1
啟動(dòng)svn服務(wù)
svnserve -d -r /data/svn
創(chuàng)建版本庫(kù)
svnadmin create fs-type fsfs /data/svn/project
查看版本庫(kù)的信息
svn list file:///data/svn/project
svn list –verbose file:///data/svn/project
導(dǎo)入庫(kù)的目錄結(jié)構(gòu)
svn import /tmp/project/ file:///data/svn/project/ –message “init” (文件夾project下有bo)
刪除版本庫(kù)project下文件夾bo
svn delete svn://192.168.18.10/data/svn/project/bo -m “delete ”
//導(dǎo)出
$svnlook youngest oldrepo
$svnadmin dump oldrepo > dumpfile
//還原
$svnadmin load newrepo < dumpfile
停止subversion服務(wù)
ps –aux | grep svnserve
kill -9 ID號(hào)
建立SVN存儲(chǔ)倉(cāng)庫(kù)示例
#mkdir -p /data/svn/repos
#svnadmin create –fs-type fsfs /data/svn/repos
備份以前的SVN庫(kù)
#svnadmin dump /data/svn/repos > /root/repos2
把備份出來(lái)的數(shù)據(jù)恢復(fù)到本地
#svnadmin load /data/svn/repos/ < /root/repos2
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743