1. 19 5月, 2019 16 次提交
    • J
      Merge branch 'ds/midx-too-many-packs' · 454b4197
      Junio C Hamano 提交于
      The code to generate the multi-pack idx file was not prepared to
      see too many packfiles and ran out of open file descriptor, which
      has been corrected.
      
      * ds/midx-too-many-packs:
        midx: add packs to packed_git linked list
        midx: pass a repository pointer
      454b4197
    • J
      Merge branch 'en/unicode-in-refnames' · 97616ca4
      Junio C Hamano 提交于
      On a filesystem like HFS+, the names of the refs stored as filesystem
      entities may become different from what the end-user expects, just
      like files in the working tree get "renamed".  Work around the
      mismatch by paying attention to the core.precomposeUnicode
      configuration.
      
      * en/unicode-in-refnames:
        Honor core.precomposeUnicode in more places
      97616ca4
    • J
      Merge branch 'dl/difftool-mergetool' · 85ac27e0
      Junio C Hamano 提交于
      Update "git difftool" and "git mergetool" so that the combinations
      of {diff,merge}.{tool,guitool} configuration variables serve as
      fallback settings of each other in a sensible order.
      
      * dl/difftool-mergetool:
        difftool: fallback on merge.guitool
        difftool: make --gui, --tool and --extcmd mutually exclusive
        mergetool: fallback to tool when guitool unavailable
        mergetool--lib: create gui_mode function
        mergetool: use get_merge_tool function
        t7610: add mergetool --gui tests
        t7610: unsuppress output
      85ac27e0
    • J
      Merge branch 'mh/http-fread-api-fix' · fed9391f
      Junio C Hamano 提交于
      A pair of private functions in http.c that had names similar to
      fread/fwrite did not return the number of elements, which was found
      to be confusing.
      
      * mh/http-fread-api-fix:
        Make fread/fwrite-like functions in http.c more like fread/fwrite.
      fed9391f
    • J
      Merge branch 'js/t6500-use-windows-pid-on-mingw' · b20b8fec
      Junio C Hamano 提交于
      Future-proof a test against an update to MSYS2 runtime v3.x series.
      
      * js/t6500-use-windows-pid-on-mingw:
        t6500(mingw): use the Windows PID of the shell
      b20b8fec
    • J
      Merge branch 'jk/apache-lsan' · 7782066f
      Junio C Hamano 提交于
      Allow tests that involve httpd to be run under leak sanitizer, just
      like we can already do so under address sanitizer.
      
      * jk/apache-lsan:
        t/lib-httpd: pass LSAN_OPTIONS through apache
      7782066f
    • J
      Merge branch 'nd/parse-options-aliases' · 2cfab608
      Junio C Hamano 提交于
      Attempt to use an abbreviated option in "git clone --recurs" is
      responded by a request to disambiguate between --recursive and
      --recurse-submodules, which is bad because these two are synonyms.
      The parse-options API has been extended to define such synonyms
      more easily and not produce an unnecessary failure.
      
      * nd/parse-options-aliases:
        parse-options: don't emit "ambiguous option" for aliases
      2cfab608
    • J
      Merge branch 'dl/branch-from-3dot-merge-base' · 4ac8371a
      Junio C Hamano 提交于
      "git branch new A...B" and "git checkout -b new A...B" have been
      taught that in their contexts, the notation A...B means "the merge
      base between these two commits", just like "git checkout A...B"
      detaches HEAD at that commit.
      
      * dl/branch-from-3dot-merge-base:
        branch: make create_branch accept a merge base rev
        t2018: cleanup in current test
      4ac8371a
    • J
      Merge branch 'js/commit-graph-parse-leakfix' · 3c9b393c
      Junio C Hamano 提交于
      Leakfix.
      
      * js/commit-graph-parse-leakfix:
        commit-graph: fix memory leak
      3c9b393c
    • J
      Merge branch 'jk/cocci-batch' · 6795fc8a
      Junio C Hamano 提交于
      Optionally "make coccicheck" can feed multiple source files to
      spatch, gaining performance while spending more memory.
      
      * jk/cocci-batch:
        coccicheck: make batch size of 0 mean "unlimited"
        coccicheck: optionally batch spatch invocations
      6795fc8a
    • J
      Merge branch 'ab/perf-installed-fix' · 82dca958
      Junio C Hamano 提交于
      Performance test framework has been broken and measured the version
      of Git that happens to be on $PATH, not the specified one to
      measure, for a while, which has been corrected.
      
      * ab/perf-installed-fix:
        perf-lib.sh: forbid the use of GIT_TEST_INSTALLED
        perf tests: add "bindir" prefix to git tree test results
        perf-lib.sh: remove GIT_TEST_INSTALLED from perf-lib.sh
        perf-lib.sh: make "./run <revisions>" use the correct gits
        perf aggregate: remove GIT_TEST_INSTALLED from --codespeed
        perf README: correct docs for 3c8f12c9 regression
      82dca958
    • J
      Merge branch 'id/windows-dep-aslr' · f42bee7d
      Junio C Hamano 提交于
      Allow DEP and ASLR for Windows build to for security hardening.
      
      * id/windows-dep-aslr:
        mingw: enable DEP and ASLR
        mingw: do not let ld strip relocations
      f42bee7d
    • J
      Merge branch 'ab/trace2-typofix' · d66da839
      Junio C Hamano 提交于
      Typofix.
      
      * ab/trace2-typofix:
        trace2: fix up a missing "leave" entry point
      d66da839
    • J
      Merge branch 'nd/submodule-helper-incomplete-line-fix' · 195d7999
      Junio C Hamano 提交于
      Typofix.
      
      * nd/submodule-helper-incomplete-line-fix:
        submodule--helper: add a missing \n
      195d7999
    • J
      Merge branch 'cw/diff-highlight' · 18cfb74f
      Junio C Hamano 提交于
      Portability fix for a diff-highlight tool (in contrib/).
      
      * cw/diff-highlight:
        diff-highlight: use correct /dev/null for UNIX and Windows
      18cfb74f
    • J
      Merge branch 'dl/warn-tagging-a-tag' · 1294160b
      Junio C Hamano 提交于
      Typofix.
      
      * dl/warn-tagging-a-tag:
        tag: fix typo in nested tagging hint
      1294160b
  2. 13 5月, 2019 22 次提交
    • J
      Git 2.22-rc0 · ab15ad1a
      Junio C Hamano 提交于
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      ab15ad1a
    • J
      Merge branch 'jh/trace2' · 49bc8ce5
      Junio C Hamano 提交于
      A few embarrassing bugfixes.
      
      * jh/trace2:
        trace2: fix up a missing "leave" entry point
        trace2: fix incorrect function pointer check
      49bc8ce5
    • J
      Merge branch 'cc/access-on-aix-workaround' · 40bef499
      Junio C Hamano 提交于
      Workaround for standard-compliant but less-than-useful behaviour of
      access(2) for the root user.
      
      * cc/access-on-aix-workaround:
        git-compat-util: work around for access(X_OK) under root
      40bef499
    • J
      Merge branch 'pw/clean-sequencer-state-upon-final-commit' · b51a0fdc
      Junio C Hamano 提交于
      "git chery-pick" (and "revert" that shares the same runtime engine)
      that deals with multiple commits got confused when the final step
      gets stopped with a conflict and the user concluded the sequence
      with "git commit".  Attempt to fix it by cleaning up the state
      files used by these commands in such a situation.
      
      * pw/clean-sequencer-state-upon-final-commit:
        fix cherry-pick/revert status after commit
        commit/reset: try to clean up sequencer state
      b51a0fdc
    • J
      Merge branch 'pw/rebase-i-internal' · 7ba06bc3
      Junio C Hamano 提交于
      The internal implementation of "git rebase -i" has been updated to
      avoid forking a separate "rebase--interactive" process.
      
      * pw/rebase-i-internal:
        rebase -i: run without forking rebase--interactive
        rebase: use a common action enum
        rebase -i: use struct rebase_options in do_interactive_rebase()
        rebase -i: use struct rebase_options to parse args
        rebase -i: use struct object_id for squash_onto
        rebase -i: use struct commit when parsing options
        rebase -i: remove duplication
        rebase -i: combine rebase--interactive.c with rebase.c
        rebase: use OPT_RERERE_AUTOUPDATE()
        rebase: rename write_basic_state()
        rebase: don't translate trace strings
        sequencer: always discard index after checkout
      7ba06bc3
    • J
      Merge branch 'jk/perf-aggregate-wo-libjson' · 6cfa6335
      Junio C Hamano 提交于
      The script to aggregate perf result unconditionally depended on
      libjson-perl even though it did not have to, which has been
      corrected.
      
      * jk/perf-aggregate-wo-libjson:
        t/perf: depend on perl JSON only when using --codespeed
      6cfa6335
    • J
      Merge branch 'dl/rev-tilde-doc-clarify' · 7a188da3
      Junio C Hamano 提交于
      Docfix.
      
      * dl/rev-tilde-doc-clarify:
        revisions.txt: remove ambibuity between <rev>:<path> and :<path>
        revisions.txt: mention <rev>~ form
        revisions.txt: mark optional rev arguments with []
        revisions.txt: change "rev" to "<rev>"
      7a188da3
    • J
      Merge branch 'jc/make-dedup-ls-files-output' · a505f62f
      Junio C Hamano 提交于
      A "ls-files" that emulates "find" to enumerate files in the working
      tree resulted in duplicated Makefile rules that caused the build to
      issue an unnecessary warning during a trial build after merge
      conflicts are resolved in working tree *.h files but before the
      resolved results are added to the index.  This has been corrected.
      
      * jc/make-dedup-ls-files-output:
        Makefile: dedup list of files obtained from ls-files
      a505f62f
    • J
      Merge branch 'jk/ls-files-doc-markup-fix' · 8293ee05
      Junio C Hamano 提交于
      Docfix.
      
      * jk/ls-files-doc-markup-fix:
        doc/ls-files: put nested list for "-t" option into block
      8293ee05
    • J
      Merge branch 'jk/p5302-avoid-collision-check-cost' · e7a1b38f
      Junio C Hamano 提交于
      Fix index-pack perf test so that the repeated invocations always
      run in an empty repository, which emulates the initial clone
      situation better.
      
      * jk/p5302-avoid-collision-check-cost:
        p5302: create the repo in each index-pack test
      e7a1b38f
    • J
      Merge branch 'dl/no-extern-in-func-decl' · 4aeeef37
      Junio C Hamano 提交于
      Mechanically and systematically drop "extern" from function
      declarlation.
      
      * dl/no-extern-in-func-decl:
        *.[ch]: manually align parameter lists
        *.[ch]: remove extern from function declarations using sed
        *.[ch]: remove extern from function declarations using spatch
      4aeeef37
    • J
      Merge branch 'ew/repack-with-bitmaps-by-default' · 2bfb182b
      Junio C Hamano 提交于
      The connectivity bitmaps are created by default in bare
      repositories now; also the pathname hash-cache is created by
      default to avoid making crappy deltas when repacking.
      
      * ew/repack-with-bitmaps-by-default:
        pack-objects: default to writing bitmap hash-cache
        t5310: correctly remove bitmaps for jgit test
        repack: enable bitmaps by default on bare repos
      2bfb182b
    • J
      Merge branch 'js/partial-clone-connectivity-check' · 5b51f0d3
      Junio C Hamano 提交于
      During an initial "git clone --depth=..." partial clone, it is
      pointless to spend cycles for a large portion of the connectivity
      check that enumerates and skips promisor objects (which by
      definition is all objects fetched from the other side).  This has
      been optimized out.
      
      * js/partial-clone-connectivity-check:
        t/perf: add perf script for partial clones
        clone: do faster object check for partial clones
      5b51f0d3
    • J
      Merge branch 'jh/trace2-sid-fix' · 5b2d1c0c
      Junio C Hamano 提交于
      Polishing of the new trace2 facility continues.  The system-level
      configuration can specify site-wide trace2 settings, which can be
      overridden with per-user configuration and environment variables.
      
      * jh/trace2-sid-fix:
        trace2: fixup access problem on /etc/gitconfig in read_very_early_config
        trace2: update docs to describe system/global config settings
        trace2: make SIDs more unique
        trace2: clarify UTC datetime formatting
        trace2: report peak memory usage of the process
        trace2: use system/global config for default trace2 settings
        config: add read_very_early_config()
        trace2: find exec-dir before trace2 initialization
        trace2: add absolute elapsed time to start event
        trace2: refactor setting process starting time
        config: initialize opts structure in repo_read_config()
      5b2d1c0c
    • D
      difftool: fallback on merge.guitool · 6c22d715
      Denton Liu 提交于
      In git-difftool.txt, it says
      
      	'git difftool' falls back to 'git mergetool' config variables when the
      	difftool equivalents have not been defined.
      
      However, when `diff.guitool` is missing, it doesn't fallback to
      anything. Make git-difftool fallback to `merge.guitool` when `diff.guitool` is
      missing.
      Signed-off-by: NDenton Liu <liu.denton@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      6c22d715
    • D
      difftool: make --gui, --tool and --extcmd mutually exclusive · 7f978d7d
      Denton Liu 提交于
      In git-difftool, these options specify which tool to ultimately run. As
      a result, they are logically conflicting. Explicitly disallow these
      options from being used together.
      Signed-off-by: NDenton Liu <liu.denton@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      7f978d7d
    • D
      mergetool: fallback to tool when guitool unavailable · 60aced3d
      Denton Liu 提交于
      In git-difftool, if the tool is called with --gui but `diff.guitool` is
      not set, it falls back to `diff.tool`. Make git-mergetool also fallback
      from `merge.guitool` to `merge.tool` if the former is undefined.
      
      If git-difftool, when called with `--gui`, were to use
      `get_configured_mergetool` in a future patch, it would also get the
      fallback behavior in the following precedence:
      
      1. diff.guitool
      2. merge.guitool
      3. diff.tool
      4. merge.tool
      
      The behavior for when difftool or mergetool are called without `--gui`
      should be identical with or without this patch.
      
      Note that the search loop could be written as
      
      	sections="merge"
      	keys="tool"
      	if diff_mode
      	then
      		sections="diff $sections"
      	fi
      	if gui_mode
      	then
      		keys="guitool $keys"
      	fi
      
      	merge_tool=$(
      		IFS=' '
      		for key in $keys
      		do
      			for section in $sections
      			do
      				selected=$(git config $section.$key)
      				if test -n "$selected"
      				then
      					echo "$selected"
      					return
      				fi
      			done
      		done)
      
      which would make adding a mode in the future much easier. However,
      adding a new mode will likely never happen as it is highly discouraged
      so, as a result, it is written in its current form so that it is more
      readable for future readers.
      Signed-off-by: NDenton Liu <liu.denton@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      60aced3d
    • D
      mergetool--lib: create gui_mode function · 884630b2
      Denton Liu 提交于
      Before, in `get_configured_merge_tool`, we would test the value of the
      first argument directly, which corresponded to whether we were using
      guitool. However, since `$GIT_MERGETOOL_GUI` is available as an
      environment variable, create the `gui_mode` function which increases the
      clarify of functions which use it.
      
      While we're at it, add a space before `()` in function definitions to
      fix the style.
      Signed-off-by: NDenton Liu <liu.denton@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      884630b2
    • D
      mergetool: use get_merge_tool function · 05fb8726
      Denton Liu 提交于
      In git-mergetool, the logic for getting which merge tool to use is
      duplicated in git-mergetool--lib, except for the fact that it needs to
      know whether the tool was guessed or not.
      
      Rewrite `get_merge_tool` to return whether or not the tool was guessed
      through the return code and make git-mergetool call this function
      instead of duplicating the logic. Note that 1 was chosen to be the
      return code of when a tool is guessed because it seems like a slightly
      more abnormal condition than getting a tool that's explicitly specified
      but this is completely arbitrary.
      
      Also, let `$GIT_MERGETOOL_GUI` be set to determine whether or not the
      guitool will be selected.
      
      This change is not completely backwards compatible as there may be
      external users of git-mergetool--lib. However, only one user,
      git-diffall[1], was found from searching GitHub and Google, and this
      tool is superseded by `git difftool --dir-diff` anyway. It seems very
      unlikely that there exists an external caller that would take into
      account the return code of `get_merge_tool` as it would always return 0
      before this change so this change probably does not affect any external
      users.
      
      [1]: https://github.com/thenigan/git-diffallSigned-off-by: NDenton Liu <liu.denton@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      05fb8726
    • Æ
      trace2: fix up a missing "leave" entry point · 7fef4e3e
      Ævar Arnfjörð Bjarmason 提交于
      Fix a trivial bug that's been here since the shared/do_write_index
      tracing was added in 42fee7a3 ("trace2:data: add trace2
      instrumentation to index read/write", 2019-02-22). We should have
      enter/leave points, not two enter/enter points. This resulted in an
      "enter" event without a corresponding "leave" event.
      Signed-off-by: NÆvar Arnfjörð Bjarmason <avarab@gmail.com>
      Acked-by: NDerrick Stolee <dstolee@microsoft.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      7fef4e3e
    • İ
      mingw: enable DEP and ASLR · ce6a1585
      İsmail Dönmez 提交于
      Enable DEP (Data Execution Prevention) and ASLR (Address Space Layout
      Randomization) support. This applies to both 32bit and 64bit builds
      and makes it substantially harder to exploit security holes in Git by
      offering a much more unpredictable attack surface.
      
      ASLR interferes with GDB's ability to set breakpoints. A similar issue
      holds true when compiling with -O2 (in which case single-stepping is
      messed up because GDB cannot map the code back to the original source
      code properly). Therefore we simply enable ASLR only when an
      optimization flag is present in the CFLAGS, using it as an indicator
      that the developer does not want to debug in GDB anyway.
      Signed-off-by: Nİsmail Dönmez <ismail@i10z.com>
      Signed-off-by: NJohannes Schindelin <johannes.schindelin@gmx.de>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      ce6a1585
    • İ
      mingw: do not let ld strip relocations · 598b6c3a
      İsmail Dönmez 提交于
      This is the first step for enabling ASLR (Address Space Layout
      Randomization) support. We want to enable ASLR for better protection
      against exploiting security holes in Git: it makes it harder to attack
      software by making code addresses unpredictable.
      
      The problem fixed by this commit is that `ld.exe` seems to be stripping
      relocations which in turn will break ASLR support. We just make sure
      it's not stripping the main executable entry.
      Signed-off-by: Nİsmail Dönmez <ismail@i10z.com>
      Signed-off-by: NJohannes Schindelin <johannes.schindelin@gmx.de>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      598b6c3a
  3. 10 5月, 2019 1 次提交
  4. 09 5月, 2019 1 次提交