git/git.git
2 years agomulti-pack-index: verify corrupt chunk lookup table
Derrick Stolee [Thu, 13 Sep 2018 18:02:16 +0000 (11:02 -0700)]
multi-pack-index: verify corrupt chunk lookup table

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agomulti-pack-index: verify bad header
Derrick Stolee [Thu, 13 Sep 2018 18:02:15 +0000 (11:02 -0700)]
multi-pack-index: verify bad header

When verifying if a multi-pack-index file is valid, we want the
command to fail to signal an invalid file. Previously, we wrote
an error to stderr and continued as if we had no multi-pack-index.
Now, die() instead of error().

Add tests that check corrupted headers in a few ways:

* Bad signature
* Bad file version
* Bad hash version
* Truncated hash count
* Extended hash count

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agomulti-pack-index: add 'verify' verb
Derrick Stolee [Thu, 13 Sep 2018 18:02:13 +0000 (11:02 -0700)]
multi-pack-index: add 'verify' verb

The multi-pack-index builtin writes multi-pack-index files, and
uses a 'write' verb to do so. Add a 'verify' verb that checks this
file matches the contents of the pack-indexes it replaces.

The current implementation is a no-op, but will be extended in
small increments in later commits.

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agopack-objects: consider packs in multi-pack-index
Derrick Stolee [Mon, 20 Aug 2018 16:52:08 +0000 (16:52 +0000)]
pack-objects: consider packs in multi-pack-index

When running 'git pack-objects --local', we want to avoid packing
objects that are in an alternate. Currently, we check for these
objects using the packed_git_mru list, which excludes the pack-files
covered by a multi-pack-index.

Add a new iteration over the multi-pack-indexes to find these
copies and mark them as unwanted.

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agomidx: test a few commands that use get_all_packs
Derrick Stolee [Mon, 20 Aug 2018 16:52:06 +0000 (16:52 +0000)]
midx: test a few commands that use get_all_packs

The new get_all_packs() method exposed the packfiles coverede by
a multi-pack-index. Before, the 'git cat-file --batch' and
'git count-objects' commands would skip objects in an environment
with a multi-pack-index.

Further, a reachability bitmap would be ignored if its pack-file
was covered by a multi-pack-index.

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agotreewide: use get_all_packs
Derrick Stolee [Mon, 20 Aug 2018 16:52:04 +0000 (16:52 +0000)]
treewide: use get_all_packs

There are many places in the codebase that want to iterate over
all packfiles known to Git. The purposes are wide-ranging, and
those that can take advantage of the multi-pack-index already
do. So, use get_all_packs() instead of get_packed_git() to be
sure we are iterating over all packfiles.

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agopackfile: add all_packs list
Derrick Stolee [Mon, 20 Aug 2018 16:52:02 +0000 (16:52 +0000)]
packfile: add all_packs list

If a repo contains a multi-pack-index, then the packed_git list
does not contain the packfiles that are covered by the multi-pack-index.
This is important for doing object lookups, abbreviations, and
approximating object count. However, there are many operations that
really want to iterate over all packfiles.

Create a new 'all_packs' linked list that contains this list, starting
with the packfiles in the multi-pack-index and then continuing along
the packed_git linked list.

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agomidx: fix bug that skips midx with alternates
Derrick Stolee [Mon, 20 Aug 2018 16:52:00 +0000 (16:52 +0000)]
midx: fix bug that skips midx with alternates

The logic for constructing the linked list of multi-pack-indexes
in the object store is incorrect. If the local object store has
a multi-pack-index, but an alternate does not, then the list is
dropped.

Add tests that would have revealed this bug.

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agomidx: stop reporting garbage
Derrick Stolee [Mon, 20 Aug 2018 16:51:59 +0000 (16:51 +0000)]
midx: stop reporting garbage

When prepare_packed_git is called with the report_garbage method
initialized, we report unexpected files in the objects directory
as garbage. Stop reporting the multi-pack-index and the pack-files
it covers as garbage.

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agomidx: mark bad packed objects
Derrick Stolee [Mon, 20 Aug 2018 16:51:57 +0000 (16:51 +0000)]
midx: mark bad packed objects

When an object fails to decompress from a pack-file, we mark the object
as 'bad' so we can retry with a different copy of the object (if such a
copy exists).

Before now, the multi-pack-index did not update the bad objects list for
the pack-files it contains, and we did not check the bad objects list
when reading an object. Now, do both.

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agomulti-pack-index: store local property
Derrick Stolee [Mon, 20 Aug 2018 16:51:55 +0000 (16:51 +0000)]
multi-pack-index: store local property

A pack-file is 'local' if it is stored within the usual object
directory. If it is stored in an alternate, it is non-local.

Pack-files are stored using a 'pack_local' member in the packed_git
struct. Add a similar 'local' member to the multi_pack_index struct
and 'local' parameters to the methods that load and prepare multi-
pack-indexes.

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agomulti-pack-index: provide more helpful usage info
Derrick Stolee [Mon, 20 Aug 2018 16:51:53 +0000 (16:51 +0000)]
multi-pack-index: provide more helpful usage info

The multi-pack-index builtin has a very simple command-line
interface. Instead of simply reporting usage, give the user a
hint to why the arguments failed.

Reported-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agoSync 'ds/multi-pack-index' to v2.19.0-rc0
Junio C Hamano [Mon, 20 Aug 2018 22:29:54 +0000 (15:29 -0700)]
Sync 'ds/multi-pack-index' to v2.19.0-rc0

* ds/multi-pack-index: (23 commits)
  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
  midx: sort and deduplicate objects from packfiles
  midx: read pack names into array
  multi-pack-index: write pack names in chunk
  multi-pack-index: read packfile list
  packfile: generalize pack directory list
  t5319: expand test data
  multi-pack-index: load into memory
  midx: write header information to lockfile
  multi-pack-index: add 'write' verb
  ...

2 years agoGit 2.19-rc0 v2.19.0-rc0
Junio C Hamano [Mon, 20 Aug 2018 18:37:21 +0000 (11:37 -0700)]
Git 2.19-rc0

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agoMerge branch 'ab/checkout-default-remote'
Junio C Hamano [Mon, 20 Aug 2018 19:53:46 +0000 (12:53 -0700)]
Merge branch 'ab/checkout-default-remote'

* ab/checkout-default-remote:
  t2024: mark test using "checkout -p" with PERL prerequisite

2 years agoMerge branch 'hn/highlight-sideband-keywords'
Junio C Hamano [Mon, 20 Aug 2018 19:41:34 +0000 (12:41 -0700)]
Merge branch 'hn/highlight-sideband-keywords'

The sideband code learned to optionally paint selected keywords at
the beginning of incoming lines on the receiving end.

* hn/highlight-sideband-keywords:
  sideband: do not read beyond the end of input
  sideband: highlight keywords in remote sideband output

2 years agoMerge branch 'nd/cherry-pick-quit-fix'
Junio C Hamano [Mon, 20 Aug 2018 19:41:34 +0000 (12:41 -0700)]
Merge branch 'nd/cherry-pick-quit-fix'

"git cherry-pick --quit" failed to remove CHERRY_PICK_HEAD even
though we won't be in a cherry-pick session after it returns, which
has been corrected.

* nd/cherry-pick-quit-fix:
  cherry-pick: fix --quit not deleting CHERRY_PICK_HEAD

2 years agoMerge branch 'sb/submodule-cleanup'
Junio C Hamano [Mon, 20 Aug 2018 19:41:33 +0000 (12:41 -0700)]
Merge branch 'sb/submodule-cleanup'

A few preliminary minor clean-ups in the area around submodules.

* sb/submodule-cleanup:
  builtin/submodule--helper: remove stray new line
  t7410: update to new style

2 years agoMerge branch 'pw/rebase-i-merge-segv-fix'
Junio C Hamano [Mon, 20 Aug 2018 19:41:33 +0000 (12:41 -0700)]
Merge branch 'pw/rebase-i-merge-segv-fix'

"git rebase -i", when a 'merge <branch>' insn in its todo list
fails, segfaulted, which has been (minimally) corrected.

* pw/rebase-i-merge-segv-fix:
  rebase -i: fix SIGSEGV when 'merge <branch>' fails
  t3430: add conflicting commit

2 years agoMerge branch 'pw/rebase-i-squash-number-fix'
Junio C Hamano [Mon, 20 Aug 2018 19:41:33 +0000 (12:41 -0700)]
Merge branch 'pw/rebase-i-squash-number-fix'

When "git rebase -i" is told to squash two or more commits into
one, it labeled the log message for each commit with its number.
It correctly called the first one "1st commit", but the next one
was "commit #1", which was off-by-one.  This has been corrected.

* pw/rebase-i-squash-number-fix:
  rebase -i: fix numbering in squash message

2 years agoMerge branch 'sb/config-write-fix'
Junio C Hamano [Mon, 20 Aug 2018 19:41:32 +0000 (12:41 -0700)]
Merge branch 'sb/config-write-fix'

Recent update to "git config" broke updating variable in a
subsection, which has been corrected.

* sb/config-write-fix:
  git-config: document accidental multi-line setting in deprecated syntax
  config: fix case sensitive subsection names on writing
  t1300: document current behavior of setting options

2 years agoMerge branch 'ab/submodule-relative-url-tests'
Junio C Hamano [Mon, 20 Aug 2018 19:41:32 +0000 (12:41 -0700)]
Merge branch 'ab/submodule-relative-url-tests'

Test updates.

* ab/submodule-relative-url-tests:
  submodule: add more exhaustive up-path testing

2 years agoMerge branch 'en/incl-forward-decl'
Junio C Hamano [Mon, 20 Aug 2018 19:41:32 +0000 (12:41 -0700)]
Merge branch 'en/incl-forward-decl'

Code hygiene improvement for the header files.

* en/incl-forward-decl:
  Remove forward declaration of an enum
  compat/precompose_utf8.h: use more common include guard style
  urlmatch.h: fix include guard
  Move definition of enum branch_track from cache.h to branch.h
  alloc: make allocate_alloc_state and clear_alloc_state more consistent
  Add missing includes and forward declarations

2 years agoMerge branch 'jt/repack-promisor-packs'
Junio C Hamano [Mon, 20 Aug 2018 18:33:55 +0000 (11:33 -0700)]
Merge branch 'jt/repack-promisor-packs'

After a partial clone, repeated fetches from promisor remote would
have accumulated many packfiles marked with .promisor bit without
getting them coalesced into fewer packfiles, hurting performance.
"git repack" now learned to repack them.

* jt/repack-promisor-packs:
  repack: repack promisor objects if -a or -A is set
  repack: refactor setup of pack-objects cmd

2 years agoMerge branch 'wc/make-funnynames-shared-lazy-prereq'
Junio C Hamano [Mon, 20 Aug 2018 18:33:55 +0000 (11:33 -0700)]
Merge branch 'wc/make-funnynames-shared-lazy-prereq'

A test prerequisite defined by various test scripts with slightly
different semantics has been consolidated into a single copy and
made into a lazily defined one.

* wc/make-funnynames-shared-lazy-prereq:
  t: factor out FUNNYNAMES as shared lazy prereq

2 years agoMerge branch 'jh/partial-clone-doc'
Junio C Hamano [Mon, 20 Aug 2018 18:33:55 +0000 (11:33 -0700)]
Merge branch 'jh/partial-clone-doc'

Doc updates.

* jh/partial-clone-doc:
  partial-clone: render design doc using asciidoc

2 years agoMerge branch 'js/chain-lint-attrfix'
Junio C Hamano [Mon, 20 Aug 2018 18:33:54 +0000 (11:33 -0700)]
Merge branch 'js/chain-lint-attrfix'

Test fix.

* js/chain-lint-attrfix:
  chainlint: fix for core.autocrlf=true

2 years agoMerge branch 'sb/pull-rebase-submodule'
Junio C Hamano [Mon, 20 Aug 2018 18:33:54 +0000 (11:33 -0700)]
Merge branch 'sb/pull-rebase-submodule'

"git pull --rebase -v" in a repository with a submodule barfed as
an intermediate process did not understand what "-v(erbose)" flag
meant, which has been fixed.

* sb/pull-rebase-submodule:
  git-submodule.sh: accept verbose flag in cmd_update to be non-quiet

2 years agoMerge branch 'js/range-diff'
Junio C Hamano [Mon, 20 Aug 2018 18:33:53 +0000 (11:33 -0700)]
Merge branch 'js/range-diff'

"git tbdiff" that lets us compare individual patches in two
iterations of a topic has been rewritten and made into a built-in
command.

* js/range-diff: (21 commits)
  range-diff: use dim/bold cues to improve dual color mode
  range-diff: make --dual-color the default mode
  range-diff: left-pad patch numbers
  completion: support `git range-diff`
  range-diff: populate the man page
  range-diff --dual-color: skip white-space warnings
  range-diff: offer to dual-color the diffs
  diff: add an internal option to dual-color diffs of diffs
  color: add the meta color GIT_COLOR_REVERSE
  range-diff: use color for the commit pairs
  range-diff: add tests
  range-diff: do not show "function names" in hunk headers
  range-diff: adjust the output of the commit pairs
  range-diff: suppress the diff headers
  range-diff: indent the diffs just like tbdiff
  range-diff: right-trim commit messages
  range-diff: also show the diff between patches
  range-diff: improve the order of the shown commits
  range-diff: first rudimentary implementation
  Introduce `range-diff` to compare iterations of a topic branch
  ...

2 years agoMerge branch 'nd/no-the-index'
Junio C Hamano [Mon, 20 Aug 2018 18:33:53 +0000 (11:33 -0700)]
Merge branch 'nd/no-the-index'

The more library-ish parts of the codebase learned to work on the
in-core index-state instance that is passed in by their callers,
instead of always working on the singleton "the_index" instance.

* nd/no-the-index: (24 commits)
  blame.c: remove implicit dependency on the_index
  apply.c: remove implicit dependency on the_index
  apply.c: make init_apply_state() take a struct repository
  apply.c: pass struct apply_state to more functions
  resolve-undo.c: use the right index instead of the_index
  archive-*.c: use the right repository
  archive.c: avoid access to the_index
  grep: use the right index instead of the_index
  attr: remove index from git_attr_set_direction()
  entry.c: use the right index instead of the_index
  submodule.c: use the right index instead of the_index
  pathspec.c: use the right index instead of the_index
  unpack-trees: avoid the_index in verify_absent()
  unpack-trees: convert clear_ce_flags* to avoid the_index
  unpack-trees: don't shadow global var the_index
  unpack-trees: add a note about path invalidation
  unpack-trees: remove 'extern' on function declaration
  ls-files: correct index argument to get_convert_attr_ascii()
  preload-index.c: use the right index instead of the_index
  dir.c: remove an implicit dependency on the_index in pathspec code
  ...

2 years agoMerge branch 'es/chain-lint-more'
Junio C Hamano [Mon, 20 Aug 2018 18:33:53 +0000 (11:33 -0700)]
Merge branch 'es/chain-lint-more'

Improve built-in facility to catch broken &&-chain in the tests.

* es/chain-lint-more:
  chainlint: add test of pathological case which triggered false positive
  chainlint: recognize multi-line quoted strings more robustly
  chainlint: let here-doc and multi-line string commence on same line
  chainlint: recognize multi-line $(...) when command cuddled with "$("
  chainlint: match 'quoted' here-doc tags
  chainlint: match arbitrary here-docs tags rather than hard-coded names

2 years agoMerge branch 'sg/t5310-empty-input-fix'
Junio C Hamano [Mon, 20 Aug 2018 18:33:52 +0000 (11:33 -0700)]
Merge branch 'sg/t5310-empty-input-fix'

Test fix.

* sg/t5310-empty-input-fix:
  t5310-pack-bitmaps: fix bogus 'pack-objects to file can use bitmap' test

2 years agoMerge branch 'js/mingw-o-append'
Junio C Hamano [Mon, 20 Aug 2018 18:33:52 +0000 (11:33 -0700)]
Merge branch 'js/mingw-o-append'

Among the three codepaths we use O_APPEND to open a file for
appending, one used for writing GIT_TRACE output requires O_APPEND
implementation that behaves sensibly when multiple processes are
writing to the same file.  POSIX emulation used in the Windows port
has been updated to improve in this area.

* js/mingw-o-append:
  mingw: enable atomic O_APPEND

2 years agoMerge branch 'jk/for-each-object-iteration'
Junio C Hamano [Mon, 20 Aug 2018 18:33:52 +0000 (11:33 -0700)]
Merge branch 'jk/for-each-object-iteration'

The API to iterate over all objects learned to optionally list
objects in the order they appear in packfiles, which helps locality
of access if the caller accesses these objects while as objects are
enumerated.

* jk/for-each-object-iteration:
  for_each_*_object: move declarations to object-store.h
  cat-file: use a single strbuf for all output
  cat-file: split batch "buf" into two variables
  cat-file: use oidset check-and-insert
  cat-file: support "unordered" output for --batch-all-objects
  cat-file: rename batch_{loose,packed}_object callbacks
  t1006: test cat-file --batch-all-objects with duplicates
  for_each_packed_object: support iterating in pack-order
  for_each_*_object: give more comprehensive docstrings
  for_each_*_object: take flag arguments as enum
  for_each_*_object: store flag definitions in a single location

2 years agoMerge branch 'ab/fetch-tags-noclobber'
Junio C Hamano [Mon, 20 Aug 2018 18:33:52 +0000 (11:33 -0700)]
Merge branch 'ab/fetch-tags-noclobber'

Test and doc clean-ups.

* ab/fetch-tags-noclobber:
  pull doc: fix a long-standing grammar error
  fetch tests: correct a comment "remove it" -> "remove them"
  push tests: assert re-pushing annotated tags
  push tests: add more testing for forced tag pushing
  push tests: fix logic error in "push" test assertion
  push tests: remove redundant 'git push' invocation
  fetch tests: change "Tag" test tag to "testTag"

2 years agoMerge branch 'ng/mergetool-lose-final-prompt'
Junio C Hamano [Mon, 20 Aug 2018 18:33:51 +0000 (11:33 -0700)]
Merge branch 'ng/mergetool-lose-final-prompt'

"git mergetool" stopped and gave an extra prompt to continue after
the last path has been handled, which did not make much sense.

* ng/mergetool-lose-final-prompt:
  mergetool: don't suggest to continue after last file

2 years agoMerge branch 'jt/commit-graph-per-object-store'
Junio C Hamano [Mon, 20 Aug 2018 18:33:51 +0000 (11:33 -0700)]
Merge branch 'jt/commit-graph-per-object-store'

Test update.

* jt/commit-graph-per-object-store:
  t5318: avoid unnecessary command substitutions

2 years agoMerge branch 'ds/commit-graph-fsck'
Junio C Hamano [Mon, 20 Aug 2018 18:33:51 +0000 (11:33 -0700)]
Merge branch 'ds/commit-graph-fsck'

Test fix.

* ds/commit-graph-fsck:
  t5318: use 'test_cmp_bin' to compare commit-graph files

2 years agoMerge branch 'jt/fetch-negotiator-skipping'
Junio C Hamano [Mon, 20 Aug 2018 18:33:51 +0000 (11:33 -0700)]
Merge branch 'jt/fetch-negotiator-skipping'

Test fix.

* jt/fetch-negotiator-skipping:
  t5552: suppress upload-pack trace output

2 years agoMerge branch 'jc/gpg-status'
Junio C Hamano [Mon, 20 Aug 2018 18:33:50 +0000 (11:33 -0700)]
Merge branch 'jc/gpg-status'

"git verify-tag" and "git verify-commit" have been taught to use
the exit status of underlying "gpg --verify" to signal bad or
untrusted signature they found.

* jc/gpg-status:
  gpg-interface: propagate exit status from gpg back to the callers

2 years agoMerge branch 'jc/update-index-doc'
Junio C Hamano [Mon, 20 Aug 2018 18:33:50 +0000 (11:33 -0700)]
Merge branch 'jc/update-index-doc'

Doc update.

* jc/update-index-doc:
  update-index: there no longer is `apply --index-info`

2 years agoMerge branch 'en/update-index-doc'
Junio C Hamano [Mon, 20 Aug 2018 18:33:50 +0000 (11:33 -0700)]
Merge branch 'en/update-index-doc'

Doc update.

* en/update-index-doc:
  git-update-index.txt: reword possibly confusing example

2 years agoMerge branch 'js/typofixes'
Junio C Hamano [Mon, 20 Aug 2018 18:33:50 +0000 (11:33 -0700)]
Merge branch 'js/typofixes'

Comment update.

* js/typofixes:
  remote-curl: remove spurious period
  git-compat-util.h: fix typo

2 years agoMerge branch 'sk/instaweb-rh-update'
Junio C Hamano [Mon, 20 Aug 2018 18:33:49 +0000 (11:33 -0700)]
Merge branch 'sk/instaweb-rh-update'

"git instaweb" has been adjusted to run better with newer Apache on
RedHat based distros.

* sk/instaweb-rh-update:
  git-instaweb: fix apache2 config with apache >= 2.4
  git-instaweb: support Fedora/Red Hat apache module path

2 years agoMerge branch 'en/t7406-fixes'
Junio C Hamano [Mon, 20 Aug 2018 18:33:48 +0000 (11:33 -0700)]
Merge branch 'en/t7406-fixes'

Test fixes.

* en/t7406-fixes:
  t7406: avoid using test_must_fail for commands other than git
  t7406: prefer test_* helper functions to test -[feds]
  t7406: avoid having git commands upstream of a pipe
  t7406: simplify by using diff --name-only instead of diff --raw
  t7406: fix call that was failing for the wrong reason

2 years agoMerge branch 'js/rebase-merges-exec-fix'
Junio C Hamano [Mon, 20 Aug 2018 18:33:48 +0000 (11:33 -0700)]
Merge branch 'js/rebase-merges-exec-fix'

The "--exec" option to "git rebase --rebase-merges" placed the exec
commands at wrong places, which has been corrected.

* js/rebase-merges-exec-fix:
  rebase --exec: make it work with --rebase-merges
  t3430: demonstrate what -r, --autosquash & --exec should do

2 years agoMerge branch 'ab/test-must-be-empty-for-master'
Junio C Hamano [Mon, 20 Aug 2018 18:33:48 +0000 (11:33 -0700)]
Merge branch 'ab/test-must-be-empty-for-master'

Test updates.

* ab/test-must-be-empty-for-master:
  tests: make use of the test_must_be_empty function

2 years agoMerge branch 'ab/newhash-is-sha256'
Junio C Hamano [Mon, 20 Aug 2018 18:33:48 +0000 (11:33 -0700)]
Merge branch 'ab/newhash-is-sha256'

Documentation update.

* ab/newhash-is-sha256:
  doc hash-function-transition: pick SHA-256 as NewHash
  doc hash-function-transition: note the lack of a changelog

2 years agot2024: mark test using "checkout -p" with PERL prerequisite
Ævar Arnfjörð Bjarmason [Sat, 18 Aug 2018 07:01:47 +0000 (07:01 +0000)]
t2024: mark test using "checkout -p" with PERL prerequisite

Checkout with the -p switch uses the "add interactive" framework which
is written in Perl.

One test added in 8d7b558bae ("checkout & worktree: introduce
checkout.defaultRemote", 2018-06-05) didn't declare the PERL
prerequisite, breaking the test when built with NO_PERL.

Reported-by: CB Bailey <cb@hashpling.org>
Signed-off-by: CB Bailey <cb@hashpling.org>
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agosideband: do not read beyond the end of input
Junio C Hamano [Sat, 18 Aug 2018 16:16:28 +0000 (09:16 -0700)]
sideband: do not read beyond the end of input

The caller of maybe_colorize_sideband() gives a counted buffer
<src, n>, but the callee checked src[] as if it were a NUL terminated
buffer.  If src[] had all isspace() bytes in it, we would have made
n negative, and then

 (1) made number of strncasecmp() calls to see if the remaining
     bytes in src[] matched keywords, reading beyond the end of the
     array (this actually happens even if n does not go negative),
     and/or

 (2) called strbuf_add() with negative count, most likely triggering
     the "you want to use way too much memory" error due to unsigned
     integer overflow.

Fix both issues by making sure we do not go beyond &src[n].

In the longer term we may want to accept size_t as parameter for
clarity (even though we know that a sideband message we are painting
typically would fit on a line on a terminal and int is sufficient).
Write it down as a NEEDSWORK comment.

Helped-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agoSeventh batch for 2.19 cycle
Junio C Hamano [Fri, 17 Aug 2018 20:15:06 +0000 (13:15 -0700)]
Seventh batch for 2.19 cycle

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agoMerge branch 'nd/complete-config-vars'
Junio C Hamano [Fri, 17 Aug 2018 20:09:59 +0000 (13:09 -0700)]
Merge branch 'nd/complete-config-vars'

Build fix.

* nd/complete-config-vars:
  Makefile: add missing dependency for command-list.h

2 years agoMerge branch 'ar/t4150-am-scissors-test-fix'
Junio C Hamano [Fri, 17 Aug 2018 20:09:59 +0000 (13:09 -0700)]
Merge branch 'ar/t4150-am-scissors-test-fix'

Test fix.

* ar/t4150-am-scissors-test-fix:
  t4150: fix broken test for am --scissors

2 years agoMerge branch 'js/pull-rebase-type-shorthand'
Junio C Hamano [Fri, 17 Aug 2018 20:09:59 +0000 (13:09 -0700)]
Merge branch 'js/pull-rebase-type-shorthand'

"git pull --rebase=interactive" learned "i" as a short-hand for
"interactive".

* js/pull-rebase-type-shorthand:
  pull --rebase=<type>: allow single-letter abbreviations for the type

2 years agoMerge branch 'jk/diff-rendered-docs'
Junio C Hamano [Fri, 17 Aug 2018 20:09:58 +0000 (13:09 -0700)]
Merge branch 'jk/diff-rendered-docs'

The end result of documentation update has been made to be
inspected more easily to help developers.

* jk/diff-rendered-docs:
  add a script to diff rendered documentation

2 years agoMerge branch 'hn/config-in-code-comment'
Junio C Hamano [Fri, 17 Aug 2018 20:09:58 +0000 (13:09 -0700)]
Merge branch 'hn/config-in-code-comment'

Header update.

* hn/config-in-code-comment:
  config: document git config getter return value

2 years agoMerge branch 'nd/config-blame-sort'
Junio C Hamano [Fri, 17 Aug 2018 20:09:58 +0000 (13:09 -0700)]
Merge branch 'nd/config-blame-sort'

Doc fix.

* nd/config-blame-sort:
  config.txt: reorder blame stuff to keep config keys sorted

2 years agoMerge branch 'en/t3031-title-fix'
Junio C Hamano [Fri, 17 Aug 2018 20:09:58 +0000 (13:09 -0700)]
Merge branch 'en/t3031-title-fix'

Test fix.

* en/t3031-title-fix:
  t3031: update test description to mention desired behavior

2 years agoMerge branch 'sb/indent-heuristic-optim'
Junio C Hamano [Fri, 17 Aug 2018 20:09:57 +0000 (13:09 -0700)]
Merge branch 'sb/indent-heuristic-optim'

"git diff --indent-heuristic" had a bad corner case performance.

* sb/indent-heuristic-optim:
  xdiff: reduce indent heuristic overhead

2 years agoMerge branch 'en/abort-df-conflict-fixes'
Junio C Hamano [Fri, 17 Aug 2018 20:09:57 +0000 (13:09 -0700)]
Merge branch 'en/abort-df-conflict-fixes'

"git merge --abort" etc. did not clean things up properly when
there were conflicted entries in the index in certain order that
are involved in D/F conflicts.  This has been corrected.

* en/abort-df-conflict-fixes:
  read-cache: fix directory/file conflict handling in read_index_unmerged()
  t1015: demonstrate directory/file conflict recovery failures

2 years agoMerge branch 'mk/http-backend-content-length'
Junio C Hamano [Fri, 17 Aug 2018 20:09:57 +0000 (13:09 -0700)]
Merge branch 'mk/http-backend-content-length'

The http-backend (used for smart-http transport) used to slurp the
whole input until EOF, without paying attention to CONTENT_LENGTH
that is supplied in the environment and instead expecting the Web
server to close the input stream.  This has been fixed.

* mk/http-backend-content-length:
  t5562: avoid non-portable "export FOO=bar" construct
  http-backend: respect CONTENT_LENGTH for receive-pack
  http-backend: respect CONTENT_LENGTH as specified by rfc3875
  http-backend: cleanup writing to child process

2 years agoMerge branch 'ot/ref-filter-object-info'
Junio C Hamano [Fri, 17 Aug 2018 20:09:57 +0000 (13:09 -0700)]
Merge branch 'ot/ref-filter-object-info'

A few atoms like %(objecttype) and %(objectsize) in the format
specifier of "for-each-ref --format=<format>" can be filled without
getting the full contents of the object, but just with the object
header.  These cases have been optimized by calling
oid_object_info() API (instead of reading and inspecting the data).

* ot/ref-filter-object-info:
  ref-filter: use oid_object_info() to get object
  ref-filter: merge get_obj and get_object
  ref-filter: initialize eaten variable
  ref-filter: fill empty fields with empty values
  ref-filter: add info_source to valid_atom

2 years agoMerge branch 'nd/no-extern'
Junio C Hamano [Fri, 17 Aug 2018 20:09:56 +0000 (13:09 -0700)]
Merge branch 'nd/no-extern'

Noiseword "extern" has been removed from function decls in the
header files.

* nd/no-extern:
  submodule.h: drop extern from function declaration
  revision.h: drop extern from function declaration
  repository.h: drop extern from function declaration
  rerere.h: drop extern from function declaration
  line-range.h: drop extern from function declaration
  diff.h: remove extern from function declaration
  diffcore.h: drop extern from function declaration
  convert.h: drop 'extern' from function declaration
  cache-tree.h: drop extern from function declaration
  blame.h: drop extern on func declaration
  attr.h: drop extern from function declaration
  apply.h: drop extern on func declaration

2 years agoMerge branch 'es/want-color-fd-defensive'
Junio C Hamano [Fri, 17 Aug 2018 20:09:56 +0000 (13:09 -0700)]
Merge branch 'es/want-color-fd-defensive'

Futureproofing a helper function that can easily be misused.

* es/want-color-fd-defensive:
  color: protect against out-of-bounds reads and writes

2 years agoMerge branch 'ab/sha1dc'
Junio C Hamano [Fri, 17 Aug 2018 20:09:56 +0000 (13:09 -0700)]
Merge branch 'ab/sha1dc'

AIX portability update for the SHA1DC hash, imported from upstream.

* ab/sha1dc:
  sha1dc: update from upstream

2 years agoMerge branch 'rs/parse-opt-lithelp'
Junio C Hamano [Fri, 17 Aug 2018 20:09:56 +0000 (13:09 -0700)]
Merge branch 'rs/parse-opt-lithelp'

The parse-options machinery learned to refrain from enclosing
placeholder string inside a "<bra" and "ket>" pair automatically
without PARSE_OPT_LITERAL_ARGHELP.  Existing help text for option
arguments that are not formatted correctly have been identified and
fixed.

* rs/parse-opt-lithelp:
  parse-options: automatically infer PARSE_OPT_LITERAL_ARGHELP
  shortlog: correct option help for -w
  send-pack: specify --force-with-lease argument help explicitly
  pack-objects: specify --index-version argument help explicitly
  difftool: remove angular brackets from argument help
  add, update-index: fix --chmod argument help
  push: use PARSE_OPT_LITERAL_ARGHELP instead of unbalanced brackets

2 years agoMerge branch 'ab/fetch-nego'
Junio C Hamano [Fri, 17 Aug 2018 20:09:55 +0000 (13:09 -0700)]
Merge branch 'ab/fetch-nego'

Update to a few other topics around 'git fetch'.

* ab/fetch-nego:
  fetch doc: cross-link two new negotiation options
  negotiator: unknown fetch.negotiationAlgorithm should error out

2 years agoMerge branch 'jt/refspec-dwim-precedence-fix'
Junio C Hamano [Fri, 17 Aug 2018 20:09:55 +0000 (13:09 -0700)]
Merge branch 'jt/refspec-dwim-precedence-fix'

"git fetch $there refs/heads/s" ought to fetch the tip of the
branch 's', but when "refs/heads/refs/heads/s", i.e. a branch whose
name is "refs/heads/s" exists at the same time, fetched that one
instead by mistake.  This has been corrected to honor the usual
disambiguation rules for abbreviated refnames.

* jt/refspec-dwim-precedence-fix:
  remote: make refspec follow the same disambiguation rule as local refs

2 years agoMerge branch 'jk/merge-subtree-heuristics'
Junio C Hamano [Fri, 17 Aug 2018 20:09:55 +0000 (13:09 -0700)]
Merge branch 'jk/merge-subtree-heuristics'

The automatic tree-matching in "git merge -s subtree" was broken 5
years ago and nobody has noticed since then, which is now fixed.

* jk/merge-subtree-heuristics:
  score_trees(): fix iteration over trees with missing entries

2 years agoMerge branch 'ab/test-must-be-empty'
Junio C Hamano [Fri, 17 Aug 2018 20:09:54 +0000 (13:09 -0700)]
Merge branch 'ab/test-must-be-empty'

Test updates.

* ab/test-must-be-empty:
  tests: make use of the test_must_be_empty function

2 years agoMerge branch 'es/rebase-i-author-script-fix'
Junio C Hamano [Fri, 17 Aug 2018 20:09:54 +0000 (13:09 -0700)]
Merge branch 'es/rebase-i-author-script-fix'

The "author-script" file "git rebase -i" creates got broken when
we started to move the command away from shell script, which is
getting fixed now.

* es/rebase-i-author-script-fix:
  sequencer: don't die() on bogus user-edited timestamp
  sequencer: fix "rebase -i --root" corrupting author header timestamp
  sequencer: fix "rebase -i --root" corrupting author header timezone
  sequencer: fix "rebase -i --root" corrupting author header

2 years agoMerge branch 'ab/fsck-transfer-updates'
Junio C Hamano [Fri, 17 Aug 2018 20:09:54 +0000 (13:09 -0700)]
Merge branch 'ab/fsck-transfer-updates'

The test performed at the receiving end of "git push" to prevent
bad objects from entering repository can be customized via
receive.fsck.* configuration variables; we now have gained a
counterpart to do the same on the "git fetch" side, with
fetch.fsck.* configuration variables.

* ab/fsck-transfer-updates:
  fsck: test and document unknown fsck.<msg-id> values
  fsck: add stress tests for fsck.skipList
  fsck: test & document {fetch,receive}.fsck.* config fallback
  fetch: implement fetch.fsck.*
  transfer.fsckObjects tests: untangle confusing setup
  config doc: elaborate on fetch.fsckObjects security
  config doc: elaborate on what transfer.fsckObjects does
  config doc: unify the description of fsck.* and receive.fsck.*
  config doc: don't describe *.fetchObjects twice
  receive.fsck.<msg-id> tests: remove dead code

2 years agobuiltin/submodule--helper: remove stray new line
Stefan Beller [Thu, 16 Aug 2018 02:30:55 +0000 (19:30 -0700)]
builtin/submodule--helper: remove stray new line

Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agot7410: update to new style
Stefan Beller [Thu, 16 Aug 2018 02:30:54 +0000 (19:30 -0700)]
t7410: update to new style

While at it fix a typo (s/independed/independent) and
make sure git is not in a chain of pipes.

Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agocherry-pick: fix --quit not deleting CHERRY_PICK_HEAD
Nguyễn Thái Ngọc Duy [Thu, 16 Aug 2018 16:06:08 +0000 (18:06 +0200)]
cherry-pick: fix --quit not deleting CHERRY_PICK_HEAD

--quit is supposed to be --abort but without restoring HEAD. Leaving
CHERRY_PICK_HEAD behind could make other commands mistake that
cherry-pick is still ongoing (e.g. "git commit --amend" will refuse to
work). Clean it too.

For --abort, this job of deleting CHERRY_PICK_HEAD is on "git reset"
so we don't need to do anything else. But let's add extra checks in
--abort tests to confirm.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agorebase -i: fix SIGSEGV when 'merge <branch>' fails
Phillip Wood [Wed, 15 Aug 2018 09:39:35 +0000 (10:39 +0100)]
rebase -i: fix SIGSEGV when 'merge <branch>' fails

If a merge command in the todo list specifies just a branch to merge
with no -C/-c argument then item->commit is NULL. This means that if
there are merge conflicts error_with_patch() is passed a NULL commit
which causes a segmentation fault when make_patch() tries to look it up.

This commit implements a minimal fix which fixes the crash and allows
the user to successfully commit a conflict resolution with 'git rebase
--continue'. It does not write .git/rebase-merge/patch,
.git/rebase-merge/stopped-sha or update REBASE_HEAD. To sensibly get the
hashes of the merge parents would require refactoring do_merge() to
extract the code that parses the merge parents into a separate function
which error_with_patch() could then use to write the parents into the
stopped-sha file. To create meaningful output make_patch() and 'git
rebase --show-current-patch' would also need to be modified to diff the
merge parent and merge base in this case.

Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk>
Acked-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agot3430: add conflicting commit
Phillip Wood [Wed, 15 Aug 2018 09:39:34 +0000 (10:39 +0100)]
t3430: add conflicting commit

Move the creation of conflicting-G from a test to the setup so that it
can be used in subsequent tests without creating the kind of implicit
dependencies that plague t3404. While we're at it simplify the
arguments to the test_commit() call the creates the conflicting commit.

Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agoSixth batch for 2.19 cycle
Junio C Hamano [Wed, 15 Aug 2018 22:13:39 +0000 (15:13 -0700)]
Sixth batch for 2.19 cycle

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agoMerge branch 'jt/connectivity-check-after-unshallow'
Junio C Hamano [Wed, 15 Aug 2018 22:08:28 +0000 (15:08 -0700)]
Merge branch 'jt/connectivity-check-after-unshallow'

"git fetch" sometimes failed to update the remote-tracking refs,
which has been corrected.

* jt/connectivity-check-after-unshallow:
  fetch-pack: unify ref in and out param

2 years agoMerge branch 'sg/travis-retrieve-trash-upon-failure'
Junio C Hamano [Wed, 15 Aug 2018 22:08:28 +0000 (15:08 -0700)]
Merge branch 'sg/travis-retrieve-trash-upon-failure'

The Travis CI scripts were taught to ship back the test data from
failed tests.

* sg/travis-retrieve-trash-upon-failure:
  travis-ci: include the trash directories of failed tests in the trace log

2 years agoMerge branch 'rs/remote-mv-leakfix'
Junio C Hamano [Wed, 15 Aug 2018 22:08:28 +0000 (15:08 -0700)]
Merge branch 'rs/remote-mv-leakfix'

Leakfix.

* rs/remote-mv-leakfix:
  remote: clear string_list after use in mv()

2 years agoMerge branch 'es/mw-to-git-chain-fix'
Junio C Hamano [Wed, 15 Aug 2018 22:08:27 +0000 (15:08 -0700)]
Merge branch 'es/mw-to-git-chain-fix'

Test fix.

* es/mw-to-git-chain-fix:
  mw-to-git/t9360: fix broken &&-chain

2 years agoMerge branch 'ms/http-proto-doc'
Junio C Hamano [Wed, 15 Aug 2018 22:08:27 +0000 (15:08 -0700)]
Merge branch 'ms/http-proto-doc'

Doc fix.

* ms/http-proto-doc:
  doc: fix want-capability separator

2 years agoMerge branch 'nd/pack-objects-threading-doc'
Junio C Hamano [Wed, 15 Aug 2018 22:08:27 +0000 (15:08 -0700)]
Merge branch 'nd/pack-objects-threading-doc'

Doc fix.

* nd/pack-objects-threading-doc:
  pack-objects: document about thread synchronization

2 years agoMerge branch 'jn/subtree-test-fixes'
Junio C Hamano [Wed, 15 Aug 2018 22:08:27 +0000 (15:08 -0700)]
Merge branch 'jn/subtree-test-fixes'

Test fix.

* jn/subtree-test-fixes:
  subtree test: simplify preparation of expected results
  subtree test: add missing && to &&-chain

2 years agoMerge branch 'cb/p4-pre-submit-hook'
Junio C Hamano [Wed, 15 Aug 2018 22:08:27 +0000 (15:08 -0700)]
Merge branch 'cb/p4-pre-submit-hook'

"git p4 submit" learns to ask its own pre-submit hook if it should
continue with submitting.

* cb/p4-pre-submit-hook:
  git-p4: add the `p4-pre-submit` hook

2 years agoMerge branch 'js/vscode'
Junio C Hamano [Wed, 15 Aug 2018 22:08:26 +0000 (15:08 -0700)]
Merge branch 'js/vscode'

Add a script (in contrib/) to help users of VSCode work better with
our codebase.

* js/vscode:
  vscode: let cSpell work on commit messages, too
  vscode: add a dictionary for cSpell
  vscode: use 8-space tabs, no trailing ws, etc for Git's source code
  vscode: wrap commit messages at column 72 by default
  vscode: only overwrite C/C++ settings
  mingw: define WIN32 explicitly
  cache.h: extract enum declaration from inside a struct declaration
  vscode: hard-code a couple defines
  contrib: add a script to initialize VS Code configuration

2 years agoMerge branch 'bb/redecl-enum-fix'
Junio C Hamano [Wed, 15 Aug 2018 22:08:26 +0000 (15:08 -0700)]
Merge branch 'bb/redecl-enum-fix'

Compilation fix.

* bb/redecl-enum-fix:
  packfile: ensure that enum object_type is defined

2 years agoMerge branch 'jk/banned-function'
Junio C Hamano [Wed, 15 Aug 2018 22:08:26 +0000 (15:08 -0700)]
Merge branch 'jk/banned-function'

It is too easy to misuse system API functions such as strcat();
these selected functions are now forbidden in this codebase and
will cause a compilation failure.

* jk/banned-function:
  banned.h: mark strncpy() as banned
  banned.h: mark sprintf() as banned
  banned.h: mark strcat() as banned
  automatically ban strcpy()

2 years agoMerge branch 'en/merge-recursive-skip-fix'
Junio C Hamano [Wed, 15 Aug 2018 22:08:25 +0000 (15:08 -0700)]
Merge branch 'en/merge-recursive-skip-fix'

When the sparse checkout feature is in use, "git cherry-pick" and
other mergy operations lost the skip_worktree bit when a path that
is excluded from checkout requires content level merge, which is
resolved as the same as the HEAD version, without materializing the
merge result in the working tree, which made the path appear as
deleted.  This has been corrected by preserving the skip_worktree
bit (and not materializing the file in the working tree).

* en/merge-recursive-skip-fix:
  merge-recursive: preserve skip_worktree bit when necessary
  t3507: add a testcase showing failure with sparse checkout

2 years agoMerge branch 'jt/tag-following-with-proto-v2-fix'
Junio C Hamano [Wed, 15 Aug 2018 22:08:25 +0000 (15:08 -0700)]
Merge branch 'jt/tag-following-with-proto-v2-fix'

The wire-protocol v2 relies on the client to send "ref prefixes" to
limit the bandwidth spent on the initial ref advertisement.  "git
fetch $remote branch:branch" that asks tags that point into the
history leading to the "branch" automatically followed sent to
narrow prefix and broke the tag following, which has been fixed.

* jt/tag-following-with-proto-v2-fix:
  fetch: send "refs/tags/" prefix upon CLI refspecs
  t5702: test fetch with multiple refspecs at a time

2 years agoMerge branch 'jk/size-t'
Junio C Hamano [Wed, 15 Aug 2018 22:08:25 +0000 (15:08 -0700)]
Merge branch 'jk/size-t'

Code clean-up to use size_t/ssize_t when they are the right type.

* jk/size-t:
  strbuf_humanise: use unsigned variables
  pass st.st_size as hint for strbuf_readlink()
  strbuf_readlink: use ssize_t
  strbuf: use size_t for length in intermediate variables
  reencode_string: use size_t for string lengths
  reencode_string: use st_add/st_mult helpers

2 years agoMerge branch 'sg/coccicheck-updates'
Junio C Hamano [Wed, 15 Aug 2018 22:08:25 +0000 (15:08 -0700)]
Merge branch 'sg/coccicheck-updates'

Update the way we use Coccinelle to find out-of-style code that
need to be modernised.

* sg/coccicheck-updates:
  coccinelle: extract dedicated make target to clean Coccinelle's results
  coccinelle: put sane filenames into output patches
  coccinelle: exclude sha1dc source files from static analysis
  coccinelle: use $(addsuffix) in 'coccicheck' make target
  coccinelle: mark the 'coccicheck' make target as .PHONY

2 years agoMerge branch 'sb/histogram-less-memory'
Junio C Hamano [Wed, 15 Aug 2018 22:08:25 +0000 (15:08 -0700)]
Merge branch 'sb/histogram-less-memory'

"git diff --histogram" had a bad memory usage pattern, which has
been rearranged to reduce the peak usage.

* sb/histogram-less-memory:
  xdiff/histogram: remove tail recursion
  xdiff/xhistogram: move index allocation into find_lcs
  xdiff/xhistogram: factor out memory cleanup into free_index()
  xdiff/xhistogram: pass arguments directly to fall_back_to_classic_diff

2 years agoMerge branch 'nd/i18n'
Junio C Hamano [Wed, 15 Aug 2018 22:08:23 +0000 (15:08 -0700)]
Merge branch 'nd/i18n'

Many more strings are prepared for l10n.

* nd/i18n: (23 commits)
  transport-helper.c: mark more strings for translation
  transport.c: mark more strings for translation
  sha1-file.c: mark more strings for translation
  sequencer.c: mark more strings for translation
  replace-object.c: mark more strings for translation
  refspec.c: mark more strings for translation
  refs.c: mark more strings for translation
  pkt-line.c: mark more strings for translation
  object.c: mark more strings for translation
  exec-cmd.c: mark more strings for translation
  environment.c: mark more strings for translation
  dir.c: mark more strings for translation
  convert.c: mark more strings for translation
  connect.c: mark more strings for translation
  config.c: mark more strings for translation
  commit-graph.c: mark more strings for translation
  builtin/replace.c: mark more strings for translation
  builtin/pack-objects.c: mark more strings for translation
  builtin/grep.c: mark strings for translation
  builtin/config.c: mark more strings for translation
  ...

2 years agoMerge branch 'hs/gpgsm'
Junio C Hamano [Wed, 15 Aug 2018 22:08:23 +0000 (15:08 -0700)]
Merge branch 'hs/gpgsm'

Teach "git tag -s" etc. a few configuration variables (gpg.format
that can be set to "openpgp" or "x509", and gpg.<format>.program
that is used to specify what program to use to deal with the format)
to allow x.509 certs with CMS via "gpgsm" to be used instead of
openpgp via "gnupg".

* hs/gpgsm:
  gpg-interface t: extend the existing GPG tests with GPGSM
  gpg-interface: introduce new signature format "x509" using gpgsm
  gpg-interface: introduce new config to select per gpg format program
  gpg-interface: do not hardcode the key string len anymore
  gpg-interface: introduce an abstraction for multiple gpg formats
  t/t7510: check the validation of the new config gpg.format
  gpg-interface: add new config to select how to sign a commit

2 years agoMerge branch 'bw/clone-ref-prefixes'
Junio C Hamano [Wed, 15 Aug 2018 22:08:23 +0000 (15:08 -0700)]
Merge branch 'bw/clone-ref-prefixes'

The wire-protocol v2 relies on the client to send "ref prefixes" to
limit the bandwidth spent on the initial ref advertisement.  "git
clone" when learned to speak v2 forgot to do so, which has been
corrected.

* bw/clone-ref-prefixes:
  clone: send ref-prefixes when using protocol v2

2 years agoMerge branch 'jk/core-use-replace-refs'
Junio C Hamano [Wed, 15 Aug 2018 22:08:22 +0000 (15:08 -0700)]
Merge branch 'jk/core-use-replace-refs'

A new configuration variable core.usereplacerefs has been added,
primarily to help server installations that want to ignore the
replace mechanism altogether.

* jk/core-use-replace-refs:
  add core.usereplacerefs config option
  check_replace_refs: rename to read_replace_refs
  check_replace_refs: fix outdated comment

2 years agoMerge branch 'jh/json-writer'
Junio C Hamano [Wed, 15 Aug 2018 22:08:22 +0000 (15:08 -0700)]
Merge branch 'jh/json-writer'

Preparatory code to later add json output for telemetry data.

* jh/json-writer:
  json_writer: new routines to create JSON data

2 years agoMerge branch 'bb/make-developer-pedantic'
Junio C Hamano [Wed, 15 Aug 2018 22:08:22 +0000 (15:08 -0700)]
Merge branch 'bb/make-developer-pedantic'

"make DEVELOPER=1 DEVOPTS=pedantic" allows developers to compile
with -pedantic option, which may catch more problematic program
constructs and potential bugs.

* bb/make-developer-pedantic:
  Makefile: add a DEVOPTS flag to get pedantic compilation