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

     SVN

    1.什么是SVN   

    SVN: subversion  子级版本  (子级源代码版本控制管理软件)

    svn:全称Subversion,是代码版本管理软件,管理着随时间改变的数据。这些数据放置在一个中央资料档案库 (repository) 中。 这个档案库很像一个普通的文件服务器不过它会记住每一次文件的变动。这样你就可以把档案恢复到旧的版本或是浏览文件的变动历史。 许多人会把版本控制系統想像成某种 “时光机器

    使用svn可以很好地协调一个团队共同开发同一个项目,而不会出现代码冲突、覆盖的情况

    上图是多人共同开发同一个项目,内部最大的问题是,在比较短的时间内如果有多人同时开发同一个文件,会造成彼此代码覆盖的情况发生A的代码在最后会把B的代码给覆盖掉,10点以后就只体现A程序员的功能效果。

    SVN其中的作用一个就是避免上述情况发生。

    2. 使用svn的作用

    ① 多人开发同一个项目不会出现代码覆盖情况。

    ② 针对一个文件可以创建许多不同版本,并且可以随时查看不同版本的内容。

    ③ 公司领导可以通过svn查看每个人的工作情况

    使用svn服务

    1. svn仓库提交第一个程序文件

    步骤:

    右键------> SVN---->Add

    (本地的.svn对该文件形成管理)

    右键------> Commit

    (本次的文件提交给svn仓库)

    1.1 文件颜色标志

    ① 蓝色加号:本地的.svn对该文件有形成管理

    绿色对号:本地文件、.svn管理的版本文件、仓库文件 三者一致

    红色叹号:本地文件    .svn和仓库文件 不一致(用户自己修改了该文件)

    黄色叹号:表示该文件正处于冲突状态

    2. 多个程序员给仓库提交文件

    3. 同时运行多个svn仓库服务

    把所有仓库的上级目录当成服务给启动起来。

    • svnserve  -d  -r  d:/svnServer/app/

    主机名:svn://localhost  ---------------->app目录

    svn://localhost/student---------->student仓库取得联系

    svn://localhost/book------------->book仓库取得联系

    svn://localhost/shop-------------->shop仓库取得联系

    3.1 旧用户更换svn主机名

    删除.svn文件,断开与仓库的联系

    重新checkout通过svn新主机名建立与仓库的联系

    4. 同一个文件的不同版本切换

    一个程序文件可以在svn仓库里边形成许多不同版本,并可以随时查看。

    总结:

    1. 安装svn的服务器、客户端软件
    2. 创建仓库(根据不同的项目创建对应的仓库)

    > svnadmin  create  仓库地址

    1. 使用svn( checkout    update   commit )
    2. 启动svn仓库服务

    > svnserve -d -r  仓库地址

    冲突解决(重点)

    上图两个程序员在短时间之内共同开发同一个程序文件(goods.php)

    10点以后系统只会体现linken开发的功能(mary开发的功能被linken覆盖)

    文件覆盖的解决:

    ① 给每个文件分配一个“令牌”,谁拿到令牌谁就有权利开发该文件

    (同一个程序文件同一个时间点只允许有一个人开发)

    ② 给每个文件设置一个版本号码,提交的时候如果服务器的版本等于本地版本号码就允许提交,否则不允许提交(本地号码 小于  服务器版本)

    冲突:

    广义角度的冲突,提交程序文件 本地版本号码 小于 服务器版本号码

    狭义角度的冲突,多个程序员对同一个文件同一处代码的修改再共同提交文件的时候回产生冲突。

    1. 冲突具体形式:

    1.1大家修改的代码不在同一处

    解决:

    执行update操作,把仓库最新的文件更新到本地,并和本地文件做Merge融合操作。

    继续提交文件即可。

    1.2 大家修改的代码在同一处

    无论什么样子的冲突:解决就是通过update把最新的版本更新到本地,文件稍作修改后继续提交。

    账号和权限

    1. 设置账号

    2. 给账号设置权限

    2.1 给具体用户设置权限

    2.2 给一个别设置权限

    2.3 开启只操作某个目录权限

    步骤:

    ① 管理员先把该目录给创建出来并提交给svn仓库

    ② 外包团队给该 目录提交文件

    ③ 管理员删除本身创建的目录,执行update更新操作,即可查看外包团队的工作情况

    设置开机启动项服务 svnd

    sc create svnd binPath= "E:svnServiceserverinsvnserve.exe -r E:svnServiceapp --service" start= auto

     

  • 相关阅读:
    CopyOnWriteArrayList 读写分离,弱一致性
    Java中定时器Timer致命缺点(附学习方法)
    排队打饭:公平锁和非公平锁(面试)
    母鸡下蛋实例:多线程通信生产者和消费者wait/notify和condition/await/signal条件队列
    volatile,synchronized可见性,有序性,原子性代码证明(基础硬核)
    Synchronized用法原理和锁优化升级过程(面试)
    Java中多线程安全问题实例分析
    iOS 相互引用引起内存泄露问题说明
    iOS app 集成友盟推送问题
    ios即时通讯客户端开发之-mac上基于XMPP的聊天客户端开发环境搭建
  • 原文地址:https://www.cnblogs.com/ybygb-geng/p/10001695.html
Copyright © 2011-2022 走看看