【1220】代碼管理平臺svn安裝,linux和win客戶端上使用svn

【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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章