公司策略是--no-ff用于合并提交.我个人喜欢调整合并日志消息,所以我使用--no-commit.另外,我想在提交之前进行实际的编译和测试.
如何为所有分支制作--no-ff和--no-commit默认?
(而且我在问这个以后的几年里学到了,我几乎总是对提交感到满意,因此默认情况下允许它提交更简单,只要我修改或以其他方式解决问题,然后再进行推送都好...)
我可以将ManagedObjectContext的父上下文设置为具有不同并发类型的ManagedObjectContext吗?例如:
backgroundManagedObjectContext_ = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType];
[backgroundManagedObjectContext_ setPersistentStoreCoordinator:coordinator];
managedObjectContext_ = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType];
[managedObjectContext_ setParentContext:backgroundManagedObjectContext_];
Run Code Online (Sandbox Code Playgroud)
我的目标是(希望)获得managedObjectContext_的快速保存(因为它只需要将内容保存到父内存上下文中),然后让backgroundManagedObjectContext_在其自己的队列中执行保存.除非我碰巧需要在后台保存之前从"前台"队列执行另一次保存,否则我的用户永远不会看到很长的保存时间.
我遇到了看起来像死锁的东西,但我不确定它们是否与此相关,或者我的问题是否在其他地方.
我可以或多或少地可靠地产生死锁的地方的详细信息:
我有一个主线程的托管对象上下文,它由具有私有队列并发类型的托管对象上下文支持,并且具有持久性存储.
我有一些实体类型(大约5个),每个实体类型与另一个实体有一个或两个双向关系.
我的应用程序想要使用iCloud(我已经为这些测试拨打了代码),因此它无法附带预先填充的数据库,它需要在检测到空数据库时构建它.
因此,当我看到一个空数据库(在主线程上检查)时,我添加了除了一个实体类型之外的所有类型中的4个或8个,并且最后一个获得大约100个(所有添加都发生在主线程上).主线程执行saveContext.在完成之后(没有错误),它要求其他托管对象上下文运行也执行saveContext的块.这个saveContext绝对是一个死锁参与者.这也是使用"背景"NSManagedObjectContext完成的唯一内容.
在此之后,确切的控制流程有点模糊,因为NSFetchedResultsController(所有给定实体类型(具有~3个成员)具有简单排序,批量大小为20左右)驱动下一轮Core Data活动,但是有来自TableViewController的调用询问它需要管理多少项,即"获取的结果控制器有多少结果".那个电话是僵局的另一面.(这一切都在主线程中)
我有一个在NIB中定义的UITableViewCell(实际上是一个子类).在NIB中我将帧高设置为183,我还将"行高"设置为183并勾选自定义.
在我原来的问题中,这里的一切都出了问题.看起来我的背高度错了,细胞装在错误的高度,然后调整到合适的高度,造成一个令人讨厌的视觉故障.
实际上我做了一些愚蠢的事情(并且总是返回错误的高度),而且我已经太晚了才能弄明白,所以我向SO寻求帮助然后去睡觉.睡觉(+咖啡)让一切都清晰.
因此,对于记录,如果从NIB加载自定义UITableViewCell,您可以查看frame.size.height并返回正确的数字.
如果从中返回错误的数字,则tableView:heightForRowAtIndexPath:可能会出现此故障,至少如果错误的单元格是表格中的最后一个(我预计问题将以另一种方式显示给其他单元格)
所以我已经解决了我自己的问题,希望能够为其他任何人提供足够的信息.如果有人认为这应该有正式答案,请放心,我计划在一天或三天内接受最好看的一个.
所以我倾向于最近克隆一个repo,我需要在"非常接近"的网络上工作(经常在本地磁盘上).还有一个"官方"服务器,我的工作流程确实想成为原点,但它通常很慢(因为它过载,或者在远程网络上,或两者兼而有之).
(这个本地仓库是官方服务器的一个克隆,趋向于一周或两个过时,但是回购非常大,并且从旧的VCS引入了大约十年的历史记录,所以本地克隆加上从远程获取的是快得多)
如果我git clone -o local /path/to/repo,那么git remote add -f origin URI-for-offical-repo我最终会得到同样的东西(*)git clone URI-for-offical-repo会给我吗?
我特别警惕任何微妙的差异可能会使我的回购不同.此外,如果我开始使用这种加速克隆的方法,可能已经使用这种方法制作了"本地"回购,可能是多代.
(*)相同的加上额外的远程名称"local",以及任何未从本地推送到官方服务器的东西.
我正在尝试使用NSBatchDeleteRequest删除一堆实体,其中许多实体都删除了级联和/或无效规则.
我第一次尝试删除任何内容都失败了,我收到的NSError包括字符串"批删除不支持删除规则".我曾经认为删除这些东西很好,但我负责确保在保存之前满足所有约束条件.
我应该能够批量删除这些托管对象吗?(我想保留删除规则,其他删除路径没有简单的方法来知道要删除哪些对象集合)在这种情况下,某些类型的批删除工作是否正常,但其他人没有?(说谓词失败,但是对象ID列表有效吗?)