SVN(subversion)詳解
SVN是近年來非常優秀的版本管理工具,與CSV管理工具一樣,SVN是一個跨平臺開元版本控制系統,但是SVN與衆不同的是,SVN會備份並記錄每個文件每一次的修改更新變動。這樣我們可以把任意一個時間點檔案恢復到想要的某一箇舊版本,當然也可以直接瀏覽指定文件的更新歷史記錄。
-
SVN服務搭建
# yum install subversion -y # svnserve --version //查看版本
-
創建倉庫目錄repo
# mkdir -p /opt/svn/repo/ //創建目錄 # svnadmin create /opt/svn/repo/ //創建新倉庫 # ls !$ //查看上一次使用的路徑
- 調整SVN參數
# vim /opt/svn/repo/conf/svnserve.conf //注意:下行的配置項前不能有空格與註釋符 anon-access = none //匿名用戶沒有任何權限 auth-access = write //認證用戶具有寫權限 password-db = /opt/svn/repo/conf/passwd //用戶密碼文件 authz-db = /opt/svn/repo/conf/authz //用戶信息文件
- **啓動和關閉SVN服務
# svnserve -d -r /opt/svn/repo/ //關閉通過kill pid 或者pkill svnserve # netstat -tunlp | grep svnserve
- 爲PHP程序員創建賬戶
# vim /opt/svn/repo/conf/passwd //創建賬戶密碼 [users] zhangsan = abc123 sysadmin = abc123 # vim /opt/svn/repo/conf/authz //創建權限文件 [/] //根目錄 下面寫入賬戶及權限(r讀 w寫) zhangsan = r sysadmin = rw [/webphp] sysadmin = r zhangsan = rw # mkdir /opt/svn/repo/webphp # svn import webphp/ file:///opt/svn/repo/webphp -m "初始化SVN目錄" //導入webphp
基本操作說明:
1. check out
檢出獲得文件後,檢出的文件仍處於SVN版本控制中,與版本庫保持關聯,比如你可以進行Svn Update或者Svn Commit操作。同時導出文件夾下有一個.svn的隱藏文件夾,存儲着一些版本的元數據信息。(對於導入到服務器中的數據,需要檢出才能形成一個受svn控制的工作拷貝,纔可以進行 add update commit 等操作)
2. export
簡單導出一個版本的數據(把服務器中的數據導出來,相當於複製一份),導出的文件脫離SVN版本控制(導出的就是一個文件,與svn版本沒關係),導出後也無法進行Update和Commit操作。導出文件夾下沒有.svn目錄
3. import
僅僅是把文件導入到svn服務器中,而這個文件本身還只是一個普通的文件,與svn版本庫沒有關係(導入時需要svn服務器的地址,可以從服務器複製下來,在Repositories下的版本庫右擊複製)
4. add
把新創建的文件添加到緩存區(執行後顯示一個加號),需commit提交才能真正上傳到服務器(顯示對號)
5. update
把服務器上最新的版本更新下來,比如別人上傳的版本(一般提交之前需先更新,否則別人上傳的新版本你沒有更新下來就會被覆蓋,別人上傳的就丟失了)