2012-12-15 2 views
3

git에서 각 커밋의 비용은 얼마입니까? 예를 들어, 변경 A와 B를 한 번에 커밋하는 대신 각 커밋을 별도로 커밋하는 경우 얼마나 많은 (또는 적은) 공간이 사용됩니까?git - 각 커밋의 비용

+1

당신이 http://eagain.net/articles/git-for-computer-scientists/을 읽고? Git 객체 모델에 대한 아이디어를 제공합니다. –

+0

이것을 정확하게 계량해야하는 방법은 무엇입니까? 당신의 유스 케이스는 무엇입니까? –

답변

3

TLDR : 필자는 테스트하지 않고도 직관적으로 실제 사용 사례의 차이는 최소화 할 것으로 예측합니다. 하루에 수천 개의 커밋을 수행하고 있다면 아마도 이것에 대해 더 분석적이어야합니다.

내 생각 프로세스 : 각 커밋은 메시지, 트리 및 블롭으로 구성됩니다. 큰 워크 스루에 대해서는 Git for Computer Scientists을 참조하십시오. 하나의 파일에 대해 blob을 diff로 생각하십시오. 일반적으로, 평균적으로, 나는 하나의 것이 아니라 2 개의 얼룩에 변화를주는 것의 차이를 기대하지 않을 것이다. 따라서 하나의 추가 트리 객체와 하나의 추가 커밋 메시지가 남게됩니다. (A 트리 오브젝트 어디 블롭 적용하는 자식 알려주는 하위 디렉토리와 파일 이름이다 -은 diff를 A는 메시지가이 생각하는 단지 무엇을 커밋합니다..)

은 그래서 일부을 절반을 넣어 :

  • 트리 객체는 커밋 메시지가 20 ~ 300 바이트 이상을 수단을 배로, 10 ~ 200 바이트 이러한 추정에 의해

수 있습니다 10 ~ 100 바이트

  • 수 있습니다.

    (참고 :.!이 분석은 디스크 할당에 고려하지 않습니다 그것을 해제 방법 기본이 될 수 있도록)

  • +0

    좋은 링크, 매우 유익한! – darkfeline

    2

    새로 만든 개체는 일반적으로 느슨한 개체입니다.

    각 느슨한 개체에 대해 최소 4K가 디스크에서 사용됩니다.

    단일 커밋은 최소한 커밋 개체, 트리 개체 및 BLOB 개체로 구성됩니다.

    공백 (파일 변경 없음)을 허용하면 하나의 커밋 개체 만 있지만 이것은 자주 사용되지 않습니다.

    따라서 12K가 최소입니다!

    +2

    느슨한 오브젝트가 가끔 팩킹되고, 최소 12k가 실제 데이터의 1k보다 작아지는 것을 제외하고는. –