SVN的安装和使用手册
下载`TortoiseSVN
官网下载址:https://www.visualsvn.com/visualsvn/download/tortoisesvn/
下载完成后是这样的 安装TortoiseSVN:
此处的安装地址建议不动,当然你也可以选择你要安装的地址
安装完成后在桌面点击右键查看
如果有标记的两个文件说明已经安装成功.
如果感觉英语看到有点困难的可以安装汉化TortoiseSVN:
下载语言包 :
下载地址:http://tortoisesvn.net/downloads.html
下载完后直接点下一步就OK了。
选择中文确定就ok了。
使用说明
检出项目
假如项目已经在服务器的仓库里,那么现在你要做的就是把它检出到本地。
首先创建一个空文件夹。在空文件夹内右键,选择SVN检出。
现在你看到应该是这个界面,填入版本库地址,选择确定。
如果是第一次登陆,此时会弹出一个对话框让你输入账号密码,输入你的账号密码即可。记得勾选保存认证,不然每次操作都会让你输入。
过几秒就会检出完成
找到目录就可以开始工作了
导入项目
右键选着版本浏览器
根据自己的项目上传你的文件或者文件夹
选着你的项目或者文件后
确定看到目录完成就行了
但是,不要以为导入成功就可以了。你还得重新检出,重新检出的项目才是受SVN控制的,务必记得检出,如果不检出你操作的属于你没有上传之前的文件,当你下次上传可能会出现问题。
在SVNProject上右键检出到本地,然后在里面进行修改。现在就可以愉快的工作了。
检出过后点击文件夹然后右键菜单变成了这样。
关于项目的提交
绿色表示当前文件没有被修改过(看不见颜色的重启下电脑就好了)。
如果在我的Dome里面对代码进行了修改。你就会发现现在变成了红色,红色表示已修改。
怎么提交修改?
在根目录下,右键选择提交。
务必记得输入提交信息(虽然不输入也能提交),提交信息可以方便日后查看。
提交完毕后,可以发现又恢复到了绿色。如果看到还是红色可以退出后在进入就行了。
假如现在加入了一个新文件。可以看出是蓝色的。蓝色表示不属于版本库的未知文件,未知文件是不能提交的。有可能什么都不显示。
或
记住选择增加把它加入到版本库里面去。
增加完毕后,变成了蓝色加号,表示新增加的版本库文件。
接下来,只需写代码,然后提交即可。
删除文件也应该右键提交,如下。
记得随时检查你的文件状态,如果没有添加到版本控制里要及时添加进去,不然你的文件提交不上去。
更新:
假如你和B同事在协作。B同事写完代码提交到了SVN上,如果你想获取最新修改,就需要选择更新(如果服务器上已经有别人提交过的新的,你是提交不上去的,必须先更新再提交)。
怎么知道服务器有没有更新?你可以直接选择更新,有没有更新一下就知道。或者右键检查修改,然后检查版本库,就能看到服务器上改了哪些文件。
右键选择版本比较。左边的表示你的代码,右边的表示服务器上的代码。
如果有修改记得及时更新到本地然后再继续工作。没有更新会提交失败。
但是有时候更新会冲突,比如你和服务器上的改了同一个地方。
这时候你需要更新下来解决冲突。
于是可以查看日志,看前面谁进行了相同模块的更改。方便代码覆盖相同进行协商。
它会提示你哪个文件冲突,你只需打开那个文件,按照需求解决冲突即可
解决冲突有三种选择:
A、放弃自己的更新,使用svn revert(回滚),然后提交。在这种方式下不需要使用svn resolved(解决)
B、放弃自己的更新,使用别人的更新。使用最新获取的版本覆盖目标文件,执行resolved filename并提交(选择文件—右键—解决)。
C、手动解决:冲突发生时,通过和其他用户沟通之后,手动更新目标文件。然后执行resolved filename来解除冲突,最后提交。
如何降低冲突解决的复杂度:
1、当文档编辑完成后,尽快提交,频繁的提交/更新可以降低在冲突发生的概率,以及发生时解决冲突的复杂度。
2、在提交时,写上明确的message,方便以后查找用户更新的原因,毕竟随着时间的推移,对当初更新的原因有可能会遗忘
3、养成良好的使用习惯,使用SVN时每次都是先提交,后更新。每天早上打开后,首先要从版本库获取最新版本。每天下班前必须将已经编辑过的文档都提交到版本库。
查看日志
择显示日志,可以看出团队里面的人干了什么。
可以看出谁谁谁,什么时间,干了什么事。最后那一列信息是自己提交的时候写的。建议大家提交时务必要填写提交信息,这样别人一看就知道你干了什么。提交信息对于自己也是有好处的,时间长了也能看到当初做了什么。
版本回滚
如果你改了东西,但是还没有提交,可以使用还原功能。
但是如果我们写错了东西并且提交了上去怎么办?通过版本回滚可以将文件恢复到
以前的版本。右键更新至版本,通过查看日志来选择版本,然后回滚即可。
有时候我们需要查看以前版本的代码。此时我们可以新建个文件夹检出到指定版本,不要把现在自己编写的版本覆盖就好
版本控制
版本控制有好几种方法,如下。
1. 在提交发布版本时添加版本信息,这是最简单的一种方法。
2.打标签
每次发布版本时应该打标签。右键选择分支/标记。在至路径以版本号打上标签即可
这样你就有了一个v1.0版本的标签。
以后如果你想查看某个版本的代码,只需切换过去就行
创建分支合并相互操作
项目中为何要创建分支,及合并?
比如我现在项目所有的文件放在主干上中,由于需求的变更,需要增加新的需求,但是我们主干上还要继续往下开发,在此我们可以新建一个分支,来做增加新的需求那一块,主干上继续开发,等分支上代码没有问题的时候,再合并到主干上来。
创建分支的最大的目的就是跟主线进行并行开发时候不影响主线的开发。
如何操作?
假如我本地新建一个文件夹test下有2个文件夹Cs (存放主干上的代码)和C_s(存放分支上的代码),如下所示:
新建分支
从Cs(主干上)创建分支C_s步骤如下:右键Cs
现在我们可以再来看看本地branch文件夹了,我现在直接进入branch文件下,右键 --> Chenckout下,就可以把newBranch下的所有文件提取出来了,如下所示:
现在我们可以再来看看本地test文件夹了,我现在直接进入test文件下,右键 --> 检出下,就可以把C_s下的所有文件提取出来了,如下所示:
分支目前建立在svn的服务器端,本地并没有更新,对本地C_s文件夹 右键--> 更新即可,就可以更新到分支代码.
合并分支到主干上
比如我现在对C_s分支上新增 新的文件.txt文件,然后提交上去
我现在想把分支上的代码新增 新的文件.txt合并到主干上Cs,现在要怎么合并呢?步骤如下:
1. 回到我们刚刚的主干(Cs)文件夹下,鼠标右键该文件夹--> TortoiseSVN --> Merge(合并) 如下图所示:
接着点击【Next】下一步,如下图所示:
就可以看到主干Cs上多加了一个新的文件.txt,就是从分支上合并过来的。
合并主干到分支
如果主干上有一些更新,比如说jar包更新等等,那么这些要更新到分支上去,如何操作呢?比如我现在在主干上新建一个1.txt文件
我现在的分支上目录如下:
现在是想把主干上的1.txt合并到分支上来,要如何操作?
步骤如下,还是和刚刚操作类似.
我们在分支点击C_s--> 右键TortoiseSVN--> 合并 如下图所示:
最后直接合并,就可以看到分支C_s上也有主干上的1.txt文件了,也就是说,合并主干到分支上也是可以的,如下图所示:
如果使用eclipse就没有这么麻烦,最多就是安装一个svn插件的问题,操作起来而且方便