зеркало из https://github.com/microsoft/git.git
Add config variable core.symrefsonly
This allows you to force git to avoid symlinks for refs. Just add something like [core] symrefsonly = true to .git/config. Don´t forget to "git checkout your_branch", or it does not do anything... Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Родитель
4a4e6fd74f
Коммит
f8348be3be
1
cache.h
1
cache.h
|
@ -179,6 +179,7 @@ extern int commit_index_file(struct cache_file *);
|
|||
extern void rollback_index_file(struct cache_file *);
|
||||
|
||||
extern int trust_executable_bit;
|
||||
extern int only_use_symrefs;
|
||||
|
||||
#define MTIME_CHANGED 0x0001
|
||||
#define CTIME_CHANGED 0x0002
|
||||
|
|
5
config.c
5
config.c
|
@ -214,6 +214,11 @@ int git_default_config(const char *var, const char *value)
|
|||
return 0;
|
||||
}
|
||||
|
||||
if (!strcmp(var, "core.symrefsonly")) {
|
||||
only_use_symrefs = git_config_bool(var, value);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!strcmp(var, "user.name")) {
|
||||
strncpy(git_default_name, value, sizeof(git_default_name));
|
||||
return 0;
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
char git_default_email[MAX_GITNAME];
|
||||
char git_default_name[MAX_GITNAME];
|
||||
int trust_executable_bit = 1;
|
||||
int only_use_symrefs = 0;
|
||||
|
||||
static char *git_dir, *git_object_dir, *git_index_file, *git_refs_dir,
|
||||
*git_graft_file;
|
||||
|
|
10
refs.c
10
refs.c
|
@ -121,10 +121,12 @@ int create_symref(const char *git_HEAD, const char *refs_heads_master)
|
|||
int fd, len, written;
|
||||
|
||||
#if USE_SYMLINK_HEAD
|
||||
unlink(git_HEAD);
|
||||
if (!symlink(refs_heads_master, git_HEAD))
|
||||
return 0;
|
||||
fprintf(stderr, "no symlink - falling back to symbolic ref\n");
|
||||
if (!only_use_symrefs) {
|
||||
unlink(git_HEAD);
|
||||
if (!symlink(refs_heads_master, git_HEAD))
|
||||
return 0;
|
||||
fprintf(stderr, "no symlink - falling back to symbolic ref\n");
|
||||
}
|
||||
#endif
|
||||
|
||||
len = snprintf(ref, sizeof(ref), "ref: %s\n", refs_heads_master);
|
||||
|
|
|
@ -20,6 +20,7 @@ static void check_symref(const char *HEAD)
|
|||
int main(int argc, const char **argv)
|
||||
{
|
||||
setup_git_directory();
|
||||
git_config(git_default_config);
|
||||
switch (argc) {
|
||||
case 2:
|
||||
check_symref(argv[1]);
|
||||
|
|
Загрузка…
Ссылка в новой задаче