mirror of
https://github.com/git/git.git
synced 2026-01-09 17:46:37 +00:00
Merge branch 'ps/refstorage-extension'
Introduce a new extension "refstorage" so that we can mark a repository that uses a non-default ref backend, like reftable. * ps/refstorage-extension: t9500: write "extensions.refstorage" into config builtin/clone: introduce `--ref-format=` value flag builtin/init: introduce `--ref-format=` value flag builtin/rev-parse: introduce `--show-ref-format` flag t: introduce GIT_TEST_DEFAULT_REF_FORMAT envvar setup: introduce GIT_DEFAULT_REF_FORMAT envvar setup: introduce "extensions.refStorage" extension setup: set repository's formats on init setup: start tracking ref storage format refs: refactor logic to look up storage backends worktree: skip reading HEAD when repairing worktrees t: introduce DEFAULT_REPO_FORMAT prereq
This commit is contained in:
@@ -10,6 +10,8 @@
|
||||
#include "object-file.h"
|
||||
#include "parse-options.h"
|
||||
#include "path.h"
|
||||
#include "refs.h"
|
||||
#include "repository.h"
|
||||
#include "setup.h"
|
||||
#include "strbuf.h"
|
||||
|
||||
@@ -56,6 +58,7 @@ static int shared_callback(const struct option *opt, const char *arg, int unset)
|
||||
static const char *const init_db_usage[] = {
|
||||
N_("git init [-q | --quiet] [--bare] [--template=<template-directory>]\n"
|
||||
" [--separate-git-dir <git-dir>] [--object-format=<format>]\n"
|
||||
" [--ref-format=<format>]\n"
|
||||
" [-b <branch-name> | --initial-branch=<branch-name>]\n"
|
||||
" [--shared[=<permissions>]] [<directory>]"),
|
||||
NULL
|
||||
@@ -75,8 +78,10 @@ int cmd_init_db(int argc, const char **argv, const char *prefix)
|
||||
const char *template_dir = NULL;
|
||||
unsigned int flags = 0;
|
||||
const char *object_format = NULL;
|
||||
const char *ref_format = NULL;
|
||||
const char *initial_branch = NULL;
|
||||
int hash_algo = GIT_HASH_UNKNOWN;
|
||||
unsigned int ref_storage_format = REF_STORAGE_FORMAT_UNKNOWN;
|
||||
int init_shared_repository = -1;
|
||||
const struct option init_db_options[] = {
|
||||
OPT_STRING(0, "template", &template_dir, N_("template-directory"),
|
||||
@@ -94,6 +99,8 @@ int cmd_init_db(int argc, const char **argv, const char *prefix)
|
||||
N_("override the name of the initial branch")),
|
||||
OPT_STRING(0, "object-format", &object_format, N_("hash"),
|
||||
N_("specify the hash algorithm to use")),
|
||||
OPT_STRING(0, "ref-format", &ref_format, N_("format"),
|
||||
N_("specify the reference format to use")),
|
||||
OPT_END()
|
||||
};
|
||||
|
||||
@@ -157,6 +164,12 @@ int cmd_init_db(int argc, const char **argv, const char *prefix)
|
||||
die(_("unknown hash algorithm '%s'"), object_format);
|
||||
}
|
||||
|
||||
if (ref_format) {
|
||||
ref_storage_format = ref_storage_format_by_name(ref_format);
|
||||
if (ref_storage_format == REF_STORAGE_FORMAT_UNKNOWN)
|
||||
die(_("unknown ref storage format '%s'"), ref_format);
|
||||
}
|
||||
|
||||
if (init_shared_repository != -1)
|
||||
set_shared_repository(init_shared_repository);
|
||||
|
||||
@@ -235,5 +248,6 @@ int cmd_init_db(int argc, const char **argv, const char *prefix)
|
||||
|
||||
flags |= INIT_DB_EXIST_OK;
|
||||
return init_db(git_dir, real_git_dir, template_dir, hash_algo,
|
||||
initial_branch, init_shared_repository, flags);
|
||||
ref_storage_format, initial_branch,
|
||||
init_shared_repository, flags);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user