2012-06-13 2 views
4

시간이 지남에 따라 저는 여러 프로젝트에서 재사용 할 수있는 다양한 유틸리티 함수, 클래스 및 컨트롤을 개발했습니다. 각 프로젝트마다 Mercurial 저장소가 있고 재사용 가능한 프로젝트를 복사합니다. 분명히 재사용 가능한 구성 요소 중 하나에서 버그를 수정하면 모든 저장소에서 수동으로 코드를 복사해야하므로이 과정에서 실수를 할 수 있기 때문에 이것은 나쁘다.Mercurial을 사용하여 여러 저장소에서 코드를 공유하는 방법은 무엇입니까?

어떻게 이러한 상황을 처리합니까? Mercurial을 사용하여 여러 저장소에서 코드를 공유하는 방법으로 한 저장소에서 업데이트를 수행하면 다른 사람들과 쉽게 통합 할 수 있습니다.

+0

필자는 모든 유틸리티 기능을 하나의 패키지에 넣었으며 특정 프로젝트에 대해 새로운 기능을 작성한 경우이를 "안정적인"것으로 판단 할 때 유틸리티 패키지로 마이그레이션 할 것입니다. – nye17

답변

3

체크 아웃 subrepositories : https://www.mercurial-scm.org/wiki/Subrepository

그들은 당신이 (당신이 수동으로 할 필요가 있습니다) 최신 상태로 다른 사본을 보관 도움이되지 않습니다,하지만 그들은 그 (당신이 hg pull; hg update을 쉽게 사용할 줄 것 subrepo, 부모 repo 커밋).

다른 프로젝트에서 사용하는 또 다른 옵션은 레이아웃을 위임하는 것입니다. "유틸리티"리포지토리가 각 "실제"리포지토리에 대해 ../utils에 저장되어 있다고 가정합니다.

+3

+1하지만 잊지 말아라. _ 이것은 최후의 수단으로 생각됩니다. _ :) – Lipis

+1

@Lipis : 완전히 주제에서 벗어나지 만 기능에 대한 알림을 정말 싫어합니다. Subrepos와 Largefiles는 특히 "최후의 수단"의 기능이 아닙니다. 특정 유형의 문제에 필요합니다. 그렇습니다. 필요한 경우에만 항상 사용해서는 안되지만 최후의 수단이 아닙니다 *. –

+0

@PaulS는 전적으로 당신에게 동의합니다 .. 나는 공식 문서에서 그것을 볼 것으로 예상하지 못했습니다 .. 그리고 그것은 재미 있다고 생각했습니다.;) 그들은 이해하지만, 일단 당신이하고있는 것을 알고 있으면 Subrepos는 매우 멋집니다 ... – Lipis

관련 문제