版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计划列表及各项具体操作先概括说一下,SVN是团队开发的工具,主要是多人开发时用的能够同时开发一个项目,也叫乌龟。BC是一个代码整合工具,主要是把一些版本代码或不同代码整合在一起。SR是一个搜索工具,一个特点是能够进行全目录的文档内容搜索,并且还能够进行二进制的搜索。在开发过程中查找函数搜索函数时会用到。VA是一个提示工具,就好比在我们写代码时,写前几个字母,它就自动把代码补全,或自动加括号等。这四个工具就是我们最常用的辅助开发工具。下面介绍一下SVN下面列举了提纲。分别是服务器的安装,绿色使用设置,客户端安装、汉化、连接服务器方法,用户添加、权限设置,客户端更新和修改显示,客户端版本冲突解决演
2、示,客户端追溯和还原演示,AnkhSVN介绍,SVN使用规则。首先是服务器的安装,目前可下载的最新版本svn-.zip,将其解压缩后显示一下目录。Svn是开源的,不仅可以下载其程序,还可以查看其源代码,可以根据自己情况进行修改。该版本是一绿色版的,这是服务器端,首先应当服务器端打开,但不可能每次都是我们手动打开。所以我们将其注册成windows系统服务。注册成windows系统服务这个命令已写好放在该文件里面,点一下就可以运行,将svn注册到服务里边,注册地址是,如果地址变了,把地址改变一下,然后displayname即为显示的名称,可以在计算机服务里查看。将其设置为自动,这样该服务以后可以自
3、己启动。注意的是,我们在服务器端装这一个,但在客户端不需要装这个。如果不想用的话可以删除它,删除命令也已写好放在此。运行下就可以删除了。我们在用之前首先要建立自己的版本库,它原来就是这几个目录,我们需要建立自己的版本库。这几个目录只是它的程序部分,建立版本库就是在服务器建一个放程序的库,这个命令也已写好加在这里。命令的意思是在这个目录下建立一个叫做project的版本库,其中版本库的名字可以改,改成123的都可以,前半部分是其主程序,调用svnadmin这个程序创建的,下面运行一下可以看到已经自动建立了该库,如图所示:这是在服务器端建立库,现在讲的时候是服务器和客户端在一个机子上,实际用的时候
4、服务器端和客户端是分开的。Project库里面默认有以下几个目录:然后conf里面,打开svnserve.conf文件,一定要将#password-db = password改为password-db = password ,也就是将#号和空格去掉,这样就可以用密码来访问,如果不改这一行的话在客户端就登陆不上去,修改后保存。然后在password文件里加用户名和根密码,如加tml=123.,这样就可以在客户端登录了。综上,大家需要改的就是这两个文件。然后,在db文件夹的rev目录里查看,现在看里面是空的,当我们将文件传上去时,里面将显示,可以反复存。下面将服务端开一下,先注册一下服务。如下:命
5、令文件不可以换行,一换行就注册失败了。也可在命令行cmd下执行。如下:执行成功。主要命令不能换行,要一行拷过去。刷新一下服务,即可看到相应的我的SVN服务。如果不满意的话,可以在命令文件里修改相应的参数如路径,版本库等。命令行的意思是每次开机时自动运行该服务。这是服务器怎样安装。然后是绿色使用,绿色使用刚才已经说了,就是使用以下这几个命令。这样可以完全手工来安装,它不会影响你的注册表,也不会产生垃圾文件。然后我们不用时也可以直接将其卸载掉。并且像名字什么的,我们可以自行修改,使其一开服务器就自动运行,这就是绿色安装。这样它的安装目录,创建版本库的名称,后台服务的名称,都是我们自己可以控制的。然
6、后看一下客户端怎么装,客户端放在服务器的开发工具文件夹里,这里下载了很多版本,大体分两类,一类是win32 的,在32位机上,是装在我们开发人员的客户端上的,如果你的cpu支持64位的,可以装64位的,例如win7是64位,可以装和这个版本。如果装win2000的话,需要先装一个补丁,这些都已经准备好了。我们现在装的是这一个。安装,一路next即可,这个也可以绿色安装,为了节省时间,在这里直接安装。装完以后一般都需要重启,不重启的话,一般不能自动换图标,重启之后就成为一个服务了,即实现与操作系统的绑定。然后再汉化一下,使用配套工具,同样点击汉化包一路next即可。装完之后,我们右键即可看到它,
7、如下图所示:如果不装的话是看不到的,然后点解设置将其设置为中文,如果不装汉化包的话这个地方是不能设置的,设置之后显示中文如下图所示:下面是怎么连接服务器,首先连接本机,版本浏览器,如下图版本浏览器是一个比较公共的,显示如下:输入地址,由于是本机,输入下面地址即可:如果是服务器的话,要输入服务器的IP,前面的SVN:表示的是它的协议的名字,点击确定,显示如下界面,表明已连接成功。因为刚才建立的版本库是空的,所以现在显示的也是空的。如果连接失败,则如下图所示:由提示知服务器端没有开,导致你连接不成功。然后我们将服务端开启,做一个项目,传里面去。注意现在虽然在同一台机子上,但是我们的操作是在客户点进
8、行的。首先在E盘建立一个目录MyTest,然后用C+建一个项目,打开microsoft新建一个项目,如下图所示:要建在刚才那个目录下:确定文件名为test,便于演示,随便建一基于对话框的应用程序:这样是最简单的,自动生成两个类,CtestApp和CtestDig,如图:创建完调整好后如下所示,运行一下,生成下图所示一个空对话框。然后回去查看我们的test项目文件,内容如下图所示:里面既有cpp代码,还有项目生成的程序(即Debug里面的内容)。下面我们就将这个项目添加到乌龟里面去,选中文件,右键单击,选择导入,导入到服务器端,如下图:也可以在版本库URL中加子路径,不加也可以,它会自动添加,也
9、可添加导入信息,如新建项目。点击确定,显示认证界面,用户名和密码为我们刚才设定的。已经加上去,显示导入过程如下:此时,MyTest里面以及存在我们刚才导入的文件,由于我们刚才没有重启,因而没有改变图标,实际重启之后文件石灰改变图标的。这是客户端,下面看一下服务器端,它就会在projectdbrevs里面建立相应的文件。如下图所示:它给我们建成一个文件,光着一个文件就有这么大。所以说我们传上去的文件并不是原封不动,原样保存的,它可能会把这些代码放在一个文件里面,然后可能会加密,也可能会压缩,我们传上去的可能是几百个文件,它可能就只有一个文件,1文件就是我们刚传上去的文件,文件名也是他自己控制的,
10、也就是说在服务器端你其实是看不到它原来的代码的,他都在库里面,它自己建了一个小数据库。然后我们再在客户端看就可以看到了,我们再在客户端浏览,就可看到如下内容: 其中,根目录下是源代码,子目录里面是生成文件。可以看到,后面有大小,日期,作者等详细信息,其中版本是1 ,我们每更改一次,版本加1.,一般在更改频率非常多的时候,版本会到上万或上千万,并且版本是累加的,比如我修改第一个文件修改了三次,当我再修改第二个文件时,第二个文件的版本就变成4了,并不是每个文件单独算的。下面我们重启一下,看一下文件图标和菜单图标全部改变之后的效果。下面是用户添加,即在服务器端添加用户,建版本库在哪个地方就在哪个地方
11、添加,即在svnprojectconfpasswod里面,添加用户名和密码,如下所示:这样每个开发人员可以给他制定一个用户,这样开发人员将文件传上去后可以自动给他们区分开。下面是客户端更新与修改的演示。为便于讲解,现在模仿一下开发再加一个用户,在password文件里添加新用户test=123,如下图所示:这样即建立两个用户。然后在E盘MyTest文件下查看项目文件,如果文件前图标显示绿色的话,就可以提交,也有版本的说明,如下图: 可以查看图标集了解文件的情况,如绿色对号就代表常规,红色叹号表明已经被修改过了,黄色叹号的话表示有冲突,可能是两个人同时在修改,发生冲突,还有只读,已删除(更新后就
12、没有了,即不再显示),锁定,增加,忽略,无版本控制等,如下图:其中无版本控制即我们新建的一个文件,还不确定是不是往里面加,如:还有,从常规到无版本控制是针对文件夹的,后面是针对文件的,如.cpp文件的,并且是有循环的,可以看到他可以控制很多文件,基本上每个文件都有九种图标,也可换成不同风格的图标,一般点目录,点提交,它就会将修改的问价都列出来,如下图:可以看到有两个文件修改了,其中.ncb文件是vc文件的数据库文件,你即使不修改的话你只要打开,它也会改,其实上面两个是我们可以忽略掉的。现在我们来改一个文件,可以使用VC改也可以使用记事本改,在这里使用记事本改,修改之后文件如图显示表示我们把文件
13、修改了但还没有上传到服务器上,可以选中它右键单击单独提交它,然后再提交面板的信息里说明修改原因,这样便于项目经理或向项目组长对修改的情况一目了然,另外,他还可以导出一个文档,关于项目组的每个人的项目进程,这是一个很好的习惯。点击确定后文件就会被提交上去,可以看到版本信息变为2,如下图所示:此时打开乌龟的浏览器可以看到版本号已经变成2了后面尤其修改的时间,我们也可以右键单击选择查看其修改的日志,如下图所示:同样可以查看其版本分支:追溯版本,可以查看其版本1时的详细情况,红色部分为修改部分。此外也可以改名,删除,显示其属性,更新版本等,其中属性既可以导入文件也可以新建一个值,然后再刷新一下,显示更
14、新,一般整个目录来更新,当所有的文件显示绿色时表明所有的版本跟服务器是一样的。现在我们演示一下两个人怎么办。将MyTest文件复制粘贴,分别将其标为机器1和机器2,将其视为是两个人的,然后再机器1和机器2上修改同一个文件ReadMe这个文件。然后,目录显示如图,表明我已经将文件更新了,但我没有向服务器提交,接下来将其提交可以看到版本已经是4了,因为版本是累加的,然后查看一下机器2,对比一下,可以看到但我们在机器2上更新一下后,可以看到,机器2版本生变化。然后此时查看机器2 的ReadMe文件可以看到刚才在机器1上的更细操作在机器2的ReadMe文件中也显示出来了,由此可以看出,我们在一个机器上
15、修改文件,在其他机器上点击更新后也全部更新。我们演示虽然是在同一台机子上,但你可以不把它理解成是在不同的机器上,两者的效果其实是一样的。也就是说我们在机器1 上修改后选择SVN提交,它就会将内容提交到服务器上,然后我们在机器2上点SVN更新之后,机器2就在服务器上往下更新。这就是基本的提交跟更新。下面是冲突演示。比如我们在机器1上的ReadMe文件进行“我在机器1进行修改1”操作,而在机器2 的ReadMe文件里进行“我在机器2上修改2”操作,现在这两个机子已经不一样了,但他们彼此都不知道怎么回事。假设先提交机器1 ,会显示提交成功,然后再提交机器2就好发生冲突了,如图所示:提示文件已经被别人
16、修改过了,然后我们对机器2 检查修改它就会报出相应的错误,双击之后就可以查看是怎么回事,在服务器端是左边版本,在客户端是右边版本。这样便于我们对比一下到底是怎么回事,拖动滚动条可以看到修改的不同的地方。此外,我们可以将出错的文件删掉,也可以将其与上一个版本比较差异,以及还原到上一个版本等,如下图:点击确定后,会显示还原成功,如下图所示:,继续查看可知,现在文件有成为最新的了。,也就是说你既可以删掉重新下载,也可以整合,也可以还原。下面讲解一下如何进行枷锁,加锁功能不是很常用,操作如下:先获取锁定,说明锁定原因。显示锁定完成。这样我在文件里面修改的话,其他人是不能再改的,文件修改之后要提交上去,
17、目录页提交上去,目录可以自己进行提交,假如此时再在机器2上对同一文件进行修改,更新,提交上传,会报错。错误如下图所示:这样文件夹的图标以及文件的图标都会发生变化,并且同时会自动生成几个冲突文件供你来参考,点击文件查看可知,mine文件与服务器版本文件的差别:我们称这样的文件为多版本整合的文件,并且这个文件肯定是编译不通过的,因为他无端的给你加了几行代码。下面一个文件是原始文件的备份,这个文件是机器2 跟机器1共同的原始文件,因为现在出现了两个分支了,我修改一个版本,他修改一个版本,而这个是原始的版本,这一个是机器1的版本,我现在是机器2。总之,这四个文件,第一个文件是我的文件与对方文件的一个整
18、合文件,第二个文件表示我的文件一个原始文件,跟我上网原文件一样,第三个文件是我的文件与原文件一个公共的分支,第四个文件是对方最新的版本,这样我们就可以解决冲突,也就是看到对方最新版本时可以追溯或查看版本,也可以编辑冲突,这三个就是我们刚才的文件,源文件在这里显示已经合并的,此外还有远程文件和本机文件,这样三个文件就都看到了,这样我们看到我们的文件比较旧,就可以直接用服务器的最新文件来代替,将原来的文件删掉,直接保留r6那个版本就可以,将文件改为.txt文件。这样在另外一台机器上对它进行修改时就会提示已经加锁,解决方法也很简单,就是解锁,如图:只要是有权限的话,就可以解锁。以上演示的就是冲突修改
19、和版本解决办法,追溯和还原刚才也已经说到了,哪个版本如果有问题的话我就可以直接输入版本号追溯到最新版本。假设我们现在加了一个新的开发人员,我们在加一个新的目录,机器3,然后选中直接右击检出即可,这样就创建一个新的客户端,显示以下检出目录:一会显示导入成功,这样只要装上乌龟文件,机器3中就会有所有的文件,如图:。一般我们就是由管理员将代码传到服务器端,然后再客户端装乌龟,然后右击检出,输入管理员给你设定的密码账户就可以检出了,这样就可以继续开发,开发完之后就可以再上传,所以不需要每台机子都给它装开发环境也就是这个系统,你只需将服务器端配置好,能联网,就可以将服务器端得代码下载本地客户端一份,现在
20、机器1机器2机器3机器4这四个人就可以同时来开发同一个项目,而且不会发生冲突,即使发生冲突,它也会先解决冲突,查看哪个版本是最新的,然后选择使用哪个版本。最后还要讲一个原则,就是SVN使用原则,也就是说如果按照我们这个原则去办事的话,他不可能产生冲突,其实我们刚才所说的更新、修改、冲突、锁定等它们都是可以避免的。也就是开发团队里面遵守一个规范的话,是不会产生冲突的。然后再看AnkhSVN,这个是一个嵌入式的,它也是另外一种客户端,即乌龟有不同的客户端,比如有java的,有eclipse的,还有C+的。AnkhSVN是一个嵌入到操作系统里面的,我们一开始介绍的那几个安装文件是嵌入到操作系统里面的
21、,他可以改变图标,好处就是跟操作系统是集成的,我不需要打开开发工具就可以看到版本的变化,还有个好处就是它可以管理不同的文件,不光是你的源代码可以管理,我随便建立的文档它也可以管理。比如我们现在建一word文档,将其加到机器1中,然后提交,文件默认的是无版本的,我们再将其选中点击确定后,它就会显示相应的版本。然后在机器2 上,它默认是没有的,我们右键点击SVN更新,刚才建立的word文档就会被下载下来。也就是说它的另一个好处可以控制像word,excel等文档,但它也有一个最大的坏处就是,这样会使整个系统变慢,因为它是基于操作系统的,它一开机就会常驻内存,你右击时它会自动去进行关联,并且你的代码
22、一更改,它会自动到服务器上去进行核实,所以他跟服务器端就有一个定时的刷新,如果你项目特别大时,它就会很卡,可能你右击时相关的菜单选项都显示不出来,这样是它最大的一个坏处,你只要装上之后就会发现机器做什么都会很卡。为了解决这个问题,我们可以选择安装这个嵌入式的AnkhSVN,AnkhSVN会嵌入到开发工具里面,跟操作系统没关系,这样你操作系统开机时它不会常驻内存,也不会跟服务器端实时通讯,它有很多版本,我们现在看一下嵌入到里面的版本,下面显示的是的一个开发环境界面:可以看到,它默认是没有版本控制的,虽然有个预留的,但是不能用,是微软的产品,存在很多。默认的文件名如下所示:下面我们来给它装一个嵌入
23、到它里面的乌龟,通过这个乌龟来进行版本控制。这个也已经找好最新版本,也是在开发工具文件夹里,这个是嵌入到里面的,感兴趣的可以找一下嵌入到的,装完之后开启就会看到有一个提示是否允许嵌入到嵌入式的乌龟在工作,点是之后就会看到文件的图标都会变了。如下图所示:实际这些图标跟我们在操作系统里面看到的意义是相同的,绿色对号就表示文件是正常的,如果我修改了就表示文件就不正常了,在左边增加一行,就会看到在右边解决方案资源管理器里面的文件图标变为红色,然后选中文件右击直接提交即可,如图:在提交的面板里修改跟刚刚在乌龟里面修改效果是一样的,全部修改完后,点击提交,要求填写用户名和密码。如下:点击之后就提交成功了,
24、这样全部的文件就显示绿色对号了,如下:这样我们在客户端也会看到,这样两段是同步的,在机器上右击点版本浏览器,就可以看到版本已经升级为,如图:或者点击检查更新,也会看到相应的更改信息。此时可以对机器进行更新,因为刚在的文件是我们在机器里面使用修改的,然后在机器里面更新即使用客户端来下载,相互之间完全是兼容的。此外也可以右键点击选择查看它的日志,可以看到日志也是兼容的,即我在里面刚刚添加的一行注释,我在下的客户端也可查看。我们要求每个开发人员每次提交时都要写注释,这样表明提交是干什么用的,不至于乱提交产生冲突。接下来我们接着将刚才所说的使用原则,当然这个原则也不是说就是完全可以通用的,它只是一种为了防止错误发生的一种规则,就好比在我们中国开车靠右行驶而在英国是靠左行驶一样,规则因每个开发团队而异,我们要讲解的规则如下:每次开机时,点击更新,然后每次关机时也就是你不做时点提交。(这个规则看似非常简单,其实是非常重要的,这样保证每天开始时文件是最新的,保证本机跟服务器是同步的,只要做到这一点,就很少发生版本冲突了)我每次更新时,如果发生冲突,一定要立刻解决或者是使用对比工具来对比,不要发生冲突就跳过去,与此对应的是,每次提交时如果发生冲突也应该立刻解决,与冲突开发人员进行沟通,不要强行覆盖,自大是团队开发的大忌。不能在一个机
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年吉林省洮南市高二历史下册期末考试试卷含答案(预热题)
- 2026年纪念长征胜利90周年综合模拟测试卷(二)(含答案解析)
- 初中八年级物理《二力平衡与滑动摩擦因素》教学设计
- 刨花板铺装工班组管理能力考核试卷含答案
- 初中七年级英语上册Unit 1 This is me Grammar一般现在时教学设计
- 拖拉机冲剪压加工生产线操作调整工安全实践水平考核试卷含答案
- 飞机燃油动力系统安装调试工岗前岗位安全责任制考核试卷含答案
- 七年级语文《狼》思辨读写一体化教学设计
- 高中英语必修三 Unit 2 Morals and Virtues 单元综合提升教学设计
- 2026年中考生物一轮复习教学设计:初中八年级生物的生殖与发育专题突破
- 2026年软考网络工程师完整试题及答案
- 雨课堂学堂在线学堂云《新时代中国特色社会主义理论与实践(东北农业大学)》单元测试考核答案
- 学校各功能室管理制度汇编
- 2026高考英语【全国二卷】试卷及参考答案(含听力音频、听力原文)
- 2026年上海松江国有资产投资经营管理集团有限公司招聘笔试参考题库附带答案详解
- 【《某变电站(220kV110kV10kV)短路电流的计算过程案例》3000字】
- 初中英语《定语从句》高频考点练习题及答案(100题)
- 贝贝南瓜栽培技术
- 农业技术交流会
- 处方权授权课件
- 医疗洁净板墙面施工方案
评论
0/150
提交评论