1、linux伺服器上的svn 創建分支。 svn://192.168.X.XX/AP 要吧AP創建分支APbranch怎麼創建?
創建一個分支
svn copy svn://xx.com/repo/trunk svn://xx.com/repo/branches/TRY-something -m 'make branches TRY-something'
把工作目錄轉到分支
svn switch svn://xx.com/repo/branches/TRY-something
當然,也可以再轉到主幹svn switch svn://xx.com/repo/trunk
給當前主幹打個標簽,並且這個標簽不再改動了,但是實際上標簽和分支是一個意思,你可以在標簽上繼續做改動,但這不推薦。
svn copy svn://xx.com/repo/trunk svn://xx.com/repo/tags/RB-1.0
2、linux 搭建的svn伺服器怎麼訪問
舉個例子,命令執行創建:svnadmin create /svn 需要修改配置文件,設置賬號密碼
啟動svn服務:svnserve -d -r /svn
svn://IP/svn 就是你的訪問路徑
pc安裝svn客戶端,通過檢出或者版本庫瀏覽器訪問地址即可
3、linux如何搭建svn
先安裝SVN服務,然後再進行配置。
安裝SVN及配置:
官網下載:http://subversion.apache.org/packages.html
SVN客戶端:TortoiseSVN,官網下載:http://tortoisesvn.net/downloads.html
# yum install subversion
1. 新建一個目錄用於存儲SVN所有文件
# mkdir /svn
2. 新建一個資源倉庫
# svnadmin create /svn/project
# ls /svn/project/
conf db format hooks locks README.txt
目錄用途說明:
l hooks目錄:放置hook腳本文件的目錄
l locks目錄:用來放置subversion的db鎖文件和db_logs鎖文件的目錄,用來追蹤存取文件庫的客戶端
l format文件:是一個文本文件,裡面只放了一個整數,表示當前文件庫配置的版本號
l conf目錄:是這個倉庫的配置文件(倉庫的用戶訪問賬號、許可權等)
3. 配置svn服務的配置文件svnserver.conf文件
# vi /svn/project/conf/svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = /svn/project/conf/passwd
authz-db = /svn/project/conf/authz
realm = My Test Repository #這是個提示信息
保存
4. 添加兩個訪問用戶及口令
# vi /svn/project/conf/passwd
[users]
xiaoran.shen = 123456
test1 = 123456
test2 = 123456
保存
注意:對用戶配置文件的修改立即生效,不必重啟svn服務。
5. 配置新用戶的授權文件
# vi /svn/project/conf/authz
[groups]
admin = xiaoran.shen,test1
user = test2
[/]
@admin = rw
@user = r
* =
保存
格式說明:
版本庫目錄格式:
[<版本庫>:/項目/目錄]
@<用戶組名> = <許可權>
<用戶名> = <許可權>
/ 表示對根目錄(即/svn/project目錄)下的所有子目錄范圍設置許可權;
[/abc] 表示對資料庫中abc項目設置許可權;
創建一個admin組,組成員包括xiaoran.shen和test1
創建一個user組,成員只有test2;
admin組對目錄有讀寫許可權;
單個用戶test2有讀寫許可權;
*=表示除了上面設置的許可權用戶組以外,其他所有用戶都設置空許可權,空許可權表示禁止訪問本目錄,這很重要一定要加上。
注意:對許可權配置文件的修改立即生效,不必重啟svn。
6. 啟動svn服務
svnserve -d -r /svn/project/
至此,SVN伺服器搭建完畢,客戶端可以使用svn checkout IP來下載SVN文件。
4、如何配置自己的Linux svnserver伺服器
一、新建並初始化版本庫
1.新建代碼倉庫
# svnadmin create /home/myrepos
這樣,我們就在/home目錄下新建了版本庫myrepos。
2.初始化代碼倉庫
#mkdir -p code/{branches,tags,trunk}
按照svn手冊上的建議,我們版本庫的布局採用branches/tags/trunk這樣的三個目錄。然後可以將代碼直接拷貝的trunk目錄,也可以隨後採用svn add的方式添加。
#svn import code file: ///home/myrepos
將我們構造好的版本庫布局(以及代碼,如果已經拷貝到trunk下的話)提交到版本庫。由於這里我們是在本地操作,因此可以直接使用file協議方式提交。格式為:file:// + 版本庫絕對的路徑
OK,到這里我們已經構建了一個本地版本庫,可以再本地使用svn ci的方法得到版本庫的副本了。如果前面只是提交了版本庫布局,而沒有提交代碼的話,則可以通過如下命令,提交版本代碼:
#svn co file: ///home/myrepos/trunk repos
通常只從主線目錄trunk下取出源碼,放在了新建的repos目錄。然後可以將源碼拷貝到repos目錄。
執行以下兩條命令將代碼添加的版本庫。
#svn add *
#svn ci * -m "Committed codes"
首先需要將拷貝的代碼加入到當前的副本中,然後將代碼提交到版本庫。
二、配置並啟動svnserve
1. 配置svnserve
這一步主要完成遠程用戶訪問版本的許可權。
在版本庫目錄下有個conf目錄:home/myrepos/conf,該目錄包含三個文件:authz,passwd,svnserve.conf。
(1)svnserve.conf
此文件重點的設置內容如下:
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz
其中,anon-acces s和auth-access分別代表設置匿名用戶和授權用戶的訪問許可權。read代表只讀,write代表可讀可寫,還有一個none,代表禁止訪問。如果不想讓匿名用戶訪問的話,可以設置anon-access = none。
password-db為保存版本庫的用戶名和密碼,通常為conf目錄下的passwd文件。
authz-db指向的文件,主要用於將用戶進行分組,並賦予不同的組不同的許可權。譬如有多個目錄時,設置某個組的用戶只可以訪問其中的那些目錄。
(2)passwd
如前面介紹,這個文件的主要內容如下
[users]
harry = harrysecret
sally = sallyssecret
以上兩行就是可以訪問版本庫的用戶名和密碼。格式為:user = passwd。
(3)authz
[groups]
# harry_and_sally = harry,sally
# [/foo/bar]
# harry = rw
# * =
# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
以上就是authz文件的格式。先給用戶分組,然後分別設置每個組的工作目錄以及許可權等。
本文的講解並未用到authz的配置。
2. 啟動svnserve
#svnserve -d -r /home/
svnserve將以守護進程的方式運行。同時,通過-r選項指定了版本庫的目錄。這個目錄可以是版本庫的上級目錄(/home),也可以是版本庫的目錄(/home/myrepos)。具體的區別會在後面講到。當然,也可以不用-r指定。
三、遠程訪問svnserve。
假設版本伺服器的地址為10.1.1.1,那麼用戶可以在遠程linux端輸入命令:
#svn checkout svn://10.1.1.1/myrepos myrepos
這樣版本庫的所有內容都被check出來,存放在當前目錄myrepos下。這里相當於使用svn協議,不用搭建http伺服器。
如果啟動svnserve的時候,-r選項指定的是版本庫的目錄,譬如/home/myrepos,那麼檢出版本的時候,執行的命令為:
#svn checkout svn://10.1.1.1/ myrepos
如果啟動svnserve是沒有指定-r選項,則要輸入版本庫的絕對路徑:
#svn checkout svn://10.1.1.1/home/myrepos myrepos
四、容易出現的問題
在訪問svnserve時,遇到了不少的問題,大致總結一下:
1. 這一步最容易避免,一定要記得啟動svnserve。
2. 記得要正確的修改配置文件svnserve.conf和passwd。
3. 保證版本庫伺服器沒有配置限制遠程訪問svnserve的規則。有時在訪問svn伺服器的時候,會提示伺服器積極拒絕鏈接。簡單起見,可以看看iptables -L INPUT和iptables -L OUTPUT有沒有限制訪問的規則。
4. 要保證輸入版本庫的URL正確。
5、如何測試linux系統搭建的svn伺服器
1,用svnserve這種形式,那麼你的url就是 svn://your_host_ip/,不需要加上後面的2,auth語法似乎有點問題,[/xxx]是倉庫,你需要寫成[/]user=rw@group=rw...這樣的形式。試試看另外,提示輸入登陸伺服器密碼,有點怪,怎麼會有這一步的?
6、如何在linux伺服器上搭建svn
linux下SVN伺服器如何搭建和使用?說到SVN伺服器,想必大家都知道,可以是在LINUX下如何搭建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)
如果如上所示,那便沒有問題了;
7、svn怎麼在linux伺服器建庫
1、安裝svn服務
# yuminstall subversion
2、新建一個目錄用於存儲SVN所有文件
# mkdir /home/svn
3、在上面創建的文件夾中為項目 project_1 創建一個版本倉庫
# svnadmin create /home/svn/project_1
執行完這一步,/home/svn中將存在project_1文件夾,這個項目的配置都在 /home/svn/project_1/conf 中
4、為項目配置許可權
(1)svnserve.conf 是主配置文件
# vi/home/svn/project_1/conf/svnserve.conf
anon-access=read #匿名可讀
auth-access=write #驗證用戶可讀寫
password-db=passwd #指向驗證用戶名密碼的數據文件 passwd ,請看下文配置
auth-db=authz #指向驗證用戶的許可權配置文件 authz ,請看下文配置
注意:每一行前方不能有空格,否則會出現 Option expected錯誤!
(2)passwd用戶名密碼配置文件
# vi/home/svn/project_1/conf/passwd
[users]
manager1=123456 #每一行都要是「用戶名=密碼」的格式
manager2=123123
manager3=888888
(3)authz用戶許可權配置文件
# vi/home/svn/project_1/conf/authz
[groups]
managers=manager1,manager2 #定義群組 managers 包含 manager1 和 manager2 兩個用戶
[/]
@managers=rw #定義群組 managers 有讀寫許可權
manager3=r #定義 manager3 有讀許可權
*= #以上沒有定義的用戶都沒有任何許可權
8、在linux伺服器上搭建svn服務端有什麼用
當然可以連接的了。
客戶端操作流程一般是:
用戶A: checkout (提取) -> add (添加新文件) -> commit (提交)
用戶B: SVN log(查看更新) -> update(更新版本)
1,SVN的安裝
yun –y install subversion
2,Linux svn的常用命令
()內為命令簡寫.
checkout (co) 提取
commit (ci) 提交
update (up) 更新
list (ls) 列表
3, checkout (co) 提取 svn伺服器上的文件
(user1)操作流程
[root@TEST ~]# svn co svn://192.168.103.26/winne
Authentication realm: My First Repository
Password for 'root':
Authentication realm: My First Repository
Username: user1 /輸入用戶名
Password for 'user1': /輸入密碼
A winne/Cosmic Ride - BeFour.lrc
A winne/20070716171657126.pdf
A winne/svnbook.pdf
revision 1. / checkout (co) 提取成功,看到Checked out版本為1
注:可以使用帶用戶名和密碼的訪問:
svn co --username user1 --password user1 svn://192.168.103.26/winne
[root@TEST ~]# ll
drwxr-xr-x 3 root root 4096 Sep 23 09:02 winne /winne目錄是SVN自動生成的
drwxr-xr-x 2 root root 4096 Jul 30 02:06 tasks
[root@TEST ~]# cd winne
[root@TEST winne]# ll
total 2868
-rw-r--r-- 1 root root 1566968 Sep 23 08:53 20070716171657126.pdf
-rw-r--r-- 1 root root 2397 Sep 23 08:53 Cosmic Ride - BeFour.lrc
-rw-r--r-- 1 root root 1354300 Sep 23 08:53 svnbook.pdf
9、如何實現win7系統下訪問linux下的svn伺服器?
可以通過TortoiseSVN軟體訪問。
1,下載TortoiseSVN,百度搜索TortoiseSVN在百度軟體中心就可以下載了。版
2,安裝TortoiseSVN,雙擊運權行,按照提示,選擇安裝目錄,直到安裝完成。
3,安裝完成後,在桌面或者其他目錄下右擊滑鼠即可看到TortoiseSVN的菜單。
4,導出項目,右擊空白處,選擇TortoiseSVN - checkout
5,按提示輸入主機ip及目錄,如192.168.1.111/svn/test,輸入伺服器預設的賬戶名和密碼。
6,檢出完成後可以修改文件,進行提交和update操作。
10、如何配置自己的Linux svnserver伺服器
一、新建並初始化版本庫
1.新建代碼倉庫
# svnadmin create /home/myrepos
這樣,我們就在/home目錄下新建了版本庫myrepos。
2.初始化代碼倉庫
#mkdir -p code/{branches,tags,trunk}
按照svn手冊上的建議,我們版本庫的布局採用branches/tags/trunk這樣的三個目錄。然後可以將代碼直接拷貝的trunk目錄,也可以隨後採用svn add的方式添加。
#svn import code file: ///home/myrepos
將我們構造好的版本庫布局(以及代碼,如果已經拷貝到trunk下的話)提交到版本庫。由於這里我們是在本地操作,因此可以直接使用file協議方式提交。格式為:file:// + 版本庫絕對的路徑
OK,到這里我們已經構建了一個本地版本庫,可以再本地使用svn ci的方法得到版本庫的副本了。如果前面只是提交了版本庫布局,而沒有提交代碼的話,則可以通過如下命令,提交版本代碼:
#svn co file: ///home/myrepos/trunk repos
通常只從主線目錄trunk下取出源碼,放在了新建的repos目錄。然後可以將源碼拷貝到repos目錄。
執行以下兩條命令將代碼添加的版本庫。
#svn add *
#svn ci * -m "Committed codes"
首先需要將拷貝的代碼加入到當前的副本中,然後將代碼提交到版本庫。
二、配置並啟動svnserve
1. 配置svnserve
這一步主要完成遠程用戶訪問版本的許可權。
在版本庫目錄下有個conf目錄:home/myrepos/conf,該目錄包含三個文件:authz,passwd,svnserve.conf。
(1)svnserve.conf
此文件重點的設置內容如下:
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz
其中,anon-acces s和auth-access分別代表設置匿名用戶和授權用戶的訪問許可權。read代表只讀,write代表可讀可寫,還有一個none,代表禁止訪問。如果不想讓匿名用戶訪問的話,可以設置anon-access = none。
password-db為保存版本庫的用戶名和密碼,通常為conf目錄下的passwd文件。
authz-db指向的文件,主要用於將用戶進行分組,並賦予不同的組不同的許可權。譬如有多個目錄時,設置某個組的用戶只可以訪問其中的那些目錄。
(2)passwd
如前面介紹,這個文件的主要內容如下
[users]
harry = harrysecret
sally = sallyssecret
以上兩行就是可以訪問版本庫的用戶名和密碼。格式為:user = passwd。
(3)authz
[groups]
# harry_and_sally = harry,sally
# [/foo/bar]
# harry = rw
# * =
# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
以上就是authz文件的格式。先給用戶分組,然後分別設置每個組的工作目錄以及許可權等。
本文的講解並未用到authz的配置。
2. 啟動svnserve
#svnserve -d -r /home/
svnserve將以守護進程的方式運行。同時,通過-r選項指定了版本庫的目錄。這個目錄可以是版本庫的上級目錄(/home),也可以是版本庫的目錄(/home/myrepos)。具體的區別會在後面講到。當然,也可以不用-r指定。
三、遠程訪問svnserve。
假設版本伺服器的地址為10.1.1.1,那麼用戶可以在遠程linux端輸入命令:
#svn checkout svn://10.1.1.1/myrepos myrepos
這樣版本庫的所有內容都被check出來,存放在當前目錄myrepos下。這里相當於使用svn協議,不用搭建http伺服器。
如果啟動svnserve的時候,-r選項指定的是版本庫的目錄,譬如/home/myrepos,那麼檢出版本的時候,執行的命令為:
#svn checkout svn://10.1.1.1/ myrepos
如果啟動svnserve是沒有指定-r選項,則要輸入版本庫的絕對路徑:
#svn checkout svn://10.1.1.1/home/myrepos myrepos
四、容易出現的問題
在訪問svnserve時,遇到了不少的問題,大致總結一下:
1. 這一步最容易避免,一定要記得啟動svnserve。
2. 記得要正確的修改配置文件svnserve.conf和passwd。
3. 保證版本庫伺服器沒有配置限制遠程訪問svnserve的規則。有時在訪問svn伺服器的時候,會提示伺服器積極拒絕鏈接。簡單起見,可以看看iptables -L INPUT和iptables -L OUTPUT有沒有限制訪問的規則。
4. 要保證輸入版本庫的URL正確。
後記:
1. 版本庫的初次導入可以採用多種方式:
(1)直接構建好版本庫目錄,並將源碼拷貝的對應的位置,然後svn import即可;
(2)先用svn checkout取出版本,然後構建目錄和源碼,執行svn add 並且svn commit即可。
2. 導入或者提交文件類型的控制
svn客戶端是可以配置忽略哪些些文件,比如說我們不想提交*.o之類的文件。那麼可以通過設置svn:ignore或者global-ignore來進行過濾相關的文件。通常默認的情況就會過濾掉*.o, *.so,*.a等被svn認為是中間生成的文件。我本人使用的客服端不管是WIN的還是Linux的都是這種默認情況。
但是,如果有時基於某種需要,或者是導入一個別人之前維護的工程,裡面有些*.so,*.a文件必須保留,那麼如果在第一次import的時候全部導入呢?曾經問過有些朋友說,svn add或者svn import是可以直接把這種文件導入到版本庫的。但是我個人進行測試的時候,確實導入不進去,除非你直接svn add這個文件,然後提交應該就可以了。
如果這樣的文件比較多,而且比較分散,那麼如何解決呢?看一下svn import和svn add這兩個命令的幫助,都有--no-ignore選項。這個選項的功能就是執行相應動作的時候,不忽略任何文件。那麼執行以下兩條命令:
svn import [source] [repository] --no-ignore
或
svn add [source] --no-ignore
會自動將source目錄下所有的內容全部import或者add。
因此,通過--no-ignore選項,可以滿足提交一些特殊文件的需求。
3. 用一個舊版本的svnadmin創建的版本庫,直接拷貝到另外一台svn版本比較高的PC上使用時,發現提示資料庫版本不匹配。解決的方法:
(1)導出舊的版本庫內容,包含版本信息
具體使用的命令為svnadmin mp, 詳細使用方法參考手冊。該命令的格式為:
svnadmin mp REPOS_PATH [-r LOWER[:UPPER]] [--incremental]
如果我將版本庫完整的信息都倒出來的話,執行如下命令:
# svnadmin mp old_repos > repos.mp
默認版本庫mp的時候是輸出在終端的,通過重定下輸出到repos.mp文件裡面。該文件實際是文本文件。
(2)導入舊版本庫的內容
在需要導入的位置,新建一個版本庫
# svnadmin create new_repos
然後將repos.mp文件導入到新的版本庫:
# svnadmin load new_repos < repos.mp