1. 13 5月, 2019 3 次提交
    • 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
  2. 08 5月, 2019 21 次提交
    • J
      The eighth batch · 6a6c0f10
      Junio C Hamano 提交于
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      6a6c0f10
    • J
      Merge branch 'vk/autoconf-gettext' · f832bccd
      Junio C Hamano 提交于
      The autoconf generated configure script failed to use the right
      gettext() implementations from -libintl by ignoring useless stub
      implementations shipped in some C library, which has been
      corrected.
      
      * vk/autoconf-gettext:
        autoconf: #include <libintl.h> when checking for gettext()
      f832bccd
    • J
      Merge branch 'cc/aix-has-fileno-as-a-macro' · 1ff440fb
      Junio C Hamano 提交于
      AIX shared the same build issues with other BSDs around fileno(fp),
      which has been corrected.
      
      * cc/aix-has-fileno-as-a-macro:
        Makefile: use fileno macro work around on AIX
      1ff440fb
    • J
      Merge branch 'jt/submodule-repo-is-with-worktree' · ec2642a2
      Junio C Hamano 提交于
      The logic to tell if a Git repository has a working tree protects
      "git branch -D" from removing the branch that is currently checked
      out by mistake.  The implementation of this logic was broken for
      repositories with unusual name, which unfortunately is the norm for
      submodules these days.  This has been fixed.
      
      * jt/submodule-repo-is-with-worktree:
        worktree: update is_bare heuristics
      ec2642a2
    • J
      Merge branch 'jk/untracked-cache-more-fixes' · 5b5def9a
      Junio C Hamano 提交于
      Code clean-up.
      
      * jk/untracked-cache-more-fixes:
        untracked-cache: simplify parsing by dropping "len"
        untracked-cache: simplify parsing by dropping "next"
        untracked-cache: be defensive about missing NULs in index
      5b5def9a
    • J
      Merge branch 'jk/prune-optim' · d1311beb
      Junio C Hamano 提交于
      A follow-up test for an earlier "git prune" improvements.
      
      * jk/prune-optim:
        t5304: add a test for pruning with bitmaps
      d1311beb
    • J
      Merge branch 'js/misc-doc-fixes' · caa227ff
      Junio C Hamano 提交于
      "make check-docs", "git help -a", etc. did not account for cases
      where a particular build may deliberately omit some subcommands,
      which has been corrected.
      
      * js/misc-doc-fixes:
        Turn `git serve` into a test helper
        test-tool: handle the `-C <directory>` option just like `git`
        check-docs: do not bother checking for legacy scripts' documentation
        docs: exclude documentation for commands that have been excluded
        check-docs: allow command-list.txt to contain excluded commands
        help -a: do not list commands that are excluded from the build
        Makefile: drop the NO_INSTALL variable
        remote-testgit: move it into the support directory for t5801
      caa227ff
    • J
      Merge branch 'dr/ref-filter-push-track-fix' · f560a4d1
      Junio C Hamano 提交于
      %(push:track) token used in the --format option to "git
      for-each-ref" and friends was not showing the right branch, which
      has been fixed.
      
      * dr/ref-filter-push-track-fix:
        ref-filter: use correct branch for %(push:track)
      f560a4d1
    • J
      Merge branch 'ss/msvc-path-utils-fix' · 70542df5
      Junio C Hamano 提交于
      An earlier update for MinGW and Cygwin accidentally broke MSVC build,
      which has been fixed.
      
      * ss/msvc-path-utils-fix:
        MSVC: include compat/win32/path-utils.h for MSVC, too, for real_path()
      70542df5
    • J
      Merge branch 'jt/clone-server-option' · 6d3df8ef
      Junio C Hamano 提交于
      "git clone" learned a new --server-option option when talking over
      the protocol version 2.
      
      * jt/clone-server-option:
        clone: send server options when using protocol v2
        transport: die if server options are unsupported
      6d3df8ef
    • J
      Merge branch 'tb/unexpected' · ea2dab1a
      Junio C Hamano 提交于
      Code tightening against a "wrong" object appearing where an object
      of a different type is expected, instead of blindly assuming that
      the connection between objects are correctly made.
      
      * tb/unexpected:
        rev-list: detect broken root trees
        rev-list: let traversal die when --missing is not in use
        get_commit_tree(): return NULL for broken tree
        list-objects.c: handle unexpected non-tree entries
        list-objects.c: handle unexpected non-blob entries
        t: introduce tests for unexpected object types
        t: move 'hex2oct' into test-lib-functions.sh
      ea2dab1a
    • J
      Merge branch 'nd/sha1-name-c-wo-the-repository' · 0b179f31
      Junio C Hamano 提交于
      Further code clean-up to allow the lowest level of name-to-object
      mapping layer to work with a passed-in repository other than the
      default one.
      
      * nd/sha1-name-c-wo-the-repository: (34 commits)
        sha1-name.c: remove the_repo from get_oid_mb()
        sha1-name.c: remove the_repo from other get_oid_*
        sha1-name.c: remove the_repo from maybe_die_on_misspelt_object_name
        submodule-config.c: use repo_get_oid for reading .gitmodules
        sha1-name.c: add repo_get_oid()
        sha1-name.c: remove the_repo from get_oid_with_context_1()
        sha1-name.c: remove the_repo from resolve_relative_path()
        sha1-name.c: remove the_repo from diagnose_invalid_index_path()
        sha1-name.c: remove the_repo from handle_one_ref()
        sha1-name.c: remove the_repo from get_oid_1()
        sha1-name.c: remove the_repo from get_oid_basic()
        sha1-name.c: remove the_repo from get_describe_name()
        sha1-name.c: remove the_repo from get_oid_oneline()
        sha1-name.c: add repo_interpret_branch_name()
        sha1-name.c: remove the_repo from interpret_branch_mark()
        sha1-name.c: remove the_repo from interpret_nth_prior_checkout()
        sha1-name.c: remove the_repo from get_short_oid()
        sha1-name.c: add repo_for_each_abbrev()
        sha1-name.c: store and use repo in struct disambiguate_state
        sha1-name.c: add repo_find_unique_abbrev_r()
        ...
      0b179f31
    • J
      Merge branch 'cc/replace-graft-peel-tags' · ce2a18f2
      Junio C Hamano 提交于
      When given a tag that points at a commit-ish, "git replace --graft"
      failed to peel the tag before writing a replace ref, which did not
      make sense because the old graft mechanism the feature wants to
      mimick only allowed to replace one commit object with another.
      This has been fixed.
      
      * cc/replace-graft-peel-tags:
        replace: peel tag when passing a tag first to --graft
        replace: peel tag when passing a tag as parent to --graft
        t6050: redirect expected error output to a file
        t6050: use test_line_count instead of wc -l
      ce2a18f2
    • J
      Merge branch 'js/trace2-to-directory' · 1b403146
      Junio C Hamano 提交于
      The trace2 tracing facility learned to auto-generate a filename
      when told to log to a directory.
      
      * js/trace2-to-directory:
        trace2: write to directory targets
      1b403146
    • J
      Merge branch 'dl/merge-cleanup-scissors-fix' · b877cb4a
      Junio C Hamano 提交于
      The list of conflicted paths shown in the editor while concluding a
      conflicted merge was shown above the scissors line when the
      clean-up mode is set to "scissors", even though it was commented
      out just like the list of updated paths and other information to
      help the user explain the merge better.
      
      * dl/merge-cleanup-scissors-fix:
        cherry-pick/revert: add scissors line on merge conflict
        sequencer.c: save and restore cleanup mode
        merge: add scissors line on merge conflict
        merge: cleanup messages like commit
        parse-options.h: extract common --cleanup option
        commit: extract cleanup_mode functions to sequencer
        t7502: clean up style
        t7604: clean up style
        t3507: clean up style
        t7600: clean up style
      b877cb4a
    • J
      Merge branch 'pw/sequencer-cleanup-with-signoff-x-fix' · f757794d
      Junio C Hamano 提交于
      "git cherry-pick" run with the "-x" or the "--signoff" option used
      to (and more importantly, ought to) clean up the commit log message
      with the --cleanup=space option by default, but this has been
      broken since late 2017.  This has been fixed.
      
      * pw/sequencer-cleanup-with-signoff-x-fix:
        sequencer: fix cleanup with --signoff and -x
      f757794d
    • J
      Merge branch 'jk/pack-objects-reports-num-objects-to-trace2' · 3d675557
      Junio C Hamano 提交于
      The "git pack-objects" command learned to report the number of
      objects it packed via the trace2 mechanism.
      
      * jk/pack-objects-reports-num-objects-to-trace2:
        pack-objects: write objects packed to trace2
      3d675557
    • J
      Merge branch 'tz/git-svn-doc-markup-fix' · 6e0bef37
      Junio C Hamano 提交于
      Doc formatting fix.
      
      * tz/git-svn-doc-markup-fix:
        Documentation/git-svn: improve asciidoctor compatibility
      6e0bef37
    • J
      Merge branch 'km/empty-repo-is-still-a-repo' · 4ab701b2
      Junio C Hamano 提交于
      Running "git add" on a repository created inside the current
      repository is an explicit indication that the user wants to add it
      as a submodule, but when the HEAD of the inner repository is on an
      unborn branch, it cannot be added as a submodule.  Worse, the files
      in its working tree can be added as if they are a part of the outer
      repository, which is not what the user wants.  These problems are
      being addressed.
      
      * km/empty-repo-is-still-a-repo:
        add: error appropriately on repository with no commits
        dir: do not traverse repositories with no commits
        submodule: refuse to add repository with no commits
      4ab701b2
    • J
      Merge branch 'dl/warn-tagging-a-tag' · a1985623
      Junio C Hamano 提交于
      "git tag" learned to give an advice suggesting it might be a
      mistake when creating an annotated or signed tag that points at
      another tag.
      
      * dl/warn-tagging-a-tag:
        tag: advise on nested tags
        tag: fix formatting
      a1985623
    • J
      Merge branch 'en/merge-directory-renames' · 96379f04
      Junio C Hamano 提交于
      "git merge-recursive" backend recently learned a new heuristics to
      infer file movement based on how other files in the same directory
      moved.  As this is inherently less robust heuristics than the one
      based on the content similarity of the file itself (rather than
      based on what its neighbours are doing), it sometimes gives an
      outcome unexpected by the end users.  This has been toned down to
      leave the renamed paths in higher/conflicted stages in the index so
      that the user can examine and confirm the result.
      
      * en/merge-directory-renames:
        merge-recursive: switch directory rename detection default
        merge-recursive: give callers of handle_content_merge() access to contents
        merge-recursive: track information associated with directory renames
        t6043: fix copied test description to match its purpose
        merge-recursive: switch from (oid,mode) pairs to a diff_filespec
        merge-recursive: cleanup handle_rename_* function signatures
        merge-recursive: track branch where rename occurred in rename struct
        merge-recursive: remove ren[12]_other fields from rename_conflict_info
        merge-recursive: shrink rename_conflict_info
        merge-recursive: move some struct declarations together
        merge-recursive: use 'ci' for rename_conflict_info variable name
        merge-recursive: rename locals 'o' and 'a' to 'obuf' and 'abuf'
        merge-recursive: rename diff_filespec 'one' to 'o'
        merge-recursive: rename merge_options argument from 'o' to 'opt'
        Use 'unsigned short' for mode, like diff_filespec does
      96379f04
  3. 07 5月, 2019 1 次提交
  4. 05 5月, 2019 1 次提交
    • J
      t/perf: add perf script for partial clones · 1bb10d4f
      Jeff King 提交于
      We don't cover the partial clone feature at all in t/perf. Let's at
      least run a few basic tests so that we'll notice any regressions.
      
      We'll do a no-blob clone, and split it into two parts: the actual object
      transfer, and the subsequent checkout (which will of course require
      another transfer to get the blobs). That will help us more clearly
      assess the performance of each.
      
      There are obviously a lot more possibilities besides just a no-blob
      partial clone, but this should serve as a canary that alerts us to any
      generic slow-downs (and we can add more tests later for cases that
      aren't exercised here).
      
      There are a few non-ideal things here that make this not an entirely
      accurate test, but are probably OK for our purposes:
      
        1. We have to do some extra prep/cleanup work inside the timing tests,
           since they impact the on-disk state and the perf harness may run
           each one multiple times.
      
           In practice this is probably OK, since these bits should be much
           less expensive than the operations we are measuring.
      
        2. The clone time is likely to be dominated by the server's object
           enumeration. In the real world, a repo large enough to drive people
           to partial clones is likely to have reachability bitmaps enabled.
      
           And in the opposite direction, our object transfer is happening at
           the speed of a local pipe, whereas in the real world it would
           bottle-neck on the network.
      
           So any percentage speedups should be taken with a grain of salt.
           But hopefully any regressions will produce enough of an effect to
           be noticeable.
      
      This script also demonstrates the recent improvement from dfa33a29
      (clone: do faster object check for partial clones, 2019-04-19):
      
        Test                          dfa33a29^         dfa33a29
        -------------------------------------------------------------------------
        5600.2: clone without blobs   18.41(22.72+1.09)   6.83(11.65+0.50) -62.9%
        5600.3: checkout of result    1.82(3.24+0.26)     1.84(3.24+0.26) +1.1%
      Signed-off-by: NJeff King <peff@peff.net>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      1bb10d4f
  5. 25 4月, 2019 14 次提交
    • C
      Makefile: use fileno macro work around on AIX · ee662bf5
      Clément Chigot 提交于
      Declare FILENO_IS_A_MACRO on AIX
      
      On AIX, fileno(fp) is a macro and need to use the work around already made for BSD's.
      Signed-off-by: NClément Chigot <clement.chigot@atos.net>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      ee662bf5
    • J
      The seventh batch · 83232e38
      Junio C Hamano 提交于
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      83232e38
    • J
      Merge branch 'js/macos-gettext-build' · aa8c8d91
      Junio C Hamano 提交于
      Build with gettext breaks on recent macOS w/ Homebrew when
      /usr/local/bin is not on PATH, which has been corrected.
      
      * js/macos-gettext-build:
        macOS: make sure that gettext is found
      aa8c8d91
    • J
      Merge branch 'bs/sendemail-tighten-anything-by' · 061ed420
      Junio C Hamano 提交于
      The recently added feature to add addresses that are on
      anything-by: trailers in 'git send-email' was found to be way too
      eager and considered nonsense strings as if they can be legitimate
      beginning of *-by: trailer.  This has been tightened.
      
      * bs/sendemail-tighten-anything-by:
        send-email: don't cc *-by lines with '-' prefix
      061ed420
    • J
      Merge branch 'bc/send-email-qp-cr' · 5983ddc1
      Junio C Hamano 提交于
      "git send-email" has been taught to use quoted-printable when the
      payload contains carriage-return.  The use of the mechanism is in
      line with the design originally added the codepath that chooses QP
      when the payload has overly long lines.
      
      * bc/send-email-qp-cr:
        send-email: default to quoted-printable when CR is present
      5983ddc1
    • J
      Merge branch 'nd/submodule-foreach-quiet' · f1c9f6ce
      Junio C Hamano 提交于
      "git submodule foreach <command> --quiet" did not pass the option
      down correctly, which has been corrected.
      
      * nd/submodule-foreach-quiet:
        submodule foreach: fix "<command> --quiet" not being respected
      f1c9f6ce
    • J
      Merge branch 'js/iso8895-test-on-apfs' · 5c2b4ca0
      Junio C Hamano 提交于
      Test fix on APFS that is incapable of store paths in Latin-1.
      
      * js/iso8895-test-on-apfs:
        t9822: skip tests if file names cannot be ISO-8859-1 encoded
      5c2b4ca0
    • J
      Merge branch 'jc/gettext-test-fix' · 49f50f58
      Junio C Hamano 提交于
      The GETTEXT_POISON test option has been quite broken ever since it
      was made runtime-tunable, which has been fixed.
      
      * jc/gettext-test-fix:
        gettext tests: export the restored GIT_TEST_GETTEXT_POISON
      49f50f58
    • J
      Merge branch 'jk/fetch-reachability-error-fix' · 57a6b932
      Junio C Hamano 提交于
      Code clean-up and a fix for "git fetch" by an explicit object name
      (as opposed to fetching refs by name).
      
      * jk/fetch-reachability-error-fix:
        fetch: do not consider peeled tags as advertised tips
        remote.c: make singular free_ref() public
        fetch: use free_refs()
        pkt-line: prepare buffer before handling ERR packets
        upload-pack: send ERR packet for non-tip objects
        t5530: check protocol response for "not our ref"
        t5516: drop ok=sigpipe from unreachable-want tests
      57a6b932
    • J
      Merge branch 'jk/xmalloc' · 449f2db7
      Junio C Hamano 提交于
      The code is updated to check the result of memory allocation before
      it is used in more places, by using xmalloc and/or xcalloc calls.
      
      * jk/xmalloc:
        progress: use xmalloc/xcalloc
        xdiff: use xmalloc/xrealloc
        xdiff: use git-compat-util
        test-prio-queue: use xmalloc
      449f2db7
    • J
      Merge branch 'km/t3000-retitle' · c8e8b5c3
      Junio C Hamano 提交于
      A test update.
      
      * km/t3000-retitle:
        t3000 (ls-files -o): widen description to reflect current tests
      c8e8b5c3
    • J
      Merge branch 'js/untracked-cache-allocfix' · 0830eac1
      Junio C Hamano 提交于
      An underallocation in the code to read the untracked cache
      extension has been corrected.
      
      * js/untracked-cache-allocfix:
        untracked cache: fix off-by-one
      0830eac1
    • J
      Merge branch 'js/t3301-unbreak-notes-test' · af152bd5
      Junio C Hamano 提交于
      Test fix.
      
      * js/t3301-unbreak-notes-test:
        t3301: fix false negative
      af152bd5
    • J
      Merge branch 'tz/doc-apostrophe-no-longer-needed' · c42986f4
      Junio C Hamano 提交于
      Doc formatting fix.
      
      * tz/doc-apostrophe-no-longer-needed:
        Documentation/git-show-branch: avoid literal {apostrophe}
      c42986f4