From d4e355fb78dd0935268e4b8be28091b7b9bd0fb4 Mon Sep 17 00:00:00 2001 From: DongHun Kwak Date: Wed, 3 Mar 2021 15:16:18 +0900 Subject: [PATCH] Imported Upstream version 2.14.3 --- .mailmap | 1 + .travis.yml | 88 ++------------ .tsan-suppressions | 10 ++ Documentation/RelNotes/2.14.3.txt | 99 +++++++++++++++ Documentation/git-add.txt | 3 + Documentation/git-branch.txt | 4 +- Documentation/git-cat-file.txt | 2 +- Documentation/git-checkout.txt | 32 ++--- Documentation/git-for-each-ref.txt | 36 +++--- Documentation/git-grep.txt | 6 + Documentation/git-notes.txt | 2 +- Documentation/git-read-tree.txt | 2 + Documentation/git-status.txt | 2 + Documentation/git-tag.txt | 7 +- Documentation/git-update-index.txt | 2 +- Documentation/git.txt | 2 +- Documentation/gitattributes.txt | 5 +- Documentation/glossary-content.txt | 2 +- Documentation/merge-strategies.txt | 3 +- Documentation/pull-fetch-param.txt | 6 +- GIT-VERSION-GEN | 2 +- RelNotes | 2 +- archive.c | 19 +-- branch.c | 5 +- builtin/branch.c | 7 +- builtin/cat-file.c | 4 +- builtin/clean.c | 3 +- builtin/commit-tree.c | 1 - builtin/describe.c | 9 +- builtin/fast-export.c | 46 ++++--- builtin/for-each-ref.c | 1 + builtin/gc.c | 2 +- builtin/get-tar-commit-id.c | 3 +- builtin/grep.c | 2 +- builtin/name-rev.c | 2 +- builtin/pack-objects.c | 10 +- builtin/receive-pack.c | 2 +- builtin/rerere.c | 2 +- builtin/rev-parse.c | 4 +- builtin/show-branch.c | 2 +- builtin/tag.c | 3 +- builtin/unpack-file.c | 2 +- cache.h | 4 +- ci/install-dependencies.sh | 46 +++++++ ci/lib-travisci.sh | 28 +++++ ci/print-test-failures.sh | 18 +++ ci/run-build.sh | 8 ++ ci/run-linux32-docker.sh | 23 ++++ ci/run-static-analysis.sh | 8 ++ ci/run-tests.sh | 10 ++ ci/run-windows-build.sh | 2 + ci/test-documentation.sh | 4 +- color.c | 15 +++ commit-slab.h | 6 +- compat/poll/poll.c | 4 + config.c | 68 +++++------ contrib/coccinelle/array.cocci | 10 +- contrib/completion/git-completion.bash | 2 +- contrib/diff-highlight/Makefile | 3 + convert.c | 5 +- diff.c | 7 +- entry.c | 5 +- exec_cmd.c | 42 ++++--- fast-import.c | 8 +- fsck.c | 8 +- git-compat-util.h | 6 +- git-request-pull.sh | 2 +- git-send-email.perl | 33 +++-- http-backend.c | 4 +- http-push.c | 2 +- line-log.c | 18 +-- line-log.h | 2 +- ll-merge.c | 2 +- mailinfo.c | 11 +- notes-merge.c | 2 +- path.c | 32 ++--- pkt-line.c | 32 ++--- read-cache.c | 6 +- ref-filter.c | 10 +- refs.c | 4 +- refs.h | 8 ++ refs/files-backend.c | 10 +- rerere.c | 2 +- revision.c | 2 +- run-command.c | 2 +- sha1-lookup.c | 216 --------------------------------- sha1-lookup.h | 6 - sha1_file.c | 52 +++----- shallow.c | 6 +- strbuf.c | 1 + strbuf.h | 16 ++- streaming.c | 2 +- string-list.h | 6 +- sub-process.c | 7 +- submodule.h | 2 +- t/README | 6 +- t/check-non-portable-shell.pl | 2 +- t/helper/test-delta.c | 2 +- t/helper/test-string-list.c | 2 +- t/t1450-fsck.sh | 22 ++++ t/t3200-branch.sh | 13 ++ t/t3203-branch-output.sh | 8 +- t/t3205-branch-color.sh | 5 +- t/t3701-add-interactive.sh | 18 ++- t/t4015-diff-whitespace.sh | 28 ++--- t/t4202-log.sh | 2 +- t/t5001-archive-attr.sh | 2 +- t/t5002-archive-attr-pattern.sh | 2 +- t/t5004-archive-corner-cases.sh | 4 +- t/t5150-request-pull.sh | 4 +- t/t5308-pack-detect-duplicates.sh | 11 +- t/t6002-rev-list-bisect.sh | 18 ++- t/t6006-rev-list-format.sh | 3 +- t/t6120-describe.sh | 6 +- t/t6132-pathspec-exclude.sh | 13 +- t/t6300-for-each-ref.sh | 13 +- t/t7004-tag.sh | 8 +- t/t7006-pager.sh | 6 +- t/t7502-commit.sh | 4 +- t/t7508-status.sh | 41 ++++--- t/t8010-cat-file-filters.sh | 5 + t/t9001-send-email.sh | 4 + t/t9300-fast-import.sh | 142 ++++++++++++++++++++++ t/t9350-fast-export.sh | 20 ++- t/test-lib.sh | 1 - t/test-terminal.perl | 1 + tag.c | 8 +- transport-helper.c | 12 +- tree-walk.c | 3 +- userdiff.c | 2 +- worktree.c | 2 +- wrapper.c | 2 +- 132 files changed, 1022 insertions(+), 708 deletions(-) create mode 100644 .tsan-suppressions create mode 100644 Documentation/RelNotes/2.14.3.txt create mode 100755 ci/install-dependencies.sh create mode 100755 ci/lib-travisci.sh create mode 100755 ci/print-test-failures.sh create mode 100755 ci/run-build.sh create mode 100755 ci/run-linux32-docker.sh create mode 100755 ci/run-static-analysis.sh create mode 100755 ci/run-tests.sh diff --git a/.mailmap b/.mailmap index ab85e0d..224db83 100644 --- a/.mailmap +++ b/.mailmap @@ -194,6 +194,7 @@ Philippe Bruhat Ralf Thielow Ramsay Jones René Scharfe +René Scharfe Rene Scharfe Richard Hansen Richard Hansen Robert Fitzsimons diff --git a/.travis.yml b/.travis.yml index 278943d..fead995 100644 --- a/.travis.yml +++ b/.travis.yml @@ -61,23 +61,8 @@ matrix: services: - docker before_install: - - docker pull daald/ubuntu32:xenial before_script: - script: - - > - docker run - --interactive - --env DEVELOPER - --env DEFAULT_TEST_TARGET - --env GIT_PROVE_OPTS - --env GIT_TEST_OPTS - --env GIT_TEST_CLONE_2GB - --volume "${PWD}:/usr/src/git" - daald/ubuntu32:xenial - /usr/src/git/ci/run-linux32-build.sh $(id -u $USER) - # Use the following command to debug the docker build locally: - # $ docker run -itv "${PWD}:/usr/src/git" --entrypoint /bin/bash daald/ubuntu32:xenial - # root@container:/# /usr/src/git/ci/run-linux32-build.sh + script: ci/run-linux32-docker.sh - env: Static Analysis os: linux compiler: @@ -86,9 +71,8 @@ matrix: packages: - coccinelle before_install: - script: - # "before_script" that builds Git is inherited from base job - - make coccicheck + # "before_script" that builds Git is inherited from base job + script: ci/run-static-analysis.sh after_failure: - env: Documentation os: linux @@ -99,70 +83,14 @@ matrix: - asciidoc - xmlto before_install: - before_script: gem install asciidoctor + before_script: script: ci/test-documentation.sh after_failure: -before_install: - - > - case "${TRAVIS_OS_NAME:-linux}" in - linux) - export GIT_TEST_HTTPD=YesPlease - - mkdir --parents custom/p4 - pushd custom/p4 - wget --quiet http://filehost.perforce.com/perforce/r$LINUX_P4_VERSION/bin.linux26x86_64/p4d - wget --quiet http://filehost.perforce.com/perforce/r$LINUX_P4_VERSION/bin.linux26x86_64/p4 - chmod u+x p4d - chmod u+x p4 - export PATH="$(pwd):$PATH" - popd - mkdir --parents custom/git-lfs - pushd custom/git-lfs - wget --quiet https://github.com/github/git-lfs/releases/download/v$LINUX_GIT_LFS_VERSION/git-lfs-linux-amd64-$LINUX_GIT_LFS_VERSION.tar.gz - tar --extract --gunzip --file "git-lfs-linux-amd64-$LINUX_GIT_LFS_VERSION.tar.gz" - cp git-lfs-$LINUX_GIT_LFS_VERSION/git-lfs . - export PATH="$(pwd):$PATH" - popd - ;; - osx) - brew update --quiet - # Uncomment this if you want to run perf tests: - # brew install gnu-time - brew install git-lfs gettext - brew link --force gettext - brew install caskroom/cask/perforce - ;; - esac; - echo "$(tput setaf 6)Perforce Server Version$(tput sgr0)"; - p4d -V | grep Rev.; - echo "$(tput setaf 6)Perforce Client Version$(tput sgr0)"; - p4 -V | grep Rev.; - echo "$(tput setaf 6)Git-LFS Version$(tput sgr0)"; - git-lfs version; - -before_script: make --jobs=2 - -script: - - > - mkdir -p $HOME/travis-cache; - ln -s $HOME/travis-cache/.prove t/.prove; - make --quiet test; - -after_failure: - - > - : '<-- Click here to see detailed test output! '; - for TEST_EXIT in t/test-results/*.exit; - do - if [ "$(cat "$TEST_EXIT")" != "0" ]; - then - TEST_OUT="${TEST_EXIT%exit}out"; - echo "------------------------------------------------------------------------"; - echo "$(tput setaf 1)${TEST_OUT}...$(tput sgr0)"; - echo "------------------------------------------------------------------------"; - cat "${TEST_OUT}"; - fi; - done; +before_install: ci/install-dependencies.sh +before_script: ci/run-build.sh +script: ci/run-tests.sh +after_failure: ci/print-test-failures.sh notifications: email: false diff --git a/.tsan-suppressions b/.tsan-suppressions new file mode 100644 index 0000000..8c85014 --- /dev/null +++ b/.tsan-suppressions @@ -0,0 +1,10 @@ +# Suppressions for ThreadSanitizer (tsan). +# +# This file is used by setting the environment variable TSAN_OPTIONS to, e.g., +# "suppressions=$(pwd)/.tsan-suppressions". Observe that relative paths such as +# ".tsan-suppressions" might not work. + +# A static variable is written to racily, but we always write the same value, so +# in practice it (hopefully!) doesn't matter. +race:^want_color$ +race:^transfer_debug$ diff --git a/Documentation/RelNotes/2.14.3.txt b/Documentation/RelNotes/2.14.3.txt new file mode 100644 index 0000000..977c9e8 --- /dev/null +++ b/Documentation/RelNotes/2.14.3.txt @@ -0,0 +1,99 @@ +Git v2.14.3 Release Notes +========================= + +Fixes since v2.14.2 +------------------- + + * A helper function to read a single whole line into strbuf + mistakenly triggered OOM error at EOF under certain conditions, + which has been fixed. + + * In addition to "cc: # cruft", "cc: a@dd.re.ss # cruft" + was taught to "git send-email" as a valid way to tell it that it + needs to also send a carbon copy to in the trailer + section. + + * Fix regression to "gitk --bisect" by a recent update. + + * Unlike "git commit-tree < file", "git commit-tree -F file" did not + pass the contents of the file verbatim and instead completed an + incomplete line at the end, if exists. The latter has been updated + to match the behaviour of the former. + + * "git archive", especially when used with pathspec, stored an empty + directory in its output, even though Git itself never does so. + This has been fixed. + + * API error-proofing which happens to also squelch warnings from GCC. + + * "git gc" tries to avoid running two instances at the same time by + reading and writing pid/host from and to a lock file; it used to + use an incorrect fscanf() format when reading, which has been + corrected. + + * The test linter has been taught that we do not like "echo -e". + + * Code cmp.std.c nitpick. + + * "git describe --match" learned to take multiple patterns in v2.13 + series, but the feature ignored the patterns after the first one + and did not work at all. This has been fixed. + + * "git cat-file --textconv" started segfaulting recently, which + has been corrected. + + * The built-in pattern to detect the "function header" for HTML did + not match

..

elements without any attributes, which has + been fixed. + + * "git mailinfo" was loose in decoding quoted printable and produced + garbage when the two letters after the equal sign are not + hexadecimal. This has been fixed. + + * The documentation for '-X