SVN操作手册目录1.安装客户端工具...................................................22.下载项目.........................................................2检出(checkout).................................................2填写项目地址....................................................2使用账号........................................................33.提交修改.........................................................34.更新.............................................................4查看更新.........................................................45.导入项目.........................................................46.锁定.............................................................5取得锁定.........................................................67.还原/版本的回退..................................................68.冲突的解决.......................................................89.版本库浏览器.................................................810.分支/标记.......................................................9其它功能........................................................101.安装客户端工具Windows客户端工具TortoiseSVN-1.6.13.20954-win32-svn-1.6.16.msi2.下载项目检出(checkout)在你硬盘的适当的位置,点击右键,选择SVNCheckout:填写项目地址然后就会弹出一个Checkout选项对话框,输入远程项目目录和本地工作目录,例如:远程工具项目地址为:本地工作地址为:F:\repository.使用账号点击OK,有些可以直接访问,如果加了权限判定,就会弹出一个远程服务器要求验证的对话框:账号一般为管理员配置给你的账号,如果出现错误请找SVN管理员。也许是项目权限问题,也许是用户信息有错误。输入用户名和密码之后,点击OK就可开始下载:3.提交修改在你做了修改之后,你可以在项目文件夹下点击右键或者你修改的文件下点击右键,选择SVNCommit,这两者的区别在于,第一个可以一次提交你所做所有文件的修改,第二个是提交你所选的文件。点击Commit之后,就会弹出一个让你输入更改log的对话框:在Recentmessage处输入你所作的修改,然后点击OK,就会开始向远程服务器提交修改:4.更新右键跟SVN服务器的项目取得联系文件夹,会出现“SVNUpdate”的选项。它会自动把服务器上的版本更新到本地获取更新的文件夹。注意:经常更新和查看日志可让你对所参与项目更加了解。查看更新如果需要查看更新内容或者选择性的更新某些文件的话,可以点击TortoiseSVN-showlog.5.导入项目在将你的数据导入到版本库之前,首先你得考虑如何组织你的数据。如果翻译插件或者写了插件,想提交到远程服务器,选择该文件夹,点击右键,选择TortoiseSVN-Import。然后就会弹出一个导入选项对话框,属于远程服务器地址和注释,如果你前面没有保存密码,这里可能再次输入你的密码。点击OK,本地文件就会被导入远程服务器。6.锁定默认情况下,所有的东西都没有锁定,只要有提交权限的人都可以在任何时候提交任何的文件。其他人会定时更新他们的工作副本,在库中的改变的东西都会与本地合并。如果你对一个文件取得锁定,那么只有你可以提交这个文件。其他用户的提交都会被拒绝,直到你释放了这个锁。一个被锁定的文件不能在库中进行任何形式的合并。所以它不能除锁的拥用者之外的人删除或更名。但是,其他用户不必知道你已经增加了锁定,除非他们定期地检查锁定的状态。这其实没什么意义,因为他们发现提交失败的时候就可以知道锁定了。当一个文件的这个属性被设置(成任意值)的时候,每当该文件检出或更新时,本地的副本都被设成只读,除非该工作副本就是拥有锁的那个用户的。这么做是为了能警告你,你不应该修改这个文件,除非你申请到了锁定。受控只读的文件在TortoiseSVN中用一个特殊的图标来表示你需要在编辑前取得锁定。锁除了按所有者记录外,还在工作副本中记录。如果你有多个工作副本(在家,在单位),那么在这些工作副本中,只允许对其中一份拥有锁。注:所有的锁定在提交后均会自动解锁。取得锁定右键想锁定的文件,然后TortoiseSVN-Getlock默认情况下只有拥有权限者才可以锁定。此处的右键菜单中,你可以获取锁或是释放锁。简单来说,如果你正在对某个文件作修改,想告诉大家并且不让那个文件更新的话,可以执行此操作。7.还原/版本的回退如果本地因为删除操作而造成了一些文件的丢失,可以使用“还原”(Revert)功能。会自动同步svn上的版本,如果发现不存在的文件会自动下载修复到本地项目之上。在代码的编写过程中,难免会有不尽人意的地方,你也许需要回退到某一个版本,但是在这个过程中可能有一些文件你想保留,也有一些文件你不想保留,这就牵扯到很复杂的版本管理过程,在这里有几种方法:1.若是你编辑了工程,在没有提交的前提下,你想放弃这些修改,你可以直接选择revert就可以更新到工程的最新的版本。2.若是你想退回到某一个版本,你就可以直接选择updatetoreversion这样我们就可以把我们的版本回退到你选中的版本去,这种情况下SVN并没有显示出有什么冲突,并且新建立的文件也还在,但是在这种情况下你并不能直接在你回退后的版本上进行编辑,因为SVN的版本控制还是在最新的主干上。我们需要update并解决冲突。3.你可以直接选择reverttothisrevision,这样的话你可以直接解决冲突并提交。不过这种方法的不足是,你新建的文件都没有了,整个工程都回退到之前的版本了。4.我推荐的一种方法是,直接export一个你需要的版本,然后用你export的版本覆盖你的最新的版本,这样你就可以不丢失你新建的文件,同时获得head的SVN控制文件。8.冲突的解决1.对工作复本中的文件和服务器的文件进行比较,手工合并即可。2.查看日志,看看冲突前是谁提交了或者和服务器上的版本比较,了解所提交的内容再和提交的开发人员联系,两人商量好之后手动合并两个人的工作,然后标记冲突解决,然后再次提交。9.版本库浏览器有时候我们需要在版本库中直接进行操作,而不是在工作副本中。这就是我们的版本库浏览器可以做到的。正如资源管理器和能浏览你的工作副本一样,版本库浏览器允许你浏览版本库的结构和状态。在版本库浏览器中你可以执行比如添加、转移、查看历史记录等操作版本库上。除了版本库浏览器不是显示计算机中的文件,而是显示版本库中特定版本的内容之外,它看起来很象Windows资源管理器。在左边的窗格显示目录树,右边的窗格显示选定目录的内容。在版本库浏览器窗口的顶部,你可以输入你想浏览的版本库URL和版本。就象Windows资源管理器一样,如果你想设置排列顺序,可以点击右边窗格中的列首。并且所有窗格都有上下文菜单。文件的上下文菜单允许你:用默认查看器或你指定的程序打开选中文件的选中版本。在你的硬盘上保存此文件的一个未版本控制的副本。显示此文件的版本日志,或者显示所有版本图,从而你可以知道其来源。追溯这个文件,查看是谁在何时修改哪些行。删除或改名文件。复制这个文件,目的可以是版本库中的其它地方,也可以是同一版本库中的工作副本。View/Editthefile'sproperties.目录的上下文菜单允许你:显示此目录的版本日志,或者显示所有版本图,从而你可以知道其来源。导出此目录的未版本控制副本到你的本地硬盘。检出此目录到你的硬盘,产生一个本地工作副本。在版本库创建新目录。直接向版本库增加文件或目录。删除或改名文件夹。复制这个目录,目的可以是版本库中的其它地方,也可以是同一版本库中的工作副本。View/Editthefolder'sproperties.为比较标记目录。已标记的目录用粗体显示。将此文件夹与以前标记的文件夹比较,用统一差异,或者是一个可以用默认比较工具可视化显示差异的文件改变列表。它对于比较两个标签,或者最新版本与分支,查看修改详情时尤其有用。如果你在右窗格选择两个文件夹,你可以用统一差异,或者是一个可以用默认比较工具可视化显示差异的文件改变列表来查看其区别。如果你在右边窗格中选择了多个目录,你可以将它们同时检出到同一个父目录之下。如果你选择两个拥有相同历史的标签(特别是主干),你可以使用右键菜单→Showlog来查看。10.分支/标记Branches:分支。它是存放各种分支,实现不同版本的并行开发,这里的并行是指和trunk进行比较。Tags:标签,全局版本号。在经过了一段时间的开发后,项目到达了一个里程碑阶段,你可能想记录这一阶段的代码的状态,那么你就需要给代码打上标签。它一般用来存放阶段性版本,每阶段保存一个版本,方便日后对各发行版bug的修改。Trunk:开发主干。开发人员日常的开发都在这个下面构造。当多个人合作,可能有这样的情况出现:Developer1突然有个想法,跟原先的设计不太一致,可能是功能的添加或者日志格式的改进等等,总而言之,这个想法可能需要花一段时间来完成,而这个过程中,Developer1的一些操作可能会影响Developer2的工作,Developer1从现有的状态单独出一个project的话,又不能及时得到Developer2对已有代码做的修正,而且独立出来的话,Developer1的尝试成功时,跟原来的合并也存在困难。这时最好的实践方法是使用branches.Developer1建立一个自己的branch,然后在里面实验,必要的时候从Developer2的trunk里取得更新,或者将自己的阶段成果汇集到trunk中。svn中建立branch或者tag的方法比较简单,totoiseSVN中的操作是:1.选择Branch/tag.2.在弹出窗口输入要创建的标签/分支的地址,一般是地址组成规律如下:标签:文件库URL+/Project/+“/tags/“+标签名(如:tag-1);分支:文件库URL+/Project/+“/branches/“+分支名(如:branch-1);3.点击“确定”创建分支/标签;这样就建立了一个branch-1的branche及tag-1的tag.4.后面的Createcopyfrom是用于选择从你当前的workingbase中的哪个版本中建立branch/tag,可以根据自己的选择来订制,一般选择HeadRevision.注:标签或分支的名称一定要有描述,可以仅凭名称说明为什么要创建标签.其它功能网页浏览:你可以使用该地址https://(IP)192.168.1.24/svn/tools(项目名)/在网页上浏览项目,