85.代碼管理平臺介紹 svn相關

22.1 代碼管理平臺介紹html

22.2 安裝svnlinux

22.3 客戶端上使用svn(linux)git

22.4 客戶端上使用svn(windows)github

 

擴展內容web

同窗分享的svn文檔 數據庫

http://note.youdao.com/noteshare?id=1bb87a28a2973ae5722bf765882c2d8fvim

svn 多倉庫管理  windows

http://elim.iteye.com/blog/1171108服務器

svn+ssh  網絡

http://www.linuxfly.org/post/450/

svn清除保存的用戶名和密碼  

http://holy2010.blog.51cto.com/1086044/645944

svn命令詳解  

http://blog.sina.com.cn/s/blog_963453200101eiuq.html

 

 

 

 

 

22.1 代碼管理平臺介紹

 

 

 

你要了解的常識

好比咱們公司開發的項目,咱們須要把這個代碼放到平臺裏去管理

1.版本控制,記錄若干文件內容變化,以便未來查閱特定版本修訂狀況

#好比一個項目(代碼)咱們作了屢次變動,改善或更新。可以很方便的來查看

#好比,我變動了一些代碼,別人也變動一些代碼,若是有變動的話,你們都要知道,那變動了。這就設計到了協同開發,也就是說這一個文檔咱們兩我的一些在寫,最後合併成一個文檔

2.版本管理工具發展簡史,cvs→svn→git 參考http://luckypoem14.github.io/test/2012/04/24/scm-history/

#早期流行cvs,可是兼容性不太好。後來就有人開發了svn,可是又有人發現svn也很差使,太慢。而後又開發出了git

#svn是cs架構,依賴於網絡(客戶端、服務端模式),沒網的狀況下開發就會遇到困難,沒辦法把代碼推到服務器上去

#git在本地電腦裏搞一個版本庫,就在我本地電腦裏去控制。當有了網絡以後,在統一的傳到網絡上的那臺核心服務器上去

3.svn全稱subversion,是一個開源版本控制系統,始於2000年

4.git是linux創始人linus發起的,2005年發佈,最初目的是更好管理linux內核代碼

5.git和svn不一樣在於git不須要依賴服務端就能夠工做,即git是分佈式的

6.關於git和svn的比較你們參考http://blog.lishiming.net/?p=305

7.github是基於git的在線web頁面代碼託管平臺,能夠選擇付費服務

8.gitlab能夠認爲是一個開源的github,二者沒有直接關係

能夠認爲gitlab與github是一個東西,可是本質上仍是有區別的

 

 

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 

 

22.2 安裝svn

 

 

 

由於是cs架構,因此必需要有服務端,咱們才能正常的使用它。因此先安裝一個服務端

1.yum install -y subversion

2.建立版本庫

#什麼叫版本庫,咱們拿版本控制版本管理工具。那咱們要作的就是建立版本,建立一些項目,咱們把代碼放到這個項目裏(也就是倉庫裏)

mkdir -p /data/svnroot/myproject

#版本庫的目錄自定義

svnadmin create /data/svnroot/myproject

#由於咱們建立的版本庫是空的,因此要用svnadmin create初始化一下,生成一些文件

3.cd /data/svnroot/myproject/conf

#authz爲權限配置文件,passwd爲密碼文件,svnserver.conf是倉庫的配置文件,也經過這個配置文件來啓動這個服務

4.vim authz//配置文件改成以下

[groups]

admins = aming,user1

[/] #指的是myproject這個目錄(也就是咱們的項目名了)

@admins = rw

*= r

[myproject:/] #指的是svnroot這個目錄下myproject項目。這種方式適合用在svn下有多個目錄(項目)的狀況下。此時的myproject只是其中一個項目而已

user1 = rw

5.vim passwd//加入以下內容,定義用戶與密碼

[users]

aming = aming_!(*$123

user1 = user1_^^^123

user2 = user2-***123

6.vim svnserver.conf//更改或增長以下內容

[general]

anon-access = none #匿名用戶爲沒有任何權限

auth-access = write #被受權的用戶(使用用戶及密碼登陸的)爲寫權限

password-db = passwd #用戶的密碼存在哪裏。指的是文件,當前目錄下

authz-db = authz #權限控制的文件在哪裏(或是哪個)。指的是文件,當前目錄下

realm = /data/svnroot/myproject #對那個項目生效。絕對路徑

7.svnserve -d -r /data/svnroot //這樣就啓動了

#-d後臺啓動

#-r指定svn所在的路徑在哪裏,路徑也能夠寫svnserve -d -r /data/svnroot/myproject

 

 

 

實例:

[root@axinlinux-01 ~]# yum install -y subversion #先安裝

[root@axinlinux-01 ~]# mkdir -p /data/svnroot/myproject #建立版本庫

[root@axinlinux-01 ~]# svnadmin create /data/svnroot/myproject #初始化文件

[root@axinlinux-01 ~]# ls -la /data/svnroot/myproject #看一下有哪些文件

總用量 8

drwxr-xr-x 6 root root 86 11月 21 19:57 .

drwxr-xr-x 3 root root 23 11月 21 19:55 ..

drwxr-xr-x 2 root root 54 11月 21 19:57 conf #咱們須要修改的是這個conf目錄裏的文件

drwxr-sr-x 6 root root 233 11月 21 19:57 db

-r--r--r-- 1 root root 2 11月 21 19:57 format

drwxr-xr-x 2 root root 231 11月 21 19:57 hooks

drwxr-xr-x 2 root root 41 11月 21 19:57 locks

-rw-r--r-- 1 root root 229 11月 21 19:57 README.txt

[root@axinlinux-01 ~]# cd !$/conf

cd /data/svnroot/myproject/conf

[root@axinlinux-01 conf]# ls #這三個文件都很重要

authz passwd svnserve.conf #authz是用來控制權限的。passwd是密碼文件。svnserver.conf是倉庫的配置文件,也經過這個配置文件來啓動這個服務

[root@axinlinux-01 conf]# vim authz #編輯權限文件

[aliases] #別名相關的

# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average

 

[groups] #用戶組。下面是對應倉庫裏面的目錄,或者說是你的項目對應下面的目錄。針對這些目錄、用戶或是組有是樣的權限,讀寫或是讀?

# harry_and_sally = harry,sally

# harry_sally_and_joe = harry,sally,&joe

admins = aming,user1 #組名叫admins,組下面包含aming和user1

 

[/] #目錄。只得就是咱們上面建立的 /data/svnroot/myproject目錄(也就是咱們的項目)。這裏寫根(/),只得就是 /data/svnroot/myproject這個目錄下的

@admins = rw #admins組的權限是rw

*= r #除了admins組以外剩餘的人是r的權限

 

[myproject:/] #mypreject指的是項目的名字,也能夠寫其餘的。適合用在/data/svnroot/myproject這個路徑裏,avnroot目錄下有多個項目的狀況下

user1 = rw

[root@axinlinux-01 conf]# vim passwd #編輯密碼

aming = aming_!(*$123

user1 = user1_^^^123

user2 = user2-***123

[root@axinlinux-01 conf]# vim svnserve.conf #編輯幾項配置

[general]

anon-access = none #匿名用戶爲沒有任何權限

auth-access = write #被受權的用戶(使用用戶及密碼登陸的)爲寫權限

password-db = passwd #用戶的密碼存在哪裏。指的是文件,當前目錄下

authz-db = authz #權限控制的文件在哪裏(或是哪個)。指的是文件,當前目錄下

realm = /data/svnroot/myproject #對那個項目生效。絕對路徑

[root@axinlinux-01 conf]# svnserve -d -r /data/svnroot/ #啓動

[root@axinlinux-01 conf]# ps aux |grep svn

root 2740 0.0 0.0 182800 812 ? Ss 20:37 0:00 svnserve -d -r /data/svnroot/

[root@axinlinux-01 conf]# netstat -lntp

tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 2740/svnserve

[root@axinlinux-01 conf]# iptables -nvL #無規則

 

 

 

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 

 

22.3 客戶端上使用svn(linux)

 

 

 

 

1.yum install -y subversion

客戶端是須要安裝的

2.svn checkout svn://192.168.208.128/myproject --username=aming

#checkout是檢出代碼。ip爲服務端ip。myproject爲要檢出的哪一個項目。--username爲指定哪一個用戶登陸

若是一臺機器歷來沒用過這個,執行這一步就會在本機上保存一個,曾經鏈接過的svnserver的用戶名和密碼

3.cd myproject ; ls -la

如下,將客戶端的數據同步上傳到服務端 :

4.cp /etc/fstab .

#將一個文件拷貝到myproject目錄(項目)下來。至關於在客戶端增長了數據

5.svn add . //添加到版本控制中心

#僅僅只是添加到了版本控制中心

6.svn commit -m 「add file」 //把文件上傳到服務器

#再執行這一步才能將數據同步上傳到服務端。服務端還須要執行svn up

7.svn delete filename //在本地刪除

8.svn commit -m 「delete filename」 //在服務器上刪除

9.svn update //把當前目錄下的文件都更新到最新版

#可簡寫爲svn up。曾經登錄過就後保存用戶和密碼,svn up的時候就不會再次輸入

10.svn log //查看變動日誌

 

 

實例:

[root@axinlinux-01 ~]# cd /home/

[root@axinlinux-01 home]# mkdir svntest #先進入到這個目錄下,讓他檢出到這裏

[root@axinlinux-01 svntest]# svn checkout svn://192.168.208.128/myproject --username=aming #輸入密碼登陸(以前設置的)

[root@axinlinux-01 svntest]# ls #能夠看到就有了這個目錄

myproject

[root@axinlinux-01 svntest]# ls -la myproject/

總用量 0

drwxr-xr-x 3 root root 18 11月 21 21:28 .

drwxr-xr-x 3 root root 23 11月 21 21:28 ..

drwxr-xr-x 4 root root 75 11月 21 21:28 .svn #這個就是svn的配置文件

好比咱們在服務端更新了一些文件

咱們登陸另外一臺機器

[root@axinlinux-03 home]# svn checkout svn://192.168.208.128/myproject --username=user1

[root@axinlinux-03 home]# ls #能夠看到這個目錄(項目)

myproject

[root@axinlinux-03 myproject]# cp /etc/fstab . #咱們把這個文件拷貝過來

[root@axinlinux-03 myproject]# ls

fstab

咱們已經跟本地的項目裏面建立了一些文件(fstab),那麼咱們須要把變動搞到服務端上去

[root@axinlinux-03 myproject]# svn add ./fstab #使用svn add來搞到服務端。但僅僅只是增長了打了個標記,只存在版本工具的數據庫裏。咱們還須要提交上傳的動做

A fstab

[root@axinlinux-03 myproject]# svn commit -m "add fatab" #使用svn commit來上傳到服務端

正在增長 fstab

傳輸文件數據.

提交後的版本爲 1。

[root@axinlinux-01 myproject]# ls #回到本機看一下,並無顯示

[root@axinlinux-01 myproject]# svn up #須要用svn up來升級一下。沒有輸入密碼,下面爲解釋

正在升級 '.':

A fstab

更新到版本 1。

[root@axinlinux-01 myproject]# ls #而後就有了

fstab

咱們在服務端上再次svn up的時候並無提示輸入密碼,是由於已經登陸過了,被保存了。保存在了:

[root@axinlinux-01]# cd /root/.subversion/auth/svn.simple #根據登陸時的提示能夠找到

[root@axinlinux-01 svn.simple]# ls

9c376e8a0ecd3f9b80d250b03ce2e3de

[root@axinlinux-01 svn.simple]# cat 9c376e8a0ecd3f9b80d250b03ce2e3de #用戶和密碼都是明文存儲到了這

K 8

passtype

V 6

simple

K 8

password

V 12

user1_^^^123

K 15

svn:realmstring

V 52

<svn://192.168.208.128:3690> /data/svnroot/myproject

K 8

username

V 5

user1

END

[root@axinlinux-01 svn.simple]# rm -rf 9c376e8a0ecd3f9b80d250b03ce2e3de #若是不想存儲能夠把它刪掉

而後咱們再去客戶端作一個變動

[root@axinlinux-03 myproject]# ls

fstab

[root@axinlinux-03 myproject]# vim fstab #把剛纔那個文件隨便加一行

[root@axinlinux-03 myproject]# svn add ./fstab #會有警告

svn: 警告: W150002: 「/home/myproject/fstab」已歸入版本控制

svn: E200009: 由於一些目標已經版本化,因此不能增長所有目標

svn: E200009: 此請求操做的目標非法

[root@axinlinux-03 myproject]# svn commit -m "ch fstab" #這時候咱們把變動的推送到了服務端

正在發送 fstab

傳輸文件數據.

提交後的版本爲 2。

[root@axinlinux-01 svntest]# cd myproject/ #再回到服務端來,作同步

[root@axinlinux-01 myproject]# ls

fstab

[root@axinlinux-01 myproject]# svn up #svn up以後,會讓咱們輸入root的密碼。直接回車就好

正在升級 '.':

認證領域: <svn://192.168.208.128:3690> /data/svnroot/myproject

「root」的密碼:

認證領域: <svn://192.168.208.128:3690> /data/svnroot/myproject #回車以後就會讓咱們輸入用戶和密碼了

用戶名:

[root@axinlinux-01 myproject]# cat fstab #能夠cat一下,就能夠看到咱們增長的那一行

[root@axinlinux-01 myproject]# svn delete fstab #刪除變動文件

D fstab

[root@axinlinux-01 myproject]# svn commit -m "delete fatab"

正在刪除 fstab

 

提交後的版本爲 3。

[root@axinlinux-03 myproject]# svn up #在另外一臺上要svn up

正在升級 '.':

D fstab

更新到版本 3。

[root@axinlinux-03 myproject]# ls #再次查看就沒有了

[root@axinlinux-03 myproject]# svn log

------------------------------------------------------------------------

r3 | user1 | 2018-11-21 22:56:40 +0800 (三, 2018-11-21) | 1 行

 

delete fatab

------------------------------------------------------------------------

r2 | user1 | 2018-11-21 22:45:42 +0800 (三, 2018-11-21) | 1 行

 

ch fstab

------------------------------------------------------------------------

r1 | user1 | 2018-11-21 22:25:58 +0800 (三, 2018-11-21) | 1 行

 

add fatab

------------------------------------------------------------------------

 

 

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 

 

 

22.4 客戶端上使用svn(windows)

 

 

 

1.官網 https://tortoisesvn.net/index.zh.html

小烏龜svn

2.下載TortoiseSVN 並安裝

3.簡明教程 http://www.jianshu.com/p/6b3b7b915332

 

 

 

實例:

 

點進去就直接下載了,安裝就好了

實際操做中,官方下載的安裝不了。最後從金山軟件裏找到下載的

下載完成後,重啓一下電腦。右鍵會有小烏龜的圖標就表明能夠了

在windows上新建一個文件夾就叫myproject,做爲咱們的項目目錄。鼠標放在myproject目錄上,點擊右鍵,選擇svn checkout。

 

在myproject目錄裏,新建一個txt。隨便寫點東西,保存。而後右鍵這個txt文件,選擇add。此時該文件圖標就多了個加號

而後再,右鍵,點擊commit

此時,該文件的圖標就變成了一個綠色的對號

而後,咱們再到linux服務端上,或者是另外一個客戶端上

[root@axinlinux-03 myproject]# pwd

/home/myproject

[root@axinlinux-03 myproject]# svn up

正在升級 '.':

A 1.txt

更新到版本 4。

[root@axinlinux-03 myproject]# cat 1.txt

aaaaaaaaaaaa

bbbbbbbbbbbb

cccccccccccc

咱們在測試將linux上變動,在windows上查看

[root@axinlinux-03 myproject]# vim 121.txt

[root@axinlinux-03 myproject]# ls

121.txt 1.txt

[root@axinlinux-03 myproject]# svn add 121.txt

A 121.txt

[root@axinlinux-03 myproject]# svn commit -m "add 121.txt"

正在增長 121.txt

傳輸文件數據.

提交後的版本爲 5。

在windows上,右鍵myproject目錄,選擇svn update

 

相關文章
相關標籤/搜索