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]