之前一直用的是git,现在新公司自己搭建了服务器,使用SVN作为版本控制平台。下面列出一些使用CornerStone中出现的小问题,具体设置服务器地址就不说了.
常用命令
虽然这些SVN客户端已经帮我们做了可视化,但是本身Xcode已经集成了SVN,又或者你喜欢在终端中使用SVN命令。
SVN中常用命令详解
1、将文件checkout到本地目录svn checkout path(path是服务器上的目录)
svn checkout svn://192.168.1.1/pro/domain
2、往版本库中添加新的文件svn add file
svn add test.php(添加test.php)
3、删除文件svn delete path -m “delete testfile“
svn delete svn://192.168.1.1/pro/domain/test.php -m “delete testfile”
4、查看日志
svn log path
5、比较差异
svn diff path(将修改的文件与基础版本比较)
6、将两个版本之间的差异合并到当前文件
svn merge -r m:n pathSVN1
使用方法更新(update),经常地update没有坏处,特别是多人项目中。如果每次提交(commit)前不进行更新(update)的到最新的版本的话,svn会提示当前的拷贝过期,需要更新。提交(commit),一定要写上这次提交的内容的摘要,便于以后查阅。
将文件checkout到本地目录svn checkout path(path是服务器上的目录)svn update命令自动用服务器上的版本替换本地版本控制的文件
网上总结的一些注意事项
1.先更新后提交
在看到有新版本(即同伴已经提交代码时),先更新代码,直至working copy不再显示白色圈,然后运行代码确定可运行且功能无误之后再commit自己的代码,否则,会造成项目中出现多处冲突或bug,且很难排查原因
2.完成独立功能后再提交,且认真填写提交信息
每完成一个独立的功能,或解决一个bug之后再提交代码,不要连续多次重复提交,造成版本过多过杂,且提交时务必填写提交信息,交代本次完成了什么功能,方便通过message的搜索来查看历史版本
3.冲突文件
原则上同一组开发人员最好不要在同一文件中进行操作,但有时候必须去其他文件中进行操作,或者是误操作,如果同时多人在同一文件的同一位置修改代码,后提交的人会出现版本冲突文件,一般会有三个同样名称不同后缀的文件.
.mine文件:本人所做修改
两个.r0XX文件:XX为数字,数字较小的为更改前的文件,较大的为更改后的文件,在文件中会有<<<< mine .r0XX和>>>>>等字样包含起来的代码,即冲突的地方,此时请和组内同事讨论或自己删除某部分修改文件后进行调试,修复文件
4.对于新添加文件
提交时新增加的文件显示为问号(?)状态的,请选中右击后 选择Add to Working Copy之后再commit
6.SVN 更新 提交 合并 区别
当本地文件没有改动,服务器文件改动的时候,更新会从服务器取文件覆盖当前文件
当本地文件有改动,服务器文件没改动的话,不会更新此文件
当本地文件有改动,服务器文件有改动的话,如果改动的部分不冲突,就会合并文件到本地,如果有冲突的话,会提示文件冲突,需要自己手动修改以后上传到服务器。
最后一个讲解合并:服务器和本地的同一个文件(所谓同一个文件应该就是SVN相对路径相同,文件名相同的文件,这个由SVN留在本地的信息决定)已经修改,且修改的部分不重合,不重叠当满足上面的条件的时候再更新,SVN就会自动合并SVN的奥妙之处就在于别人提交了修改后的文件,你再提交你的话,他是不允许你提交滴。
里面标记的是冲突的区域,把冲突区域删除掉为什么还不能提交
解决办法1:删掉的话还是没有解决冲突,文件后面还会有几个文件名相同,但是后缀不同的文件如果你不知道用SVN解决冲突的话,最简单的办法是这样的把这个文件改名字,然后在文件所在目录更新,这样就会把服务器文件下下来,然后把自己修改的部分添加到更新的文件里面,这样就可以提交了
解决办法2:在文件上面点击右键,到SVN的菜单,应该有编辑冲突的按钮,选择就会出现一个窗口,一边是服务器版本,一边是自己修改的版本 。
问题解决
1.针对ios项目:出现某个工程或文件打不开的情况,如果为.project文件无法打开,
显示包内容->用文稿打开project.pbxproj文件->搜索.mine,将.mine部分前后<<<< >>>>包含起来的代码删除,工程就可以打开了,如果build时出现某个xib文件打不开的错误,则选中,用文稿打开,跟上文同样操作即可解决无法build的问题
会不断总结,谢谢大家!