SVN使用

 SVN

1.什麼是SVN   

SVN: subversion  子級版本  (子級源代碼版本控制管理軟件)php

svn:全稱Subversion,是代碼版本管理軟件,管理着隨時間改變的數據。這些數據放置在一箇中央資料檔案庫 (repository) 中。 這個檔案庫很像一個普通的文件服務器不過它會記住每一次文件的變更。這樣你就能夠把檔案恢復到舊的版本或是瀏覽文件的變更歷史。 許多人會把版本控制系統想像成某種 「時光機器程序員

使用svn能夠很好地協調一個團隊共同開發同一個項目,而不會出現代碼衝突、覆蓋的狀況服務器

上圖是多人共同開發同一個項目,內部最大的問題是,在比較短的時間內若是有多人同時開發同一個文件,會形成彼此代碼覆蓋的狀況發生A的代碼在最後會把B的代碼給覆蓋掉,10點之後就只體現A程序員的功能效果。app

SVN其中的做用一個就是避免上述狀況發生。svn

2. 使用svn的做用

① 多人開發同一個項目不會出現代碼覆蓋狀況。spa

② 針對一個文件能夠建立許多不一樣版本,而且能夠隨時查看不一樣版本的內容。3d

③ 公司領導能夠經過svn查看每一個人的工做狀況版本控制

使用svn服務

1. svn倉庫提交第一個程序文件server

 

 

步驟:blog

右鍵------> SVN---->Add

(本地的.svn對該文件造成管理)

右鍵------> Commit

(本次的文件提交給svn倉庫)

1.1 文件顏色標誌

① 藍色加號:本地的.svn對該文件有造成管理

綠色對號:本地文件、.svn管理的版本文件、倉庫文件 三者一致

紅色歎號:本地文件    .svn和倉庫文件 不一致(用戶本身修改了該文件)

黃色歎號:表示該文件正處於衝突狀態

2. 多個程序員給倉庫提交文件

3. 同時運行多個svn倉庫服務

把全部倉庫的上級目錄當成服務給啓動起來。

  • svnserve  -d  -r  d:/svnServer/app/

主機名:svn://localhost  ---------------->app目錄

svn://localhost/student---------->student倉庫取得聯繫

svn://localhost/book------------->book倉庫取得聯繫

svn://localhost/shop-------------->shop倉庫取得聯繫

3.1 舊用戶更換svn主機名

刪除.svn文件,斷開與倉庫的聯繫

從新checkout經過svn新主機名創建與倉庫的聯繫

 

4. 同一個文件的不一樣版本切換

一個程序文件能夠在svn倉庫裏邊造成許多不一樣版本,並能夠隨時查看。

總結:

  1. 安裝svn的服務器、客戶端軟件
  2. 建立倉庫(根據不一樣的項目建立對應的倉庫)

> svnadmin  create  倉庫地址

  1. 使用svn( checkout    update   commit )
  2. 啓動svn倉庫服務

> svnserve -d -r  倉庫地址

衝突解決(重點)

上圖兩個程序員在短期以內共同開發同一個程序文件(goods.php)

10點之後系統只會體現linken開發的功能(mary開發的功能被linken覆蓋)

 

文件覆蓋的解決:

① 給每一個文件分配一個「令牌」,誰拿到令牌誰就有權利開發該文件

(同一個程序文件同一個時間點只容許有一我的開發)

② 給每一個文件設置一個版本號碼,提交的時候若是服務器的版本等於本地版本號碼就容許提交,不然不容許提交(本地號碼 小於  服務器版本)

 

衝突:

廣義角度的衝突,提交程序文件 本地版本號碼 小於 服務器版本號碼

狹義角度的衝突,多個程序員對同一個文件同一處代碼的修改再共同提交文件的時候回產生衝突。

 

1. 衝突具體形式:

1.1你們修改的代碼不在同一處

解決:

執行update操做,把倉庫最新的文件更新到本地,並和本地文件作Merge融合操做。

繼續提交文件便可。

1.2 你們修改的代碼在同一處

不管什麼樣子的衝突:解決就是經過update把最新的版本更新到本地,文件稍做修改後繼續提交。

帳號和權限

1. 設置帳號

2. 給帳號設置權限

2.1 給具體用戶設置權限

2.2 給一個別設置權限

2.3 開啓只操做某個目錄權限

步驟:

① 管理員先把該目錄給建立出來並提交給svn倉庫

② 外包團隊給該 目錄提交文件

③ 管理員刪除自己建立的目錄,執行update更新操做,便可查看外包團隊的工做狀況

設置開機啓動項服務 svnd

sc create svnd binPath= "E:\svnService\server\bin\svnserve.exe -r E:\svnService\app --service" start= auto

 

相關文章
相關標籤/搜索