summaryrefslogtreecommitdiff
path: root/git/test/test_diff.py
diff options
context:
space:
mode:
authorVincent Driessen <me@nvie.com>2016-04-12 15:55:01 +0200
committerVincent Driessen <me@nvie.com>2016-04-14 12:39:37 +0200
commit5de21c7fa2bdd5cd50c4f62ba848af54589167d0 (patch)
treec0bd1badbffa52299162d9318fd9583eeead574a /git/test/test_diff.py
parent83156b950bb76042198950f2339cb940f1170ee2 (diff)
downloadgitpython-5de21c7fa2bdd5cd50c4f62ba848af54589167d0.tar.gz
Support "root" as a special value in .diff() calls
This enabled getting diff patches for root commits.
Diffstat (limited to 'git/test/test_diff.py')
-rw-r--r--git/test/test_diff.py17
1 files changed, 16 insertions, 1 deletions
diff --git a/git/test/test_diff.py b/git/test/test_diff.py
index b0d98248..136e6fd9 100644
--- a/git/test/test_diff.py
+++ b/git/test/test_diff.py
@@ -128,6 +128,21 @@ class TestDiff(TestBase):
assert res[0].deleted_file
assert res[0].b_path == ''
+ def test_diff_initial_commit(self):
+ initial_commit = self.rorepo.commit('33ebe7acec14b25c5f84f35a664803fcab2f7781')
+
+ # Without creating a patch...
+ diff_index = initial_commit.diff('root')
+ assert diff_index[0].b_path == 'CHANGES'
+ assert diff_index[0].new_file
+ assert diff_index[0].diff == ''
+
+ # ...and with creating a patch
+ diff_index = initial_commit.diff('root', create_patch=True)
+ assert diff_index[0].b_path == 'CHANGES'
+ assert diff_index[0].new_file
+ assert diff_index[0].diff == fixture('diff_initial')
+
def test_diff_patch_format(self):
# test all of the 'old' format diffs for completness - it should at least
# be able to deal with it
@@ -149,7 +164,7 @@ class TestDiff(TestBase):
diff_item = commit.tree
# END use tree every second item
- for other in (None, commit.Index, commit.parents[0]):
+ for other in (None, 'root', commit.Index, commit.parents[0]):
for paths in (None, "CHANGES", ("CHANGES", "lib")):
for create_patch in range(2):
diff_index = diff_item.diff(other=other, paths=paths, create_patch=create_patch)