svn
全称Subversion
,是代码版本管理软件,管理着随时间改变的数据。这些数据放置在一个中央资料档案库 (repository
) 中。 这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动。这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史。 许多人会把版本控制系統想像成某种 “时光机器”。
SVN的作用
- 可以很好地协调一个团队共同开发同一个项目,多人开发同一个项目不会出现代码覆盖情况。
- 针对一个文件可以创建许多不同版本,并且可以随时查看不同版本的内容。
- 公司领导可以通过svn查看每个人的工作情况
SVN下载
SVN服务器端安装
注: 双击setup-subversion-1.6.5.msi然后一路next即可
SVN客户端安装
注: 双击安装客户端软件(安装完毕重启电脑):(根据自己操作系统位数64/32做选择安装)
客户端安装完毕,鼠标右键有对应的标志(可能需要重启生效),即代表安装成功
从SVN服务器检出代码
在工作目录点击右键,在右键菜单中选择 SVN Checkout
点击“OK”按钮后,在弹出的对话框中输入用户名和密码,验证成功后,开始从远程服务器下载到本地工作目录中
点击“确定”按钮后,即可获取完成,出现如下下载界面, 下载完成点击OK之后,服务器上所有内容都会下载到本地文件夹下
SVN图标集含义
SVN更新文件
更新本地代码与SVN服务器上最新的版本一致,只要在需要更新的文件夹上点击右键或者在文件下空白处点击右键,选择”SVN Update” (获取指定版本中的内容,点击右键执行SVN菜单中的“Update to reversion“),就可以了。
SVN提交更新(SVN Commit)
本地文件修改后,若是需要更新到服务器上,则需要提交(Commit)最新的更新。Commit的作用是将本地最新修改的文件同步到SVN服务端,供其他人来参考或者使用,当然使用之前,要先Update一下,来确保是最新的,在修改文件上击右键,出现菜单,选择“SVN Commit…”,如下:
然后填写关于本次更新的日志(log message),这是必填项,否则commit会失败
点击ok之后,若没有出现错误则表明刚刚的修改已成功提交
SVN新增文件
鼠标选中本地增加的新文件,右键选择“Tortoise SVN”的“Add”项,如下图所示,然后在文件夹右键选择“SVN Commit…”,将新文件上传到svn服务器上(若只上传单个文件,只需点中单个文件上传即可)。
新目录内部的文件不能直接提交,必须是先提交目录本身,然后该目录的文件才可以单独进行(add/)commit提交动作。
SVN删除文件
删除文件后,在当前文件夹右键选择“SVN Commit…”项进行提交,提交方式同增加文件的提交方式,提交之后才能将新文件从配置库中删除。
撤销更改(Revert)
在修改了某些文件后(文件未上传到配置库),需要返回到修改前的状态,则选中文件夹右键选择“Tortoise SVN”的“Revert...”项进行撤销,本地硬盘上的文件将恢复到修改前的内容,修改的内容将被删除。
查看历史文件(Show log)
Show log顾名思义是显示日志的作用,主要是显示该文件或者该目录被执行的操作,是被谁修改了,以及修改的时间和日期。鼠标选中文件夹右键选择“Tortoise SVN”的“Show log”项,系统弹出此路径下的所有文件版本信息。
SVN版本回退
空白区域右键--->TotoriseSVN---->更新至版本(Update to revision)---->根据日志回退--->显示日志选择要回退到的版本
SVN冲突解决
SVN冲突: 多个程序员对同一文件,同一处代码进行修改,在他们提交的时候会产生冲突
如上图,test_conflict.py文件发生了冲突,并且多出了几个文件,其中.mine是我本地修改了还没提交的版本,.r2文件是上一个版本的文件,.r1是上上个版本的文件。
Edit confilicts:
修改冲突,可以对冲突的行进行内容选择,后面我们详细说。Mark as resolved:
直接标记为已解决,这样会删除.mine、.r1、.r2这些文件,但这只是标记,如果你直接标记为解决,实际上文件还是冲突的,只是状态修复了。Resolve conflict using 'theirs':
使用他的提交覆盖我的修改来解决冲突。如果你的修改不需要提交,你可以方便的选择这个。Resolve conflict using 'mine':
使用我本地的版本覆盖他的来解决冲突。如果对方提交的代码没什么用,你可以直接使用这个来解决。
SVN 锁机制
对于某些重要的文件不允许别人修改可以对其添加锁,防止其他人修改提交
可以避免多人同时修改某文件产生冲突,添加锁后提交,修改完成提交并解锁
- 添加锁
svn lock xxx.html
或 选中文件后在右键菜单中选择Get lock
- 解锁
svn unlock xxx.html
或 选中文件后在右键菜单中选择Realease lock