Commit 3addb796d392ff6bbd3917a48d81848d40821c5b

Edward Thomson 2021-08-30T23:10:24

Merge pull request #5943 from kcsaul/fix/5851 Fix worktree iteration when repository has no common directory

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
diff --git a/src/repository.c b/src/repository.c
index 9ed46bf..aae0c91 100644
--- a/src/repository.c
+++ b/src/repository.c
@@ -2335,6 +2335,12 @@ int git_repository_foreach_worktree(git_repository *repo,
 	int error;
 	size_t i;
 
+	/* apply operation to repository supplied when commondir is empty, implying there's
+	 * no linked worktrees to iterate, which can occur when using custom odb/refdb
+	 */
+	if (!repo->commondir)
+		return cb(repo, payload);
+
 	if ((error = git_repository_open(&worktree_repo, repo->commondir)) < 0 ||
 	    (error = cb(worktree_repo, payload) != 0))
 		goto out;