거대한 프로젝트를위한 분산 버전 제어 - 가능합니까?
물론입니다! 알다시피, Linux는 방대하고 힘내기를 사용합니다. Python, Mozilla, OpenSolaris 및 Java와 같은 Mercurial is used for some major projects도 있습니다.
지금 우리는 SVN에 상당히 만족하지만 조엘의 튜토리얼은 나를 흥미롭게 만들었다. 그래서 나는 궁금해했다 - 우리 상황에서도 실현 가능할 것인가?
예. Subversion에 만족한다면 많은 분기와 병합을하지 않을 것입니다!
우리의 SVN 저장소는 거대합니다. [...] 68,000 개가 넘는 리비전 (변경 집합)이 있습니다. 소스 자체가 100MB 이상을 차지합니다.
다른 사람들이 지적했듯이 실제로 많은 기존 프로젝트와 비교할 때 그다지 크지는 않습니다.
문제는 간단합니다. 전체 저장소의 복제본에 시간이 오래 걸리고 원격으로는 훨씬 더 많은 공간이 소모됩니다.
Git와 Mercurial 모두 저장소 관리에 매우 효율적이며 해당 리포지토리가 동일한 Subversion repo (몇 개 변환)보다 훨씬 적은 공간을 차지합니다. 그리고 처음 체크 아웃을하면 델타를 누를 뿐이며 은 매우입니다. 대부분의 작업에서이 둘은 훨씬 빠릅니다. 초기 복제본은 일회성 비용이므로 소요 시간은 중요하지 않습니다. 놀랍습니다.
그리고 분산 버전 관리의 요점은 필요한만큼의 저장소가 있어야하므로 의심이갑니다.
디스크 공간이 쌉니다. 개발자 생산성은 훨씬 더 중요합니다. 그래서 repo가 1GB를 차지한다면? 더 똑똑하게 일할 수 있다면, 그만한 가치가 있습니다.
Mercurial (또는 다른 분산 버전 제어)은 어떻게 처리합니까? 아니면 거대한 프로젝트에서 사용할 수 없습니까?
모질라가 변환 프로세스를 어떻게 관리했는지와 같은 projects using Mercurial을 읽는 것이 좋습니다. 대부분이 각각 주요 구성 요소를 포함하는 여러 개의 repos를 가지고 있습니다. Mercurial과 Git은 둘 다 중첩 된 저장소를 지원합니다. 그리고 변환 과정을 관리 할 도구가 있습니다 - Mercurial has built-in support for importing from most other systems.
추가 사항 : 전체 내용은 단일 .EXE로 컴파일되고 분할 할 수없는 프로젝트의 하나의 모 놀리 식 비스트입니다.
그러면 은 하나의 저장소 만 필요하므로은 더 쉽게 만듭니다.
2 추가 : 두 번째 생각 - Linux 커널 저장소는 git를 사용하며 아마 내 것보다 두 배 큰 것입니다. 그럼 어떻게하면 효과가 있습니까?
Git은 원시 속도로 설계되었습니다. 온 - 디스크 포맷, 와이어 프로토콜, 인 - 메모리 알고리즘은 모두 최적화되어 있습니다. 또한 개발자는 개별 개발자, 하위 시스템 관리자, 중위자, 결국 리누스에 이르는 정교한 워크 플로우를 개발했습니다. DVCS에 대한 가장 좋은 점 중 하나는 유연성이 뛰어나므로 모든 종류의 워크 플로가 가능하다는 것입니다.
브라이언 오 설리반 (Bryan O'Sullivan)이 excellent book on Mercurial을 읽는 것이 좋습니다. 그러면 속도가 빨라집니다. Mercurial을 다운로드하고 예제를 통해 작업하고 일부 스크래치 레포지 (scratch repo)에서이 예제를 사용하여 느낀다.
그런 다음 convert
명령을 실행하여 기존 소스 리포지토리를 가져 오십시오. 그런 다음 로컬 변경, 커밋, 분기, 로그보기, 내장 웹 서버 사용 등을 시도하십시오. 그런 다음 다른 상자로 복제하고 변경 사항을 적용하십시오. 시간이 가장 일반적인 작업 및 비교 방법을 참조하십시오. 비용은 들지 않지만 시간을 들여 완벽한 평가를 할 수 있습니다.
대부분의 VCS는 가능한 경우 하드 링크를 사용하므로 복제본에 많은 디스크 공간이 필요하지 않습니다. –
로컬 컴퓨터에서 복제하는 한 - 확실히. 그러나 다음 머신을 설치할 때 중앙 서버의 복제본은 어떻게됩니까? –
프로토 타입 (git 또는 수은으로 SVN을 가져 오십시오.), 측정, 자신을보십시오. 어쩌면 그것은 당신을 위해 작동 할 것입니다, 그렇지 않을 수도 있습니다. –