Improve log dialog filter documentation
[TortoiseGit.git] / ext / libgit2-repo-Guess-better-path-to-set-an-exception-for.patch
bloba6c70dacef1ae2d8bd47368629dc073ea7e025ac
1 From 4d35a02674cc56b8cbcab3e151bacd7b650d86cc Mon Sep 17 00:00:00 2001
2 From: Sven Strickroth <email@cs-ware.de>
3 Date: Tue, 20 Feb 2024 23:01:38 +0100
4 Subject: [PATCH] Guess better path to set an exception for
6 Signed-off-by: Sven Strickroth <email@cs-ware.de>
7 ---
8 src/libgit2/repository.c | 8 +++++---
9 1 file changed, 5 insertions(+), 3 deletions(-)
11 diff --git a/src/libgit2/repository.c b/src/libgit2/repository.c
12 index 4eb344913..825fee8bf 100644
13 --- a/src/libgit2/repository.c
14 +++ b/src/libgit2/repository.c
15 @@ -705,10 +705,12 @@ static int validate_ownership(git_repository *repo)
16 if (!is_safe) {
17 size_t path_len = git_fs_path_is_root(path) ?
18 strlen(path) : git_fs_path_dirlen(path);
20 + const char *prefix = "";
21 + if (!strncasecmp(path, "//", strlen("//")))
22 + prefix = "%(prefix)/";
23 git_error_set(GIT_ERROR_CONFIG,
24 - "repository path '%.*s' is not owned by current user",
25 - (int)min(path_len, INT_MAX), path);
26 + "repository path '%.*s' is not owned by current user.\n\nTo add an exception for this directory, call:\ngit config --global --add safe.directory '%s%.*s'",
27 + (int)min(path_len, INT_MAX), path, prefix, (int)min(path_len, INT_MAX), path);
28 error = GIT_EOWNER;