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

源代码管理SVN的使用的更多相关文章

  1. iOS开发——源代码管理——SVN

    一.源代码管理(svn)简介 01. 源代码管理工具概述 ======================================================================= ...

  2. iOS源代码管理svn

    01. SVN介绍 SVN 是集中式源代码管理工具 概念: 1> Repository   代码仓库,保存代码的仓库 2> Server       服务器,保存所有版本的代码仓库 3&g ...

  3. iOS开发——源代码管理——svn 命令行下常用的几个命令

    1.将文件checkout到本地目录    svn checkout path(path是服务器上的目录)    例如:svn checkout svn://192.168.1.1/pro/domai ...

  4. git与svn, tfs等源代码管理器的协同

    简单地说,这三个都是业界知名的源代码管理器.他们是有区别的,根本的区别在于git是分布式源代码管理器(每个本地都有完整的代码,及历史),而svn和tfs是集中式源代码管理器(只有服务器才有完整的历史, ...

  5. 源代码管理工具之SVN

    源代码管理工具SVN是一款非常强大的源代码管理工具,现在国内70%-90%的公司都在使用SVN来管理源代码,下面就让小编给大家着重介绍一下SVN的使用,SVN的使用主要分为下面几块. SVN的使用环境 ...

  6. iOS 源代码管理工具之SVN

    源代码管理工具之SVN 源代码管理工具SVN是一款非常强大的源代码管理工具,现在国内70%-90%的公司都在使用SVN来管理源代码,下面就让小编给大家着重介绍一下SVN的使用,SVN的使用主要分为下面 ...

  7. 源代码管理工具(上)-SVN基本使用

    ------------------------------------------------------SVN简介和搭建 ------------------------------------- ...

  8. Linux企业级项目实践之网络爬虫(25)——管理源代码之SVN

    软件项目开发中,一般会用到源代码管理工具SVN.版本控制是管理数据变更的一种技术.对于程序员来说,它已经成为不可或缺的工具,因为他们经常修改软件代码,产生部分的变更,然后第二天再取消所有的变更.想象有 ...

  9. iOS核心笔记—源代码管理工具-SVN

    源代码管理工具-SVN 一. 源代码管理工具概述 1. 源代码管理工具的作用? > 能追踪一个项目从诞生一直到定案的过程 > 记录一个项目的所有内容变化,无限制返回 > 查看特定版本 ...

随机推荐

  1. 那条linq语句为啥这么慢

    目前所在的项目大量使用了linq,结果有个地方出现了严重的性能问题.一个统计需要3.40秒.头头焦头烂额之际,也让我看看. 我向来喜欢性能调优,自诩编码极为注重性能.曾几何时,也动不动就把性能挂在嘴边 ...

  2. 2014/4/18 ① button与submit的区别 ②现象 : 数据库中其他值可以取到 有的却取不到 解决 看获取时“#”有无

    ①<input type="button" /> 这就是一个按钮.如果你不写javascript 的话,按下去什么也不会 发生. <input type=&quo ...

  3. putty字体大小颜色、全屏/退出全屏快捷键 保存session设置[转]

    字体大小设置 Window->Appearance->Font settings->Change按钮设置(我的设置为16)字体为(Consolas) 字体颜色设置 Window-&g ...

  4. extends && implements

     final声明的类不能被继承 方法的重写(@Override):  两同两小一大原则: 方法名相同,参数类型相同 子类返回类型小于等于父类方法返回类型(java里无论怎样都对) 子类抛出异常小于等于 ...

  5. Lightoj 1023 - Discovering Permutations

    1023 - Discovering Permutations    PDF (English) Statistics Forum Time Limit: 0.5 second(s) Memory L ...

  6. UI:简单的SQL语句

    一.SQL语句如果要在程序运行过程中操作数据库中的数据,那得先学会使用SQL语句1.什么是SQLSQL(structured query language):结构化查询语言SQL是一种对关系型数据库中 ...

  7. 01_传智播客iOS视频教程_课程介绍与知识点回顾

    OC语法中static关键字不能修饰属性,也不能修饰方法,只能修饰方法中的局部变量.static修饰局部变量之后把局部变量变成静态变量.当方法执行完之后这个变量不会被回收.下次再执行这个方法的时候这个 ...

  8. java笔记之线程简述1

    1:线程是依赖于进程而存在. 2:什么是进程?  通过任务管理器我们就看到了进程的存在.  而通过观察,我们发现只有运行的程序才会出现进程.  进程:就是正在运行的程序.  进程是系统进行资源分配和调 ...

  9. rm -rf 的“幸存者”

    原文:http://blog.jobbole.com/70971/ 以 root 用户执行 rm –rf / 命令,然后观察下哪些文件或者指令会幸存下来.结果是什么也没少!因此你必须增加 —no-pr ...

  10. HDU 3037 Saving Beans (数论,Lucas定理)

    题意:问用不超过 m 颗种子放到 n 棵树中,有多少种方法. 析:题意可以转化为 x1 + x2 + .. + xn = m,有多少种解,然后运用组合的知识就能得到答案就是 C(n+m, m). 然后 ...