介绍
svn 是多人协同开发的代码管理器,是从大名鼎鼎的代码管理器 CVS 演变
而来,当然除了 svn 外,还有一个流行的代码管理器 git,但是企业中大多喜欢 用 svn,原因是 svn 具有很强的文档目录权限管理,而 git 在开源社区非常流行, git 没有权限管理。
svn 服务端和客户端模型
svn 分为客户端和服务器端 2 中,对于一般开发人员主要使用使用 svn 客户
端,对于项目经理或者 IT 维护组需要进行 svn 服务器端进行诸如代码备份, merge 等操作。
对于 iOS 开发,svn 使用有 2 种。读者个人趋向于 svn 命令行使用 当然更多推荐使用工具 Version: http://192.168.88.8/download/softwares/svn 工具/Versions02.zip 网页版本: http://192.168.88.10/svn
不推荐大家使用 Xcode 自带的 SVN 工具
对于 Versions 不能加入.a 静态库的解决方案
编辑 vi /.subversion/config.nib *.so *.pbxuser .mode .perspective .DS_Store xcuserdata project.xcworkspace
找到以 global-ignores 开头的行, 然后去掉里面的 *.a 即可
global-ignores = *.o *.lo *.la *.al .libs *.so .so.[0-9] *.pyc *.pyo *
3. svn操作命令之通用参数
–username yang
–password 123456 如果没有用户名和密码就不用此参数
4. svn操作命令之下载checkout(co) svn checkout
svn checkout 是下载代码库
-r 18下载18号版本 例子 1.
svn –username yang –password 123456
checkout http://1000phone.cn/stuproj/ios1212
下载完成后会在当前目录中创建 ios1212 目录
例子 2.
svn –username yang –password 123456
checkout http://1000phone.cn/stuproj/ios1212 myios1212 svn –username yang –password 123456
checkout -r18 http://1000phone.cn/stuproj/ios1212
下载完成后会在当前目录中创建 myios1212 目录
上述 http://1000phone.cn/stuproj/ios1212 是代码服务器网址 这里 checkout 也可以写成 co
5. svn操作命令之查看信息info 比如 svn info
svn info 是查看版本信息
localhost:ios1212 yang$ svn info
Path: .
URL: http://1000phone.cn/stuproj/ios1212
Repository Root: http://1000phone.cn/stuproj
Repository UUID: 489a8e6b-8e7d-4fdf-9695-3480148b3a5a Revision: 10
Node Kind: directory
Schedule: normal
Last Changed Author: yang
Last Changed Rev: 3
Last Changed Date: 2012-11-19 17:28:36 +0800 (Mon, 19 Nov 2012)
6. svn操作命令之查看版本日志信息log svn log
svn log 会显示该目录下面所有的版本信息,按照时间倒序排列 如下面显示:
r1123 | oyangjian | 2012-11-20 21:25:10 +0800 (二, 2012-11-20) | 4 行
增加了 addsvnuser
M common_db.php
r1122 | oyangjian | 2012-11-20 21:24:35 +0800 (二, 2012-11-20) | 4 行
解决了乱码问题
M showcompileinfo.php
r1121 | oyangjian | 2012-11-20 21:23:13 +0800 (二, 2012-11-20) | 4 行
FIX 了修改密码错误情况 M register.php
7. svn操作命令之增加文件add
用法例子(在 xcode 增加文件自动会增加,在 xcode 中写程序不用) svn add RootViewController.m
把 RootViewController.m 文件加入到本地的代码库中
8. svn操作命令之删除文件或者文件夹delete 用法例子(在 xcode 增加文件自动会增加,在 xcode 中写程序不用)
svn delete RootViewController.m 在本地代码库中删除 RootViewController.m 文件
9. svn操作命令之改名文件mv svn mv test.m Car.m
(在 xcode 增加文件自动会增加,在 xcode 中写程序不用) 在本地把 test.m 文件修改成 Car.m 文件
M M A A
Demo/Demo.xcodeproj/project.pbxproj
Demo/Demo/AppDelegate.m Demo/Demo/RootViewController.h Demo/Demo/RootViewController.m
注意上面的 add delete mv 都是在本地代码库中修改
10. svn操作命令之提交变化commit 把本地代码库中所有的修改的内容同步到服务器中 注意不同步的话,本地的修改不能反映到服务器上
svn –username yang –password 123456 commit
11. svn操作命令之同步服务器内容update 把服务器最新版本同步到本地来
svn update
12 svn操作命令之查看patch文件diff
查看任意 2 个版本之间的差异 svn diff –r18:29
13 svn操作命令之查看状态status localhost:yang1212 yang$ svn status
14 svn操作命令之创建目录mkdir svn –username yang –password 123456
mkdir http://1000phone.cn/stuproj/ios1212/test1234 在服务器 ios1212 目录上创建子目录 test1234
15 svn操作命令之导入项目import svn –username yang –password 123456
import myproject http://1000phone.cn/stuproj/ios1212/myproject2 在本机的 myporject 目录传到服务器 ios1212 目录上并且改