2010-06-30 36 views
7

当我们将核心数据模型文件置于版本控制下时,我们总会有一段可怕的时间合并更改 - 我们发现避免必须手动合并更改的唯一可靠的方法是在团队之间进行通信以阻止关闭对模型的访问,而一个人进行必要的更改和推送,然后是下一个人等。 当然有更好的方法来处理这个问题,但作为一个git新手,没有明显的解决方案。 有什么建议吗?我该如何理解版本控制和核心数据模型?

回答

3

据我所见,目前还没有一种比较安全的方式,因为模型存储的格式不适合合并。通常情况下,我会按照您的要求进行操作,一次有一个人在模型上工作以避免碰撞。

+0

谢谢马库斯。我们的沟通必须更加严谨! – 2010-07-02 20:42:40

1

只要您开始维护迁移映射模型,至少您可以比较数据模型并查看更改。 在数据模型的SCM修订中,相同的比较功能也很棒,并且会使生活变得更容易。

+0

谢谢马丁 - 我们来看看这个。 – 2010-07-02 20:43:31

3

虽然没有办法解决核心数据模型的合并问题,但我为核心数据模型文件创建了一个git diff驱动程序,它应该使事情变得更容易一些(请参阅README了解如何设置它的说明)

https://github.com/chaitanyagupta/XCDataModelPrinter

一旦你设置XCDataModelPrinter为您的git-DIFF驱动程序,你可以做一些事情,使合并更容易一点:

在我们的分支

对模型所做的评论变更
git diff other-branch...my-branch -- /path/to/model 

在另一个分支

git diff my-branch...other-branch -- /path/to/model 

对模型所做的评论变更审核完更改后,让我们试着做我们的分支合并:

git merge other-branch 

如果混帐没” t报告合并冲突,然后查看合并结果(在这种情况下,您将看到组合差异)

git diff --cached /path/to/model 

如果th合并导致冲突,可以采用以下两种路径之一:在自己的分支中检出模型文件,并手动添加对另一个模型的更改,反之亦然。假设你要使用的第一路径:

退房模式的转变在我们自己的分支:

git checkout --ours -- /path/to/model 

使用上面的diff命令中的其他分支中所做的更改,手动添加这些变化和综述:

git diff -- /path/to/model 

一旦你感到满意,只是混帐添加模型文件,以便它不再标记为未合并,并承诺:

git add /path/to/model 
git commit 
相关问题