• Show log

    Commit

  • Hash : 8d09efa2
    Author : Russell Belfer
    Date : 2014-04-22T12:33:27

    Use git_diff_get_stats in example/diff + refactor
    
    This takes the `--stat` and related example options in the example
    diff.c program and converts them to use the `git_diff_get_stats`
    API which nicely formats stats for you.
    
    I went to add bar-graph scaling to the stats formatter and noticed
    that the `git_diff_stats` structure was holding on to all of the
    `git_patch` objects.  Unfortunately, each of these objects keeps
    the full text of the diff in memory, so this is very expensive.  I
    ended up modifying `git_diff_stats` to keep just the data that it
    needs to keep and allowed it to release the patches.  Then, I added
    width scaling to the output on top of that.
    
    In making the diff example program match 'git diff' output, I ended
    up removing an newline from the sumamry output which I then had to
    compensate for in the email formatting to match the expectations.
    
    Lastly, I went through and refactored the tests to use a couple of
    helper functions and reduce the overall amount of code there.