介紹
svn是版本管理工具,類似于github,可以管理項目的源代碼。通常公司項目需要各個部門間的協(xié)同合作,由此多人集中式管理的軟件很有必要。svn是客戶端和服務(wù)器的模式,項目人員可以通過svn客戶端從svn服務(wù)器下載代碼到本地,修改后再上傳。每次的提交版本都會有記錄,便于回滾。
安裝部署
環(huán)境:centos7
yum install -y subversion
#創(chuàng)建項目版本庫
mkdir -p /data/svn/myproject
svnadmin create /data/svn/myproject
版本庫中的配置目錄 conf 有三個文件:
authz 是權(quán)限控制文件
passwd 是帳號密碼文件
svnserve.conf 是SVN服務(wù)綜合配置文件
/data/svn/myproject/conf/authz
添加wenxue用戶讀寫權(quán)限
[groups]
[/]
wenxue = rw
*=r
- ./passwd
配置wenxue用戶的密碼為fai
[users]
# harry = harryssecret
# sally = sallyssecret
wenxue = fai
- 綜合配置
./svnserve.conf
[general]
# force-username-case = none
# 匿名訪問的權(quán)限 可以是read、write,none,默認(rèn)為read
anon-access = none
#使授權(quán)用戶有寫權(quán)限
auth-access = write
#密碼數(shù)據(jù)庫的路徑
password-db = passwd
#訪問控制文件
authz-db = authz
#認(rèn)證命名空間,SVN會在認(rèn)證提示里顯示,并且作為憑證緩存的關(guān)鍵字
realm = /data/svn/myproject
- 啟動svn服務(wù)器
svnserve -d -r /data/svn
客戶端本地操作
- 客戶端可以checkout項目 即從服務(wù)器下載到本地
mkdir -p /test
svn co svn://127.0.0.1/myproject /test - 修改提交到服務(wù)器
touch test.txt
svn add test.txt #第一次提交新文件用add命令
第二次開始:svn commit(ci) test.txt -m "修改了標(biāo)題" - 更新到最新版本
svn update 如果后面沒有目錄,默認(rèn)將當(dāng)前目錄以及子目錄下的所有文件都更新到最新版本。 - 查看 修改后的文件與源文件的區(qū)別
svn diff filename - 刪除文件
svn del filename
svn ci -m "delete filename" - 顯示這個文件的所有修改記錄,及其版本號的變化
svn log filename -
查看文件的詳細(xì)信息
svn info filename
image.png - 對版本m和版本n比較差異
svn diff -r m:n path
例子:svn diff -r 200:201 test.php - Linux命令行下將兩個版本之間的差異合并到當(dāng)前文件
svn merge -r m:n path
