svn是個什麼玩意兒

富服務端 mysql

這是svn和git一個大的不一樣點。svn的服務端包括源代碼文件,還包括一些對.svn項目的控制文件。這是典型的mysql-mysqlserver相似項目。客戶端發送命令,服務端響應請求。 git


版本號是id sql

每次項目中的改動提交到服務端,服務端都會爲此次改動產生一個版本號。 svn


每個版本都有一個parent sqlserver

create branch操做,merge操做咱們均可以看到這個思想的影子。 server


COW思想 it

checkout id1000 A --> copy A 成爲A1 --> 修改A1成爲A1' --> A1'提交 打包

                          --> copy A 成爲A2 --> 修改A2成爲A2' --> A2'提交 請求

A1’提交後,A2'提交,這時確定提交不了。由於A2會和當前服務端的head進行比較,顯然A2和A1'是有不一樣之處,因此會衝突。這也是爲何commit以前最好先pull代碼。pull通常選擇head拉數據。 數據

pull代碼時會判斷A2'相對A2修改的地方是否在pull的內容中(A1’與A之間的內容)有修改,若是有,會報告衝突。但這時你的A2已經變成了A3,也就是如今的head。你解決完衝突後,對須要修改的代碼進行修改,這時就能夠提交了。


export

打包用,不把.svn文件打入包中。

相關文章
相關標籤/搜索