navaneeth.suresh created this revision. Herald added a subscriber: mercurial-devel. Herald added a reviewer: hg-reviewers.
REVISION SUMMARY qrecord during histedit may lead to deadlock-like situations. qpop will throw an error on called during histedit even after qrecord-ing those changes. This patch makes qrecord to abort on histedit. REPOSITORY rHG Mercurial REVISION DETAIL https://phab.mercurial-scm.org/D5997 AFFECTED FILES hgext/record.py tests/test-qrecord.t CHANGE DETAILS diff --git a/tests/test-qrecord.t b/tests/test-qrecord.t --- a/tests/test-qrecord.t +++ b/tests/test-qrecord.t @@ -422,3 +422,42 @@ $ hg diff --nodates $ cd .. + +qrecord should throw an error when histedit in process + + $ hg init issue5981 + $ cd issue5981 + $ cat >> $HGRCPATH <<EOF + > [extensions] + > histedit= + > mq= + > EOF + $ echo > a + $ hg ci -Am 'foo bar' + adding a + $ hg log + changeset: 0:ea55e2ae468f + tag: tip + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: foo bar + + $ hg histedit tip --commands - 2>&1 <<EOF + > edit ea55e2ae468f foo bar + > EOF + 0 files updated, 0 files merged, 1 files removed, 0 files unresolved + adding a + Editing (ea55e2ae468f), you may commit or record as needed now. + (hg histedit --continue to resume) + [1] + $ echo 'foo bar' > a + $ hg qrecord -d '0 0' -m aaa a.patch <<EOF + > y + > y + > n + > y + > y + > n + > EOF + abort: histedit in progress, can't qrecord + [255] diff --git a/hgext/record.py b/hgext/record.py --- a/hgext/record.py +++ b/hgext/record.py @@ -119,6 +119,8 @@ overrides = {('experimental', 'crecord'): False} with ui.configoverride(overrides, 'record'): + if repo.vfs.exists('histedit-state'): + raise error.Abort(_("histedit in progress, can't qrecord")) cmdutil.dorecord(ui, repo, committomq, cmdsuggest, False, cmdutil.recordfilter, *pats, **opts) To: navaneeth.suresh, #hg-reviewers Cc: mercurial-devel _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel