hgext/graphlog.py
changeset 16433 e38b29937118
parent 16432 365bb0fa73a4
child 16434 8b62a77d0895
equal deleted inserted replaced
16432:365bb0fa73a4 16433:e38b29937118
   295         }
   295         }
   296 
   296 
   297     opts = dict(opts)
   297     opts = dict(opts)
   298     # follow or not follow?
   298     # follow or not follow?
   299     follow = opts.get('follow') or opts.get('follow_first')
   299     follow = opts.get('follow') or opts.get('follow_first')
   300     followfirst = opts.get('follow_first')
   300     followfirst = opts.get('follow_first') and 1 or 0
   301     # --follow with FILE behaviour depends on revs...
   301     # --follow with FILE behaviour depends on revs...
   302     startrev = revs[0]
   302     startrev = revs[0]
   303     followdescendants = len(revs) > 1 and revs[0] < revs[1]
   303     followdescendants = (len(revs) > 1 and revs[0] < revs[1]) and 1 or 0
   304 
   304 
   305     # branch and only_branch are really aliases and must be handled at
   305     # branch and only_branch are really aliases and must be handled at
   306     # the same time
   306     # the same time
   307     opts['branch'] = opts.get('branch', []) + opts.get('only_branch', [])
   307     opts['branch'] = opts.get('branch', []) + opts.get('only_branch', [])
   308     opts['branch'] = [repo.lookupbranch(b) for b in opts['branch']]
   308     opts['branch'] = [repo.lookupbranch(b) for b in opts['branch']]
   347             matchargs.append('x:' + p)
   347             matchargs.append('x:' + p)
   348         matchargs = ','.join(('%r' % p) for p in matchargs)
   348         matchargs = ','.join(('%r' % p) for p in matchargs)
   349         opts['_matchfiles'] = matchargs
   349         opts['_matchfiles'] = matchargs
   350     else:
   350     else:
   351         if follow:
   351         if follow:
   352             if followfirst:
   352             fpats = ('_patsfollow', '_patsfollowfirst')
   353                 if pats:
   353             fnopats = (('_ancestors', '_fancestors'),
   354                     opts['_patsfollowfirst'] = list(pats)
   354                        ('_descendants', '_fdescendants'))
   355                 else:
   355             if pats:
   356                     if followdescendants:
   356                 opts[fpats[followfirst]] = list(pats)
   357                         opts['_fdescendants'] = str(startrev)
       
   358                     else:
       
   359                         opts['_fancestors'] = str(startrev)
       
   360             else:
   357             else:
   361                 if pats:
   358                 opts[fnopats[followdescendants][followfirst]] = str(startrev)
   362                     opts['_patsfollow'] = list(pats)
       
   363                 else:
       
   364                     if followdescendants:
       
   365                         opts['_descendants'] = str(startrev)
       
   366                     else:
       
   367                         opts['_ancestors'] = str(startrev)
       
   368         else:
   359         else:
   369             opts['_patslog'] = list(pats)
   360             opts['_patslog'] = list(pats)
   370 
   361 
   371     filematcher = None
   362     filematcher = None
   372     if opts.get('patch') or opts.get('stat'):
   363     if opts.get('patch') or opts.get('stat'):