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