@@ -282,6 +282,7 @@ def set_object(self, object: Union[Commit_ish, 'SymbolicReference'],
282
282
283
283
commit = cast ('Commit' ,property (_get_commit ,set_commit ,doc = "Query or set commits directly" ))
284
284
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")
285
286
286
287
def _get_reference (self
287
288
)-> Union ['Head' ,'RemoteReference' ,'TagReference' ,'Reference' ]:
@@ -363,21 +364,30 @@ def set_reference(self, ref: Union[str, Commit_ish, 'SymbolicReference'], logmsg
363
364
364
365
return self
365
366
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
369
369
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
+
381
391
@property
382
392
def is_detached (self ):
383
393
"""
@@ -389,7 +399,6 @@ def is_detached(self):
389
399
return False
390
400
except TypeError :
391
401
return True
392
- """
393
402
394
403
def log (self )-> 'RefLog' :
395
404
"""