Saya tidak terbiasa dengan format file yang digunakan dalam HDF5, tetapi saya bertanya-tanya apakah file HDF5 cocok untuk kontrol revisi dengan git (atau misalnya Mercurial atau Subversion)? Saya kira apa yang saya maksud adalah: apakah file HDF5 cocok untuk perbedaan berbasis garis atau git harus memperlakukan HDF5 sebagai satu biner besar dan menyimpan seluruh salinan untuk setiap revisi?
data-management
data-storage
Thomas Arildsen
sumber
sumber
Jawaban:
Anda akan mendapatkan jawaban yang jauh lebih baik jika Anda memberikan beberapa rincian teknis lebih lanjut tentang jenis data apa yang Anda coba letakkan di bawah kontrol versi, bagaimana Anda ingin menyimpan versi data yang berbeda, komponen apa yang cenderung berubah dan komponen apa yang tidak, dan apakah Anda benar-benar akan memiliki sejarah seperti pohon (cabang, gabungan).
File HDF5 tidak cocok untuk kontrol versi berbasis-diff di bawah git.
git menggunakan basis data berbasis hash di bawah tenda, sehingga dimungkinkan untuk menyimpan hash dari file data HDF5 Anda tanpa benar-benar menyimpan file itu sendiri. Tiga proyek, git-fat , git-annex dan git-media , sangat menyederhanakan proses ini untuk Anda. Saya akan menyarankan menggunakan pendekatan ini jika Anda memiliki data yang besar dan sepenuhnya independen yang ingin Anda versi secara eksplisit.
Jika Anda dapat memisahkan penyimpanan data Anda menjadi wilayah yang tidak mudah menguap dan tidak stabil, ini akan sangat meningkatkan efisiensi interaksi Anda dengan basis data kontrol versi. Anda mungkin juga ingin mempertimbangkan untuk secara eksplisit menggunakan database untuk data Anda jika Anda tidak memerlukan fitur DVCS yang ditawarkan git.
sumber
Jawaban literal untuk pertanyaan ini adalah bahwa git tidak akan memperlakukan file HDF5 secara efisien.
Untuk jawaban yang lebih berguna tentang kontrol versi untuk proyek yang memiliki beberapa file biner, lihat pertanyaan stackoverflow ini: /programming/540535/managing-large-binary-files-with-git
sumber
Seperti yang dikatakan orang lain, akan lebih mudah untuk membuat saran yang berguna jika Anda menggambarkan tujuan keseluruhan Anda daripada titik teknis yang tepat. Berikut ini satu saran lagi yang mungkin dapat membantu Anda, tergantung pada apa tujuan Anda.
Proyek ActivePapers ( http://www.activepapers.org/ ) menyediakan kode dan sistem manajemen data di atas HDF5. ActivePaper adalah file HDF5 yang berisi kumpulan data DAN kode yang bekerja dengannya, dengan metadata melacak bagian kode mana yang menghitung dataset mana dan menggunakan data input mana. Dalam kombinasi dengan kontrol versi pada kode sumber dan / atau kontrol versi pada seluruh file HDF5 (menggunakan alat-alat seperti git-lampiran, disebutkan dalam balasan lain), ActivePapers dapat digunakan untuk menghitung versi perhitungan daripada file atau dataset yang terisolasi.
Penafian: Saya adalah penulis ActivePapers.
sumber