2012-02-24 2 views
2

문제는힘내에서 조직 외부 libs와

나는 나의 회사가 소스 제어에 포함 된 모든 외부 libs와 저장하려면,하지만 난 하나의 repo에있는 것으로 이러한 외부 libs와 싶습니다 각각의 개별 프로젝트에서) lib 디렉토리가 꽤 많아서 크기가 큽니다.

선행 기술

This question addresses the problem but no one answered to it directly. (How do I organize my Git repo [better title appreciated])

This pretty well describes a similar situation, but no dice. (Git, sub-repos & external libs for web development - best strategy once and for all?)

This definitely answers the question, but uses submodules. (Best Practice for Git Repositories with multiple projects in traditional n-tier design)

Git Slave sounds great, but I'd prefer to not add another git tool to our repertoire as git is new to us.

이것은 내가 지금까지 생각하고 것입니다.

my coding dir/  
    app1/ 
     .git/ 
     src/ 
     com/ 
     ... 
    app2/ 
     .git/ 
     src/ 
     com/ 
     ...  
    ext libs/ 
     .git/ 
     server crap/ 
      apache tomcat 7.0.123/ 
       ... 
      apache cxf versionnumber/ 
       ... 
     util crap/ 
      someones really great util lib-1.0/ 
       ... 

그리고는 lib 디렉토리 디렉토리를 가리키는 것 설정 또는 유사한에서 $ PATH 변수가 될 것이다.

더 생각

  • 우리는 인프라 엔지니어가 있고, 내가 싶지 않기 때문에 때마다 누군가가 추가 또는 lib 디렉토리를 업데이트해야 호출하지 말고, 내가 좋아하는 것 을 git submodule에서 멀리 부끄러워하기 때문에 삐걱 거리는 것처럼 보입니다. 나는 그걸 앞으로 옮기게되어 기쁘지만, 우리는 단지 일뿐입니다. 누군가가 무엇의 명확한 설명 그래서 나는 내 동료에게이 정보를 전달할 수 있습니다 그것을 사용하는 방법 명확 튜토리얼 날 지점 수 있다면
  • 는 또한 지금 서브 모듈을 사용하는 것이 행복 해요. 우리 모두가 고급 주제에 대해 2 시간 동안의 문서를 읽는 것을 원하지 않습니다. 우리는 입니다. 지금은입니다.
  • lib repo의 버전을 응용 프로그램 repos의 버전과 링크하는 것이 좋을 것입니다.

다시 말하지만, 나는 나의 반 서브 모듈 감정에서 이야기 할 수 있지만, 내가 찾을 수있는 튜토리얼이 오래된 및/또는 혼란 있다는 사실은 큰 아쉬운입니다. 모든 엔지니어는 쉬운 프로세스이어야하며 쉽게 실행 취소 할 수 있습니다. 우리는 망할 닌자가 아닙니다!

마지막으로, 중요한지는 모르겠지만 우리는 모두 유닉스에 있으며 모든 자바는 항상 그렇습니다.

미리 감사드립니다.

업데이트 2012년 3월 1일

나는 아기 리누스 토발즈 (Linus Torvalds)의 외침을하려고 해요.

나는 상당한 양의 연구를 해왔고, 내 결론은 서브 모듈이 위대한 사람이라는 것입니다. 이미 닉네자 인이면 입니다.그래서, 나는 잘못된 일을하고 각 자식 프로젝트에서 libs 디렉토리를 만들 것이라고 말했습니다. 왜? 그것은 더 쉽고, 우리가 현재하고있는 것에 비해 방대한 개선입니다. 또한 git 지식의 훨씬 낮은 임계 값을 가정합니다. 우리가 git의 기본 개념과 중간 개념을 완전히 고수하고있는 (패치 - 역사 다시 쓰기, 고급 분기?) 때 언젠가는 서브 모듈로 이동할 것입니다. 그대로 서서 나는 씹을 힘을 너무 많이 줘서 실패에 대비해 엔지니어를 배치하고 싶지 않습니다.

우리가 "올바른 방법"으로 이동 준비가 희망 지금 때 사이에, 서브 모듈은 적은 gnar 될 것입니다.

답변

1

서브 모듈이 설계되었습니다. 그들을 배우십시오. ProGit.org/book은 훌륭한 자료입니다. 6 장 6 절 (나는 그것을 기억하기로 약속했다)을 보라.

난 당신이 다른 질문이있는 경우/트위터를 통해 이메일을 기꺼이 도와 것입니다. 내가 여기서 사용하는 것과 같은 이드.

+0

우리는 이눔 슈퍼 새로운 것, 그리고 서브 모듈에 progit 튜토리얼 5 페이지라는 사실은 회전 꺼져 있습니다. 더 많은 __concise, clear, 최신 tutorial__이 있다면, 서브 모듈을 사용하게되어 기쁩니다. [그리고 나는이 뷰가 근시안이라는 것을 알고 있습니다.]하지만 오버 헤드가 그만한 가치가없는 것처럼 보입니다. 제 잘못을 증명해주세요. 잠시 후에 너 한테 핑 소리를 낼거야. – Soyoung

+0

그것은 매우 강력합니다. 설명서를 읽지 않고 무언가를 사용할 것으로 기대하십니까? 튜토리얼을 읽고 조금 연습하는 데 오랜 시간이 걸리지 않습니다. 여기서 시간을 절약하기로 선택하면 장래에 그리고 장기적으로 많은 시간을 낭비하게됩니다. 1 센트를 절약하고 1 달러를 잃어 버리십시오. 나는 gtalk에 관한 모든 귀이다. 또한 #git irc 채널에는 수백 명이 있습니다. 모든 사람들은 밤낮으로 어떤 일을 하든지 당신의 손을 잡고 싶어합니다. http://dymitruk.com/blog/2012/02/05/branch-per-feature/ –

+0

를 예, 우리는 기능에 따라 지점을 우리가 가지고있는 것처럼 잘하면 당신이 뭔가에 과정을 진화 할 것이다. 나는 매뉴얼을 읽는 것에 대해 걱정하지 않는다. 나는 그렇게 행복하게 할 것이다. 엔지니어의 팀원에게 그렇게하도록 설득하는 것에 대해 걱정하고/또는 git의 기능을 잘 모르기 때문에 튜토리얼/워크샵을 직접 제공 할까봐 걱정합니다. 그것은 나를 두려워하게한다. 서브 모듈에 대한 길고 철저한 소개를 보충하기 위해 서브 모듈에 빠르고 더러운 소개가 없다는 것에 관한 것입니다. 나는 그것이 나 자신을 써야 할 것 인 것을 의미한다라고 생각한다) – Soyoung