TortoiseSVN是什么
TortoiseSVN是windows下其中一個非常優秀的SVN客戶端工具。通過使用它,我們可以可視化的管理我們的版本庫。不過由於它只是一個客戶端,所以它不能對版本庫進行權限管理。
TortoiseSVN不是一個獨立的窗口程序,而是集成在windows右鍵菜單中,使用起來比較方便。
TortoiseSVN每個菜單項都表示什么意思
SVN Update
從版本庫中獲取最新的一份工作拷貝,關於工作拷貝和版本庫的關系,參見下面的文檔。
--------------
SVN Commit
把自己工作拷貝所做的修改提交到版本庫中,這樣別人在獲取最新版本(Update)的時候就可以看到你的修改了。
--------------
Show log
顯示當前文件(夾)的所有修改歷史。SVN支持文件以及文件夾獨立的版本追溯。
----------
Repo-Browser
查看當前版本庫,這是TortoiseSVN查看版本庫的入口,通過這個菜單項,我們就可以進入配置庫的資源管理器,然后就可以對配置庫的文件夾進行各種管理,相當於我們打開我的電腦進行文件管理一樣。
----------
Revision Graph
查看當前項目或文件的修訂歷史圖示。如果項目比較大型的話,一般會建多個分支,並且多個里程碑(穩定版本發布),通過這里,我們就可以看到項目的全貌。
----------
Resolved
如果當前工作拷貝和版本庫上的有沖突,不能自動合並到一起,那么當你提交修改的時候,tortoisesvn就會提示你存在沖突,這時候你就可以通過這個菜單項來解決沖突。沖突的解決有兩種,一種是保留某一份拷貝,例如使用配置庫覆蓋當前工作拷貝,或者反過來。還有一種是手動解決沖突,對於文本文件,可以使用tortoiseSVN自帶的工具,它會列出存在沖突的地方,然后你就可以和提交者討論怎么解決這個沖突。同時它也對Word有很好的支持
--------------
Update to Revision
從版本庫中獲取某一個歷史版本。這個功能主要是方便查看歷史版本用,而不是回滾版本。注意:獲取下來之后,對這個文件不建議進行任何操作。如果你做了修改,那么當你提交的時候SVN會提示你,當前版本已失效(即不是最新版本),無法提交,需要先update一下。這樣你所做的修改也就白費了。
---------------
Revert
如果你對工作拷貝做了一些修改,但是你又不想要了,那么你可以使用這個選項把所做的修改撤銷
--------------
Cleanup
如果當前工作拷貝有任何問題的話,可以使用這個選項進行修正。例如,有些文件原來是版本控制的,但是你沒有通過tortoiseSVN就直接刪除了,但是tortoiseSVN還是保留着原來的信息(每個文件夾下都有一個.svn的隱藏文件夾,存放着當前文件夾下所有文件夾的版本信息)所以這就會產生一些沖突。可以使用cleanup來清理一下。
------------------
GetLock/ReleaseLock
如果你不想別人修改某個文件的話,那么你就可以把這個文件進行加鎖,這樣可以保證只有你對這個文件有修改權。除非你釋放了鎖,否則別人不可能提交任何修改到配置庫中
-----------------
Branch/tag
Branch是分支的意思。例如當在設計一個東西的時候,不同的人有不同的實現,但是沒有經過實踐檢驗,誰也不想直接覆蓋掉其他人的設計,所以可以引出不同的分支。將來如果需要,可以將這些分支進行合並。
tag是打標簽的意思。通常當項目開發到一定程度,已經可以穩定運行的時候,可以對其打上一個標簽,作為穩定版。將來可以方便的找到某個特定的版本(當然我們也可以使用版本號來查找,但是數字畢竟不方便)
SVN對於分支和標簽都是采用類似Linux下硬鏈接的方式(同一個文件可以存在兩個地方,刪除一個不會影響另一個,所做修改會影響另一個),來管理文件的,而不是簡單的復制一份文件的拷貝,所以不會有浪費存儲空間的問題存在。
-------------
Switch
主要用來切換到不同分支用的
-------------
Merge
合並當前的工作拷貝和版本庫上相應的文件
-------------
Export
這個功能是方便我們部署用。當我們需要發布一個穩定版本時,就可以使用這個功能將整個工程導出到某個文件夾,新的文件夾將不會包含任何版本信息了。
-------------
Relocate
當我們版本庫發生轉移的時候就需要用到這個功能了。例如我原先的版本庫是建在U盤上的,現在轉移到(復制整個配置庫文件夾)開發服務器上,使用https代替文件系統的訪問。因此就需要將原來的工作拷貝的目標版本庫重新定位到開發服務器上。
-------------
Add
將沒有被版本控制的文件添加到版本庫中,注意:Add操作不會自動提交到配置庫中,必須再次commit。你也可以在上層文件夾直接commit來添加尚未版本控制的文件(夾)
-------------
create patch
創建補丁。如果管理員不想讓任何人都隨便提交修改,而是都要經過審核才能做出修改,那么其他人就可以通過創建補丁的方式,把修改信息(補丁文件)發送給管理員,管理員審核通過之后就可以使用apply patch提交這次修改了。
========
常見錯誤解決方案:
【svn *** is locked】
選中文件/文件夾,右鍵、svn、“clean up”后update就可以了,如果執行失敗,會提示相應目錄下的文件夾出現問題,按照提示對目錄下文件夾執行右鍵、svn、“clean up”后update,基本就可以解決了