2010-03-19 6 views
5

Joel의 마지막 기사를 Mercurial에서 읽은 후, XP에서 단일 사용자 단일 컴퓨터 소스 제어 시스템을 사용하고 있습니다.하나의 저장소/여러 프로젝트가 섞이지 않고 있습니까?

내가 점검하고 싶은 한 가지는 : 예를 들어 유지하는 모든 작은 프로젝트의 저장소를 만드는 것이 더 쉬울 것입니다. C : \ VB.Net \,하지만 다른 프로젝트 (C : \ VB.Net \ ProjectA \, C : \ VB.Net \ ProjectB \ 등)에 대한 변경 사항은 단일 변경 로그.

하지만 모든 프로젝트에 대해 단일 리포지토리를 사용하는 경우 diff 기록을 보거나 변경 기록을 검토 할 때 특정 프로젝트와 관련된 변경 사항 만 볼 수 있도록 데이터를 필터링 할 수 있습니까? 그렇지 않다면 각 프로젝트 디렉토리에 리포지토리를 만드는 것이 유일한 해결책입니까?

감사합니다.

답변

5

각 단일 프로젝트마다 하나의 저장소를 유지하고 싶습니다. 오버 헤드가 최소화됩니다 (각 소스 코드 디렉토리 당 하나의 hg init 또는 Explorer에서 마우스 오른쪽 버튼으로 클릭). 혼동을 피할 수 있습니다. 결국 한 프로그램을 변경하면 전혀 관련이없는 프로그램의 버전 기록에 왜 영향을 주어야합니까?

물론 은 리포지토리 탐색기에서 각 파일의 기록을 볼 수 있지만 관련없는 항목을 하나의 리포지토리에 혼합하는 버전 제어라는 개념에 위배됩니다.

+0

감사합니다. 이제 각 프로젝트 하위 디렉토리에 리포를 만들어 보겠습니다. – Gulbahar

4

DVCS (예 : 모두 내역을 복제 할 수있는)의 올바른 세분성은 프로젝트입니다.

개발 수명주기가 다른 여러 프로젝트 (즉, 하나의 변경이 항상 다른 프로젝트에 영향을주지는 않음)가있는 경우 해당 프로젝트는 자체 repo에 있어야합니다.

0

누군가 bitbucket을 사용하는 경우 하나의 개인용 저장소 만 허용되므로 개인이되도록하려면 모든 프로젝트를 저장할 수 있습니다. 이 시나리오에 대한 의견을 듣고 싶습니다.

0

당신은 하나 개의 저장소로 이동 만 얕은 사업이있는 경우 :

그렇지 않으면
cd C:\VB.Net\ProjectA\ 
hg log *.* 

, 너무 많은 재귀를 피하기 위해 특정 파일 확장자를 지정해야 할 수도 있습니다 것은 :

cd C:\VB.Net\ProjectA\ 
hg log **/*.cpp 

이 될 수 있습니다 조금 느려지기도합니다. 프로젝트가 정말로 분리되어 있다면 태그/브랜치가 혼란 스러울 수도 있습니다.

참고 : 'Hello world!'라고 생각하지 않습니다. "독립형"일 수 있기 때문에 자체 저장소를 가질 자격이 있습니다.

관련 문제