2012-08-31 4 views
1

우리 회사에는 여러 개의 저장소가 각각있는 (종종 다른 팀의 코드를 편집하는) 몇 개의 의사 독립 팀이 있습니다. 대부분의 모듈은 상호 의존적이지만, "인프라"수준에 가장 근접한 모듈은 기본적으로 다른 모듈과 독립적입니다.많은 상호 의존적 인 서브 모듈을위한 워크 플로우

현재 우리는 모듈의 복제 및 업데이트 (이 경우 대부분 자동화 됨) 모듈의 텍스트 목록 유지 관리와 같은 작업을 처리 할 수있는 일련의 스크립트를 보유하고 있습니다. 분명히 이것은 내가 믿는/믿을만한 역할이다. git submodule이 채울 수있다. 내가 좋아하는 것이 무엇

는 최소한 수있는 기능입니다에 :

복제 git clone main_repository 유사 하나의 명령으로 전체 소스 트리.

git pull과 유사한 명령으로 전체 소스 트리를 업데이트하십시오. git submodule foreach git에 대한 별칭을 만들지 만 간단히 말해서 git submodule foreach git pull 인 것처럼 보입니다. 우리의 현재 설정은이 단계를 병렬로 (한 번에 네 개씩) 수행하며, 하위 모듈 설정이 동일하게 수행되기를 바랍니다. 또한 하위 모듈을 업데이트하면 변경 사항 (커밋)으로 표시됩니다. 나는이 논리 뒤에있는 논리를 이해할 수 있지만, 현재의 시스템은 .gitignore에 pseudo-submodules을 가지고있다. 보통 모듈의 변경 사항 만 신경 써야하기 때문이다.

전체 트리에서 작동하는 git grep의 아날로그를 원합니다. 처음에는 blush가 git submodule foreach git grep hello 인 것처럼 보였지만, 검색 문자열이 이 아니고이 발견되지 않으면 (우리는 몇 개의 작은 서브 모듈을 가지고 있기 때문에 보통 그렇습니다) grep은 1을 반환하고 전체 명령이 중지됩니다.

비슷하게 유용한 유사 콘텐츠를 diff 및 상태로 원합니다.

나는이 부분에 대한 몇 가지 해결 방법을 생각할 수 있지만 이미 원하는대로 대부분의 해킹 스크립트 집합을 가지고 있습니다. 나는 그것을 수행하기위한 쉬운 표준 방법이 있는지 궁금해하고 있습니다.

답변

1

나는이 부분에 대한 몇 가지 해결 방법을 생각할 수 있지만 이미 원하는대로 대부분의 해킹 스크립트를 사용하고 있습니다. 기본 표준을 쉽게 구현할 수 있을지 궁금하고 궁금합니다.

하위 모듈에는 없습니다. 설명 된 사용 사례가 아닙니다. 서브 모듈은 상호 의존성이 높고 업데이트 된 코드 인 경우 SO answersthe web.에 문서화 된 것처럼 잘 수행되지 않습니다. 두 번째 링크 ("왜 회사에서 git 서브 모듈을 사용하지 않아야하는지"라는 제목의) 두 번째 링크는 다음과 같은 몇 가지 대안을 나열합니다. 귀하의 설명을 기반으로 최선을 다하겠습니다 아마 repo, 구글에 의해 만들어진 멀티 자식 저장소 관리 도구입니다.

관련 문제