VS2005 + VSS2005 实现团队开发、源代码管理、版本控制
一、 开发前的准备
1、 在装有Windows 2000或者Windows XP Professional的机器上安装.Net Framework SDK、Visual Studio.Net、Visual Source Safe 6C。(如果用户操作系统是Windows .Net Server,则无须安装.Net Framework SDK,.Net Server自带的IIS 6已经完全包含了对.Net的支持)这些工具在Visual Studio.Net的安装盘上都可以找到。
2、 一台专门用于存放版本控制中心数据库的服务器。该服务器不需要安装.NET Framework SDK和VS.Net,但是必须安装 VSS 6C。我们称这台服务器为开发服务器DataCenter。
3、 一个主域控制器,将DataCenter服务器加入这个域,为每一个开发用户分配域帐号。这样所有小组成员可以通过登录到Window NT域来访问版本控制信息。
注意:Visual Studio 6所带的Visual Source Safe 6不支持.Net的一些文件格式。如果你安装了VSS 6,也需要再安装一次VSS 6C,否则在VS.Net环境中将源代码加入到VSS数据库中将会出现错误。
二、 创建空的 SourceSafe数据库
在开始工作之前,需要建立一个空的SourceSafe数据库,来存放源代码控制数据,并为小组开发人员分配访问帐号。在DataCenter服务器上新建Source Safe数据库。步骤如下:
1、 启动"开始"——"程序"——"Microsoft Visual SourceSafe"菜单下的SourceSafe 6.0 Admin。如果你是第一次安装VSS 6C,Common数据库的Admin帐号为空。如图一所示:
图一 VSS登录窗口
2、 在Visual SourceSafe Administrator窗口中,你可以看到Source Safe默认的两个用户Admin和Guest。如果你不打算使用默认的Common数据库,而要建立一个属于自己的项目数据库。选择菜单"Tools"——"Create Database",如图二所示:
图二 VSS管理窗口
3、 在弹出的对话框中选择新数据库存放的位置。这里我们选择:C:/SourceManager/。点击OK后,提示你已经创建了数据库。
4、 选择"Users"——"Open SourceSafe Database…",使用Browser按钮,选择刚才所创建的SourceManager数据库C:/SourceManager/srcsafe.ini。
5、 使用"Users"——"Change Password"命令更改Admin帐号的密码。使用"Users"——"Add User"命令为项目小组成员创建SourceSafe帐号。
6、 将C:/SourceManager目录设置为共享。共享权限默认是Everyone完全控制。如果希望只对项目小组成员开放,不希望其他人操作数据库文件(注意:没有SourceManager帐号的人不能访问SourceSafe中的内容,但如果他有权限的话,可以删除或修改数据库中的数据),请将Everyone组从权限组中删除,并从域目录中选择可以访问该目录的域帐号或计算机。
7、 到此,一个空的项目数据库建立完毕。
三、 新建项目并加入版本控制
下面将演示在一个装有VS.Net的计算机上创建一个Windows应用程序和一个Web项目,并把它加入到上面所建的SouceManager数据库中。
1、 启动VS.NET。
2、 使用"文件"——"新建"——"空白解决方案"命令,在D:/下新建解决方案SourceManager。VS.Net会在D:/下自动创建一个SourceManager目录,该目录中有一个解决方案文件SourceManager.sln文件。
3、 使用"文件"——"新建"——"项目"命令,在项目类型中选择"Visual C#项目",在"模板"中选择"Window应用程序"。项目名称MyWindowApp。并选择"添入解决方案"选项。确定。
图三 新建Windows应用程序项目窗口
4、 使用"文件"——"新建"——"项目"命令,在项目类型中选择"Visual C#项目",在"模板"中选择"ASP.NET Web应用程序"。在"位置"栏中填写http://localhost/MyWebApp。并选择"添入解决方案"选项。确定。
图四 新建Web应用程序窗口
这样就在解决方案中建立了一个Window应用程序和一个Web应用程序。下面讲述如何将整个解决方案加入到源代码版本控制。
5、 在WebFrom1和Form1的设计器中各自加入一个Label控件,保持它的属性不变。我们将看到从另一个主机上获取的程序用户界面中也会有这一个控件。
6、 使用"文件"——"源代码管理"——"将解决方案加到源代码管理"命令。
图五 源代码管理菜单
7、 在弹出的Visual SourceSafe Login登录窗口点击"Browser"按钮,弹出打开数据库对话框,点击该对话框的"Browser"按钮,弹出如下对话框,在"文件名"中输入//DataCenter/SourceManager/srcsafe.ini。确定后输入上面所分配的SourceSafe帐号和密码。
图六 打开VSS数据库对话框
8、 首先会弹出一个保存解决方案的提示窗口,让你选择将要保存到SourceSafe中的项目名称,默认与解决方案的名称相同。点击OK,会得到项目在数据库中不存在的提示,点击"Yes"创建该项目。
图七 在VSS中创建项目对话框
9、 接下来会让你选择Web应用程序的保存位置。如下图所示。由于Web应用程序通常保存在本地的IIS根目录下。与解决方案中的其它项目不在同一个目录中,所以需要为Web应用程序在SourceSafe中单独建立一个项目。在该窗口点击"OK"按钮接受SourceSafe的默认项目名称MyWebApp。
图八 在VSS中创建Web项目对话框
10、 到此,我们已经在SourceSafe中添加了整个解决方案,包括一个Windows应用程序和一个Web应用程序。在"解决方案资源管理器"视图中,加入源代码控制的程序旁边有一把锁(如图九所示),表示文档已签入,不可编辑。
图九 解决方案资源管理器
11、 通过菜单"文件"——"源代码管理"——"Microsoft Visual SourceSafe",打开SourceSafe,可以看到,在SourceSafe中已经加入了两个项目。如图十所示:
图十 VSS浏览器
四、 获取SourceSafe中的项目
下面的步骤中将讲述如何在另一台主机上从SourceSafe获取源代码。
1、 在另一台主机上打开Visual Studio.Net开发环境。使用菜单命令"文件"——"源代码管理"——"从源代码管理打开"。重复第三步中的第7个操作,选择SourceSafe数据库的位置。
2、 弹出"Create local poject from SourceSafe"窗口,在"Create a new project in the"输入框中填写你要保存项目的本地路径,这里我们选择"C:/MyProject"。在"SourceSafe project to"中选择SourceManager项目,单击OK按钮。如果目录C:/MyProject不存在,会询问是否创建,选择"Yes All"。
图十一 从SourceSafe获取项目对话框
3、 接下来会弹出保存Web应用程序工作副本的对话框,在工作副本位置输入框中输入你想要保存Web应用的Web文件夹,也可以接受默认设置。点击"确定"按钮接受默认设置。
图十二 从SourceSafe获取Web项目对话框
4、 通过上述步骤,我们已经成功地在另一个开发主机上获得保存在SourceSafe的工程。将来如果有新的开发人员加入,只需重复这四个步骤即可。
五、 版本控制的几个概念
在Visual Studio.Net开发环境"解决方案资源管理器"的上下文菜单或者"文件"——中有如下与文件操作有关的命令,如图十三所示:
1、 文件的"签出"(Check Out):当需要编辑一个文件时,必须将该文件"签出",SourceSafe会标志该文件已经被某个用户迁出,并确保其他用户不可编辑同一个文件。对于文件,仅当文件被签入后才有这个选项。
2、 文件的"签入"(Check In):当完成文件的编辑后,最好将文件"签入",以让其他用户可以签出或者获取最新版本。对于文件,仅当文件被签出后才有这个选项。
3、 "获取最新版本":从SourceSafe数据库中获取指定文件或项目的最新版本,而又不必签出文件。
4、 "取消签出":不在SourceSafe数据库中保存签出后所做的修改,使本地文件恢复到修改之前的状态,并且将文件签入。只有文件或项目中有文件被签出后才有这个选项。
5、 "历史记录":查看文件修改的历史记录。SourceSafe数据库会自动保存每次"签入"前后的文件内容。如果需要查看历史记录。
6、 "版本比较":可以比较当前版本与历史版本之间的差异,SourceSafe将以对照的形式将两个版本的不同之处显示出来。如图十四所示:
图十四 版本比较
7、 "Roll Back":在历史版本显示对话框中有一个Roll Back命令,即将文件恢复到历史版本。当文件编辑错误时,想让文件回到历史的某个点时,使用该命令。历史版本显示对话框中还有其它命令,这里不一一详述,请读者慢慢研究。
8、 Visual Studio.Net中关于版本控制的选项:在"工具"——"选项"命令对话框中,选择左边的"源代码管理",显示如下对话框。读者可以根据项目的情况对SourceSafe选项进行设置。
图十五 Visual Studio.Net中与版本控制相关的选项
9、 其它SourceSafe操作:读者可以从"文件"——"源代码管理"——"Microsoft Visual SourceSafe"菜单,进入"Visual SourceSafe Explorer",其中大多数主要命令基本与Visual Studio.Net相同,这里就不再累赘。
六、 版本控制项目的管理
下面将讲述版本控制相关的一些权限管理和文件映射。首先在DataCenter服务器上打开"开始"——"程序"——"Microsoft Visual SourceSafe"——"Visual Source Safe 6.0 Admin"。选择SourceManager数据库,填入Admin账号的密码。进入"SourceSafe Administrator"窗口。它有如下几个菜单。
1、 Users菜单下是关于用户操作的命令,除上面我们所使用的添加用户"Add User"、修改密码"Change Password"外,还有删除用户"Delete User"、编辑用户"Edit User"命令。"Open SourceSafe Database"命令用于更改当前SourceSafe数据库。
2、 Tools菜单下的Options对话框中包括了一些项目的设置。下面对主要的选项进行简单的说明:
(1) General页中的Allow multiple checkouts,如果选择此项,则允许多个用户同时签出文件。默认是不允许。
(2) Project Security页中的"Enable project security"复选框指明是否允许对项目使用安全性。该项默认为不允许。只有当选择了这个选项之后,Tools下的"Rights by Project"、"Right Assignments for User"和"Copy User Rights"才可用。这里我们将它选中。
(3) Shadow Folders页用于设置项目在服务器上的映射。项目在SourceSafe中以二进制码形式将文件的所有版本信息保存在文件中。要在服务器上创建一个目录,将项目文件映射到这个目录中,使用该命令。在"Set shadow folder for project"中选择在SourceSafe中的SourceManager项目,在"Set shadow folder to"中选择项目要映射到的目录,如C:/SourceManager_Shadow。
(4) Web Projects页用于设置Web项目在服务器上的映射。在This project represents a Web Site中选择SourceSafe中的MyWebApp项目,在URL中填入"http://localhost",即本地Web服务器(也可以填入其它服务器)。Virtual Tools中填入要映射的虚拟目录,在"Deployments path"填入部署目录,这个目录将成为IIS中指定虚拟目录的映射目录。
3、 Tools菜单下的"Rights by Project"管理SourceSafe中项目的权限,如图所示。用户权限共有四种,在Rights中分别对应为:R(Read)、C(Check Out/Check In)、A(Add/Rename/Delete)、D(Destroy)。在左边的";Project"框中选择一个项目,并在右边选择相应的用户,使用下面的复选框,给用户分配相应的权限。Tools菜单下的"Rights Assignments for User"用于给选定用户分配权限,操作结果与上面的命令相同。
图十九 VSS项目权限管理
4、 Archive菜单下的"Archive Projects"用于将指定项目打包成*.ssa(SourceSafe Archive)文件,并迁移到其他主机上,使用Archive的"Restore Projects"命令,将该文件恢复到其他主机。这两个命令用于项目的迁移。
总结
使用SourceSafe与VS.Net开发环境,可以为 团队开发提供完整的源代码管理方案。通过源代码管理,可以记录项目开发的过程,将文件恢复到项目过程中的某一个点,而又无需在开发环境中保存太多的旧文档备份。