工具:TortoiseSVN
检出(checkout)
- 创建文件夹
- 右键
- SVN检出/SVN checkout
- 填写版本库URL:从SVN服务端获取的资源库URL,例如:svn://192.168.1.1/work
- 点确定(下载相应项目)
- 输入用户名及密码(服务端建立的用户认证与权限)
更新(update)
注意:在原项目文件夹内选择SVN更新的话,会自动覆盖掉原有内容。
建议:先备份,再更新,防止自己本来的项目内容丢失。
- 文件夹(svn管理目录)空白处单击右键
- SVN更新
- 更新 完成!展示更新内容。点击确定。
提交(commit)
SVN不提供历史版本功能,所以项目被覆盖后就找不回来了,所以切记备份。
- 添加项目的代码到 svn 管理目录
- 右键
- SVN提交/SVN commit
- 输入本次提交的说明信息(所作修改的注释)
- 选择要提交的内容/代码
- 确定
- 提交 完成!
冲突处理
冲突原因:A用户基于版本1更改后提交,文件升级为版本2。B用户再基于版本1更改后提交,会提交失败。
冲突解决方法一(放弃修改)
1、A放弃自己修改的内容,进行Revert(svn还原)操作,使其 1.txt成为 提交前的版本的 最初内容
2、然后update使其 1.txt 成为最新版本,
3、再在14版本上修改内容
4、提交。
Revert(svn还原)
- 右击文件
- TortoiseSVN
- SVN还原(V)
冲突解决方法二(直接提交)
因为版本过时,提交失败后。
B用户直接选择更新操作。
产生冲突后的几个文件,:
- test.txt.mine—这个文件是B用户基于版本1做了修改要提交的文件。它的内容是:版本1内容+B用户的修改
- test.txt.r1---- 这个文件是最初的版本1。它的内容是:版本1内容
- test.txt.r2---- 这个文件时svn服务器中的最新版本,版本2。它的内容是:版本1内容+A用户的修改
- test.txt--------由于B用户选择了直接更新,此文件就是svn将最新版本2与B用户的修改合并后的文件。它的内容如下:test.txt.mine及说明,test.txt.r1及说明,test.txt.r2及说明
删除SVN上已经提交的文件
-
进入需要删除文件所在的文件目录。
-
右键
-
TortoiseSVN -> 版本库浏览器® / Repo-browser
-
选择需要删除的文件。进入版本库浏览器之后,选择需要删除的文件或者文件夹。可以通过按Shift键盘选择多个文件或者文件夹。
-
删除文件。选择文件之后,然后点击右键,选择删除,对选中的文件进行删除,这个操作就会直接删除svn版本库中的文件。
-
输入备注。删除的时候需要提交svn操作日志。输入删除的原因,然后点击确定就可以将刚才选中的文件进行删除。
-
选择备注的方式。点击显示记录,就可以显示最近操作svn的一些日志,可以选择某一条日志,然后进行删除。
对比历史版本
- 点击我项目文件;
- 右键选择show log;
- 左下角选择Show Range;
- 选择要进行比较的两个提交版本;
- 在下面的文件路径Path中双击点开你要比较的文件;
回退到指定版本
摘自百度经验:如何使用TortoiseSVN将文件回退到某个版本
-
首先选中要回退的文件,右键——【TortoiseSVN】——【Show log】
-
打开【Log Messages】窗体,在这里可以看到该文件的各个版本(revision)的信息。
-
在【Log Messages】窗体上的Revision列表中选中我们要回退的历史版本(revision),右键菜单,里面有一个选项【Update item to revision】,点击这个选项,可以将文件更新到该修订版本。
-
在【Log Messages】窗体上的Revision列表中选中我们要回退的历史版本(revision),右键菜单,里面还有另外一个选项【Revert to this revision】,点击这个选项也可以将本地文件的内容变得和该修订版本一样,但是它和【Update item to revision】不同的是它只改变了文件的内容,文件的revision号没有改变;而【Update item to revision】不仅改变了文件的内容,同时也改变了文件的revision号。
-
综上,假如我们一不小心把文件改错了并提交到了服务器上,我们要取消这些修改的话,首先就是将这个文件还原到上一个修订版本的内容(Revert to this revision操作),然后将这个文件重新提交,那么服务器上的这个文件就恢复为了修改之前的内容,实现了文件的回退。