commit .hgsubstate after remove from .hgsub
Yuya Nishihara
yuya at tcha.org
Sun Feb 19 03:07:07 UTC 2017
On Sat, 18 Feb 2017 08:37:34 -0800, Ludovic Chabant wrote:
> I'm not sure I totally understand your problem but I know that I had a
> lot less problems with subrepos the day I understood that Mercurial
> wants a "global commit" to update and manage the .hgsubstate file and
> the other subrepo-related stuff. By "global commit" I mean a commit that
> does not specify files to commit, or use any exclude patterns. Basically
> a straight up "hg commit".
>
> So maybe you have problems because you're trying to run something like
> "hg commit .hgsub", or some other filtered-down commit?
>
> > Jérôme Godbout <mailto:jerome at bodycad.com>
> > February 18, 2017 at 6:42 AM
> > The problem is that hg doesn't let me commit the file telling me that
> > there is no local change event if .hgsubstate have modification where
> > I remove the removed subrepos revision entry. When updating to
> > revision Tortoisehg complain about it that something need to be
> > commit. but I can't commit that file change even by command line.
Short answer: Don't use TortoiseHg to remove subrepos, run "hg ci" instead.
Long answer: This appears to be a bug of TortoiseHg and Mercurial. When adding
a subrepo, THg runs:
% hg ci .hgsub subrepodir
If the subrepodir is excluded, Mercurial would complain about that:
% hg ci .hgsub
abort: commit with new subrepo subrepodir excluded
But when removing, THg doesn't include the removed subrepodir:
% hg ci .hgsub
and it passes without an error. Also, the subrepodir can't be specified
explicitly:
% hg ci .hgsub subrepodir
abort: subrepodir: no match under directory!
More information about the Mercurial
mailing list