2010-04-27 3 views
3

나는 공공 웹 사이트와 관리 사이트라는 두 개의 별도 프로젝트로 나뉘어 진 레일 웹 사이트를 운영하고 있습니다.두 레일 프로젝트간에 모델 공유 - git submodules 사용?

두 사이트가 동일한 데이터베이스를 사용하기 때문에 모델은 응용 프로그램간에 공유됩니다 (실제로는 복제됩니다). 여기에있는 문제는 모델에 대한 업데이트가 공개 프로젝트에서 발생하면 변경 사항을 관리 프로젝트에 복사해야한다는 것입니다.

나는 주변을 둘러 보았고 question에 svn : external 또는 git submodule을 사용하여 제안하는 답변이 있음을 발견했지만이 작업을 수행하는 방법에 대해 완전히 확신하지 못했습니다.

기본적으로 내 목표는 변경을 한 곳에서만 수행 할 수 있으며 변경 사항을 git으로 커밋 한 다음이를 업데이트해야 할 때 다른 프로젝트의 변경 사항을 가져올 수있게하는 것입니다.

+0

프로젝트에 자체 데이터베이스가 있거나 공유합니까? – csexton

+0

@csexton 프로젝트는 하나의 데이터베이스를 공유합니다. 하나의 프로젝트는 '공개'사이트이고, 다른 프로젝트는 공개 사이트의 '관리'사이트입니다. 따라서 공유 모델입니다. –

답변

1

당신이 필요 :

  • 의 주요 프로젝트를 커밋 한 곳에서 서브 모듈을 저지
  • (다른 주요 프로젝트에 같은 서브 모듈로 관리 사이트로 이동 (공공 사이트가 말했다)
  • 주 (관리 한 디렉토리까지가는 그 서브 모듈의 HEAD)을 변경 최신 컨텐츠 (당기)
  • ) 프로젝트

도 참조 true nature of submodules에게 (지금 서브 모듈의 다른 버전을 참조하는 것을 기록하는) 커밋.

1

하위 모듈을 사용하지 마십시오. 그들은 추악하고 이해하기 어렵고 유지하기가 어렵습니다. 하위 트리를 사용하는 것이 훨씬 더 좋습니다.

힘내 하위 트리 1.7.11 이후 GIT의 일부이며 나는 레일 응용 프로그램간에 코드를 공유에 대한 기사를 썼다 : 한마디로 http://igor-alexandrov.github.com/blog/2013/03/28/using-git-subtree-to-share-code-between-rails-applications/

을 : 네 자식-하위 트리의 작품과 좋은 작품!

관련 문제