Method: Rugged::Reference#target
- Defined in:
- ext/rugged/rugged_reference.c
#target_id ⇒ Object #target_id ⇒ Object
Return the target of reference.
If reference is a symbolic reference, it returns the target reference object.
If reference is a direct reference, it returns the target object.
ref1.type #=> :symbolic
ref1.target #=> #<Rugged::Reference ...>
ref2.type #=> :direct
ref2.target #=> #<Rugged::Commit ...>
113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 |
# File 'ext/rugged/rugged_reference.c', line 113
static VALUE rb_git_ref_target(VALUE self)
{
git_reference *ref;
Data_Get_Struct(self, git_reference, ref);
if (git_reference_type(ref) == GIT_REF_OID) {
git_object *target;
rugged_exception_check(
git_object_lookup(&target, git_reference_owner(ref), git_reference_target(ref), GIT_OBJ_ANY)
);
return rugged_object_new(rugged_owner(self), target);
} else {
git_reference *target;
rugged_exception_check(
git_reference_lookup(&target, git_reference_owner(ref), git_reference_symbolic_target(ref))
);
return rugged_ref_new(rb_cRuggedReference, rugged_owner(self), target);
}
}
|