HDF5에 사용 된 파일 형식에 익숙하지 않지만 HDF5 파일이 git (또는 Mercurial 또는 Subversion)의 개정 제어에 적합한 지 궁금합니다. 내가 의미하는 바는 HDF5 파일이 라인 기반 디핑에 적합한 지 또는 git이 HDF5를 하나의 큰 바이너리로 취급하고 각 개정에 대한 전체 사본을 저장해야 하는가?
HDF5에 사용 된 파일 형식에 익숙하지 않지만 HDF5 파일이 git (또는 Mercurial 또는 Subversion)의 개정 제어에 적합한 지 궁금합니다. 내가 의미하는 바는 HDF5 파일이 라인 기반 디핑에 적합한 지 또는 git이 HDF5를 하나의 큰 바이너리로 취급하고 각 개정에 대한 전체 사본을 저장해야 하는가?
답변:
어떤 버전의 데이터를 버전 제어하에 두려고하는지, 다른 버전의 데이터를 저장하려는 방법, 구성 요소가 변경 될 가능성에 대한 기술적 인 세부 정보를 제공하면 훨씬 더 나은 답변을 얻을 수 있습니다. 그리고 어떤 구성 요소가 아닌지, 그리고 정말로 나무와 같은 역사 (분기, 병합)를 가질 지 여부.
HDF5 파일은 git에서 diff 기반 버전 제어에 적합하지 않습니다.
git은 후드에서 해시 기반 데이터베이스를 사용하므로 실제로 파일 자체를 저장하지 않고 HDF5 데이터 파일의 해시를 저장할 수 있습니다. git-fat , git-annex 및 git-media의 세 프로젝트 가이 프로세스를 크게 단순화합니다. 명시 적으로 버전을 지정하려는 완전히 독립적 인 큰 데이터 덩어리가있는 경우이 방법을 사용하는 것이 좋습니다.
데이터 스토리지를 비 휘발성 및 휘발성 영역으로 분리 할 수 있으면 버전 제어 데이터베이스와의 상호 작용 효율성이 크게 향상됩니다. git offers DVCS 기능이 필요하지 않은 경우 데이터베이스를 명시 적으로 사용하는 것이 좋습니다.
내가 의미하는 바는 HDF5 파일이 라인 기반 디핑에 적합한 지 또는 git이 HDF5를 하나의 큰 바이너리로 취급하고 각 개정에 대한 전체 사본을 저장해야 하는가?
이 질문에 대한 문자 적 대답은 git이 HDF5 파일을 효율적으로 처리하지 못한다는 것입니다.
이진 파일이있는 프로젝트의 버전 관리에 대한 유용한 답변은 다음 stackoverflow 질문을 참조하십시오. /programming/540535/managing-large-binary-files-with-git
다른 사람들이 말했듯이 정확한 기술적 요점이 아니라 전반적인 목표를 설명하면 유용한 제안을하는 것이 더 쉬울 것입니다. 목표가 무엇인지에 따라 도움이 될만한 제안이 하나 더 있습니다.
ActivePapers 프로젝트 ( http://www.activepapers.org/ )는 HDF5 위에 코드 및 데이터 관리 시스템을 제공합니다. ActivePaper는 데이터 세트와 데이터를 처리하는 코드를 포함하는 HDF5 파일이며 메타 데이터는 어떤 코드가 어떤 데이터 세트를 계산하고 어떤 입력 데이터를 사용하는지 추적합니다. ActivePapers는 소스 코드에 대한 버전 제어 및 / 또는 전체 HDF5 파일에 대한 버전 제어 (다른 응답에서 언급 한 git-annex와 같은 도구 사용)와 함께 분리 된 파일이나 데이터 세트가 아닌 버전 계산에 사용될 수 있습니다.
면책 조항 : 저는 ActivePapers의 저자입니다.