??xml version="1.0" encoding="utf-8" standalone="yes"?>
该文档将逐步教?zhn)如何在Y件开发过E中使用svn客户?br />
环境模拟
现有目名称Qtest
服务端版本库Qtest
URLQhttp://10.155.11.10:81/svn
开发h员:(x)devAQdevB
版本库目录结构:(x)
一Q基本操?br />
W一步:(x)安装客户?br />
到共享文件夹下,下蝲TortoiseSVN-1.4.0.7501-win32-svn-1.4.0.msi安装E序Q双ȝ接安装即可。安装成功后Q右键单击鼠标会(x)多出两个选项Q分别是SVN checkout和Tortoise SVN?br />
W二步:(x)建立工作?br />
目开始之前,在本地PC的硬盘(sh)Q创Z个文件夹Q文件夹命名随意Q例如workspace
Q,该文件夹即作Y件开发者在目开发过E中的工作区?br />
W三步:(x)下蝲版本?br />
假如现在开发一个项目,配置理员(sh)(x)在服务端建立一个该目的版本库test
在workspace文g夹上Q右键单击鼠标。选择SVN checkoutQ会(x)出现如下H口
在URL of repository中输入版本库地址Qhttp://10.155.11.10:81/svn/test Q在Checkout dir中系l会(x)自动dW二步所创徏的工作区目录?br />
在Revision中,选中HEAD revisionQ这样将?x)下载到版本库的最新版本。如果想下蝲库中的旧版本文gQ可选中RevisionQ然后填入版本号卛_?br />
如果不想下蝲整个版本库,而是只想下蝲自己负责的那部分模块Q可以在URL后添加模块名Q例如http://10.155.11.10:81/svn/test/Doc ?br />
单击OKQ输入用户名和密?br />
W四步:(x)修改版本?br />
对版本库的修改包括修Ҏ(gu)件内容,d删除文gQ添加删除目录?br />
l过W三步的操作Q本地的工作区文件夹Q即workspace上会(x)有绿色对勑և玎ͼ工作Z的文件也?x)带有绿色对勾,如?
如果对库中某一个文件进行了(jin)修改Q系l会(x)自动个文件和q个文g所在的各父文件夹加上U色叹号Q代表该文g或目录已l在本地被修改,如图3
?
当所有对版本库的修改操作完毕后,右键单击工作区文件夹Q选择commit提交新版本,输入密码后系l将把修改后的版本库上传到服务端Q即完成一ơ对版本库的更新?br />
注意Q?br />
新版本提交之后,其他拥有写权限的用户也许?x)重复以上几步的操作Q完成对版本库的再一ơ更新。所以,每次在工作区文g夹下修改本地版本库之前,必须首先Ҏ(gu)地版本库执行一ơ更斎ͼ右键单击工作区,选择SVN UpdataQ,最新的版本下蝲到本圎ͼ然后再进行修Ҏ(gu)作?br />
二.其他操作
在日常的软g开发过E中Q除?jin)以上介l的下蝲Q提交,更新操作外,q有另外几种常用操作?br />
Q?Q比较文件的不同之处
当对soc_1做了(jin)修改之后Qsoc_1文g?x)出现红色叹P表示已经修改Q如果想查看修改后的soc_1文g与修改前有何不同Q可以右键单?yn)L文gQ选择diffQ系l探Z个窗口,如图3Q窗口分Z个部分,左边为更改之前的版本Q右边ؓ(f)更改之后的版本。ƈ在不同之处作出标记和说明。如?
如果是word文档的话Q选择diff之后Q系l会(x)打开一个word文档Qƈ在其中标Z改后的版本与修改前有何不同。如?.1
Q?Q查看日?br /> 如果x(chng)看一个文件的日志Q例如soc_1Q右键单击这个文Ӟ选择show logQ系l会(x)t出一个窗口,q在H口中显Csoc_1各个版本的log。如?
?
Q?Q查看版本树(wi)
如果x(chng)看soc_1文g的版本树(wi)Q右键单击该文gQ选择Revision graphQ系l将?x)打开一个窗口,q在H口中显C文g的版本树(wi)。如??/p>
之所以只昄?.5.6.7四个版本Q是因ؓ(f)选择?jin)只昄发生q变化的版本。即1.4.5.6.7每一个版本都有不同的地方Q都是经q用户修改后提交的。?.3两个版本是与版本1相同的?br />
Q?Q下载某个文件的旧版?br />
如果惌得到某个文g的旧版本Q只需在该文g上单d键,选择Updata to revision…卛_。系l会(x)提示输入版本受例如要下蝲soc_1的第五个版本Q只需填入5卛_。如?。查看完版本5的文件后Q如果想在此回到最新版本,只需要对soc_1q行Updata卛_?br />
Q?Q重名名和删除文?br />
如果要删除一个文件或重名名一个文Ӟ
注意不要在windows下直接操作。只需右键单击该文Ӟ选择Rename或DeleteQsvnpȝ便会(x)完成操作?br />
在workspace中将文g重命名或删除后,服务端的文gl构不会(x)变化Q只有当提交新版本库后,即commit后,服务端的文gl构才会(x)被更新?br />
如果误删除了(jin)文gQ在没有提交版本库之前,可以通过对版本库的升U将文g重新下蝲到本地的版本库,也可以通过revert恢复Q参考第八条Q。如果文件删除,q且已经提交Q那么要扑֛文g只能通过下蝲旧版本库来完成,参考(4Q?br />
Q?Q创建分?br />
版本库中最初的文gsoc_1,soc_2,word_1,word_2都是d文g。如果想要ؓ(f)soc_1创徏一个分支,只需右键单击soc_1Q选择Branch/TagQ系l会(x)弹出一个窗口,如图8。在H口中,From URL表示要创建的q个分支是soc_1的分支(pȝ?x)自动添加,不必更改Q。在To URL中,需要更改一下文件名Q在文g名后加一个标志即可,例如“
_branch”Q\径不需要更攏V在Creat copy in the repository from中,可以选择分支文g是由soc_1的那一个版本拷贝来的。最后填写日志,选择OK?/p>
分支创徏完毕QUpdata版本库,pȝ?x)将soc_1的主q文件和分支文gsoc_1_branch同时下蝲到本地版本库Q如?.1Q然后即可在分支文g上进行操作。此时soc_1的版本树(wi)如图8.2
Q?Q合q分?br />
当需要把soc_1_branc分支文g合ƈ到soc_1d文gӞ右键单击soc_1Q选择MergeQ会(x)弹出一个窗口,如图9?/p>
?From输入框中填入d的URLQ在To输入框中填入分支的URL。在From和To中,都有两个选项HEAD Revision和RevisionQ表Cq行合ƈ的是soc_1的那个版本。合q之后主q文件会(x)标注U色叹号Q表C已被修改,q可以提交。如果合q后文g标注的是黄色叹号Q表C文件有冲突Q处理方法见W三部分“异常处理”?br />
Q?Q撤销修改
当对一个文件进行了(jin)修改q保存后Q注意此处ƈ没有q行提交Q,如果对修改不满意Q想要重C改,可以右键单击修改q的文gQ带U色叹号的那个)(j)Q然后选择revertQ前面的一pd修改便会(x)被撤销Q恢复到Updata之后的状态。如果一个文件被误删除,也可通过右键单击该文件所在的目录Q选择revert来恢复?br />
三.异常处理
此处所说的异常主要是指文g发生冲突。以用户devA和用户devBZQ?br />
当两个用户同时下载了(jin)最新的版本库,q对库中同一个文件soc_2q行修改提交Ӟ首先提交的用户devA不会(x)发生异常Q第二个提交的用?
devB便会(x)出现无法提交的现象。因为服务端的版本库已经被devA更新QdevB用户在上传时Q系l会(x)提示出错如图10?/p>
在这U情况下QdevB用户需要首先对修改的文件进行Updata文g操作。如果两个用户修改了(jin)文gsoc_2的同一个地方,则在devB用户执行Updata后,pȝ?x)将本地的soc_2与从服务端下载soc_2合ƈC个文件上Qƈ在该文g图标上标上黄色叹P表示文g出冲H。在文g中通过“<<<<<<”?#8220;>>>>>>”标识冲突位置和冲H内宏VdevB用户只有与devA协商Q将该冲H处理,之后单击右键Q选择ResolveQ冲H标记消除,才能够再ơ提交,否则无法提交?br />
文g标记冲突的格式:(x)
<<<<<<< .mine
workspsace工作区,{abc工作区提交结束后再提交,应该?x)出现冲H?
=======
在此插入一D话Q啊啊aaaQ测试冲H?br />
>>>>>>> .r15
l色部分表示本地文g的修?br />
蓝色部分表示服务端版本库中的最新版本与本地文g修改发生冲突的地斏V?br />
紫色表示是第15个版本发生了(jin)冲突
=======
在此插入一D话Q啊啊aaaQ测试冲H?br />
>>>>>>> .r15
l色部分表示本地文g的修?br />
蓝色部分表示服务端版本库中的最新版本与本地文g修改发生冲突的地斏V?br />
紫色表示是第15个版本发生了(jin)冲突
文章来自[SVN中文技术网]转发请保留本站地址Qhttp://www.svn8.com/svnzixun/20090413/4578.html