/
uis
/
git
/
x
/
uis
/
git
/
git.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'tg/split-index-fixes' into maint
[git/git.git]
/
repository.c
diff --git
a/repository.c
b/repository.c
index
161e2d7
..
4ffbe9b
100644
(file)
--- a/
repository.c
+++ b/
repository.c
@@
-5,7
+5,7
@@
/* The main repository */
static struct repository the_repo = {
/* The main repository */
static struct repository the_repo = {
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, &the_index, 0, 0
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, &the_index,
&hash_algos[GIT_HASH_SHA1],
0, 0
};
struct repository *the_repository = &the_repo;
};
struct repository *the_repository = &the_repo;
@@
-64,6
+64,11
@@
void repo_set_gitdir(struct repository *repo, const char *path)
free(old_gitdir);
}
free(old_gitdir);
}
+void repo_set_hash_algo(struct repository *repo, int hash_algo)
+{
+ repo->hash_algo = &hash_algos[hash_algo];
+}
+
/*
* Attempt to resolve and set the provided 'gitdir' for repository 'repo'.
* Return 0 upon success and a non-zero value upon failure.
/*
* Attempt to resolve and set the provided 'gitdir' for repository 'repo'.
* Return 0 upon success and a non-zero value upon failure.
@@
-136,6
+141,8
@@
int repo_init(struct repository *repo, const char *gitdir, const char *worktree)
if (read_and_verify_repository_format(&format, repo->commondir))
goto error;
if (read_and_verify_repository_format(&format, repo->commondir))
goto error;
+ repo_set_hash_algo(repo, format.hash_algo);
+
if (worktree)
repo_set_worktree(repo, worktree);
if (worktree)
repo_set_worktree(repo, worktree);