[PATCH 1 of 5 shelve-ext] shelve: move temporary commit creation to a separate function
Pierre-Yves David
pierre-yves.david at ens-lyon.org
Tue Jan 3 11:13:35 UTC 2017
On 11/20/2016 05:10 AM, Yuya Nishihara wrote:
> On Sun, 20 Nov 2016 00:42:53 +0000, Kostia Balytskyi wrote:
>> On 11/19/16, 10:02 AM, "Yuya Nishihara" <youjah at gmail.com on behalf of yuya at tcha.org> wrote:
>>
>> On Sun, 13 Nov 2016 03:39:34 -0800, Kostia Balytskyi wrote:
>> > # HG changeset patch
>> > # User Kostia Balytskyi <ikostia at fb.com>
>> > # Date 1479036952 28800
>> > # Sun Nov 13 03:35:52 2016 -0800
>> > # Node ID 45dbc9a803375958310bced301227b02802372b0
>> > # Parent 2188194ca1ee86953855e0d2fb9396ec18636ed9
>> > shelve: move temporary commit creation to a separate function
>>
>> Looks all good. Queued them, thanks.
>>
>> > +def _commitworkingcopychanges(ui, repo, opts, tmpwctx):
>> > + """Temporarily commit working copy changes before moving unshelve commit"""
>> > + # Store pending changes in a commit and remember added in case a shelve
>> > + # contains unknown files that are part of the pending change
>> > + s = repo.status()
>> > + addedbefore = frozenset(s.added)
>> > + if not (s.modified or s.added or s.removed or s.deleted):
>> > + return tmpwctx, addedbefore
>> > + ui.status(_("temporarily committing pending changes "
>> > + "(restore with 'hg unshelve --abort')\n"))
>> > + commitfunc = getcommitfunc(extra=None, interactive=False,
>> > + editor=False)
>> > + tempopts = {}
>> > + tempopts['message'] = "pending changes temporary commit"
>> > + tempopts['date'] = opts.get('date')
>> > + ui.quiet = True
>> > + node = cmdutil.commit(ui, repo, commitfunc, [], tempopts)
>> > + tmpwctx = repo[node]
>> > + return tmpwctx, addedbefore
>>
>> This and the next unbalanced ui.quiet hack can be a source of future bugs.
>> I hope they'll be fixed by a follow-up patch.
>
>> Can you explain please? I was trying to keep the ui.quiet behavior unchanged in this refactoring series.
>
> You've split set/restore of ui.quiet to separate functions. It's unclear that
> we have to care about the state of ui.quiet when adding some code to
> _dounshelve(). So IMO, each function should restore ui.quiet at the end.
I don't think this followup ever happen (but having a quick look at the
code. What is the status of this?
Cheers,
--
Pierre-Yves David
More information about the Mercurial-devel
mailing list