hgext/inotify/__init__.py
changeset 8556 f5fae700cc00
parent 8555 3e09bc5fee12
child 8557 67f76a4463ef
equal deleted inserted replaced
8555:3e09bc5fee12 8556:f5fae700cc00
    61     class inotifydirstate(repo.dirstate.__class__):
    61     class inotifydirstate(repo.dirstate.__class__):
    62         # Set to True if we're the inotify server, so we don't attempt
    62         # Set to True if we're the inotify server, so we don't attempt
    63         # to recurse.
    63         # to recurse.
    64         inotifyserver = False
    64         inotifyserver = False
    65 
    65 
       
    66         # We'll set this to false after an unsuccessful attempt so that
       
    67         # next calls of status() within the same instance don't try again
       
    68         # to start an inotify server if it won't start.
       
    69         _inotifyon = True
       
    70 
    66         def status(self, match, ignored, clean, unknown=True):
    71         def status(self, match, ignored, clean, unknown=True):
    67             files = match.files()
    72             files = match.files()
    68             if '.' in files:
    73             if '.' in files:
    69                 files = []
    74                 files = []
    70             if not ignored and not self.inotifyserver:
    75             if self._inotifyon and not ignored and not self.inotifyserver:
    71                 cli = client(ui, repo)
    76                 cli = client(ui, repo)
    72                 try:
    77                 try:
    73                     result = cli.statusquery(files, match, False,
    78                     result = cli.statusquery(files, match, False,
    74                                             clean, unknown)
    79                                             clean, unknown)
    75                 except QueryFailed, instr:
    80                 except QueryFailed, instr:
    76                     ui.debug(str(instr))
    81                     ui.debug(str(instr))
       
    82                     # don't retry within the same hg instance
       
    83                     inotifydirstate._inotifyon = False
    77                     pass
    84                     pass
    78                 else:
    85                 else:
    79                     if ui.config('inotify', 'debug'):
    86                     if ui.config('inotify', 'debug'):
    80                         r2 = super(inotifydirstate, self).status(
    87                         r2 = super(inotifydirstate, self).status(
    81                             match, False, clean, unknown)
    88                             match, False, clean, unknown)