Commit 709b1b62686d3526eb27169a4d80c0ed4e8f7e55

Jason Nader 2021-11-05T02:28:37

repository: do not copy templates if dir nonexistent This mimics the behaviour of git which just prints a warning and continues with the repo initialisation.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
diff --git a/src/repository.c b/src/repository.c
index 29684e4..2002e11 100644
--- a/src/repository.c
+++ b/src/repository.c
@@ -2032,9 +2032,15 @@ static int repo_init_structure(
 		git_str_dispose(&template_buf);
 		git_config_free(cfg);
 
+		/* If tdir does not exist, then do not error out. This matches the
+		 * behaviour of git(1), which just prints a warning and continues.
+		 * TODO: issue warning when warning API is available.
+		 * `git` prints to stderr: 'warning: templates not found in /path/to/tdir'
+		 */
 		if (error < 0) {
-			if (!default_template)
+			if (!default_template && error != GIT_ENOTFOUND) {
 				return error;
+			}
 
 			/* if template was default, ignore error and use internal */
 			git_error_clear();