这里只介绍使用CornerStone来使用SVN。CornerStone是Mac OS X系统下非常好用的一款svn软件管理工具,当然还有Versions也是可以用的,但是使用起来不如CornerStone好用、强大。
注意:CornerStone是收费,如果是公司需要使用到,建议让公司购买软件使用版权,支持正版。本人所用的是公司购买了使用权的版本。当然网上也是有破解版本的。
对于想要破解版本的,大家可以百度一下,有很多下载的。
点击左侧栏中REPOSITORY
那一栏的+
加号选择添加repository
:
如果你公司的给你的repository
地址为svn://
开头,则选择SVN Server
。如果为Http://
或https://
开头,则选择HTTP Server
假设公司给你的svn
地址为:svn://192.168.1.2/svn/ios
,用户名:huangyibiao
,密码:123456
:
填写Server
这一栏,即主机地址:192.168.1.2
填写Port
端口号,当然有时候是不需要填写的,使用默认的就可以了
填写Repository path
:这是远端仓库的访问路径,对于这里就是/svn/ios
填写好之后,会自动生成。如果你填写完之后不是这种svn://username@host:port/RepositoryPath
格式,则说明填写有误
输入用户名
输入密码
与svn server
一样,只有一个地方需要注意,如果地址是https://
,则需修改Protocol
选项为HTTPS
,否则也会添加失败。
1、上传项目到远端仓库repository
可以直接将文件或者文件夹拖到repository
的子文件夹中,或是选择软件上方的Import
按钮上传,会弹出选项填写所在位置及名称,然后选择Import
即可。
2、导出Export
点击Export
导出项目,导出的项目是与当前的svn
中的源文件没有关联,外部修改导出的项目,不会影响到原来的项目。
3、切分支Checkout
Check Out
下来的文件会创建一个working copy
,此文件与库中源文件相关联,当有新版本(他人修改)或是本地修改(自己修改)时,working copy
会显示修改数量,白色数量为他人修改数量,灰色数量为本人修改数量。所以如果你是项目中的开发人员,可以选择check out
,如果只是下载查看,不希望自己的修改影响到整个项目,最好是选择Export
4、版本管理
每一次提交会创建一个新版本,在repository
中会保存所有历史版本,可通过修改人及提交信息进行检索版本,所以用svn
开发可以很好的控制项目出现不可解决及未知bug
时代码的修复问题:
svn
方便了多人开发同一项目的代码合并问题,但是也有一些事项需要注意:
1、先更新后提交
在看到有新版本(即同伴已经提交代码时),先更新代码,直至working copy
不再显示白色圈,然后运行代码确定可运行且功能无误之后再commit
自己的代码,否则,会造成项目中出现多处冲突或bug
,且很难排查原因
2、完成独立功能后再提交,且认真填写提交信息
每完成一个独立的功能,或解决一个bug
之后再提交代码,不要连续多次重复提交,造成版本过多过杂,且提交时务必填写提交信息,交代本次完成了什么功能,方便通过message
的搜索来查看历史版本
3、冲突文件
原则上同一组开发人员最好不要在同一文件中进行操作,但有时候必须去其他文件中进行操作,或者是误操作,如果同时多人在同一文件的同一位置修改代码,后提交的人会出现版本冲突文件,一般会有三个同样名称不同后缀的文件
4、.mine
文件:本人所做修改
两个.r0XX
文件:XX为数字,数字较小的为更改前的文件,较大的为更改后的文件,在文件中会有<<<< mine .r0XX
和>>>>>
等字样包含起来的代码,即冲突的地方,此时请和组内同事讨论或自己删除某部分修改文件后进行调试,修复文件
5、 对于新添加文件
提交时新增加的文件显示为问号(?
)状态的,请选中右击后 选择Add to Working Copy
之后再commit
针对ios
项目:出现某个工程或文件打不开的情况,如果为.project
文件无法打开,则选择:
显示包内容->用文稿打开`project.pbxproj`文件->搜索`.mine`,将`.mine`部分前后`<<<< >>>>`包含起来的代码删除,工程就可以打开了,如果`build`时出现某个`xib`文件打不开的错误,则选中,用文稿打开,跟上文同样操作即可解决无法`build`的问题
个人感觉使用SVN比较坑,每次拉新版本都是完整的下载一份,特别慢。原来在某某公司的时候,就是使用SVN来管理的,每次要拉版本,那都是好几百M的,以公司的网络下载速度,每次都要点击切换分支后先看会文章慢慢等~
也许是个人习惯了使用GIT,总感觉SVN有很多的坑~
承接:ThinkPHP项目开发、网站项目开发、微信项目开发、微信小程序项目开发、App开发,欢迎联系标哥QQ632840804