本次實踐使用百度服務器 CentOS / 7.1 x86_64 (64bit)
svnserve, version 1.7.14
yum install subversion
查看版本
svnserve –version
返回結果
[root@chinamobile2016 ~]# svnserve –version
svnserve, version 1.7.14
(r1542130) compiled Nov 20 2015, 19:25:09Copyright (C) 2013 The Apache Software Foundation. This software
consists of contributions made by many people; see the NOTICE file for
more information. Subversion is open source software, see
http://subversion.apache.org/The following repository back-end (FS) modules are available:
- fs_base : Module for working with a Berkeley DB repository.
- fs_fs : Module for working with a plain file (FSFS) repository.
Cyrus SASL authentication is available.
cd /storage
mkdir svn
cd svn
mkdir project
svnadmin create /storage/svn/project/
ls project/
發現已經有生成的版本庫文件
conf/authz
cd conf
vi authz
在[groups]下添加用戶組
admin=admin(用戶組名=用戶名)
在[repository:/baz/fuz]下添加用戶組權限
[project:/]
@admin=rw
conf/passwd
在[users]下添加
admin=test(用戶名=密碼)
conf/svnserve.conf
取消以下項目的注釋
anon-access=none
auth-access=write
password-db=passwd
authz-db=authz
realm=project
修改/root/.subversion/server
取消store-plaintext-passwords=yes的注釋並修改
確認安裝openssl與openssl-devel
yum install openssl openssl-devel
啟用
svnserve -d -r /storage/svn/
在project這個repo裡導入文件
svn import xxxx svn://xxx.xxx.xxx.xxx/project/ -m “admin”
填入root密碼
填入剛才創建的repo的賬戶密碼
成功
關閉
ps -aux|grep svn
kill pid
注意:大部分操作需要在svn版本控制的文件夾下進行
命令說明:剪出版本庫中的可用的工作目錄;
使用方法:checkout URL[@REV]… [PATH];
使用實例:[root@samba /]# svn co svn://192.168.31.131/svntest/trunk
這個過程是把代碼從服務器中下載下來,保持版本一致。
命令說明:Put files and directories under version control, scheduling them for addition to repository. They will be added in next commit.
使用方法:add PATH…;
使用實例:[root@xxx]# svn add *.Java(可以使用通配符)
這個過程是把新建的文件和文件夾添加進版本控制,在下一次commit時,會導入到版本庫裡進行同步。
命令說明:將你的變更從你的SVN工作目錄提交到版本庫;
使用方法:commit PATH…;
使用實例:[root@xxx]# svn ci -m “commit dir and file” test(可以使用通配符,可同時提交目錄和文件)
命令說明:將鎖住SVN工作目錄或者版本庫的URL,以使沒有人可以提交目錄或者文件的變更信息;
使用方法:lock TARGET…;
使用實例:[root@xxx]# svn lock -m “lock dir and file”
Test.java(可使用通配符,比如:T*.*)
命令說明:解除SVN工作目錄或者版本庫URL的鎖; 使用方法:unlock TARGET…;
使用實例:[root@xxx]# svn
unlock -m “lock dir and file” Test.java(可使用通配符,比如:T*.*)
注:在本地加鎖或者解鎖,記得提交到服務器。
命令說明:從SVN版本控制中刪除文件或者目錄;
使用方法:delete PATH…;
使用實例:[root@samba test]# svn delete Test.java(可使用通配符,比如:T*.*) –刪除文件
[root@samba test]# svn delete test(可使用通配符,比如:t*) –刪除目錄
注:執行上面的命令,只能刪除SVN版本控制下的文件,不能刪除目錄,故刪除目錄時,應該采用Linux(Unix)系統的rm命令,同時刪除後記得提交。
命令說明:移動或者重命名SVN工作目錄或者版本庫;
使用方法:move SRC… DST
使用實例:[root@samba test]# svn move Test.java Test2.java [root@sambatest]# svn move -m “ss” svn://192.168.31.131/svntest/trunk/src/com/ant/test/Test2.java svn://192.168.31.131/svntest/trunk/src/com/ant/test/Test3.java
注:執行上面的第一種實例命令記得提交。第二種命令是直接修改服務器的文件名,不用提交。
命令說明:顯示版本庫文件的日志信息
使用方法:log [PATH] log URL[@REV] [PATH…]
使用實例:[root@samba test]# svn log T*(一般不要使用通配符,除非該文件目錄下只有一個文件)
[root@samba test]# svn log svn://192.168.31.131/svntest/trunk/src/com/ant/test/Test3.java
命令說明:顯示本地或者遠程服務器文件的詳細信息
使用方法:info [TARGET[@REV]…]
使用實例:[root@xxx test]# svn info Test.java(可以使用通配符)
命令說明:顯示版本庫目錄的實體,包括目錄下的子目錄和文件。
使用方法:list [TARGET[@REV]…];
使用實例:[root@samba ant]# svn list [test] (不建議使用通配符,除非你的目錄開頭字母是不重復的,否則分不清目錄下文件的歸屬)
命令說明:對svn命令或者使用程序的一種描述。
使用方法:help [SUBCOMMAND…];
使用實例:[root@samba ~]# svn ci –help(不可以使用通配符)
命令說明:在SVN版本控制下創建目錄。
使用方法:mkdir PATH…;mkdir URL…
使用實例:[root@xxx]# svn mkdir test3(不可以使用通配符)
[root@samba ant]# svn mkdir -m “create dir” svn://192.168.31.131/svntest/trunk/src/com/ant/test4
注:第一種方式創建完目錄之後,需要提交,第二種直接將目錄創建在版本庫的URL下,不需要提交盡。提交目錄或文件時加上 -m 參數,否則會提示如下錯誤:
命令說明:打印SVN工作目錄和文件狀態。
使用方法:status [PATH…];
使用實例:[root@samba ant]# svn status -v *(可以使用通配符)
注:在執行status命令時,建議強制加上“-v”命令參數,第一列保持相同,第二列工作版本號,第三列最後一次修改的修改人,第四列最後一次修改的版本號。
命令說明:備份歷史。
使用方法:copy SRC[@REV]… DST;
使用實例:[root@samba test]# svn cp Test3.java Test4.java(不可以使用通配符)
[root@samba test]# svn cp -m “ss” Test3.java svn://192.168.31.131/svntest/trunk/src/com/ant/test2/Test4.java
注:第一種方式需要手動提交,第二種方式可以自動提交。
命令說明:將服務器的變更引入本地項目。
使用方法:update [PATH…];
使用實例:[root@samba test]# svn up t*(可以使用通配符)
命令說明:比較兩個版本的差異。
使用方法:diff [-c M | -r N[:M]] [TARGET[@REV]…];
diff [-r N[:M]] –old=OLD-TGT[@OLDREV] [–new=NEW-TGT[@NEWREV]] [PATH…]
diff OLD-URL[@OLDREV] NEW-URL[@NEWREV]
使用實例:[root@samba test]# svn di T*(可以使用通配符) [root@samba test]# svn di -r 20:18 T*(可以使用通配符)
注:第一種情況是與本地版本比較,第二種情況是顯示指定版本的比較。
命令說明:將兩個指定的版本差異合並到當前的工作目錄文件。
使用方法:merge sourceURL1[@N] sourceURL2[@M] [WCPATH]; merge sourceWCPATH1@N sourceWCPATH2@M [WCPATH];
merge [-c M[,N…] | -r N:M …] SOURCE[@REV] [WCPATH]
使用實例:[root@samba test]# svn merge -r 20:18 Test3.java(不建議使用通配符)
注:當兩個文件產生沖突的時候,需要先處理沖突,再執行合並命令。
命令說明:恢復原始未改變的工作副本文件 (恢復大部份的本地修改)。
使用方法:revert PATH…
使用實例:[root@samba test]# svn revert Test3.java(不建議使用通配符) [root@samba test]# echo “dd” Test3.java(數據准備)
命令說明: 輸出指定文件帶有版本號的內容和作者在線信息。
使用方法:blame TARGET[@REV]…
使用實例:[root@samba test]# svn blame Test.*(可以使用通配符)
注:只能執行文件,不能執行目錄。
命令說明:采用復制的方式創建一個不在SVN版本控制下的樹。
使用方法:export [-r REV] URL[@PEGREV] [PATH]
export [-r REV] PATH1[@PEGREV] [PATH2]
使用實例:[root@samba ant]# svn export . test5(不可以使用通配符)
注:創建之後需要提交。
命令說明:提交一個不在版本控制下的樹或者文件到版本庫。
使用方法:import [PATH] URL
使用實例:[root@samba ant]# svn import -m “sss” svn://192.168.31.131/svntest/trunk/src/com/ant/test5(不可以使用通配符)
命令說明:輸出指定文件的內容(URLs也必須指定到文件類型)。
使用方法:cat TARGET[@REV]…
使用實例:[root@samba ant]# svn cat svn://192.168.31.131/svntest/trunk/src/com/ant/test Test3.java(可以使用通配符)
注:必須指定到文件或者文件類型。
命令說明:帶有名稱的文件關聯列表。
使用方法:changelist CLNAME TARGET… changelist –remove TARGET…
使用實例:[root@samba test]# svn changelist T*(可以使用通配符)
命令說明:帶有名稱的文件關聯列表。
使用方法:switch URL[@PEGREV] [PATH] switch –relocate
FROM TO [PATH…]
使用實例:[root@samba trunk2]# svn switch svn://192.168.31.131/svntest/trunk/.(不建議使用通配符)
[root@samba /]# svn mkdir trunk2(目錄准備)
[root@samba /]# cd trunk2(目錄准備)
注:該命令的目的是做一個工作目錄的備份,類似文件的軟連接。
http://xxxxxx/Linuxjc/1134293.html TechArticle