1. 17 Sep, 2018 21 commits
    • Junio C Hamano's avatar
      Merge branch 'jk/cocci' · 769af0fd
      Junio C Hamano authored
      spatch transformation to replace boolean uses of !hashcmp() to
      newly introduced oideq() is added, and applied, to regain
      performance lost due to support of multiple hash algorithms.
      
      * jk/cocci:
        show_dirstat: simplify same-content check
        read-cache: use oideq() in ce_compare functions
        convert hashmap comparison functions to oideq()
        convert "hashcmp() != 0" to "!hasheq()"
        convert "oidcmp() != 0" to "!oideq()"
        convert "hashcmp() == 0" to hasheq()
        convert "oidcmp() == 0" to oideq()
        introduce hasheq() and oideq()
        coccinelle: use <...> for function exclusion
      769af0fd
    • Junio C Hamano's avatar
      Merge branch 'tg/rerere-doc-updates' · d88949d8
      Junio C Hamano authored
      Clarify a part of technical documentation for rerere.
      
      * tg/rerere-doc-updates:
        rerere: add note about files with existing conflict markers
        rerere: mention caveat about unmatched conflict markers
      d88949d8
    • Junio C Hamano's avatar
      Merge branch 'es/format-patch-rangediff' · 881c019e
      Junio C Hamano authored
      "git format-patch" learned a new "--range-diff" option to explain
      the difference between this version and the previous attempt in
      the cover letter (or after the tree-dashes as a comment).
      
      * es/format-patch-rangediff:
        format-patch: allow --range-diff to apply to a lone-patch
        format-patch: add --creation-factor tweak for --range-diff
        format-patch: teach --range-diff to respect -v/--reroll-count
        format-patch: extend --range-diff to accept revision range
        format-patch: add --range-diff option to embed diff in cover letter
        range-diff: relieve callers of low-level configuration burden
        range-diff: publish default creation factor
        range-diff: respect diff_option.file rather than assuming 'stdout'
      881c019e
    • Junio C Hamano's avatar
      Merge branch 'es/format-patch-interdiff' · 688cb1c9
      Junio C Hamano authored
      "git format-patch" learned a new "--interdiff" option to explain
      the difference between this version and the previous atttempt in
      the cover letter (or after the tree-dashes as a comment).
      
      * es/format-patch-interdiff:
        format-patch: allow --interdiff to apply to a lone-patch
        log-tree: show_log: make commentary block delimiting reusable
        interdiff: teach show_interdiff() to indent interdiff
        format-patch: teach --interdiff to respect -v/--reroll-count
        format-patch: add --interdiff option to embed diff in cover letter
        format-patch: allow additional generated content in make_cover_letter()
      688cb1c9
    • Junio C Hamano's avatar
      Merge branch 'cc/delta-islands' · f3504ea3
      Junio C Hamano authored
      Lift code from GitHub to restrict delta computation so that an
      object that exists in one fork is not made into a delta against
      another object that does not appear in the same forked repository.
      
      * cc/delta-islands:
        pack-objects: move 'layer' into 'struct packing_data'
        pack-objects: move tree_depth into 'struct packing_data'
        t5320: tests for delta islands
        repack: add delta-islands support
        pack-objects: add delta-islands support
        pack-objects: refactor code into compute_layer_order()
        Add delta-islands.{c,h}
      f3504ea3
    • Junio C Hamano's avatar
      Merge branch 'jk/trailer-fixes' · fba96543
      Junio C Hamano authored
      "git interpret-trailers" and its underlying machinery had a buggy
      code that attempted to ignore patch text after commit log message,
      which triggered in various codepaths that will always get the log
      message alone and never get such an input.
      
      * jk/trailer-fixes:
        append_signoff: use size_t for string offsets
        sequencer: ignore "---" divider when parsing trailers
        pretty, ref-filter: format %(trailers) with no_divider option
        interpret-trailers: allow suppressing "---" divider
        interpret-trailers: tighten check for "---" patch boundary
        trailer: pass process_trailer_opts to trailer_info_get()
        trailer: use size_t for iterating trailer list
        trailer: use size_t for string offsets
      fba96543
    • Junio C Hamano's avatar
      Merge branch 'sb/range-diff-colors' · 30035d1d
      Junio C Hamano authored
      The color output support for recently introduced "range-diff"
      command got tweaked a bit.
      
      * sb/range-diff-colors:
        range-diff: indent special lines as context
        range-diff: make use of different output indicators
        diff.c: add --output-indicator-{new, old, context}
        diff.c: rewrite emit_line_0 more understandably
        diff.c: omit check for line prefix in emit_line_0
        diff: use emit_line_0 once per line
        diff.c: add set_sign to emit_line_0
        diff.c: reorder arguments for emit_line_ws_markup
        diff.c: simplify caller of emit_line_0
        t3206: add color test for range-diff --dual-color
        test_decode_color: understand FAINT and ITALIC
      30035d1d
    • Junio C Hamano's avatar
      Merge branch 'jk/pack-delta-reuse-with-bitmap' · 3ebdef2e
      Junio C Hamano authored
      When creating a thin pack, which allows objects to be made into a
      delta against another object that is not in the resulting pack but
      is known to be present on the receiving end, the code learned to
      take advantage of the reachability bitmap; this allows the server
      to send a delta against a base beyond the "boundary" commit.
      
      * jk/pack-delta-reuse-with-bitmap:
        pack-objects: reuse on-disk deltas for thin "have" objects
        pack-bitmap: save "have" bitmap from walk
        t/perf: add perf tests for fetches from a bitmapped server
        t/perf: add infrastructure for measuring sizes
        t/perf: factor out percent calculations
        t/perf: factor boilerplate out of test_perf
      3ebdef2e
    • Junio C Hamano's avatar
      Merge branch 'nd/unpack-trees-with-cache-tree' · 7e794d0a
      Junio C Hamano authored
      The unpack_trees() API used in checking out a branch and merging
      walks one or more trees along with the index.  When the cache-tree
      in the index tells us that we are walking a tree whose flattened
      contents is known (i.e. matches a span in the index), as linearly
      scanning a span in the index is much more efficient than having to
      open tree objects recursively and listing their entries, the walk
      can be optimized, which is done in this topic.
      
      * nd/unpack-trees-with-cache-tree:
        Document update for nd/unpack-trees-with-cache-tree
        cache-tree: verify valid cache-tree in the test suite
        unpack-trees: add missing cache invalidation
        unpack-trees: reuse (still valid) cache-tree from src_index
        unpack-trees: reduce malloc in cache-tree walk
        unpack-trees: optimize walking same trees with cache-tree
        unpack-trees: add performance tracing
        trace.h: support nested performance tracing
      7e794d0a
    • Junio C Hamano's avatar
      Merge branch 'ds/reachable' · 1b7a91da
      Junio C Hamano authored
      The code for computing history reachability has been shuffled,
      obtained a bunch of new tests to cover them, and then being
      improved.
      
      * ds/reachable:
        commit-reach: correct accidental #include of C file
        commit-reach: use can_all_from_reach
        commit-reach: make can_all_from_reach... linear
        commit-reach: replace ref_newer logic
        test-reach: test commit_contains
        test-reach: test can_all_from_reach_with_flags
        test-reach: test reduce_heads
        test-reach: test get_merge_bases_many
        test-reach: test is_descendant_of
        test-reach: test in_merge_bases
        test-reach: create new test tool for ref_newer
        commit-reach: move can_all_from_reach_with_flags
        upload-pack: generalize commit date cutoff
        upload-pack: refactor ok_to_give_up()
        upload-pack: make reachable() more generic
        commit-reach: move commit_contains from ref-filter
        commit-reach: move ref_newer from remote.c
        commit.h: remove method declarations
        commit-reach: move walk methods from commit.c
      1b7a91da
    • Junio C Hamano's avatar
      Merge branch 'sb/submodule-update-in-c' · 4d6d6ef1
      Junio C Hamano authored
      "git submodule update" is getting rewritten piece-by-piece into C.
      
      * sb/submodule-update-in-c:
        submodule--helper: introduce new update-module-mode helper
        submodule--helper: replace connect-gitdir-workingtree by ensure-core-worktree
        builtin/submodule--helper: factor out method to update a single submodule
        builtin/submodule--helper: store update_clone information in a struct
        builtin/submodule--helper: factor out submodule updating
        git-submodule.sh: rename unused variables
        git-submodule.sh: align error reporting for update mode to use path
      4d6d6ef1
    • Junio C Hamano's avatar
      Merge branch 'tg/rerere' · 39006893
      Junio C Hamano authored
      Fixes to "git rerere" corner cases, especially when conflict
      markers cannot be parsed in the file.
      
      * tg/rerere:
        rerere: recalculate conflict ID when unresolved conflict is committed
        rerere: teach rerere to handle nested conflicts
        rerere: return strbuf from handle path
        rerere: factor out handle_conflict function
        rerere: only return whether a path has conflicts or not
        rerere: fix crash with files rerere can't handle
        rerere: add documentation for conflict normalization
        rerere: mark strings for translation
        rerere: wrap paths in output in sq
        rerere: lowercase error messages
        rerere: unify error messages when read_cache fails
      39006893
    • Junio C Hamano's avatar
      Merge branch 'ds/multi-pack-index' · 49f210fd
      Junio C Hamano authored
      When there are too many packfiles in a repository (which is not
      recommended), looking up an object in these would require
      consulting many pack .idx files; a new mechanism to have a single
      file that consolidates all of these .idx files is introduced.
      
      * ds/multi-pack-index: (32 commits)
        pack-objects: consider packs in multi-pack-index
        midx: test a few commands that use get_all_packs
        treewide: use get_all_packs
        packfile: add all_packs list
        midx: fix bug that skips midx with alternates
        midx: stop reporting garbage
        midx: mark bad packed objects
        multi-pack-index: store local property
        multi-pack-index: provide more helpful usage info
        midx: clear midx on repack
        packfile: skip loading index if in multi-pack-index
        midx: prevent duplicate packfile loads
        midx: use midx in approximate_object_count
        midx: use existing midx when writing new one
        midx: use midx in abbreviation calculations
        midx: read objects from multi-pack-index
        config: create core.multiPackIndex setting
        midx: write object offsets
        midx: write object id fanout chunk
        midx: write object ids in a chunk
        ...
      49f210fd
    • Junio C Hamano's avatar
      Merge branch 'jk/branch-l-1-repurpose' · 7dc341ce
      Junio C Hamano authored
      Updated plan to repurpose the "-l" option to "git branch".
      
      * jk/branch-l-1-repurpose:
        doc/git-branch: remove obsolete "-l" references
        branch: make "-l" a synonym for "--list"
      7dc341ce
    • Junio C Hamano's avatar
      Merge branch 'tg/conflict-marker-size' · 4dd0c4a4
      Junio C Hamano authored
      Developer aid.
      
      * tg/conflict-marker-size:
        .gitattributes: add conflict-marker-size for relevant files
      4dd0c4a4
    • Junio C Hamano's avatar
      Merge branch 'ts/doc-build-manpage-xsl-quietly' · 6709a117
      Junio C Hamano authored
      Build tweak.
      
      * ts/doc-build-manpage-xsl-quietly:
        Documentation/Makefile: make manpage-base-url.xsl generation quieter
      6709a117
    • Junio C Hamano's avatar
      Merge branch 'jk/rev-list-stdin-noop-is-ok' · 8b6f6075
      Junio C Hamano authored
      "git rev-list --stdin </dev/null" used to be an error; it now shows
      no output without an error.  "git rev-list --stdin --default HEAD"
      still falls back to the given default when nothing is given on the
      standard input.
      
      * jk/rev-list-stdin-noop-is-ok:
        rev-list: make empty --stdin not an error
      8b6f6075
    • Junio C Hamano's avatar
      Merge branch 'bp/checkout-new-branch-optim' · 0faaf7ea
      Junio C Hamano authored
      "git checkout -b newbranch [HEAD]" should not have to do as much as
      checking out a commit different from HEAD.  An attempt is made to
      optimize this special case.
      
      * bp/checkout-new-branch-optim:
        checkout: optimize "git checkout -b <new_branch>"
      0faaf7ea
    • Junio C Hamano's avatar
      Merge branch 'sg/t1404-update-ref-test-timeout' · ea644144
      Junio C Hamano authored
      An attempt to unflake a test a bit.
      
      * sg/t1404-update-ref-test-timeout:
        t1404: increase core.packedRefsTimeout to avoid occasional test failure
      ea644144
    • Junio C Hamano's avatar
      Merge branch 'nd/clone-case-smashing-warning' · c2407322
      Junio C Hamano authored
      Running "git clone" against a project that contain two files with
      pathnames that differ only in cases on a case insensitive
      filesystem would result in one of the files lost because the
      underlying filesystem is incapable of holding both at the same
      time.  An attempt is made to detect such a case and warn.
      
      * nd/clone-case-smashing-warning:
        clone: report duplicate entries on case-insensitive filesystems
      c2407322
    • Junio C Hamano's avatar
      Merge branch 'mk/http-backend-content-length' · 66094619
      Junio C Hamano authored
      Test update.
      
      * mk/http-backend-content-length:
        http-backend test: make empty CONTENT_LENGTH test more realistic
      66094619
  2. 11 Sep, 2018 1 commit
  3. 10 Sep, 2018 4 commits
    • Junio C Hamano's avatar
      Git 2.19 · 1d4361b0
      Junio C Hamano authored
      Signed-off-by: default avatarJunio C Hamano <[email protected]>
      1d4361b0
    • Junio C Hamano's avatar
      Merge tag 'l10n-2.19.0-rnd2' of git://github.com/git-l10n/git-po · 46d9a284
      Junio C Hamano authored
      l10n for Git 2.19.0 round 2
      
      * tag 'l10n-2.19.0-rnd2' of git://github.com/git-l10n/git-po:
        l10n: zh_CN: for git v2.19.0 l10n round 1 to 2
        l10n: bg.po: Updated Bulgarian translation (3958t)
        l10n: vi.po(3958t): updated Vietnamese translation v2.19.0 round 2
        l10n: es.po v2.19.0 round 2
        l10n: fr.po v2.19.0 rnd 2
        l10n: fr.po v2.19.0 rnd 1
        l10n: fr: fix a message seen in git bisect
        l10n: sv.po: Update Swedish translation (3958t0f0u)
        l10n: git.pot: v2.19.0 round 2 (3 new, 5 removed)
        l10n: ru.po: update Russian translation
        l10n: git.pot: v2.19.0 round 1 (382 new, 30 removed)
        l10n: de.po: translate 108 new messages
        l10n: zh_CN: review for git 2.18.0
        l10n: sv.po: Update Swedish translation(3608t0f0u)
      46d9a284
    • Junio C Hamano's avatar
      Merge branch 'jn/submodule-core-worktree-revert' · f38a45b9
      Junio C Hamano authored
      * jn/submodule-core-worktree-revert:
        Revert "Merge branch 'sb/submodule-core-worktree'"
      f38a45b9
    • Junio C Hamano's avatar
      Merge branch 'mk/http-backend-content-length' · fe468eff
      Junio C Hamano authored
      The earlier attempt barfed when given a CONTENT_LENGTH that is
      set to an empty string.  RFC 3875 is fairly clear that in this
      case we should not read any message body, but we've been reading
      through to the EOF in previous versions (which did not even pay
      attention to the environment variable), so keep that behaviour for
      now in this late update.
      
      * mk/http-backend-content-length:
        http-backend: allow empty CONTENT_LENGTH
      fe468eff
  4. 09 Sep, 2018 3 commits
  5. 08 Sep, 2018 1 commit
    • Jonathan Nieder's avatar
      Revert "Merge branch 'sb/submodule-core-worktree'" · f178c13f
      Jonathan Nieder authored
      This reverts commit 7e25437d, reversing
      changes made to 00624d60.
      
      v2.19.0-rc0~165^2~1 (submodule: ensure core.worktree is set after
      update, 2018-06-18) assumes an "absorbed" submodule layout, where the
      submodule's Git directory is in the superproject's .git/modules/
      directory and .git in the submodule worktree is a .git file pointing
      there.  In particular, it uses $GIT_DIR/modules/$name to find the
      submodule to find out whether it already has core.worktree set, and it
      uses connect_work_tree_and_git_dir if not, resulting in
      
      	fatal: could not open sub/.git for writing
      
      The context behind that patch: v2.19.0-rc0~165^2~2 (submodule: unset
      core.worktree if no working tree is present, 2018-06-12) unsets
      core.worktree when running commands like "git checkout
      --recurse-submodules" to switch to a branch without the submodule.  If
      a user then uses "git checkout --no-recurse-submodules" to switch back
      to a branch with the submodule and runs "git submodule update", this
      patch is needed to ensure that commands using the submodule directly
      are aware of the path to the worktree.
      
      It is late in the release cycle, so revert the whole 3-patch series.
      We can try again later for 2.20.
      Reported-by: default avatarAllan Sandfeld Jensen <[email protected]>
      Helped-by: Stefan Beller's avatarStefan Beller <[email protected]>
      Signed-off-by: default avatarJonathan Nieder <[email protected]>
      Signed-off-by: default avatarJunio C Hamano <[email protected]>
      f178c13f
  6. 07 Sep, 2018 2 commits
  7. 06 Sep, 2018 2 commits
  8. 05 Sep, 2018 3 commits
  9. 04 Sep, 2018 3 commits