Tools: add 'diff' and 'email' attrs to git_log utility module
Expose email email & diff as they're generally useful when inspecting commits.
This commit is contained in:
@@ -16,10 +16,12 @@ class GitCommit:
|
||||
|
||||
# cached values
|
||||
"_author",
|
||||
"_email",
|
||||
"_date",
|
||||
"_body",
|
||||
"_files",
|
||||
"_files_status",
|
||||
"_diff",
|
||||
)
|
||||
|
||||
def __init__(self, sha1, git_dir):
|
||||
@@ -27,16 +29,21 @@ class GitCommit:
|
||||
self._git_dir = git_dir
|
||||
|
||||
self._author = \
|
||||
self._email = \
|
||||
self._date = \
|
||||
self._body = \
|
||||
self._files = \
|
||||
self._files_status = \
|
||||
self._diff = \
|
||||
None
|
||||
|
||||
def cache(self):
|
||||
""" Cache all properties
|
||||
"""
|
||||
Cache all properties
|
||||
(except for diff as it's significantly larger than other members).
|
||||
"""
|
||||
self.author
|
||||
self.email
|
||||
self.date
|
||||
self.body
|
||||
self.files
|
||||
@@ -86,6 +93,15 @@ class GitCommit:
|
||||
self._author = ret
|
||||
return ret
|
||||
|
||||
@property
|
||||
def email(self):
|
||||
ret = self._email
|
||||
if ret is None:
|
||||
content = self._log_format("%ae")[:-1]
|
||||
ret = content.decode("utf8", errors="ignore")
|
||||
self._email = ret
|
||||
return ret
|
||||
|
||||
@property
|
||||
def date(self):
|
||||
ret = self._date
|
||||
@@ -124,6 +140,15 @@ class GitCommit:
|
||||
self._files_status = ret
|
||||
return ret
|
||||
|
||||
@property
|
||||
def diff(self):
|
||||
ret = self._diff
|
||||
if ret is None:
|
||||
content = self._log_format("", args=("-p",))
|
||||
ret = content.decode("utf8", errors="ignore")
|
||||
self._diff = ret
|
||||
return ret
|
||||
|
||||
|
||||
class GitCommitIter:
|
||||
__slots__ = (
|
||||
|
||||
Reference in New Issue
Block a user