Expose subprojects as special files to "git diff" machinery
[gitweb.git] / entry.c
diff --git a/entry.c b/entry.c
index 9545e895d001db8a011432bcfc2f579152258d4a..50ffae40c76478a10d1c3fc9623105e7f14f863e 100644 (file)
--- a/entry.c
+++ b/entry.c
@@ -195,6 +195,9 @@ int checkout_entry(struct cache_entry *ce, struct checkout *state, char *topath)
                 */
                unlink(path);
                if (S_ISDIR(st.st_mode)) {
+                       /* If it is a gitlink, leave it alone! */
+                       if (S_ISDIRLNK(ntohl(ce->ce_mode)))
+                               return 0;
                        if (!state->force)
                                return error("%s is a directory", path);
                        remove_subtree(path);