【1220】代碼管理平臺svn安裝,linux和win客戶端上使用svn
22.1 代碼管理平臺介紹
22.2 安裝svn
22.3 客戶端上使用svn(linux)
22.4 客戶端上使用svn(windows)
22.1 代碼管理平臺介紹
版本控制,記錄若干文件內容變化,以便將來查閱特定版本修訂情況
版本管理工具發展簡史,cvs—> svn—> git 參考http://luckypoem14.github.io/test/2012/04/24/scm-history/
svn全稱subversion,是一個開源版本控制系統,始於2000年
git是linux創始人linus發起的,2005年發佈,最初目的是更好管理linux內核代碼
git和svn不同在於git不需要依賴服務端就可以工作,即git是分佈式的
關於git和svn的比較大家參考http://blog.lishiming.net/?p=305
github是基於git的在線web頁面代碼託管平臺,可以選擇付費服務
gitlab可以認爲是一個開源的github,兩者沒有直接關係
22.2 安裝svn
1、服務端安裝 subversion
[root@arslinux-01 ~]# yum install -y subversion
2、創建版本庫
[root@arslinux-01 ~]# mkdir -p /data/svnroot/myproject
[root@arslinux-01 ~]# svnadmin create /data/svnroot/myproject/ //初始化
[root@arslinux-01 ~]# cd /data/svnroot/myproject/conf/
[root@arslinux-01 conf]# ls
authz passwd svnserve.conf //authz爲權限配置,passwd爲密碼文件,svnserve.conf倉庫配置
[root@arslinux-01 conf]# vim authz
[groups]
admins = arslinux,user1
[/]
@admins = rw
*= r
[myproject:/]
user1 = rw
[/] /指的就是/data/svnroot/myproject/,在這個目錄下 admin 組權限時 rw
表示剩餘的人是 r 權限
[myproject:/] 一般用在 svnroot 下有多個項目的情況下,其中一個 myproject 的項目
可以在這個目錄下創建子目錄 / 前面 : 表示 myproject 是個項目名
3、設置密碼
[root@arslinux-01 conf]# vim passwd
[users]
arslinux = arslinux_!(*$123
user1 = user1_^^^123
user2 = user2-***123
4、編輯配置文件 svnserver.conf
[root@arslinux-01 conf]# vim svnserve.conf
[general]
anon-access = none //匿名用戶有無權限
auth-access = write //被授權用戶 可寫
password-db = passwd //用戶密碼存在哪裏
authz-db = authz //權限控制文件
realm = /data/svnroot/myproject //對哪個項目生效
5、啓動 svn
[root@arslinux-01 conf]# svnserve -d -r /data/svnroot/
// -d 後臺啓動
// -r 指定項目所在路徑,也可寫成 svnserve -d -r /data/svnroot/myproject/
[root@arslinux-01 conf]# ps aux|grep svnserve
root 31030 0.0 0.0 180732 804 ? Ss 22:24 0:00 svnserve -d -r /data/svnroot/
root 31060 0.0 0.0 112724 988 pts/1 S+ 22:26 0:00 grep --color=auto svnserve
[root@arslinux-01 conf]# netstat -lntp|grep svnserve
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 31030/svnserve
22.3 客戶端上使用svn(linux)
1、客戶端安裝 subversion
[root@arslinux-02 ~]# yum install -y subversion
2、連接 svn 服務器(本地可以保存用戶名和密碼)
[root@arslinux-02 ~]# cd /home/
[root@arslinux-02 home]# svn checkout svn://192.168.194.130/myproject --username=user1
認證領域: <svn://192.168.194.130:3690> /data/svnroot/myproject
“user1”的密碼:
-----------------------------------------------------------------------
注意! 你的密碼,對於認證域:
<svn://192.168.194.130:3690> /data/svnroot/myproject
只能明文保存在磁盤上! 如果可能的話,請考慮配置你的系統,讓 Subversion
可以保存加密後的密碼。請參閱文檔以獲得詳細信息。
你可以通過在“/root/.subversion/servers”中設置選項“store-plaintext-passwords”爲“yes”或“no”,
來避免再次出現此警告。
-----------------------------------------------------------------------
保存未加密的密碼(yes/no)?yes
取出版本 0。
3、 拷貝任意一個文件到項目中
[root@arslinux-02 home]# cd myproject/
[root@arslinux-02 myproject]# cp /etc/fstab ..
4、添加到版本控制中心 svn add .
[root@arslinux-02 myproject]# svn add ./fstab
A fstab
5、把文件上傳到服務器 svn commit -m "add file"
[root@arslinux-02 myproject]# svn commit -m "add fstab"
正在增加 fstab
傳輸文件數據.
提交後的版本爲 1。
6、在服務端上升級版本才能看見上傳的文件
把當前目錄下的文件都更新到最新版 svn update 可簡寫爲 svn up
[root@arslinux-01 svntest]# cd myproject/
[root@arslinux-01 myproject]# ls
[root@arslinux-01 myproject]# svn up
正在升級 '.':
A fstab
更新到版本 1。
[root@arslinux-01 myproject]# ls
fstab
7、用戶名密碼被記錄在 /root/.subversion/auth/svn.simple/ 下
[root@arslinux-02 .subversion]# cat /root/.subversion/auth/svn.simple/7681a1260e61438030ce66c9a673594d
K 8
passtype
V 6
simple
K 8
password
V 12
user1_^^^123
K 15
svn:realmstring
V 52
<svn://192.168.194.130:3690> /data/svnroot/myproject
K 8
username
V 5
user1
END
8、如果不想用戶信息被記錄,可以刪除 svn.simple 下的文件即可
[root@arslinux-01 svn.simple]# rm -rf /root/.subversion/auth/svn.simple/7681a1260e61438030ce66c9a673594d
9、在客戶端更改文件,添加任意一行到 fstab,並將更改數據上傳服務端
[root@arslinux-02 myproject]# echo '"xafdasfasdfsa" >> fstab
[root@arslinux-02 myproject]# svn commit -m "ch fstab"
正在發送 fstab
傳輸文件數據.
提交後的版本爲 2。
10、服務端再更新版本,發現需要密碼(提示輸入 root 密碼,可回車跳過,輸入實際用戶名密碼)
[root@arslinux-01 myproject]# svn up
正在升級 '.':
認證領域: <svn://192.168.194.130:3690> /data/svnroot/myproject
“root”的密碼:
認證領域: <svn://192.168.194.130:3690> /data/svnroot/myproject
用戶名: arslinux
“arslinux”的密碼:
-----------------------------------------------------------------------
注意! 你的密碼,對於認證域:
<svn://192.168.194.130:3690> /data/svnroot/myproject
只能明文保存在磁盤上! 如果可能的話,請考慮配置你的系統,讓 Subversion
可以保存加密後的密碼。請參閱文檔以獲得詳細信息。
你可以通過在“/root/.subversion/servers”中設置選項“store-plaintext-passwords”爲“yes”或“no”,
來避免再次出現此警告。
-----------------------------------------------------------------------
保存未加密的密碼(yes/no)?yes
U fstab
更新到版本 2。
11、文件最後一行也增加了剛纔輸入的隨機字符串
[root@arslinux-01 myproject]# tail -1 fstab
xafdasfasdfsa
12、在服務端本地刪除文件,服務器上刪除文件
[root@arslinux-01 myproject]# svn delete fstab
D fstab
[root@arslinux-01 myproject]# svn commit -m "delete fstab"
正在刪除 fstab
提交後的版本爲 3。
13、在客戶端上更新同步
[root@arslinux-02 myproject]# svn up
正在升級 '.':
D fstab
更新到版本 3。
[root@arslinux-02 myproject]# ls
14、查看變更歷史 svn log
[root@arslinux-02 myproject]# svn log
------------------------------------------------------------------------
r3 | arslinux | 2019-07-22 22:06:45 +0800 (一, 2019-07-22) | 1 行
delete fstab
------------------------------------------------------------------------
r2 | user1 | 2019-07-22 21:43:42 +0800 (一, 2019-07-22) | 1 行
ch fstab
------------------------------------------------------------------------
r1 | user1 | 2019-07-22 21:22:41 +0800 (一, 2019-07-22) | 1 行
add fstab
svn: E155015: 提交失敗(細節如下) 解決辦法:
svn resolved <文件名>
22.4 客戶端上使用svn(windows)
下載 TortoiseSVN 並安裝 https://tortoisesvn.net/index.zh.html
1、安裝完軟件,再安裝語言包即可
2、硬盤裏新建 myproject 文件夾
3、右擊 myproject 文件夾,選擇 SVN Checkout…
4、填入項目的服務地址
5、點 OK 後,輸入用戶名和密碼
6、在 myproject 文件夾下新建 123.txt,內容隨便
7、右擊 123.txt,選擇 TortoiseSVN——Add
8、右擊 123.txt,SVN Commit…
9、在彈框中做一些說明
10、在 linux 服務端機器
[root@arslinux-01 myproject]# svn up
正在升級 '.':
A 123.txt
更新到版本 6。
[root@arslinux-01 myproject]# cat 123.txt
adsfadfasdfa
11、在另一個linux客戶端的機器上編輯一個文件並上傳
[root@arslinux-02 myproject]# echo "adfadfafa\nadsfdafa" > ars4life
[root@arslinux-02 myproject]# cat ars4life
adfadfafa\nadsfdafa
[root@arslinux-02 myproject]# svn add ars4life
A ars4life
[root@arslinux-02 myproject]# svn commit -m "add asr4life"
正在增加 ars4life
傳輸文件數據.
提交後的版本爲 7。
12、然後在 windows 機器上,右擊 myproject ,選擇 SVN Update,myproject 目錄裏會有 ars4life 文件
簡明教程: http://www.jianshu.com/p/6b3b7b915332