Je ne connais pas le format de fichier utilisé dans HDF5, mais je me demande si les fichiers HDF5 conviennent au contrôle de révision avec git (ou par exemple Mercurial ou Subversion)? Je suppose que ce que je veux dire est: les fichiers HDF5 sont-ils adaptés à la diff-line en ligne ou git devra-t-il traiter un HDF5 comme un gros binaire et stocker une copie entière pour chaque révision?
data-management
data-storage
Thomas Arildsen
la source
la source
Réponses:
Vous obtiendrez une bien meilleure réponse si vous fournissez quelques détails techniques supplémentaires sur le type de données que vous essayez de mettre sous contrôle de version, comment vous souhaitez stocker différentes versions des données, quels composants sont susceptibles de changer et quels composants ne le sont pas, et si vous allez vraiment avoir un historique arborescent (branches, fusions).
Les fichiers HDF5 ne conviennent pas pour le contrôle de version basé sur diff sous git.
git utilise une base de données basée sur le hachage sous le capot, il est donc possible de stocker le hachage de votre fichier de données HDF5 sans réellement stocker le fichier lui-même. Trois projets, git-fat , git-annex et git-media , simplifient grandement ce processus pour vous. Je suggérerais d'utiliser cette approche si vous avez de gros morceaux de données complètement indépendants que vous souhaitez mettre à jour explicitement.
Si vous pouvez séparer votre stockage de données en régions non volatiles et volatiles, cela améliorera considérablement l'efficacité de votre interaction avec la base de données de contrôle de version. Vous pouvez également envisager d'utiliser explicitement une base de données pour vos données si vous n'avez pas besoin des fonctionnalités git de DVCS.
la source
La réponse littérale à cette question est que git ne traitera pas efficacement les fichiers HDF5.
Pour des réponses plus utiles sur le contrôle de version pour les projets qui ont des fichiers binaires, voir cette question stackoverflow: /programming/540535/managing-large-binary-files-with-git
la source
Comme d'autres l'ont dit, il serait plus facile de faire des suggestions utiles si vous décriviez votre objectif global plutôt qu'un point technique précis. Voici une autre suggestion qui pourrait vous aider, selon votre objectif.
Le projet ActivePapers ( http://www.activepapers.org/ ) fournit un système de gestion de code et de données en plus de HDF5. Un ActivePaper est un fichier HDF5 qui contient des ensembles de données ET le code qui fonctionne sur eux, avec des métadonnées gardant la trace de quel morceau de code calculé quel ensemble de données et en utilisant quelles données d'entrée. En combinaison avec le contrôle de version sur le code source et / ou le contrôle de version sur l'ensemble du fichier HDF5 (en utilisant des outils tels que git-annex, mentionné dans une autre réponse), ActivePapers peut être utilisé pour versionner des calculs plutôt que des fichiers ou des ensembles de données isolés.
Avertissement: je suis l'auteur d'ActivePapers.
la source