Я не знаком с форматом файлов, используемым в HDF5, но мне интересно, подходят ли файлы HDF5 для контроля версий с помощью git (или, например, Mercurial или Subversion)? Я предполагаю, что я имею в виду: подходят ли файлы HDF5 для линейного сравнения или git должен будет рассматривать HDF5 как один большой двоичный файл и хранить полную копию для каждой ревизии?
data-management
data-storage
Томас Арилдсен
источник
источник
Ответы:
Вы получите гораздо лучший ответ, если предоставите еще несколько технических деталей о том, какие данные вы пытаетесь поставить под контроль версий, как вы хотите хранить разные версии данных, какие компоненты могут измениться. и какие компоненты не, и действительно ли у вас будет древовидная история (ветви, слияния).
Файлы HDF5 не подходят для контроля версий на основе diff в git.
git использует внутреннюю базу данных на основе хеша, поэтому можно хранить хеш вашего файла данных HDF5 без фактического сохранения самого файла. Три проекта, git-fat , git-annex и git-media , значительно упрощают этот процесс для вас. Я бы предложил использовать этот подход, если у вас есть большие, полностью независимые порции данных, которые вы хотели бы явно версии.
Если вы сможете разделить хранилище данных на энергонезависимые и нестабильные регионы, это значительно повысит эффективность вашего взаимодействия с базой данных контроля версий. Вы также можете рассмотреть возможность явного использования базы данных для ваших данных, если вам не нужны предложения git по функциям DVCS.
источник
Буквальный ответ на этот вопрос заключается в том, что git не будет эффективно обрабатывать файлы HDF5.
Для получения более полезных ответов о контроле версий для проектов, имеющих некоторые двоичные файлы, см. Этот вопрос stackoverflow: /programming/540535/managing-large-binary-files-with-git
источник
Как говорили другие, было бы легче сделать полезные предложения, если бы вы описали свою общую цель, а не точную техническую точку. Вот еще одно предложение, которое может помочь вам, в зависимости от вашей цели.
Проект ActivePapers ( http://www.activepapers.org/ ) предоставляет систему управления кодом и данными поверх HDF5. ActivePaper - это файл HDF5, который содержит наборы данных И код, который на них работает, с метаданными, отслеживающими, какой фрагмент кода вычислен, какой набор данных и с какими входными данными. В сочетании с контролем версий исходного кода и / или контролем версий всего файла HDF5 (с использованием инструментов, таких как git-annex, упомянутых в другом ответе), ActivePapers можно использовать для вычислений версий, а не для отдельных файлов или наборов данных.
Отказ от ответственности: я автор ActivePapers.
источник