2014-01-24 3 views
1

svn : externals와 같은 동작을 모방하고 싶습니다. 마스터 프로젝트가 있고 다른 저장소에 "공통"코드가 있습니다.Git-submodule-sparse-checkout을 사용할 때 여분의 하위 디렉토리를 가질 수 없습니까?

svn co <url>/src common 

을 내 폴더 구조는 다음과 같습니다 : SVN으로 내가 할 것

이 자식 + 서브 모듈 +이 스파 스 체크 아웃에 지금
repo/common/*.cpp 

는 훨씬 더 복잡하고 나는 여분의 하위 계층이있을 때 I 하위 모듈을 추가하십시오.

git submodule add <url> common 

지금 내 폴더 구조는 다음과 같습니다

스파 스 체크 아웃과
repo/common/src/*.cpp 
repo/common/lib/... 

SVN을 비교 내가 src 폴더를 체크 아웃 할 경우에만 확인 할 수 있습니다,하지만 난 여전히 또 하나 개의 레이어 (SRC)가보다 : 외관 솔루션 :

일반적인 코드에 대한 더 나은 해결책이 있습니까? 아니면 이것을 청소하는 방법? 나는 모든 것이 잘될 것이라는 것을 안다; 단지 깨끗하지는 않습니다 ...

답변

1

하위 모듈에서 여분의 폴더를 피할 수는 없지만 원하는 콘텐츠를 찾기 위해 (Windows에서도) 심볼릭 링크를 추가 할 수 있습니다.

는 REPO의 이름으로 서브 모듈을 추가

git submodule add -b master /url/of/repo 

이 심볼릭 링크를 추가

ln -s repo/src common 

원하는 경우는 master 분기를 따라 당신의 repo를 '-b master'을 추가하는 것을 잊지 마세요 .
git 1.8.2 이후 가능합니다 : "git submodule tracking latest"을 참조하십시오.

+0

'-b 마스터'옵션에 대한 힌트를 주셔서 감사합니다! 나는 그 이상을 체크 할 것입니다 ... –

+0

@ChrisMaes 네, 당신이 당신의 서브 모듈과 연관시키는 * 로컬 * 설정입니다. 그러면'git submodule update --remote'는 서브 모듈 업스트림 브랜치를 가져 와서 서브 모듈 *의 내용을 갱신합니다. – VonC

관련 문제