基本介紹
使用介紹
1。AnkhSvn是一種對版本和原始碼進行控制的工具。使用它我們可以做到隨時隨地的進行項目開發,擺脫了開發過程中空間的限制(當然,隨時隨地的條件是可以上網),同時解決了團隊合作中的一個令人頭疼的問題--修改衝突。以前我們用SourceSafe進行項目控制時,經常發生團隊成員之間對同一段代碼做了修改,而在提交時就會出錯,時常出現代碼的覆蓋以及以及更改的丟失。同時AnkhSvn解決了我們無法查看對該解決方案所做更改(即view history)的問題,保證了代碼提交的安全性,同時使我們每個人從擔心代碼衝突、代碼覆蓋的疑慮中解放出來,能夠全身心投入項目開發中。
2。AnkhSvn的常用操作:
(1)建立本地的伺服器版本。Subversion->Add to Subversion
Subversion->Open from Subversion,然後再在Url地址框中輸入地址路徑(注意:此處的協定頭是https,它傳輸的安全性更高。),點擊open按鈕即可(第一次使用時需要制定獲取伺服器版本到本地的物理路徑)。
(2)獲取最新版本
打開解決方案後,點擊右鍵有一個“Update to Latest Version”。
(3)提交(commit)、撤銷(revert)
(4)撤銷至某一個版本:右鍵你要撤銷的檔案(注意:在這裡點擊不同的檔案的效果是不一樣的,例如右鍵解決方案或者是類庫或者是資料夾,只能在viewhistory或者viewsolutionhistory選項中撤銷至你選定的版本;而如果右鍵某一個檔案,例如。cs檔案或者。aspx檔案,除了上述選項,我們還可以選定任意的版本來show changes)。
(5)view history、view solution history、view project history三種瀏覽歷史記錄的方式。通過瀏覽歷史記錄我們可以了解版本信息、了解團隊成員的工作情況。(注意:當點擊相應的瀏覽歷史記錄的按鈕時,在彈出框中有changed paths提示框,雙擊框中的記錄可以查看具體的修改信息。)
(6)作副本
點擊“視圖”中的working copy explorer,然後再working copy folders中選定sln檔案,點擊上方的copyto圖示選定一個存放副本的物理路徑(注意必須是一個新的資料夾,而不能是已經存在的檔案或資料夾)。
(7)Merge--版本合併。
最常用的merge方式就是以下兩種:
((1))Merge a range of revisions
我的理解是可以合併一系列的不同版本,將不同版本上與本版本的不同之處進行合併。
((2))Reintegrate a branch
就是將分支版本上的修改返回到創建該分支版本的源版本,即主幹版本或者其他。要使用這個方法要求這個分支版本不能再有任何本地修改,必須是一個單獨的版本,不能有任何分支子版本。而且這個版本號必須高於或者等於要融合的最後的版本號。
3。常見問題解析:
(1)代碼過時。通常會表現為當我們修改了某個檔案的某段代碼後準備提交時,當點擊“commit”時提示part of your code is out of date。這說明我們在對這個檔案進行修改時,同時有另外的成員在對這個頁面進行修改,這時我們需要首先獲取一下最新版本,如果別的成員做過的修改恰好是我們改動的部分,就會有形如“>>>>mine”和“<<<<XXXX”的錯誤,同時檔案上可能會有一個“!”。一般“>>>>mine”下面的表示我們的代碼,而“<<<<XXXX”下面的表示其他成員更改的代碼。這時我們需要分析決定怎樣處理這個錯誤,處理後要將“>>>>mine”和“<<<<XXXX”提示符刪掉。
(2)修改衝突。有時候我們修改完畢以後將我們的工作提交後才獲取最新版本(一般不提倡,最好的做法是提交前先獲取最新版本,如果有問題處理問題),獲取後開始“重新生成解決方案”出現了我們的web項目BlackJack.Web.csproj無法載入。這是由於我們做了自己的修改提交前並沒有及時獲取最新版本,導致代碼中有重複修改的地方。這時我們需要右擊BlackJack.Web.csproj有個選項是“編輯BlackJack.Web.csproj”,然後在打開的檔案中搜尋“mine”(目的是找到衝突地方),找出後進行分析取捨,完成後再次“重新生成解決方案”後載入web項目,這時就會出現,但因為代碼中的衝突依然存在因此會有“!”提示我們,找到相關的衝突的檔案處理後會發現檔案前的圖示變成了紅色小方框,代表衝突解決我們就可以編譯後提交了。