2014-09-04 80 views
0

我已经参与了一个名为Secret M. Chronicles(SMC)的开源项目。git K&R格式删除

我们似乎遇到了一点用git问题的合并:

  • 我们在Git的两个主要分支:释放-2.0(用于即将推出的版本)和devel的(发展)
  • 决定将所有源代码切换到K & R格式化标准。
  • 格式化被应用于devel而不是release-2.0。其中一位团队成员表示,格式化工具可能会改变逻辑,即使它不应该这样做,这对于release-2.0分支来说是不可接受的。
  • 格式更改后,已将合理数量的更改推送到devel分支。
  • 每次我们将release-2.0合并为devel时,格式化的变化都会导致每一行显示为冲突,需要在合并时仔细检查。这增加了错误的机会,更不用说枯燥无味了。
  • 我们已经谈到,直到释放完成后,现在从devel的,以消除这些冲突去除的格式,但它不是简单:
    • 团队成员所隐含的复归可能不足以阻止合并冲突(根据我的理解正确的Git是如何工作的),并且从历史上彻底清除需要
    • 团队成员还表示,加上k & R键将释放2.0不会减少合并冲突,因为这将被视为历史上的不同变化。
    • 我们有更多的功能正在尝试的分支。发展中的变化已被合并到这些分支中。有些人也可能会从github分叉。有人担心历史编辑可能会导致其他分支机构/分支机构出现问题。

我真的不希望我们通过为了释放急于较少合并冲突,同时保持格式化,但我不希望我们通过一个糟糕的战略造成更严重的问题在git中进行历史编辑。 我们如何解决这个问题?

代码库是在https://github.com/Secretchronicles/SMC

我们在github上的讨论是在https://github.com/Secretchronicles/SMC/pull/159#issuecomment-54396354

回答

0

您可以尝试公开可见的:

git merge -Xignore-all-space 

参见:

就我个人而言,我只是修复版本2.0的格式。这是很容易发布前修复一次,然后有源浮动周围月或几年来的两个不同formatings。如果您担心格式化工具会破坏内容,请在重新格式化之前和之后编译并检查二进制文件是否相同。

+0

谢谢您再次帮助我们,Grumbel。 Quintus能够用它来解决我们遇到的问题。 – 2014-09-07 23:53:50