zoukankan      html  css  js  c++  java
  • SVN的使用

    一、如何在本机下操纵SVN 

    使用步骤

    1、下载svn(TortoiseSVN),测试svn是否成功:

    svn --version

    2、创建本地临时文件目录,这里是模拟服务端的仓库,代码提交地方,也是代码拿取的地方,假如项目做的事OA系统,就将代码放入OA中

    3、利用svn在临时文件目录中创建中央仓库

    svnadmin create D:TempOA

    此时在OA目录中会生成一些文件目录

    4、启动服务端程序

    D:TempOA>svnserve -r -d D:TempOA     #-r表示版本根目录   -d表示后台执行

    5、注册windows的svn服务

    sc create MySVNService binpath= "D:SVNinsvnserve.exe --service -r D:Temp" start= auto depend= Tcpip

    并检验服务是否启动:

    6、此时客户端可以访问服务端(注意:此时是另外开启一个cmd窗口),这里是复制主工作空间

    先创建一个文件夹,用户开发者操作空间,这里是代码提交和拿取的工作空间,如D:/TempOA/MyOA/OA,该OA文件夹中拥有helloword.txt文件,用于模仿即将提交的代码

    D:TempOPMyOA>svn checkout svn://localhost/OA

    7、提交文件

    D:TempOPMyOAOA>svn commit helloword.txt

    此时会报错,是因为说明该文件没有纳入版本控制,不可以提交到服务器端。

    8、纳入版本控制

    D:TempOPMyOAOA>svn add helloword.txt      #A表示刚刚加入仓库

    9、提交代码

    此时报错是因为提交代码时得注明一些提交的信息,如提交版本、提交人等。。

    D:TempOPMyOAOA>svn commit -m "first commit" helloword.txt

    此时还会报错,是因为没有权限操作OA,得到OA中设置访问权限

    打开服务端文件夹D:/Temp/OA中的svnserve.conf文件夹,打开# anon-access = read注释,并将read改为write

    此时通过cmd窗口再次提交代码,代码可以提交成功

     10、检验是否提交成功

    创建一个新文件夹用于模拟另外一个开发者Temp2,从服务端复制仓库

    此时Temp2中会生成OA文件夹,其目录中有helloword.txt文件,说明提交成功

    11、改变版本提交

    向helloword.txt文件夹中新添一些数据,并提交代码

    D:Temp2>cd OA
    D:Temp2OA>svn commit -m "jiaxianseng commit" helloword.txt

    此时可以看出提交的版本变成了2

    12、更新版本库

    此时开发者一还是原来的版本,更新需要update命令

    D:cd TempOA
    D:TempOA>cd MyOA
    D:TempOAMyOA>cd OA
    D:TempOAMyOAOA>svn update helloword.txt

    二、SVN在myeclipes中的使用

    1、前提本机中安装了svn客户端

    2、下载myeclipes的svn插件:下载插件

    3、将下载好的压缩包解压,并将其中的features文件夹和plugins文件夹复制到myeclipes安装目录中的dropins目录中

    4、启动myeclipes

    5、新建项目,右键点击项目,选择Team中share project,选中SVN

    6、选择创建新的资源位置,并指定URL

    7、此时会提示是否进入同步界面,选择yes,此时可以提交代码,可以指定提交部分,也可以整个项目一起提交,右键点击项目,选择提交,并写上备注

    8、其他开发者如果想要拿取代码,直接采用import->SVN

    相关注意项:

      SVN有几个图表需要注意:

           1) 金色圆筒表示版本和仓库保持一致

           2) 黑色星号表示在原有文件中新增内容但是未提交,

      3) 问号表示新增类但是未提交,未参与版本比对

               

    三、关于SVN冲突与解决

         1、什么是SVN冲突

         SVN冲突是指两个开发者更改同一个地方(如同一条语句),后来提交的人会显示SVN冲突,表示提交已经过时

      

      2、关于SVN冲突的解决

       1) 若出现以上情况,先更新代码,此时会出现以下内容,显示在两者版本不同的地方

      

           2) 项目下也会新增历史版本,方便开发者进行对比

        3) 右键点击发生冲突的文件,点击Team->编辑冲突,此时会出现两个版本不一致的地方,只要点击保存,默认认为你冲突已经解决

      4) 冲突解决后,有冲突的类会变成图下的形式

           

        右键点击原来冲突的类,选择Team->标记为解决,此时项目下的历史版本就会自动删除,此时提交不会出现错误

        

    四、关于SVN设置权限

       SVN设置权限是基于对代码的安全性操作,防止非权限用户操作代码

         1、编辑svnserve.conf文件

      1) 之前是采用的匿名访问,如果要设置权限,首先得开启授权访问代码

    # anon-access = write     #匿名访问
      auth-access = write     #授权访问

      2) 开启password-db,表示用哪个文件来保存用户名密码信息

     password-db = passwd
    

      3) 开启authz-db ,表示用authz文件来保存授权信息

    # authz-db = authz
    

      2、编辑passwd文件,该文件是用来新增授权用户名及其密码

         这里新增tom和jerry用户

    tom = 123456
    jerry = 123456
    ceshi = 123456
    

      3、编辑

    [groups]
    # harry_and_sally = harry,sally
    # harry_sally_and_joe = harry,sally,&joe
    
    kaifa = tom,jerry           #新增用户组      
    
    
    # [/foo/bar]
    # harry = rw
    # &joe = r
    # * =
    
    [/]                         #表示在跟路径下
    @kaifa = rw          #开发组有读和写的权限
    ceshi = r           #测试只有读权限
    * =               #过滤其他用户,没有读写权限

      4、此时代码的更新和提交都需要经过用户验证

           

    五、关于SVN的“时光机”

      SVN时光机是指查看获得历史提交的版本

      1、想要获得历史版本,首先得将配置文件svnserve.conf文件中的匿名用户设置为none

    anon-access = none    
    auth-access = write
    

      2、此时右键点击项目文件,选择team->显示资源历史记录,便可查看到历史的版本

      

      

  • 相关阅读:
    Amazon Route 53
    监控应用程序负载均衡器ALB
    DynamoDB 流
    DynamoDB 中的限制
    Amazon SNS 消息属性
    关于基于 SAML 2.0 的联合身份验证
    Amazon EBS 性能提示
    Laravel5.1注册中间件的三种场景
    编译LNMP环境
    傻瓜式搭建LAMP环境
  • 原文地址:https://www.cnblogs.com/cailijia52o/p/9460560.html
Copyright © 2011-2022 走看看