2011-07-26 10 views
2

私は3つのサブフォルダを持つリポジトリを持っています。
A、Bおよびコアフォルダ。水銀中のサブレポジトリを「共有コード」に使用

コアフォルダのファイルはすべてAとBに必要です。したがって、コアフォルダのすべてのファイルはAとBの別のフォルダの内側にある必要があり、ファイルの更新はすべてコアにコミットする必要があります。
だからsubrepositoryにコアフォルダを作成し、例えば、フォルダB中のSO AおよびB

にこれを追加しようとした次の行は、メインリポジトリに.hgsub www = ../core
であるのです。 hgsub core = core

私は私が間違って行うものがあると仮定し、多分あなたは、私が:)

(更新)
を明確にするために欲しいものを達成するためにどのようにヒントがあります:
リポジトリは異なる含まれていアプリの "プロジェクト"。
AはAndroid、BはiOSです。 「コア」にはHTML + JSファイルが含まれています。後でAndroidおよびiOSプロジェクトで使用され、phonegapでアプリケーションを構築します。

+0

サブリポジトリは完全で独立したリポジトリでなければならず、同じリポジトリ内の別のフォルダに戻るリンクではありません。 AとBはどう関係していますか? –

+0

AとBは2つの異なるプロジェクトですか? –

答えて

8

私は右のあなたを理解していれば、あなたは、この持っている:これであなたを助けるMercurialの中には何もありません

 
repo 
    | 
    +-- core   <--+ 
    +-- A    | 
     +-- core  ---+ \A\core and \B\core should be equal to \core 
    +-- B    | 
     +-- core  ---+ 

を。

できやるがこれです:

 
core-repo 
    +-- (content) 

repo 
    +-- A 
     +-- core  --- sub-repo pointing to core-repo 
    +-- B 
     +-- core  --- sub-repo pointing to core-repo 

これは、あなたがA、プッシュ内部サブレポへの変更をコミットした後、B内のサブレポに引っ張ると、更新することができます、それらを同期させておく。

+0

ありがとうございました。 私のビルドスクリプトでは、コアフォルダの内容をAとBの対応するサブフォルダにコピーします。現在、開発環境を動作させることが課題です。 – hering

+2

Jenkinsにはあまり慣れていません。いずれの場合でも、サブレポはそのリポジトリの特定のリビジョンにリンクされています。言い換えれば、A \ core、commitで何かを変更してからB \ coreにプッシュしても、新しいチェンジセットリンクを記録するためにrepoをコミットしてコミットする必要があります。 –

関連する問題