Commit 381be7cc5b9b3d938b44f0f30dafdecf1c2f5a6b

Stefan Sperling 2018-12-29T15:41:16

don't bother opening trees outside of path prefix

diff --git a/lib/worktree.c b/lib/worktree.c
index 762a4ef..1a57978 100644
--- a/lib/worktree.c
+++ b/lib/worktree.c
@@ -575,14 +575,14 @@ tree_checkout_entry(struct got_worktree *worktree,
 		    repo, progress_cb, progress_arg, progress_path);
 		break;
 	case GOT_OBJ_TYPE_TREE:
-		err = got_object_tree_open(&tree, repo, obj);
-		if (err)
-			goto done;
 		if (strlen(worktree->path_prefix) < strlen(path)) {
 			err = add_dir_on_disk(worktree, path);
 			if (err)
 				break;
 		}
+		err = got_object_tree_open(&tree, repo, obj);
+		if (err)
+			goto done;
 		/* XXX infinite recursion possible */
 		err = tree_checkout(worktree, fileindex, tree, path, repo,
 		    progress_cb, progress_arg, cancel_cb, cancel_arg);