Nie znam formatu pliku używanego w HDF5, ale zastanawiam się, czy pliki HDF5 nadają się do kontroli wersji za pomocą git (lub na przykład Mercurial lub Subversion)? Wydaje mi się, że mam na myśli: czy pliki HDF5 nadają się do różnicowania na podstawie linii, czy też git będzie musiał traktować HDF5 jako jeden duży plik binarny i przechowywać całą kopię dla każdej wersji?
data-management
data-storage
Thomas Arildsen
źródło
źródło
Odpowiedzi:
Dostaniesz o wiele lepszą odpowiedź, jeśli podasz kilka dodatkowych szczegółów technicznych na temat tego, jakie dane próbujesz poddać kontroli wersji, w jaki sposób chcesz przechowywać różne wersje danych, jakie składniki mogą się zmienić a jakie elementy nie są i czy naprawdę będziesz mieć drzewiastą historię (gałęzie, scalenia).
Pliki HDF5 nie nadają się do kontroli wersji opartej na różnicach w git.
git używa bazy danych opartej na haszowaniu pod maską, więc możliwe jest przechowywanie skrótu pliku danych HDF5 bez faktycznego przechowywania samego pliku. Trzy projekty, git-fat , git-annex i git-media , znacznie upraszczają ten proces. Sugerowałbym użycie tego podejścia, jeśli masz duże, całkowicie niezależne fragmenty danych, które chciałbyś jawnie zaktualizować.
Jeśli możesz podzielić przechowywanie danych na nietrwałe i niestabilne regiony, znacznie poprawi to efektywność interakcji z bazą danych kontroli wersji. Możesz również rozważyć użycie bazy danych dla swoich danych, jeśli nie potrzebujesz funkcji git oferowanych przez DVCS.
źródło
Dosłowną odpowiedzią na to pytanie jest to, że git nie traktuje skutecznie plików HDF5.
Aby uzyskać bardziej przydatne odpowiedzi na temat kontroli wersji dla projektów, które mają niektóre pliki binarne, zobacz to pytanie stackoverflow: /programming/540535/managing-large-binary-files-with-git
źródło
Jak powiedzieli inni, łatwiej byłoby przedstawić użyteczne sugestie, gdybyś opisał swój ogólny cel, a nie konkretny punkt techniczny. Oto jeszcze jedna sugestia, która może ci pomóc, w zależności od tego, jaki jest twój cel.
Projekt ActivePapers ( http://www.activepapers.org/ ) zapewnia system zarządzania kodem i danymi na HDF5. ActivePaper to plik HDF5, który zawiera zestawy danych ORAZ kod, który na nich działa, a metadane śledzą, który fragment kodu obliczył, który zestaw danych i wykorzystując dane wejściowe. W połączeniu z kontrolą wersji kodu źródłowego i / lub kontrolą wersji całego pliku HDF5 (przy użyciu narzędzi takich jak załącznik git, wspomniany w innej odpowiedzi), ActivePapers mogą być używane do obliczania wersji zamiast izolowanych plików lub zestawów danych.
Oświadczenie: Jestem autorem ActivePapers.
źródło