1、什麼是svn
svn是非常優秀的版本管理工具,與cvs管理一樣,svn是乙個跨平台的開源的版本控制系統。這些資料放置在乙個**資料檔案庫中,這個檔案庫很像乙個普通的檔案伺服器或者ftp伺服器,但是不同的是,svn會記錄並備份每乙個檔案每一次的修改更新變動。
2、svn服務端執行模式與訪問方式
# yum install -y subversion
#建立svn版本庫資料目錄
# mkdir -p /data/svn/demo1/svndata #demo1專案資料目錄
# mkdir -p /data/svn/demo2/svndata #demo2專案資料目錄
#建立使用者密碼許可權目錄
# mkdir -p /data/svn/demo1/svnpasswd #demo1專案使用者密碼目錄
# mkdir -p /data/svn/demo1/svnpasswd #demo2專案使用者密碼目錄
#初始化建立版本庫,也可以理解為是乙個專案,demo1-code這個目錄不能用mkdir建立,svn有自己執行方式,會建立屬於svn自己的檔案。
# svnadmin create /data/svn/demo1/svndata/demo1-code
# svnadmin create /data/svn/demo2/svndata/demo2-code
#拷貝初始化生成的密碼檔案和認證檔案到自定義的目錄中
# cp /data/svn/demo1/svndata/demo1-code/conf/passwd /data/svn/demo1/svnpasswd
# cp /data/svn/demo1/svndata/demo1-code/conf/authz /data/svn/demo1/svnpasswd
# chmod 600 /data/svn/demo1/svnpasswd/passwd
# chmod 600 /data/svn/demo1/svnpasswd/authz
# cp /data/svn/demo2/svndata/demo2-code/conf/passwd /data/svn/demo2/svnpasswd
# cp /data/svn/demo2/svndata/demo2-code/conf/authz /data/svn/demo2/svnpasswd
# chmod 600 /data/svn/demo2/svnpasswd/passwd
# chmod 600 /data/svn/demo2/svnpasswd/authz
# cp /data/svn/demo1/svndata/demo1-code/conf/svnserve.conf /data/svn/demo1/svndata/demo1-code/conf/svnserve.conf.bak #修改配置檔案先備份
# vim /data/svn/demo1/svndata/demo1-code/conf/svnserve.conf
12 anon-access = none #read改為none,禁止匿名訪問
13 auth-access = write #認證訪問
20 password-db = /data/svn/demo1/svnpasswd/passwd #指定密碼檔案目錄
27 authz-db = /data/svn/demo1/svnpasswd/authz #指定授權檔案目錄
# vim /data/svn/demo1/svnpasswd/passwd
[users]
demo1-admin = 123456 #使用者=密碼
demo1-guest = 123456
demo1-test = 123456
# vim /data/svn/demo1/svnpasswd/authz
[groups]
group1 = demo1-guest,demo1-test #定義乙個組,名字可以隨意,指定該組中的成員,用逗號分隔
[/] #定義使用者針對demo1專案的許可權,表示demo1專案下所有內容允許誰可以有什麼許可權
@group1 = r #給某個組許可權,前面加@符號
demo1-admin = rw #給某個使用者許可權,使用者名稱 = 許可權
# svnserve -d -r /data/svn/demo1/svndata #-d:後台啟動,-r:指定svn專案的根目錄
# svnserve -d -r /data/svn/
將檔案checkout到本地:
# svn checkout svn: /root/svn/demo1-code --username=demo1-admin --password=123456
#svn:是demo1專案的svn伺服器位址和根目錄
#/root/svn/demo1-code/是指linux端checkout時,生成檔案倉庫的位置,不加這個目錄的話,預設在執行命令的當前目錄
# svn co #簡寫
新增檔案至版本庫
# svn add file #使用add新增檔案
提檔案到至版本庫
# svn commit -m "commit tet file" #進行提交
# svn ci #簡寫
更新檔案
# svn update #後面沒有目錄,預設將當前目錄以及子目錄下的所有檔案更新到最新
# svn update -r 3 file #將版本庫中的file檔案還原到版本3
# svn update file(更新與版本庫同步。提交的時候提示過期是因為衝突,需要先update,修改檔案,然後清除svn resolved,最後再提交commit)
# svn up #簡寫
加鎖、解鎖
# svn lock -m "lock file" file #給檔案加鎖
# svn unlock file #給檔案解鎖
檢視檔案狀態
# svn status file #檔案狀態正常不顯示
m:內容被修改;c:發生衝突;a:預定加入到版本庫;k:被鎖定
# svn status -v file.txt #第一列保持相同,第二列顯示工作版本號,第三和第四列顯示最後一次修改的版本號和修改人
k 4 4 demo1-admin file.txt
#svn st #簡寫
刪除檔案
# svn delete file.txt 再 svn ci -m "delete file" #推薦使用
# svn delete svn: -m "delete file"
檢視日誌
# svn log file.txt #檢視file.txt檔案的所有修改記錄以及版本變化
檢視檔案詳細資訊
# svn info file.txt #檢視檔案的詳細資訊
比較差異
# svn diff -r 10:9 file.txt #比較file.txt檔案的10版本和9版本的差異
# svn di #簡寫
yum安裝配置
檢查是否有安裝配置yum所需的依賴包 root localhost rpm qa grep deltarpm 所需的三個依賴包 deltarpm 3.5 0.5.20090913git.el6.x86 64.rpm python deltarpm 3.5 0.5.20090913git.el6.x8...
svn安裝配置
vi svnserve.conf 注意 anon access應該設為none,禁止匿名訪問。截圖的時候這裡忘改了 將其中這5行前的注釋去掉,且前面不要留空格,以免出問題 1 可讀 2 授權使用者可寫 3 使用哪個檔案作為賬號檔案 4 使用哪個檔案作為許可權檔案 5 版本倉庫所在目錄 svnserv...
svn安裝配置
1.安裝subversion,不斷下一步即可。2.建立乙個根目錄,用來儲存所有svn工廠資訊。每個工廠repository對應乙個專案。我這裡在e svndata。3.啟動svn,使用如下的命令svnserve d r e svndata。其中 d選項指的是後台模式,但是非常遺憾的是,windows...