对于咱们程序员来讲,无论你是大神,仍是小鱼小虾,进入公司以后,都用过源码管理工具,否则你就不是一个合格的程序员,如今各个公司用于源码管理工具一般有下面两种:css
git
:使用git
的公司应该是最多的。svn
:如今使用svn
的公司比重也挺大的,可是svn
有局限性。固然,他们二者的区别,在这里就不作解释了,通常选择用什么源码管理工具,通常会是整个项目的负责人来选择。
在iOS
开发中,最好用的svn
的Mac
版源码管理工具就是Cornerstone
,下面介绍CornerStone
的使用:git
CornerStone
是收费,若是是公司须要使用到,建议让公司购买软件使用版权,支持正版,固然网上也是有破解版本的。破解版,提取密码(ggmk
),若是下载成功须要输入密码(www.ifunmac.com
)。程序员
首先,打开Cornerstone
,点击"+
"号,添加一个仓库,选中HTTP Server
。
服务器
例如:svn
https://192.168.1.11:443/svn/FXBest
Protocol
:分为HTTP
和HTTPS
,若是公司的服务器地址是HTTPS
选择HTTPS
,反之,选择HTTP
。Server
:填写服务器地址。例如:工具
192.168.1.11
Port
:服务器地址中端口号。例如:测试
192.168.1.11:443
Repository path
:svn
仓库的访问路径。NickName
:仓库显示的名称。Name
:用户名Password
:密码注意:this
svn://用户名@主机地址:端口号/路径
的格式,则说明填写有误。例如:spa
https://michael@192.168.1.11:443/svn/iOS
小技巧,通常进入公司,项目负责人会给你开svn
的帐号,而后会把svn
的路径发给你,拿到这串路径,直接复制一下,而后切换到CornerStone
,发现svn
的路径会自动填充到CornerStone
上面。3d
一、上传项目到远端仓库repository
能够直接将文件或者文件夹拖到repository
的子文件夹中,或是选择软件上方的Import
按钮上传,会弹出选项填写所在位置及名称,而后选择Import
便可。
二、下载项目
注意:
下载项目,通常分为Export
和Check Out
。
Export
后的项目不会与repository
中的源文件相关联,是一个独立的版本。Check Out
下来的文件会建立一个working copy
,此文件与repository
中源文件相关联,当有别人修改或是本身修改时,working copy
会显示修改数量,白色数量为别人修改数量,灰色数量为本身修改数量,因此若是你是项目中的开发人员,能够选择check out
。Export
。三、版本管理
每一次提交会建立一个新版本,在repository
中会保存全部历史版本,可经过修改人及提交信息进行检索版本,因此用svn
开发能够很好的控制项目出现不可解决及未知bug
时代码的修复问题。
例如:
注意事项:
check out
下来的项目有白色圈时,说明有人已经提交了代码,这个时候,你应该先update
一下,直至working copy
再也不显示白色圈,而后运行一下项目,确保项目没有冲突或者丢失的文件,而后在commit
本身的代码。不然,会形成项目中出现多处冲突或者覆盖掉别人提交的代码。bug
以后再提交代码到svn
,不要连续屡次重复提交,形成版本过多过杂。而且每次提交时务必填写提交信息,方便查看历史版本。小技巧(svn ignores
的使用)
在项目中引入第三库,在本地运行项目,发现没有任何问题,可是提交到svn
,其余人update
以后,在运行项目发现报错,颇有多是静态文件没有上传到svn
形成的。
选择Preferences
勾选Use default global ignores
,删除.a
后,点击save
。
而后,会发现check out
下来的项目中会有这些问号的文件存在,把这些带有问号的文件commit
到svn
,问题就解决了。
注意:
若是选择要忽略提交的文件以后,不要再把Use default global ignores
选中,选中Use default global ignores
的意思使用缺省的ignores
。
check out
下来的项目中作了修改,那么在修改以后的文件后面会有一个"
M
"的标志。
check out
下来的项目中作了修改,新添加一个文件,那么新添加以后的文件后面会有一个 ?
的标志,此时你须要点击add
,添加到项目中,而后在commit
。
check out
下来的项目中作了修改,删除一个文件,那么删除以后的文件后面会有一个 "
D
" 的标志。
check out
下来的项目中,若是A
和B
同时修改了同一行代码而后commit
到svn
,那么冲突以后的文件后面会有一个 "C
"的标志。
注意:
原则上同一组开发人员最好不要在同一文件中进行操做,但有时候必须去其余文件中进行操做,或者是误操做,若是同时多人在同一文件的同一位置修改代码,后提交的人会出现版本冲突文件,通常会有三个一样名称不一样后缀的文件。
其中.mine
文件:本人所作修改,两个.r0XX
文件:XX
为数字,数字较小的为更改前的文件,较大的为更改后的文件,在文件中会有<<<< mine .r0XX
和>>>>>
等字样包含起来的代码,即冲突的地方,此时请和组内同事讨论或本身删除某部分修改文件后进行调试,修复文件。
Branch
注意:
若是两个分支须要合并到主干,Checkout
到本地,点击须要合并到的项。
点击Merge
点击Sychronize Branch
:选择须要从被合并的项目(merge from
)合并到这里,而后提交就能够了(若是同时有两个分支,最需仍须要在分支上修改的话,先合并一个分支到主干,而后主干在合并到另外一个分支,修改冲突后提交,前提是,刚开始主干和两个分支的代码同样,参考上边的步骤生成)。
注意:
workcopying
中选择目标copying
,而后点击Merge
,如图所示Mergefrom
的copying
Merge
以前cornerstone
会进行dry run
,进行merge
分析和预览Merge Changes
(该操做是本地操做,注意解决冲突后在commit
)7、cornerStone错误异常处理
An error occurred and the operation could not be completed.
主要是因为你操做异常致使的,解决方案是,把生成的错误文件删除,而后在从新安装一下就能够了。
Some of the items in this working copy are out-of-date
update to latest
,更新服务器最新的就能够了。
先写这么多,之后遇到问题会有更新。