diff --git a/builtin-ls-files.c b/builtin-ls-files.c
index 5398a41415372b07fa1fdb43c26b5570e9d990b8..d36181a75541df10c5dc1595ccca5a6fc429591f 100644 (file)
--- a/builtin-ls-files.c
+++ b/builtin-ls-files.c
break;
}
- if (require_work_tree &&
- (is_bare_repository() || is_inside_git_dir()))
- die("This operation must be run in a work tree");
+ if (require_work_tree && !is_inside_work_tree()) {
+ const char *work_tree = get_git_work_tree();
+ if (!work_tree || chdir(work_tree))
+ die("This operation must be run in a work tree");
+ }
pathspec = get_pathspec(prefix, argv + i);