2011-09-07 4 views
3

나는 수은으로 여러 "사이트"를 관리하는 가장 좋은 시나리오를 찾고 있습니다. 웹 루트에 여러 사이트가있을 가능성이 높기 때문에 모두 다르지만 약간 비슷합니다 (루트 앱의 '사용자 정의'와 동일).분산 버전 제어. - Git & Mercurial ... 여러 사이트

해야할까요 A) wwwroot 폴더 (모든 사이트에서 모든 변경 내용을 가져옴) B) 각 저장소마다 다른 저장소가 있음

이 문제는 개발을위한 가상 호스트로 인해 각 사이트마다 고유 한 실제 디렉토리가 필요하며 현재 " 일부 "실제 파일 차이점을 교차 사이트.

여기에서 가장 좋은 방법은 무엇입니까? 나는 각 디렉토리에 대해 별도의 저장소에 기대고있다. 그 하나의 사이트 클리너에 대한 분기 및 합병 추적을하게됩니다 ....

답변

1

그것은 소프트웨어가 어떻게 구조화되어 있으며, 다른 사이트가 얼마나 독립적인지에 따라 다릅니다. 가장 좋은 상황은 자체 디렉토리에있는 라이브러리와 같은 핵심 코드를 사용할 수 있기 때 문이며 다른 사이트에서도 단일 파일의 코어를 변경할 필요가 없습니다. 그런 다음 단일 저장소에서 여러 사이트와 함께 코어를 개발하거나 사이트에서 코어를 분리하려는 경우 자유롭게 선택할 수 있습니다. 핵심 사이트와 서로 다른 사이트가 서로 의존 할 때, 당신은 아마 모든 사이트를 sigle repo로 처리해야 할 것입니다.

서로 다른 부분이 서로 독립적 일 때 개발 경험이 향상 되었기 때문에 핵심 항목을 디렉토리 포함으로 사이트에 포함시킬 수있는 항목으로 가져 오는 것이 좋습니다.

다음은 다른 사이트가 어떻게 개발되는지입니다. 공유 코드가 많으면 다른 분기로 개발할 수 있습니다. 이 일반적으로 하나의 개발자는 어디에서 변화를 만드는 큰 관심을하는

  • 체크 아웃 이후 다른 사이트는 개발자에게 정상적으로 표시되지 않는

    • 그래서 :하지만이 계획의 두 가지 단점이있다 하나의 브랜치에만 적용되는 것이 아닌 다른 브랜치에만 변경이 필요한 경우에만

    공통된 코드를 많이 공유하면 다른 사이트의 공통 부분을 코어로 이동하는 것이 좋습니다.

    다른 상황은 모두 공통점이 없기 때문에 상황이 훨씬 나아졌습니다. 그런 다음 서로 다른 저장소에 저장할지 아니면 단일 저장소에 다른 디렉토리로 저장할지 결정해야합니다. 이러한 서로 다른 사이트가 어떻게 든 서로 관련이있을 때 (서로 같은 회사 인 경우) 서로 다른 서브 디렉토리로 공통 저장소에 저장하는 것이 좋습니다. 서로 관련이없는 경우 (모든 사이트가 다른 고객에게 속하고 이러한 사이트의 변경 사항이 서로 동기화되지 않음) 사이트 당 하나의 저장소가 더 나은 경우가 있습니다.

    사이트 당 하나의 repo 방식을 사용하는 경우 핵심 구성 요소와 기본 구성을 포함하는 템플릿 사이트를 처음 만들고이 템플릿에서 복제본으로 사이트 리포지토리를 추출하는 것이 좋습니다. 그런 다음 사이트에 영향을 미치는 핵심 요소를 변경하면 템플릿에서 이러한 변경 작업을 수행 한 후이 변경 사항을 사이트 repos에 병합합니다 (site-repos 중 하나에서이 변경을 수행하지 않도록주의해야합니다 , 사이트에서 템플릿으로 병합 할 때 특정 사이트의 템플릿을 템플릿에 가져올 수 있기 때문에 템플릿에 포함되지 않을 수 있습니다.

    그래서 내가있을 때

    • 이 지사와 함께 사이트의 모든 하나 개의 repo에서

      • 에 대한 올바른 개발 모델을 선택 하나의 독립적 인 제품으로 코어를 개발 제안 다른 사이트간에 코드 교환이 많이 발생합니다.

      • 더 나은 리팩터링 나뭇 가지 접근 방식은 단점

      • 이 있기 때문에 토르 사이트는 코드를 공유하지 않으려면 모든 일의 repo에서, 어떤 지점 없지만 다른 폴더, 경우 각 사이트에 대해 다른 사이트간에 코드 교환

      • 하나의 repo가없는 경우 그들은 완전히 독립적입니다. 내가 생각
  • 0

    , 당신은 하나 개의 repo에 Mercurial Queues을 시도해야합니다. 저장소에 즉

    당신이 저장
    • "기본"사이트는
    • 모든 사이트 별 변화는
    • 당신이 "을 만들 밀어 전용 수 있습니다 MQ-패치 (하나? 사이트 당 패치)의 집합으로 분리 "사이트에서 리포지토리를"작업 "레포의 [경로] 섹션에 추가하고 변경 사항을 푸시하거나 내보내기 복사 기술을 사용하십시오.

    그리고 코드베이스에 사이트 패치를 적용하면 코드를 사용할 준비가됩니다. 각각 사이트

    관련 문제