import json,sys,collections,datetime
T=sys.argv[1]
spans={};kids=collections.defaultdict(list)
for l in open(T):
  try: s=json.loads(l)
  except: continue
  spans[s['spanId']]=s; kids[s.get('parentSpanId')].append(s)
def count(s,name):
  n=0
  for k in kids[s['spanId']]:
    n+=(k['name']==name)+count(k,name)
  return n
for s in sorted((s for s in spans.values() if s['name']=='ThreadPullRequestServiceV2.synchronize'), key=lambda s:int(s['startTimeUnixNano'])):
  t=datetime.datetime.utcfromtimestamp(int(s['startTimeUnixNano'])/1e9).strftime('%H:%M:%S')
  print(t, 'branchPullRequest=%d'%count(s,'branchPullRequest'), 'runGitCommand=%d'%count(s,'runGitCommand'), '%.0fms'%s['durationMs'])
