2012-04-02 12 views
1

私は次のような構造を持っているのMercurialリポジトリで働いています:次のように.hgsubファイルがSubRepoを宣言Mercurialサブポをどのように置き換えるのですか?

-- Root 
    -- .hgsub 
    -- SubDir 
     -- SubSubDir 
     -- SubRepo 

SubDir/SubRepo = ssh://server//subcomponent 

私はsubrepoを排除し、それを置き換える得るために必要レポの実際のフォルダはSubRepoと呼ばれていたので、hg documentationが言ったように、.hgsubファイルを削除してコミットしました。それで私はSubRepoに自分のものを入れて、私を残してくれた:

ダンディ。しかし、.hgsubファイルがあるリポジトリから変更を取り込もうとすると、問題が発生します。

サブリポジトリを置き換えるより良い方法はありますか?または、この作業をより良くするためにすべき賢明なことがあります。オプションを使用して.hgsubをプルまたは一時的に変更して、それを完全に削除するのではなく新しいフォルダを指すようにしますか?

+0

些細な相対パスについては「2.1。開始」、相対パスでは**サブペトを使用**注意深くお読みください。 –

答えて

2

あなたはそれを正しく行いました。まだ.hgsubのリポジトリから引き出したら、あなたの頭(それは.hgsubを持たない)をマージする必要があります。そのマージ/コミットの一部としてファイルを削除すると、あなたは終了しますヘッドが1つだけで.hgsubがなく、すべてが世界で正しいでしょう。あなたがまだ.hgsubを持っている彼らの遠隔の頭に '更新'をしない限り、あなたは大丈夫でしょう。

+0

Aha!この答えは、私にそれをもっと強くする自信を与えました。私が経験していた問題はフェッチを使用することの副作用であることが判明しました(おそらくそれを亀の中で使用しています)。私が簡単に引っ張ってマージすれば、私は同じ問題を抱えていません。ありがとう! =) –

+0

問題ありません。個人的に、私は完全にフェッチするのをやめます。プル、更新、およびマージは、DVCS内の完全に論理的に異なるアクションであり、3つを融合させることで、マージの痛み、誤解、および厄介なコミットメッセージが発生します。 :) –

関連する問題