SVN是Subversion的簡稱,是一個開放源代碼的版本控制系統,相較於RCS、CVS,它採用了分支管理系統,它的設計目標就是取代CVS。html
下載地址:https://tortoisesvn.net/downloads.zh.htmljava
安裝完不要忘記重啓電腦服務器
安裝完成後,按下鼠標右鍵,會看到以下界面:svn
說明SVN已經安裝成功了。spa
一、遷出配置庫內容(SVN Checkout).net
1)新建或進入目錄下(好比E盤),右鍵 →SVN Checkout開放源代碼
2)URL of repository 填寫倉庫路徑便可 設計
3)Revision處,「HEAD revision」是指最新版,也能夠指定Revision爲任意一個版本。3d
4)點擊「OK」按鈕後,在彈出的對話框中輸入用戶名和密碼,驗證成功後,項目文件開始從遠程服務器下載到本地工做目錄中:版本控制
5)點擊「肯定」按鈕後,便可獲取完成,出現以下下載界面:
6)下載完成後,服務器上全部內容會出如今本地文件夾下
二、更新文件(SVN Update)
1)當從配置庫遷出相應目錄後,他人對服務器上此目錄內容進行了修改,則須要再次獲取改動內容到本地目錄的過程稱爲更新。更新能夠針對一個文件、幾個選中的文件或者整個文件目錄。
選中要被更新的文件,右鍵選擇「SVN Update」項,以下:
2)點擊「SVN Update」後會彈出窗口顯示更新的進度,以下:
若上述框中的有文件出現亮紅,說明來自配置庫的內容與你本地修改內容合併時出現了衝突
三、提交更新(SVN Commit)
1)本地文件修改後,如果須要更新到服務器上,則須要提交(Commit)最新的更新。
Commit的做用是將本地最新修改的文件同步到SVN服務端,供其餘人來參考或者使用,固然使用以前,要先Update一下,來確保是最新的,在修改文件上擊右鍵,出現菜單,選擇「SVN Commit…」,以下:
2)而後填寫關於本次更新的日誌(log message),這是必填項,不然commit會失敗,以下:
3)當出現下圖所示提示框,則代表剛剛的修改已成功提交,而且當前的SVN版本號加1。
四、增長文件(Add)
1)將須要增長的新文件放入到本地遷出的文件夾TestManger目錄的相應位置中,鼠標選中新文件右鍵選擇「Tortoise SVN」的「Add」項,以下圖所示:
2)鼠標選中TestManger文件夾右鍵選擇「SVN Commit…」,將新文件上傳配置庫對應文件夾中(若只上傳單個文件,只需點中單個文件上傳便可)。
五、檢查更新(Check for modifications)
1)此功能能夠顯示本地對文件所作的修改有哪些尚未提交。不光能看到對文件的修改變化,還包括增長文件或目錄,刪除文件或目錄,移動文件或目錄等。當他人提交了哪些文件的改動,也可經過此項來進行查詢。
六、刪除文件(Delete)
1)選中要被刪除的文件,右鍵選擇「Tortoise SVN」的「Delete」項,以下:
2)刪除文件後,鼠標選中TestManger文件夾右鍵選擇「SVN Commit…」項進行提交,提交方式同增長文件的提交方式,提交後則將新文件從配置庫中刪除。
七、撤銷更改(Revert)
在修改了某些文件後(文件未上傳到配置庫),須要返回到修改前的狀態,則選中文件夾右鍵選擇「Tortoise SVN」的「Revert...」項進行撤銷,本地硬盤上的文件將恢復到修改前的內容,修改的內容將被刪除。
八、鎖定和解鎖(Get lock and Release lock)
當項目須要時能夠在本地硬盤中將遷出的內容進行鎖定,選中要被鎖定的文件右鍵選擇「Tortoise SVN」的「Get lock...」項進行鎖定(鎖定後他人將沒法修改此文件),系統彈出鎖定信息框。 當文本文件鎖定後,須要經過解鎖他人才能繼續對文件進行修改。
選中被鎖定的文件右鍵選擇「Tortoise SVN」的「Release lock…」項進行解鎖。
九、重命名文件(Rename)
修改文件名,選中須要重命名的文件或文件夾,而後右鍵「Tortoise SVN」的「Rename」,在彈出的對話框中輸入新名稱,點擊「OK」按鈕,並將修改文件名後的文件或文件夾「SVN Commit…」提交到SVN服務器上。
十、獲取歷史文件(Show log)
Show log顧名思義是顯示日誌的做用,主要是顯示該文件或者該目錄被執行的操做,是被誰修改了,以及修改的時間和日期。鼠標選中文件夾右鍵選擇「Tortoise SVN」的「Show log」項,系統彈出此路徑下的全部文件版本信息,以下:
1)svn多分支合併主幹方法
分支a合併到本地主幹後,本地主幹提交代碼到svn主幹,這時主幹版本改變,分支b再提交代碼到主幹會報衝突,版本不統一,這時的解決辦法是:
方法1.將主幹代碼合併到分支b,提交分支b代碼到主幹便可。
方法2.將分支b代碼合併到分支a,提交分支a代碼到主幹便可。
總之,要避免主幹提交後,主幹和另外一分支的版本衝突問題便可。
2)svn多分支合併主幹衝突:svn Working copy and merge source not ready for reintegration
猜想緣由:分支主幹版本不一致,致使同一文件被認爲是不一樣文件,因此沒法合併(A,B兩文件合併時也報此錯)
解決方法:
分支合併主幹產生衝突問題: svn Working copy and merge source not ready for reintegration
原文地址:http://heisetoufa.iteye.com/blog/1736189
錯誤信息
Working copy and merge source not ready for reintegration
svn: 'svn://xxx/TestImpl.java@4530' must be ancestrally related to 'svn://xxx/TestImpl.java@4394'
Merge completed abnormally.
在使用svn的merge過程當中,遇到了N多的麻煩
此次遇到的麻煩的具體表現爲:
在主幹合併分支中的代碼,報錯
解決辦法爲:
假如須要合併的文件名爲:TestImpl.java
1.在主幹的文件上,右鍵->Team->Copy->選擇分支的路徑->OK.
2.到分支的文件夾中找到新copy進來的文件,就是Copy Of TestImpl.java
3.把分支的TestImpl.java更名爲TestImpl2.java
4.把Copy Of TestImpl.java更名爲TestImpl.java
5.把TestImpl2.java的內容所有覆蓋掉TestImpl.java中的內容
6.把TestImpl.java文件名中的TestImpl2所有改成TestImpl
7.刪除Copy Of TestImpl.java
8.提交分支的TestImpl.java
9.在主幹的TestImpl.java上進行合併.這個時候svn就不報錯了,能夠正常的合併代碼了
這個錯誤形成的緣由,應該是主幹與分支的文件,沒有關聯關係.經過以上步驟,至關因而給主幹和分支創建了關聯關係,他們有了主次關係,才能進行合併.
但是有一點不明白的是,我分支的TestImpl.java是新建的,而且已經經過merge給了主幹,可是改了分支後,再在主幹merge的時候,卻報出了以上的錯誤。
3)分支合併主幹示例 (附例) 1.主幹工程右鍵選擇 merge 合併下一步 2.選中 merge two different trees 下一步 3.from 主幹版本路徑,版本號選擇分支分出去的版本號 to 合併的分支目錄,版本號通常最新版本 下一步 4.選擇屬性,通常直接下一步便可 5.下一步完成。若無衝突直接主幹提交代碼便可。 若存在衝突解決辦法,我的建議使用最後一種解決衝突 Mark as conflicted. I will deal wiht it later. --標記衝突,合併到主幹解決衝突 Resolve the conflict by using my version of the file. --直接用主幹的文件覆蓋,分支修改無效 Resolve the conflict by using the incoming of the file. --直接用分支修改覆蓋主幹,以分支爲準 Let me edit the file with conflict markers inserted. --直接編輯衝突,編輯完保存,選擇yes保存。 Launch a graphical conflict resolution editor.--直接比對文件,修改衝突,點擊保存。選擇yes解決衝突
原文出自:https://www.cnblogs.com/zhoumiao/p/5459552.html 和 http://blog.csdn.net/aya19880214/article/details/45894863