From 802976535ac0690a2888f66a1fbd83ebb2a34818 Mon Sep 17 00:00:00 2001 From: Guille -bisho- Date: Wed, 23 Sep 2015 16:30:19 -0700 Subject: [PATCH] Add support for GIT_DIFF_SHOW_BINARY Adding the binary diff flag GIT_DIFF_SHOW_BINARY to pygit2. libgit2 0.23.0 already supports this constant to be used in diff flags and produces properly formated binary diffs. --- src/pygit2.c | 1 + test/data/binaryfilerepo.tar | Bin 0 -> 92160 bytes test/test_diff.py | 26 ++++++++++++++++++++++++++ test/utils.py | 6 ++++++ 4 files changed, 33 insertions(+) create mode 100644 test/data/binaryfilerepo.tar diff --git a/src/pygit2.c b/src/pygit2.c index 12d365f..cf613ae 100644 --- a/src/pygit2.c +++ b/src/pygit2.c @@ -323,6 +323,7 @@ moduleinit(PyObject* m) ADD_CONSTANT_INT(m, GIT_DIFF_IGNORE_CASE) ADD_CONSTANT_INT(m, GIT_DIFF_SHOW_UNTRACKED_CONTENT) ADD_CONSTANT_INT(m, GIT_DIFF_SKIP_BINARY_CHECK) + ADD_CONSTANT_INT(m, GIT_DIFF_SHOW_BINARY) ADD_CONSTANT_INT(m, GIT_DIFF_INCLUDE_TYPECHANGE) ADD_CONSTANT_INT(m, GIT_DIFF_INCLUDE_TYPECHANGE_TREES) ADD_CONSTANT_INT(m, GIT_DIFF_RECURSE_IGNORED_DIRS) diff --git a/test/data/binaryfilerepo.tar b/test/data/binaryfilerepo.tar new file mode 100644 index 0000000000000000000000000000000000000000..c00fc93a0b0e110344d6d9d831a6a0206976cbc2 GIT binary patch literal 92160 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