一、VisualSvn Server介绍与使用

1 、VisualSvn Server
VisualSvn Server是免费的,而VisualSvn是收费的。VisualSvn是Svn的客户端,和Visual Studio集成在一起,但是不免费,使用AnkhSvn(VS2008插件)来代替VisualSvn。使用 VisualSvn Server是Svn的服务器端,包括Subversion、Apache和用户及权限管理,优点在上面已经说过了。

2、 VisualSvn Server安装过程
下载后,运行 VisualSvn-Server-2.1.4.msi 程序,点击Next,下面的截图顺序即为安装步骤:
【步骤1】安装首页界面,见图

VisualSvn Server 与TortoiseSvn的使用_TortoiseSvn


【步骤2】选择组件为服务器和管理终端功能 见图

VisualSvn Server 与TortoiseSvn的使用_TortoiseSvn_02



【步骤3】自定义安装配置 见图

VisualSvn Server 与TortoiseSvn的使用_win Tortoise_03


【注意】:
代码库保存地址你可以选择合适的目录,这个代码库Repositories是根目录,创建了就不能删除,如果删除了,VisualSVN Server就不能运作。

实际上这个Repositories文件夹创建了之后就可以不用理会它了,也不用进去文件夹里面修改里面的文件(我的跟图例一样放在D盘)见下图

VisualSvn Server 与TortoiseSvn的使用_TortoiseSvn_04

VisualSvn Server 与TortoiseSvn的使用_版本控制_05


   如果不选择Use secure connection ,Server Port那里,默认端口有80/81/8080三个;如果选中最后面的CheckBox,则表示使用安全连接【https协议】,端口只有433/8433二个可用。

默认是选用的。(Server Port那里,我选择的是端口80,没有勾选Use secure connection,本人觉得没有必要使用secure connection)至于授权Authentication,

默认选择 VisualSVN Server自带的用户和用户组。


【步骤4】 点击安装按钮,进行安装 见图

VisualSvn Server 与TortoiseSvn的使用_版本控制_06


【步骤5】安装成功,服务启动,见图

VisualSvn Server 与TortoiseSvn的使用_win Tortoise_07


安装后会添加VisualSvn Server服务:

VisualSvn Server 与TortoiseSvn的使用_win Tortoise_08


如果要卸载VisualSvn Server,需要做如下的操作:

(1)开始-》运行,在输入框行输入 services.msc  确定

(2)进入服务管理器把VisualSvn Server服务停掉,不然在卸载中途会说进程还在运行不能卸载



3、VisualSvn Server 配置与使用方法

安装好VisualSVN Server后,运行VisualSVN Server Manger,下面是启动界面,见图:

VisualSvn Server 与TortoiseSvn的使用_win Tortoise_09


与VSS的区别:

VisualSvn Server里面的Repositories根节点相当于VSS里面的$符号根节点:

VisualSvn Server 与TortoiseSvn的使用_TortoiseSvn_10

VisualSvn Server 与TortoiseSvn的使用_TortoiseSvn_11


4、添加代码库StartKit

下面添加一个代码库Repository 叫StartKit,并进行相关设置:
【步骤1】创建代码库StartKit,见图。

VisualSvn Server 与TortoiseSvn的使用_win Tortoise_12

【步骤2】代码库基本配置,创建新的代码库,在下图所示的文本框中输入代码库名称,见图:

VisualSvn Server 与TortoiseSvn的使用_win Tortoise_13


【注意】
Repository URL 地址是用来从客户端或者VS2008中连接服务器。机器名可以改成局域网IP或者公网域名,公网IP或者计算机名,这里用的安全连接模式https。
上图中的代码库文件结构CheckBox如果选中,则在代码库StartKit下面会创建trunk、branches、tags三个子目录;不选中,则只创建空的代码库StartKit。默认不选中(没有什么用,最好不要选中)
点击OK按钮,代码库就创建成功了,见图。

VisualSvn Server 与TortoiseSvn的使用_win Tortoise_14


5、代码库安全性设置 用户和用户组

下面,我们开始安全性设置,在左侧的Users上点击右键:
【步骤1】创建用户。
创建用户,并设置用户名和密码,见图。

VisualSvn Server 与TortoiseSvn的使用_TortoiseSvn_15

VisualSvn Server 与TortoiseSvn的使用_win Tortoise_16


输入上面的信息,点击OK,我们就创建一个用户了。按照上面的过程,分别添加用户startKiter1、startKiter2、startKiter3。
注意:有多少个开发人员就创建多少个用户,每个开发人员拥有一个用户,跟VSS一样
每个开发人员保管好自己的用户名跟密码!!!


【步骤2】添加这些用户到我们刚才创建的项目里。
右击代码库StartKit的属性,弹出属性对话框见图。

VisualSvn Server 与TortoiseSvn的使用_win Tortoise_17


VisualSvn Server 与TortoiseSvn的使用_版本控制_18


点击上图中的"Add..."按钮,在下图中选择我们刚才添加的用户,点击OK按钮:
注意:大家可能注意到了下图中的Groups,是的,你也可以先创建组,把用户添加到各个组中,然后对组进行授权,操作比较简单,在此略过。


【步骤3】创建组,并选择该组的用户,见图。

VisualSvn Server 与TortoiseSvn的使用_TortoiseSvn_19



至此,VisualSvn Server的使用就讲完了


二、TortoiseSvn介绍与使用

TortoiseSvn 是 Subversion 版本控制系统的一个免费开源客户端,可以超越时间的管理文件和目录。文件保存在中央版本库,除了能记住文件和目录的每次修改以外,版本库非常像普通的文件服务器。你可以将文件恢复到过去的版本,并且可以通过检查历史知道数据做了哪些修改,谁做的修改。这就是为什么许多人将 Subversion 和版本控制系统看作一种“时间机器”。

TortoiseSvn安装过程
下载后,运行 TortoiseSvn-1.6.11.20210-win32-Svn-1.6.13.msi 程序,点击Next,下面的截图顺序即为安装步骤:
【步骤1】 安装界面见图。

VisualSvn Server 与TortoiseSvn的使用_TortoiseSvn_20

【步骤2】选择安装地址,见图。

VisualSvn Server 与TortoiseSvn的使用_版本控制_21

【步骤3】安装成功,见图

VisualSvn Server 与TortoiseSvn的使用_版本控制_22

(点击Finish按钮后会提示重启系统,就算不提示重启也一定要手动重启,不然添加到代码库里的文件夹或文件就不会显示图标)

卸载完的时候也需要重启系统

TortoiseSvn配置和使用方法

   前面我已经讲解了怎样安装TortoiseSVN。在系列三讲解中已经讲了怎么使用VisualSVN Server了,下面是TortoiseSVN的简单使用方法。
安装了LanguagePack_1.6.5.16974-win32-zh_CN之后打开TortoiseSvn的设置界面选择中文语言,见下图

VisualSvn Server 与TortoiseSvn的使用_win Tortoise_23

签入源代码到SVN服务器

【步骤1】签入文件操作,连接SVN服务器

假如我们使用Visual Studio在文件夹StartKit中创建了一个项目,我们要把这个项目的源代码签入到VisualSVN Server上的代码库中里,首先右键点击StartKit文件夹,导入文件夹

这时候的右键菜单如下图所示:

VisualSvn Server 与TortoiseSvn的使用_TortoiseSvn_24

【步骤2】签入新的项目文件
点击Import,弹出下面的窗体,见下图其中https://10.3.2.150是服务器名,svn是代码仓库的根目录,StartKit是我们在系列三中添加的一个代码库:
【注意】
左下角的CheckBox(包括忽略文件),在第一次签入源代码时没有用,但是,在以后你提交代码的时候是非常有用的。

VisualSvn Server 与TortoiseSvn的使用_版本控制_25

点击OK按钮,会弹出下面的窗体,见下图要求输入凭据:

VisualSvn Server 与TortoiseSvn的使用_win Tortoise_26

在上面的窗体中输入用户名和密码,点击OK按钮,如下图所示。

VisualSvn Server 与TortoiseSvn的使用_win Tortoise_27

如上图所示,好了,源代码已经成功签入VisualSVN Server服务器了。这时候团队成员就可以迁出VisualSVN Server服务器上的源代码到自己的机器了。

签出源代码到本机

在本机创建文件夹StartKit,右键点击Checkout,弹出如下图的窗体,如下图

VisualSvn Server 与TortoiseSvn的使用_TortoiseSvn_28

在上图中URL of Repository:下的文本框中输入VisualSVN Server中的代码库的地址,其他默认,点击OK按钮,就开始签出源代码了。

【注意】

上图中的Checkout Depth(签出深度),有4个选项,分别是迁出全部、只签出下一级子目录和文件、只签出文件、只签出空项目,默认的是第一项。

上面的例子中,我们也可以使用web的方式访问代码库,在浏览器中输入http://10.3.2.150/svn/StartKit/ ,这时候也会弹出对话框,要求输入用户名和密码,通过验证后即可浏览代码库中的内容。

搞定!源代码已经成功签出到刚才新建的StartKit目录中。打开StartKit目录,可以看到如下图的文件夹结构如下图所示

VisualSvn Server 与TortoiseSvn的使用_TortoiseSvn_29

一旦你对文件或文件夹做了任何修改,那么文件或文件夹的显示图片就会发生变化。

下图中我修改了其中的二个文件如下图所示。

VisualSvn Server 与TortoiseSvn的使用_win Tortoise_30

大家看一下不同状态所对应的图片如下图所示。

VisualSvn Server 与TortoiseSvn的使用_win Tortoise_31

我们已经知道怎么将源代码签入到VisualSVN Server服务器,怎么从服务器签出代码到本机,也简单了解了不同状态所对应的图案啦。


提交修改过的文件到VisualSVN Server服务器

上面的图中,我修改了位于StartTest文件中的二个文件Main.cpp和StartTest.cpp,下面演示如何提交到VisualSVN Server服务器。

【注意】提交源代码到服务器时,一定确保本机的代码是最新版本,否则可能提交失败,或者造成版本冲突(conflict)。

在StartTest文件夹上点击右键或在StartTest文件下的空白处点击右键,点击SVN Commit…弹出下面的窗体如下图所示。

VisualSvn Server 与TortoiseSvn的使用_win Tortoise_32

点击OK按钮后,弹出如下图的窗体,

VisualSvn Server 与TortoiseSvn的使用_win Tortoise_33

添加新文件到VisualSVN Server服务器

   我们在StartKit文件下添加一个新的类文件a.cpp,状态为non-version状态,在StartKit文件下的空白处点击右键,点击SVN Commit…,和上面讲的提交修改过的文件到VisualSVN Server服务器一样,就可以了。

另外也可以在文件a.cpp上点击右键,点击TortoiseSVN=>>Add, 选中a.cpp文件,点击OK按钮,这样并没有将这个文件提交到SVN服务器,只是将这个文件标记为源代码库库中的文件,并将其状态置为新添加状态。

之后,我们要再SVN Commit这个文件一次,弹出如下图的窗体: 才可以将其真正提交到VisualSVN Server服务器上的代码库中。

VisualSvn Server 与TortoiseSvn的使用_TortoiseSvn_34

上面讲是添加文件,实际上,添加文件夹的步骤也是一样的,这里就不说了。

更新本机代码与SVN服务器上最新的版本一致

   这个也很简单,只要在需要更新的文件夹上点击右键或在该文件下的空白处点击右键,点击SVN Update,就可以了。

【注意】更新操作可能会因为版本冲突而失败,这是可以使用合并【Merge】或其他方法解决;也可能因为锁定【Get Lock】而失败,这是需要先解锁【Release Lock】。

重命名文件或文件夹,并将修改提交到VisualSVN Server服务器

   只要在需要重命名的文件或文件夹上点击右键,点击TortiseSVN=>>Rename…,在弹出的窗体中输入新名称,点击OK按钮,就可以了。此方法也不是直接重命名,而是将该文件或文件夹的名称标记为重命名后名称,

也需要我们使用SVN Commit提交到VisualSVN Server服务器后才真正重命名。

删除文件或文件夹,并将修改提交到SVN服务器

   最简单就是,你直接删除文件或文件夹,然后使用SVN Commit提交更新到SVN服务器。另外一种方法是在你要删除的文件或文件夹上点击右键=>>TortoiseSVN=>>Delete删除,此方法也不是直接删除,而是将该文件或文件夹的状态置为删除,也需要我们使用SVN Commit提交到VisualSVN Server服务器后才真正删除。

【注意】实际上,从你把源代码迁签入SVN服务器开始,每一个版本的数据和文件,就算是你已经删除了的,也都可以随时迁出。

以上只是TortoiseSVN最简单的几个功能,其实他的功能远不止这些,其他的功能大家可以在使用的过程中慢慢体会,有些功能我会在下面的教程中使用到,到时候会和大家讲清楚用法。

【注意】向SVN服务器提交源代码的时候,一定不要提交bin、obj等文件夹,否则会很麻烦。但是web项目的bin目录除外,但是web项目的bin目录中的引用其他项目而生成的dll不需要提交。
一个好习惯:如果项目中引用了其他的第三方的程序集,比如EnterpriseLibrary、FCKEditor等,这时候不要简单从他们的安装位置引用,而是在你的解决方案下,添加一个Library的目录,把需要的程序集复制到这里,然后从Library目录引用。

【注意】:如果要删除(把文件夹放入回收站或者直接shift+delete,不是指从SVN服务器上删除)受TortoiseSVN版本管理的文件夹的时候,要选择“去除版本控制并增加到忽略列表”,如下图

VisualSvn Server 与TortoiseSvn的使用_TortoiseSvn_35