diff -r 8f469f81129c -r f869033391b9 hgext/directaccess.py --- a/hgext/directaccess.py Wed Aug 12 20:38:39 2015 -0700 +++ b/hgext/directaccess.py Mon Aug 17 17:01:38 2015 -0700 @@ -129,6 +129,8 @@ hashre = util.re.compile('[0-9a-fA-F]{1,40}') +_listtuple = ('symbol', '_list') + def gethashsymbols(tree): # Returns the list of symbols of the tree that look like hashes # for example for the revset 3::abe3ff it will return ('abe3ff') @@ -143,6 +145,13 @@ if hashre.match(tree[1]): return [tree[1]] return [] + elif tree[0] == "func" and tree[1] == _listtuple: + # the optimiser will group sequence of hash request + result = [] + for entry in tree[2][1].split('\0'): + if hashre.match(entry): + result.append(entry) + return result elif len(tree) == 3: return gethashsymbols(tree[1]) + gethashsymbols(tree[2]) else: