subrepo wish list

Steve Borho steve at borho.org
Thu Apr 15 09:56:55 CDT 2010


On Thu, Apr 15, 2010 at 9:43 AM, Warren Postma <warren.postma at gmail.com> wrote:
> What do you think about the following "it's not HG's job" approach to
> subrepositories:
> Subrepository extensions in hg are a bad idea. Nobody should stop anybody
> from doing whatever they want in an extension.  But subrepos are
> unmercurial, at least at first.
> Put large caveats against using subrepo features right in the tutorials for
> hg.  If you think you need subrepos on your first day of using hg, you're
> doing it wrong.
>  Encourage the idea that "No command line support for subrepository
> extensions whatsoever within hg" is an important way of separating hg's part
> in your workflow from other tools that operatate at a "meta-hg" level and
> provide higher level smoke-testing and continuous-integration workflows upon
> piles of repositories.   Remember RCS and CVS?  You have a tool (CVS)
> providing higher-level concepts and thus, higher level workflow support and
> another underneath it (RCS) providing low level support.
>  To me the "status" question is more of a "dashboard question".  I think a
> GUI  that has a LIST of my currently checked out mercurial repo locations,
> with the following table would be useful. I am thinking
> that this would be implemented as a set of additional hgtk style python+tk
> GUI stuff.    The main table for status would have these columns:
>  repo-path, repo-status-singleline, repo-description, etc.

I really like this 'dasherboard' idea.  It could support folder/repo
drop and allow the user to set the description (web.description).

>  Your request for "always commit separately" rings very true to me, for me
> the reason is that repositories are too meaningful and atomic a thing to be
> combining them into any automatic hodgepodge of any sort. Thus I would
> prefer that the "hg" command line context remain forever only dedicated to
> single-repo operations.  hg commit means commit "THIS" repository, not this
> "hodgepodge" of whatever.    Thus subrepo extensions at the hg command line
> are confusing to me.
> If someone was perfectly happy with their pile-of-subrepos conceptually at
> the commit stage, who knows what fresh hell hg pull and push with subrepos
> could cause.
>  I think visibility and clarity are key concerns for design of a source code
> control tool.  Visibility concerns should not ALL be addressed at the
> command line.  I think a clear division of "hg command line" deals with
> "this one repository where I am working" is a very good thing.  Some people
> are confused about "hg commit" doing a repo wide commit, even if you are in
> a subdir of your repo.  Imagine what fun that is, when you combine that with
> subrepos.
>  A perfect-storm user-story anti-pattern would be like this: User moves from
> subversion to hg, user decides to immediately learn hg, subrepos, and mq on
> day 1.  user gives up in disgust. user leaves.   I think that an hg design
> tenet that most appeals to me, is "KISS".    complicated == fail.   simple =
> understandable = success.   small repositories.  don't stick everything in
> one repo.  don't build giant tangled piles of software at the hg layer.
>  Build tools above the hg layer that use a first-word-on-the-command-line
> that is not hg.  Remember cvs and rcs.   Remember the unix philosophy of
> combining tools, rather than aggregating everything into one tool.
> That's just my view.
> Warren


--
Steve Borho


More information about the Mercurial mailing list