# HG changeset patch # User Navaneeth Suresh # Date 2019-02-21 19:24:06 # Node ID 4d21ebc4cb47ab1915dbe29889721202042644ad # Parent 2ba96fca85284333d6046309597a07940dfc1db7 mq: disable qrecord during histedit (issue5981) 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. Differential Revision: https://phab.mercurial-scm.org/D5997 diff --git a/hgext/record.py b/hgext/record.py --- a/hgext/record.py +++ b/hgext/record.py @@ -119,6 +119,7 @@ def _qrecord(cmdsuggest, ui, repo, patch overrides = {('experimental', 'crecord'): False} with ui.configoverride(overrides, 'record'): + cmdutil.checkunfinished(repo) cmdutil.dorecord(ui, repo, committomq, cmdsuggest, False, cmdutil.recordfilter, *pats, **opts) 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,43 @@ After qrecord b.patch 'diff' $ hg diff --nodates $ cd .. + +qrecord should throw an error when histedit in process + + $ hg init issue5981 + $ cd issue5981 + $ cat >> $HGRCPATH < [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 < 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 < y + > y + > n + > y + > y + > n + > EOF + abort: histedit in progress + (use 'hg histedit --continue' or 'hg histedit --abort') + [255]