既然上一篇文章说到了svn里面小石头和小莲花最好用,那么这里就介绍一下他俩到底是怎么使用的,以及使用过程中需要注意的问题,希望给大家带来帮助。哪里不对的地方可以给我留言,我会及时改进的,谢谢大家。
1、svn使用过程中遇到的问题:
(0)每天来之前,都要更新代码。下班之前,要提交代码。
如果项目中涉及正式接口和测试接口的切换一定要注意:开发阶段就是使用测试接口,不要切换正式接口,不要提交!!!特殊情况切换正式之后,立马要切换成测试,不要嫌麻烦,这是一种负责的态度,请知悉知悉。
(1)每次打开xcode之前需要在svn上先update一下工程,保证工程文件是最新更新的,防止没有update就修改文件再次上传可能会发生冲突。
(2)每次打开xcode尽量在svn里update下的文件夹中的那个,方便及时上传。
(3)每次commit之前需要update,防止冲突。
(4)如果只是修改自己部分的代码,上传过程只需要commit(提交),每次提交时,要写提交理由,说白了,就是要你留下犯罪证据。
(5)新建、删除文件时,除了要提交该文件之外,project.pbxproj也要提交。
如果是添加类或者工程所用的图片的话,在svn上会显示成问号,说明svn上没有,那么需要add,然后commit,然后提交添加的类或者工程所用的图片和工程文件。(具体操作看(6))
(6)选中需要添加的类或者图片,点击add进行添加,然后进行commit,同样需要说明commit的原因,然后commit “project.pbxproj”:
删除svn上已有文件时,记得一定要先在svn上删除,再在Xcode上删除其引用,最后不要忘了提交“project.pbxproj”。
具体的删除操作如下:首先在svn上找到打算删除的文件或者图片,单击右键:delete!这个文件或者图片会变成灰色,选中后commit,然后去xcode中,xcode中这个文件或者图片会变成红色,单击右键删除,然后再回到svn,提交工程文件。至此,删除结束。
(7)动公共文件,一定要先告知其他人:在改动“project.pbxproj”之前需要在群里或者办公室里大喊一声:“我要动一下工程文件了!”,防止两人或者多人修改“project.pbxproj”造成冲突。
(8)修改“project.pbxproj”完成后同样需要在群里或者办公室里大喊一声:“好了!”,保证别人知道你已经完成操作。
(9)revert:就是复原或者叫做重置。如果遇到冲突的情况,就会用到revert。Revert之前最好将自己改动的类进行备份,防止写半天白写的情况。
(10)冲突的情况也时有发生,主要原因就是两人同时动了同一个类,然后有一个人先上传了,第二个人没有update就上传,直接造成冲突。
(11)解决冲突的最好办法就是:只动自己负责的类,不要在自己的svn上随意动别人的类。如果发现别人的类有瑕疵,可以告诉对方,让他自己进行修改并commit,然后自己这边svn进行update。
(12)总之,在commit之前要update,不然很容易造成冲突。
(13)svn中的技巧:
<1>如果类太多,找不到自己修改的都有哪些的话,可以选择changed。这里面是自己所有改动过的类或者添加过的图片什么的。
<2>compare:还有一种情况就是你在changed里面发现一个类居然显示自己修改过,可是明明记得没有修改过。那么对于这个嫌疑对象怎么处理呢?是commit还是不commit呢?这个时候就用到了compare。在小石头的左下方会看到。
Compare中会显示出这个类中自己修改的部分有哪些,左边是原始的代码,右边是修改后的,修改过的地方会有阴影出现,比较容易识别是否修改过。
(14)如果领导在群里或者办公室里喊的更新文档了或者有新的东西已经上传至svn上了,必须下载下来认真仔细阅读,并且和之前的文档进行对比,尤其查看自己负责的那部分是否有重大改动,如果有,需要向领导汇报。(尤其是产品发来的需求文档,在开发过程中一直在改动,几乎一天一个需求文档,如果不及时更新,到最后会造成不可挽回的后果)
(15) 之前遇到一个问题:甲建立svn,但是使用的ip是动态的,就是每天早上开电脑,甲的ip会变化,因为svn是甲的电脑为主机,他的ip变化,svn就不能用了,导致在前一天晚上忘记commit代码的就需要修改svn的ip
然后重新checkout新的2.5.0的一个xcode,再将昨天忘记上传的代码一一复制到新的checkout的xcode中,再commit。可是第二天又换ip了,这样大家还需要进行上述操作。所幸第三天,甲将他的ip变成静态的了。svn恢复正常。
所以,在这里提醒大家,晚上下班之前记得提交代码,上传代码,commit代码。
(16)还有一个需要注意的是,在工程里面添加sdk,sdk里面包含.a文件的时候,当你add这个sdk并且commit的时候,.a文件是上传不上去的,别人拉取下拉的也不包含这个.a文件,所以会造成其他人的工程报错,而你本地的工程是不会报错的。而且最最关键的是你在svn里面找不到这个.a文件!!!那么我们怎么提交这个.a文件呢?
在svn的状态条里面有一个View,View里面有一个选项“Hide Ignored Items”,隐藏忽略的项目们。一开始安装svn的时候这个选项默认就是“Hide Ignored Items”,我们点击这个选项,就变成了“Show Ignored Items”,展示忽略的项目们,这样我们就能看到隐藏的.a了,然后add-commit即可。
最后,哪里不对的地方可以给我留言,我会及时改进的,谢谢大家。