Browse Source

Repository format version check.

This adds the repository format version code, first done by
Martin Atukunda.

Signed-off-by: Junio C Hamano <junkio@cox.net>
maint
Junio C Hamano 19 years ago
parent
commit
ab9cb76f66
  1. 5
      cache.h
  2. 1
      environment.c
  3. 16
      setup.c

5
cache.h

@ -182,6 +182,10 @@ extern int trust_executable_bit; @@ -182,6 +182,10 @@ extern int trust_executable_bit;
extern int only_use_symrefs;
extern int diff_rename_limit_default;

#define GIT_REPO_VERSION 0
extern int repository_format_version;
extern int check_repository_format(void);

#define MTIME_CHANGED 0x0001
#define CTIME_CHANGED 0x0002
#define OWNER_CHANGED 0x0004
@ -388,6 +392,7 @@ extern int git_config_int(const char *, const char *); @@ -388,6 +392,7 @@ extern int git_config_int(const char *, const char *);
extern int git_config_bool(const char *, const char *);
extern int git_config_set(const char *, const char *);
extern int git_config_set_multivar(const char *, const char *, const char *, int);
extern int check_repository_format_version(const char *var, const char *value);

#define MAX_GITNAME (1000)
extern char git_default_email[MAX_GITNAME];

1
environment.c

@ -13,6 +13,7 @@ char git_default_email[MAX_GITNAME]; @@ -13,6 +13,7 @@ char git_default_email[MAX_GITNAME];
char git_default_name[MAX_GITNAME];
int trust_executable_bit = 1;
int only_use_symrefs = 0;
int repository_format_version = 0;

static char *git_dir, *git_object_dir, *git_index_file, *git_refs_dir,
*git_graft_file;

16
setup.c

@ -154,6 +154,22 @@ static const char *setup_git_directory_1(void) @@ -154,6 +154,22 @@ static const char *setup_git_directory_1(void)
return cwd + offset;
}

int check_repository_format_version(const char *var, const char *value)
{
if (strcmp(var, "core.repositoryformatversion") == 0)
repository_format_version = git_config_int(var, value);
return 0;
}

int check_repository_format(void)
{
git_config(check_repository_format_version);
if (GIT_REPO_VERSION < repository_format_version)
die ("Expected git repo version <= %d, found %d",
GIT_REPO_VERSION, repository_format_version);
return 0;
}

const char *setup_git_directory(void)
{
const char *retval = setup_git_directory_1();

Loading…
Cancel
Save