Mathematica笔记本的版本控制

Mathematica笔记本当然是纯文本文件 - 看起来他们应该在版本控制系统(git,在我的情况下,尽管我怀疑特定系统很重要)应该玩得很好。 但事实是任何.nb文件都充满了缓存信息,时间戳和其他各种元数据。 它的一大堆。

这意味着有限的版本控制是可能的 - 提交和回滚工作正常。 然而,合并是一场灾难。 Mathematica不会打开带有合并标记的文件,并且文本编辑器无法通过.nb文件。

有谁有任何运气把版本控制下的笔记本? 怎么样?


建议禁用文件大纲缓存,这是您使用文本编辑器查看笔记本时所指的元数据。 正如你发现的,如果多方正在编辑同一个笔记本,它可能会导致合并冲突。

使用Option Inspector很容易禁用此功能。 在Mathematica菜单中,转到格式选项检查器... ,在左上角将范围下拉菜单设置为选定笔记本并在搜索字段中搜索FileOutlineCache 。 将该选项设置为False并保存笔记本,并且应该全部设置。

请注意,这可能会使打开笔记本电脑变慢一点,但除非笔记本电脑相当大,否则您可能不会注意到其中的差异。


关于如何使用Mathematica在Mathematica Stack Exchange上使用Git进行版本控制,有一套很好的建议。 简而言之,理念是尽量减少.nb笔记本的使用,并尝试使用.m包(类似于上面的xuhdev和MMA用户所说的)来执行大部分版本控制。 考虑到笔记本电脑的管理方式,这似乎相当明智。


完全不是解决您的合并问题的解决方案,但这是我们如何处理团队中的笔记本电脑和源代码管理。 基本上,我们以对待二进制文件的方式对待Mathematica笔记本电脑。 他们登记入住,但:

  • 我们总是保留pdf副本以及.nb(用于恢复信息的备份,以防由于某种原因丢失信息,因为某些原因,读取.nb文件的能力仍然是专有格式,但更广泛一些,并且可能是Adobe和Wolfram不会同时消失)
  • 我们不允许合并
  • 我们只编译最终产品(渲染的笔记本)而不是.nb文件。
  • 我们主要使用Mathematica进行小样本,探索和侧轨,所以上述过程对我们来说很好(我们的主要文档在LaTeX中,它为非数学家/非程序员生成更友好的文档)

    链接地址: http://www.djcxy.com/p/6039.html

    上一篇: Version control of Mathematica notebooks

    下一篇: check if my facebook app is allready authorized