當前位置:首頁 » 操作系統 » linuxsvn

linuxsvn

發布時間: 2022-01-13 07:07:07

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配置文件是什麼配置文件呢?如果只是需要使用svn相關命令的話,因為svn是版本控制工具,所以它應該是在檢出的工作目錄下使用,其他目錄不可以使用的;

⑶ linux 下如何啟動SVN服務。

先轉到SVN的安裝目錄,比如,你安裝在/home/svn 下面。然後轉到bin目錄下,在這里可以看見一個叫svnserve的文件,我們需要用這個來啟動SVN服務。

⑷ linux下怎麼查看svn目錄

1、首先,連接相應linux主機,進入到linux命令行狀態下,等待輸入shell指令。

⑸ 如何在linux下添加svn用戶,svn有操作許可權的用戶

如果你的SVN伺服器是架設在Apache上的話,就是採用Apache的用戶管理方式,會有兩個文件,一個文件是存放用戶名和密碼(使用htpasswd命令管理),另一個文件存放用戶和組的許可權描述(文本編輯方式管理)

⑹ linux svn 版本差異

1 svn diff的用法
1.1 對比當前本地的工作拷貝文件(working )和緩存在.svn下的版本庫文件的區別

[plain]view plain

  • svndiff

  • 1.2 對比當前本地的工作拷貝文件(working )和任意版本A的差異

    [plain]view plain

  • svndiff-rA

  • 比如,以下將對比本地的工作拷貝文件(working )和版本94239的差異

    [cpp]view plain

  • svndiff-r94239

  • 1.3 對比任意歷史版本A和任意歷史版本B的差異

    [plain]view plain

  • svndiff-rA:B

  • 比如,以下命令將顯示版本94127相對於版本94239的差異,

    [plain]view plain

  • [@user]$svndiff-r94239:94127

  • 顯示差異後的結果如下,

    [html]view plain

  • ===================================================================

  • ---RealServer/LogicWorker.cpp(revision94239)

  • +++RealServer/LogicWorker.cpp(revision94127)

  • @@-964,22+964,8@@

  • .......

  • 其中r後面的參數的含義是版本號,具體可以在svn log中查詢到。

    2 svn log的用法

    1.1在任意位置使用

    [plain]view plain

  • svnlogur1

  • 1.2 進入代碼在本地的目錄後使用

    [plain]view plain

  • svnlog

  • 3 svn merge的用法

    [plain]view plain

  • svnmerge-rA:B

  • 比如,下面這個命令的含義是,把94127版本相對於94239版本的差異merge到當前版本,注意冒號前後的版本的順序是會帶來區別的。

    [html]view plain

  • svnmerge-r94239:94127

  • merge完成之後,記得提交本地的修改到版本庫,

    [plain]view plain

  • svnci-m"restoretoversion94127"

⑺ 怎麼在linux伺服器上部署svn

1. 安裝SVN伺服器:
檢查是否已安裝
# rpm -qa subversion

安裝SVN伺服器
# yum install httpd httpd-devel subversion mod_dav_svn mod_auth_mysql

驗證安裝
# cd /etc/httpd/moles
# ls | grep svn
mod_authz_svn.so
mod_dav_svn.so

查看版本
# svnserve --version

2. 代碼庫創建:
安裝完成後要建立SVN庫
# mkdir -p /opt/svn/repositories
# svnadmin create /opt/svn/repositories

執行後,自動建立repositories庫,查看/opt/svn/repositories文件夾包含了conf,db,format,hooks,locks,README.txt等文件,說明一個SVN庫已經建立。

3. 配置版本庫:
進入上面conf文件夾下,進行配置:
a. 用戶密碼passwd配置:
# vi + passwd //+表示游標放在文件最低端

修改passwd為一下內容:
[users]
# harry = harryssecret
# sally = sallyssecret
zhoulf=123456

b. 許可權控制authz配置:
# vi + authz

設置哪些用戶可以訪問哪些目錄,向authz文件追加以下內容:
[/]
zhoulf=rw //給該用戶訪問所有庫的許可權

[repositories:/project] //repository庫的根目錄許可權
zhoulf=rw
/ 表示根目錄及以下,根目錄是svnserve啟動時指定的,我們指定的是/opt/svn;/ 就是指對全部版本庫都具有許可權
repositories:/ 表示對庫repositories的根目錄設置許可權
PS:
* 許可權配置文件中出現的用戶名必須已在用戶配置文件中定義。
* 對許可權配置文件的修改立即生效,不必重啟svn。

c. 服務svnserve.con配置:
# vi + svnserve.conf

添加一下內容:

[general]
#匿名訪問的許可權,可以是read,write,none,默認為read
anon-access=none
#使授權用戶有寫許可權
auth-access=write
#密碼資料庫的路徑
password-db=passwd
#訪問控制文件
authz-db=authz
#認證命名空間,subversion會在認證提示里顯示,並且作為憑證緩存的關鍵字
realm=/opt/svn/repositories

這里注意各標簽不能錯,也不能有重復,不然無法連接。

d. 配置防火牆埠(如果需要):
不一定每個人都需要設置,可以先測試後再看是否需要打開埠
# vi /etc/sysconfig/iptables

添加一下內容:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT

保存後重啟防火牆
# service iptables restart

4. 查看:
a. 啟動SVN
# svnserve -d -r /opt/svn/repositories

b. 查看SVN進程
# ps -ef|grep svn|grep -v grep
root 12538 1 0 14:40 ? 00:00:00 svnserve -d -r /opt/svn/repositories

c. 檢測SVN埠
# netstat -ln |grep 3690
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN

5. 停止重啟SVN:
# killall svnserve //停止
# svnserve -d -r /opt/svn/repositories // 啟動

6. 測試連接:
使用TortoiseSVN進行測試:
1. SVN服務啟動後,需要使用客戶端測試連接:
客戶端連接地址:svn://192.168.15.231;然後,輸入用戶名密碼;
2. 新建一個文件夾,即本地的庫文件夾,右鍵checkout,將會得到一個隱藏文件夾.svn;
3. 在此文件夾中放入項目內容,然後右鍵點擊commit,就可以上傳本地項目了。

⑻ 如何查看linux下的svn的版本

查看軟體版本:svn --version

查看文件或目錄狀態:
svn status -v path(顯示文件和子目錄狀態)
第一列保持相同,第二列顯示工作版本號,第三和第四列顯示最後一次修改的版本號和修改人。
註:svn status、svn diff和 svn revert這三條命令在沒有網路的情況下也可以執行的,原因是svn在本地的.svn中保留了本地版本的原始拷貝。

⑼ linux svn伺服器上的文件保存在哪

svn有兩種存儲方式:BDB和FSFS,目前用的最多的是FSFS方式,這種方式的話,一般是存儲在\db\revs文件夾下,裡面有一堆以版本號命名的文件,如:0、1、2、3、4......,那個就是了。

svn先把0版本的狀態壓縮成1個文件,然後每次版本更新時就針對變動的部分做一個壓縮文件,每次都是增加一個增量包,最後在伺服器上能看到文件名為從0開始到最終版本的一系列文件

⑽ 在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 可以再次提交。

熱點內容
如何找到我的伺服器 發布:2024-12-22 19:52:14 瀏覽:298
手掛機腳本游 發布:2024-12-22 19:38:00 瀏覽:429
層次原理圖如何編譯 發布:2024-12-22 19:27:17 瀏覽:371
android計算緩存大小 發布:2024-12-22 19:16:54 瀏覽:660
php訪問模塊 發布:2024-12-22 19:05:24 瀏覽:272
電梯IC加密 發布:2024-12-22 19:04:47 瀏覽:376
腳本圈是引流加粉嗎 發布:2024-12-22 18:41:26 瀏覽:392
ajax文件上傳表單提交 發布:2024-12-22 17:55:00 瀏覽:856
win7無法共享的文件夾 發布:2024-12-22 17:53:39 瀏覽:41
華為手機密碼怎麼解鎖 發布:2024-12-22 17:53:38 瀏覽:554