项目管理实践教程二、源代码控制【Sourc.doc_第1页
项目管理实践教程二、源代码控制【Sourc.doc_第2页
项目管理实践教程二、源代码控制【Sourc.doc_第3页
项目管理实践教程二、源代码控制【Sourc.doc_第4页
项目管理实践教程二、源代码控制【Sourc.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目管理实践教程二、源代码控制【Source Control Using VisualSVN Server and TortoiseSVN】 在第一篇文章 项目管理实践教程一、工欲善其事,必先利其器【Basic Tools】发布后,根据大家的回复,我需要向大家说明几个问题:1.为什么要用VisualSVN Server,而不用Subversion?回答:因为如果直接使用Subversion,那么在Windows 系统上,要想让它随系统启动,就要封装SVN Server为windws service,还要通过修改配置文件来控制用户权限,另外如果要想以Web方式【http协议】访问,一般还要安装配置Apache,如果是新手,岂不 是很头痛?而VisualSVN Serve集成了Subversion和Apache,省去了以上所有的麻烦。安装的时候SVN Server已经封装为windws service,Apache服务器的配置也只是在图像界面上,指定认证方式、访问端口等简单操作;另外,用户权限的管理也是通过图像界面来配置。2.为什么不用TFS?回答:因为我们一开始就是用Subversion和TortioseSVN,所以就没有更换其他的软件。至于TFS至今没有用过,其实,我只是看了一些的文章而已,对它也不了解。3.VisualSVN Server是免费的吗?回答:是的,VisualSVN Server是免费的,而VisualSVN是收费的。VisualSVN是SVN的客户端,和Visual Studio集成在一起, VisualSvn Server是SVN的服务器端,包括Subversion、Apache和用户及权限管理,优点在上面已经说过了。 好了,言归正传,正式开始我们今天的教程。 一、VisualSVN Server的配置和使用方法【服务器端】安装好VisualSVN Server后,运行VisualSVN Server Manger,下面是启动界面: 好的,下面我来添加一个代码库【Repository】,如下图:按上图所示,创建新的代码库,在下图所示的文本框中输入代码库名称: 注意:上图中的CheckBox如果选中,则在代码库StartKit下面会创建trunk、branches、tags三个子目录;不选中,则只创建空的代码库StartKit。点击OK按钮,代码库就创建成功了。创建完代码库后,没有任何内容在里面。我会在这个教程的第二部分说明如何迁入源代码。下面,我们开始安全性设置,在左侧的Users上点击右键: 输入上面的信息,点击OK,我们就创建一个用户了。按照上面的过程,分别添加用户Developer1、tester1、manager1,好了,我们开始添加这些用户到我们刚才创建的项目里:点击上图中的Add.按钮,在下图中选择我们刚才添加的用户,点击OK按钮:说明:大家可能注意到了下图中的Groups,是的,你也可以先创建组,把用户添加到各个组中,然后对组进行授权,操作比较简单,在此略过。按照下图所示,分别对用户【或组】进行授权:点击确定按钮,上面的用户就具有了访问StartKit代码库的不同权限。因为用户starter在团队中是新来者,不希望他向代码库中提交新代码,所以他只能读取代 码库中的代码,不能提交代码。tester1是测试人员,不负责代码编写,所以也是只读权限。而Developer1和manager1是开发人员和项目 经理,自然具有读、写的权限。在实际的项目开发过程中,Developer和tester往往不可能只有一个人,这时候使用组来授权更加方便,这个大家可以自己练习一下。二、TotoiseSVN的基本使用方法在 项目管理实践教程一、工欲善其事,必先利其器【Basic Tools】中,我已经讲解了怎样安装TortoiseSVN。在上面的讲解中已经讲了怎么使用VisualSVN Server了,今天我要讲的是,TortoiseSVN的简单使用方法。 一、迁入源代码到SVN服务器 假如我们使用Visual Studio在文件夹StartKit中创建了一个项目,我们要把这个项目的源代码迁入到SVN Server上的代码库中里,首先右键点击StartKit文件夹,这时候的右键菜单如下图所示: 图2-2-1 点击Import,弹出下面的窗体,其中 是服务器名,svn是代码仓库的根目录,StartKit是我们在上个教程中添加的一个代码库: 说明:左下角的CheckBox,在第一次迁入源代码时没有用,但是,在以后你提交代码的时候是非常有用的。 图2-2-2 点击OK按钮,会弹出下面的窗体,要求输入凭据: 图2-2-3 在上面的窗体中输入用户名和密码,点击OK按钮: 图2-2-4 如上图所示,好了,源代码已经成功迁入SVN服务器了。这时候团队成员就可以迁出SVN服务器上的源代码到自己的机器了。 二、迁出源代码到本机 在本机创建文件夹StartKit,右键点击Checkout,弹出如下图的窗体: 图2-2-5 在上图中URL of Repository:下的文本框中输入svn server中的代码库的地址,其他默认,点击OK按钮,就开始迁出源代码了。 说明:上图中的Checkout Depth,有4个选项,分别是迁出全部、只迁出下一级子目录和文件、只迁出文件、只迁出空项目,默认的是第一项。上面的例子中,我们也可以使用web的方式访问代码库,在浏览器中输入/svn/StartKit/这时候也会弹出对话框,要求输入用户名和密码,通过验证后即可浏览代码库中的内容。搞定!源代码已经成功迁出到刚才新建的StartKit目录中。打开StartKit目录,可以看到如下图的文件夹结构: 图2-2-5 一旦你对文件或文件夹做了任何修改,那么文件或文件夹的显示图片机会发生变化。下图中我修改了其中的二个文件: 图2-2-7 大家看一下不同状态所对应的图片: 图2-2-8 我们已经知道怎么将源代码迁入到SVN服务器,怎么从服务器迁出代码到本机,也简单了解了不同状态所对应的图案啦。 三、提交修改过的文件到SVN服务器 上面的图2-2-7中,我修改了位于Model文件中的二个文件ImageInfo.cs和NewsInfo.cs,下面演示如何提交到SVN服务器。 注意:提交源代码到服务器时,一定确保本机的代码是最新版本,否则可能提交失败,或者造成版本冲突。 在Model文件夹上点击右键或在Model文件下的空白处点击右键,点击SVN Commit弹出下面的窗体: 图2-2-9 点击OK按钮后,弹出如下图的窗体: 图2-2-10 四、添加新文件到SVN服务器 我们在Model文件下添加一个新的类文件UserInfo.cs,在Model文件下的空白处点击右键,点击SVN Commit,和上面讲的提交修改过的文件到SVN服务器一样,就可以了。 另外也可以在文件UserInfo.cs上点击右键,点击TortoiseSVN=Add,弹出如下图的窗体: 图2-2-11 选中UserInfo.cs文件,点击OK按钮,这样并没有将这个文件提交到SVN服务器,只是将这个文件标记为源代码库库中的文件,并将其状态置为修改状态。之后,我们要再SVN Commit这个文件一次,才可以将其真正提交到SVN服务器上的代码库中。 上面讲是添加文件,实际上,添加文件夹的步骤也是一样的,这里就不说了。 五、更新本机代码与SVN服务器上最新的版本一致 这个也很简单,只要在需要更新的文件夹上点击右键或在该文件下的空白处点击右键,点击SVN Update,就可以了。 注意:更新操作可能会因为版本冲突而失败,这是可以使用合并【Merge】或其他方法解决;也可能因为锁定【Get Lock】而失败,这是需要先解锁【Release Lock】。 六、重命名文件或文件夹,并将修改提交到SVN服务器 只要在需要重命名的文件或文件夹上点击右键,点击TortiseSVN= Rename,在弹出的窗体中输入新名称,点击OK按钮,就可以了。此方法也不是直接重命名,而是将该文件或文件夹的名称标记为重命名后名称, 也需要我们使用SVN Commit提交到SVN服务器后才真正重命名。 七、删除文件或文件夹,并将修改提交到SVN服务器 最简单就是,你直接删除文件或文件夹,然后使用SVN Commit提交更新到SVN服务器。另外一种方法是在你要删除的文件或文件夹上点击右键=TortoiseSVN= Delete删除,此方法也不是直接删除,而是将该文件或文件夹的状态置为删除,也需要我们使用SVN Commit提交到SVN服务器后才真正删除。 说明:实际上,从你把源代码迁入SVN服务器开始,每一个版本的数据和文件,就算是你已经删除了的,也都可以随时迁出。以上只是TortoiseSVN最简单的几个功能,其实他的功能远不止这些,其他的功能大家可以在使用的过程中慢慢体会,有些功能我会在下面的教程中使用到,到时候会和大家讲清楚用法。 注意:向SVN服务器提交源代码的时候,一定不要提交bin、obj等文件夹,否则会很麻烦。但是web项目的bin目录除外,但是web项目的bin目录中的引用其他项目而生成的dll不需要提交。一个好习惯:如果项目中引用了其他的第三方的程序集,比如 EnterpriseLibrary、FCKEditor等,这时候不要简单从他们的安装位置引用,而是在你的解决方案下,添加一个Library的目 录,把需要的程序集复制到这里,然后从Library目录引用,这样有什么好处,自己想一想吧!如果大家有什么问题,尽管跟帖提问,我一定及时回答。好了,今天就先写到这里吧,本来说这部分准备写一篇Blog,可是现在写了这么长,还只是说了一点很基本的东西而已,呵呵如果你对我讲解的这些内容不熟悉,建议你从头开始看这个系列的教程:项目管理实践系列教程。作者:ttzhang(Technology Life-张涛的技术博客)出处:/本文版权由作者全部保留,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 Tag标签: VisualSVN Server,TortoiseSVN,Subversionposted on 2008-11-06 00:53 上不了岸的鱼ttzhang 阅读(3769) 评论(54) 编辑 收藏 网摘 所属分类: Project Management 评论#1楼回复引用查看 鹰击长空 | 2008-11-04 08:18 继续关注#2楼回复引用查看 Ivan-Yan | 2008-11-04 08:24 是不是说安装了VisualSVN Server 就不用安装Apache了?#3楼回复引用查看 Astar | 2008-11-04 08:24 学习了#4楼回复引用查看 G yc Son of VB.NET | 2008-11-04 09:54 -引用- Ivan-Yan: 是不是说安装了 就不用安装Apache了? - 不是的,除了官方的原版以外, 其他的修改版,一般都集成 Apache 修改版(增加了显示插件), VisualSVN Server也是集成相应的插件。 如果没有集成的话, 就无法通过HTTP访问#5楼回复引用 Ariex 未注册用户 | 2008-11-04 10:03 server原来是免费的啊#6楼楼主回复引用查看 上不了岸的鱼ttzhang | 2008-11-04 10:14 鹰击长空 谢谢关注!#7楼楼主回复引用查看 上不了岸的鱼ttzhang | 2008-11-04 10:14 Ivan-Yan 是的,集成Apache,而且没有复杂配置。#8楼楼主回复引用查看 上不了岸的鱼ttzhang | 2008-11-04 10:14 Astar 谢谢关注!#9楼楼主回复引用查看 上不了岸的鱼ttzhang | 2008-11-04 10:16 -引用- G yc Son of VB.NET: -引用- Ivan-Yan: 是不是说安装了 就不用安装Apache了? - 不是的,除了官方的原版以外, 其他的修改版,一般都集成 Apache 修改版(增加了显示插件), VisualSVN Server也是集成相应的插件。 如果没有集成的话, 就无法通过HTTP访问 - 不用安装,已经集成了Apache和Subversion,而且图图形化界面操作。#10楼楼主回复引用查看 上不了岸的鱼ttzhang | 2008-11-04 10:16 Ariex 感谢您的关注!#11楼回复引用查看 张岚 | 2008-11-04 11:27 和vss操作差不多,只不过有些差别而已#12楼楼主回复引用查看 上不了岸的鱼ttzhang | 2008-11-04 11:31 张岚 是的,其实很多Version Control软件都很类似,谢谢您的关注!#13楼回复引用 -阿培 未注册用户 | 2008-11-04 12:02 我在你的blog里下了这个visualsvn,怎么没找到新建users这个的菜单呢?请指教#14楼回复引用 -阿培 未注册用户 | 2008-11-04 12:05 难道一定是要装在server的机器上面吗?我是用自己的xp作为服务器又作为客户端的。#15楼楼主回复引用查看 上不了岸的鱼ttzhang | 2008-11-04 12:07 -阿培 呵呵. 我用到的VisualSVN Server,它才有users,不是VisualSVN,这个是客户端的,直接可以和Visual Studio集成在一起。#16楼楼主回复引用查看 上不了岸的鱼ttzhang | 2008-11-04 12:11 -阿培 这样的当然可以啊#17楼回复引用 -阿培 未注册用户 | 2008-11-04 12:13 我用的VisualSVN Server啊,而且是1.61版本的啊,可是就是没有找到user 啊?#18楼回复引用 -阿培 未注册用户 | 2008-11-04 13:48 我找到了,呵呵,期待你的下一篇吧!#19楼回复引用查看 周银辉 | 2008-11-04 15:05 SVN很不错哈,不过对于较复杂的SCM活动,其功能还是相对较弱#20楼楼主回复引用查看 上不了岸的鱼ttzhang | 2008-11-04 15:16 -阿培 谢谢关注!#21楼楼主回复引用查看 上不了岸的鱼ttzhang | 2008-11-04 15:18 周银辉 SVN更新比也较快,很多新的功能正在增加,一般的开发过程够用了#22楼回复引用查看 油纸伞 | 2008-11-05 09:44 VisualSVN Server有最大访问连接数的限制吗?我们用的VSS安装在XP系统上了,当10多个人一起连,就出现超过最大XP的连接数问题,VisualSVN Server能解决这个问题吗?#23楼楼主回复引用查看 上不了岸的鱼ttzhang | 2008-11-05 12:51 油纸伞 这个是XP系统的限制,http连接默认同时只能有十个,可以使用迅雷、pplive等软件破解。#24楼回复引用 小灰1 未注册用户 | 2008-11-06 07:55 这里有个免费的SVN服务器,大家可以测试下看看: svn://test用户名:svnhost密码:svnhost#25楼回复引用查看 masterfy | 2008-11-06 09:05 我觉得还是TFS用得比较习惯#26楼回复引用 sail 未注册用户 | 2008-11-06 09:37 svn 刚开始 还是听做c+ 的朋友说起的 我们是vss#27楼回复引用查看 恋恋风尘 | 2008-11-06 10:05 关注,建议楼主加快写blog的速度#28楼回复引用 Ariex 未注册用户 | 2008-11-06 10:32 嗯,关注,偶是懒虫,喜欢看图文并茂的东东 svn在apache下表现很好,在IIS下似乎就少了一些什么东西(html管理界面?忘记了) 其实IIS下svn配置也不是很麻烦,可能是因为我没涉及到权限的东西吧汗一个以前在flex里连接到本地的svn还是很爽的,唯一遗憾的是eclipse太慢了flex启动后内存占用有赶超wow之势#29楼楼主回复引用查看 上不了岸的鱼ttzhang | 2008-11-06 10:39 小灰1 免费的svn服务器很多哦,比如googleCode、sourceforge、codeplex等等#30楼楼主回复引用查看 上不了岸的鱼ttzhang | 2008-11-06 10:40 jannock sail 谢谢关注!#31楼楼主回复引用查看 上不了岸的鱼ttzhang | 2008-11-06 10:41 masterfy 个人习惯而已,因为我们在开发中一直使用SVN,所以对这个比较熟悉,TFS我们也没有使用过,呵呵.#32楼回复引用 -阿培 未注册用户 | 2008-11-06 10:42 我刚才作了测试,我有个疑问就是,这个我每作一次更改后的版本的话,那这个svn里只有一个最新的版本对吗它不是以一个一个文件夹保存的吗?如果我发现新上传的版本里的东西不是很好,我想找到以前的版本,请问这个时候该作如何处理?谢谢#33楼楼主回复引用查看 上不了岸的鱼ttzhang | 2008-11-06 10:45 恋恋风尘 谢谢关注! 是啊,确实写得有点慢,因为最近有一个项目在做,所以只能晚上10点以后写Blog,实在抱歉!#34楼楼主回复引用查看 上不了岸的鱼ttzhang | 2008-11-06 10:47 Ariex 谢谢您的关注!在IIS下我倒是没有配置过,嘿嘿.#35楼楼主回复引用查看 上不了岸的鱼ttzhang | 2008-11-06 10:58 -引用- -阿培: 我刚才作了测试,我有个疑问就是,这个我每作一次更改后的版本的话,那这个svn里只有一个最新的版本对吗它不是以一个一个文件夹保存的吗?如果我发现新上传的版本里的东西不是很好,我想找到以前的版本,请问这个时候该作如何处理?谢谢 - 不是只有一个最新版本的,它会记录你提交的所有版本的信息和数据。比如你上传之后的版本是1011,但是你发现在这个版本有问题,你想迁回到 1010版本,这时候,你可以在项目文件夹下右键点击空白处,点击TortoiseSVN=Revert.,只时候会弹出一个窗体, 你只需要选择需要恢复的文件,点击OK即可。或者项目文件夹下右键点击空白处TortoiseSVN=Show Log,这时候会弹出一个窗体,你只需要在想要迁回的版本的日志记录上右键点击=Revert to this version即可。其实还有其他方法,您可以在使用过程中慢慢体会。#36楼回复引用查看 陈锋 | 2008-11-06 15:37 跟.net继承的客户端做得还不错。 服务器端还是直接用subversion的好,要想把svn管理好,服务器端的手工配置方法和命令行不掌握是不行的,而且很多单位要求svn服务 器的操作系统用linux。而且最新的subversion安装包已经自带apache和windows service配置工具了,非常方便。 另外,借你的宝地推销一下我写的svn的文章,多谢了。#37楼回复引用查看 战刀 | 2008-11-06 15:38 不错啊,继续关注,楼主看似很忙啊,注意身体哦#38楼楼主回复引用查看 上不了岸的鱼ttzhang | 2008-11-06 16:20 陈锋 谢谢关注,希望以后可以和您多多交流!#39楼楼主回复引用查看 上不了岸的鱼ttzhang | 2008-11-06 16:21 战刀 谢谢兄弟关心,一起努力,马上毕业了,争取找个好点的工作!#40楼回复引用查看 5207 | 2008-11-06 20:03 现在我们也在用svn,感觉还不错。#41楼楼主回复引用查看 上不了岸的鱼ttzhang | 2008-11-06 20:04 5207 谢谢您的关注!#42楼回复引用查看 Jonny Yu | 2008-11-07 00:00 没用过svn,但是用过Perforce, 觉得perforce里面每次提交改动的时所有更新的文件都会属于一个changelist, 这样可以根据changelist来回滚,不知道svn是不是也有类似的一次提交文件的集合的概念?#43楼回复引用查看 560889223 | 2008-11-07 10:40 问个问题: 在提交前一般都会把本地的WorkingCopy更新为服务器上的Head Revision,但是这个操作是使用“svn update”完成吗?使用了svn update后会不会覆盖之前对本地WorkingCopy所作的修改?#44楼楼主回复引用查看 上不了岸的鱼ttzhang | 2008-11-07 11:04 Jonny Yu 没有用过perforce,不过从你的描述来看,SVN的原理要比它更好。SVN每次提交不是把更新的文件放到一个changelist,而是所有的文件。SVN的版本库从开始到最后,类似一个树结构,每个版本就是一个分支。#45楼楼主回复引用查看 上不了岸的鱼ttzhang | 2008-11-07 11:09 560889223 这个你不用担心,不会发生这样的情况,如果本地作了修改,SVN Update的时候是先从服务器Copy最新的版本,然后和本地文件合并。除非你上次Update某个文件后,别人再次提交了这个文件,而你现在也修改了 这个文件中的相同部分,这时候Update会发生冲突,这时候,你需要编辑后在提交。而在团队开发中,因为每个人有不同的分工,所以这种情况很少发生。#46楼回复引用查看 560889223 | 2008-11-07 11:11 上不了岸的鱼ttzhang Thanks。我刚刚在本地简单地测试了一下,确实如此。#47楼楼主回复引用查看 上不了岸的鱼ttzhang | 2008-11-07 11:14 560889223 不客气,以后多多交流!#48楼回复引用 上不了鱼的岸 未注册用户 | 2008-11-07 19:56 请教下为何用了visualSvn Server,切出项目之后东西都是只读的?以前用SVN的时候好像不是这样的#49楼楼主回复引用查看 上不了岸的鱼ttzhang | 2008-11-07 20:20 上不了鱼的岸 我没有遇到过这种情况,你可以检查下,你用的用户是否只有ReadOnly权限。啊? #50楼回复引用 上不了鱼的岸 未注册用户 | 2008-

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论