diff options
author | JJ Graham <thetwoj@gmail.com> | 2019-10-20 15:40:06 -0500 |
---|---|---|
committer | Sebastian Thiel <sebastian.thiel@icloud.com> | 2019-10-21 13:10:28 +0200 |
commit | b303cb0c5995bf9c74db34a8082cdf5258c250fe (patch) | |
tree | 4c5c0a42b1f45e10dd2737eb787a30f417410dec /git/diff.py | |
parent | 6fd090293792884f5a0d05f69109da1c970c3cab (diff) | |
download | gitpython-b303cb0c5995bf9c74db34a8082cdf5258c250fe.tar.gz |
Initial stab at fixing diffs involving submodule changes
Diffstat (limited to 'git/diff.py')
-rw-r--r-- | git/diff.py | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/git/diff.py b/git/diff.py index 0150d675..3dbe0866 100644 --- a/git/diff.py +++ b/git/diff.py @@ -278,6 +278,14 @@ class Diff(object): if self.b_mode: self.b_mode = mode_str_to_int(self.b_mode) + # Determine whether this diff references a submodule, if it does then + # we need to overwrite "repo" to the corresponding submodule's repo instead + if repo and a_rawpath: + for submodule in repo.submodules: + if submodule.path == a_rawpath.decode("utf-8"): + repo = submodule.module() + break + if a_blob_id is None or a_blob_id == self.NULL_HEX_SHA: self.a_blob = None else: |