Управление версиями ноутбуков Mathematica

Ноутбуки Mathematica являются, конечно, файлами простого текста - кажется разумным ожидать, что они должны играть по правилам с системой управления версиями (мерзавец в моем случае, хотя я сомневаюсь относительно определенных системных вопросов). Но факт - то, что любой .nb файл полон информации о кэше, меток времени и других различных метаданных. Ставриды его.

Что означает, что ограниченное управление версиями возможно - фиксации и откаты хорошо работают. Слияние, тем не менее, является аварией. Mathematica не откроет файл с маркерами слияния в нем, и текстовый редактор не является никаким способом пройти .nb файл.

У кого-либо была удача при подвергании ноутбука управлению версиями? Как?

68
задан Etaoin 12 May 2010 в 07:05
поделиться

3 ответа

Рекомендуется отключить кэш структуры файла, который представляет собой метаданные, на которые вы ссылаетесь, когда просматриваете записную книжку с помощью текстового редактора. Как вы обнаружили, это может вызвать конфликты слияния, если несколько сторон редактируют одну и ту же записную книжку.

Это легко отключить с помощью инспектора параметров. В меню Mathematica перейдите в Формат Инспектор параметров ... , в верхнем левом углу установите раскрывающийся список scope на Выбранный блокнот ] и найдите FileOutlineCache в поле поиска. Установите значение False и сохраните записную книжку, и все будет готово.

Обратите внимание, что это может немного замедлить открытие записных книжек, но если ноутбук не достаточно большой, вы, вероятно, не заметите разницы.

45
ответ дан 24 November 2019 в 14:22
поделиться

Не совсем решение вашей проблемы слияния, но именно так мы обрабатываем записные книжки и систему управления версиями в моей команде. По сути, мы относимся к записным книжкам Mathematica так же, как и к двоичным файлам. Они зарегистрированы, но:

  • мы всегда храним PDF-копию вместе с .nb (резервная копия для восстановления информации на случай, если по какой-то причине мы потеряем возможность чтения файлов .nb. По-прежнему проприетарный формат, но немного более распространен, и есть вероятность, что и Adobe, и Wolfram не исчезнут одновременно)
  • мы не разрешаем слияния
  • мы проверяем только конечный продукт (визуализированный блокнот) вместо файла .nb.

Мы в основном используем Mathematica для небольших доказательств, исследований и побочных действий, поэтому описанная выше процедура нам подходит (наша основная документация находится в LaTeX, который обеспечивает более удобную документацию для нематематиков / непрограммистов)

{{1 }}
6
ответ дан 24 November 2019 в 14:22
поделиться

Вы должны получать маркеры слияния только в том случае, если система управления версиями обнаруживает изменения одной строки несколькими пользователями.

Система управления версиями добавляет маркеры, чтобы очень четко указать, где находятся конфликты, и вынудить вас вручную удалить их (при разрешении каждого конфликта). Система управления версиями не знает, как сделать это автоматически.

Если файл является текстовым, но предназначен для чтения только программой, он может вообще не содержать символов конца строки (или очень длинных строк). Поэтому, если над таким файлом работают несколько человек, вы получите много конфликтов слияния.

Я не знаком с форматом файлов nb, но в целом решение этой проблемы состоит в том, чтобы гарантировать, что только один человек работает с файлом за раз (т. Е. Используйте эксклюзивный режим извлечения для файлов nb).

0
ответ дан 24 November 2019 в 14:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: