源代码管理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
源代码管理SVN的使用的更多相关文章
- iOS开发——源代码管理——SVN
一.源代码管理(svn)简介 01. 源代码管理工具概述 ======================================================================= ...
- iOS源代码管理svn
01. SVN介绍 SVN 是集中式源代码管理工具 概念: 1> Repository 代码仓库,保存代码的仓库 2> Server 服务器,保存所有版本的代码仓库 3&g ...
- iOS开发——源代码管理——svn 命令行下常用的几个命令
1.将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domai ...
- git与svn, tfs等源代码管理器的协同
简单地说,这三个都是业界知名的源代码管理器.他们是有区别的,根本的区别在于git是分布式源代码管理器(每个本地都有完整的代码,及历史),而svn和tfs是集中式源代码管理器(只有服务器才有完整的历史, ...
- 源代码管理工具之SVN
源代码管理工具SVN是一款非常强大的源代码管理工具,现在国内70%-90%的公司都在使用SVN来管理源代码,下面就让小编给大家着重介绍一下SVN的使用,SVN的使用主要分为下面几块. SVN的使用环境 ...
- iOS 源代码管理工具之SVN
源代码管理工具之SVN 源代码管理工具SVN是一款非常强大的源代码管理工具,现在国内70%-90%的公司都在使用SVN来管理源代码,下面就让小编给大家着重介绍一下SVN的使用,SVN的使用主要分为下面 ...
- 源代码管理工具(上)-SVN基本使用
------------------------------------------------------SVN简介和搭建 ------------------------------------- ...
- Linux企业级项目实践之网络爬虫(25)——管理源代码之SVN
软件项目开发中,一般会用到源代码管理工具SVN.版本控制是管理数据变更的一种技术.对于程序员来说,它已经成为不可或缺的工具,因为他们经常修改软件代码,产生部分的变更,然后第二天再取消所有的变更.想象有 ...
- iOS核心笔记—源代码管理工具-SVN
源代码管理工具-SVN 一. 源代码管理工具概述 1. 源代码管理工具的作用? > 能追踪一个项目从诞生一直到定案的过程 > 记录一个项目的所有内容变化,无限制返回 > 查看特定版本 ...
随机推荐
- Eclipse+Maven(webapp)+Jetty+JReBel的配置方法
maven配置 省略 jrebel配置 jrebel毋须繁琐的配置,把jrebel-5.6.3-crack.zip解压放在磁盘文件夹就可以.(笔者路径为:D:\coding-life\IDE\jreb ...
- 2016/3/21 面向对象: ①定义类 ②实例化对象 ③$this关键字 ④构造函数 ⑤析构函数 ⑥封装 ⑦继承
一:定义类 二:实例化对象 //定义类 class Ren { var $name; var $sex; var $age; function Say() { echo "{$this- ...
- 2016/2/24 1,css有几种引入方式 2,div除了可以声明id来控制,还可以声明什么控制? 3,如何让2个div,并排显示。4,清除浮动 clear:left / right / both
1,css有几种引入方式 使用HTML标签的STYLE属性 将STYLE属性直接加在单个的HTML元素标签上,控制HTML标签的表现样式.这种引入CSS的方式是分散灵活方便,但缺乏整体性和规划性,不利 ...
- linux epoll的实现原理
1 linux的poll操作 linux文件的poll操作有两个主要目的:第一,主动查看该文件上是否有读写事件:第二,提供操作waitqueue的接口给epoll等上层接口使用,比如epoll可以通过 ...
- HTML表单常用标签
名称 用例 备注 文本输入框 <input type="text" name="uname" value="" ...
- YTU 2920: Shape系列-7
2921: Shape系列-7 时间限制: 1 Sec 内存限制: 128 MB 提交: 156 解决: 129 题目描述 小强做的Shape类在本次的测试中出了点状况,发现原来是其中的area函 ...
- YTU 1074: You are my brother
1074: You are my brother 时间限制: 1 Sec 内存限制: 128 MB 提交: 10 解决: 7 题目描述 Little A gets to know a new fr ...
- 闲得蛋疼,JavaScript版本BadApple
参考Vim版本的BadApple改写而成.由于加载数据比较大,可能网速不给力的童鞋效果不太好,多刷新几次就好了,^_^.运行环境:支持HTML5 Canvas的浏览器.1. 代码:$(functio ...
- Jquery与Dom对象相互转化
Jquery与Dom对象相互转化 jQurey对象和DOM对象的相互转换 在讨论jQurey对象和DOM对象的相互转换之前,我们先约定定义变量的风格.如果我们获取的对象是jQuery对象,那么我们 ...
- div拖拽互换位置(vue)
template模板 <transition-group tag="div" class="container"> <div class=&q ...