Currently git-clean removes only links and files, but
there can be special files like fifo, sockets, devices.

I think git-clean has to remove them too.

Signed-off-by: Andrey Vagin <ava...@openvz.org>
---
 cache.h | 8 ++++++++
 dir.c   | 4 ++++
 2 files changed, 12 insertions(+)

diff --git a/cache.h b/cache.h
index f1dc289..a2f1258 100644
--- a/cache.h
+++ b/cache.h
@@ -77,10 +77,18 @@ struct object_id {
 #undef DT_DIR
 #undef DT_REG
 #undef DT_LNK
+#undef DT_FIFO
+#undef DT_BLK
+#undef DT_CHR
+#undef DT_SOCK
 #define DT_UNKNOWN     0
 #define DT_DIR         1
 #define DT_REG         2
 #define DT_LNK         3
+#define DT_FIFO                4
+#define DT_BLK         5
+#define DT_CHR         6
+#define DT_SOCK                7
 #define DTYPE(de)      DT_UNKNOWN
 #endif
 
diff --git a/dir.c b/dir.c
index 6172b34..930dd99 100644
--- a/dir.c
+++ b/dir.c
@@ -1470,8 +1470,12 @@ static enum path_treatment treat_one_path(struct 
dir_struct *dir,
                strbuf_addch(path, '/');
                return treat_directory(dir, untracked, path->buf, path->len,
                                       baselen, exclude, simplify);
+       case DT_BLK:
+       case DT_CHR:
+       case DT_FIFO:
        case DT_REG:
        case DT_LNK:
+       case DT_SOCK:
                return exclude ? path_excluded : path_untracked;
        }
 }
-- 
2.5.5

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to