老项目经过几手之后,往往乱的不成样子,不整理实在是看着不清爽,开发维护也很困难。
再次有几个建议:
1 一个项目应该遵从一个代码架构。不能来个新人,或做个新功能就加一个新的开发架构。
2 代码评审的重要性。在新人实习的三个月内,要对其详细讲解代码架构,使其理解,并对其提交的代码作评审,防止其另立门户,给后续代码维护买下隐患。如果有更好的建议,可以沟通之后,由系统架构师添加到项目中。
有没有遇到如下问题:
1 文件夹换个位置,代码无法提交SVN。
2 删除某个不用的文件或文件夹,代码无法提交SVN。
3 修改文件夹名,代码无法提交SVN。
怎样修改目录结构,才能正确提交代码?
在SVN管理下的代码如果动目录结构要小心,不能直接在文件系统下删除,移动,修改文件名。
因为在本地修改了文件名后,提交时,服务器是不知道你修改了哪个文件,只知道你提交了一个新的文件名。
应该在SVN下操作。如果用CornerStone,应该在Repositories下操作。对文件夹改名,删除,文件移动。
然后再到Working Copies下更新。再到Xcode下重新组织。
常见操作引起的冲突
如开始目录结构如下
Common-
ASIHTTPRequest-
ColorManager-
Mantle-
MBProgressHUD
ThirdLib-
我想把 ASIHTTPRequest- 放到 ThirdLib里
我一开始的操作步骤是这样
我在Finder中把ASIHTTPRequest拖到ThirdLib中
在Xcode中,Common目录下删除引用,再在ThirdLib下添加ASIHTTPRequest
SVN提交,报错,删除的ASIHTTPRequest目录找不到
如果此时,再到Common下新建ASIHTTPRequest目录
SVN下Common\ASIHTTPRequest目录变为绿色的~,有冲突了,
此时提交,说被锁定,撤销也不好使。
此时解决办法是删掉本地库,重新CheckOut, 重新操作。
正确的操作步骤:
在Xcode中,Common目录下删除引用ASIHTTPRequest,提交SVN
在Finder中,把ASIHTTPRequest复制到ThirdLib
CornerStone,在Repositories下删除ASIHTTPRequest
在Xcode中,ThirdLib下添加ASIHTTPRequest,提交SVN。