rust-cpython: make PySharedRef::try_borrow_mut() return BorrowMutError
As I said, it shouldn't be an error of Python layer, but is something like
a coding error. Returning BorrowMutError makes more sense.
There's a weird hack to propagate the borrow-by-leaked state to RefCell
to obtain BorrowMutError. If we don't like it, maybe we can add our own
BorrowMutError.
# mergeutil.py - help for merge processing in mercurial
#
# Copyright 2005-2007 Matt Mackall <mpm@selenic.com>
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
from __future__ import absolute_import
from .i18n import _
from . import error
def checkunresolved(ms):
if list(ms.unresolved()):
raise error.Abort(
_(b"unresolved merge conflicts (see 'hg help resolve')")
)
if ms.mdstate() != b's' or list(ms.driverresolved()):
raise error.Abort(
_(b'driver-resolved merge conflicts'),
hint=_(b'run "hg resolve --all" to resolve'),
)