首页 > 代码库 > SVN 版本控制工具

SVN 版本控制工具

1,安装完服务端VisualSVN Server和客户端TortoiseSVN 后,随便在一个文件夹下,右键,会看到有SVN checkout 选项,这个选项只有在第一次在仓库下下载的时候会用到;

1)checkout的第一个路径:,如果客户端SVN和服务端SVN是装在同一台机器上:当选择checkout时,第一项需要选择一个服务端仓库路径:到SVN服务端选中某个仓库,被选中后,窗口顶部会出现一个路径,改路径就可以填写在checkout的第一项空格里;

如果客户端SVN和服务端SVN 不是在同一台机器上,甚至不是在一个局域网内,而是通过公网去访问,此时上面的路径中的计算机名就要改成IP地址+端口号的形式(ip地址就是服务端所在的公网ip,端口号就是服务端安装时显示的端口号);

2)checkout的第二个路径:是希望将checkout放在本地磁盘的哪个路径,如果希望存到文件夹里,不必新建一个文件夹,直接写文件夹名字,若检测到没有,会自动创建的;这个文件夹是用来和服务端联系的文件夹Test;在这个Test文件夹下,可以进行各种关于SVN客户端的增删改查操作;

3)填写完后,会出现一个Accept the certificate permanently  的提示,选择上面的Accept the certificate permanently提示,以后就不会出现了,再继续,会出现填写用户名和密码,填写曾经在服务端创建的User用户名,密码即可;并且选中左下角的方框,否则下次还会要求你输入;

4)完成后,打开checkout在本地磁盘的路径的文件夹下,会有.svn文件夹,若没有,则应该去设置“文件夹选项”--查看-->把隐藏文件夹选项 不要选中 ,就会显示出来了

3,SVN的基本操作:都要通过commit与服务端联系;

1)新增(提交)文件:在Test文件夹下,新增一个文件Test.java,会显示蓝色的问号,表示客户端和服务端有差异了,客户端多了一个等待提交的文件;在当前Test文件夹下,右键,点击SVN commit 提交,然后在弹出的对话框下部,选中java文件,OK;然后该文件的图标从蓝色的问号变成绿色的对号,并且在服务端建好的仓库Test下,会看到提交上来的java文件;

2)删除文件:直接在(磁盘里删除)Test文件夹下,右键删除即可,此时,在刚才提交java文件的对话框中,java文件显示为红体字,显示为missing,表示客户端删除了该文件,但服务端还存在该文件,这时,只要将其再次选中,OK,即在服务端将该文件也删除了;

3)修改文件:在Test.java文件里面写几行代码保存后,该文件图标变成红色的感叹号;这个文件与服务端的java文件不同,可以通过查看服务端的该文件,右键点击Browser(通过浏览器查看,会提示输入用户名和密码,输入在服务端创建的用户名,密码即可);

再在Test文件夹下,右键单击SVN commit提交,然后弹出的对话框显示此时的该文件是modified状态;选中提交即可;图标会变成绿色的对号,表示提交成功;

技术分享

技术分享

 

4,SVN常见问题一:其他人的代码覆盖了自己的;

在服务端创建了A和B两个用户,现在清空A的权限(在文件夹下,右键点击TortoiseSVN->settings->点击clear all即可),使B来进行操作,让B来下载A已上传的文件Test.java(因为实际工作中,就是会同时有很多人共用一个项目),接下来让A操作Test,B操作B的Test,再次返回到Test文件夹的上级目录,右键Checkout一个B的Test文件,起名为B_Test,此时因为清空过权限,会再次弹出Accept the certificate permanently,选中后,此时,不要点击左下角的保存权限了,因为A和B 来回切换,要经常改用户名和密码;checkout之后,就会发现B_Test文件下也将Test.java下载下来了;

技术分享

技术分享

每天上班第一件事就是SVN update更新代码,下班前第一件事就是SVN commit提交代码

由于多人共享一个项目文件,A的代码可能会被B无形之中改成自己的代码;A如何找回自己的代码呢?

右键点击TortoiseSVN->show logs(查看历史记录):

技术分享

想要将A的文件修复,就在A的文件上右键,点击Revert to this version ,弹出对话框在,再revert即恢复到这个版本了;

操作完之后,再查看Test.java文件,会发现内容又变回A编辑的内容了;不要忘记然后再右键提交即可;

2)填写修改的原因:在提交时出现的对话框的上半部分,填写修改原因;

如:B又一次改写代码,在原来的基础上添加了一个S;z在提交时,应该注明原因;

技术分享

3)B又一次将文件给删除了,A到自己的Test文件夹下,SVN update后,发现java文件已被删除了,此时,没有办法直接在被修改的文件上show log了,可以直接在根目录Test下 ,右键点击TortoiseSVN->show log就会发现所有的更改记录;

技术分享

会发现最后一次操作是B操作的,在对话框的下半部分,显示是delete删除操作;再找到对应的以前的文件保存到本地Test目录下,再次提交即可;

4)自从第一次提交文件后,文件就会保存到本地磁盘的仓库Resposity中,只要这个仓库存在,就没问题;

SVN 版本控制工具