linux下的svn
『壹』 linux裡面怎麼搭建SVN
SVN是Subversion的簡稱,是一個開放源代碼的版本控制系統,相較於RCS、CVS,它採用了分支管理系統,它的設計目標就是取代CVS。互聯網上很多版本控制服務已從CVS遷移到Subversion。說得簡單一點SVN就是用於多個人共同開發同一個項目,共用資源的目的.
Linux上部署4個項目的svn操作步驟:搭建SVN
[root@localhost ~]# yum -y install subversion
[root@localhost ~]# svnserve --version
svnserve, version 1.6.11 (r934486)
......
[root@localhost ~]# mkdir -p /a/svn/
[root@localhost ~]# mkdir /a/passwd
[root@localhost ~]# svnserve -d -r /a/svn
[root@localhost ~]# svnadmin create /a/svn/repo1
[root@localhost ~]# svnadmin create /a/svn/repo2
[root@localhost ~]# cp /a/svn/repo1/conf/passwd /a/passwd/
[root@localhost ~]# cp /a/svn/repo1/conf/authz /a/passwd/
[root@localhost ~]# vim /a/svn/repo1/conf/svnserve.conf
[general]
anon-access=none
auth-access=write
password-db = /a/passwd/passwd
authz-db = /a/passwd/authz
realm=1111111111111111
[root@localhost ~]# mv /a/svn/repo2/conf/svnserve.conf
/a/svn/repo2/conf/svnserve.conf.bak
[root@localhost ~]# mv /a/svn/repo3/conf/svnserve.conf
/a/svn/repo3/conf/svnserve.conf.bak
[root@localhost ~]# mv /a/svn/repo4/conf/svnserve.conf
/a/svn/repo4/conf/svnserve.conf.bak
[root@localhost ~]# cp /a/svn/repo1/conf/svnserve.conf
/a/svn/repo2/conf/svnserve.conf
[root@localhost ~]# cp /a/svn/repo1/conf/svnserve.conf
/a/svn/repo3/conf/svnserve.conf
[root@localhost ~]# cp /a/svn/repo1/conf/svnserve.conf
/a/svn/repo4/conf/svnserve.conf
[root@localhost ~]# vim /a/passwd/passwd
[users]
chen=chen123
lu=lu123
zhang=zhang123
wang=wang123
hua=hua123
dong=dong123
[root@localhost ~]# vim /a/passwd/authz
[groups]
java=chen,lu,zhang
ios=wang
web=hua
jishu=dong
[repo1:/]
@java=rw
[repo2:/]
@ios=rw
[repo3:/]
@web=rw
[repo4:/]
@jishu=rw
[root@localhost conf]# chmod 700 /a/passwd/*
[root@localhost ~]# pkill svnserve
[root@localhost ~]# ps -ef |grep svn
root 2405 2106 0 18:59 pts/1 00:00:00 grep svn
[root@localhost ~]# svnserve -d -r /a/svn/
[root@localhost ~]# ps -ef |grep svn
root 2411 1 0 19:00 ? 00:00:00 svnserve -d -r /a/svn/
root 2413 2106 0 19:00 pts/1 00:00:00 grep svn
『貳』 linux 下如何啟動SVN服務
先轉到SVN的安裝目錄,比如,你安裝在/home/svn 下面。然後轉到bin目錄下,在這里可以看見一個叫svnserve的文件,我們需要用這個來啟動SVN服務。
『叄』 linux下svn怎麼配置路徑許可權
Linux 下可以直接通過如下命令直接獲取svn server:(我使用的伺服器系統為Debian 7.5 穩定版)
apt-get install subversion
安裝完成後,可通過svnserve --version 查看安裝的版本,我所使用的svn server 版本為1.6.17:
二、創建代碼庫
創建庫(以test庫為例):
sudo svnadmin create /home/user/svn/test
這樣,一個簡單的代碼倉庫就創建完成了。
接下來啟動svn服務:
svnserve -d -r /home/user/svn/test
然後client端就可以通過「svn://ip.ip.ip.ip/test」來訪問svn了。
『肆』 linux 下的svn是什麼意思
svn有兩種存儲方式:BDB和FSFS,目前用的最多的是FSFS方式,這種方式的話,一般是存儲在\db\revs文件夾下,裡面有一堆以版本號命名的文件,如:0、1、2、3、4......,那個就是了。
svn先把0版本的狀態壓縮成1個文件,然後每次版本更新時就針對變動的部分做一個壓縮文件,每次都是增加一個增量包,最後在伺服器上能看到文件名為從0開始到最終版本的一系列文件
『伍』 在linux下查詢/關閉/啟動svn服務進程
查詢SVN服務進程號
# ps -ef|grep svnserve
查出SVN服務進程後,如果要關閉SVN服務,使用如下命令
# kill 進程號
如果要啟動SVN服務,使用如下命令
# svnserve -d -r /data/svn
其中/data/svn為SVN版本庫所在的路徑
『陸』 在linux下如何下載svn上的文件
linux下載svn客戶端就可以使用命令下載文件。
1、將文件checkout到本地目錄
svn checkout path(path是伺服器上的目錄)
例如:svn checkout svn://192.168.1.1/pro/domain
簡寫:svn co
2、往版本庫中添加新的文件
svn add file
例如:svn add test.php(添加test.php)
svn add *.php(添加當前目錄下所有的php文件)
3、將改動的文件提交到版本庫
svn commit -m 「LogMessage「 [-N] [--no-unlock] PATH(如果選擇了保持鎖,就使用–no-unlock開關)
例如:svn commit -m 「add test file for my test「 test.php
簡寫:svn ci
4、加鎖/解鎖
svn lock -m 「LockMessage「 [--force] PATH
例如:svn lock -m 「lock test file「 test.php
svn unlock PATH
5、更新到某個版本
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
6、查看文件或者目錄狀態
1)svn status path(目錄下的文件和子目錄的狀態,正常狀態不顯示)
【?:不在svn的控制中;M:內容被修改;C:發生沖突;A:預定加入到版本庫;K:被鎖定】
2)svn status -v path(顯示文件和子目錄狀態)
第一列保持相同,第二列顯示工作版本號,第三和第四列顯示最後一次修改的版本號和修改人。
註:svn status、svn diff和 svn revert這三條命令在沒有網路的情況下也可以執行的,原因是svn在本地的.svn中保留了本地版本的原始拷貝。
簡寫:svn st
7、刪除文件
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)
8、查看日誌
svn log path
例如:svn log test.php 顯示這個文件的所有修改記錄,及其版本號的變化
9、查看文件詳細信息
svn info path
例如:svn info test.php
10、比較差異
svn diff path(將修改的文件與基礎版本比較)
例如:svn diff test.php
svn diff -r m:n path(對版本m和版本n比較差異)
例如:svn diff -r 200:201 test.php
簡寫:svn di
11、將兩個版本之間的差異合並到當前文件
svn merge -r m:n path
例如:svn merge -r 200:205 test.php(將版本200與205之間的差異合並到當前文件,但是一般都會產生沖突,需要處理一下)
12、SVN 幫助
svn help
svn help ci
——————————————————————————
以上是常用命令,下面寫幾個不經常用的
——————————————————————————
13、版本庫下的文件和目錄列表
svn list path
顯示path目錄下的所有屬於版本庫的文件和目錄
簡寫:svn ls
14、創建納入版本控制下的新目錄
svn mkdir: 創建納入版本控制下的新目錄。
用法: 1、mkdir PATH…
2、mkdir URL…
創建版本控制的目錄。
1、每一個以工作副本 PATH 指定的目錄,都會創建在本地端,並且加入新增
調度,以待下一次的提交。
2、每個以URL指定的目錄,都會透過立即提交於倉庫中創建。
在這兩個情況下,所有的中間目錄都必須事先存在。
15、恢復本地修改
svn revert: 恢復原始未改變的工作副本文件 (恢復大部份的本地修改)。revert:
用法: revert PATH…
注意: 本子命令不會存取網路,並且會解除沖突的狀況。但是它不會恢復
被刪除的目錄
16、代碼庫URL變更
svn switch (sw): 更新工作副本至不同的URL。
用法: 1、switch URL [PATH]
2、switch –relocate FROM TO [PATH...]
1、更新你的工作副本,映射到一個新的URL,其行為跟「svn update」很像,也會將
伺服器上文件與本地文件合並。這是將工作副本對應到同一倉庫中某個分支或者標記的
方法。
2、改寫工作副本的URL元數據,以反映單純的URL上的改變。當倉庫的根URL變動
(比如方案名或是主機名稱變動),但是工作副本仍舊對映到同一倉庫的同一目錄時使用
這個命令更新工作副本與倉庫的對應關系。
17、解決沖突
svn resolved: 移除工作副本的目錄或文件的「沖突」狀態。
用法: resolved PATH…
注意: 本子命令不會依語法來解決沖突或是移除沖突標記;它只是移除沖突的
相關文件,然後讓 PATH 可以再次提交。
『柒』 Linux中svn伺服器安裝與使用
直接開放svnserve的埠就可以了,默認埠是3690
如果selinux開啟了,它會阻止文件的寫入,從倉庫中拉去正常,但上傳的時候會出現 不能打開文件"***/db/txn-current-lock"許可權不夠
如果出現semanage未定義,可以參考 CentOS7 中安裝semanage來設置selinux
倉庫目錄為 /home/svn/test ,如果要刪除版本倉庫直接刪除目錄就可以了 rm -rf /home/svn/test
在倉庫目錄 /home/svn/test 的 conf 目錄中會有三個文件
修改配置
修改配置添加賬號密碼,以 賬號=密碼 的格式配置, = 號二邊盡量不要存在空格
許可權管理分為組管理和目錄許可權管理
多個創建可以共用一套賬號和密碼許可權管理。也可以用不同的賬號密碼管理,如果用不同的配置少單倉庫類似,修改每個倉庫conf下的賬號和許可權文件就可以了。下面說一下共用賬號許可權文件的情況。
在倉庫目錄 /home/svn 目錄中創建authz文件和passwd文件。
修改配置各倉庫下conf/svnserve.conf。將password-db和authz-db指向/home/svn/目錄下的文件
修改/home/svn/passwd配置添加賬號密碼,以 賬號=密碼 的格式配置, = 號二邊盡量不要存在空格
修改/home/svn/authz許可權管理分為組管理和目錄許可權管理
如果單倉庫以/home/svn啟動,此時訪問的地址會有倉庫名。 svn://ip/test
訪問地址分別為:
編輯 /etc/sysconfig/svnserve 文件,修改 OPTIONS="-r /var/svn" 參數改為svn倉庫目錄 OPTIONS="-r /home/svn"
設置開機啟動
修改後也可以用systemctl來啟動、停止、重啟
svnserve啟動後,修改authz和passwd文件是時實生效的,並不需要重啟服務
有時隨著倉庫越來越多,許可權配置也越來越多時,會出現一些配置錯誤,導致訪問時出現無法載入許可權驗證之前的錯誤,這個時候我們可以將svn伺服器的日誌列印出來,看些配置出錯了。
停止svn伺服器,重新附加log-file參數輸入日誌到指定文件
『捌』 linux下怎麼查看svn目錄
1、首先,連接相應linux主機,進入到linux命令行狀態下,等待輸入shell指令。
『玖』 linux 下如何啟動SVN服務。
先轉到SVN的安裝目錄,比如,你安裝在/home/svn 下面。然後轉到bin目錄下,在這里可以看見一個叫svnserve的文件,我們需要用這個來啟動SVN服務。
『拾』 如何在linux下搭建svn服務
1,首先安裝好LINUX系統,然後YUM安裝:
#yum -y install svnversion
2,安全完成之後我們來配置:
創建版本庫目錄:
#mkdir -p /banbenku/svn/
3,然後啟用:
#svnserve -d -r /banbenku/svn
然後查看是否啟動了!
ps -ef|grep svn;
[root@207 conf]# lsof -i:3690
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
svnserve 8454 root 3u IPv4 1346200 0t0 TCP *:svn (LISTEN)
4,然後我們來新建版本:
mkdir -p /banbenku/svn/zhoujie/
cd /banbenku/svn/zhoujie/conf
在這里有三個文件:authz passwd svnserve.conf
svnserve.conf是主要配置文件;
vi svnserve.conf
修改如下:
anon-access = read
auth-access = write
password-db = /banbenku/svn/zhoujie/conf/passwd
authz-db = /banbenku/svn/zhoujie/conf/authz
wq!
保存退出:
然後修改passwd:
建立用戶名與密碼內容如下:
zhoujie = 123456
wq
保有存退出:
然後修改:authz:
內容如下:
[groups]
admin = zhoujie
[zhoujie:/]
@admin =rw
wq
保存退出!
這樣我們便配置好了;要使用啟生效,重啟SVN:
ps -ef|grep svn
kill -9 PID
svnserve -d -r /banbenku/svn
然後再檢測:
[root@207 conf]# lsof -i:3690
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
svnserve 8454 root 3u IPv4 1346200 0t0 TCP *:svn (LISTEN)
如果如上所示,那便沒有問題了;