D5997: mq: disable qrecord during histedit (issue5981)
navaneeth.suresh (Navaneeth Suresh)
phabricator at mercurial-scm.org
Thu Feb 21 19:33:24 UTC 2019
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
More information about the Mercurial-devel
mailing list