{"thread":{"id":"2681","subject":"[PATCH 1/4] Repository format version check.","startedAt":"2005-11-26T01:15:09Z","lastAt":"2005-11-26T01:15:09Z","messageCount":1,"participants":["Junio C Hamano"],"isPatch":true,"patchVersion":1,"patchTotal":4},"messages":[{"id":"12751","messageId":"7viruggqg2.fsf@assigned-by-dhcp.cox.net","threadId":"2681","inReplyTo":null,"subject":"[PATCH 1/4] Repository format version check.","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2005-11-26T01:15:09Z","receivedAt":"2005-11-26T01:15:09Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"This adds the repository format version code, first done by\nMartin Atukunda.\n\nSigned-off-by: Junio C Hamano <junkio@cox.net>\n\n---\n\n cache.h       |    5 +++++\n environment.c |    1 +\n setup.c       |   16 ++++++++++++++++\n 3 files changed, 22 insertions(+), 0 deletions(-)\n\napplies-to: 31b3c7eeb719c61a19922f3e8bf5abd46b49b5bb\n58fd7fb9718df942773862c9acd2358533c672d4\ndiff --git a/cache.h b/cache.h\nindex 6ac94c5..de53f41 100644\n--- a/cache.h\n+++ b/cache.h\n@@ -182,6 +182,10 @@ extern int trust_executable_bit;\n extern int only_use_symrefs;\n extern int diff_rename_limit_default;\n \n+#define GIT_REPO_VERSION 0\n+extern int repository_format_version;\n+extern int check_repository_format(void);\n+\n #define MTIME_CHANGED\t0x0001\n #define CTIME_CHANGED\t0x0002\n #define OWNER_CHANGED\t0x0004\n@@ -388,6 +392,7 @@ extern int git_config_int(const char *, \n extern int git_config_bool(const char *, const char *);\n extern int git_config_set(const char *, const char *);\n extern int git_config_set_multivar(const char *, const char *, const char *, int);\n+extern int check_repository_format_version(const char *var, const char *value);\n \n #define MAX_GITNAME (1000)\n extern char git_default_email[MAX_GITNAME];\ndiff --git a/environment.c b/environment.c\nindex b5026f1..3f19473 100644\n--- a/environment.c\n+++ b/environment.c\n@@ -13,6 +13,7 @@ char git_default_email[MAX_GITNAME];\n char git_default_name[MAX_GITNAME];\n int trust_executable_bit = 1;\n int only_use_symrefs = 0;\n+int repository_format_version = 0;\n \n static char *git_dir, *git_object_dir, *git_index_file, *git_refs_dir,\n \t*git_graft_file;\ndiff --git a/setup.c b/setup.c\nindex ab3c778..0e2e3c8 100644\n--- a/setup.c\n+++ b/setup.c\n@@ -154,6 +154,22 @@ static const char *setup_git_directory_1\n \treturn cwd + offset;\n }\n \n+int check_repository_format_version(const char *var, const char *value)\n+{\n+       if (strcmp(var, \"core.repositoryformatversion\") == 0)\n+               repository_format_version = git_config_int(var, value);\n+       return 0;\n+}\n+\n+int check_repository_format(void)\n+{\n+\tgit_config(check_repository_format_version);\n+\tif (GIT_REPO_VERSION < repository_format_version)\n+\t\tdie (\"Expected git repo version <= %d, found %d\",\n+\t\t     GIT_REPO_VERSION, repository_format_version);\n+\treturn 0;\n+}\n+\n const char *setup_git_directory(void)\n {\n \tconst char *retval = setup_git_directory_1();\n---\n0.99.9.GIT\n"}]}