AnkhSVN是一款在VS中管理Subversion的插件,您可以在VS中輕松的提交、更新、添加文件,而不用在命令行或資源管理器中提交。而且該插件屬於開源項目。
可在marketplace.visualstudio中下載。
如果Visual Studio2010安裝AnkhSVN插件之后不顯示,則需要設置:
工具->選項->Source Control->插件選擇->AnkhSVN-Subversion Support for Visual Studio
AnkhSvn是一種對版本和源代碼進行控制的工具。使用它我們可以做到隨時隨地的進行項目開發,擺脫了開發過程中空間的限制(當然,隨時隨地的條件是可以上網),同時解決了團隊合作中的一個令人頭疼的問題--修改沖突。以前我們用SourceSafe進行項目控制時,經常發生團隊成員之間對同一段代碼做了修改,而在提交時就會出錯,時常出現代碼的覆蓋以及以及更改的丟失。同時AnkhSvn解決了我們無法查看對該解決方案所做更改(即view history)的問題,保證了代碼提交的安全性,同時使我們每個人從擔心代碼沖突、代碼覆蓋的疑慮中解放出來,能夠全身心投入項目開發中。
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項目,這時就會出現,但因為代碼中的沖突依然存在因此會有“!”提示我們,找到相關的沖突的文件處理后會發現文件前的圖標變成了紅色小方框,代表沖突解決我們就可以編譯后提交了。