mercurial/patch.py
changeset 13395 104c9ed93fc5
parent 13112 039a964dbbb3
child 13699 d3c0e0033f13
equal deleted inserted replaced
13394:30e103dacd5f 13395:104c9ed93fc5
  1527                 yield ''.join(header)
  1527                 yield ''.join(header)
  1528             if text:
  1528             if text:
  1529                 yield text
  1529                 yield text
  1530 
  1530 
  1531 def diffstatdata(lines):
  1531 def diffstatdata(lines):
       
  1532     diffre = re.compile('^diff .*-r [a-z0-9]+\s(.*)$')
       
  1533 
  1532     filename, adds, removes = None, 0, 0
  1534     filename, adds, removes = None, 0, 0
  1533     for line in lines:
  1535     for line in lines:
  1534         if line.startswith('diff'):
  1536         if line.startswith('diff'):
  1535             if filename:
  1537             if filename:
  1536                 isbinary = adds == 0 and removes == 0
  1538                 isbinary = adds == 0 and removes == 0
  1537                 yield (filename, adds, removes, isbinary)
  1539                 yield (filename, adds, removes, isbinary)
  1538             # set numbers to 0 anyway when starting new file
  1540             # set numbers to 0 anyway when starting new file
  1539             adds, removes = 0, 0
  1541             adds, removes = 0, 0
  1540             if line.startswith('diff --git'):
  1542             if line.startswith('diff --git'):
  1541                 filename = gitre.search(line).group(1)
  1543                 filename = gitre.search(line).group(1)
  1542             else:
  1544             elif line.startswith('diff -r'):
  1543                 # format: "diff -r ... -r ... filename"
  1545                 # format: "diff -r ... -r ... filename"
  1544                 filename = line.split(None, 5)[-1]
  1546                 filename = diffre.search(line).group(1)
  1545         elif line.startswith('+') and not line.startswith('+++'):
  1547         elif line.startswith('+') and not line.startswith('+++'):
  1546             adds += 1
  1548             adds += 1
  1547         elif line.startswith('-') and not line.startswith('---'):
  1549         elif line.startswith('-') and not line.startswith('---'):
  1548             removes += 1
  1550             removes += 1
  1549     if filename:
  1551     if filename: