cornerstone xcode svn 初使用
1.配置svn服务端
2.cornerstone连接svn服务器
3.初始化项目
a.新建的项目
在目录下用xcode新建项目
b.已有项目上传 终端手动上传
-
打开终端,并进入到项目目录
cd $HOME/IOS/Projects
-
把项目添加到svn上
svn import-m "New Import"MyProject/ https://myserver.me.com/svn/trunk/MyProject 如:
Marbury$ svn import -m "/Users/Marbury/Downloads/dbll\ 3\ 2 " http://192.168.1.129:80/svn/dbll/trunk
cornerstone3.0.3版本就直接可以用format1.8格式上传.a的静态文件
注意忽略文件
checkout 可以用xcode也可以用cornerstone
iOS开发 svn 命令行
1. 打开 终端
2. cd <你的项目 本地全路径>
3. svn 命令行
----------------------------------------------------------------------------------------------------------------------
1、初始化项目
svn import /Users/cress/本地项目目录 https://server/项目目录 -m "Initial import"
2、下载项目
svn checkout https://server/项目目录
3、添加文件
svn add test.txt
4、提交添加的文件,或者本地做的修改提交到服务器端
svn commit -m "add test.txt by test"
5、删除项目中的相应内容
svn delete https://server/项目目录/文件名称 -m "delete test.txt for test"
svn delete /Users/cress/本地项目目录 -m "delete test.txt for test"
6、更新最新版本
svn update
svn update -r 200 test.txt (更新指定的版本)
7、查看本地修改的文件状态
svn status
8、单纯导出一个干净的项目内容(项目内容不带有svn隐藏记录信息)
svn export https://server/项目目录
9、加锁/解锁
svn lock /Users/cress/本地项目目录(或文件名)-m "批注"
svn unlock /Users/cress/本地项目目录(或文件名)
10、查看日志
svn log test.txt
11、比较差异
svn diff -r m:n test.txt (对版本m和版本n比较差异)
12、合并两个版本
svn merge -r 12:14 text.txt (把版本12和14之间的差异合并到当前的文件中)
13、svn帮助
svn help
svn help commit
14、冲突合并
svn resolve --accept working test.txt
14、恢复本地修改
svn revert [-R] something
something可以是(目录或文件的)相对路径也可以是绝对路径。
当something为单个文件时,直接svn revert something就行了;当something为目录时,需要加上参数-R(Recursive,递归),否则只会将something这个目录的改动。
14.2 回滚到指定的版本
svn update -r 回滚到的版本号 如:svn update -r 2113
提交回滚
svn ci -m “注释” 如:svn ci -m "添加模块协调者之前的标签"
14.3 复制一个项目
svn copy 原地址 目标地址
如:svn copy http://58.249.55.68:8091/product/MicroAPP/02-iPhone/02-code/03-Tag/MicroAPP-v3.1.1-2112-20140630 http://58.249.55.68:8091/product/MicroAPP/02-iPhone/02-code/02-Branch/MicroAPP-v3.1.1-2112-20140630 -m "添加模块协调者的分支"
15、代码库URL变更
svn switch (切换分支)
svn switch --relocate [path] (切换资源库)
switch用于在同一个版本库内不同分支之间的切换
relocate用于版本库访问地址变更时,重新定位版本库
比如,由于SVN服务器更换到另一台主机上,这是SVN服务器的地址改变了,那么各客户端就无法连接SVN服务器了,这时各客户端就需要执行relocate,将本地工作区的连接到新的服务器上去
而如果同一个版本库内,如果有多个分支,比如你现在正在trunk上开发,但需要切换到某个分支上开发,那么你可以用switch来进行这个切换操作,这时SVN会比较trunk和这个分支之间的差异,将差异部分传送到你的本地工作区,而不用将整个分支传送给你,从而避免巨量数据的传输。switch操作之后,你所进行的update、commit操作都变成了针对那个分支,当你在分支上的工作完成后,还可以再次switch回trunk。
switch还有另外一些用途,比如希望让分支中的某个文件夹保持和trunk同步,因为有人正在trunk的这个文件夹中进行开发,在分支中想用到开发的最新成果,那么就可以在分支的这个文件夹上设置swtich到trunk,这时update整个分支的话,就会把trunk上的这个文件夹取下来了。但是,当然你如果修改了这个文件夹的内容,commit后也是提交到了主干而不是提交到了分支。
16、打标签
每达到一个里程碑都应该给代码打个标签。
打基线---就是打标签,只是加上文档等资料
标签的特点?
只读
如何打标签?
Versions工具不能打标签,要打标签就要使用命令终端,通过命令来输入。
打标签其实就是执行复制:svn copy。
svn copy 命令不是真正复制真实的文件,而是只是对各个文件做版本记录,
不占多大的服务器空间。
svn copy 命令格式:
svn copy 源URL 目的URL -m “注释”
12、打分支
什么时候该打分支?
当主线项目需要添加一个新的功能,而这个功能需要开发比较长的时间。在新功能开发的这段时间内,主线的项目还需要继续修改Bug,发新版本。这种情况下,就需要另起个分支,用来开发新功能,而且不影响主线程的进度。
分支开发注意的地方:
1)主线尽量不要改变分支上要更改的文件
2)分支尽量代码独立
如何打分支?
打分支和打标签是一样的,命令也是 svn copy,格式也是一样的。
14、合并代码
在分支上开发代码完成后,就需要把分支的代码合并到主线程,有时特殊需要,也会把主线的代码合并到分支中。
合并分支要注意的地方:
1)要记录打分支时的版本号
2)要记录每次合并代码的版本号
如何合并代码?
例子:把分支的代码合并到主线中
终端命令进入主线代码的跟目录,执行如下命令:
svn merge –r 打分支时版本号或者上次合并的版本号:HEAD 分支URL