[PATCH 0 of 2 rfc] Sticky subrepos

Martin Geisler mg at lazybytes.net
Tue Feb 8 03:28:10 CST 2011


Dirkjan Ochtman <dirkjan at ochtman.nl> writes:

> Can you spell out the use case some more?

I've asked our client for some use cases and this is what he wrote back
to me:

  There are two use cases:

  1) A developer is temporarily using a different revision of some
     subrepo (e.g. a tool or library) from the revision in the parent's
     .hgsubstate; he is not modifying it. There is a new revision in the
     parent repo, bringing in new revisions of subrepos. The result he
     wants with update without the clean option is to have the new
     revisions of other subrepos and keep the revision of the subrepo
     that he has manually updated, _without any merge in the parent
     repo_.

  2) A developer is modifying a subrepo; he may or may not have a new
     revision that differs from the revision in the parent's
     .hgsubstate. There is a new revision in the parent repo, bringing
     in new revisions of subrepos (including the one he is modifying).
     The result he wants with update without the clean option is to have
     the new revisions of the other subrepos and keep the revision of
     the subrepo that he is working on, _without any merge in the parent
     repo or in the subrepo_.

  In general, I'm not a fan of "prompt-the-user" solutions, but if this
  is what is required to get an agreement in the community it's ok - as
  long as two conditions are met: 1) there is a clear option that means
  "no merge in the parent at all; just leave things the way they are";
  2) the "prompt-the-user" solution also works in Tortoise.

> The scenario that I would want is a kind of vendor repo (i.e. should
> fail on commit with non-clean subrepo, but update substate if changed
> on commit, maybe with a note/status). Is this that? I'm confused by
> your "will not be updated". Also we probably want some discussion on
> how this should be represented in the .hgsub{,state}.

I was not going to represent it in any way in those files. The
.hgsubstate file is mostly invisible to users -- it's content is updated
as part of the commit, so 'hg status .hgsubstate' will never tell you
what the next commit will really do.

I hope this clears up the goal of the patch series, otherwise please ask
again.

-- 
Martin Geisler

Mercurial links: http://mercurial.ch/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: not available
URL: <http://selenic.com/pipermail/mercurial-devel/attachments/20110208/96a0039a/attachment.pgp>


More information about the Mercurial-devel mailing list