SVN客户端安装
SVN分为客户端、服务端,服务端用来存储代码,客户端用来提交代码到服务端,或者从服务端获取代码。
在Windows上,我们最常用的svn客户端就是 TortoiseSVN;TortoiseSVN 当前最新版本是可以到官网查看并下载;如果你的系统是64位的,点击下图中红圈的按钮下载,如果是32位的系统,则点击第一个按钮。
下载完成后,直接就是双击运行,然后一直是下一步的进行安装就好了。
此时你安装的是英文版,如果你需要汉化,则在下载页面继续往下滚动,找到如下图下载中文语言包。
下载后也是直接双击安装就好了,这时候你的右键svn菜单就会变成中文的了。
SVN经典目录结构说明
SVN的经典目录包含trunk、tags、branches。
trunk
trunk是主干,也就是主要工作的地方,也是最新的代码存放的地方。
branches
branches是分支的意思,分支开发和主线开发是可以同时进行的,也就是并行开发,分支通常用于修复bug时使用。例如在主干需要增加功能代码,但还不确定代码是否合理,可以先在该目录下新建分支并复制主干到该分支下来工作,测试通过后可合并代码到主干。也可以在分支中建立团队个人的分支,测试完成后合并到主干。
tags
tags是标签的意思,类似GIT的release。用于标记某个可用的版本,可以标记已经上线发布的版本,也可以标记正在测试的版本,通常是只读的。
Checkout检出代码
- 复制SVN地址。
- 在你需要保存代码的地方右键选择SVN Chekout…
- 填写SVN地址,填写保存目录,输入SVNBucket网站登录用户名密码。
- 点击确定就能同步代码到本地了。
Update更新代码
右键 SVN Update 更新代码,这样就能把其他人提交的代码同步到自己电脑上了。
自己提交代码前最好Update更新代码,防止服务器上已经有人更新过代码了导致上传失败。
Commit提交代码
提交代码也很简单,右键SVN Commit…,填入提交描述,就可以把本地提交的代码提交到服务器了。
在提交代码前我们应该update下代码,这是个好习惯,可以避免覆盖别人的代码和代码冲突。
注意:在提交代码时需要写log,在代码回溯时能有很好的帮助
忽略文件
有时候某些目录或者文件我们不想提交到 SVN 服务器,这时我们可以忽略这些文件。
下面演示忽略 temp 目录和 *.map 文件
撤销忽略,文件的操作方式步骤是一样的,目录的有点不一样,请看下面演示
撤销本地修改
有时候我们本地修改了一些文件,但是突然又不需要了,想丢弃本地的修改回去SVN上最新的版本怎么操作呢?
右键选中需要撤销的文件,TortoiseSVN->Revert 就可以丢弃本地修改了。
撤销已经提交的代码
已经提交到SVN仓库的代码发现改错了,还能后悔撤回吗?
右键TortoiseSVN ==> show log 查看提交记录
选择我们需要回去的版本,右键选择Revert to this version,这样就回去了指定的版本
最后你还需要commit下撤销后的代码到SVN仓库
如何创建分支
以上面的目录结构为例子,我们从当前主干创建一个分支出去,表示1.0版本,操作步骤如下:
右键 trunk 目录 => 右键TortoiseSVN => Branch/tag
填写分支路径/branches/online1.0,填写注释,选择最用最新的版本开分支,如下:
如何合并代码
假设我们在分支上修复了一个线上的BUG,需要把代码那个代码合并到主干来,操作步骤:
- 在分支的跟目录点击show log
- 选中需要合并过去主干的提交记录(可以多选)
- 点击merge revision to …
- 选择主干的跟目录,点击确定,就合并过去了。
- 在主干上提交这次合并的内容
SVN 的这个指定提交记录合并功能非常的方便,我们日常中经常会遇到线上出问题需要修复,修复后把代码合并到主干的情况。
注意:你在分支上的什么目录点击合并,那就需要定位到主干的对应目录合并,不然会出错。
另外如果你有大量的代码需要合并或者不知道哪些提交记录需要合并,可以使用Beyond Compare来进行对比合并,也是非常方便的,视频教程使用BeyondCompare做复杂代码合并。
切换分支
右键TortoiseSVN => Switch => 选择需要切换的分支,点击确定就可以了。
修改仓库地址
如果您的仓库地址变了,是不是需要重新checkout一份代码呢?
快速更换:右键点击仓库根目录 => TortoiseSVN => relocate,修改仓库地址,点击确定后就修改好了。
TortoiseSVN快速上手视频