SVN简单操作:服务器/客户端的安装。文件的提交/删除/更新/误删/查看修改历史/下载历史版本。
一、版本控制工具的作用
什么是版本控制?
版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。
为什么要用版本控制工具?
将代码放在版本控制工具中,那你的代码就是受保护的。你的版本控制工具的行为是受约束的。别人的代码是不能乱动的。一个人很难开发一个项目,必然需要和其他人合作。版本控制工具的作用,是让人更好的协作。每个人的代码可以共同的调用,完成更大的功能。又不会相互之间产生冲突。
二、SVN下载与安装
用哪种控制工具不是重要的。重要的是能完成这项工作。
SVN-客户端:TortoiseSVN:下载地址:https://tortoisesvn.net/downloads.html
SVN-服务端:VisualSVN:下载地址:https://www.visualsvn.com/visualsvn/download/
如果自己电脑带不动,可以试一下网页版本的SVN服务器:https://svnbucket.com/#/
大家可根据自己的需要求去对应版本和操作系统位数安装。这里我们只介绍下在自己电脑上安装。
SVN-服务端的安装步骤
运行SVN-Server后进行简单创建。
创建仓库
---------创建访问的用户:
SVN-客户端的安装步骤
客户端安装结束后,在计算机任何文件夹中右击,快捷菜单中出现以下两个内容,即安装成功。SVN
Checkout是从SVN文件夹下载文件所需要用到的。
注:https://DESKTOP-4CAJVOD/svn/Test/
如果客户端和服务端不是安装在同一台机器上,甚至不在同一个局域网内,希望通过公网联系服务端的。这里的计算机名就需要改成(IP地址:商品号)的形式。IP地址就是服务器端所在的公网IP,商品号是安装服务端时填写的端口号。其他不变。之前自己选择的文件夹就是存在文件的地址。也可以自己更改。
在刚才选择的文件夹下,右击,选择SVN Update.
注:这个(.svn)文件夹,不能删除。如果删除,那就是普通文件没有区别了。这个文件夹就不再是和服务端联系的文件夹。
测试一下:
本机测试:
提交成功:
操作时候的注意事项:
A.在修改之前,建议先update 操作再进行commit操作,省的覆盖前面在你mod之前的操作;
B、在删除操作之前,先确定是否本机数据,还是的确要删除服务器端数据,删除提交commit才是正式删除服务端数据;
三、SVN的基本操作
1、新增文件提交到服务端,一些默认的文件,
在本地进行新增,删除操作,只能属于客户端的操作。如果要影响到服务器,必须要在commit下,选择文件后进行。必须要通过commit通知服务器端,我删除/新增了一个文件。
2、修改文件提交到服务器
四、SVN的常见问题
前面的操作都是一个用户在进行操作,但在实际开发过程中,是很多小伙伴一起开发,这就可能会出现问题。用户A提交的文件,不小心被B修改了。比如在JAVA开发中,一个参数的改变可能就会出现BUG。
换个用户试一下。
清空权限,即不让之前的用户再操作这个文件夹。
一般而言,项目开发中,此处B修改了文件。而用户A登录后更新文件,便会发现问题。
如果要恢复成以前的文件的操作。
此次修改操作提交后。过段时间再回来看,不知道当初为什么要进行这个修改。
如果是其他伙伴误删文件。你更新后发现之前的文件不在了。
在本地磁盘上找到刚才保存的文件,再移动回去进行提交即可。
如果A和B都对文件进行了修改。并提交。都认为自己的文件是最新。假如B先提交。那么A再提交就会出现下面问题。
如果没有出现这个情况,说明改的不是同一行代码。而我这里测试时改的是同一行的内容。文件上出现了黄色感叹号,并出现了附带的几个文件,这时。SVN上出现了冲突。
将你需要的版本的名字改掉。并把其他文件删除,进行commit,这样提交上去的就是你想要的版本了。
如果多个用户修改的代码很多,产生冲突的地方不止一处。
用户A先将自己修改的文件移动出来将重命名,将SVN服务器上的新文件update下来后,再将自己的文件移动进来。
不管代码有多少行,都可以对比出不同的代码。不是在上面这个对话框中进行修改。而是在文件夹中去进行。修改后,删除自己的文件,再进行commit。
在实际开发中,如果B修改A定义的方法,而A更新后却没有及时发现。这在以后的开发中就存在一定的影响。过了很长时间项目进行测试时,发现定义的方法出现。那么除了上面磁盘上进行比对,还可以在svn历史记录(show log)上进行比对。
可以不断进行上面步骤去进行一版一版的比对。可以找到很久以前修改的版本。再进行相应修改即可。