zoukankan      html  css  js  c++  java
  • 初识SVN

    备注:若有不正之处,请多谅解并欢迎批评指正。转载请标明链接:https://www.cnblogs.com/pmbb/p/11471430.html

    SVN

    需求:

    1.为了数据的备份

    2.代码还原

    3.协同修改

    4.多版本项目文件管理

    5.追溯问题代码的编写人和编写时间

    6.权限控制

    解决方法:版本控制

    Subversion是一款版本控制的工具软件,通常也称为版本控制器,简称SVN。

    安装SVN

    创建版本库

    --先进入到你项目要保存的目录

    --然后 svnadmin create 目录名

       文件目录结构:

    conf  --当前版本的配置文件(设置文件权限的时候用到这个conf)

    db    --数据库保存的地方

    hooks --钩子程序(像sql里的触发器)

    locks  --跟文件的锁定有关

    format

    README.txt

     

    启动服务器

    netstat -am   查看监听的端口号(看3306后边3690)

    不能关闭命令提示符窗口(因为关闭也代表着服务也关闭了)

    有一种方法可以解决

    注册windows服务(让它随着系统的启动自己启动)

    也是在命令提示符窗口里边  

     sc  create  SVNService binpath= “svn的可执行文件路径 --service -r 版本库的路径” start= auto depend= Tcpip

     

    条件:以管理员身份运行命令提示符窗口

    看启没启动 启动了说明命令没打错。如果没启动成功,检查一下引号里的命令有没有写错

    命令行(客户端)

    在SVN工作空间找到具体的工作文件

     

    svn  checkout svn://localhost/项目名  (多仓库的需要项目名  单仓库的不用)

     

    现在你的工作文件中就有了“项目名”这个文件夹了,假设在里面写了一个TXT

    然后使用提交命令

     

    先进入项目名这个目录底下

    svn  add 项目名.文件扩展名   (先加入到版本里)

     

    svn  commit -m “提交说明” 项目名.文件扩展名

     

    条件:先到服务端的具体项目下的conf里的svnserve.conf 打开

    看到

    # anon-access = read (anon是匿名单词的前四个字母)

    # auth-access =write(auth是权限的前四个字母)

     

    然后把第一个改成anon-access = write

    =====================

     

    来到另一个 进行检出

     

    先来到工作目录

    svn  checkout svn://localhost/项目名

     

    进行文件修改后

    先进入项目名这个目录底下

     

    svn  commit -m “提交说明” 项目名.文件扩展名

     

    //文件更新

    svn update 所要更新的文件名

    Eclipse插件安装

    安装好的插件会在Team下展示

     

    把下载好的插件文件解压好放到eclipse下的dropins文件夹下即可

    Eclipse需重启一下

     

    还可以在help 里 的eclipse markeplace... 里在线装

    Eclipse分享和检出

    创建好的项目 右键点Team 选择share project 选svn 下一步 选中创建新的资源库位置(c)

    下一步 输入地址 如:svn://localhost/OA  再点击下一步 finish

     

    切换到同步视图 选择项目 右键选择提交 上面空着的是写日志的地方 点击OK

     

    如果想看一下服务器端svn下有什么

    我们可以打开透视图。Open perspective 选中svn资源库研究

     

    如果创建的项目是动态web项目会有点不一样 build文件夹没有

     

    项目右下角有小圆柱的代表添加进去了,但build没有 build文件夹里装的是编译后的class文件 编译会有些出入,所以不把build放入

     

    检出:

    右键 点 import 选择svn 下的从svn检出项目 点击下一步 默认选中的是创建 点击下一步 输入地址 如:svn://localhost/OA (localhost具体看情况)下一步 选中具体项目名称 下一步 下一步 finish

     

    可以看到检出的项目中build文件右下角是一个蓝色的问号 表示:没有纳入版本控制的目录

     

    选中build 右键 Team 选中添加至svn:ignore(D) 点OK 然后可以看到build文件没有符号了,说明build文件已经没有参加版本库的管理了

     

    项目右下角是一个黑色的星号 代表:该项目下有没提交的一些文件

     

    如果要提交的话,右键点Team 点击提交(c)... 提交后会变成一个金色的圆筒

    更新提交

    改了文件的东西 文件右下角会有一个黑色的星的图标

    Team 下点更新 能拿到刚更改的数据

     

    如果新建了一个Java文件 点Team (选中添加至版本控制(A) 可直接提交)点击提交

    仓库分析

    在svn同步视图中

    右键  新建 资源库位置 URL:svn://localhost/OA (我们来研究一下URL)

     

    然后打开计算机属性里的服务 找到svn的服务 查看属性 里面有一个可执行文件的路径:

    我们可以看到这是svn仓库的位置

     

    URL地址必须指向一个带有conf/db/.../这些目录的文件夹的目录

     

     

    冲突

    一个人在第5行改了代码 提交了

    另一个人也在第5行做了修改 (事先没获取直接修改)然后提交 会报错说文件过时了

    必须先更新一下

     

    如果没有修改的同一个地方是可以提交的

     

    在冲突的文件点右键 Team 有一个编辑冲突 编辑完后保存

    选择刚刚的冲突文件点右键 选择标记为解决 点击OK

    然后文件右下角有黑色星号(代表与服务器文件对比有更改)

    这个时候提交就可以了

     

    权限

    在服务器下的具体文件下的svnserve.conf 打开编辑器

    打开 auth-access=write

     

    password-db=passwd  我用那个文件来保存我用户名密码的信息

    authz-db=authz  表示用authz 这个文件来保存授权的信息

     

    然后打开conf文件夹下的passwd

     

    写入 如:

    tom  = 123456

    jerry = 123456

    ceshi = 123456

    然后打开authz  去设置具体的权限

     

    我们可以看到[groups]  --分组的意思

    kaifa = tom,jerry

     

    [/foo/bar] 表示:给根目录下的某一个目录分配权限

    [/]

    @kaifa = rw @可以让它知道这是一个组不是人

    ceshi =r

    * = 表示:起到一个屏蔽的作用,除了上面设置的这些,其他的什么用户都什么权限也没有

     

    然后提交的时候会弹出提示框。输入用户名 和密码

     

    在文件夹后面就可以看到是哪个用户提交的了

     

    时光机(代码还原)

    比如:选中需要的Java文件  右键 Team 选择显示资源历史记录(H)

    此时会报错

     

    解决办法  来到服务器上的具体项目文件夹下的conf中的svnserve.conf文件 将# anon-access=read改为anon-access =none

     

    这个时候就可以了。

    如果想变成以前的版本 直接选中右键 选中获取内容即可 然后提交

     

    TortoiseSvn

     

    除了eclipse插件 还有一个独立的SVN 叫做TortoiseSvn

    参考网址:http://www.gulixueyuan.com/my/course/53

  • 相关阅读:
    一个程序员的职业规划
    基于Andoird 4.2.2的Account Manager源代码分析学习:创建选定类型的系统帐号
    [置顶] C++学习书单
    js快速分享代码
    The declared package does not match the expected package
    IBM Rational Appscan Part 1
    IBM Rational Appscan: Part 2 ---reference
    阅读redis源代码的一些体会
    18 Command Line Tools to Monitor Linux Performance
    代码规范
  • 原文地址:https://www.cnblogs.com/pmbb/p/11545511.html
Copyright © 2011-2022 走看看