2013-08-08 2 views
4

대부분은 git 저장소에있는 프로젝트의 생태계 (linux, qemu, uboot 등)가 필요한 프로젝트를 만들고 있습니다. 나는 스크립트를 사용하여 그것들을 모두 관리했지만, make로 더 잘 수행되는 것들을 구현한다는 것을 알았다. 그래서 나는 스크립트를 makefile로 이주하기로 결정했다.프로젝트를 가져오고 빌드하기위한 Makefile

현재 프로젝트에없는 경우 복제하고 프로젝트를 꺼내야하는 경우 문제가 있습니다. 너무 많이 반복하지 않고 그렇게 할 수있는 방법이 있습니까?

+0

당신이 망할 놈의 repos 작업을 관리 할 수 ​​메이크에 사용하는 기본 명령은 무엇입니까? 몇 줄을 예시로 보여줄 수 있습니까? –

+0

'$ DIR'이 존재하지 않으면'git clone $ GIT_URL $ DIR'을 실행하고'cd $ DIR; 힘내라. 분명히 각 프로젝트는'$ GIT_URL'과'$ DIR'의 서로 다른 쌍을 가지고 있습니다 ... 내가 당신의 질문에 대답한다면 나는 모른다. – fakedrake

+0

어떤 OS와 어떤 버전의 Make? – Beta

답변

3

이런 식으로 생각합니다. 프로젝트 디렉토리 내부의 무언가에 의존하지 않으면 조건부로 복제본을 실행할 수 있는지 확신 할 수 없기 때문에 작업을 수행하지 않아도됩니다.

force: ; 

proj%: force 
    @echo [ -d [email protected] ] || git clone srv:[email protected] 
    @cd [email protected] && git pull 

당신은 당신이 프로젝트 디렉토리 복제 가진 사람에 주문 전용 습득 조건으로 복제를 분할 할 수 귀하의 진입 점 습득 조건으로 proj1/.git/config 같은 목록 싶어합니다. 비록 pull이 일어나기를 원한다면 config prereq에 여전히 힘이 필요합니다. 아마도 이런

뭔가 :

proj%: 
    git clone srv:[email protected] 

proj%/.git/config: force | proj% 
    git pull 
관련 문제