diff --git a/src/pygit2/tree.c b/src/pygit2/tree.c index 76cefcb..0127c08 100644 --- a/src/pygit2/tree.c +++ b/src/pygit2/tree.c @@ -274,7 +274,7 @@ Tree_diff_tree(Tree *self, PyObject *args) Diff *py_diff; PyObject *py_obj = NULL; - if (!PyArg_ParseTuple(args, "|O", &py_obj)) + if (!PyArg_ParseTuple(args, "|Oi", &py_obj, &opts.flags)) return NULL; if (py_obj == NULL) { diff --git a/test/data/testrepo.git/objects/18/e2d2e9db075f9eb43bcb2daa65a2867d29a15e b/test/data/testrepo.git/objects/18/e2d2e9db075f9eb43bcb2daa65a2867d29a15e new file mode 100644 index 0000000..4e796d7 Binary files /dev/null and b/test/data/testrepo.git/objects/18/e2d2e9db075f9eb43bcb2daa65a2867d29a15e differ diff --git a/test/data/testrepo.git/objects/77/88019febe4f40259a64c529a9aed561e64ddbd b/test/data/testrepo.git/objects/77/88019febe4f40259a64c529a9aed561e64ddbd new file mode 100644 index 0000000..189c2d5 Binary files /dev/null and b/test/data/testrepo.git/objects/77/88019febe4f40259a64c529a9aed561e64ddbd differ diff --git a/test/data/testrepo.git/objects/cc/ca47fbb26183e71a7a46d165299b84e2e6c0b3 b/test/data/testrepo.git/objects/cc/ca47fbb26183e71a7a46d165299b84e2e6c0b3 new file mode 100644 index 0000000..bed3d1e --- /dev/null +++ b/test/data/testrepo.git/objects/cc/ca47fbb26183e71a7a46d165299b84e2e6c0b3 @@ -0,0 +1,2 @@ +x��[j�0D��U��B�#�%(%[���[ +�����Iwп�9�ҷ��>�� a�"I֓���咭0�6�Ilb㡮��b��.��}�Iވ�9�ss0|Y��X�N��[}<�V���z��|m\�S��'�M�:M��Z�qr���bb�/u���\@<h, 4�>��Z��mS� \ No newline at end of file diff --git a/test/data/testrepo.git/refs/heads/master b/test/data/testrepo.git/refs/heads/master index e863952..101232d 100644 --- a/test/data/testrepo.git/refs/heads/master +++ b/test/data/testrepo.git/refs/heads/master @@ -1 +1 @@ -2cdae28389c059815e951d0bb9eed6533f61a46b +ccca47fbb26183e71a7a46d165299b84e2e6c0b3 diff --git a/test/test_diff.py b/test/test_diff.py index 5f61b09..0aaa8b9 100644 --- a/test/test_diff.py +++ b/test/test_diff.py @@ -30,13 +30,14 @@ from __future__ import absolute_import from __future__ import unicode_literals import unittest - +import pygit2 from . import utils COMMIT_SHA1_1 = '5fe808e8953c12735680c257f56600cb0de44b10' COMMIT_SHA1_2 = 'c2792cfa289ae6321ecf2cd5806c2194b0fd070c' COMMIT_SHA1_3 = '2cdae28389c059815e951d0bb9eed6533f61a46b' +COMMIT_SHA1_4 = 'ccca47fbb26183e71a7a46d165299b84e2e6c0b3' PATCH = b"""diff --git a/a b/a index 7f129fd..af431f2 100644 @@ -133,6 +134,20 @@ class DiffTest(utils.BareRepoTestCase): #self.assertEqual(hunk.data[0][0], b'a contents 2\n') #self.assertEqual(hunk.data[1][0], b'a contents\n') + def test_diff_tree_opts(self): + commit_c = self.repo[COMMIT_SHA1_3] + commit_d = self.repo[COMMIT_SHA1_4] + + for opt in [pygit2.GIT_DIFF_IGNORE_WHITESPACE, + pygit2.GIT_DIFF_IGNORE_WHITESPACE_EOL]: + diff = commit_c.tree.diff(commit_d.tree, pygit2.GIT_DIFF_IGNORE_WHITESPACE) + self.assertTrue(diff is not None) + self.assertEqual(0, len(diff.changes.get('hunks', list()))) + + diff = commit_c.tree.diff(commit_d.tree) + self.assertTrue(diff is not None) + self.assertEqual(1, len(diff.changes.get('hunks', list()))) + def test_diff_merge(self): commit_a = self.repo[COMMIT_SHA1_1] commit_b = self.repo[COMMIT_SHA1_2] diff --git a/test/test_repository.py b/test/test_repository.py index fa3a932..5f38322 100644 --- a/test/test_repository.py +++ b/test/test_repository.py @@ -39,8 +39,8 @@ from pygit2 import GIT_OBJ_ANY, GIT_OBJ_BLOB, GIT_OBJ_COMMIT, init_repository, \ from . import utils -HEAD_SHA = '2cdae28389c059815e951d0bb9eed6533f61a46b' -PARENT_SHA = '5fe808e8953c12735680c257f56600cb0de44b10' # HEAD^ +HEAD_SHA = 'ccca47fbb26183e71a7a46d165299b84e2e6c0b3' +PARENT_SHA = '2cdae28389c059815e951d0bb9eed6533f61a46b' # HEAD^ A_HEX_SHA = 'af431f20fc541ed6d5afede3e2dc7160f6f01f16' A_BIN_SHA = binascii.unhexlify(A_HEX_SHA.encode('ascii'))