2013-08-02 1 views
1

나는 내 자신의 별도 라이브러리 프로젝트를 사용하는 개발중인 안드로이드 애플리케이션을 가지고있다. 이 두 프로젝트는 별도의 Git 저장소에 저장됩니다. 응용 프로그램 프로젝트는 .gitmodules 파일을 사용하여 라이브러리 프로젝트를 참조합니다.다른 프로젝트의 서브 모듈이기도 한 Git 라이브러리 프로젝트 개발

저는 이제이 두 프로젝트 (응용 프로그램과 라이브러리)를 새 컴퓨터에서 함께 사용하려고합니다. 나는 응용 프로그램 프로젝트를 복제하여 라이브러리 프로젝트가 ~/git/디렉토리에도 자동으로 복제되게했습니다. 여태까지는 그런대로 잘됐다.

내가 이클립스 패키지 탐색기에서 또한 주목, 라이브러리 프로젝트 루트는 괄호 안에 커밋 해시 (예를 들어, [MyLibraryName 0123ABC])가 있습니다. 이는 아마도 라이브러리 복제본이 특정 커밋 시점에 있다는 것을 의미하며,이를 git submodule foreach git pull을 사용하여 업데이트 할 수 있다는 것을 의미합니다 (즉,이 라이브러리의 최신 커밋을 가져올 수 있음).

질문 이제 도서관 프로젝트를 별도로 개발하는 가장 좋은 방법은 무엇입니까? 나는 파일을 수정하려고 시도했지만 Team-> commit을 사용하면 대화 상자에 수정 된 파일이 나열되지 않았다. 이것은 이것이 특정 커밋을 가리키는 하위 모듈과 관련이 있다고 가정합니다. 나에게 해당 라이브러리에 대한 작업을 수행하는

나는 위해 이클립스로 별도의 프로젝트로 다른 하위 디렉토리에 완전히 별도로, 다시는 내 라이브러리 프로젝트를 복제, 수입 하는가?

+0

커맨드 라인에 익숙하다면, 먼저 서브 모듈로 이동하여 변경 사항을 적용 할 수 있습니다. Eclipse의 패키지 탐색기에 대해서는 단서가 없습니다. – cjc343

+0

두 개의 독립적 인 프로젝트가 있으므로 커밋을 수행하려면 적절한 프로젝트에서 작업해야합니다. 또한 분리 된 머리가 아닌 지점 (하위 프로젝트에 있음)에 있는지 확인해야 변경 사항을 골든 레포로 보낼 수 있습니다. –

답변

0

기타 여러 가지 다른 질문을 읽으면서 이에 대한 우아한 해결책이 없다는 것이 분명해 보입니다. 나는 결국이 문제를 해결하는 데 걸린 단계는 다음과 같습니다

  • 은 아직 서브 모듈을 사용한다 응용 프로그램 저장소를 복제 할 가정하면. 하위 모듈 저장소 (또는 저장소)를 포함하여 모든 프로젝트를 Eclipse 작업 공간으로 가져옵니다. 서브 모듈 저장소는 주 응용 프로그램 저장소 내의 저장소이며 특정 분기에 있지 않습니다. 이것은 특정 커밋 (분리 된 헤드)에 대한 참조입니다.

  • 패키지 탐색기에서 가져온 서브 모듈 프로젝트의 이름을 바꿉니다. 내부에있는 애플리케이션 저장소와 관련된 이름을 지정했습니다. 예를 들어 ABCD라는 응용 프로그램 프로젝트의 경우 SomeLibrary에서 SomeLibrary_ABCD로 이름을 바꿉니다.

  • 다음으로 자체 Git 저장소와 별도로 라이브러리를 복제하십시오. 이제 하위 모듈 프로젝트의 이름을 변경하는 시점에서 Eclipse 리포지토리의 독립 실행 형 복제본에서 Eclipse 프로젝트를 가져올 수 있습니다. Eclipse에 "일부 또는 모든 프로젝트는 이미 작업 영역에 있기 때문에 가져올 수 없습니다."라는 오류가 없습니다. .

우리가 저지 특정에 지점하지만 포인트에없는 프로젝트를 SomeLibrary_ABCD 한이 일을, 프로젝트 ABCD의 서브 모듈이다 가졌어요. 해당 하위 모듈은 git submodule foreach git pull을 사용하여 업데이트됩니다. 그런 다음 지점 (예 : 마스터)에있는 SomeLibrary 프로젝트가 있습니다. 나는 도서관에 개발을하고자 할 때 로컬 내 도서관의 '독립'프로젝트 대신에 서브 모듈 버전을 가리 키도록 응용 프로그램 프로젝트를 전환에

내 계획 워크 플로우입니다. 그런 다음 SomeLibrary에 변경 사항을 적용합니다.

이보다 더 좋은 제안 (또는 언급 한 내용에 대한 수정)은 인정 될 것입니다. 그러나 지금은이 문제에 대한 내 대답입니다.

관련 문제