目录

  • 1.前言
  • 2.SVN服务端设置
  • 3.开始使用SVN
    • (1)新建版本库
    • (2)迁入项目到SVN服务端
    • (3)检索项目/拉取项目check out
    • (4)提交代码commit
    • (5)更新代码update
  • 4.SVN版本依赖冲突
  • 5.如何降低冲突解决的复杂度
  • 6.总结

1.前言

        本章介绍SVN版本控制工具使用的图文教程。上一章介绍https内网SVN服务端+SVN客户端安装配置。下一章,介绍外网访问内网的SVN服务器。传送门链接:

        (SVN)https协议外网IP端口映射内网IP端口访问SVN服务端

          CSDN链接:https://blog.csdn.net/qq_39038178/article/details/119249137

        上一章SVN服务端和SVN客户端的安装配置,传送门链接

        (SVN笔记)SVN服务端+SVN客户端Tortoise——安装配置

          CSDN链接:https://blog.csdn.net/qq_39038178/article/details/119139775


2.SVN服务端设置

        说明:服务器端需要提供IP端口帐号密码供客户端使用。

        (1)打开SVN服务端管理器

        (2)打开参数设置选项

        (3) 查看当前IPwindows+R键,键入ipconfig,按回车。

                服务端访问Url地址操作工程项目:192.168.0.100

         (4)VisualSVN Server Properties服务器属性——Network网络

                先Apply——再OK

                 server name的值可以设置为:
                        ——127.0.0.1(只能本地自己访问)

                        ——电脑用户名(只能本地自己访问)

                        ——当前IP(能够拼通IP的用户均可访问)

                        ——Server port使用默认值443即可)

         (5)新建账号密码:右键左侧菜单User,选择Create User

                用户设置:

        (6)用户分组Groups:右键左侧选择Groups,选择Create Group...

                组名:First_Group

         (7)访问URL登录服务端,右键左侧选择菜单Repositories,选择Browse

                若提示不是安全链接,页面下方点击高级——选择继续访问就能正常跳转了

                 登录成功:内容是空的,但是已经确保通过账号密码能正常访问SVN服务器端


3.开始使用SVN

        (1)新建版本库——仓库:左侧选择菜单Repositories,选择Create New Repository...

                         创建新仓库

                         选择默认设置,选择下一页,设置仓库名称

                         设置仓库名称ZS_Project

                         设置仓库目录结构

                          设置仓库账户访问权限——这里设置所有svn用户都有读/写权限

                          选择Create,开始创建仓库——ZS_Project

                           选择Finish


         (2)迁入项目到SVN

                           选择Copy URL to Clipboard拷贝URL地址

                            选择迁入的工程项目:MyMavenProjects

                            开始导入工程项目

                            工程项目导入成功,版本号自增1

                            导入工程项目时另外一种方式,选择自选导入工程目录,就得永久授权

                            需要输用户名密码

                            输入用户名密码,然后单击OK

                             在SVN服务器端查看导入的工程项目

        (3)检索项目/拉取项目——check out

                        在需要拉取项目的目录中,右键选择SVN Checkout...

                        拉取信息

                        拉取结果:记得刷新一下,项目就会出现绿色打勾图标,代表最新版本


        (4)提交代码commit

                         新建文件,右键选择TortoiseSVN,选择Add,将文件添加版本库列表

                         再次右键文件,会出现SVN Commit...,选择SVN Commit...

                         记得刷一下,文件会出现一个蓝色+号的图标,代表待提交共享状态

                          输入备注信息,进行提交

                          提交成功——SVN服务端和SVN管理器也会同时更新提交

                          SVN服务端commit后

                          SVN管理器commit后


         (5)更新代码update

                        如果当前资源不是最新版本,则在项目中空白地方右键,选择SVN Update

                        这里为了演示效果,另外新建文件夹OtherPerson,拉取SVN服务端最新项目版本

                        并“待commit提交的文件.txt重命名为“OtherPerson的更新了该文件.txt”,来进

                        行SVN更新代码的效果演示

                        然后,执行步骤(4)右键文件,会出现SVN Commit...,选择SVN Commit...

                        commit结果

                        commitSVN服务端实时变更到最新版本4

                        此时此刻,OtherPerson目录下的工程与SVN服务端是保持最新版本的项目、

                        OtherPerson的更新了“OtherPerson的更新了该文件.txt”,而MyMavenProjects

                        目录下的依旧是“待commit提交的文件.txt”,应在MyMavenProjects执行空白地

                        右键,选择SVN Update,更新最新版本

                        更新成功 


 4.SVN版本依赖冲突

         (1)版本冲突原因

                 假设A、B两个用户都在版本号为10时,A用户修改旧文件“OtherPerson的更新了该文                   件.txt”,A用户首先修改完成执行SVN Commit...”提交新文件“A用户修改的新文                       件.txt”到SNV服务器中,此时提交成功后SVN服务器中的旧文件OtherPerson的更新                   了该文件.txt”已被A用户修改为“A用户修改的新文件.txt”,同时文件版本号已经自增                       为“11”了。

半小时后...

                B用户A用户提交完成之后“”在版本号为10旧文件“OtherPerson的更新了该文                      件.txt上修改结束修改新文件为“B用户修改的新文件.txt”,修改完成之后执行SVN                 Commit...提交当前版本号为10的新文件到SVN服务器时,由于不是当前最新的版

                本号11上完成的修改,所以导致提交失败,提示版本过期。此时用户B执行“SVN                 Commit...”提交新文件,如果B用户和A用户修改了文件的同一行代码或文件,就会出

                现冲突。


         (2)版本依赖冲突现象

                通俗理解:同时提交更新同一段代码,本机工程项目版本号<SVN服务端工程项目版本号

                冲突发生时,SVN工具会在当前工作目录中保存所有的目标文件版本[上次更新版本、

                获取的版本(即别人提交的版本)、自己更新的版本、目标文件]。


         (3)解决版本冲突三种方式

                方式一:

                放弃自己的更新,使用svn revert (回滚),然后提交。在这种方式下不需要使用

                svnresolved (解决),相当于自己辛苦几小时敲的代码,不要了,重新再来敲一次,

                当然不需要解决冲突。


                方式二:

                放弃自己的更新,使用别人的更新。使用最新获取的版本覆盖目标文件,执行resolved                 filename并提交(选择文件—右键—解决)。


                方式三:

                手动解决:冲突发生时,通过和其他用户沟通之后,手动更新目标文件。然后执

                行resolved filename来解除冲突,最后提交。


         (4)解决版本冲突步骤

                参考如下其他人写的博客文章,不是本人创作,如有侵权,联系删除!!!

                参考地址:https://www.cnblogs.com/jose-Lee/p/4896088.html


5.如何降低冲突解决的复杂度

        (1)当文档编辑完成后,尽快提交,频繁的提交/更新可以降低在冲突发生的概率,以及发生

                 时解决冲突的复杂度。

        (2)在提交时,写上明确的message,方便以后查找用户更新的原因,毕竟随着时间的推

                 移,对当初更新的原因有可能会遗忘。

        (3)养成良好的使用习惯,使用SVN时每次都是先提交,后更新。每天早上打开后,首先要

                 从版本库获取最新版本。每天下班前必须将已经编辑过的文档都提交到版本库。


6.总结

仅自己学习记录,如有错误,敬请谅解~,谢谢~~~

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐