Since e8a7c1a0565a "cmdutil: remove the redundant commit during amend", subrepo change is no longer be detected so .hgsubstate can't be amended. $ hg init t $ cd t $ echo a > a $ hg ci -Am0 adding a $ echo s = s > .hgsub $ hg add .hgsub $ hg init s $ echo a > s/a $ hg ci -R s -Am0 adding a $ hg ci -m1 $ hg up -R s null 0 files updated, 0 files merged, 1 files removed, 0 files unresolved $ hg ci --amend -m1 nothing changed [1] BROKEN: .hgsubstate should be amended Perhaps we'll need to extract the preprocess of localrepository.commit().
Bug was set to IN_PROGRESS for 14 days, moving back to confirmed
Fixed by https://mercurial-scm.org/repo/hg/rev/691524f0bbf6 Yuya Nishihara <yuya@tcha.org> amend: update .hgsubstate before committing a memctx (issue5677) This is a minimal copy of localrepo.commit(). As the current amend() function heavily depends on the wctx API, it wasn't easy to port it to use a separate status tuple. So for now, wctx._status is updated in-place. (please test the fix)
Bug was set to TESTING for 7 days, resolving