资源描述
TortoiseSVN说明文档,罗智2011年8月,主要内容,TortoiseSVN简介和Client安装TortoiseSVN修改用户密码SVN服务器访问地址TortoiseSVN图标介绍TortoiseSVNClient基础操作CC和TortoiseSVNSVN操作对比TortoiseSVN与开发工具的集成,TortoiseSVN是Subversion版本控制系统的一个免费开源客户端,不需要为使用它而付费。TortoiseSVN是Subversion的Windows扩展。它使你避免接触Subversion枯燥而且不方便的CommandLine。它完全嵌入WindowsExplorer,使用时只需在正常的窗口里右键操作就可以了。,TortoiseSVN简介,安装程序路径:安装文件:192.168.0.1WorkSVNTortoiseSVN-1.6.10.19898-win32-svn-1.6.12.msi语言包:192.168.0.1WorkSVNLanguagePack_1.6.10.19898-win32-zh_CN.msi下面以TortoiseSVN-1.4.8版本为例讲解安装步骤:,TortoiseSVNClient安装,执行TortoiseTSVN-1.4.8.12137-win32-TSVN-1.4.6.msi,启动安装:,TortoiseSVNClient安装,如下图按Next:,TortoiseSVNClient安装,修改相应安装路径,如下图按Next:,TortoiseSVNClient安装,如下图按Install:,TortoiseSVNClient安装,TortoiseSVNClient安装,如下图按Finish:,TortoiseSVNClient安装,重启计算机,安装完成,如下图按Yes:,TortoiseSVNClient安装,安装成功后在右键菜单里会新增如下TortoiseSVN的菜单:,TortoiseSVNClient安装,下面开始安装TortoiseSVNClient汉化包。执行LanguagePack-1.4.8.12137-win32-zh_CN.exe,启动安装:,TortoiseSVNClient汉化包安装,如下图按Finish:,TortoiseSVNClient汉化包安装,装完汉化包需要进行如下设置下才会生效,TortoiseSVNClient汉化包安装,选择中文简体,TortoiseSVNClient汉化包安装,汉化成功后可以看右键菜单都变成了中文显示,TortoiseSVNClient汉化包安装,在IE浏览器中访问以下网址:8443/svn/或https:/192.168.0.1:8443/svn/,TortoiseSVN修改用户密码,TortoiseSVN修改用户密码,点击“继续浏览此网站”,TortoiseSVN修改用户密码,输入用户名和密码,登录成功后会出现以下页面,TortoiseSVN修改用户密码,修改用户密码,TortoiseSVN修改用户密码,TortoiseSVN修改用户密码,TortoiseSVN修改用户密码,操作成功后关闭IE浏览器,使用修改后的用户密码重新登录,测试是否修改成功,SVN服务器访问地址,TCR:8443/svn/11001TCR/trunk或https:/192.168.0.1:8443/svn/11001TCR/trunkMCR:8443/svn/11002MCR/trunk或https:/192.168.0.1:8443/svn/11002MCR/trunk,TortoiseSVN图标介绍,一个新检出的工作复本使用如下绿色的对勾重载。表示Subversion状态正常。,TortoiseSVN图标介绍,在你开始编辑一个文件后,状态就变成了已修改,而图标重载变成了红色感叹号。通过这种方式,你可以很容易地看出哪些文件从你上次更新工作复本后被修改过,需要被提交。,TortoiseSVN图标介绍,如果在提交的过程中出现了冲突,图标变成黄色感叹号。,TortoiseSVN图标介绍,如果你给一个文件设置了svn:needs-lock属性,Subversion会让此文件只读,直到你获得文件锁。只读文件具有这个重载图标来表示你必须在编辑之前先得到一个锁。,TortoiseSVN图标介绍,如果你拥有了一个文件的锁,并且Subversion状态是正常,这个重载图标就提醒你如果不使用该文件的话应该释放锁,允许别人提交对该文件的修改。,TortoiseSVN图标介绍,这个图标表示当前文件夹下的某些文件或文件夹已经被计划从版本控制中删除,或是该文件夹下某个受控的文件丢失了。,TortoiseSVN图标介绍,加号告诉你有一个文件或是目录已经被计划加入版本控制。,TortoiseSVN图标介绍,TortoiseSVN工作模式,SVN检出(SVNCheckout)增加(Add)删除(Delete)改名(Rename)移动SVN还原(SVNRevert)检查更新(Checkformodifications)SVN更新(SVNUpdate)SVN提交(SVNCommit),TortoiseSVNClient基础操作(一),显示日志(Showlog)版本库浏览(Repo-browser)版本分支图(Revisiongraph)追溯(blame)导入(Import)导出(Export)获取锁定(Getlock)解除锁定(Releaselock)分支/标记(Branch/tag)切换(Switch)合并(Merge),TortoiseSVNClient基础操作(二),在拷贝工作目录下单击右键选择SVN检出,如下图所示:,SVN检出(SVNCheckout),在弹开窗口的版本库URL框中输入版本库的目录地址(如http:/10.30.2.131/svn/ITSPI_CM),如下图所示:,SVN检出(SVNCheckout),可以获取最新版本,也可以根据需要获取相应的版本,点击查看日志来确认自己需要获取的版本。,SVN检出(SVNCheckout),确认自己需要获取的版本后在版本里面输入相应的版本号再点确定。,SVN检出(SVNCheckout),在弹出的对话框中录入用户名和密码(域用户和密码),验证成功后,项目文件开始从远程服务器下载到本地工作目录。,SVN检出(SVNCheckout),点击确定即获取完成。,SVN检出(SVNCheckout),注意:.svn这个隐藏目录记录着两项关键的信息:工作文件的基准版本和一个本地副本最后更新的时间戳。千万不要手工修改或删除这个.svn隐藏目录和里面的文件!否则将会导致你本地的工作拷贝(静态视图)被破坏,无法再进行操作。,注意事项:,增加是将文件或目录加入TSVN库,如果添加目录的话,目录下边的所有文件会同时添加。,增加(Add),可以选择要把哪些文件加入到库中,增加命令会递归搜索所选择目录下的所有路径来查看有哪些文件可能需要被增加,选择好后,点击确认。,增加(Add),删除文件或目录,不能直接用Windows的删除命令来操作,那样只是没有显示出来,实际并没有删除,在更新工作拷贝后,删除的文件又会被更新出来的。要想从库中删除,必须选中你要删除的内容,然后右键TortoiseSVN-删除,这样才会将这个文件标记成要删除的,如下图:,删除(Delete),确认需要删除后,使用前面所讲的提交命令,就会真正的在库中删除了。,删除(Delete),修改文件名,不能直接用Windows的重命名命令来操作,必须选中你要重命名的文件,然后右键TortoiseSVN-改名。如下图:,改名(Rename),在如下提示框内输入新名称,确定后即可修改。要想其他人看到效果就得进行提交。改名的处理方式相当于新增了一个以新名称命名的文件,原名称命名的文件进行了删除。,改名(Rename),如果有几个后缀名不一样,但前面名称一样的文件(如:Resources.cs、Resources.xml和Resources.resx),这时你使用改名操作,会弹出一个提示框提示你是否所有的同类名称的文件都需要改名。,改名(Rename),右键点到要移动的文件或文件夹然后拖拉到你想要移动到的目录,再选择你想移动的方式。,版本库中文件或文件夹的移动,在未提交之前,你对前面做的操作反悔了,可以使用TortoiseTSVN-SVN还原来恢复,如下图:,SVN还原(SVNRevert),这时会弹出一个提示框,让您选择需要还原哪几个步骤,选好确定后即可以还原。如下图:,SVN还原(SVNRevert),此功能可以显示你所做的修改有哪些还没有提交的。此功能不光能看到对文件的修改变化,所有的变化都能看到,包括增加文件或目录、删除文件或目录、移动文件或目录等。,检查更新(Checkformodifications),如果你点击检查版本库,那你还可以看到版本库里的改动,即别人提交了哪些文件的改动,你还没更新到本地。,检查更新(Checkformodifications),当有人提交了文件时,用户需要进行SVN更新才能看到最新的版本,如下图:,SVN更新(SVNUpdate),更新完后会提示您更新到的最后版本是多少,通过显示日志可以查看到更新到的版本,和每个版本都做了些什么操作。,SVN更新(SVNUpdate),有时当你从版本库中更新你的文件时,会有冲突。冲突出现的原因是两个开发人员修改了文件中相同的几行。由于Subversion不知道你的项目的具体情况,它把解决冲突的工作留给了开发人员。,SVN更新(SVNUpdate),对于每个冲突的文件Subversion在你的目录下放置了三个文件:filename.ext.mine这是你的文件,在你更新你的工作复本之前存在于你的工作复本中,没有冲突标志。这个文件除了你的最新修改外没有别的东西。filename.ext.rOLDREV这是在你更新你的工作复本之前的基础版本(BASErevision)文件。也就是说,它是在你做最后修改之前所检出的文件。filename.ext.rNEWREV这个文件是当你更新你的工作复本时,你的Subversion客户端从服务器接收到的。这个文件对应与版本库中的最新版本。,SVN更新(SVNUpdate),你可以通过TortoiseSVN编辑冲突,这时你需要确定哪些代码是需要的,做一些必要的修改然后保存。,SVN更新(SVNUpdate),然后,执行命令TortoiseSVN已解决并提交你的修改到版本库。需要注意的是已解决命令并不是真正的解决了冲突,它只是删除了filename.ext.mine和filename.ext.r*两个文件,允许你提交修改。,SVN更新(SVNUpdate),如果你的二进制文件有冲突,Subversion不会试图合并文件。本地文件保持不变(完全是你最后修改时的样子),但你会看到filename.ext.r*文件。如果你要撤消你的修改,保留版本库中的版本,请使用还原(Revert)命令。如果你要保持你的版本覆盖版本库中的版本,使用已解决命令,然后提交你的版本。,SVN更新(SVNUpdate),SVN的提交是将在工作空间做的修改进行提交,包括文件内容的修改,文件或目录的添加,删除,命名,移动等操作,相当于CC中的checkin。如:新增了一个PDM_Q07.07配置管理计划.doc文档需要提交:,SVN提交(SVNCommit),这时会出现如下的对话框,您需要输入一些信息(如:关联的CQ活动号,文档修改了什么内容等)。,SVN提交(SVNCommit),通过此功能可以查到谁,什么时候,对哪个目录下的哪些文件进行了哪些操作,操作的时候是否关联了正确的活动号。,显示日志(Showlog),显示日志(Showlog),版本日志对话框的顶部面板的右键菜单,显示日志(Showlog),版本库浏览功能是用来浏览需要查看的资料库,操作步骤如下:,版本库浏览(Repo-browser),如下图输入资料库地址,再输入用户名和密码。,版本库浏览(Repo-browser),就能查看到您需要查看的版本库中的内容,在这你还能看到哪些文件被谁锁定了。,版本库浏览(Repo-browser),在版本库浏览中可以移动版本库中的文件或文件夹到一个新的位置。只需用左键选中你想要移动的文件,然后将其拖到它要去的位置。如果你要移动一个文件或文件夹到一个新的位置并重命名,你可以选中你想要移动的文件,然后将其拖到它要去的位置,而不用左键拖。这样,就会显示对话框来为该文件或文件夹重命名。,版本库浏览(Repo-browser),有时你不仅要知道哪一行做了修改,还要精确地知道谁修改了一个文件中的哪一行。这就是TortoiseSVN追溯.命令。,追溯(blame),选择追溯的版本,会显示哪个版本谁什么时候改了哪些行?,追溯(blame),在将您的项目导入到版本库之前,你应该:删除所有不需要的文件(如:临时文件,编译器产生的文件等)组织好目录和子目录内的文件。然后进入资源管理器,选择你的项目的顶层目录,右键选择TortoiseSVN导入,如下图:,导入(Import),在如下对话框中,输入您的项目导入到版本库的URL。导入信息里面输入的内容将作为提交日志。,导入(Import),当你点击确认时,TortoiseSVN会导入包含所有文件的完整目录树到版本库。你导入的文件夹名称不会在版本库中出现,只有这个文件夹的内容会在版本库中出现。请注意:你导入的文件夹没有被版本控制!你需要检出刚才导入的版本,以便获得受版本控制的工作目录。,导入(Import),导出一份干净的目录,导出步骤和SVN检出步骤类似。导出的目录不带TSVN的绿色标记,也没有.svn目录,为干净的目录树;而SVN检出的目录带TSVN的绿色标记,每个目录下有个.svn目录。导出相当于复制了一份服务器中的资料,而检出相当于创建了一个本地的工作拷贝。,导出(Export),版本分支图能告诉我们从哪开始有了分支和标签,同时能够知道这条支路是单独的分支还是树型结构。,版本分支图(Revisiongraph),版本分支图(Revisiongraph),如果你对一个文件取得锁定,那么只有你可以提交这个文件,其他用户的提交都会被拒绝,直到你释放了这个锁。,获取锁定(Getlock),注明对文件加锁的原因,这样别人可以知道你为什么锁定这个文件,注释是可选的。在文件框内选择你需要加锁的文件。当且仅当你需要窃取别人的锁的时候,勾选偷取此锁定复选框。,获取锁定(Getlock),为了确保你不会忘记释放锁,你不需要做别的事,在提交对话框中,总是会显示锁定的文件,并总是默认被选中。如果你希望保持一个修改过的文件的锁,你需要在提交之前选中保持锁定复选框。,获取锁定(Getlock),手动解除锁定,选中工作复本中要释放的文件,选择命令TortoiseSVN解除锁定。你可以对一个文件夹来使用这个命令释放其中的所有锁定项。,解除锁定(Releaselock),TortoiseSVN的分支/标记相当于创建一个内部的连接,指向一个具体的版本树。所以TortoiseSVN的分支和标记创建起来比较快,并且没有在版本库里占据任何额外的空间。创建分支的最大的目的就是跟主线进行并行开发的时候不影响主线的开发。你在分支上所做的提交都只存于分支上,主线上的Update是看不到分支的修改的。,分支/标记(Branch/tag),在你当前的工作拷贝中给你想要拷贝的分支或标记选择一个目录,然后选择命令TortoiseSVN分支/标记.。,分支/标记(Branch/tag),分支用来维护独立的开发支线,在一些阶段,你可能需要将分支上的修改合并到最新版本,或者将最新版本的修改合并到分支,这时候你就需要进行合并操作。合并是首先将两个版本库树进行比较,然后将区别应用到本地拷贝.这个命令包括三个参数:1、初始的版本树2、最终的版本树3、一个接收区别的工作拷贝。,合并(Merge),例如我们在分支上的版本38修改了“合并操作测试2.txt”文件,在文件中添加了合并操作测试的内容,主线上的版本37也修改了“合并操作测试2.txt”文件,在文件中添加了合并操作2的内容,我们如何将分支版本的信息合并到主线上呢?,合并(Merge),在主线的目录上右键点击,选择TortoiseSVN合并,合并(Merge),在弹出的提示框中,选择分支目录和其起始版本号,接收区默认为你右键所指的目录。,合并(Merge),在合并之前我们可以通过点击“准差异”,查看两版本树之间所有文件的内容的变化,“比较差异”显示出有发生变化的文件列表,“预检”能显示真正合并时的状态信息,但并没有做任何的合并操作。点击“合并”后即对主线上的文件补上了分支上修改的内容,如无冲突则可以在主线上像其它文件一样使用了,如果合并后的内容不满意,可以通过撤销来取消这次的合并操作,前提是未对合并后的文件做提交操作。,合并(Merge),如合并的过程中文件有冲突,则点完合并后会弹出如下提示框告诉你哪些文件在合并的过程中有冲突:,合并(Merge),这时查看主线的工作目录下,会产生如下图的三个文件,有冲突的文件也打上开始讲解的有黄色感叹号的冲突文件标记:,合并(Merge),Filename.working这是主线上合并前的文件,没有冲突标志,文件内容是你合并前的最新内容。Filename.merge-left.rOLDREV这是你选择合并的分支的版本的前一次修改的版本文件。Filename.merge-right.rNEWREV这是你选择合并的分支的版本的版本文件。,合并(Merge),冲突的文件内容,在冲突的地方将被使用“”标志出来,用户自己进行合并的取舍。,合并(Merge),选择带有冲突文件标记的需要合并的文件右键-TortoiseSVN-编辑冲突。,合并(Merge),如下图点到红色冲突地方解决冲突:,合并(Merge),解决冲突之后,右键选择“TortoiseSVN-已解决的.”,Subversion将删除冲突所产生三个文件删除,此时你才可以进行提交。(也可以手动删除此三个文件。),合并(Merge),注意:SVN不能进行文件与文件夹的合并,反之亦然。即只能文件夹对文件夹,文件对文件进行合并。如果选择了文件,打开合并对话框,那么你必须在对话框中给出文件的路径。如果你选择了文件夹,打开合并对话框,那么你必须给出文件夹的对话框。,合并(Merge),你可以将浏览器指向版本库的URL,这样你无需安装Subversion客户端就可以浏览内容版本库中的内容。,Web方式浏览版本库,如果你需要设置TortoiseSVN中的一些属性,你可以右键选择“TortoiseSVN-设置”,在已保存数据中,你可以通过清除操作,来修改TortoiseSVN保存的很多你用过的设置。,TortoiseSVN设置,在外部程序:差异查看器中,可以将版本比较工具设置为你本地的用来比较不同版本的查看工具。,TortoiseSVN设置,
展开阅读全文