4

次のように2つのサブリポジトリが設定されたリポジトリがあります。

project/
   |-- folder1
   |-- folder2
   |-- www       [subrepo]
   |-- dev       [subrepo]

マシンAで、プロジェクト、www、およびdevをチェックアウトし、.hgsubをそのように変更しました。wwwおよびdevサブリポジトリがhg(commit -Sなど)によって認識されるようにするには、これをコミットする必要があります。

ただし、マシンBはプロジェクトのwww機能のみを使用するため、次のようになります。

project/
   |-- folder1
   |-- folder2
   |-- www       [subrepo]

繰り返しますが、マシンBの.hgsubにはwwwのエントリしかありません。これを、hgがサブリポジトリとして認識するためにコミットする必要があります。

私がやりたいのは、中央リポジトリにプッシュアンドプルすることですが、.hgsubをプッシュ/プルしないでください。それ以外の場合、マシンAから.hgsubをコミットしてプッシュし、マシンBからプルすると、不要なwwwサブリポジトリだけでなくdevサブリポジトリも自動的に取得されます。

そこで、マシンBで.hgsubを再度変更して、wwwのみを取得し、それを有効にするためにコミットします。マシンBのwwwサブリポジトリでいくつかの作業を行い、中央リポジトリにプッシュバックしたいのですが、.hgsubへの変更もプッシュされます。マシンAを引っ張ると、「dev」サブリポジトリがなくなり、.hgsubに再度追加する必要があります。このように、欲求不満で髪を抜くまで前後に移動します。

これを回避する方法はありますか?.hgsubは、サブリポジトリが機能するために各マシンでローカルにコミットされる必要がありますが、プッシュまたはプルされたくありません。プッシュ/プル用の.hgignoreはありますか?

乾杯。

4

1 に答える 1

6

プッシュ/プルはファイルでは機能せず、チェンジセットで機能します。

そのため、部分的なチェンジセットをプッシュ/プルする方法はありません。プッシュ/プルするか、しないかのどちらかです。

リポジトリに常にそのファイル/サブリポジトリが含まれるようにしたくない場合は、プロジェクトをそのように編成しないでください。代わりに、他のサイトに必要なサブリポジトリだけを使用してセカンダリプロジェクトを設定することを検討することをお勧めします。

つまり、2つのプロジェクトを検討する場合があります。1つはすべてのサブリポジトリを含み、もう1つはほんの数個のプロジェクトを含みます。

于 2011-08-26T08:27:05.853 に答える