2014-04-28 3 views
1

우리는 일반적으로 CodeIgniter와 유사한 디렉토리 구조를 공유하는 프로젝트에서 작업합니다. 여기서는 응용 프로그램 코드를 둘러싼 프레임 워크가 부모 및 형제 디렉토리에 있습니다. 우리는 우리가 관리해야하는 두 가지 흐름이 있습니다git 하위 트리 또는 주변 디렉토리에 대한 서브 모듈

  1. 는 외부 프레임 워크에서 업스트림 변경을 끌어 개인 (비 GitHub의) 저장소에 우리 지역의 응용 프로그램 코드 (예 /application 디렉토리)을 유지를 풀 제출 요청 등

내가 .gitignore의 대시 또는 관련 부두의 일종으로, fake submodules을 사용하는 것입니다 내 연구에서 발견 한 가장 가까운 접근 방식, 그러나 매우 깨지기 보인다. 우리의 저장소와 디렉토리를 설정하는 더 좋은 방법이 있습니까?

답변

1

더 나은 방법은 선호도 순서대로 (가짜가 아닌) 하위 모듈 또는 하위 트리의 학습 곡선에 시간을 투자하는 것입니다. 당신은 당신의 평가에서 옳습니다. "가짜 서브 모듈"은 지나치게 단순화하려는 허약한 시도이며, 사소한 경우에는 충분하지만 많은 프로젝트와 분기, 역사에 대해 다른 아이디어를 가진 여러 공동 작업자에게는 적합하지 않습니다 서브 프로젝트의 관리를 해제합니다.

모든 것을 하나의 거대한 프로젝트로 다루고 싶다면 git 서브 트리 병합을 들여다 볼 수는 있지만, 하위 모듈은 다른 릴리스 일정으로 3 부 종속성을 관리하는 데 특히 적합하므로 이에 대해 조언 할 것입니다.

parent-framework 
|-- application 
|-- framework 
`-- other-framework 

및 프레임 워크 (예., framework, other-framework 가능성이 parent-framework는) GitHub의에서 관리 별도의 프로젝트입니다 나는 당신의 설정이 간단, 다음과 같습니다 이해 질문에서

.

그래서 여기에 내가 어떻게 할 것인지의,

  1. 함께 여기서 모든 것을 묶어
  2. 포크를 독립형 개인의 repo에이나 parent-framework 수준 위의 superproject 만들기
  3. 프레임 워크를 application 저장소를 관리 개인 프레임 application을 포함한 모든 프레임 워크가 하위 모듈입니다.

이렇게하면 타사 종속성 프레임 워크의 직교 SDLC와 관련하여 application 개발 라인 SDLC를 관리하는 데 필요한 유연성을 제공합니다.

최신 버전의 git을 사용하면 하위 모듈을 재귀 적으로 푸시 (업데이트)하기가 쉽기 때문에 프레임 워크에 대한 끌어 오기 요청을 작성하는 데는 거의 고려해야 할 사항이 없습니다.

+0

나는이 라인을 따라 뭔가 예상했다. 수퍼 프로젝트를 만들었던 것을 지적 해 주셔서 감사합니다. –