apache上裝svn+批量刪除腳本

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 -d
php

 

 

 

 

 

 

 

在linux下開發文件,可是當有代碼被刪除的時候,有時候忘記立馬提交命令到svn服務器刪除相應的文件,python

可是svn自己沒有提供相應的命令來批量刪除,爲此用python寫了一個linux

 

  
  
           
  
  
  1. import os 
  2. if __name__== '__main__': 
  3.     svnfiles = os.popen("svn ls").readlines() 
  4.     print svnfiles 
  5.     localfiles = os.popen("ls").readlines() 
  6.     print localfiles 
  7.     svninfo = os.popen("svn info").readlines() 
  8.     path = svninfo[1][:len(svninfo[1])-1] 
  9.     for i in range(0,len(svnfiles)-1): 
  10.         sourcefile = svnfiles[i][:len(svnfiles[i])-1]     
  11.         if sourcefile[len(sourcefile)-1:] == "/": 
  12.             sourcefilesourcefile = sourcefile[:len(sourcefile)-1] 
  13.         #print sourcefile 
  14.         bDelete = True 
  15.         for j in range(0,len(localfiles)-1): 
  16.             localfile = localfiles[j][:len(localfiles[j])-1] 
  17.             #print localfile 
  18.             if sourcefile == localfile: 
  19.                 bDelete = False 
  20.                 break 
  21.         if bDelete == True: 
  22.             optstr = "svn delete %s/%s -m \"\" \n"%(path[5:],sourcefile) 
  23.             print optstr 
  24.             os.system(optstr) 
  25.             os.system("svn up") 

刪除.svn以脫離svn管理web

find ./ -name '.svn' -exec rm -rf {} \;apache

一、 將文 件checkout到本地目錄服務器

svn checkout path(path是服務器上的目錄)
例如:svn checkout svn ://192.168 .1.1 /pro/domain
簡寫:svn co

二、 往版 本庫中添加新的文件網絡

svn add file
例如:svn add test.php(添加test.php)
svn add *.php(添加當前目錄下全部的php文件)

三、 將改 動的文件提交到版本庫dom

svn commit -m 「LogMessage「 [ -N] [ --no-unlock] PATH (若是選擇了保持鎖,就使用–no-unlock開關)
例 如:svn commit -m 「add test file for my test「 test.php
簡寫:svn ci
ide

四、 加鎖 /解鎖svn

svn lock -m 「LockMessage「 [ --force] PATH 
例如:svn lock -m 「lock test file「 test.php
svn unlock PATH

五、 更新 到某個版本

svn update -r m path
例如:
svn update若是後面沒有目錄,默認將當前目錄以及子目錄下的全部文件都更新到最新版本。
svn update -r 200 test.php(將版本庫中的文件test.php還原到版本200)
svn update test.php(更新,於版本庫同步。若是在提交的時候提示過時的話,是由於衝突,須要先update,修改文件 , 而後清除svn resolved ,最後再提交 commit)
簡寫:svn up

六、 查看 文件或者目錄狀態

1)svn status path (目錄下的文件和子目錄的狀態,正常狀態不顯示)
【?: 不在svn 的控制中;M:內容被修改;C:發生衝突;A:預約加入到版本庫;K:被鎖 定】
2)svn status -v path (顯示文件和子目錄狀 態)
第一列保持相同,第二列顯示工做版本號,第三和第四列顯示最後一次修改的版本號和修改人。
注:svn status、svn diff和 svn revert這三條命令在沒有網絡的狀況下也能夠執行的,緣由是svn 在本地的.svn 中保留了 本地版本的原始拷貝。
簡寫:svn st

七、 刪除 文件

svn delete path -m 「delete test fle「
例 如:svn delete svn ://192.168.1.1/pro/domain/test.php -m 「delete test file」
或者直接svn delete test.php 而後再svn ci -m ‘delete test file‘,推薦使用這種
簡寫:svn (del, remove, rm)

八、 查看 日誌

svn log path
例如:svn log test.php 顯示這個文件的全部修改記錄,及其版本號的變化

九、 查看 文件詳細信息

svn info path
例如:svn info test.php

十、 比 較差別

svn diff path(將修改的文件與基礎版本比較)
例如:svn diff test.php
svn diff -r m:n path(對版本m和版本n比較差別)
例 如:svn diff -r 200:201 test.php
簡寫:svn di

十一、 將 兩個版本之間的差別合併到當前文件

svn merge -r m:n path
例如:svn merge -r 200:205 test.php(將版本200與205之間的差別合併到當前文件,可是通常都會產生衝突,須要處理一下)

十二、 SVN 幫助

svn help
svn help ci

——————————————————————————

以上是 經常使用命令,下面寫幾個不常常用的

——————————————————————————

1三、 版 本庫下的文件和目錄列表

svn list path
顯示path目錄下的全部屬於版本庫的文件和 目錄
簡寫:svn ls

1四、 創 建歸入版本控制下的新目錄

svn mkdir : 建立歸入版本控制下的新目錄。
用法: 一、mkdir PATH…
二、mkdir URL…
建立版本控制的目錄。
一、每個以工做副本 PATH 指定的目錄,都會建立在本地端,而且加入新增
調度,以待下一次的提交。
二、每一個以URL指定的目錄,都會透過當即提交於倉庫中建立。
在 這兩個狀況下,全部的中間目錄都必須事先存在。

1五、 恢 複本地修改

svn revert : 恢復原始未改變的工做副本文件 (恢復大部份的本地修改)。revert:
用法: revert PATH…
注意: 本子命令不會存取網絡,而且會解除衝突的情況。可是它不會恢復
被刪除的目錄

1六、 代 碼庫URL變動

svn switch (sw): 更新工做副本至不一樣的URL。
用法: 一、switch URL [PATH]
二、switch –relocate FROM TO [PATH...]

一、更新你的工做副本,映射到一個新的URL,其行爲跟「svn update」很像,也會將
服務器上文件與本地文件合併。這是將工做副本對應到同一倉庫中某個分支或者標記的
方法。
二、改寫工 做副本的URL元數據,以反映單純的URL上的改變。當倉庫的根URL變更
(好比方案名或是主機名稱變更),可是工做副本仍舊對映到同一倉庫的同 一目錄時使用
這個命令更新工做副本與倉庫的對應關係。

1七、 解 決衝突

svn resolved: 移除工做副本的目錄或文件的「衝突」狀態。
用 法: resolved PATH…
注意: 本子命令不會依語法來解決衝突或是移除衝突標記;它只是移除衝突的
相關文件,而後讓 PATH 能夠再次提交。

1八、 輸 出指定文件或URL的內容。

svn cat 目標[@版本]…若是指定了版本,將從指定的版本開始查找。
svn cat -r PREV filename > filename (PREV 是上一版本,也能夠寫具體版本號,這樣輸出結果是能夠提交的)

相關文章
相關標籤/搜索