No subject


Tue Jun 7 13:11:29 CDT 2011


essentially a bug in the user experience and user interface. 

If there are subtle tricks I have not yet uncovered to make this plain to 
the user I support,  I would like to hear them.


[1] http://selenic.com/pipermail/mercurial-devel/2011-April/030128.html

- - -
Regards,
Paul Nathan
--=_alternative 006D7C20882578AB_=
Content-Type: text/html; charset="US-ASCII"

<font size=2 face="sans-serif">All,</font>
<br>
<br><font size=2 face="sans-serif">I am working to deploy Mercurial in
my company using subrepositories to manage our modules,</font>
<br><font size=2 face="sans-serif">and I am providing support for developers.</font>
<br>
<br><font size=2 face="sans-serif">Our repositories are structured along
the lines recommended by mpm[1].</font>
<br>
<br><font size=2 face="sans-serif">toplevel/ </font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; ./module</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp; ./module</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp;./productcode</font>
<br><font size=2 face="sans-serif">&nbsp; &nbsp;./otherproductcode</font>
<br>
<br>
<br>
<br>
<br><font size=2 face="sans-serif">One of the frequently asked questions
I receive goes like this:</font>
<br>
<br><font size=2 face="sans-serif">&nbsp; &nbsp;Asker:</font>
<br>
<br><font size=2 face="sans-serif">&quot;&quot;&quot;</font>
<br><font size=2 face="sans-serif">I am trying to merge my top-level repository
and I get this message:</font>
<br>
<br><font size=2 face="sans-serif">~/dev/toplevel/$ hg merge other_branch</font>
<br><font size=2 face="sans-serif">abort: outstanding uncommitted changes
in subrepository 'MySubrepo'</font>
<br>
<br><font size=2 face="sans-serif">~/dev/toplevel/$ cd MySubrepo</font>
<br>
<br><font size=2 face="sans-serif">~/dev/toplevel/MySubrepo/$ hg sum </font>
<br><font size=2 face="sans-serif">parent: &lt;blah&gt;</font>
<br><font size=2 face="sans-serif">&lt;message&gt;</font>
<br><font size=2 face="sans-serif">branch: &lt;blah&gt;</font>
<br><font size=2 face="sans-serif">commit: (clean)</font>
<br><font size=2 face="sans-serif">update: (current)</font>
<br>
<br><font size=2 face="sans-serif">~/dev/toplevel/MySubrepo/$ hg diff</font>
<br><font size=2 face="sans-serif">~/dev/toplevel/MySubrepo/$ hg status</font>
<br>
<br>
<br><font size=2 face="sans-serif">What's going on here?</font>
<br><font size=2 face="sans-serif">&quot;&quot;&quot;</font>
<br>
<br><font size=2 face="sans-serif">&nbsp; &nbsp;Me:</font>
<br>
<br><font size=2 face="sans-serif">&quot;&quot;&quot;</font>
<br><font size=2 face="sans-serif">Check hg sum at root level</font>
<br><font size=2 face="sans-serif">&quot;&quot;&quot;</font>
<br>
<br><font size=2 face="sans-serif">&nbsp; &nbsp;Asker:</font>
<br>
<br><font size=2 face="sans-serif">&quot;&quot;&quot;</font>
<br><font size=2 face="sans-serif">~/dev/toplevel/$ hg sum </font>
<br><font size=2 face="sans-serif">parent: &lt;blah&gt;</font>
<br><font size=2 face="sans-serif">&lt;message&gt;</font>
<br><font size=2 face="sans-serif">branch: &lt;blah&gt;</font>
<br><font size=2 face="sans-serif">commit: 1 subreo</font>
<br><font size=2 face="sans-serif">update: (current)</font>
<br>
<br><font size=2 face="sans-serif">~/dev/toplevel/$ hg diff</font>
<br><font size=2 face="sans-serif">~/dev/toplevel/$ hg st</font>
<br><font size=2 face="sans-serif">~/dev/toplevel/$</font>
<br><font size=2 face="sans-serif">&quot;&quot;&quot;</font>
<br>
<br><font size=2 face="sans-serif">&nbsp; Me</font>
<br>
<br><font size=2 face="sans-serif">&quot;&quot;&quot;</font>
<br><font size=2 face="sans-serif">You need to commit at the top level
before merging, the subrepository state has changed under you.</font>
<br><font size=2 face="sans-serif">&quot;&quot;&quot;</font>
<br>
<br><font size=2 face="sans-serif">And the conversation continues as I
explain the operation of the .hgsubstate file and how it records the state
of the subrepos, but only on commit. </font>
<br>
<br>
<br><font size=2 face="sans-serif">The problem is: </font>
<br>
<br><font size=2 face="sans-serif">Notice that there is an inconsistency
of operation here: hg diff is not telling the user that there really is
a difference in the world of the top repository. Nor is hg status.</font>
<br><font size=2 face="sans-serif">Yet, the connotation and denotation
of the words say that they tell you the status and the difference. But
they return that there is _no_ difference. </font>
<br>
<br><font size=2 face="sans-serif">While this may make sense from an implementation
standpoint(and it does, if I think like an implementer), &nbsp;I have received
this question from multiple people who are </font>
<br><font size=2 face="sans-serif">experienced, skilled and qualified software
engineers who have used other version control systems (ClearCase, SVN,
git). </font>
<br>
<br><font size=2 face="sans-serif">From my perspective as a support person
for hg in my company, this is essentially a bug in the user experience
and user interface. </font>
<br>
<br><font size=2 face="sans-serif">If there are subtle tricks I have not
yet uncovered to make this plain to the user I support, &nbsp;I would like
to hear them.</font>
<br>
<br>
<br><font size=2 face="sans-serif">[1] </font><a href="http://selenic.com/pipermail/mercurial-devel/2011-April/030128.html"><font size=2 face="sans-serif">http://selenic.com/pipermail/mercurial-devel/2011-April/030128.html</font></a>
<br>
<br><font size=2 face="sans-serif">- - -<br>
Regards,<br>
Paul Nathan</font>
--=_alternative 006D7C20882578AB_=--


More information about the Mercurial mailing list