summaryrefslogtreecommitdiff
path: root/dir.h
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2009-06-30 22:33:45 (GMT)
committerJunio C Hamano <gitster@pobox.com>2009-07-29 19:22:30 (GMT)
commita0f4afbe87ddda7902e36350d163dea146166550 (patch)
tree9c90142f461b86ef045d672793b95f135be1970f /dir.h
parent0a53e9ddeaddad63ad106860237bbf53411d11a7 (diff)
downloadgit-a0f4afbe87ddda7902e36350d163dea146166550.zip
git-a0f4afbe87ddda7902e36350d163dea146166550.tar.gz
git-a0f4afbe87ddda7902e36350d163dea146166550.tar.bz2
clean: require double -f options to nuke nested git repository and work tree
When you have an embedded git work tree in your work tree (be it an orphaned submodule, or an independent checkout of an unrelated project), "git clean -d -f" blindly descended into it and removed everything. This is rarely what the user wants. Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'dir.h')
-rw-r--r--dir.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/dir.h b/dir.h
index a631446..320b6a2 100644
--- a/dir.h
+++ b/dir.h
@@ -88,7 +88,10 @@ static inline int is_dot_or_dotdot(const char *name)
extern int is_empty_dir(const char *dir);
extern void setup_standard_excludes(struct dir_struct *dir);
-extern int remove_dir_recursively(struct strbuf *path, int only_empty);
+
+#define REMOVE_DIR_EMPTY_ONLY 01
+#define REMOVE_DIR_KEEP_NESTED_GIT 02
+extern int remove_dir_recursively(struct strbuf *path, int flag);
/* tries to remove the path with empty directories along it, ignores ENOENT */
extern int remove_path(const char *path);