Mathematica笔记本的版本控制

Eta*_*oin 68 git version-control wolfram-mathematica

Mathematica笔记本当然是纯文本文件 - 期望他们应该使用版本控制系统(在我的情况下使用git,虽然我怀疑特定系统很重要)似乎是合理的.但事实是任何.nb文件都充满了缓存信息,时间戳和其他各种元数据.它的一团糟.

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

有没有人有运气将笔记本置于版本控制之下?怎么样?

Mic*_*lat 45

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

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

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

  • 您可能要禁用的另一个选项是TrackCellChangeTimes (6认同)
  • 同样有用的是"单元格 - >删除所有输出"和"笔记本历史记录"菜单选项.包'AuthorTools`包含`NotebookDiff`,它可以挂钩到VCS的diff命令中.最后,有一个 (5认同)

小智 11

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


Ken*_*ena 6

完全不是解决你的合并问题的方法,但这就是我们在团队中处理笔记本和源代码控制的方法.基本上,我们以对待二进制文件的方式对待Mathematica笔记本.他们已办理登机手续,但是:

  • 我们总是保留一份pdf副本和.nb(备份用于恢复信息,以防我们因某些原因丢失读数.nb文件的能力.仍然是专有格式,但更广泛,并且可能是Adobe和Wolfram不会同时消失)
  • 我们不允许合并
  • 我们只对最终产品(呈现的笔记本)进行代码检查,而不是.nb文件.

我们大多使用Mathematica进行小型校对,探索和侧轨,因此上述程序对我们来说很好(我们的主要文档是在LaTeX中,它为非数学家/非程序员生成更友好的文档)