2727if TYPE_CHECKING :
2828 from git .repo import Repo
2929 from git .refs import Head , TagReference , Reference
30+ from .log import RefLogEntry
31+ from git .config import GitConfigParser
32+ from git .objects .commit import Actor
33+
3034
3135T_References = TypeVar ('T_References' , bound = 'SymbolicReference' )
3236
@@ -391,7 +395,8 @@ def log(self):
391395 instead of calling this method repeatedly. It should be considered read-only."""
392396 return RefLog .from_file (RefLog .path (self ))
393397
394- def log_append (self , oldbinsha , message , newbinsha = None ):
398+ def log_append (self , oldbinsha : bytes , message : Union [str , None ],
399+ newbinsha : Union [bytes , None ] = None ) -> 'RefLogEntry' :
395400 """Append a logentry to the logfile of this ref
396401
397402 :param oldbinsha: binary sha this ref used to point to
@@ -403,15 +408,19 @@ def log_append(self, oldbinsha, message, newbinsha=None):
403408 # correct to allow overriding the committer on a per-commit level.
404409 # See https://github.com/gitpython-developers/GitPython/pull/146
405410 try :
406- committer_or_reader = self .commit .committer
411+ committer_or_reader : Union [ 'Actor' , 'GitConfigParser' ] = self .commit .committer
407412 except ValueError :
408413 committer_or_reader = self .repo .config_reader ()
409414 # end handle newly cloned repositories
410- return RefLog .append_entry (committer_or_reader , RefLog .path (self ), oldbinsha ,
411- (newbinsha is None and self .commit .binsha ) or newbinsha ,
412- message )
415+ if newbinsha is None :
416+ newbinsha = self .commit .binsha
417+
418+ if message is None :
419+ message = ''
420+
421+ return RefLog .append_entry (committer_or_reader , RefLog .path (self ), oldbinsha , newbinsha , message )
413422
414- def log_entry (self , index ) :
423+ def log_entry (self , index : int ) -> 'RefLogEntry' :
415424 """:return: RefLogEntry at the given index
416425 :param index: python list compatible positive or negative index
417426
0 commit comments