mercurial/patch.py
changeset 7664 3cc74ee75b0d
parent 7615 ab39d1813e51
child 7670 e5f445c94226
equal deleted inserted replaced
7663:b0a0eb28a933 7664:3cc74ee75b0d
  1341 
  1341 
  1342     for seqno, rev in enumerate(revs):
  1342     for seqno, rev in enumerate(revs):
  1343         single(rev, seqno+1, fp)
  1343         single(rev, seqno+1, fp)
  1344 
  1344 
  1345 def diffstatdata(lines):
  1345 def diffstatdata(lines):
  1346     filename = None
  1346     filename, adds, removes = None, 0, 0
  1347     for line in lines:
  1347     for line in lines:
  1348         if line.startswith('diff'):
  1348         if line.startswith('diff'):
  1349             if filename:
  1349             if filename:
  1350                 yield (filename, adds, removes)
  1350                 yield (filename, adds, removes)
  1351             # set numbers to 0 anyway when starting new file
  1351             # set numbers to 0 anyway when starting new file
  1352             adds = 0
  1352             adds, removes = 0, 0
  1353             removes = 0
       
  1354             if line.startswith('diff --git'):
  1353             if line.startswith('diff --git'):
  1355                 filename = gitre.search(line).group(1)
  1354                 filename = gitre.search(line).group(1)
  1356             else:
  1355             else:
  1357                 # format: "diff -r ... -r ... file name"
  1356                 # format: "diff -r ... -r ... file name"
  1358                 filename = line.split(None, 5)[-1]
  1357                 filename = line.split(None, 5)[-1]
  1359         elif line.startswith('+') and not line.startswith('+++'):
  1358         elif line.startswith('+') and not line.startswith('+++'):
  1360             adds += 1
  1359             adds += 1
  1361         elif line.startswith('-') and not line.startswith('---'):
  1360         elif line.startswith('-') and not line.startswith('---'):
  1362             removes += 1
  1361             removes += 1
  1363     yield (filename, adds, removes)
  1362     if filename: 
       
  1363         yield (filename, adds, removes)
  1364 
  1364 
  1365 def diffstat(lines):
  1365 def diffstat(lines):
  1366     output = []
  1366     output = []
  1367     stats = list(diffstatdata(lines))
  1367     stats = list(diffstatdata(lines))
  1368     width = util.termwidth() - 2
  1368     width = util.termwidth() - 2