diff -r f7b635716ef2 -r 02299a28ba34 contrib/phabricator.py --- a/contrib/phabricator.py Tue Jul 04 16:41:28 2017 -0700 +++ b/contrib/phabricator.py Tue Jul 04 18:52:28 2017 -0700 @@ -381,11 +381,15 @@ raise error.Abort(_('cannot get Differential Revision %r') % params) return prefetched[key] + visited = set() result = [] queue = [params] while queue: params = queue.pop() drev = fetch(params) + if drev[r'id'] in visited: + continue + visited.add(drev[r'id']) result.append(drev) if stack: auxiliary = drev.get(r'auxiliary', {})