如何在Xcode中使用svn合并冲突(文件project.pbxproj)?

2023-12-02

我们团队中有两名成员。我们使用Xcode的SCM(使用SVN)来管理我们的源代码文件。
我们都将文件添加到我们的 Xcode 项目中。他已经致力于SVN服务器。当我更新时,Xcode发现有冲突project.pbxproj文件。然后我选择退出Xcode并手动合并冲突。然后我开始编辑我的project.pbxproj,合并我们的更改。实际上我不知道Xcode如何管理文件,我只是添加一些我的文本project.pbxproj文件没有。当我完成后,我的项目无法打开。我想这是因为project.pbxproj文件无法手动编辑。

所以,我想知道,当你发现这个问题时,project.pbxproj文件有冲突,如何解决?

谢谢你!


我使用 git 但我们看到同样的问题 - 如果两个人添加文件,就会出现合并冲突。

通常编辑很容易。只需使用文本编辑器进入 project.pbxproj 文件,然后查找合并冲突部分 - 通常它标记为以下内容:

>>>>>>>
Stuff 1
======
Stuff 2
<<<<<<<<

在 99% 的 Xcode 项目合并冲突情况下,您只是想接受合并的双方(因为两个人添加了不同的文件) - 因此您只需删除合并标记,在上述情况下最终会像这样:

Stuff 1
Stuff 2

就像我说的,这在大多数情况下都很有效。如果完成后 Xcode 无法读取项目文件,只需获取最新的未合并版本并再次手动添加文件即可。

2023 年后续行动

这个建议仍然大部分有效,但最近我一直在开发一个非常大且旧的应用程序,其中包含一个复杂的 Xcode 项目文件,并且几个团队成员经常进行大量添加。

手动检查合并冲突仍然是主要方法。多人添加新文件通常仍然与使用合并冲突的双方一样简单。

仍然存在简单的后备方案,即简单地获取您尝试合并到分支中的项目文件,并使用存在冲突的 Xcode 项目的副本来手动添加回您的更改。

尽管我发现有一些特殊情况可能会带来挑战,但在解决方案极其不明显的情况下......

首先,有时,多个人处理同名的文件可能会导致多个完整的文件具有不同的标识符。对于此问题,请在文件所在的组中查找文件 ID,然后选择要保留的文件 ID 和要丢弃的文件 ID。

第二个是,在项目中的相似位置引入新组可能会导致分裂组的冲突。在这些情况下,您可能需要将合并一侧的内容完全移出合并冲突区域,并将其与项目文件中的其他组一起正确引入。

最后一个是促使我更新这个答案的非显而易见的解决方案。也就是说,有时您可能会遇到冲突,所有 CoreData 版本的条目都具有完全不同的标识符。例如,如果两个团队同时提高了模型版本,则可能会发生这种情况。

在这种情况下,您似乎可以仅使用这些标识符来选择一侧或另一侧。这有时有效。

然而,在某些情况下,如果我这样做,在加载项目时我将根本看不到任何模型版本 - Xcode 将它们全部删除。

解决方案再次是,保留合并的两侧,这意味着核心数据模型有两个条目!如果您这样做,会发生什么情况,Xcode 在加载项目时,将为所有模型选择有效的标识符并保存一个正确的版本,而不是允许两者都存在。

对于使用 CoreData 并同时进行多个版本更新的大型团队来说,我们发现一项有助于顺利解决问题的技术是建立一个单独的分支来进行 CoreData 模型更改。这样,所有团队都将尽快使用具有相同当前模型标识符和内部 Xcode 项目 ID 的相同 CoreData 版本。该分支仅包含 CoreData 模型本身,而不包含与模型相关的任何类(尽管可以)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Xcode中使用svn合并冲突(文件project.pbxproj)? 的相关文章

  • Modal UIViewController 在 iPad 上总是全屏显示。为什么?

    我试图在 iPad 上创建一个简单的模式对话框 无论是小设置 UIModalPresentationFormSheet 还是大设置 UIModalPresentationPageSheet 但无论我做什么 它们都会全屏显示 带有标题栏 模态
  • SVN:您可以仅从本地签出(而不是从存储库)中删除目录吗?

    假设您有一个受 subversion 控制的目录 其中包含一些文件和大量子目录 如下所示 file1 txt file2 txt file3 txt dir1 dir2 dir3 dir4 dirXX 现在您需要文件和一些目录 但不是全部
  • 可以转换为 Swift 5

    我在 Xcode 10 2 中收到此警告 可以转换为 Swift 5 当我单击此错误时 它会打开此窗口 当我们点击Next会发生什么 swift 的当前版本是 swift5 仅在 Xcode 10 2 中受支持 而您在 Xcode 10 2
  • UIView 子类中使用的 CAShapeLayer 不起作用

    我尝试了几个小时 用 CAShapeLayer 在 UIView 周围获得虚线边框 但我没有显示它 ScaleOverlay h import
  • 如何获取多点触摸 UITapGestureRecognizer 的多个位置

    我的视图中有一个 UITapGestureRecognizer 我可以使用下面的代码很好地获取其触摸的位置 现在 如果我将此识别器的触摸次数更改为 2 或更多 它仍然会为我提供一个位置 如何获得两次触摸的两个位置 tapGesture lo
  • Objective c:如何只删除目录下的所有文件但保留目录本身

    我发现下面的代码可以删除objective c中的文件 但我只想删除目录下的所有文件Caches并保留目录Caches itself 有人可以建议这样做的方法吗 Thanks NSFileManager filemgr filemgr NS
  • 替代已弃用的 NSNibLoading 方法(loadNibFile:、loadNibNamed: 等)?

    我发现 NSBundle 中的 NSNibLoading 方法 NSBundle loadNibFile externalNameTable withZone NSBundle loadNibNamed owner NSBundle loa
  • iOS 上每个选项的带有图像的操作表

    有没有办法在 iOS 上将图像添加到操作表中 与苹果在应用程序商店或苹果音乐应用程序上所做的一样 我对苹果文档的基本搜索表明我没有在操作表中子类化或添加子视图 UIActionSheet 并非设计为子类化 也不应向其层次结构添加视图 苹果文
  • iphone:通过代码获取目标设置中的用户定义变量?

    我的项目有多个目标 每个目标都有自己的目标Class用于设置内容的文件 我想存储它Class目标设置中的名称 Info plist或目标的建筑物设置 这样我就可以根据此设置定义每个目标中需要使用哪个类 根据这个问题 https stacko
  • 对于独立开发人员来说,通过 file:// 访问 Subversion 存储库有什么缺点吗?

    如果您的开发计算机上安装了 Subversion 并且您不在团队中工作 那么您是否有任何理由应该使用 Subversionsvn协议而不是file 如果您自己在一台机器上工作 那么根据我的经验 使用 file 协议效果很好 即使我的团队在远
  • 解析用户周围的位置

    您好 我开发了一个应用程序 我想问一个问题 在我的数据云解析中 我有 餐馆 类 我有三列 名称 类型字符串 imageFile 类型文件 description 类型数组和 Location 类型GeoPoint 我想知道使用哪种方法来获取
  • 如何等待 webViewDidFinishLoad 完成

    我有一个初始化 webView 的布尔条件 并在 webViewDidFinishLoad 中加载另一个委托 以便在完成完成后触发 但是 由于布尔值在条件 webViewDidFinishLoad 之前返回 因此页面永远不会完全加载 如何确
  • iOS 开发: [[self navigationController] viewControllers]; 有哪些原因?会返回零吗?

    以下语句返回零 NSArray viewControllersInNavStack self navigationController viewControllers 这个语句是在导航堆栈中大约四层深度的视图控制器中调用的 所以我不明白它如
  • SVN 存储库的总大小?

    当我测量服务器上的文件夹大小时 我有一个 8 GB 的 SVN 存储库 但是当我在本地检查它时 只需从根目录检查完整存储库 所有分支 标签 其大小为 50 GB 仍在计算中 看来 SVN 在压缩内容方面做得很好 怎么尺寸相差这么大 有没有什
  • 从 Core Data、iOS 获取最后插入的项目

    有没有办法获取核心数据数据库中最后插入的项目 这将返回最后插入的对象 setFetchLimit 1 和 setFetchOffset 所有条目数 1
  • MKMapView 中显示多个注释标注

    是否可以同时打开多个标注 代码 void mapViewDidFinishLoadingMap MKMapView theMapView for id
  • SecItemAdd 创建两个身份

    我正在为 iPhone 开发一个应用程序 需要证书来调用某些服务 因此我将证书添加到我的钥匙串中 执行以下操作 SecCertificateRef cert SecCertificateCreateWithData NULL bridge
  • 维护 UISegmentedControl 中的选择

    我可以保持 UISegmentViewControl 段的选定状态吗 即 即使用户选择了另一个段 也可以保持一个段显示为选中状态 我似乎在任何地方都找不到任何可以做到这一点的东西 这是不可能开箱即用的 看如何才能选择 UISegmented
  • 如何在 Xcode 4 中通过一个操作归档多个目标

    我有一个包含多个目标的项目 这些目标都适用于不同的 iOS 应用程序 例如 一个用于精简版的目标 另一个用于专业版的目标 我想立即构建并归档我的所有应用程序 目前 我对每个目标都有一个方案 我用它来独立归档每个应用程序 但现在我必须开始归档
  • 增加 NSData 的长度

    基本上 我有一个 46 个字符的 NSString 我将其转换为 NSData 我需要将字符串填充到 48 个字符 仅在 NSString 末尾添加 是行不通的 所以 我只是使用以下方法增加了 NSData 的长度 NSString str

随机推荐

  • 在 Android 中使用 Recyclerview(里面的整个项目)中的 iText 创建 PDF 文件?

    您好 我正在尝试使用该库从 Recyclerview 创建 PDF 输出文件iText 经过几个小时的努力 我能够从 recyclerview 创建 PDF 以下是我用来创建 PDF 的类 主类的代码 private void getPri
  • 如何检索 Facebook 好友列表并保存以供解析?

    我正在制作一个利用用户 Facebook 好友列表的应用程序 我的解析后端有一个名为的数组类型列fbFriendsList 环顾四周后 到目前为止我有这个 my permission array NSArray permissionsArr
  • 使用 pyudev 仅查找磁盘驱动器

    我希望使用 udev 枚举计算机上的所有硬盘 特别是 pyudev 来枚举所有内容 import pyudev context pyudev Context for device in context list devices subsys
  • sbt 是否有类似于 gradle 的 processResources 任务并支持 ReplaceTokens 的功能?

    我们正在从 Java Gradle 堆栈转向 Scala SBT 我们的 gradle 构建利用名为 processResources 的任务和一些名为 ReplaceTokens 的 Ant 过滤器来动态替换签入的 properties
  • 使用 printf 函数汇编无限循环[重复]

    这个问题在这里已经有答案了 谁能解释一下为什么这段代码会进入无限循环 我认为这与 printf 函数有关 q1 asciz Hello World n global main main movq rsp rbp movq 3 rcx jmp
  • 带有 Java 外键的 MongoDb

    我需要使用 Java 在 MongoDB 中保存两个集合 一个集合在哪里部门其他集合是Employee 如果一个部门可以有许多员工 我想保存一个集合 就像员工唯一 ID 必须映射到我的部门员工列表中一样 Example id ObjectI
  • Dplyr Mutate_each 用于成对的列集

    有没有办法使用 dplyr mutate each 实现以下转换 data frame x1 1 5 x2 6 10 y1 rnorm 5 y2 rnorm 5 gt mutate diff1 x1 y1 diff2 x2 y2 x1 x2
  • HSQL 创建过程语法似乎与文档不匹配

    我使用 HSQL 作为内存测试数据库来运行集成测试 在生产中 我有一个 oracle 10g 数据库 这个想法是运行我用来在 oracle 中创建数据库的数据库创建脚本 以在 hsql 中创建相同的数据库以进行集成测试 我遇到了有关语法差异
  • 边缘检测后获取边缘坐标(Canny)

    我使用 OpenCV 的时间相当短 并对图像执行了 Canny 边缘检测 之后还执行了膨胀以进一步将对象 在我的例子中是一个正方形 与背景分开 我现在的问题是使用一种算法来识别二维中的可抓取区域 该算法要求我处理这些边缘中的点的坐标 有没有
  • 什么是纯 SVG,什么是 SMIL?

    Context 我正在制作 SVG 信息图 我希望通过动画让文档变得栩栩如生 尤其是动画链接动画 我已经熟悉 SVG 但最近才开始学习 SVG 动画 由于 SMIL 已被弃用 我正在尝试用纯 SVG 制作动画 看看这篇文章 尤其是Handy
  • HTML canvas JavaScript 库和框架的当前技术水平如何? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 我目前正在研究在新的 HTML 5 应用程序中使用画布的选项 并且想知道 HTML 画布 JavaScript 库和框架的当前技术水平是什么 特别是 是否有框架支持游戏开发所需的东西 复杂
  • Swift:如何单击按钮打开新窗口?

    我是这种编程语言的新手 我想创建一个应用程序 当我单击按钮时打开一个包含一些信息的窗口 但我不知道该怎么做 我不使用故事板 因为我读到对于专业编程来说这些不起作用 我不想要 iOS 我想要 OS X 向大家问好 那很简单 您可以执行以下操作
  • 将 spring-batch-admin 集成到现有的 spring boot 后无法导入属性

    我曾经做过一个使用 spring batch 和 spring boot 的项目 我遵循了如何集成它的确切规则 1 删 除所有 EnableBatchProcessing 2 添加ServletConfiguration和WebappCon
  • 在 Razor 视图中根据需要创建字段

    我想在剃刀视图中根据需要创建一个文本框字段 我无法使用验证属性 Required 因为字段名称是动态生成的 我检查了这个答案这设置了data val required字段到true使用 JavaScript 有没有其他方法可以做到这一点 因
  • 突出显示 matplotlib 图中的任意点

    我是 python 和 matplotlib 的新手 我试图突出显示 matplotlib 中现有绘图中符合特定标准的几个点 初始绘图的代码如下 pl plot t y pl title Damped Sine Wave with 1f H
  • IntelliJ IDEA + Gradle - 如何记录从 IDE 运行的长时间运行的 Gradle 任务?

    IntelliJ IDEA 有时需要很长时间来执行 Gradle 刷新任务或运行 Gradle 任务 它会旋转很长一段时间 让你想知道它到底旋转了多远 或者它是否在做任何事情或冻结了 例如 这已经运行了很长时间 但我没有办法看到发生了什么
  • Java中的字符串表示

    字符串在 Java 中表示为对象 因此 一个对象包含存储在实例变量对象内 对象还包含对该对象进行操作的代码体 这些代码体称为methods 包含相同类型值和相同方法的对象被分组为类 类可以被视为这些对象的类型定义 那么 Java中的Stri
  • 检查或查找值是否存在于另一列中

    这应该很容易 但我就是不明白出了什么问题了 我有 3 列 第一列和第三列有数字 我希望第二列显示第 1 列中的数字是否存在于第 3 列中 我在网上找到了一个代码 IF ISERROR VLOOKUP A7 C 2 C 3400 1 FALS
  • ASP.Net MVC 长时间运行进程

    我需要为不同的财务周期生成报告屏幕 由于这是一个相当大的数据集 包含很多规则 因此该过程可能需要很长时间才能运行 某些报告返回需要一个多小时 在 MVC 中处理这种情况的最佳方法是什么 我担心 屏幕锁定 表现 可用性 请求超时 这些确实是合
  • 如何在Xcode中使用svn合并冲突(文件project.pbxproj)?

    我们团队中有两名成员 我们使用Xcode的SCM 使用SVN 来管理我们的源代码文件 我们都将文件添加到我们的 Xcode 项目中 他已经致力于SVN服务器 当我更新时 Xcode发现有冲突project pbxproj文件 然后我选择退出