2010-05-13 2 views
3

일반적으로 새 응용 프로그램을 시작할 때 새 응용 프로그램 저장소를 만듭니다. 잘 받아 들여지고 Github에서 코드를 공유하고 싶을 때 멋지게 연출합니다.Git + SoA, 하나의 repo 또는 다수?

직장에서 저는 서비스 지향 아키텍처에서 일하고 있습니다. 한 가지 공통적 인 패턴은 동시에 두 개의 서로 다른 응용 프로그램에 코드를 추가하는 것입니다. 하나의 인터페이스에 RESTful 인터페이스가있는 모델을 추가하고 다른 인터페이스에서 RESTful 인터페이스를 관리하기위한 웹 프론트 엔드를 추가하는 것이 좋습니다. 별도의 git 저장소를 사용하면이 경우에 사마귀가 생깁니다. 여기

는 내가하고 별도의 저장소의 단점으로 표시되는 내용은 다음과 같습니다

  1. 내가 두 번
  2. 내가 관련 correllate 수 없습니다
  3. 다시 갈 한 곳을 범하지 커밋해야 나는 하나 개의 repo를 끌어 한 곳
  4. 잊기에 하루 내 모든 커밋을 가져올 수 있도록 싶어요 또는 다른는 잡았다
입니다 - 역사를 추적

반면에 저는 perforce를 많이 사용했고 하나의 거대한 저장소 모델에도 많은 사마귀가 있습니다. 퍼 포스는 그걸 도와 줄 수 있도록 고안된 기능을 가지고 있습니다.

이 상황에 처한 다른 사람이 있습니까? 어떻게 처리 했습니까? 잘 된 점과 그렇지 못한 점은 무엇입니까?

답변

1

다른 리포가 동일한 글로벌 애플리케이션의 일부인 경우 submodules within a main project으로 함께 가져올 수 있습니다. 거기에서
은 할 수 있습니다 :

  • 는 서브 모듈이 다른 프로젝트 P2에서 다시해야하는 경우, 당신은 하위 디렉토리의 참조에, 다른 프로젝트 P2 내에서 이동 (프로젝트 P1에 한 번만 서브 모듈을 커밋하면 서브 모듈을 말했다 단지 P1, P2는 동일

  • 관련된 모든 커밋의 주요 프로젝트에 의해 참조) P1 것을 저지 참조해야하기 때문에, 한 수준까지 되돌아 가서 다른 프로젝트 P2 커밋 커밋 체크 아웃에 최선을 다하고

  • "수퍼 메인"프로젝트는 당신은 주요 프로젝트를 당길 필요가

  • 이 "돌아가서 역사를 추적하기 위해 한 곳에서"이하기 위해, 거기 모든 당신의 서브 모듈을 참조하고, 그 오른쪽 서브 모듈 참조를 가져옵니다.

+0

이것은 트릭을 수행 할 수 있습니다. 전에 서브 모듈에 대해 들어 보지 못했습니다. RESTful 인터페이스를 통해 서로 통신하는 (대부분) 별도의 Rails 애플리케이션입니다. 클라이언트 라이브러리는 서로 다른 응용 프로그램에서 사용할 수있는 보석을 사용합니다. – edebill