• 源代码管理SVN的使用


    SVN

    • 全称是Subversion,集中式版本控制之王者
    • SVN 版本控制,需要自己搭建一个管理代码的服务器,提供开发人员,上传和下载

    1.基本介绍

     

    使用环境

    要想利用SVN管理源代码,必须得有2套环境

    服务器
    • 用于存储客户端上传的源代码
    • 可以在Windows上安装Visual SVN Server
    • 大部分情况下,公司的开发人员不必亲自搭建SVN服务器
    客户端
    • 上传本地的源代码到服务器,或者更新服务器的代码到本地,保持同步
    • 可以在Mac上使用命令行、Versions、Cornerstone、Xcode
    • 开发人员就属于客户端这个角色

    2.搭建服务器

    服务器安装(windows安装)

    服务器创建代码仓库

    3.基本操作(命令行)

    • 先进入创建的存放项目文件夹目录

    项目经理初始化项目

    ①.将服务器所有的内容下载到本地

    • svn checkout 服务器地址 —username=mgr —password=mgr

    ②.进⼊入到工作目录

    • cd 工作目录

    ③.初始化项⺫

    • touch main.m 添加文件和项目

    ④.将main.m加⼊入到本地代码管理中

    • svn add main.m

    ⑤.将main.m提交到服务器

    • svn commit -m “注释”

    ⑥.查看⽂文件的状态(svn status—>简写svn st)

    • svn st 显示的文件状态
    文件状态
    • ' ' 没有修改
    • 'A' 被添加到本地代码仓库
    • 'C' 冲突
    • 'D' 被删除
    • 'I' 被忽略
    • 'M' 被修改
    • 'R' 被替换
    • 'X' 外部定义创建的版本目录
    • '?' 文件没有被添加到本地版本库内
    • '!' 文件丢失或者不完整(不是通过svn命令删除的文件)
    • '~' 受控文件被其他文件阻隔

    ⑦.删除

    删除服务器上的某个文件,需要做2个步骤
    • 将文件从本地的版本控制库中移除:svn delete 、svn remove
    • 提交刚才的删除操作到服务器:svn commit
    将文件从本地的版本控制库中移除
    • svn delete 文件名

    ⑧.查看日志

    查看日志,需要2个步骤
    • 将服务器的最新代码更新到本地:svn update
    • 查看日志:svn log

    ⑨.添加

    提交一个新建的文件到服务器,需要2个步骤
    • 添加新建的文件到本地的版本控制库中:svn add
    • 提交刚才的添加操作到服务器:svn commit
    如果直接提交一个没有添加到本地版本控制库中的文件,会报下面的错误
    • is not a working copy

    ⑩.更新

    将服务器的最新代码更新到本地

    • svn update [PATH]

    将文件恢复至某个版本

    • svn update -r 版本号 [PATH]

    ⑪.代码冲突问题:

    a.无法提交代码提示错误:out of date

    • 过期—>如果本地的版本号⼩小于服务器的版本号是 不能提交
    • 先更新一下,在查看冲突 conflict discovered

    b.代码冲突的解决⽅方案:

    • (p) postpone : 对⽐比所有的版本的代码,⼿手动解决冲突
    • (mc) mine-conflict : 使⽤用我的代码覆盖服务器的代码
    • (tc) theirs-conflict : 使⽤用服务器代码覆盖我的代码
    • (df) diff-full : 展⽰示全部的不同.是在命令⾏行中展⽰示
    • (e) edit : 直接编译⽂文件,但是也是在命令⾏行中编辑
    • (s) show all options: 再次展⽰示所有的选项

    c.选择postpone查看⽂文件中的代码

    • 在冲突的文件中有冲突展示
      <<<<<<< .mine
      我的代码
      =======
      服务器的代码
      >>>>>>> .r16
      
    • 在代码中修改后保存文件
    • 再删除多余的文件

    d.解决冲突之后命名:svn resolved ⽂文件名

    4.总结

    • 去到公司的第一天,下载公司的代码到电脑上

      • svn checkout
    • 修改了某个早已存在的旧文件,然后提交到服务器

      • svn commit
    • 提交一个自己新建的文件到服务器

      • svn add -> svn commit
    • 删除一个早已存在的旧文件,然后同步到服务器上

      • svn delete -> svn commit
    • 将其他同事提交的新代码更新到自己电脑上

      • svn update
    • 不小心写错了很多东西,想撤销所写的东西(还未把修改提交到服务器)

      • svn revert
    • 不小心删错了文件,想把文件恢复回来(还未把删除提交到服务器)

      • svn revert
    • 不小心写错了很多东西,想撤销所写的东西(已经把修改提交到服务器)

      • svn update -r 版本号
    • 不小心删错了文件,想把文件恢复回来(已经把删除提交到服务器)

      • svn update -r 版本号

    5.图形化工具的使用(Xcode 和 Cornerstone/Versions)

    • 一张图概括 

    • Xcode工具不能忽略一些不需要的文件,可以使用命令行或者Cornerstone

      注意

      a.用图形化工具导入静态库,必须用命令行 svn add 静态文件

      b.为了避免冲突,尽量别和同事一起修改同一个文件特别是storyboard或者xib文件

      c.经常commit 和 经常update

  • 相关阅读:
    HDU 4278 Faulty Odometer 8进制转10进制
    hdu 4740 The Donkey of Gui Zhou bfs
    hdu 4739 Zhuge Liang's Mines 随机化
    hdu 4738 Caocao's Bridges tarjan
    Codeforces Gym 100187M M. Heaviside Function two pointer
    codeforces Gym 100187L L. Ministry of Truth 水题
    Codeforces Gym 100187K K. Perpetuum Mobile 构造
    codeforces Gym 100187J J. Deck Shuffling dfs
    codeforces Gym 100187H H. Mysterious Photos 水题
    windows服务名称不是单个单词的如何启动?
  • 原文地址:https://www.cnblogs.com/ShaoYinling/p/4694042.html
Copyright © 2020-2023  润新知