2011-10-03 5 views
4

내가 생성 된 번들 파일이 4.8MB에 대한 크기를 가진 자식 저장소에git repo 묶기와 압축의 차이점은 무엇입니까?

git bundle create ../`basename $PWD`.all.gitbundle --all 

을 수행 할 때. 전체 저장소 폴더를 압축하면 결과 파일의 크기는 26,2MB입니다.

기본적으로 정보를 잃지 않고 전체 저장소를 백업하는 방법을 찾습니다. 그러나 보관 된 파일 크기 차이가 있다고 가정하면 git bundle이 모든 것을 백업하지 않거나 단순한 우편보다 더 효율적이라고 가정합니다.

누군가가이 문제를 해결해 줄 수 있습니까?

+0

모든 복제본은 저장소의 전체 복사본입니다. 복제본을 만들면 백업이되므로 매우 쉽게 업데이트 할 수 있습니다. – KingCrunch

+0

@KingCrunch : 분기 구조가 다르기 때문에 클론이 엄격하게 "복사본"이라고 말하지 않습니다. 실제 사본을 원하면 복제본에 --mirror 플래그를 추가하고 싶습니다. 이렇게하면 클론의 브랜치 구조가 원본을 정확하게 반영합니다. –

+0

미러도 저장소 디렉토리의 정확한 복제본이 아닙니다. .git/config에있을 수있는 사용자 정의 설정을 놓친 경우에도 진행중인 작업, 스테이지 영역 - 저장소에 기록되지 않은 모든 작업은 숨겨져 있습니다. – wilhelmtell

답변

1

git-bundle은 저장소 백업을 유지 관리하기위한 좋은 아이디어가 아닙니다. 베어 리포 지 토리 (bare repository)를 만들고 백업에서 추적하고자하는 레퍼런스를 푸시 (push)하거나 좋은 오래된 tarball을 사용하십시오. 두 가지의 차이점은 푸시 기능을 사용하면 선택적인 브랜치 만 백업 할 수 있다는 것입니다. 예를 들어 백업에서 스크래치 분기를 무시할 수 있습니다. 리포지토리를 압축하면 stash, untracked 파일, 오브젝트 파일 및 임시 편집기 파일을 포함하여 모든 것을 절대적으로 백업합니다.

나는 보통 모든 것을 압축합니다. git-clean -fdxn을 실행 한 다음 git-clean -fdx을 실행하여 저장소에 저장되지 않은 모든 항목을 조심스럽게 제거 할 수 있습니다. 백업을 수행 할 때 실제로 크기 효율성을 고집한다면, 백업하기 전에 가비지 수집을 할 수 있으며 reflog를 정리할 수도 있습니다. 하지만 알다시피, 나는하지 않을 것이다. 요즘 저장 용량은 저렴하므로 백업의 가치를 잃을뿐입니다.

1

번들 명령은

http://progit.org/2010/03/10/bundles.html

이 번들이있는 것 등 오래된 개체가 없음을 의미합니다 일반적으로 이 자식 푸시와 와이어를 통해 추진 될 모든 것을 포장한다 저장소에 참여하십시오. 또한 repo의 작업 디렉토리에있는 실제 파일은 계산하지 말고, 객체 및 기타 메타 데이터가 포함 된 .git 만 포함하면 번들에 포함될 파일이므로 원본 양식의 파일은 제외됩니다.

백업용으로는 git clone --mirror 옵션을 사용하거나 이전처럼 repo를 보관할 수 있습니다. 번들은 config, reflog, 부실 객체 등을 잃어 버릴 수 있기 때문에 repo의 실행 가능한 백업 옵션이 아닙니다.

1

제가 압축 할 때 zit을 사용한다고 생각합니다.

zip은 크기면에서 가장 뛰어난 보관 형식이 아닙니다.

델타 인코딩 순차 데이터보다는 완전한 파일

차이의 형태로 데이터를 저장하거나 전송하는 방법이다 : zlib는 또한이 (감사 위키) 인 크기를 줄이기 위해 delta-compression 사용 그것은 귀하의 작은 파일 크기를 설명 할 수 있습니다. 배변 된 배설물에서 file을 시도했는데 번들은 그냥 원시 데이터라고했습니다.

+0

나는 당신이 약간 잘못 알고 있다고 생각합니다. zlib 압축은 작동 방식의 일부로 델타 인코딩을 사용합니다 (기본적으로 모든 압축이 작동하는 방식입니다). Git은 델타 압축 파일을 저장소에있는 객체로 저장하고 zlib을 사용하여 델타 압축을 수행합니다 (작업 속도를 높이기 위해 점진적 패킹을 수행 할 때 델타를 재사용 할만큼 똑똑합니다). –

+0

와우. 그러면'zlib '을 사용하는 것 같습니다. – Blender

관련 문제