Skip to content

Commit 862198e

Browse files
Allow setting a custom refdb on repository instances.
1 parent 952fbcf commit 862198e

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

ext/rugged/rugged.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@
4141
#include <git2.h>
4242
#include <git2/odb_backend.h>
4343
#include <git2/sys/refdb_backend.h>
44+
#include <git2/sys/refs.h>
45+
#include <git2/sys/repository.h>
4446
#include <git2/sys/odb_backend.h>
4547

4648
#define rb_str_new_utf8(str) rb_enc_str_new(str, strlen(str), rb_utf8_encoding())

ext/rugged/rugged_repo.c

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2464,6 +2464,19 @@ static VALUE rb_git_repo_cherrypick(int argc, VALUE *argv, VALUE self)
24642464
return Qnil;
24652465
}
24662466

2467+
static VALUE rb_git_repository_set_refdb(VALUE self, VALUE rb_refdb)
2468+
{
2469+
git_repository *repo;
2470+
git_refdb *refdb;
2471+
2472+
Data_Get_Struct(self, git_repository, repo);
2473+
Data_Get_Struct(rb_refdb, git_refdb, refdb);
2474+
2475+
git_repository_set_refdb(repo, refdb);
2476+
2477+
return rb_refdb;
2478+
}
2479+
24672480
void Init_rugged_repo(void)
24682481
{
24692482
id_call = rb_intern("call");
@@ -2499,6 +2512,7 @@ void Init_rugged_repo(void)
24992512
rb_define_method(rb_cRuggedRepo, "index=", rb_git_repo_set_index, 1);
25002513
rb_define_method(rb_cRuggedRepo, "config", rb_git_repo_get_config, 0);
25012514
rb_define_method(rb_cRuggedRepo, "config=", rb_git_repo_set_config, 1);
2515+
rb_define_method(rb_cRuggedRepo, "refdb=", rb_git_repository_set_refdb, 1);
25022516

25032517
rb_define_method(rb_cRuggedRepo, "ident", rb_git_repo_get_ident, 0);
25042518
rb_define_method(rb_cRuggedRepo, "ident=", rb_git_repo_set_ident, 1);

0 commit comments

Comments
 (0)