一、概述
服務端:
Subversion:版本控制軟件的服務器端。
https://subversion.apache.org/
VisualSVN Server :可以在Windows平台安裝和管理全功能的Subversion server。
客戶端:
TortoiseSVN:Subversion版本控制系統的一個免費開源客戶端。
AnkhSVN:一款在VS中管理Subversion的插件。(安裝AnkhSVN,不需要安裝TortoiseSVN。)
VisualSVN for Visual Studio 2019:另一款在VS中管理Subversion的插件。(不需要安裝TortoiseSVN。)
二、VisualSVN Server

三、TortoiseSVN
1、將源代碼遷入到svn服務器中
找到你新建的項目文件夾(項目已經包含在里面),右擊—TortoiseSVN—Import,在彈出的對話框中輸入倉庫所在的url,點擊ok完成遷入源代碼到svn服務器中。
2、SVN忽略提交
第一種情況: svn global-ignores全局忽略
1、定義:忽略未版本控制的條目,全局參數;
2、在Windows注冊表中,位於HKEY_CURRENT_USER\Software\Tigris.org\Subversion\Config\Miscellany\global-ignores下;
3、設置全局忽略的方法:
格式: *.iml *logs *target
patten之間以空格分格,一般在前面加通配符*
4、VS使用的忽略列表:
*.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo __pycache__ *.rej *~ #*# .#* .*.swp .DS_Store [Tt]humbs.db bin obj *.suo *.user .vs *.pdb packages .vs
1、通過TortoiseSVN設置global-ignores:
右鍵-->TortoiseSVN-->Settings-->General-->Global ignore patten處添加自己想要忽略的文件或目錄。
2、也可以直接編輯Subversion配置文件,根據自己需求,修改為global-ignores。前面的#注釋都要刪除哦
第二種情況: svn:ignore局部忽略(只在當前目錄有效):
1、定義:是 Subversion的屬性,作用是忽略未版本控制的條目,要注意是“未加入版本控制的版本條目”,我們主要就是用它來忽略一些我們不想上傳到版本服務器的文件或者目錄;
2、命令行格式:svn propedit svn:ignore project1 --editor-cmd notepad
則會打開記事本,在記事本中輸入過濾規則,關閉記事本,就完成編輯了。
--editor-cmd 參數指定了用來編輯屬性的命令
3、注意:svn:ignore僅作用於當前目錄;
4、svn:ignore、global-ignores區別:
- svn:ignore:只對當前目錄有效;必須每個工作目錄都要設置,個性化配置;
- global-ignores:是全局有效,就是所有目前都有效;只需要配置一次,使用方便;
5、設置方法:
也可以這么操作:
完成后文件夾的圖標如下:

右鍵Commit這個文件夾,可以看到svn將會在 服務器上刪除這個文件夾。

提交后的圖標如下:

完成后的上層文件夾如下:

重新編譯一下VS里面的工程,雖然bin, obj, package等文件夾下面的文件都重新生成了,但是上層文件夾的圖標還是顯示為沒有更改。

四、Ankhsvn:將源代碼遷入Visual Studio中
1、安裝
安裝AnkhSVN,不需要安裝TortoiseSVN。
該插件可以直接在vs2012擴展和工具里安裝,安裝完成即可使用
打開Visual Studio,工具—選項—源代碼管理—插件選擇,選擇Ankhsvn。
2、基本使用
點擊File—Subversion—open from Subversion
在彈出的窗口中輸入倉庫的url后會彈出輸入用戶名和密碼對話框,輸入用戶名和密碼選擇要遷入的代碼文件將代碼遷入到Visual studio中。
在解決方案資源管理其中可以看到遷入的項目文件,如果項目文件前有問號跟感嘆號則代表此文件當前用戶無訪問權限。
添加完成后可以看到vs底部多了一個Pending Changes,在這里管理代碼。

如果沒有找到Pending Changes,可在 視圖—其他窗口—Pending Changes打開:

也可以右鍵點擊文件進行管理代碼:

3、從服務器中更新項目為最新版本
右擊解決方案資源管理器中的項目,選擇update protect to latest version.
4、項目修改后提交到服務器中
右擊——View History,在彈出的對話框中可以查看版本更新時間、作者、版本信息等
項目修改后,項目文件前面的對勾顯示為橘紅色,在解決方案資源管理器中選擇某一個項目文件或整個項目文件,右擊—Commit完成提交。如果此文件對於當前用戶是只讀的,提交時系統會提示禁止修改等信息。
1、解決方案:
2、項目:
3、目錄和文件
Pending Changes窗口:
5、提交時忽略
一些項目配置文件.每人都要自己的習慣,比如日志輸出級別的配置,.properties,pom.xml等等一些文件.這樣的文件又想放上遠程庫,但大多時候想忽略提交.
一般是通過changelist來實現的,把不想提交的文件放到ignore--on-commit這個changelist.其它的更改的文件放到default的另一個changelist.提交時,按changelist來提交就可以了.
修改文件的changelist
如果用TortoiseSVN客戶端工具:右鍵某文件-->SVN Commit-->在提交文件列表,右鍵這個文件-->Move to changelist-->ignore-on-commit-->done.
以后提交時,不要勾上這些文件就可以了.


















