core.prefersymlinkrefs: use symlinks for .git/HEAD
When inspecting a project whose build infrastructure used to assume that .git/HEAD is a symlink ref, core.prefersymlinkrefs in the config file of such a project would help to bisect its history. Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
parent
3d990f110c
commit
9f0bb90d16
@ -64,9 +64,11 @@ core.ignoreStat::
|
|||||||
slow, such as Microsoft Windows. See gitlink:git-update-index[1].
|
slow, such as Microsoft Windows. See gitlink:git-update-index[1].
|
||||||
False by default.
|
False by default.
|
||||||
|
|
||||||
core.onlyUseSymrefs::
|
core.preferSymlinkRefs::
|
||||||
Always use the "symref" format instead of symbolic links for HEAD
|
Instead of the default "symref" format for HEAD
|
||||||
and other symbolic reference files. True by default.
|
and other symbolic reference files, use symbolic links.
|
||||||
|
This is sometimes needed to work with old scripts that
|
||||||
|
expect HEAD to be a symbolic link.
|
||||||
|
|
||||||
core.repositoryFormatVersion::
|
core.repositoryFormatVersion::
|
||||||
Internal variable identifying the repository format and layout
|
Internal variable identifying the repository format and layout
|
||||||
|
8
Makefile
8
Makefile
@ -28,8 +28,8 @@ all:
|
|||||||
#
|
#
|
||||||
# Define NO_SETENV if you don't have setenv in the C library.
|
# Define NO_SETENV if you don't have setenv in the C library.
|
||||||
#
|
#
|
||||||
# Define USE_SYMLINK_HEAD if you want .git/HEAD to be a symbolic link.
|
# Define NO_SYMLINK_HEAD if you never want .git/HEAD to be a symbolic link.
|
||||||
# Don't enable it on Windows.
|
# Enable it on Windows. By default, symrefs are still used.
|
||||||
#
|
#
|
||||||
# Define PPC_SHA1 environment variable when running make to make use of
|
# Define PPC_SHA1 environment variable when running make to make use of
|
||||||
# a bundled SHA1 routine optimized for PowerPC.
|
# a bundled SHA1 routine optimized for PowerPC.
|
||||||
@ -263,6 +263,7 @@ ifeq ($(uname_O),Cygwin)
|
|||||||
NO_D_TYPE_IN_DIRENT = YesPlease
|
NO_D_TYPE_IN_DIRENT = YesPlease
|
||||||
NO_D_INO_IN_DIRENT = YesPlease
|
NO_D_INO_IN_DIRENT = YesPlease
|
||||||
NO_STRCASESTR = YesPlease
|
NO_STRCASESTR = YesPlease
|
||||||
|
NO_SYMLINK_HEAD = YesPlease
|
||||||
NEEDS_LIBICONV = YesPlease
|
NEEDS_LIBICONV = YesPlease
|
||||||
# There are conflicting reports about this.
|
# There are conflicting reports about this.
|
||||||
# On some boxes NO_MMAP is needed, and not so elsewhere.
|
# On some boxes NO_MMAP is needed, and not so elsewhere.
|
||||||
@ -386,6 +387,9 @@ endif
|
|||||||
ifdef NO_D_INO_IN_DIRENT
|
ifdef NO_D_INO_IN_DIRENT
|
||||||
ALL_CFLAGS += -DNO_D_INO_IN_DIRENT
|
ALL_CFLAGS += -DNO_D_INO_IN_DIRENT
|
||||||
endif
|
endif
|
||||||
|
ifdef NO_SYMLINK_HEAD
|
||||||
|
ALL_CFLAGS += -DNO_SYMLINK_HEAD
|
||||||
|
endif
|
||||||
ifdef NO_STRCASESTR
|
ifdef NO_STRCASESTR
|
||||||
COMPAT_CFLAGS += -DNO_STRCASESTR
|
COMPAT_CFLAGS += -DNO_STRCASESTR
|
||||||
COMPAT_OBJS += compat/strcasestr.o
|
COMPAT_OBJS += compat/strcasestr.o
|
||||||
|
2
cache.h
2
cache.h
@ -169,7 +169,7 @@ extern void rollback_index_file(struct cache_file *);
|
|||||||
/* Environment bits from configuration mechanism */
|
/* Environment bits from configuration mechanism */
|
||||||
extern int trust_executable_bit;
|
extern int trust_executable_bit;
|
||||||
extern int assume_unchanged;
|
extern int assume_unchanged;
|
||||||
extern int only_use_symrefs;
|
extern int prefer_symlink_refs;
|
||||||
extern int warn_ambiguous_refs;
|
extern int warn_ambiguous_refs;
|
||||||
extern int diff_rename_limit_default;
|
extern int diff_rename_limit_default;
|
||||||
extern int shared_repository;
|
extern int shared_repository;
|
||||||
|
4
config.c
4
config.c
@ -227,8 +227,8 @@ int git_default_config(const char *var, const char *value)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!strcmp(var, "core.symrefsonly")) {
|
if (!strcmp(var, "core.prefersymlinkrefs")) {
|
||||||
only_use_symrefs = git_config_bool(var, value);
|
prefer_symlink_refs = git_config_bool(var, value);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ char git_default_email[MAX_GITNAME];
|
|||||||
char git_default_name[MAX_GITNAME];
|
char git_default_name[MAX_GITNAME];
|
||||||
int trust_executable_bit = 1;
|
int trust_executable_bit = 1;
|
||||||
int assume_unchanged = 0;
|
int assume_unchanged = 0;
|
||||||
int only_use_symrefs = 0;
|
int prefer_symlink_refs = 0;
|
||||||
int warn_ambiguous_refs = 1;
|
int warn_ambiguous_refs = 1;
|
||||||
int repository_format_version = 0;
|
int repository_format_version = 0;
|
||||||
char git_commit_encoding[MAX_ENCODING_LENGTH] = "utf-8";
|
char git_commit_encoding[MAX_ENCODING_LENGTH] = "utf-8";
|
||||||
|
4
refs.c
4
refs.c
@ -76,8 +76,8 @@ int create_symref(const char *git_HEAD, const char *refs_heads_master)
|
|||||||
char ref[1000];
|
char ref[1000];
|
||||||
int fd, len, written;
|
int fd, len, written;
|
||||||
|
|
||||||
#ifdef USE_SYMLINK_HEAD
|
#ifndef NO_SYMLINK_HEAD
|
||||||
if (!only_use_symrefs) {
|
if (prefer_symlink_refs) {
|
||||||
unlink(git_HEAD);
|
unlink(git_HEAD);
|
||||||
if (!symlink(refs_heads_master, git_HEAD))
|
if (!symlink(refs_heads_master, git_HEAD))
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user