From: Junio C Hamano Date: Wed, 17 Dec 2014 19:28:02 +0000 (-0800) Subject: Sync with v1.9.5 X-Git-Tag: v2.2.1~1^2~1^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5e519fb8b09378342e23bd8c075cfb4b8e7b0e4f;p=thirdparty%2Fgit.git Sync with v1.9.5 * maint-1.9: 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 --- 5e519fb8b09378342e23bd8c075cfb4b8e7b0e4f diff --cc Documentation/git.txt index cd509775ad,d092ce5684..aa5b268e00 --- a/Documentation/git.txt +++ b/Documentation/git.txt @@@ -43,18 -43,10 +43,19 @@@ unreleased) version of Git, that is ava branch of the `git.git` repository. Documentation for older releases are available here: +* link:v2.0.4/git.html[documentation for release 2.0.4] + +* release notes for + link:RelNotes/2.0.4.txt[2.0.4], + link:RelNotes/2.0.3.txt[2.0.3], + link:RelNotes/2.0.2.txt[2.0.2], + link:RelNotes/2.0.1.txt[2.0.1], + link:RelNotes/2.0.0.txt[2.0.0]. + - * link:v1.9.4/git.html[documentation for release 1.9.4] + * link:v1.9.5/git.html[documentation for release 1.9.5] * release notes for + link:RelNotes/1.9.5.txt[1.9.5], link:RelNotes/1.9.4.txt[1.9.4], link:RelNotes/1.9.3.txt[1.9.3], link:RelNotes/1.9.2.txt[1.9.2], diff --cc config.mak.uname index 7846bd7657,f3cdcbcddf..aba56dcfad --- a/config.mak.uname +++ b/config.mak.uname @@@ -358,9 -367,10 +359,10 @@@ ifeq ($(uname_S),Windows compat/win32/dirent.o COMPAT_CFLAGS = -D__USE_MINGW_ACCESS -DNOGDI -DHAVE_STRING_H -DHAVE_ALLOCA_H -Icompat -Icompat/regex -Icompat/win32 -DSTRIP_EXTENSION=\".exe\" BASIC_LDFLAGS = -IGNORE:4217 -IGNORE:4049 -NOLOGO -SUBSYSTEM:CONSOLE -NODEFAULTLIB:MSVCRT.lib - EXTLIBS = user32.lib advapi32.lib shell32.lib wininet.lib ws2_32.lib + EXTLIBS = user32.lib advapi32.lib shell32.lib wininet.lib ws2_32.lib invalidcontinue.obj PTHREAD_LIBS = lib = + BASIC_CFLAGS += -DPROTECT_NTFS_DEFAULT=1 ifndef DEBUG BASIC_CFLAGS += -GL -Os -MT BASIC_LDFLAGS += -LTCG diff --cc fsck.c index a7233c8d0b,ee7f531e36..5e6723d410 --- a/fsck.c +++ b/fsck.c @@@ -165,12 -166,19 +166,14 @@@ static int fsck_tree(struct tree *item sha1 = tree_entry_extract(&desc, &name, &mode); - if (is_null_sha1(sha1)) - has_null_sha1 = 1; - if (strchr(name, '/')) - has_full_path = 1; - if (!*name) - has_empty_name = 1; - if (!strcmp(name, ".")) - has_dot = 1; - if (!strcmp(name, "..")) - has_dotdot = 1; - if (!strcasecmp(name, ".git") || is_hfs_dotgit(name) || - is_ntfs_dotgit(name)) - has_dotgit = 1; + has_null_sha1 |= is_null_sha1(sha1); + has_full_path |= !!strchr(name, '/'); + 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); diff --cc unpack-trees.c index 97fc995467,ca7dd0fa5f..02f69aeea3 --- a/unpack-trees.c +++ b/unpack-trees.c @@@ -102,17 -102,18 +102,17 @@@ void setup_unpack_trees_porcelain(struc opts->unpack_rejects[i].strdup_strings = 1; } - static void do_add_entry(struct unpack_trees_options *o, struct cache_entry *ce, + static int do_add_entry(struct unpack_trees_options *o, struct cache_entry *ce, unsigned int set, unsigned int clear) { - clear |= CE_HASHED | CE_UNHASHED; + clear |= CE_HASHED; if (set & CE_REMOVE) set |= CE_WT_REMOVE; - ce->next = NULL; ce->ce_flags = (ce->ce_flags & ~clear) | set; - add_index_entry(&o->result, ce, - ADD_CACHE_OK_TO_ADD | ADD_CACHE_OK_TO_REPLACE); + return add_index_entry(&o->result, ce, + ADD_CACHE_OK_TO_ADD | ADD_CACHE_OK_TO_REPLACE); } static struct cache_entry *dup_entry(const struct cache_entry *ce)