libgit2/examples
Russell Belfer 8d09efa24e 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.
2014-04-22 12:33:27 -07:00
..
network remote: rename inmemory to anonymous and swap url and fetch order 2014-04-01 13:38:04 +02:00
test Update files that reference tests-clar 2013-11-14 14:10:32 -08:00
.gitignore Add tag example 2014-03-05 20:31:15 +01:00
add.c - BUGFIX #2133 (@fourplusone) in smart_protocol.c 2014-02-25 11:56:11 +01:00
blame.c Merge remote-tracking branch 'remotes/upstream/development' into development 2014-03-03 11:40:22 +01:00
cat-file.c - BUGFIX #2133 (@fourplusone) in smart_protocol.c 2014-02-25 11:56:11 +01:00
CMakeLists.txt - examples CMakeLists.txt reverted to previous state 2014-03-03 14:59:50 +01:00
common.c - BUGFIX #2133 (@fourplusone) in smart_protocol.c 2014-02-25 11:56:11 +01:00
common.h Replace copyright topmatter in example files 2013-11-02 05:33:26 -07:00
COPYING Relicense examples under CC0 2013-11-01 10:51:12 -07:00
diff.c Use git_diff_get_stats in example/diff + refactor 2014-04-22 12:33:27 -07:00
general.c - general.c reverted to original( before pr state ) 2014-03-03 11:42:25 +01:00
init.c Replace copyright topmatter in example files 2013-11-02 05:33:26 -07:00
log.c Replace copyright topmatter in example files 2013-11-02 05:33:26 -07:00
Makefile Add tag example 2014-03-05 20:31:15 +01:00
README.md Relicense examples under CC0 2013-11-01 10:51:12 -07:00
rev-list.c Replace copyright topmatter in example files 2013-11-02 05:33:26 -07:00
rev-parse.c Replace copyright topmatter in example files 2013-11-02 05:33:26 -07:00
showindex.c index: rename an entry's id to 'id' 2014-01-25 08:15:44 +01:00
status.c Add some funny options for debugging status 2014-04-01 09:45:20 -07:00
tag.c examples: Use git_object_short_id 2014-04-01 12:16:40 +02:00

libgit2 examples

These examples are a mixture of basic emulation of core Git command line functions and simple snippets demonstrating libgit2 API usage (for use with Docurium). As a whole, they are not vetted carefully for bugs, error handling, and cross-platform compatibility in the same manner as the rest of the code in libgit2, so copy with caution.

That being said, you are welcome to copy code from these examples as desired when using libgit2. They have been released to the public domain, so there are no restrictions on their use.

For annotated HTML versions, see the "Examples" section of:

http://libgit2.github.com/libgit2

such as:

http://libgit2.github.com/libgit2/ex/HEAD/general.html