Subrepository remapping plan

Martin Geisler mg at aragost.com
Mon Aug 9 09:30:36 CDT 2010


Kevin Bullock <kbullock+mercurial at ringworld.org> writes:

> On 23 Jul 2010, at 8:44 AM, Martin Geisler wrote:
>
>> Dirkjan Ochtman <dirkjan at ochtman.nl> writes:
>> 
>>> On Fri, Jul 23, 2010 at 13:38, Martin Geisler <mg at aragost.com> wrote:
>>> - Why do we need the intermediate key "libfoo"? It seems like we could
>>> just use the in-repo path to the subrepo to key off of (i.e. the
>>> subpaths file or hgrc would have lib/foo =
>>> http://hg.company.com/libraries/libfoo). It might change location in
>>> the repo, but it wouldn't be hard to add an extra mapping entry (the
>>> libfoo is also prone to being renamed at some point).
>> 
>> Ah, that idea is new. The original idea was to solve the problem of
>> outdated URLs, and this is why I propose we remap URLs (= right-hand
>> sides in the .hgsub file).
>> 
>> If we base the remapping on the left-hand sides instead, then we base it
>> on something which can already change today, but something which causes
>> no problems when it change. The problem is changing right-hand sides.
>
> What about, instead of using the extra level of indirection, remap the
> URLs directly, like so:
>
> # .hg/subpaths
> http://hg.company.com/libraries/libfoo http://hg.another-company.com/libraries/libfoo

That is actually what I propose. The wiki page only mentions it briefly,
when it says:

  This mechanism can also be used by people who have hard coded paths
  and now need to remap them because of repository reorganization.

The symbolic names used in the right-hand sides in the .hgsub file need
not be short identifiers like 'libfoo' in the Wiki page -- they can also
be full URLs.

> Also, what about extending the concept of this to allow the user to
> override any subrepo path in their hgrc, without pushing those
> mappings? Sort of like localtags?

That is also in the proposal :-) The remapping is done by first reading
the .hg/subpaths file, and then reading the normal configuration files
such as the .hg/hgrc file. This lets the user override the remapping as
needed.

-- 
Martin Geisler

aragost Trifork
Professional Mercurial support
http://aragost.com/mercurial/


More information about the Mercurial-devel mailing list