aboutsummaryrefslogtreecommitdiff
path: root/fsck.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2014-12-18 12:30:53 -0800
committerJunio C Hamano <gitster@pobox.com>2014-12-18 12:30:53 -0800
commit3f1509809e728b70ea7912e4e1b40f22965e45ee (patch)
tree7ace4e090655502a539d7da3d9d85a2acd23b846 /fsck.c
parent9abc44b681a669c67d071d858c8aad21f65a0956 (diff)
parent9b7cbb315923e61bb0c4297c701089f30e116750 (diff)
downloadgit-3f1509809e728b70ea7912e4e1b40f22965e45ee.tar.xz
Sync with v2.2.1
* maint: Git 2.2.1 Git 2.1.4 Git 2.0.5 Git 1.9.5 Git 1.8.5.6 fsck: complain about NTFS ".git" aliases in trees read-cache: optionally disallow NTFS .git variants path: add is_ntfs_dotgit() helper fsck: complain about HFS+ ".git" aliases in trees read-cache: optionally disallow HFS+ .git variants utf8: add is_hfs_dotgit() helper fsck: notice .git case-insensitively t1450: refactor ".", "..", and ".git" fsck tests verify_dotfile(): reject .git case-insensitively read-tree: add tests for confusing paths like ".." and ".git" unpack-trees: propagate errors adding entries to the index
Diffstat (limited to 'fsck.c')
-rw-r--r--fsck.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/fsck.c b/fsck.c
index 2fffa434a5..0324194631 100644
--- a/fsck.c
+++ b/fsck.c
@@ -7,6 +7,7 @@
#include "tag.h"
#include "fsck.h"
#include "refs.h"
+#include "utf8.h"
static int fsck_walk_tree(struct tree *tree, fsck_walk_func walk, void *data)
{
@@ -171,7 +172,9 @@ static int fsck_tree(struct tree *item, int strict, fsck_error error_func)
has_empty_name |= !*name;
has_dot |= !strcmp(name, ".");
has_dotdot |= !strcmp(name, "..");
- has_dotgit |= !strcmp(name, ".git");
+ has_dotgit |= (!strcmp(name, ".git") ||
+ is_hfs_dotgit(name) ||
+ is_ntfs_dotgit(name));
has_zero_pad |= *(char *)desc.buffer == '0';
update_tree_entry(&desc);