2012-09-18 2 views
1

우리는 우리가 가지고있다. template_site이 설정을위한 적절한 작업 흐름은 무엇입니까?

이것은 기본적으로 우리가 구축하는 모든 프론트 엔드 기반이다.

우리가 우리의이 사이트에 대한 백엔드이고 template_site/cms에 존재하지만 우리는 종종뿐만 아니라 template_site없이 사용할로 자신의 저장소에 cms

우리는 파일이 우리의 모듈이

template_site/(all over the place)cms/modules/(name of module)

에서 해당 상주는 기본적으로 우리가 원하는 것은
공을 가지고하는 것입니다자체 저장소에있는 cms
입니다. template_site은 자체 repo입니다. 그리고 나서 우리가 만드는 모든 모듈에 대해 다른 저장소의 브랜치를 가지고 있습니다. cms_modules하지만 우리는 모듈에 특정 파일에 대한 파일과 변경 사항을 저장소에 포함시켜 모듈을 기존 프로젝트로 가져 와서 해당 파일에만 영향을 줄 수 있기를 바랍니다.

문제는 기본적으로 모든 부분이 연결되어 있다는 것입니다,하지만 우리는 할 수 할 template_site에 대한 변경의 모듈 풀 작업 및이에 대한 cms

이유에 어떤 변화를 가져 반면에 설정은 각 사이트에 대해 template_site을 자체 저장소에 복제하고 필요에 따라 사용자 정의 할 수 있다는 것입니다.

어떻게 할 수 있습니까?

아니면 이런 종류의 설치를위한 더 나은 워크 플로가 있습니까?

이 될 것이라고 내가 적절한 설정으로 볼 수있는 일 :

는에는 모듈이없는 "슈퍼 프로젝트"
마스터 지점을 가지고와 cms_modules REPO 되세요.

가 서브 모듈

우리가 그것의 자신의 저장소에 cms_modules의 repo를 복제하고를 작업 만 template_site 서브 모듈 init을 우리가 필요하면 할 수 있습니다 그 방법을 template_site 추가 서브 모듈로 cms를 추가합니다. 하지만 여기에서 볼 수있는 유일한 문제는 새 사이트의 경우 복사 (새 사이트의 경우) 또는 분기 (새 모듈의 경우)가 루트에있는 새 파일을 추적하고 하위 모듈 내에 변경 사항이나 새 파일을 추적하도록하는 것입니다 각각의 리포지토리에서 추적 할 수 있습니다. 그런 다음 template_site 또는 cms 저장소에 대한 업데이트가있을 경우

우리가 할 수있는 단지 각각의 디렉토리로 cd 및 업데이트를 발행, 그러나 다시 우리가 cms_modules의 repo로 추적 할 수 변경된 모든 파일에 대한 병합을 원하는 것이 없습니다 각각의 서브 모듈.

다른 모듈을 추가하려면 해당 모듈의 분기를 병합하면됩니다.

어떻게 설정할 수 있습니까?

+0

위의 'site_template','website_template' 및'template_site'를 사용하십시오. 똑같은 것을 말하고 있습니까, 아니면이 세 개의 개별 디렉토리입니까? –

+0

죄송합니다 ... 질문하는 3am 질문이 수정되었습니다. – Hailwood

답변

0

Repo 구조 :git submodules은 사용자가 제어 할 수없는 외부 저장소를 사용하는 상황에 가장 적합하게 설계된 것 같습니다. 현재 리포지토리에 다른 리포지토리를 이식하는 것이 아이디어이지만, 외부 저장소 에있는 분기의 상태에는 하위 모듈의 '현재 버전'인 커밋 해시이 포함될 것입니다. 다시 말해, 바깥 쪽 트리는 바깥 쪽 트리에 대한 추가 커밋없이 내부 트리의 진행을 표시하지 않습니다. 이것은 외부 사례에 대해 많은 의미를 갖습니다. 사용하는 라이브러리의 개발로 인해 빌드가 손상되는 것을 원하지 않지만, 귀하의 경우에는 많은 부기처럼 보입니다.

서브 모듈을보다 직관적으로 사용하려면 사이트 당 완전히 새로운 저장소를 만들고 나서 cms을 적절한 서브 모듈로 사용하는 것이 좋습니다. 그런 식으로 각 사이트는 CMS 폴더의 다른 스냅 샷과 상호 작용할 수 있으며 준비가되면 새 버전 만 밀어 낼 수 있습니다.

저장소 수 : 데이터가 실제로 제어 할 수 있으므로 하나의 저장소가 가장 적합합니다. 예를 들어, 디렉토리 중 하나가 충분히 크거나 (메가 바이트 단위) 또는 동료 중 일부만 다른 하나에 액세스해야한다면 별도의 저장소에 대해 좋은 논거를 할 수 있습니다. 그렇지 않으면 유지하는 데 약간의 이점이 있습니다 저장소 부분이 분리됩니다. 모듈 당

지점 : 나는 각 지점에서 완전히 다른 내용을 넣어에 대한 을 권장 스택 오버플로 대답 here에 동의하는 경향이있다. 이 상태에서 병합 커밋을 자동 또는 자주 작성하지 않으면 여러 모듈 (또는 모든 모듈)을 포함하는 단일 분기가 없습니다. 그 방법으로 작동하지 못하게하는 git에는 없지만 비정형 적입니다.

내가 선호하는 지점 구조 : 모든 모듈과 모든 사이트를 포함하는 master 분기를 만듭니다. 개발을 쉽게하기 위해 모듈이나 사이트마다 분기를 만들 수 있지만 일단 코드가 좋으면 분기를 마스터에 병합하십시오. 잠시 동안 모듈을 건드리지 않았습니까? 분기를 삭제하십시오. 나중에 언제든지 다시 작성할 수 있습니다.

희망 하시겠습니까?