2011-01-06 3 views
6

1 개 주 RoR에 프로젝트와 2 개 개의 추가 프로젝트의 주요 프로젝트의 일부 공유가 - 모델, 플러그인 등을좋은 방법

현재 모든 프로젝트가 svn의 외관과 같은 SVN 저장소 받고있다 공유 부품 용.

레이아웃을 git로 옮기는 가장 좋은 방법은 무엇입니까?

답변

3

각 부품에 대한 저장소가 필요합니다. (각 프로젝트와 공유 된 부분을위한 하나 이상의 프로젝트).

이러한 공유 부분을 포함하려면 두 가지 가능성이 있습니다. 쉬운 일

첫째, 당신은 당신이 당신의 Gemfile에 [gemname]을 보석을 추가, 아무것도 연결하지 않아도 의미 공유 부분에 대한 (개인) 보석을 만들 수 있습니다. gem을 업데이트하면 모든 프로젝트가 변경된 코드를 사용합니다.

프로젝트에 외부 코드를 포함 시키려면 약간의 조직이 필요합니다. 공유 및 프로젝트 저장소를 모두 복제하는 루트 맵을 작성합니다. 그런 다음 공유 코드 폴더에 대한 (상대적) 심볼릭 링크를 만듭니다. git 저장소에이 심볼릭 링크를 추가하고 커밋 할 수 있습니다. 두 저장소를 모두 업데이트하고 커밋해야합니다.

번째 방법의 예 :

- projectfolder 
--- shared code 
--- project code 
----- lib 
------- shared (link to shared code) 

공유 코드에 대한 링크가 공유 명령 LN -s "../../../shared 코드"에 의해 생성된다

Ofcourse, 이것은 심볼릭 링크 (mac 및 * nix)를 지원하는 시스템에서만 작동합니다.

2

첫 번째 대답을 받아 들였지만 상당히 다른 접근 방식을 선택했습니다.

본질적으로 모든 응용 프로그램은 하나의 프로젝트 (프론트 엔드, 백엔드 및 API)의 다른 측면이므로 LOT를 공유하므로 모든 저장소를 하나의 저장소 및 공유 링크로 매핑하기로했습니다 (git에서 처리 할 수 ​​있음).

이렇게하면 저장소 구성이 단순 해지지 만 배포 스크립트가 약간 복잡해졌지만 이는 우리에게 유리한 결정이었습니다.