農林漁牧網

您現在的位置是:首頁 > 畜牧業

SVN學習筆記

2022-01-18由 動作要快姿勢要帥 發表于 畜牧業

svn怎麼切換使用者

一. SVN

1.什麼是SVN

SVN: subversion 子級版本 (子級原始碼版本控制管理軟體)

svn:全稱Subversion,是程式碼版本管理軟體,管理著隨時間改變的資料。這些資料放置在一箇中央資料檔案庫 (repository) 中。 這個檔案庫很像一個普通的檔案伺服器, 不過它會記住每一次檔案的變動。這樣你就可以把檔案恢復到舊的版本, 或是瀏覽檔案的變動歷史。 許多人會把版本控制系統想像成某種 “時光機器”。

使用svn可以很好地協調一個團隊共同開發同一個專案,而不會出現程式碼衝突、覆蓋的情況。

SHAPE \* MERGEFORMAT

上圖是多人共同開發同一個專案,內部最大的問題是,在比較短的時間內如果有多人同時開發同一個檔案,會造成彼此程式碼覆蓋的情況發生。A的程式碼在最後會把B的程式碼給覆蓋掉,10點以後就只體現A程式設計師的功能效果。

SVN其中的作用一個就是避免上述情況發生。

2. 使用svn的作用

① 多人開發同一個專案不會出現程式碼覆蓋情況。

② 針對一個檔案可以建立許多不同版本,並且可以隨時檢視不同版本的內容。

③ 公司領導可以透過svn檢視每個人的工作情況

二. SVN的安裝

1. 伺服器端安裝

SVN學習筆記

SVN學習筆記

2。

客戶端安裝

SVN學習筆記

SVN學習筆記

3. 建立多個svn倉庫(儲存程式碼)

> svnadmin create h:/svnServer/app/shop

SVN學習筆記

SVN學習筆記

4. 啟動倉庫服務

> svnserve -d(獨立埠執行) -r(倉庫地址) 倉庫地址

> svnserve -d -r h:/svnServer/app/shop //啟動shop倉庫服務

該svn服務走svn協議,埠號碼是3690

SVN學習筆記

SVN學習筆記

5. 使得本地客戶端(碼農)與倉庫取得聯絡

> 右鍵————> checkout

SVN學習筆記

SVN學習筆記

SVN學習筆記

三. 使用svn服務

1. 給svn倉庫提交第一個程式檔案

步驟:

① 右鍵————> SVN——>Add

(本地的。svn對該檔案形成管理)

② 右鍵————> Commit

(本次的檔案提交給svn倉庫)

1.1 檔案顏色標誌

① 藍色加號:本地的。svn對該檔案有形成管理

② 綠色對號:本地檔案、。svn管理的版本檔案、倉庫檔案 三者一致

③ 紅色歎號:本地檔案 與 。svn和倉庫檔案 不一致(使用者自己修改了該檔案)

④ 黃色歎號:表示該檔案正處於衝突狀態

SVN學習筆記

SVN學習筆記

SVN學習筆記

SVN學習筆記

SVN學習筆記

SVN學習筆記

2. 多個程式設計師給倉庫提交檔案

SHAPE \* MERGEFORMAT

SVN學習筆記

SVN學習筆記

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

把所有倉庫的上級目錄當成服務給啟動起來。

·; svnserve -d -r d:/svnServer/app/

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

svn://localhost/student——————>與student倉庫取得聯絡

svn://localhost/book——————->與book倉庫取得聯絡

svn://localhost/shop————————>與shop倉庫取得聯絡

SVN學習筆記

SVN學習筆記

3.1 舊使用者更換svn主機名

刪除。svn檔案,斷開與倉庫的聯絡

重新checkout透過svn新主機名建立與倉庫的聯絡

4. 同一個檔案的不同版本切換

一個程式檔案可以在svn倉庫裡邊形成許多不同版本,並可以隨時檢視。

SVN學習筆記

SVN學習筆記

SVN學習筆記

SVN學習筆記

總結:

1。 安裝svn的伺服器、客戶端軟體

2。 建立倉庫(根據不同的專案建立對應的倉庫)

> svnadmin create 倉庫地址

3。 使用svn( checkout update commit )

4。 啟動svn倉庫服務

> svnserve -d -r 倉庫地址

四.衝突解決(重點)

上圖兩個程式設計師在短時間之內共同開發同一個程式檔案(goods。php)

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

檔案覆蓋的解決:

① 給每個檔案分配一個“令牌”,誰拿到令牌誰就有權利開發該檔案

(同一個程式檔案同一個時間點只允許有一個人開發)

② 給每個檔案設定一個版本號碼,提交的時候如果伺服器的版本等於本地版本號碼就允許提交,否則不允許提交(本地號碼 小於 伺服器版本)

衝突:

廣義角度的衝突,提交程式檔案 本地版本號碼 小於 伺服器版本號碼

狹義角度的衝突,多個程式設計師對同一個檔案同一處程式碼的修改再共同提交檔案的時候回產生衝突。

1. 衝突具體形式:

1.1大家修改的程式碼不在同一處

解決:

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

繼續提交檔案即可。

SVN學習筆記

SVN學習筆記

SVN學習筆記

1.2 大家修改的程式碼在同一處

SVN學習筆記

SVN學習筆記

SVN學習筆記

無論什麼樣子的衝突:解決就是透過update把最新的版本更新到本地,檔案稍作修改後繼續提交。

五. 賬號和許可權

1. 設定賬號

SVN學習筆記

SVN學習筆記

SVN學習筆記

SVN學習筆記

2. 給賬號設定許可權

2.1 給具體使用者設定許可權

SVN學習筆記

2.2 給一個組別設定許可權

SVN學習筆記

SVN學習筆記

2.3 開啟只操作某個目錄許可權

步驟:

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

② 外包團隊給該 目錄提交檔案

③ 管理員刪除本身建立的目錄,執行update更新操作,即可檢視外包團隊的工作情況

SVN學習筆記

SVN學習筆記

SVN學習筆記

六.設定開機啟動項服務

SVN學習筆記

SVN學習筆記

SVN學習筆記

SVN學習筆記

七. 真實環境使用svn

總結:

1。 衝突解決

型別:大家修改程式碼在(不在)同一處

解決:統一執行update操作,伺服器檔案會和本身檔案做融合(大家的版本號碼統一),檔案程式碼做適當調整繼續提交

2。 賬號和許可權設定

(把匿名賬號設定為none)

許可權設定:

① 具體使用者許可權設定

② 給組別統一設定許可權

③ 給使用者設定只操作某個目錄的許可權

3。 給svn設定服務

> sc create 名稱 binpath= “服務執行檔案 -r 服務倉庫地址 ——service” start= auto

>sc delete 名稱

作業:

1。 組長搭建svn服務,並給組員設定使用者名稱和密碼、許可權

2。 組員使用svn服務,進行commit和update操作

SVN學習筆記