1,源碼安裝apache 要加上--enable-dav
2,解壓並安裝subversion-1.3.2
./configure --prefix=/usr/local/subversion --with-apxs=/usr/local/apache/bin/apxs --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
(若是apr和apr-util不是單獨安裝,則指定路徑爲=/usr/local/apache)
注意路徑是否正確
make && make install
3,安裝成功後查看版本:
/usr/local/subversion/bin/svnserve --version
4,建立svn倉庫
mkdir -p /data/svnroot/svn1
/usr/local/subversion/bin/svnadmin create /data/svnroot/svn1
5,配置apache的httpd.conf
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
由於指定了apxs路徑,因此上面兩個so模塊在subversion安裝完之後就會自動加載到httpd.conf中
6,在httpd.conf後添加:
<Location /svn>
DAV svn
SVNParentPath /data/svnroot
AuthzSVNAccessFile /data/svnroot/authz.conf //用戶訪問控制文件
AuthUserFile /data/svnroot/authfile //用戶名密碼文件
Require valid-user
AUthName "Subversion repository"
AuthType Basic
</Location>
7,配置authz.conf和authfile文件
/usr/local/apache/bin/htpasswd -c /data/svnroot/authfile username
password
password
8,創建相關的密碼認證文件
vi /data/svnroot/authz.conf
[groups] 設置組
group_one = username group_one成員(username是authfile中的用戶)
[svn1:/] svn1 根目錄
@group_one = rw group_one成員有讀寫權限
* = r 其餘的有讀權限
9,編輯svnserver.conf文件
vi /data/svnroot/svn1/conf/svnserver.conf
只要如下四行就好了:
anon-access = read
auth-access = write
password-db = /data/svnroot/authfile
authz-db = /data/svnroot/authz.conf
10,設置權限並啓動
chown -R www:www /data/svnroot/
/usr/local/subversion/bin/svnserve -dphp
在linux下開發文件,可是當有代碼被刪除的時候,有時候忘記立馬提交命令到svn服務器刪除相應的文件,python
可是svn自己沒有提供相應的命令來批量刪除,爲此用python寫了一個linux
- import os
- if __name__== '__main__':
- svnfiles = os.popen("svn ls").readlines()
- print svnfiles
- localfiles = os.popen("ls").readlines()
- print localfiles
- svninfo = os.popen("svn info").readlines()
- path = svninfo[1][:len(svninfo[1])-1]
- for i in range(0,len(svnfiles)-1):
- sourcefile = svnfiles[i][:len(svnfiles[i])-1]
- if sourcefile[len(sourcefile)-1:] == "/":
- sourcefilesourcefile = sourcefile[:len(sourcefile)-1]
- #print sourcefile
- bDelete = True
- for j in range(0,len(localfiles)-1):
- localfile = localfiles[j][:len(localfiles[j])-1]
- #print localfile
- if sourcefile == localfile:
- bDelete = False
- break
- if bDelete == True:
- optstr = "svn delete %s/%s -m \"\" \n"%(path[5:],sourcefile)
- print optstr
- os.system(optstr)
- os.system("svn up")
刪除.svn以脫離svn管理web
find ./ -name '.svn' -exec rm -rf {} \;apache
一、 將文 件checkout到本地目錄服務器
二、 往版 本庫中添加新的文件網絡
三、 將改 動的文件提交到版本庫dom
svn commit -m 「LogMessage「 [ -N] [ --no-unlock] PATH (若是選擇了保持鎖,就使用–no-unlock開關)
例 如:svn commit -m 「add test file for my test「 test.php
簡寫:svn ciide
四、 加鎖 /解鎖svn
五、 更新 到某個版本
六、 查看 文件或者目錄狀態
七、 刪除 文件
八、 查看 日誌
九、 查看 文件詳細信息
十、 比 較差別
十一、 將 兩個版本之間的差別合併到當前文件
十二、 SVN 幫助
——————————————————————————
以上是 經常使用命令,下面寫幾個不常常用的
——————————————————————————
1三、 版 本庫下的文件和目錄列表
1四、 創 建歸入版本控制下的新目錄
1五、 恢 複本地修改
1六、 代 碼庫URL變動
一、更新你的工做副本,映射到一個新的URL,其行爲跟「svn update」很像,也會將
服務器上文件與本地文件合併。這是將工做副本對應到同一倉庫中某個分支或者標記的
方法。
二、改寫工 做副本的URL元數據,以反映單純的URL上的改變。當倉庫的根URL變更
(好比方案名或是主機名稱變更),可是工做副本仍舊對映到同一倉庫的同 一目錄時使用
這個命令更新工做副本與倉庫的對應關係。
1七、 解 決衝突
1八、 輸 出指定文件或URL的內容。
svn cat 目標[@版本]…若是指定了版本,將從指定的版本開始查找。
svn cat -r PREV filename > filename (PREV 是上一版本,也能夠寫具體版本號,這樣輸出結果是能夠提交的)