On Mon, May 22, 2017 at 8:25 PM, Yuya Nishihara <[email protected]> wrote:

> On Sun, 21 May 2017 21:48:43 +0530, Pulkit Goyal wrote:
> > # HG changeset patch
> > # User Pulkit Goyal <[email protected]>
> > # Date 1495201237 -19800
> > #      Fri May 19 19:10:37 2017 +0530
> > # Node ID 2adbd2d46cd7588d75201108f6e02b92d1480022
> > # Parent  4a23cdb32968ab4739cad0c32811b24829c38efa
> > error: add a new exception named WdirUnsupported
> >
> > This series intents to support wdir() predicate with different operators
> > like ~, ^.
> >
> > Currently the storage class don't support wdir(). This exception is
> introduced
> > so that it can be raised from places where wdir() is passed and is not
> > supported and we can catch this where we want to support the predicate.
> > Also throwing an error at low level and catching at some higher level is
> better
> > than using if-else especially for perf.
> >
> > diff --git a/mercurial/error.py b/mercurial/error.py
> > --- a/mercurial/error.py
> > +++ b/mercurial/error.py
> > @@ -177,6 +177,9 @@
> >  class ProgrammingError(Hint, RuntimeError):
> >      """Raised if a mercurial (core or extension) developer made a
> mistake"""
> >
> > +class WdirUnsupported(Exception):
> > +    """An exception which is raised when 'wdir()' is not supported"""
>
> Although this was suggested by me, I'm not pretty sure if this will work
> well
> in most cases. However, the change is pretty small, so seems good in order
> to
> move things forward.
>
​
I have around 8-10 patches after this, where we need to catch this
exception where ever we want to add support. This is getting a bit ugly due
to adding try and except everywhere. I wish I can either instead of raising
this exception return the wdir() parents or add another function which will
handle this thing to make code cleaner but that will defeat the purpose of
using the try-except.

If you like, we can switch to following in revlog.py:

try:
   ......
catch IndexError:
    if rev == wdirrev:
        #return wdir parents here

This will be cleaner solution as these try and excepts are needed to added
at lot of places.
_______________________________________________
Mercurial-devel mailing list
[email protected]
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

Reply via email to