2

Mercurialのドキュメントでは、単純な相対パスを.hgsub使用[subpaths]し、絶対パスにマップするために使用することを推奨しています。この背後にある理由を完全には理解していません。ドキュメントページの議論は、絶対パスは変更される可能性が高いというものです。[subpaths]絶対パスが変更されるたびに、ソリューションも変更する必要があるのではないでしょうか?

私が理解できる理由の 1 つ (ただし、私の場合は当てはまりません) は、クローンのクローンは、[subpaths]完全な元のパスを絶対パスに再マップするためにのみ使用できることです。絶対パスが直接使用される場合、クローンのクローンは、最初のクローンではなく、元のクローンからプッシュ/プルされます。[subpaths]これが、セクションなしで絶対パスを使用しない唯一の理由ですか?

4

1 に答える 1

2

主な理由は、パスが変更されることがあり、.hgsub が履歴の一部であるためです。サブレポがhttp://tinyco.com/hg/repo1からhttp://bigco.com/tinydivision/hg/repo1に移動した場合、もちろん .hgsub ファイルを更新できますが、過去のリビジョンのために古いバージョンが配置されています。したがって、これを行うhg update reallly_old_revisionと、買収の一環として弱体化した http://tinyco.com と通信しようとします。単純なパスをサブレポ パスとして保持する場合は、 in を使用[subpaths]して、.hg/hgrc現在存在する場所を指すことができます。

また、サブレポを実際のサブレポの独自のローカル クローンに向けると、サブレポにプッシュできない (権限がない) 場合でもプッシュできるようになるため、便利な場合がよくあります。

一般に、間接レイヤーを追加すると柔軟性が増します。

于 2014-02-04T01:27:27.350 に答える