[PATCH] record: make m key open an editor for the commit message (issue5667)
Augie Fackler
raf at durin42.com
Mon Aug 28 14:15:40 EDT 2017
> On Aug 28, 2017, at 14:13, Augie Fackler <raf at durin42.com> wrote:
>
> Your patch looks good, but I'm unable to apply it. Did you mail this by pasting into your mail client instead of using `hg email`?
While writing this reply I spotted the damage to the patch from your mailer and was able to un-do it, so your patch is queued, thanks!
In the future please be aware that mail clients do terrible things to patches. :/
>
>> On Aug 28, 2017, at 08:21, Peter Vitt <peter.vitt2 at uni-siegen.de> wrote:
>>
>> # HG changeset patch
>> # User Peter Vitt <peter.vitt2 at uni-siegen.de>
>> # Date 1503920611 -7200
>> # Mon Aug 28 13:43:31 2017 +0200
>> # Node ID 22ab2b29950a783a5ee52b20693a0b4f9c174fae
>> # Parent 4e8a46c25facaebca476634d52dd78431d3143e8
>> record: make the m key open an editor for the commit message (issue5667)
>>
>> With the former crecord extension, the user could edit the commit
>> message while he was de-/selecting hunks. By pressing 'm', an editor
>> showed up to edit the commit message.
>>
>> With record being part of mercurial, this feature is not available
>> anymore. However, the help text still mentions it.
>>
>> As the infrastructure needed is still present, this feature is quite
>> easily ported from the crecord extension to mercurial.
>>
>> It seems there is no test coverage for record ui, so I tested this patch
>> manually on my local machine.
>>
>> diff -r 4e8a46c25fac -r 22ab2b29950a mercurial/crecord.py
>> --- a/mercurial/crecord.py Tue Aug 22 11:00:00 2017 +0200
>> +++ b/mercurial/crecord.py Mon Aug 28 13:43:31 2017 +0200
>> @@ -1440,6 +1440,17 @@
>> except curses.error:
>> pass
>>
>> + def commitMessageWindow(self):
>> + "Create a temporary commit message editing window on the screen."
>> +
>> + curses.raw()
>> + curses.def_prog_mode()
>> + curses.endwin()
>> + self.commenttext = self.ui.edit(self.commenttext,
>> self.ui.username())
>> + curses.cbreak()
>> + self.stdscr.refresh()
>> + self.stdscr.keypad(1) # allow arrow-keys to continue to function
>> +
>> def confirmationwindow(self, windowtext):
>> "display an informational window, then wait for and return a
>> keypress."
>>
>> @@ -1661,6 +1672,8 @@
>> self.togglefolded()
>> elif keypressed in ["F"]:
>> self.togglefolded(foldparent=True)
>> + elif keypressed in ["m"]:
>> + self.commitMessageWindow()
>> elif keypressed in ["?"]:
>> self.helpwindow()
>> self.stdscr.clear()
>> @@ -1736,3 +1749,8 @@
>> keypressed = "foobar"
>> if self.handlekeypressed(keypressed):
>> break
>> +
>> + if self.commenttext != "":
>> + whitespaceremoved = re.sub("(?m)^\s.*(\n|$)", "",
>> self.commenttext)
>> + if whitespaceremoved != "":
>> + self.opts['message'] = self.commenttext
>> _______________________________________________
>> Mercurial-devel mailing list
>> Mercurial-devel at mercurial-scm.org
>> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
>
More information about the Mercurial-devel
mailing list