一:概述
源码控制管理器,也叫“版本控制”软件,用于存储、追踪目录(文件夹)和文件的修改历史,是软件开发者的必备工具,是专业软件公司的基础工具。它主要是协助在多人团队中控制代码,防止代码管理混乱、代码冲突,对代码拥有者进行权限控制等。最课程(www.zuikc.com)的.NET培训为了最大程度的对学员负责,从您刚入班就教会您怎么使用源码控制,并且我们的教师还会通过源码控制来修改您的代码。
源码控制主要存在如下的操作:
签入文件或目录
此操作将工作目录作为新版本复制回存储库。
签出文件或目录
此操作从存储库中将文件的最新修订版本复制到工作空间。签出目录时,将签出该目录下的所有文件和子目录。
提交文件或目录
此操作与签入文件或目录相同。版本控制用户会经常说他们“已提交更改”;这表示他们对各自文件的工作副本做了更改,并将这些更改提交到存储库。
冲突
当两名开发人员对同一文件的工作副本进行更改,并将这些更改提交到存储库时,他们的工作可能会发生冲突。在这种情况下,源码管理软件将检测冲突,并要求某个人先解决该冲突,然后再提交他们的更改。
合并
将对相同文件的不同工作副本进行的多个更改合并到源存储库中。合并是一种管理冲突的策略,它允许多名开发人员同时工作(不必对文件进行锁定),然后将他们的工作并入一个组合版本中。当对同一文件的不同行进行两组更改时,合并这两组更改很容易,而合并操作也可正常进行。但对文件的同一行或几行进行更改时,将发生冲突,这就要求有人手动编辑该文件,然后才能将这些更改成功提交到源存储库。
二:最课程源码控制(TFS)
最课程(www.zuikc.com)的源码控制,最开始使用微软提供的 TFS(team foundation server)。注意,由于各种各样的问题,Party现在越来越不待见外企,即便包括微软这样的公司,某些服务也时不时的被墙或者不稳定一下。微软提供的TFS服务在过去的两年中,时不时会出现一下无法连接或者速度超慢,故,当前最课程(www.zuikc.com)的源码服务已经迁移到 淘宝Code 上。但,TFS作为自主源码服务器,仍旧被很大一部分的公司使用,所以,我们仍旧需要掌握下这个工具。
TFS它分为服务器端部分和客户端部分:
其服务器端部分,是一个单独的软件,需要配置在服务器上,在我们的课程中,我们使用微软免费提供给我们的 TFS 服务器端。
而客户端,就是我们使用的编码工具 Visual Studio 2013(以下简称 VS),我们可以通过 VS,签入和签出代码。
为什么最课程要使用源码控制工具
基于两个原因:
1:最为学员的你完成 最课程(www.zuikc.com)中的代码,最课程(www.zuikc.com) 的老师需要 Check 你的代码,这能保证你在 最课程(www.zuikc.com) 学习中编写的每一行代码都逃不过我们的审核;
2:专业的软件公司,在软件开发过程中,都有一个流程,叫做 同行评审(Peer Review),这类似于我们的教师 评审 你的代码,如果你在 最课程(www.zuikc.com) 中已经熟悉了这个过程,那么踏上工作之路,对此就不会觉得陌生。
三:添加打老鼠游戏解决方案到服务器
我们再接再厉,在本节中直接把打老鼠这个游戏的解决方案先建立完毕。和“Hello World”一样,我们新建工程:
打老鼠游戏,不再是一个简简单单的控制台程序了,而是有界面的一个应用程序,所以我们这次选择的项目类型为“Windows Forms Application”,注意Loction我们选择了刚才的TFS中MAP到的路径。输入工程名:MouseHit,解决方案名:MouseHitSlu,点击OK,出现如下界面:
紧接着,在解决方案名上点右键,在右键菜单中,我们选择“Add solution to Source Control”,我们会发现VS中的文件前面多了几个“+”号:
这说明TFS标识为这几个文件是新增的,这个时候,我们再点击解决方案名的右键,选择“Check in”:
会出现如下界面:
把注释写入,然后点击“Chech in”,说明我们完成一次签入过程,我们的代码就已经传送到了服务器了。这个时候,我们在回到“Solution Explorer”的页签,见下图下方的红色处,然后检查刚才为“+”号的文件前方,已经变成了一把锁的图标。这表明:是的,我们的文件已经被服务器所控制了。
再进一步的,回到VS的Source Control Explorer,我们会发现,刚才签入的代码已经存在于服务器了,见下图:
好了,到了这一步,我将会在TFS上看到你提交的代码,不妨等待我的回复,看我在你的代码中修改了什么,以及加入了什么注释。
四:连接TFS源码服务器
最课程(www.zuikc.com) 的学员,都会由 最课程(www.zuikc.com) 分配一个 TFS 帐号,比如:[email protected](这是我们的演示帐号,实际上,你收的帐号,可能是 [email protected])。
其次,我们还会告诉你一个 TFS 的源码地址,比如:zuikc.visualstudio.com,然后,我们需要经过如下的步骤连接到源码服务器:
1:打开 VS -> Team -> Connect to Team Foundation Server;
2:Select Team Projects,选择 Server -> Add ,输入:zhangsan.visualstudio.com(示例),确定,输入用户名和密码;
3:点击 Connect,就可以看到 VS 中展开了源码管理的页面;
在这个页面中,最课程(zuikc.com)已经给你创建了一个最基本的控制台应用程序,你的最开始的作业,就可以在这个控制台程序中完成。下一节,你可以通过视频来看到上面的操作。
4:在 源码管理 页面,我们还在把在 TFS 上的路径和本地硬盘上的文件关联起来,这就是 Map 的过程,MAP 成功,就会把服务器上的代码下载到本地;
五:Map 服务器地址到本地
现在我们要做的,就是让TFS的空间地址和你硬盘上的地址绑定起来。这个时候,我们需要点击2处的“Source Control Explorer”,然后我们会看到如下界面:
在这个界面中,显示的是我为你创建的TFS文件夹(它相当于服务器上硬盘上的一个文件夹)。
我们会注意到,这个界面中,1处显示的是Not mapped,这说明我们还没有将TFS的地址和本地硬盘上的地址绑定起来。这个时候我们点击它,打开如下界面,然后选一个本地地址:
然后点击Map,然后出现如下界面,然后确定,就可以了。
经过上面这些步骤的操作,我们就在TFS的网站创建了一个自己的TFS空间,然后我们就可以把自己的代码签入到这个空间里,别人也就可以获取和修改你的代码了。当前的VS界面如下。注意红线部分已经变成了我们选择的路径,路径后面自带了我们的TFS空间名:
六:TFS视频
非公开部分,请联系 www.zuikc.com 获取;
七:最课程源码控制(淘宝Code)
鉴于上文说到的原因,微软提供的TFS我们已经不建议使用,那么,现在我们使用的是淘宝Code(http://code.taobao.org/)。也确实,现在国内的软件公司无论从技术上还是硬件上,都已经可以和国际顶尖公司抗衡,尤其在国内的环境下,甚至更好。
淘宝Code,使用的是 SVN 来进行源码控制。SVN是一款非常著名的版本控制软件,应用非常广泛,从市场占有率上来说,应该排在第一。使用SVN来进行源码控制,对于VisualStuio来说,还需要装两个软件,一个是:TortoiseSVN(http://tortoisesvn.net/),一个是:VisualSVN(https://www.visualsvn.com/),这里不再指定版本,我们可以到官网下载然后进行安装。
安装完毕后,我们还需要到http://code.taobao.org/去注册一个帐号,注册的过程非常简单,一切完毕后,登录淘宝Code,然后看到的界面类似于:
八:连接淘宝Code源码服务器
首先,我们需要在淘宝Code上面创建自己的项目,如下:
注意哦,最好不要选择公开项目,因为我们目前的编码能力还很弱,你只需要对最课程(www.zuikc.com)的老师可见就可以了,所以,公开项目这里我们选择了否。
创建完毕,界面大概是这样的:
这个时候,我们打开 VisualStuio,在 Tools-Option 中选择 Source Control,选择 VisualSVN 作为我们的源码控制器,如下:
现在,打开我们的解决方案(或者新建解决方案),在解决方案名上面点右键,选择 Add Solution To Subversion:
然后,下一步,选择:
下一步,输入自己的项目名,最好在后面加入 trunk:
下一步:
点击 Import ,稍候,我们的解决方案就注册到了淘宝Code上了。看到这个界面,就说明这一步成功了:
下一步,我们还需要把代码签入进去。在解决方案上,点右键,找到 Commit,点击:
出现这个界面:
然后,点击 OK,就签入成功了。注意,查看,此时解决方案中的黄点变成了绿点。
到TaobaoCode上去刷新下界面,看到了如下的界面:
好的,这就说明我们的代码签入成功了。
备注:TFS和SVN的签入和获取最新有不同,其对应关系为,
Check In -》 Commit
Get Latest Version -》 Update