From 9730564c735c7746c85614c42d0f10e40321261e Mon Sep 17 00:00:00 2001 From: Huang Huang <huanghuang@douban.com> Date: Wed, 30 Oct 2013 15:48:29 +0800 Subject: [PATCH] the number of deltas/patches in one diff --- src/diff.c | 7 +++++++ test/test_diff.py | 1 + 2 files changed, 8 insertions(+) diff --git a/src/diff.c b/src/diff.c index f46d4bd..0728d7d 100644 --- a/src/diff.c +++ b/src/diff.c @@ -249,6 +249,12 @@ PyTypeObject DiffIterType = { (iternextfunc) DiffIter_iternext, /* tp_iternext */ }; +PyDoc_STRVAR(Diff_size__doc__, "Returns the number of deltas/patches in this diff."); +PyObject * +Diff_size__get__(Diff *self) +{ + return PyLong_FromSize_t(git_diff_num_deltas(self->list)); +} PyDoc_STRVAR(Diff_patch__doc__, "Patch diff string."); @@ -440,6 +446,7 @@ Diff_dealloc(Diff *self) PyGetSetDef Diff_getseters[] = { GETTER(Diff, patch), + GETTER(Diff, size), {NULL} }; diff --git a/test/test_diff.py b/test/test_diff.py index 697b8be..a2564c0 100644 --- a/test/test_diff.py +++ b/test/test_diff.py @@ -254,6 +254,7 @@ class DiffTest(utils.BareRepoTestCase): diff = commit_a.tree.diff_to_tree(commit_b.tree) self.assertEqual(diff.patch, PATCH) + self.assertEqual(diff.size, len([patch for patch in diff])) def test_diff_oids(self): commit_a = self.repo[COMMIT_SHA1_1]