SVN版本控制器

一、SVN的安装:

    1、SVN分为客户端和服务器端,一般情况下我们只需要安装客户端即可,将本地副本上传到服务器的仓库中;但是我们为了学习,也可以装上服务端。

    SVN服务端下载地址:http://yunpan.cn/cgE99v2mZDW8h  提取码 22ab

                    TortoiseSVN下载地址:http://yunpan.cn/cgE9ELtaNchMK  提取码 f99e

      2、 验证服务端是否安装成功:在cmd 中输入 svn --version   如果出现版本信息,则表示安装成功。

      3、创建一个版本仓库:

                     svnadmin create 版本仓库的路径   比如:svnadmin create E:\\svn_home    这样, 在E盘下就会生成一个文件夹svn_home,这个就是创建了svn服务端的仓库。

      4、启动SVN服务:

                    cmd中输入 svnserve -d -r 仓库路径  可以使用svnserve --help查看参数。 注意,这里的 -d 在window中无效。

      5、注册window服务:

                安装完svn服务端后,默认是没有写入window服务的,这样,我们每次使用到svn时,都要用上面的方式启动,比较麻烦,我们可以将其写入window服务,写入                    window服务需要是window管理员权限才行,注意下面的 sc 命令是window命令,不是svn的命令。

             sc create 服务名 binPath= "服务程序路径 --sevice -r  仓库路径 --listen-port 端口号" displayName= "逻辑名(显示名)"

         比如:sc create svnbinPath="D:\SVN\server\bin\svnserve.exe --service -r e:\svn_home --listen-port 3690" DisplayName= “svn“                    

               l  参数:binPath:是svn的安装目录再加svnserve.exe程序,
               l      --service -r :指定svn仓库的路径,上面是e:\svn_home
               l      --listen-port:指定此服务的端口号,不写的话默认为3690.
               l      displayname:是服务显示名,如果不写,默认会和服务名一样。

         上面注册后,进入window服务,就可以找到svn这个服务了。如果要删除这个服务,可以在cmd中执行 sc delete 服务名  即可删除指定的服务。


        6、 TortoiseSVN安装:下载后安装即可,安装后会在右键菜单中显示TortoiseSVN的菜单
                   第一次将一个文件夹import到svn仓库时,会提示认证失败的错误,这表示你没有权限上传文件,需要在你的仓库中修改配置,新增用户。
              比如我的svn仓库安装在E:\\svn_home文件夹下,这个文件夹中会有conf文件夹,conf文件夹中会有svnserve.conf配置文件和passwd文件,
                  在svnserve.conf文件中修改配置:
                           将第12行、13行、20行的配置前面的(# )注解去掉,记得前面的空格也要去掉; 
                                anon-access = read表示没有权限只能读,为默认值,其值有none,write,read
                                auth-access = write表示有权限可以写  ,为默认值
                                password-db = passwd   表示启动passwd这个配置文件
                  在passwd配置文件中修改配置:
                                在最后新增用户名,格式为:用户名 = 密码,比如:user=user  这里可以根据需要配置多个都可以。
                 通过以上配置后,就不会再有认证失败的错误出现了。
                  如果出现拒绝访问的错误,表示你的svn服务没有开启,请开启svn服务。



二、Tortoise常用的一些子命令:
           import:将未纳入版本控制器的文件或目录提交到版本库中,一般只会在第一次提交时使用。
           checkout:从版本库标签中下载指定版本的工作副本,默认为最新版本。
           revert:将本地工作副本回复到原始版本。
           update:将版本库中修改的合并到工作副本。
           commit:将本地工作副本提交到版本库中。
           add:添加,比如你新建了一个文件,svn并不知道是什么文件,因为在仓库中并没有,这时你可以使用add命令

三、svn冲突:当你提交文件的过程中出现了冲突,图标会变为黄色的感叹号,表示受到了冲突,冲突是指团队协同工作时,多个团队成员同时修改同一个文件面导致无法提           交的情况,这时我们需要先选择更新操作,可以将冲突文件下载到本地,会有3个文件;
         比如:index.jsp文件,有两个成员同是修改过,A成员提交成功后,B成员再提交时就会发发冲突,提交不上去,B同学可以先选择update操作,会出现3个文件,分别为
            index.jsp.mine(B成员修改的文件)    index.jsp.r8(第8个版本,也就是早上一起下载的那个版本) index.jsp.r9(第9个版本,A成员提交的版本)
         选中index.jsp(带有黄色感叹号的文件)-----------》右键———》TortoiseSVN——》Edit conflicts  ,会出现如下窗口:
   

我们就可以在上面窗口中进行编辑,
                 选中红色的那一行,右键——》以下四个选项,根据需要选择:
                                  use this test block(使用这个测试块
                                  use this whole file(使用整个文件
                                   use test block from “mine” before “theirs”(mine在我之前)
                                 use test block from “theirs” before “mine”(mine在我之后)
                  选中设置好后,最下面的Merged - index.jsp中红色部分的那些问题就会被替换,再选择下面红色圈中的按钮即可
                    
 

完成后关闭此窗口,发现刚刚生成的那3个文件不在了,此时再提交即可成功。

                   上面是一种方法,还有一种方法:就是用revert放弃所做的修改,如果你这样做的话,我们今天所写的代码都会没有了。所以不要这么!

    关于冲突的建议:
               1.修改文件之前,先进行一次update操作;
                2.修改完成之后,及时commit,不要在本地停留过长时间;
               3.在团队成员协同时,尽量不要修改不属于自己的文件。

四、svn锁:
                可以查看SVN锁解释.htm
 
 




       


     

你可能感兴趣的:(SVN版本控制器)