文档章节

smartsvn学习(二)如何在Xcode下使用SVN

Align
 Align
发布于 2016/01/08 16:15
字数 2099
阅读 211
收藏 0

1、Xcode4中苹果有自带的SVN软件------>Organizer------>Repositories

2、SVN checkout到本地后,删除本地file,对服务器有影响吗? 
不会影响服务器,当你执行“svn update”时会zai再次被自动下载;当删除后再执行“svn commit”就会在服务器上也对应删除。 

3、连接服务器

点击file-》repositories-》点击坐下边的“+”-》然后名字及svn服务器的地址,还有type选中subversion然后next等等了。

4、Xcode4下,SVN中常用命令 
Commit   提交 
checkout   将服务器上下载到本地(我个正在使用的电脑) 
update  更新文件 
File------->SourceController------->update 
 
图片中第3个按钮,是视图对比按钮. 

5、SVN中用法详解和注意事项 
①提交自己的代码 
SVN更新的原则是要及时更新,及时提交。当完成了一个小功能,能够通过编译并且并且自己测试之后,尽量早的提交,这样也保存了历史版本,必要时候可以回滚;在开始一天的工作之前,最后update一下项目。 
②保持原子提交(不要不经意间修改并提交了别人的文件) 
仅提交你修改的部分,最好不要一下子将整个项目提交; 
当完成一个功能或文件后,最好提交。我就遇到完成某个功能后,没有提交,后来又做了更改,结果代码出现bug,无法恢复到正常时的代码。 
③不要提交自动生成的文件 
VisualStudio等开发工具在生成过程中会产生很多自动文件,如.suo等配置文件,Debug,Release,Obj等编译文件,以及其他的一些自动生成,同编译代码无关的文件,这些文件在提交的时候不应该签入,如果不小心签入了,需要从仓库中删除。 
④不要提交不能通过编译的代码 
代码在提交之前,首先要确认自己能够在本地编译。进行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 test fle“ 
例如: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 path 
SVN使用方法 
更新(update),经常地update没有坏处,特别是多人项目中。如果每次提交(commit)前不进行更新(update)的到最新的版本的话,svn会提示当前的拷贝过期,需要更新。  
提交(commit),一定要写上这次提交的内容的摘要,便于以后查阅。 
将文件checkout到本地目录  
svn checkout path(path是服务器上的目录) 
svn update命令自动用服务器上的版本替换本地版本控制的文件 

 

6、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就可以了。 

这边自己也遇到了同样的问题,明明添加了新的文件,本地工程和文件夹中都可以显示,然后右键 commit单个add后的文件,从svn上checkout下来的却只有在工程文件夹中有这个新文件,在项目中无法显示这个新添加的文件,应该就是这个 问题。后来orgnizer选载commit,看到有commit列表中有这个xproj文件和新加的文件,选择提交再次checkout查看就可以看到 了。



7、Xcode中更新代码后项目文件打不开 
 
若选择更新整个项目经常会出现冲突问题,尤其是project.pbxproj文件。此文件包含了构建过程所需的所有文件,如果在项目目录下增加了新文件,但没有通过Xcode, 
该文件就不在project.pbxproj文件中,就不会生成到app中。同理,如果从SVN中更新到其他项目成员增加的文件, 
而没有更新project.pbxproj文件(或者该成员根本就没有提交这个文件),则也会出现相同的现象。这一文件冲突将直接导致项目文件打不开。 
 
解决更新代码后打不开项目文件方法: 
当项目文件如tobacco.xcodeproj打不开时可以右键选择'显示包内容',会看到有三个文件,project.pbxproj/user.modelv3/user.pbxuser。 
其中project.pbxproj有三个版本,和解决普通svn文件冲突一样解决冲突即可。

 

8、SVN 更新 提交 合并 区别 
 
当本地文件没有改动,服务器文件改动的时候,更新会从服务器取文件覆盖当前文件 
当本地文件有改动,服务器文件没改动的话,不会更新此文件 
当本地文件有改动,服务器文件有改动的话,如果改动的部分不冲突,就会合并文件到本地,如果有冲突的话,会提示文件冲突,需要自己手动修改以后上传到服务器。 
最后一个讲解合并: 
服务器和本地的同一个文件(所谓同一个文件应该就是SVN相对路径相同,文件名相同的文件,这个由SVN留在本地的信息决定)已经修改,且修改的部分不重合,不重叠 
当满足上面的条件的时候再更新,SVN就会自动合并 
SVN的奥妙之处就在于别人提交了修改后的文件,你再提交你的话,他是不允许你提交滴。。。 
>>>> 
<<< 
里面标记的是冲突的区域,把冲突区域删除掉为什么还不能提交  
 
解决办法1: 
删掉的话还是没有解决冲突,文件后面还会有几个文件名相同,但是后缀不同的文件 
如果你不知道用SVN解决冲突的话,最简单的办法是这样的 
把这个文件改名字,然后在文件所在目录更新,这样就会把服务器文件下下来,然后把自己修改的部分添加到更新的文件里面,这样就可以提交了 
解决办法2: 
在文件上面点击右键,到SVN的菜单,应该有编辑冲突的按钮,选择就会出现一个窗口,一边是服务器版本,一边是自己修改的版本 。 

 

9、xcode自带svn的使用 
1、代码中 某文件后面有 “M” 标记,表示该文件已被修改,需要 commit. 
      (右键该文件 -> source control -> commit selected file...) 
2、代码中 某文件后面有 “A” 标记,表示该文件是新添加的,已受SVN管理,需要 commit. 
      (右键该文件 -> source control -> commit selected file...) 
3、代码中 某文件后面有 “?” 标记,表示该文件是新添加的,并且脱离了SVN的管理,首先需要add,然后 commit. 
      (右键该文件 -> source control -> Add,这样该文件的标记就变为 “A”,然后在 commit).


分类: 03A Xcode 调试


© 著作权归作者所有

Align
粉丝 11
博文 65
码字总数 71695
作品 0
昌平
高级程序员
私信 提问
SVN客户端 SmartSVN 6.6.9 发布

SVN客户端 SmartSVN 6.6.9 发布。SmartSVN 是一个功能强大而且简单好用的图形化的SVN客户端。 下载地址: all downloads (e.g. for other operating systems) older versions Download Smart...

小卒过河
2011/08/04
1K
5
SmartSVN V7.5 正式发布

日前,企业级SVN提供商Wandisco公司正式发布了SmartSVN 7.5版本,并提供专业版一个月试用期。 SmartSVN是专业级的SVN客户端软件,并且是目前唯一一款支持所有主流平台包括Mac OS的SVN客户端。...

wisper
2012/11/13
3.5K
1
SmartSVN 6 版本发布

SmartSVN 是一个功能强大而且简单好用的图形化的SVN客户端。 新版本最主要的是支持 Subversion 1.6 ,同时增加了一个插件 API 用来扩展和定制 SmartSVN ;支持将多个工作拷贝复制一个项目中,...

红薯
2009/05/13
328
0
SmartSVN 7.5 RC1 发布

SmartSVN 7.5 发布首个 RC 版本,链接地址: Change log Download SmartSVN 是一个功能强大而且简单好用的图形化的SVN客户端。

oschina
2012/09/07
743
0
SmartSVN 7.0.6 发布,图形 SVN 客户端

SmartSVN 7.0.6 发布了,这是一个 bugfix 版本,详细修复记录请看 here. 下载 SmartSVN 7.0.6 SmartSVN 是一个功能强大而且简单好用的图形化的SVN客户端。...

oschina
2012/08/30
1K
2

没有更多内容

加载失败,请刷新页面

加载更多

10分钟详解Spring全家桶7大知识点

点关注,不迷路;持续更新Java架构相关技术及资讯热文!!! Spring框架自诞生以来一直备受开发者青睐,有人亲切的称之为:Spring 全家桶。它包括SpringMVC、SpringBoot、Spring Cloud、Spr...

我最喜欢三大框架
19分钟前
4
0
注册服务

列出所有服务[root@localhost ~]# systemctl list-unit-files[root@localhost ~]# systemctl status mysqld[root@localhost ~]# systemctl stop mysqld[root@localhost ~]# ......

jxlgzwh
22分钟前
0
0
解决jdk8 stream tomap方法报错:java.lang.IllegalStateException: Duplicate key异常解决(key重复)

List<User> userList = User.ME.loadList(users); if (CollectionUtils.isNotEmpty(userList)) { Map<Long, User> userMap = userList.stream().filter(Objects::nonN......

冰峰雪座
31分钟前
0
0
jdk中的一些命令

jdk中的一些命令 jps jstack jmap jstat jhat jinfo javap http://www.importnew.com/18398.html

晨猫
32分钟前
0
0
Bystack的高TPS共识算法

共识算法是分布式系统保证节点数据状态一致性的方法,在区块链的共识算法分POW(工作量证明)和POS(权益证明)两大类。第一类POW模式是在公链项目中运用的最广泛应用的共识算法,比特币长达10年...

比原链Bytom
32分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部