@@ -77,7 +77,6 @@ def to_progress_instance(progress):
7777
7878
7979class PushInfo (object ):
80-
8180"""
8281 Carries information about the result of a push operation of a single head::
8382
@@ -92,7 +91,7 @@ class PushInfo(object):
9291 # it to local_ref.commit. Will be None if an error was indicated
9392 info.summary # summary line providing human readable english text about the push
9493 """
95- __slots__ = ('local_ref' ,'remote_ref_string' ,'flags' ,'old_commit ' ,'_remote' ,'summary' )
94+ __slots__ = ('local_ref' ,'remote_ref_string' ,'flags' ,'_old_commit_sha ' ,'_remote' ,'summary' )
9695
9796NEW_TAG ,NEW_HEAD ,NO_MATCH ,REJECTED ,REMOTE_REJECTED ,REMOTE_FAILURE ,DELETED , \
9897FORCED_UPDATE ,FAST_FORWARD ,UP_TO_DATE ,ERROR = [1 << x for x in range (11 )]
@@ -112,8 +111,12 @@ def __init__(self, flags, local_ref, remote_ref_string, remote, old_commit=None,
112111self .local_ref = local_ref
113112self .remote_ref_string = remote_ref_string
114113self ._remote = remote
115- self .old_commit = old_commit
114+ self ._old_commit_sha = old_commit
116115self .summary = summary
116+
117+ @property
118+ def old_commit (self ):
119+ return self ._old_commit_sha and self ._remote .repo .commit (self ._old_commit_sha )or None
117120
118121@property
119122def remote_ref (self ):
@@ -176,7 +179,7 @@ def _from_line(cls, remote, line):
176179split_token = ".."
177180old_sha ,new_sha = summary .split (' ' )[0 ].split (split_token )
178181# have to use constructor here as the sha usually is abbreviated
179- old_commit = remote . repo . commit ( old_sha )
182+ old_commit = old_sha
180183# END message handling
181184
182185return PushInfo (flags ,from_ref ,to_ref_string ,remote ,old_commit ,summary )