void test_odb_backend_nobackend__initialize(void) { git_config *config; git_odb *odb; git_refdb *refdb; cl_git_pass(git_repository_new(&_repo)); cl_git_pass(git_config_new(&config)); cl_git_pass(git_odb_new(&odb)); cl_git_pass(git_refdb_new(&refdb, _repo)); git_repository_set_config(_repo, config); git_repository_set_odb(_repo, odb); git_repository_set_refdb(_repo, refdb); /* The set increases the refcount and we don't want them anymore */ git_config_free(config); git_odb_free(odb); git_refdb_free(refdb); }
int git_refdb_open(git_refdb **out, git_repository *repo) { git_refdb *db; git_refdb_backend *dir; assert(out && repo); *out = NULL; if (git_refdb_new(&db, repo) < 0) return -1; /* Add the default (filesystem) backend */ if (git_refdb_backend_fs(&dir, repo) < 0) { git_refdb_free(db); return -1; } db->repo = repo; db->backend = dir; *out = db; return 0; }