深圳軟體測試培訓 SVN與Git的差異

2021-09-25 16:28:07 字數 2161 閱讀 6217

深圳軟體測試培訓:svn與git的差異

1. subversion屬於集中式的版本控制系統

集中式的版本控制系統都有乙個單一的集中管理的伺服器,儲存所有檔案的修訂版本,而協同工作的人們都通過客戶端連到這台伺服器,取出最新的檔案或者提交更新。

subversion的特點概括起來主要由以下幾條:

1.每個版本庫有唯一url(官方位址),每個使用者都從這個位址獲取**和資料。

2.獲取**的更新,也只能連線到這個唯一的版本庫,同步以取得最新資料。

3.提交必須有網路連線(非本地版本庫)。

4.提交需要授權,如果沒有寫許可權,提交會失敗。

5.提交並非每次都能夠成功。如果有其他人先於你提交,會提示「改動基於過時的版本,先6.更新再提交」… 諸如此類。

7.衝突解決是乙個提交速度的競賽:手快者,先提交,平安無事;手慢者,後提交,可能遇到麻煩的衝突解決。

好處:每個人都可以一定程度上看到專案中的其他人正在做些什麼。而管理員也可以輕鬆掌控每個開發者的許可權。

缺點:**伺服器的單點故障。

若是宕機一小時,那麼在這一小時內,誰都無法提交更新、還原、對比等,也就無法協同工作。如果**伺服器的磁碟發生故障,並且沒做過備份或者備份得不夠及時的話,還會有丟失資料的風險。最壞的情況是徹底丟失整個專案的所有歷史更改記錄,被客戶端提取出來的某些快照資料除外,但這樣的話依然是個問題,你不能保證所有的資料都已經有人提取出來。

subversion原理上只關心檔案內容的具體差異。每次記錄有哪些檔案作了更新,以及都更新了哪些行的什麼內容。

git屬於分布式的版本控制系統

git記錄版本歷史只關心檔案資料的整體是否發生變化。git 不儲存檔案內容前後變化的差異資料。

實際上,git 更像是把變化的檔案作快照後,記錄在乙個微型的檔案系統中。每次提交更新時,它會縱覽一遍所有檔案的指紋資訊並對檔案作一快照,然後儲存乙個指向這次快照的索引。為提高效能,若檔案沒有變化,git 不會再次儲存,而只對上次儲存的快照作一連線。

在分布式版本控制系統中,客戶端並不只提取最新版本的檔案快照,而是把原始的**倉庫完整地映象下來。這麼一來,任何一處協同工作用的伺服器發生故障,事後都可以用任何乙個映象出來的本地倉庫恢復。這類系統都可以指定和若干不同的遠端**倉庫進行互動。籍此,你就可以在同乙個專案中,分別和不同工作小組的人相互協作。你可以根據需要設定不同的協作流程。

另外,因為git在本地磁碟上就儲存著所有有關當前專案的歷史更新,並且git中的絕大多數操作都只需要訪問本地檔案和資源,不用連網,所以處理起來速度飛快。用svn的話,沒有網路或者斷開vpn你就無法做任何事情。但用git的話,就算你在飛機或者火車上,都可以非常愉快地頻繁提交更新,等到了有網路的時候再上傳到遠端的映象倉庫。換作其他版本控制系統,這麼做幾乎不可能,抑或是非常麻煩。

git具有以下特點:

1.git中每個轉殖(clone)的版本庫都是平等的。你可以從任何乙個版本庫的轉殖來建立屬於你自己的版本庫,同時你的版本庫也可以作為源提供給他人,只要你願意。

2.git的每一次提取操作,實際上都是一次對**倉庫的完整備份。

3.提交完全在本地完成,無須別人給你授權,你的版本庫你作主,並且提交總是會成功。

4.甚至基於舊版本的改動也可以成功提交,提交會基於舊的版本建立乙個新的分支。

5.git的提交不會被打斷,直到你的工作完全滿意了,push給他人或者他人pull你的版本庫,合併會發生在pull和push過程中,不能自動解決的衝突會提示您手工完成。

6.衝突解決不再像是svn一樣的提交競賽,而是在需要的時候才進行合併和衝突解決。

7.git 也可以模擬集中式的工作模式。

8.git版本庫統一放在伺服器中。

9.可以為 git 版本庫進行授權:誰能建立版本庫,誰能向版本庫push,誰能夠讀取(轉殖)版本庫。

10.團隊的成員先將伺服器的版本庫轉殖到本地;並經常的從伺服器的版本庫拉(pull)最新的更新。

11.團隊的成員將自己的改動推(push)到伺服器的版本庫中,當其他人和版本庫同步(pull)時,會自動獲取改變。

12.git 的集中式工作模式非常靈活。

13.你完全可以在脫離git伺服器所在網路的情況下,如出差時,照常使用**庫,你只需要在能夠接入git伺服器所在網路時,pull和push即可完成和伺服器同步以及提交。

14.git提供 rebase 命令,可以讓你的改動看起來是基於最新的**實現的改動。

15.git有更多的工作模式可以選擇,遠非 subversion可比。

深圳軟體測試培訓 軟體測試質量

深圳軟體測試培訓 軟體測試質量 軟體質量定義 1991年國際標準iso 9126中定義為 軟體滿足規定或潛在使用者需求的總和。1999年國際標準iso 14598中定義為 軟體特性的總和,軟體滿足規定或潛在使用者需求的能力。2001年國際標準iso 9126中定義為 軟體滿足規定使用者或潛在使用者需...

深圳軟體測試培訓 自動化測試

深圳軟體測試培訓 自動化測試 自動化測試指軟體測試的自動化,在預設狀態下執行應用程式或系統,預設條件包括正常和異常,最後評估執行結果。將人為驅動的測試行為轉化為機器執行的過程。自動化測試框架一般可以分為兩個層次,上層是管理整個自動化測試的開發,執行以及維護,在比較龐大的專案 中,它體現重要的作用,它...

軟體測試 培訓

通過參加軟體測試的培訓,學習到了很多關於測試方面的知識,以下就針對本次培訓的情況來談談自己的一些收穫。首先,軟體測試包括白盒測試與黑盒測試,對測試人員來說現在若還是只懂一些簡單的黑盒測試,對其未來的職業發展很不利,測試人員也需要學習一些程式設計的思想,了解到研發人員如何進行功能模組化的設計,這樣有針...