mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-04 08:32:03 +00:00
Deploy GIT_REPOSITORY_INIT_OPTIONS_INIT
This commit is contained in:
parent
9267ff586f
commit
b4d136527c
@ -1151,9 +1151,8 @@ static int repo_init_create_origin(git_repository *repo, const char *url)
|
|||||||
int git_repository_init(
|
int git_repository_init(
|
||||||
git_repository **repo_out, const char *path, unsigned is_bare)
|
git_repository **repo_out, const char *path, unsigned is_bare)
|
||||||
{
|
{
|
||||||
git_repository_init_options opts;
|
git_repository_init_options opts = GIT_REPOSITORY_INIT_OPTIONS_INIT;
|
||||||
|
|
||||||
memset(&opts, 0, sizeof(opts));
|
|
||||||
opts.flags = GIT_REPOSITORY_INIT_MKPATH; /* don't love this default */
|
opts.flags = GIT_REPOSITORY_INIT_MKPATH; /* don't love this default */
|
||||||
if (is_bare)
|
if (is_bare)
|
||||||
opts.flags |= GIT_REPOSITORY_INIT_BARE;
|
opts.flags |= GIT_REPOSITORY_INIT_BARE;
|
||||||
@ -1161,6 +1160,18 @@ int git_repository_init(
|
|||||||
return git_repository_init_ext(repo_out, path, &opts);
|
return git_repository_init_ext(repo_out, path, &opts);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool options_have_valid_version(git_repository_init_options *opts)
|
||||||
|
{
|
||||||
|
if (!opts)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
if (opts->version > 0 && opts->version <= GIT_REMOTE_CALLBACKS_VERSION)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
giterr_set(GITERR_INVALID, "Invalid version %d for git_repository_init_options", opts->version);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
int git_repository_init_ext(
|
int git_repository_init_ext(
|
||||||
git_repository **out,
|
git_repository **out,
|
||||||
const char *given_repo,
|
const char *given_repo,
|
||||||
@ -1171,6 +1182,9 @@ int git_repository_init_ext(
|
|||||||
|
|
||||||
assert(out && given_repo && opts);
|
assert(out && given_repo && opts);
|
||||||
|
|
||||||
|
if (!options_have_valid_version(opts))
|
||||||
|
return -1;
|
||||||
|
|
||||||
error = repo_init_directories(&repo_path, &wd_path, given_repo, opts);
|
error = repo_init_directories(&repo_path, &wd_path, given_repo, opts);
|
||||||
if (error < 0)
|
if (error < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
@ -205,7 +205,7 @@ int git_submodule_add_setup(
|
|||||||
git_config_backend *mods = NULL;
|
git_config_backend *mods = NULL;
|
||||||
git_submodule *sm;
|
git_submodule *sm;
|
||||||
git_buf name = GIT_BUF_INIT, real_url = GIT_BUF_INIT;
|
git_buf name = GIT_BUF_INIT, real_url = GIT_BUF_INIT;
|
||||||
git_repository_init_options initopt;
|
git_repository_init_options initopt = GIT_REPOSITORY_INIT_OPTIONS_INIT;
|
||||||
git_repository *subrepo = NULL;
|
git_repository *subrepo = NULL;
|
||||||
|
|
||||||
assert(repo && url && path);
|
assert(repo && url && path);
|
||||||
@ -275,7 +275,6 @@ int git_submodule_add_setup(
|
|||||||
* Old style: sub-repo goes directly into repo/<name>/.git/
|
* Old style: sub-repo goes directly into repo/<name>/.git/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
memset(&initopt, 0, sizeof(initopt));
|
|
||||||
initopt.flags = GIT_REPOSITORY_INIT_MKPATH |
|
initopt.flags = GIT_REPOSITORY_INIT_MKPATH |
|
||||||
GIT_REPOSITORY_INIT_NO_REINIT;
|
GIT_REPOSITORY_INIT_NO_REINIT;
|
||||||
initopt.origin_url = real_url.ptr;
|
initopt.origin_url = real_url.ptr;
|
||||||
|
@ -304,8 +304,7 @@ void test_repo_init__sets_logAllRefUpdates_according_to_type_of_repository(void)
|
|||||||
|
|
||||||
void test_repo_init__extended_0(void)
|
void test_repo_init__extended_0(void)
|
||||||
{
|
{
|
||||||
git_repository_init_options opts;
|
git_repository_init_options opts = GIT_REPOSITORY_INIT_OPTIONS_INIT;
|
||||||
memset(&opts, 0, sizeof(opts));
|
|
||||||
|
|
||||||
/* without MKDIR this should fail */
|
/* without MKDIR this should fail */
|
||||||
cl_git_fail(git_repository_init_ext(&_repo, "extended", &opts));
|
cl_git_fail(git_repository_init_ext(&_repo, "extended", &opts));
|
||||||
@ -327,8 +326,7 @@ void test_repo_init__extended_1(void)
|
|||||||
git_reference *ref;
|
git_reference *ref;
|
||||||
git_remote *remote;
|
git_remote *remote;
|
||||||
struct stat st;
|
struct stat st;
|
||||||
git_repository_init_options opts;
|
git_repository_init_options opts = GIT_REPOSITORY_INIT_OPTIONS_INIT;
|
||||||
memset(&opts, 0, sizeof(opts));
|
|
||||||
|
|
||||||
opts.flags = GIT_REPOSITORY_INIT_MKPATH |
|
opts.flags = GIT_REPOSITORY_INIT_MKPATH |
|
||||||
GIT_REPOSITORY_INIT_NO_DOTGIT_DIR;
|
GIT_REPOSITORY_INIT_NO_DOTGIT_DIR;
|
||||||
@ -367,8 +365,7 @@ void test_repo_init__extended_1(void)
|
|||||||
|
|
||||||
void test_repo_init__extended_with_template(void)
|
void test_repo_init__extended_with_template(void)
|
||||||
{
|
{
|
||||||
git_repository_init_options opts;
|
git_repository_init_options opts = GIT_REPOSITORY_INIT_OPTIONS_INIT;
|
||||||
memset(&opts, 0, sizeof(opts));
|
|
||||||
|
|
||||||
opts.flags = GIT_REPOSITORY_INIT_MKPATH | GIT_REPOSITORY_INIT_BARE;
|
opts.flags = GIT_REPOSITORY_INIT_MKPATH | GIT_REPOSITORY_INIT_BARE;
|
||||||
opts.template_path = cl_fixture("template");
|
opts.template_path = cl_fixture("template");
|
||||||
|
Loading…
Reference in New Issue
Block a user