4

同様ですが、答えは hg docs によって推奨されていません: Mercurial を使用して svn:externals をエミュレートできますか?

hg を使用する前は、Subversion を使用していました。Subversion の外部は非常に強力なようです。別のレポの特定のバージョンを指しているサブレポを持つことができます。しかし、HgのSubrepositoryのドキュメントには、これは「最後の手段の機能」であると書かれています。うわーそれは不吉です。さらに、そのサブレポを特定のバージョンに固執することについて、ドキュメントには何も表示されません。

Deps 拡張機能は維持されなくなりました。

サイトでの森林の拡張はお勧めできません。

では、リポジトリのバージョン XYZAB を Hg リポジトリ内にネストする場合、Last Resort の機能ではない現時点で最良の代替手段は何ですか? Hgはこの機能がちょっと苦手ですか?

Guestrepo は一見の価値がありますが、現時点では非常に新しいものです: https://bitbucket.org/selinc/guestrepo

4

1 に答える 1

3

しかし、Hg の Subrepository のドキュメントには、これは「最後の手段の機能」であると書かれています。うわーそれは不吉です。

これは、サブリポジトリが本当に必要かどうかを再確認する必要があることを意味します。サブリポジトリを使用せずに Mercurial を使用する非常に大規模なプロジェクトが多数あります。代わりに、疎結合リポジトリのコレクションとしてコードを管理します。サブリポジトリの主な問題は、非常に密結合を作成することです。密結合コンポーネントは、柔軟性を制限するため、通常、ソフトウェア設計では回避されます。

ただし、サブリポジトリのサポートがなくなることはありません。実際、人々が良いユースケースを私たちに提示するにつれて、時間の経過とともに徐々に改善されます.

さらに、そのサブレポを特定のバージョンに固執することについて、ドキュメントには何も表示されません。

サブリポジトリはすべて特定のバージョンをチェックアウトするためのものなので、奇妙なことです。つまり、コミットしたのとまったく同じバージョンのみをチェックアウトできます。バージョンは.hgsubstateコミット時に書き込まれhg update、チェックアウト時にそのファイルを参照します。

ファイルがどのように扱われるかについては、 Mercurial Kick Start ガイドを参照してください。hg help subrepos.hgsubstate

于 2012-08-30T07:38:00.110 に答える