svn是運用在程式的版本控制,在大型專案上很容易就可以體會到svn的好處~
先安裝 subversion 套件及 apache2 的 svn 模組
apt-get install subversion libapache2-svn
在系統中建立 svn 的檔案庫目錄︰
mkdir /home/svn
建立 svn 的檔案系統(注意:一個檔案庫只能放一個專案,如有多個專案必須新增多個檔案庫)
svnadmin create /home/svn
修改權限
chown -R www-data:www-data /home/svn
設定apache,可使用網頁瀏覽
vim /etc/apache2/mods-enabled/dav_svn.conf
加入
#/svn可隨意替換,對應http//:localhost/xxx <Location /svn> DAV svn SVNPath /home/svn AuthType Basic AuthName "Subversion Repository" AuthUserFile /etc/apache2/dav_svn.passwd AuthzSVNAccessFile /etc/apache2/dav_svn.authz Require valid-user </Location>
設定使用者權限
vim /etc/apache2/dav_svn.authz
#群組 [groups] admin = user1,user2 #project_name對應http://localhost/xxx(ex:svn) [project_name:/] user1 = rw #群組設定需要加上@ @admin = rw
建立透過apache存取的使用者帳號/密碼
/usr/bin/htpasswd -c /etc/apache2/dav_svn.passwd user1 #-c為第一次新建dav_svn.passwd時使用,若有舊檔案則會被覆蓋 /usr/bin/htpasswd /etc/apache2/dav_svn.passwd user2
重新啟動apache
成功後輸入http://localhost/svn就會有畫面了
svn操作方式:
Import:將整個資料夾import進svn
svn import project_name http://localhost/svn svn import project_name file:///home/svn
Checkout:將資料取回來(可簡寫成 co,取回後程式會有.svn的資料夾)
svn co http://localhost/svn svn co file:///home/svn #如果出現svn: Repository moved permanently to please relocate,代表你目前的路徑有和svn同名的檔案或目錄
Export:將資料取回來,但不會有.svn(專案上線用)
svn export http://localhost/svn svn export file:///home/svn
若要手動砍掉.svn,在專案根目錄下以下指令
find . -type d -name '.svn' -exec rm -rf {} \;
List:看上面有哪些檔案(list可簡寫成 ls)
svn ls http://localhost/svn svn ls file:///home/svn
以下操作必須在從svn上checkout回來(有.svn)的專案根目錄執行
Update:將目前資訊更新成 SVN 線上最新版本(可簡寫成up)
svn up
Commit:將目前所做的修改 commit回svn(可簡寫成 ci)
svn ci
Status:看目前檔案跟SVN 線上的版本有哪些不同(可簡寫成 st)
svn st
Add:新增檔案或目錄進svn
svn add filename #commit只會修改svn上現有的檔案,新增檔案必須先add再commit
MV:改檔名,並且此檔案之前紀錄還要繼續留下
svn mv filename new_filename