summaryrefslogtreecommitdiffabout
authorLars Hjemli <hjemli@gmail.com>2009-08-11 08:08:12 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2009-08-24 08:22:57 (UTC)
commitfb9bf55cde24bbb46568575fc65739a9226f8216 (patch) (side-by-side diff)
tree12380177c2b33f8acd2553769744dc87b062d0e4
parentb44c40ea720aee9ba4412e192877e9632a70a259 (diff)
downloadcgit-fb9bf55cde24bbb46568575fc65739a9226f8216.zip
cgit-fb9bf55cde24bbb46568575fc65739a9226f8216.tar.gz
cgit-fb9bf55cde24bbb46568575fc65739a9226f8216.tar.bz2
scan-tree: detect non-bare repository and stop scanning early
We don't want to descend into every subdirectory of a git repository with a workdir. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--scan-tree.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/scan-tree.c b/scan-tree.c
index 4da21a4..67f4550 100644
--- a/scan-tree.c
+++ b/scan-tree.c
@@ -86,12 +86,16 @@ static void scan_path(const char *base, const char *path)
struct stat st;
if (is_git_dir(path)) {
add_repo(base, path);
return;
}
+ if (is_git_dir(fmt("%s/.git", path))) {
+ add_repo(base, fmt("%s/.git", path));
+ return;
+ }
dir = opendir(path);
if (!dir) {
fprintf(stderr, "Error opening directory %s: %s (%d)\n",
path, strerror(errno), errno);
return;
}