summaryrefslogtreecommitdiff
path: root/src/commit.c
diff options
context:
space:
mode:
authorRussell Belfer <rb@github.com>2014-04-22 12:33:27 -0700
committerRussell Belfer <rb@github.com>2014-04-22 12:33:27 -0700
commit8d09efa24ee01e9e4b14672978bfd1bb1ca2436a (patch)
treed68210d412062a84d73a60ddb01a7a2501af0b29 /src/commit.c
parent12e422a0562de2aebb05f5f414dbcde7caf85886 (diff)
downloadlibgit2-8d09efa24ee01e9e4b14672978bfd1bb1ca2436a.tar.gz
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.
Diffstat (limited to 'src/commit.c')
0 files changed, 0 insertions, 0 deletions