Browse Source

Sync with v2.16.1

* maint:
  Git 2.16.1
  t5601-clone: test case-conflicting files on case-insensitive filesystem
  repository: pre-initialize hash algo pointer
maint
Junio C Hamano 7 years ago
parent
commit
59c276cf4d
  1. 11
      Documentation/RelNotes/2.16.1.txt
  2. 2
      repository.c
  3. 17
      t/t5601-clone.sh

11
Documentation/RelNotes/2.16.1.txt

@ -0,0 +1,11 @@ @@ -0,0 +1,11 @@
Git v2.16.1 Release Notes
=========================

Fixes since v2.16
-----------------

* "git clone" segfaulted when cloning a project that happens to
track two paths that differ only in case on a case insensitive
filesystem.

Does not contain any other documentation updates or code clean-ups.

2
repository.c

@ -5,7 +5,7 @@ @@ -5,7 +5,7 @@

/* The main repository */
static struct repository the_repo = {
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, &the_index, NULL, 0, 0
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, &the_index, &hash_algos[GIT_HASH_SHA1], 0, 0
};
struct repository *the_repository = &the_repo;


17
t/t5601-clone.sh

@ -611,4 +611,21 @@ test_expect_success 'GIT_TRACE_PACKFILE produces a usable pack' ' @@ -611,4 +611,21 @@ test_expect_success 'GIT_TRACE_PACKFILE produces a usable pack' '
git -C replay.git index-pack -v --stdin <tmp.pack
'

hex2oct () {
perl -ne 'printf "\\%03o", hex for /../g'
}

test_expect_success 'clone on case-insensitive fs' '
git init icasefs &&
(
cd icasefs
o=$(git hash-object -w --stdin </dev/null | hex2oct) &&
t=$(printf "100644 X\0${o}100644 x\0${o}" |
git hash-object -w -t tree --stdin) &&
c=$(git commit-tree -m bogus $t) &&
git update-ref refs/heads/bogus $c &&
git clone -b bogus . bogus
)
'

test_done

Loading…
Cancel
Save