@@ -282,6 +282,7 @@ def set_object(self, object: Union[Commit_ish, 'SymbolicReference'],
282282
283283commit = cast ('Commit' ,property (_get_commit ,set_commit ,doc = "Query or set commits directly" ))
284284object = 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
286287def _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
364365return 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
369369ref = 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
382392def is_detached (self ):
383393"""
@@ -389,7 +399,6 @@ def is_detached(self):
389399return False
390400except TypeError :
391401return True
392- """
393402
394403def log (self )-> 'RefLog' :
395404"""