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
Categories: Linux