一、Xcode4中苹果有自带的SVN软件------>Organizer------>Repositoriesphp
二、SVN checkout到本地后,删除本地file,对服务器有影响吗?
不会影响服务器,当你执行“svn update”时会zai再次被自动下载;当删除后再执行“svn commit”就会在服务器上也对应删除。 html
三、链接服务器windows
点击file-》repositories-》点击坐下边的“+”-》而后名字及svn服务器的地址,还有type选中subversion而后next等等了。xcode
四、Xcode4下,SVN中经常使用命令
Commit 提交
checkout 将服务器上下载到本地(我个正在使用的电脑)
update 更新文件
File------->SourceController------->update
图片中第3个按钮,是视图对比按钮. 服务器
五、SVN中用法详解和注意事项
①提交本身的代码
SVN更新的原则是要及时更新,及时提交。当完成了一个小功能,可以经过编译而且而且本身测试以后,尽可能早的提交,这样也保存了历史版本,必要时候能够回滚;在开始一天的工做以前,最后update一下项目。
②保持原子提交(不要不经意间修改并提交了别人的文件)
仅提交你修改的部分,最好不要一会儿将整个项目提交;
当完成一个功能或文件后,最好提交。我就遇到完成某个功能后,没有提交,后来又作了更改,结果代码出现bug,没法恢复到正常时的代码。
③不要提交自动生成的文件
VisualStudio等开发工具在生成过程当中会产生不少自动文件,如.suo等配置文件,Debug,Release,Obj等编译文件,以及其余的一些自动生成,同编译代码无关的文件,这些文件在提交的时候不该该签入,若是不当心签入了,须要从仓库中删除。
④不要提交不能经过编译的代码
代码在提交以前,首先要确认本身可以在本地编译。进行SVN提交更新时最好是代码在提交前已经经过本身的测试。
SVN中经常使用命令详解
一、将文件checkout到本地目录
svn checkout path(path是服务器上的目录)
例如:svn checkout svn://192.168.1.1/pro/domain
二、往版本库中添加新的文件
svn add file
例如:svn add test.php(添加test.php)
三、删除文件
svn delete path -m “delete test fle“
例如:svn delete svn://192.168.1.1/pro/domain/test.php -m “delete testfile”
四、查看日志
svn log path
五、比较差别
svn diff path(将修改的文件与基础版本比较)
六、将两个版本之间的差别合并到当前文件
svn merge -r m:n path
SVN使用方法
更新(update),常常地update没有坏处,特别是多人项目中。若是每次提交(commit)前不进行更新(update)的到最新的版本的话,svn会提示当前的拷贝过时,须要更新。
提交(commit),必定要写上此次提交的内容的摘要,便于之后查阅。
将文件checkout到本地目录
svn checkout path(path是服务器上的目录)
svn update命令自动用服务器上的版本替换本地版本控制的文件 app
六、Xcode中使用SVN问题以及提交解决冲突问题
Xcode的SVN功能,和Eclipse中的subclipse或者windows下的tortoiseSVN比较起来功能还差不少。
我是索性不用的,直接用命令行。我看有的朋友是用subclipse,其实也挺好,不过,为了使用SVN功能要单独开一个耗费资源的Eclipse。
可是,不论使用什么SVN工具,都会遇到Xcode固有的问题,即project.pbxproj文件的提交冲突问题。
project.pbxproj 文件里面包含了构建过程所需的全部文件,若是你在项目目录下增长了新文件,好比没有经过Xcode,该文件就不在project.pbxproj文件中, 就不会生成到app中。同理,若是你从SVN中更新到其余项目成员增长的文件,而没有更新project.pbxproj文件(或者该成员根本就没有提交 这个文件),则也会出现相同的现象。
若是项目成员提交了新的project.pbxproj文件,你这边没有在项目中增长新的文件,直接svn update就能够了。 dom
这边本身也遇到了一样的问题,明明添加了新的文件,本地工程和文件夹中均可以显示,而后右键 commit单个add后的文件,从svn上checkout下来的却只有在工程文件夹中有这个新文件,在项目中没法显示这个新添加的文件,应该就是这个 问题。后来orgnizer选载commit,看到有commit列表中有这个xproj文件和新加的文件,选择提交再次checkout查看就能够看到 了。svn
七、Xcode中更新代码后项目文件打不开
若选择更新整个项目常常会出现冲突问题,尤为是project.pbxproj文件。此文件包含了构建过程所需的全部文件,若是在项目目录下增长了新文件,但没有经过Xcode,
该文件就不在project.pbxproj文件中,就不会生成到app中。同理,若是从SVN中更新到其余项目成员增长的文件,
而没有更新project.pbxproj文件(或者该成员根本就没有提交这个文件),则也会出现相同的现象。这一文件冲突将直接致使项目文件打不开。
解决更新代码后打不开项目文件方法:
当项目文件如tobacco.xcodeproj打不开时能够右键选择'显示包内容',会看到有三个文件,project.pbxproj/user.modelv3/user.pbxuser。
其中project.pbxproj有三个版本,和解决普通svn文件冲突同样解决冲突便可。
工具
八、SVN 更新 提交 合并 区别
当本地文件没有改动,服务器文件改动的时候,更新会从服务器取文件覆盖当前文件
当本地文件有改动,服务器文件没改动的话,不会更新此文件
当本地文件有改动,服务器文件有改动的话,若是改动的部分不冲突,就会合并文件到本地,若是有冲突的话,会提示文件冲突,须要本身手动修改之后上传到服务器。
最后一个讲解合并:
服务器和本地的同一个文件(所谓同一个文件应该就是SVN相对路径相同,文件名相同的文件,这个由SVN留在本地的信息决定)已经修改,且修改的部分不重合,不重叠
当知足上面的条件的时候再更新,SVN就会自动合并
SVN的奥妙之处就在于别人提交了修改后的文件,你再提交你的话,他是不容许你提交滴。。。
>>>>
<<<
里面标记的是冲突的区域,把冲突区域删除掉为何还不能提交
解决办法1:
删掉的话仍是没有解决冲突,文件后面还会有几个文件名相同,可是后缀不一样的文件
若是你不知道用SVN解决冲突的话,最简单的办法是这样的
把这个文件更名字,而后在文件所在目录更新,这样就会把服务器文件下下来,而后把本身修改的部分添加到更新的文件里面,这样就能够提交了
解决办法2:
在文件上面点击右键,到SVN的菜单,应该有编辑冲突的按钮,选择就会出现一个窗口,一边是服务器版本,一边是本身修改的版本 。
开发工具
九、xcode自带svn的使用
一、代码中 某文件后面有 “M” 标记,表示该文件已被修改,须要 commit.
(右键该文件 -> source control -> commit selected file...)
二、代码中 某文件后面有 “A” 标记,表示该文件是新添加的,已受SVN管理,须要 commit.
(右键该文件 -> source control -> commit selected file...)
三、代码中 某文件后面有 “?” 标记,表示该文件是新添加的,而且脱离了SVN的管理,首先须要add,而后 commit.
(右键该文件 -> source control -> Add,这样该文件的标记就变为 “A”,而后在 commit).
分类: 03A Xcode 调试