worktree: add relativeWorktrees
extension
A new extension, `relativeWorktrees`, is added to indicate that at least one worktree in the repository has been linked with relative paths. This ensures older Git versions do not attempt to automatically prune worktrees with relative paths, as they would not not recognize the paths as being valid. Suggested-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Caleb White <cdwhite3@pm.me> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
d897f2c16d
commit
1860ba1a2a
7
setup.c
7
setup.c
@ -683,6 +683,9 @@ static enum extension_result handle_extension(const char *var,
|
||||
"extensions.refstorage", value);
|
||||
data->ref_storage_format = format;
|
||||
return EXTENSION_OK;
|
||||
} else if (!strcmp(ext, "relativeworktrees")) {
|
||||
data->relative_worktrees = git_config_bool(var, value);
|
||||
return EXTENSION_OK;
|
||||
}
|
||||
return EXTENSION_UNKNOWN;
|
||||
}
|
||||
@ -1854,6 +1857,8 @@ const char *setup_git_directory_gently(int *nongit_ok)
|
||||
repo_fmt.ref_storage_format);
|
||||
the_repository->repository_format_worktree_config =
|
||||
repo_fmt.worktree_config;
|
||||
the_repository->repository_format_relative_worktrees =
|
||||
repo_fmt.relative_worktrees;
|
||||
/* take ownership of repo_fmt.partial_clone */
|
||||
the_repository->repository_format_partial_clone =
|
||||
repo_fmt.partial_clone;
|
||||
@ -1950,6 +1955,8 @@ void check_repository_format(struct repository_format *fmt)
|
||||
fmt->ref_storage_format);
|
||||
the_repository->repository_format_worktree_config =
|
||||
fmt->worktree_config;
|
||||
the_repository->repository_format_relative_worktrees =
|
||||
fmt->relative_worktrees;
|
||||
the_repository->repository_format_partial_clone =
|
||||
xstrdup_or_null(fmt->partial_clone);
|
||||
clear_repository_format(&repo_fmt);
|
||||
|
Reference in New Issue
Block a user