zoukankan      html  css  js  c++  java
  • SVN 集中式版本管理工具

    SVN : 集中式版本管理工具

    checkout: 下载代码, 只需要做一次

    update : 更新代码

    commit :提交代码

    三. SVN服务器搭建及配置(了解)

    一. 端口号

    http 80 一般是http, 因为SVN一般都是公司内部才能访问

    https 443

    二. 每次对服务器端做操作, 版本号都会提升

    三. 安装

    1. 参加一个仓库, 并配置用户

    2. 应该(虚拟机注意是桥接模式, 网络是自动获取ip), 获取ip地址 (运行 --> cmd --> ipconfig --> 获取192.168.xx的地址)

    3. 在Ma从浏览器中更换svn的地址, 进行访问

     四. 常见UNIX命令行的使用(掌握)

    pwd : 查看当前目录

    cat : 在命令行中查看文件

     五. SVN基本操作(掌握)

    一. 模拟多人开发

     一> .唐僧创建项目

    1. cd 到指定文件夹下

    2. 下载代码(指定一个目录跟服务器保持连接) :  svn checkout http://192.168.23.112/svn/QQ --username=tangseng --password=tangseng

    3. 再次cd 到SVN管理目录下, 千万不要忘记

    4. 创建项目 : touch Car.h (拿一个文件模拟一个项目)

    5. 查看状态: svn status   status是将本地的代码和服务器做对比, 不一样的才会显示出来

    6. 添加文件的管理权: svn add Car.h

    7. 提交本地文件给服务器: svn commit -m "初始化了项目, 添加了Car.h文件"   -m 一定要写, 以后查看版本时, 是通过注释来区分的. / ""可以不写, 是为了英文好区分注释

    8. 更新代码 : svn update

    ---------------------------------

    9. 删除文件: 不能直接删除, 否则up就回来 : svn delete 如来.h , 还需要提交

    10. 恢复文件为最初的状态: (本地被修改, 但是没有提交服务器 / 文件被本地版本库删除了, 但是没有提交到服务器) : svn revert 如来.h

    11. 查看帮助: svn help ,会调出所有的命令

    12. 查看日志 : svn log , 查看之前的版本记录(备注一定要写, 而且要写的有意义)

    13. 版本穿梭: svn update -r 10 回到第10个版本 , 可以查看之前的代码, 然后想回到最新的代码, 只要up一次, 即可

    14. 告诉本地版本库解决了冲突 : svn resolved Car.h

    二> 悟空加入开发(老手)

    1. cd 到指定文件夹下

    2. 下载代码(指定一个目录跟服务器保持连接) :  svn checkout http://192.168.23.112/svn/QQ --username=tangseng --password=tangseng

    3. 再次cd 到SVN管理目录下, 千万不要忘记

    4. 正常开发, 该更新就更新, 该提交就提交

    三> 八戒加入开发(新手)

    1. cd 到指定文件夹下

    2. 下载代码(指定一个目录跟服务器保持连接) :  svn checkout http://192.168.23.112/svn/QQ --username=bajie --password=bajie

    3. 再次cd 到SVN管理目录下, 千万不要忘记

    4. 正常开发, 该更新就更新, 该提交就提交

    团队开发, 就是, 写完提交, 别人更新

    二. 常见命令的简写

    checkout : svn co

    status : svn st

    commit : svn ci

    update : svn up

    三. 常见状态解释

    ? : 文件在SVN管理的目录下, 但是没有被SVN所管理. 看见? , 记得add

    A : 文件在SVN管理的目录下, 并且, 已经被本地SVN版本库管理, 看见A, 记得commit

    D : 文件在本地删除, 还需要提交

    M : 文件在本地被修改过, 需要提交

    G : 文件曾经发生过冲突, 然后被解决了

    U : 文件被更新

    C : 文件发生了冲突

    四. 常见报错:

    1. is not a working copy : 说明没有进入到SVN管理的目录. 就进行了SVN的命令. 应该进入到正确目录

    2. xcrun: error: active developer path ("/Applications/Xcode 2.app/Contents/Developer") does not exist, use `xcode-select --switch path/to/Xcode.app` to specify the Xcode that you wish to use for command line developer tools (or see `man xcode-select`)

    解决方案: 当多个Xcode版本同时存在, 可能工具就混乱了. 需要选择一下. 找Xcode --> 偏好设置 --> Locations --> command line 选择一下即可

    3.  is out of date : 文件过期 . 如果发生了冲突, 那么直接提交时, 会报此错误. 应该update.

    五. 注意事项

    1. 先更新, 再提交. (不会覆盖掉刚刚写的代码, 因为修改的文件版本高于服务器版本, 不会被覆盖.) 可以检测到冲突, 这只是一个操作规范.

    2. 每一个文件都有单独的版本号, 24 - 25

    3. 及时提交, 没做完一个小板块, 或者一个小功能就提交. 避免冲突

    4. 如何避免冲突:  分模块, 沟通 .

    六. 解决代码冲突

    1. 代码冲突: 同一个文件, 同一行, 两个不同的人修改并提交. 就会发生冲突

    2. 更新时, 如果发生冲突时会报以下错误

    Conflict discovered in '/Users/apple/Desktop/SVN演练/八戒/Weixin/Car.h'.

    //常用

    (p) postpone : 延迟处理(svn工具不会帮你做解决冲突的事情, 自己手动解决) (版本会发生改变, 所以解决完冲突需要提交)

    (mc) mine-conflict : 使用我的代码, 覆盖服务器的代码 . 还需要提交一次 (版本会发生改变, 所以需要提交)

    (tc) theirs-conflict : 使用服务器的代码(他们的), 丢弃我的代码 (版本不会发生改变)

    //不常用

    (s) show all options : 展示所有的选项

    (df) diff-full : 展示所有不同

    (e) edit : 编辑, 在命令行中编辑

    3. 发生冲突的文件会发生改变

    <<<<<<< .mine ~  ======= 我的代码

    ======= ~ >>>>>>> .r24  服务器的代码

    <<<<<<< .mine

    @property (nonatomic, strong) NSString *banana3; // 悟空增加了香蕉3=======

    @property (nonatomic, strong) NSString *xiaomi; // 八戒增加了小米>>>>>>> .r24

    4. 解决冲突的方案:

        1. (建议)选p, 延迟解决

        2. 删除不认识的代码(<< == >> ), 然后自己合并代码

        3. 告诉本地版本库, 自己已经解决了冲突: svn resolved Car.h

        4. 需要提交代码 (其它人更新即可)

    七. 使用第三方图形化工具

    http://192.168.23.112/svn/Weibo/trunk

    1. 小提示: 使用Cornerstone时, 拷贝svn网址, Cornerstone会自动将地址填入界面内.

    2. 使用Cornerstone, 应该先连接远程仓库(左下角), 然后点击checkout下载代码.

    注意: checkout选择目录时, 应将底部svn版本选择为1.7. 因为mac默认就是1.7版本. 如果版本过低, xcode会提示升级, 然后Cornerstone重启一次即可

    3. 忽略文件:

        1. .xcuserstate 不要提交给服务器. 此文件记录了用户当前展示的文件, 及目录展开结构

        2. (非项目文件)data后缀的(还包括用户断点) 都可以忽略不提交

        3. 通过工具, 先delete, 在commit, 再次编辑时就会出现, 最后选择ignore

    八. 使用Xcode集成SVN

    1. checkout : 三种方式

        1. xcode欢迎界面, 选择第三个选项, 即可checkout

        2. 选中xcode, 找偏好设置, 找账户, 左下角添加远程仓库

        3.  选中xcode, 找顶部的source control菜单, 选择checkout (最简单)

    2. 常用快捷键

        1. update : com + opt + x

        2. commit : com + opt + c

    3. xcode解决代码冲突

        只要更新, 一旦冲突, 就会有个界面提示选择. 应该选择下方的四个小按钮, update, 最后commmit就可以了. (没有提示resolved)

    4. 如果将来写代码, 发现文件改的不像样子, 可以直接丢弃修改

    5. SB / Xib 发生冲突的解决方案: 需要右键查看源码, 然后自己比对丢失的代码.  团队开发中, 尽量避免界面发生冲突 (如果不小心移动了界面, 那么可以丢弃修改)

     九. SVN目录结构

    trunk : 开发主目录

    branch : 分支, 一般用于修复bug或者开发新功能. 

    tags : 备份重大版本(一般可以备份上架AppStore的版本)

  • 相关阅读:
    python 发送中文名邮件乱码问题
    python---django
    python中获取文件目录的方法
    python 读取文件的常用方法
    python读取文件的常用方法
    python数据库调用
    mysql数据库主从同步状态正常,无异常报错,数据不能同步
    Python小脚本
    语句和语法
    CIDR详解和ip最长地址前缀匹配
  • 原文地址:https://www.cnblogs.com/yilizhijiaotianxiashao-yincaiersanshijianduo/p/5437124.html
Copyright © 2011-2022 走看看