轉自linFen原文如何使用SVN協調代源代碼,多人同步開發
1.什么是SVN
SVN是一種版本管理系統,前身是CVS,是開源軟件的基石。即使在溝通充分的情況下,多人維護同一份源代碼的一定也會出現混亂的情況,版本管理系統就是為了解決這些問題。
2. SVN中的一些概念
a. repository(源代碼庫)
源代碼統一存放的地方
b. Checkout(提取)
當你手上沒有源代碼的時候,你需要從repository checkout一份
c. Commit(提交)
當你已經修改了代碼,你就需要Commit到repository
d. Update (更新)
當你已經Checkout了一份源代碼, Update一下你就可以和Repository上的源代碼同步,你手上的代碼就會有最新的變更
日常開發過程其實就是這樣的(假設你已經Checkout並且已經工作了幾天):Update(獲得最新的代碼) –>作出自己的修改並調試成功 –> Commit(大家就可以看到你的修改了)
聰明的讀者很快就要發問,如果兩個程序員同時修改了同一個文件呢?SVN可以Merge這兩個程序員的改動,對,合並,實際上SVN管理源代碼是以行為單位的,就是說兩個程序員只要不是修改了同一行程序,SVN都會自動合並兩種修改。如果是同一行呢,SVN會提示文件Confict, 沖突,需要手動確認。
3.示范一下如何使用
Coollittlethings實際上就是提供一個SVN Repository的服務器
下面有文字以及截圖說明一下如何使用SVN這樣一個超級工具,可以讓我們一起來修改同一份代碼
我以我新創建的了一個共同制作blogger模版的項目為例,有興趣的朋友可以和我聯系一起來就修改blogger模版,你也可以上傳你的模版,讓我來幫你改,^_^
第一步Checkout
a.首選你需要有一個Coollittlethings的帳號,確保你具有該項目的權限
b.下載和安裝SVN的客戶端TortoiseSVN, 安裝完成以后可能需要重新啟動
c. 從Coollittlethings上Checkout源代碼。
TortoiseSVN是一個資源管理器的插件,安裝完成以后,鼠標郵件點任何文件夾或者桌面都有TortoiseSVN的菜單項
選擇SVN Checkout
d.填寫源代碼的SVN路徑和本地文件夾
這里的源代碼路徑是http://www.coollittlethings.com/svn/blogtemplate/moban
這個是我在Coollittlethings上建立的一個模版項目
e.填寫你的Coollittlethings的帳號和密碼
第二步,修改程序文件,這里是模版的HTML文件,我自然是用DW拉
Checkout下來的文件都會有一個版本管理的標志
然后用編輯器修改程序,比如這里我只是用Dreamweaver小改了一下,也可以用VS.net, Eclipse等等
保存以后更改過的文件會有一個!號的標志
第三步,Commit
確認(程序調試成功)以后,你就可以Commit到源碼庫上去了
Commit的時候可以簡單說一下你的改動,比如這里我告訴大家我簡單改了一下css
好了,如果是另外一個程序員他之前已經Checkout了源代碼,那他早上起來可以先同步一下源代碼Update
Show一下Log就可以看到別人改了什么。
把文件放在同一個服務器上就解決了代碼同步的問題,聰明的同學又會問,那如果兩個人同時修改了一個文件呢?
Good Question! 這個時候SVN對源代碼的管理是細致到行為最小單位的,就是說,如果兩個人改的不是同一行代碼,另外一個程序Update一下,那所有的修改就被合並呢, 比如說我修改了程序的上半部分並commit了,king修改了下半部分, 這個時候,king只要update,那我修改的那一部分就被合並了進來,king手上的就是最新版本。
那如果是修改了同一行呢? Good Question 2! 這個時候SVN就會顯示沖突,需要手工修改,SVN的文檔第一句話就是SVN不能代替程序員之間的溝通。