Method: Rugged::Reference#resolve

Defined in:
ext/rugged/rugged_reference.c

#resolveObject

Peel a symbolic reference to its target reference.

r1.type #=> :symbolic
r1.name #=> 'HEAD'
r1.target #=> 'refs/heads/master'

r2 = r1.resolve #=> #<Rugged::Reference:0x401b3948>
r2.target #=> '9d09060c850defbc7711d08b57def0d14e742f4e'


238
239
240
241
242
243
244
245
246
247
248
249
250
# File 'ext/rugged/rugged_reference.c', line 238

static VALUE rb_git_ref_resolve(VALUE self)
{
  git_reference *ref;
  git_reference *resolved;
  int error;

  Data_Get_Struct(self, git_reference, ref);

  error = git_reference_resolve(&resolved, ref);
  rugged_exception_check(error);

  return rugged_ref_new(rb_cRuggedReference, rugged_owner(self), resolved);
}