关于svn的简单入门和安装使用

一,什么是SVN(subversion)
     它是一个自由开源的版本控制系统,一组文件盛放在中心版本,记录每一次文件和目录的修改情况,subversion允许把数据恢复到早期版本,或是检查数据修改的历史,subversion可以通过网络访问它的版本库,从而使用户可以在不同的电脑上进行操作。


二.SVN服务器的搭建和使用
    1.首先下载svn服务器: http://subversion.apache.org/download/ 
        我下载的服务端是 Setup-Subversion-1.8.16.msi,注意下载时的和操作系统的位数一致,我的是64位
    2.安装服务器
       安装服务器端,安装路径可以自己改,我的安装路径是D:/Program Files/Subversion
    3.安装客户端
        下载客户端TortoiseSVN-1.9.3.27038-x64-svn-1.9.3.msi,
         并下载对应版本的语言包安装LanguagePack_1.9.4.27285-x64-zh_CN.msi
         安装客户端,安装路径也可以自己改,我的安装路径是D:/Program Files/TortoiseSVN
    4.安装服务器版本控制库
        路径可以自已定义,我的做法是在D盘上新建一个svn文件夹,双击打开它,然后在里面点击右键,[TotoiseSVN]->[Create Repository here]进行创建,版本库模式指定为默认的即可。
        Repository创建完毕后会在目录下生成若干个文件和文件夹:
  •         conf目录是用来设置参数配置管理的目录;
  •         db目录就是所有版本控制的数据文件;
  •         hooks目录放置hook脚本文件的目录;
  •         locks用来放置Subversion文件库锁定数据的目录, 用来追踪存取文件库的客户端;
  •         format文件是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号。
    ( 本步骤也可以用命令行来完成:svnadmin create D:/svn/repository

    5.设置版本控制库权限
        打开/conf/目录,打开svnserve.conf找到一下两句:
            # [general]
            # password-db = passwd
            去之每行开头的#,其中第二行是指定身份验证的文件名,即passwd文件
         同样打开passwd文件,将
            # [users]
            # harry = harryssecret
            # sally = sallyssecret
         将# [users]开头#字符去掉,这是设置用户,一行一个,存储格式为“用户名 = 密码”,
            如可插入一行:wang=123,即为系统添加一个用户名为wang,密码为123的用户

    6.启动服务器,并将svn设为系统服务
        由于win7的安全权限问题,安装系统服务时会出现“[sc] openSCManager 失败 5 拒绝 ”错误。
        解决方案:
        打开cmd  输入:
        sc create svnser binPath= "D:/Subversion/bin/svnserve.exe --service --root D:/svn"
        回车。
        不提示错误即为成功。   
        如果安装不成功,请在CMD中运行sc delete svnser,然后再重新安装
        (“=”前不得有空格,后必须有空格。 svnser为自定义的服务名称)
       
      7.自动启动:
            启动后在计算机->管理->服务和应用程序->服务->找到svnser,右键属性找到启动类型改为自动,
            这样每次开机它都会自动运行了
      
      8.访问SVN服务器
          在桌面上点右键[TotoiseSVN]->[Repo-browser]在地址栏里输入svn://localhost/repository,这样就可以访问svn了
   

三.Eclipse插件安装 

1. 下载eclipse支持SVN的插件(也可通过eclipse market直接安装)

2.在eclipse的dropins文件夹下引入该文件
       
3.重启eclipse,即可完成插件的安装

4.检验安装是否成功


四.SVN的使用
    提交代码产生冲突的解决
    1.提交本地代码前先更新,更新的目的让本地代码与服务器中最新版本的代码保持一致。
    2.当你更新完以后,想提交本地代码时,在这个时间间隔内,别人也对同一文件先一步作了提交,并对该文件作了修改,
       那么你提交时,必须会产生冲突。(如果提交前不更新,那有很大概率会产生冲突,否则,会减少冲突的机率。)
     如下这种情况指你提交1.txt文件时和别人发生了冲突:
    
     3.产生冲突的解决方案
  • 首先打开1.txt,文件内容如下
  
  • 然后去掉多余代码,1.txt变成如下:
 

  • 进行提交,还是提交不了
           原因是冲突导致了产生了三个文件,解释如下:
           1.txt.mine是冲突前自己本地的文件内容(已修改)
            1.txt.r4是冲突前和版本库保持一致的本地文件(未修改)
            1.txt.r5是别人赶在你提交前已提交的文件,也是svn版本库中最新的文件

        其中<<<<<.mine和======之间的代码块是你自己的
        而======和>>>>>>>.r5之间的代码块是别人与你冲突的

解决方案一:
    你选择revert(回滚)操作,由表示自己放弃更新的部份,然后直接提交,你的代码就是服务器上最新的代码,即另外一个用户提交后的代码,你的代码不会被提交。则此时其他三个文件被自动删掉。
这时1.txt内容如下:
aaaasdf11222333b
此时,你自己要修改的代码可以手动复制进去,然后即可提交成功


解决方案二:
    可以选择编辑冲突(editConficts)按钮,进行合并(merger)操作,这种做法需要双方共同协商将代码改一致后再提交

程序员解决冲突按步骤走:
   有冲突:
  •        与资源库同步
  •        更新操作
  •        编辑冲突
  •        标记冲突已解决
  •        提交
    无冲突:
  •     与资源库同步
  •     提交


    4.创建分支及合并
,适用情景:当我们把项目的所有文件放在主杆(trunk)时,由于需求的变更,我们还需要在主杆上继续开发,在此我们可以
    新建一个分支,来增加新的需求那一块,主杆上继续开发,等分支上的代码没有问题的时候,再合并到主杆上来。
    创建分支的最大目的是:跟主线进行并行开发的时候并不影响主线的开发
    一般步骤:    
  •     新建分支

  •     合并分支到主线上






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值