commit - e5c03b5556a9c6effc6a983a9ff4a0a43709c91e
commit + a62a9cd59d45e9b2d65e691529c380a6fddff4c7
blob - 43420d51963fb8796ed7148130020e3b879a4c8a
blob + 8b52a98aa8b52fe2d3775b7f19516cb967ebdec3
--- include/got_error.h
+++ include/got_error.h
#define GOT_ERR_PACK_OFFSET 42
#define GOT_ERR_OBJ_EXISTS 43
#define GOT_ERR_BAD_OBJ_ID 44
-/* 45 is currently unused */
+#define GOT_ERR_OBJECT_FORMAT 45
#define GOT_ERR_ITER_COMPLETED 46
#define GOT_ERR_RANGE 47
#define GOT_ERR_EXPECTED 48 /* for use in regress tests only */
blob - 9bffc4e83ea4a9ea3c5f65dc26cdd5fd0d069712
blob + 2897f7222b41cd87986de117e09ca594c4bef16f
--- lib/error.c
+++ lib/error.c
{ GOT_ERR_PACK_OFFSET, "bad offset in pack file" },
{ GOT_ERR_OBJ_EXISTS, "object already exists" },
{ GOT_ERR_BAD_OBJ_ID, "bad object id" },
+ { GOT_ERR_OBJECT_FORMAT, "object format not supported" },
{ GOT_ERR_ITER_COMPLETED,"iteration completed" },
{ GOT_ERR_RANGE, "value out of range" },
{ GOT_ERR_EXPECTED, "expected an error but have no error" },
blob - c2bffe1a9e66be605e77b82a0240a6e4bf6ac481
blob + feddab7822ac272eff0ebf1280dd08ce8e64454f
--- lib/repository.c
+++ lib/repository.c
err = read_gitconfig(repo, global_gitconfig_path);
if (err)
goto done;
- if (repo->gitconfig_repository_format_version != 0) {
+ if (repo->gitconfig_repository_format_version > 1) {
err = got_error_path(path, GOT_ERR_GIT_REPO_FORMAT);
goto done;
}
char *ext = repo->extnames[i];
char *val = repo->extvals[i];
int j, supported = 0;
+
+ if (repo->gitconfig_repository_format_version == 1 &&
+ strcasecmp(ext, "objectformat") == 0) {
+ if (strcmp(val, "sha1") == 0)
+ continue;
+ if (strcmp(val, "sha256") == 0) {
+ repo->algo = GOT_HASH_SHA256;
+ continue;
+ }
+ err = got_error_path(val, GOT_ERR_OBJECT_FORMAT);
+ goto done;
+ }
if (!is_boolean_val(val)) {
err = got_error_path(ext, GOT_ERR_GIT_REPO_EXT);