@@ -282,6 +282,7 @@ def set_object(self, object: Union[Commit_ish, 'SymbolicReference'],
282282
283283 commit = cast ('Commit' , property (_get_commit , set_commit , doc = "Query or set commits directly" ))
284284 object = property (_get_object , set_object , doc = "Return the object our ref currently refers to" ) # type: ignore
285+ # reference = property(_get_reference, set_reference, doc="Return the object our ref currently refers to")
285286
286287 def _get_reference (self
287288 ) -> Union ['Head' , 'RemoteReference' , 'TagReference' , 'Reference' ]:
@@ -363,21 +364,30 @@ def set_reference(self, ref: Union[str, Commit_ish, 'SymbolicReference'], logmsg
363364
364365 return self
365366
366- reference : Union ['Head' , 'RemoteReference' , 'TagReference' , 'Reference' ] = property ( # type: ignore
367- _get_reference , set_reference ,
368- doc = "Reference Object we point to" )
367+ reference : Union ['Head' , 'RemoteReference' , 'TagReference' , 'Reference' ]
368+ reference = property (_get_reference , set_reference , doc = "Reference Object we point to" ) # type: ignore
369369 ref = reference
370-
371- """
372- @ property
373- def reference(self) -> Union['Head', 'RemoteReference', 'TagReference', 'Reference']:
374- return self._get_reference()
375-
376- @ reference.setter
377- def reference(self, ref: Union[str, Commit_ish, 'SymbolicReference'], logmsg: Union[str, None] = None
378- ) -> 'SymbolicReference':
379- return self.set_reference(ref=ref, logmsg=logmsg)
380-
370+ # @ property
371+ # def reference(self) -> Union['Head', 'RemoteReference', 'TagReference', 'Reference']:
372+ # return self._get_reference()
373+
374+ # @ reference.setter
375+ # def reference(self, ref: Union[str, Commit_ish, 'SymbolicReference'], logmsg: Union[str, None] = None
376+ # ) -> 'SymbolicReference':
377+ # return self.set_reference(ref=ref, logmsg=logmsg)
378+
379+ def is_valid (self ) -> bool :
380+ """
381+ :return:
382+ True if the reference is valid, hence it can be read and points to
383+ a valid object or reference."""
384+ try :
385+ self .object
386+ except (OSError , ValueError ):
387+ return False
388+ else :
389+ return True
390+
381391 @ property
382392 def is_detached (self ):
383393 """
@@ -389,7 +399,6 @@ def is_detached(self):
389399 return False
390400 except TypeError :
391401 return True
392- """
393402
394403 def log (self ) -> 'RefLog' :
395404 """
0 commit comments