@@ -563,6 +563,7 @@ def update(self, recursive: bool = False, init: bool = True, to_latest_revision:
563563progress .update (op ,i ,len_rmts ,prefix + "Done fetching remote of submodule %r" % self .name )
564564# END fetch new data
565565except InvalidGitRepositoryError :
566+ mrepo = None
566567if not init :
567568return self
568569# END early abort if init is not allowed
@@ -603,7 +604,7 @@ def update(self, recursive: bool = False, init: bool = True, to_latest_revision:
603604
604605# make sure HEAD is not detached
605606mrepo .head .set_reference (local_branch ,logmsg = "submodule: attaching head to %s" % local_branch )
606- mrepo .head .ref .set_tracking_branch (remote_branch )
607+ mrepo .head .reference .set_tracking_branch (remote_branch )
607608except (IndexError ,InvalidGitRepositoryError ):
608609log .warning ("Failed to checkout tracking branch %s" ,self .branch_path )
609610# END handle tracking branch
@@ -629,13 +630,14 @@ def update(self, recursive: bool = False, init: bool = True, to_latest_revision:
629630if mrepo is not None and to_latest_revision :
630631msg_base = "Cannot update to latest revision in repository at %r as " % mrepo .working_dir
631632if not is_detached :
632- rref = mrepo .head .ref .tracking_branch ()
633+ rref = mrepo .head .reference .tracking_branch ()
633634if rref is not None :
634635rcommit = rref .commit
635636binsha = rcommit .binsha
636637hexsha = rcommit .hexsha
637638else :
638- log .error ("%s a tracking branch was not set for local branch '%s'" ,msg_base ,mrepo .head .ref )
639+ log .error ("%s a tracking branch was not set for local branch '%s'" ,
640+ msg_base ,mrepo .head .reference )
639641# END handle remote ref
640642else :
641643log .error ("%s there was no local tracking branch" ,msg_base )