一.安裝SVN和配置SVN
1.安裝SVN
apt-get install subversion
2.創建SVN目錄,項目目錄和配置文件目錄
mkdir /var/svn mkdir /var/svn/project mkdir /var/conf
3.創建認證文件
vim /var/conf/authz
#加入
[/] *= @DEV=rw @basic=r @sync=rw [union:/] chendayi=r [chendayi:/] chendayi=rw [groups] basic=user01
4.創建認證密鑰
vim /var/conf/passwd
#加入
[users] user01=123456
5.創建SVN服務配置文件
vim /var/conf/svnserve.conf
加入
[general] anon-access = none auth-access = write password-db = passwd authz-db = authz
6.修改文件執行權限
chmod +x /var/conf/authz chmod +x /var/conf/passwd chmod +x /var/conf/svnserve.conf
7.寫個腳本啟動svn
vim /var/svn/svnserver.sh
#加入
#!/bin/sh /usr/bin/svnserve -d -r "/var/svn/project/" --config-file "/var/svn/conf/svnserve.conf"
加入執行權限
chmod +x /var/svn/svnd.sh
8.啟動SVN服務器
cd /var/svn/
.svnserver.sh
檢查SVN是否啟動 netstat-ntlp tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 15127/svnserve
二、創建svn倉庫並檢出
1.創建svn倉庫
svnadmin create /var/svn/project/test 執行命令后生成以下文件 ls /var/svn/project/test conf db format hooks locks README.txt
2.檢出項目到網站目錄
cd /var/www svn checkout svn://127.0.0.1/test ##簡寫:svn co
三、svn中相關命令
1.往版本庫中添加新的文件
svn add test.php
2.將改動的文件提交到版本庫
svn commit -m " add test file for my test " test.php ##簡寫:svn ci
3.加鎖/解鎖
svn lock -m " lock test file " test.php svn unlock test.php
4.更新版本
##更新到最新版本 svn update test.php ##簡寫:svn up ##更新到指定版本 svn update -r 200 test.php
5.查看文件或者目錄狀態
##查看目錄下的文件和子目錄的狀態(正常不顯示) svn status path ##簡寫:svn st ## ?:不在svn的控制中 ## M:內容被修改 ## C:發生沖突 ## A:預定加入到版本庫 ## K:被鎖定 ##查看目錄下所有的文件和子目錄的狀態 svn status -v path 第一列最高版本號 第二列當前工作版本號,第三最后修改人 第四列文件路徑。
6.刪除文件
svn delete test.php -m " delete test file " ##簡寫:svn (del, remove, rm)
7.查看文件的所有修改日志
svn log test.php
8.查看文件詳細信息
svn info test.php
9.比較差異
##將修改的文件與基礎版本比較) svn diff test.php ## 簡寫:svn di ##比較兩個版本之間的差異 svn diff -r 200:201 test.php
10.將兩個版本之間的差異合並到當前文件
svn merge -r 200:201 test.php ##一般都會產生沖突,需要處理一下
11.SVN 幫助
svn help
12.版本庫下的文件和目錄列表
svn list path ##簡寫:svn ls
13.創建納入版本控制下的新目錄
svn mkdir
14.恢復本地修改
svn revert ##該命令不會恢復被刪除的目錄
15.代碼庫URL變更
svn switch
16.解決沖突
svn resolved
17.輸出指定版本的文件
svn cat -r PREV test.php > test2.php ##PREV 是上一版本,也可以寫具體版本號