これは、Mercurial サブリポジトリの使用例のように思えます。
GraphicsEngine
これは、サブリポジトリとして に配置できることを意味しますSpaceGame
。(または、推奨される構造
に従う場合は、とと サブリポジトリの両方を含む薄い「ラッパー」リポジトリを作成します)GraphicsEngine
SpaceGame
サブリポジトリが機能する方法にSpaceGame
は、常に最新バージョンのバージョンが含まれているとは限りませんGraphicsEngine
...特定の修正されたリビジョンを指しGraphicsEngine
、その間に更新された場合、これらの変更を自動的に取得SpaceGame
しません...明示的な更新を行う必要がありますそれらを取得します。
これは、SpaceGame
他の誰かが に変更を加えたために、 が予期せず壊れることがないことを意味しGraphicsEngine
ます。
これはまた、「数か月前からリビジョン 467 に」更新すると、サブリポジトリが467のときのリビジョンに自動的に更新されることも意味します(これはあなたが尋ねたことです)。SpaceGame
GraphicsEngine
SpaceGame
編集:
いいえ、GraphicsEngine
まだ別のリポジトリであり、誰にも「所有」されていません。
サブリポジトリとして使用すると、親リポジトリから「リンク」されます (複数の親リポジトリからリンクできます)。それはまだ別のリポジトリのままです。
サブリポジトリを使用すると、次のようなことが可能になります。
GraphicsEngine // main GraphicsEngine repo, current revision: 300
SpaceGame // main SpaceGame repo
└ GraphicsEngine // GraphicsEngine subrepo, current revision: 265
SeaGame // main SeaGame repo
└ GraphicsEngine // GraphicsEngine subrepo, current revision: 241
と の両方SpaceGame
にSeaGame
それぞれGraphicsEngine
サブレポがあります。各サブレポは、特定のリビジョン(私の例では 265 と 241)
を「指しています」 。
の開発は継続しています ( rev 300 です) が、最新の変更は と では表示されません。どちらも古いリビジョンを指しているためです。GraphicsEngine
GraphicsEngine
GraphicsEngine
SpaceGame
SeaGame
GraphicsEngine