]> git.ipfire.org Git - thirdparty/git.git/log
thirdparty/git.git
5 years agoMerge branch 'js/stress-test-ui-tweak'
Junio C Hamano [Wed, 20 Mar 2019 06:16:05 +0000 (15:16 +0900)] 
Merge branch 'js/stress-test-ui-tweak'

Dev support.

* js/stress-test-ui-tweak:
  tests: introduce --stress-jobs=<N>
  tests: let --stress-limit=<N> imply --stress

5 years agoMerge branch 'js/rebase-orig-head-fix'
Junio C Hamano [Wed, 20 Mar 2019 06:16:05 +0000 (15:16 +0900)] 
Merge branch 'js/rebase-orig-head-fix'

"git rebase" that was reimplemented in C did not set ORIG_HEAD
correctly, which has been corrected.

* js/rebase-orig-head-fix:
  built-in rebase: set ORIG_HEAD just once, before the rebase
  built-in rebase: demonstrate that ORIG_HEAD is not set correctly
  built-in rebase: use the correct reflog when switching branches
  built-in rebase: no need to check out `onto` twice

5 years agoMerge branch 'jk/bisect-final-output'
Junio C Hamano [Wed, 20 Mar 2019 06:16:04 +0000 (15:16 +0900)] 
Merge branch 'jk/bisect-final-output'

The final report from "git bisect" used to show the suspected
culprit using a raw "diff-tree", with which there is no output for
a merge commit.  This has been updated to use a more modern and
human readable output that still is concise enough.

* jk/bisect-final-output:
  bisect: make diff-tree output prettier
  bisect: fix internal diff-tree config loading
  bisect: use string arguments to feed internal diff-tree

5 years agoMerge branch 'ab/makefile-help-devs-more'
Junio C Hamano [Wed, 20 Mar 2019 06:16:04 +0000 (15:16 +0900)] 
Merge branch 'ab/makefile-help-devs-more'

CFLAGS now can be tweaked when invoking Make while using
DEVELOPER=YesPlease; this did not work well before.

* ab/makefile-help-devs-more:
  Makefile: allow for combining DEVELOPER=1 and CFLAGS="..."
  Makefile: move the setting of *FLAGS closer to "include"
  Makefile: Move *_LIBS assignment into its own section
  Makefile: add/remove comments at top and tweak whitespace
  Makefile: move "strip" assignment down from flags
  Makefile: remove an out-of-date comment

5 years agoMerge git://ozlabs.org/~paulus/gitk
Junio C Hamano [Mon, 18 Mar 2019 02:18:49 +0000 (11:18 +0900)] 
Merge git://ozlabs.org/~paulus/gitk

* git://ozlabs.org/~paulus/gitk:
  gitk: Update Bulgarian translation (317t)

5 years agogitk: Update Bulgarian translation (317t)
Alexander Shopov [Wed, 13 Mar 2019 12:06:33 +0000 (13:06 +0100)] 
gitk: Update Bulgarian translation (317t)

Signed-off-by: Alexander Shopov <ash@kambanaria.org>
Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
5 years agoThe second batch
Junio C Hamano [Mon, 11 Mar 2019 07:18:22 +0000 (16:18 +0900)] 
The second batch

Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoSync with maint
Junio C Hamano [Mon, 11 Mar 2019 07:16:34 +0000 (16:16 +0900)] 
Sync with maint

* maint:
  mingw: allow building with an MSYS2 runtime v3.x

5 years agoMerge branch 'js/rebase-recreate-merge'
Junio C Hamano [Mon, 11 Mar 2019 07:16:26 +0000 (16:16 +0900)] 
Merge branch 'js/rebase-recreate-merge'

Docfix.

* js/rebase-recreate-merge:
  rebase docs: fix "gitlink" typo

5 years agoMerge branch 'js/untravis-windows'
Junio C Hamano [Mon, 11 Mar 2019 07:16:26 +0000 (16:16 +0900)] 
Merge branch 'js/untravis-windows'

Dev support.

* js/untravis-windows:
  travis: remove the hack to build the Windows job on Azure Pipelines

5 years agoMerge branch 'rd/gc-prune-doc-fix'
Junio C Hamano [Mon, 11 Mar 2019 07:16:26 +0000 (16:16 +0900)] 
Merge branch 'rd/gc-prune-doc-fix'

Doxfix.

* rd/gc-prune-doc-fix:
  docs/git-gc: fix typo "--prune=all" to "--prune=now"

5 years agoMerge branch 'js/find-lib-h-with-ls-files-when-possible'
Junio C Hamano [Mon, 11 Mar 2019 07:16:25 +0000 (16:16 +0900)] 
Merge branch 'js/find-lib-h-with-ls-files-when-possible'

The Makefile uses 'find' utility to enumerate all the *.h header
files, which is expensive on platforms with slow filesystems; it
now optionally uses "ls-files" if working within a repository,
which is a trick similar to how all sources are enumerated to run
ETAGS on.

* js/find-lib-h-with-ls-files-when-possible:
  Makefile: use `git ls-files` to list header files, if possible

5 years agoMerge branch 'rj/hdr-check-gcrypt-fix'
Junio C Hamano [Mon, 11 Mar 2019 07:16:25 +0000 (16:16 +0900)] 
Merge branch 'rj/hdr-check-gcrypt-fix'

The set of header files used by "make hdr-check" unconditionally
included sha256/gcrypt.h, even when it is not used, causing the
make target to fail.  We now skip it when GCRYPT_SHA256 is not in
use.

* rj/hdr-check-gcrypt-fix:
  Makefile: fix 'hdr-check' when GCRYPT not installed

5 years agoMerge branch 'jk/guard-bswap-header'
Junio C Hamano [Mon, 11 Mar 2019 07:16:25 +0000 (16:16 +0900)] 
Merge branch 'jk/guard-bswap-header'

The include file compat/bswap.h has been updated so that it is safe
to (accidentally) include it more than once.

* jk/guard-bswap-header:
  compat/bswap: add include header guards

5 years agoMerge branch 'rd/attr.c-comment-typofix'
Junio C Hamano [Mon, 11 Mar 2019 07:16:24 +0000 (16:16 +0900)] 
Merge branch 'rd/attr.c-comment-typofix'

In-code comment typofix.

* rd/attr.c-comment-typofix:
  attr.c: ".gitattribute" -> ".gitattributes" (comments)

5 years agoMerge branch 'yb/utf-16le-bom-spellfix'
Junio C Hamano [Mon, 11 Mar 2019 07:16:24 +0000 (16:16 +0900)] 
Merge branch 'yb/utf-16le-bom-spellfix'

Doc update.

* yb/utf-16le-bom-spellfix:
  gitattributes.txt: fix typo

5 years agomingw: allow building with an MSYS2 runtime v3.x
Johannes Schindelin [Fri, 8 Mar 2019 15:51:19 +0000 (07:51 -0800)] 
mingw: allow building with an MSYS2 runtime v3.x

Recently the Git for Windows project started the upgrade process to
a MSYS2 runtime version based on Cygwin v3.x.

This has the very notable consequence that `$(uname -r)` no longer
reports a version starting with "2", but a version with "3".

That breaks our build, as df5218b4c30b (config.mak.uname: support MSys2,
2016-01-13) simply did not expect the version reported by `uname -r` to
depend on the underlying Cygwin version: it expected the reported
version to match the "2" in "MSYS2".

So let's invert that test case to test for *anything else* than a
version starting with "1" (for MSys). That should safeguard us for the
future, even if Cygwin ends up releasing versionsl like 314.272.65536.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agomingw: drop MakeMaker reference
Johannes Schindelin [Mon, 25 Feb 2019 19:27:11 +0000 (11:27 -0800)] 
mingw: drop MakeMaker reference

In 20d2a30f8ffe (Makefile: replace perl/Makefile.PL with simple make
rules, 2017-12-10), Git stopped using MakeMaker. Therefore, that
definition in the MINGW-specific section became useless.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoStart 2.22 cycle
Junio C Hamano [Thu, 7 Mar 2019 02:59:54 +0000 (11:59 +0900)] 
Start 2.22 cycle

Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoMerge branch 'jt/http-auth-proto-v2-fix'
Junio C Hamano [Thu, 7 Mar 2019 00:59:59 +0000 (09:59 +0900)] 
Merge branch 'jt/http-auth-proto-v2-fix'

Unify RPC code for smart http in protocol v0/v1 and v2, which fixes
a bug in the latter (lack of authentication retry) and generally
improves the code base.

* jt/http-auth-proto-v2-fix:
  remote-curl: use post_rpc() for protocol v2 also
  remote-curl: refactor reading into rpc_state's buf
  remote-curl: reduce scope of rpc_state.result
  remote-curl: reduce scope of rpc_state.stdin_preamble
  remote-curl: reduce scope of rpc_state.argv

5 years agoMerge branch 'jk/diff-no-index-initialize'
Junio C Hamano [Thu, 7 Mar 2019 00:59:59 +0000 (09:59 +0900)] 
Merge branch 'jk/diff-no-index-initialize'

"git diff --no-index" may still want to access Git goodies like
--ext-diff and --textconv, but so far these have been ignored,
which has been corrected.

* jk/diff-no-index-initialize:
  diff: reuse diff setup for --no-index case

5 years agoMerge branch 'nd/no-more-check-racy'
Junio C Hamano [Thu, 7 Mar 2019 00:59:59 +0000 (09:59 +0900)] 
Merge branch 'nd/no-more-check-racy'

Unused code removal.

* nd/no-more-check-racy:
  Delete check-racy.c

5 years agoMerge branch 'rd/doc-hook-used-in-sample'
Junio C Hamano [Thu, 7 Mar 2019 00:59:59 +0000 (09:59 +0900)] 
Merge branch 'rd/doc-hook-used-in-sample'

Doc update.

* rd/doc-hook-used-in-sample:
  mention use of "hooks.allownonascii" in "man githooks"

5 years agoMerge branch 'nd/diff-parseopt-2'
Junio C Hamano [Thu, 7 Mar 2019 00:59:58 +0000 (09:59 +0900)] 
Merge branch 'nd/diff-parseopt-2'

Second batch to teach the diff machinery to use the parse-options
API.

* nd/diff-parseopt-2: (21 commits)
  diff-parseopt: convert --ignore-some-changes
  diff-parseopt: convert --[no-]minimal
  diff-parseopt: convert --relative
  diff-parseopt: convert --no-renames|--[no--rename-empty
  diff-parseopt: convert --find-copies-harder
  diff-parseopt: convert -C|--find-copies
  diff-parseopt: convert -D|--irreversible-delete
  diff-parseopt: convert -M|--find-renames
  diff-parseopt: convert -B|--break-rewrites
  diff-parseopt: convert --output-*
  diff-parseopt: convert --[no-]compact-summary
  diff-parseopt: convert --stat*
  diff-parseopt: convert -s|--no-patch
  diff-parseopt: convert --name-status
  diff-parseopt: convert --name-only
  diff-parseopt: convert --patch-with-stat
  diff-parseopt: convert --summary
  diff-parseopt: convert --check
  diff-parseopt: convert --dirstat and friends
  diff-parseopt: convert --numstat and --shortstat
  ...

5 years agoMerge branch 'en/merge-options-doc'
Junio C Hamano [Thu, 7 Mar 2019 00:59:58 +0000 (09:59 +0900)] 
Merge branch 'en/merge-options-doc'

Doc update.

* en/merge-options-doc:
  merge-options.txt: correct wording of --no-commit option

5 years agoMerge branch 'nd/completion-more-parameters'
Junio C Hamano [Thu, 7 Mar 2019 00:59:57 +0000 (09:59 +0900)] 
Merge branch 'nd/completion-more-parameters'

The command line completion (in contrib/) has been taught to
complete more subcommand parameters.

* nd/completion-more-parameters:
  completion: add more parameter value completion

5 years agoMerge branch 'ab/receive-pack-use-after-free-fix'
Junio C Hamano [Thu, 7 Mar 2019 00:59:57 +0000 (09:59 +0900)] 
Merge branch 'ab/receive-pack-use-after-free-fix'

Memfix.

* ab/receive-pack-use-after-free-fix:
  receive-pack: fix use-after-free bug

5 years agoMerge branch 'dl/doc-submodule-wo-subcommand'
Junio C Hamano [Thu, 7 Mar 2019 00:59:57 +0000 (09:59 +0900)] 
Merge branch 'dl/doc-submodule-wo-subcommand'

Doc update.

* dl/doc-submodule-wo-subcommand:
  submodule: document default behavior

5 years agoMerge branch 'jk/unused-params'
Junio C Hamano [Thu, 7 Mar 2019 00:59:56 +0000 (09:59 +0900)] 
Merge branch 'jk/unused-params'

Code clean-up.

* jk/unused-params:
  ref-filter: drop unused "sz" parameters
  ref-filter: drop unused "obj" parameters
  ref-filter: drop unused buf/sz pairs
  files-backend: drop refs parameter from split_symref_update()
  pack-objects: drop unused parameter from oe_map_new_pack()
  merge-recursive: drop several unused parameters
  diff: drop complete_rewrite parameter from run_external_diff()
  diff: drop unused emit data parameter from sane_truncate_line()
  diff: drop unused color reset parameters
  diff: drop options parameter from diffcore_fix_diff_index()

5 years agoMerge branch 'jk/prune-optim'
Junio C Hamano [Thu, 7 Mar 2019 00:59:56 +0000 (09:59 +0900)] 
Merge branch 'jk/prune-optim'

"git prune" has been taught to take advantage of reachability
bitmap when able.

* jk/prune-optim:
  t5304: rename "sha1" variables to "oid"
  prune: check SEEN flag for reachability
  prune: use bitmaps for reachability traversal
  prune: lazily perform reachability traversal

5 years agoMerge branch 'jh/trace2'
Junio C Hamano [Thu, 7 Mar 2019 00:59:56 +0000 (09:59 +0900)] 
Merge branch 'jh/trace2'

A more structured way to obtain execution trace has been added.

* jh/trace2:
  trace2: add for_each macros to clang-format
  trace2: t/helper/test-trace2, t0210.sh, t0211.sh, t0212.sh
  trace2:data: add subverb for rebase
  trace2:data: add subverb to reset command
  trace2:data: add subverb to checkout command
  trace2:data: pack-objects: add trace2 regions
  trace2:data: add trace2 instrumentation to index read/write
  trace2:data: add trace2 hook classification
  trace2:data: add trace2 transport child classification
  trace2:data: add trace2 sub-process classification
  trace2:data: add editor/pager child classification
  trace2:data: add trace2 regions to wt-status
  trace2: collect Windows-specific process information
  trace2: create new combined trace facility
  trace2: Documentation/technical/api-trace2.txt

5 years agoMerge branch 'js/doc-symref-in-proto-v1'
Junio C Hamano [Thu, 7 Mar 2019 00:59:56 +0000 (09:59 +0900)] 
Merge branch 'js/doc-symref-in-proto-v1'

Doc update.

* js/doc-symref-in-proto-v1:
  protocol-capabilities.txt: document symref

5 years agoMerge branch 'nd/split-index-null-base-fix'
Junio C Hamano [Thu, 7 Mar 2019 00:59:56 +0000 (09:59 +0900)] 
Merge branch 'nd/split-index-null-base-fix'

Split-index fix.

* nd/split-index-null-base-fix:
  read-cache.c: fix writing "link" index ext with null base oid

5 years agoMerge branch 'rj/prune-packed-excess-args'
Junio C Hamano [Thu, 7 Mar 2019 00:59:55 +0000 (09:59 +0900)] 
Merge branch 'rj/prune-packed-excess-args'

"git prune-packed" did not notice and complain against excess
arguments given from the command line, which now it does.

* rj/prune-packed-excess-args:
  prune-packed: check for too many arguments

5 years agoMerge branch 'jc/test-yes-doc'
Junio C Hamano [Thu, 7 Mar 2019 00:59:54 +0000 (09:59 +0900)] 
Merge branch 'jc/test-yes-doc'

Test doc update.

* jc/test-yes-doc:
  test: caution on our version of 'yes'

5 years agoMerge branch 'en/combined-all-paths'
Junio C Hamano [Thu, 7 Mar 2019 00:59:54 +0000 (09:59 +0900)] 
Merge branch 'en/combined-all-paths'

Output from "diff --cc" did not show the original paths when the
merge involved renames.  A new option adds the paths in the
original trees to the output.

* en/combined-all-paths:
  log,diff-tree: add --combined-all-paths option

5 years agoMerge branch 'sc/pack-redundant'
Junio C Hamano [Thu, 7 Mar 2019 00:59:54 +0000 (09:59 +0900)] 
Merge branch 'sc/pack-redundant'

Update the implementation of pack-redundant for performance in a
repository with many packfiles.

* sc/pack-redundant:
  pack-redundant: consistent sort method
  pack-redundant: rename pack_list.all_objects
  pack-redundant: new algorithm to find min packs
  pack-redundant: delete redundant code
  pack-redundant: delay creation of unique_objects
  t5323: test cases for git-pack-redundant

5 years agoMerge branch 'du/branch-show-current'
Junio C Hamano [Thu, 7 Mar 2019 00:59:53 +0000 (09:59 +0900)] 
Merge branch 'du/branch-show-current'

"git branch" learned a new subcommand "--show-current".

* du/branch-show-current:
  branch: introduce --show-current display option

5 years agoMerge branch 'dl/complete-submodule-absorbgitdirs'
Junio C Hamano [Thu, 7 Mar 2019 00:59:53 +0000 (09:59 +0900)] 
Merge branch 'dl/complete-submodule-absorbgitdirs'

Command-line completion (in contrib/) learned to tab-complete the
"git submodule absorbgitdirs" subcommand.

* dl/complete-submodule-absorbgitdirs:
  completion: complete git submodule absorbgitdirs

5 years agoMerge branch 'wh/author-committer-ident-config'
Junio C Hamano [Thu, 7 Mar 2019 00:59:53 +0000 (09:59 +0900)] 
Merge branch 'wh/author-committer-ident-config'

Four new configuration variables {author,committer}.{name,email}
have been introduced to override user.{name,email} in more specific
cases.

* wh/author-committer-ident-config:
  config: allow giving separate author and committer idents

5 years agoMerge branch 'aw/pretty-trailers'
Junio C Hamano [Thu, 7 Mar 2019 00:59:52 +0000 (09:59 +0900)] 
Merge branch 'aw/pretty-trailers'

The %(trailers) formatter in "git log --format=..."  now allows to
optionally pick trailers selectively by keyword, show only values,
etc.

* aw/pretty-trailers:
  pretty: add support for separator option in %(trailers)
  strbuf: separate callback for strbuf_expand:ing literals
  pretty: add support for "valueonly" option in %(trailers)
  pretty: allow showing specific trailers
  pretty: single return path in %(trailers) handling
  pretty: allow %(trailers) options with explicit value
  doc: group pretty-format.txt placeholders descriptions

5 years agoMerge branch 'nd/diff-parseopt'
Junio C Hamano [Thu, 7 Mar 2019 00:59:52 +0000 (09:59 +0900)] 
Merge branch 'nd/diff-parseopt'

The diff machinery, one of the oldest parts of the system, which
long predates the parse-options API, uses fairly long and complex
handcrafted option parser.  This is being rewritten to use the
parse-options API.

* nd/diff-parseopt:
  diff.c: convert --raw
  diff.c: convert -W|--[no-]function-context
  diff.c: convert -U|--unified
  diff.c: convert -u|-p|--patch
  diff.c: prepare to use parse_options() for parsing
  diff.h: avoid bit fields in struct diff_flags
  diff.h: keep forward struct declarations sorted
  parse-options: allow ll_callback with OPTION_CALLBACK
  parse-options: avoid magic return codes
  parse-options: stop abusing 'callback' for lowlevel callbacks
  parse-options: add OPT_BITOP()
  parse-options: disable option abbreviation with PARSE_OPT_KEEP_UNKNOWN
  parse-options: add one-shot mode
  parse-options.h: remove extern on function prototypes

5 years agoMerge branch 'tg/checkout-no-overlay'
Junio C Hamano [Thu, 7 Mar 2019 00:59:51 +0000 (09:59 +0900)] 
Merge branch 'tg/checkout-no-overlay'

"git checkout --no-overlay" can be used to trigger a new mode of
checking out paths out of the tree-ish, that allows paths that
match the pathspec that are in the current index and working tree
and are not in the tree-ish.

* tg/checkout-no-overlay:
  revert "checkout: introduce checkout.overlayMode config"
  checkout: introduce checkout.overlayMode config
  checkout: introduce --{,no-}overlay option
  checkout: factor out mark_cache_entry_for_checkout function
  checkout: clarify comment
  read-cache: add invalidate parameter to remove_marked_cache_entries
  entry: support CE_WT_REMOVE flag in checkout_entry
  entry: factor out unlink_entry function
  move worktree tests to t24*

5 years agoattr.c: ".gitattribute" -> ".gitattributes" (comments)
Robert P. J. Day [Wed, 6 Mar 2019 09:14:44 +0000 (04:14 -0500)] 
attr.c: ".gitattribute" -> ".gitattributes" (comments)

Correct misspelled ".gitattribute" in comments only, so no functional
change.

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agogitattributes.txt: fix typo
Yash Bhatambare [Wed, 6 Mar 2019 05:23:10 +0000 (05:23 +0000)] 
gitattributes.txt: fix typo

`UTF-16-LE-BOM` to `UTF-16LE-BOM`.

this closes https://github.com/git-for-windows/git/issues/2095

Signed-off-by: Yash Bhatambare <ybhatambare@gmail.com>
Signed-off-by: Torsten Bögershausen <tboegi@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agocompat/bswap: add include header guards
Jeff King [Wed, 6 Mar 2019 19:05:10 +0000 (14:05 -0500)] 
compat/bswap: add include header guards

Our compat/bswap.h lacks the usual preprocessor guards against multiple
inclusion. This usually isn't an issue since it only gets included from
git-compat-util.h, which has its own guards. But it would produce
redeclaration errors if any file included it separately.

Our hdr-check target would complain about this, except that it currently
skips items in compat/ entirely.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoMakefile: fix 'hdr-check' when GCRYPT not installed
Ramsay Jones [Wed, 6 Mar 2019 00:11:13 +0000 (00:11 +0000)] 
Makefile: fix 'hdr-check' when GCRYPT not installed

If the GCRYPT_SHA256 build variable is not set, then the 'hdr-check'
target complains about the missing <gcrypt.h> header file. Add the
'sha256/gcrypt.h' header file to the exception list, if the build
variable is not defined. While here, replace the 'xdiff%' filter
pattern with 'xdiff/%' (and similarly for the compat pattern) since
the original pattern inadvertently excluded the 'xdiff-interface.h'
header.

Signed-off-by: Ramsay Jones <ramsay@ramsayjones.plus.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoMakefile: use `git ls-files` to list header files, if possible
Johannes Schindelin [Mon, 4 Mar 2019 13:47:06 +0000 (05:47 -0800)] 
Makefile: use `git ls-files` to list header files, if possible

In d85b0dff72 (Makefile: use `find` to determine static header
dependencies, 2014-08-25), we switched from a static list of header
files to a dynamically-generated one, asking `find` to enumerate them.

Back in those days, we did not use `$(LIB_H)` by default, and many a
`make` implementation seems smart enough not to run that `find` command
in that case, so it was deemed okay to run `find` for special targets
requiring this macro.

However, as of ebb7baf02f (Makefile: add a hdr-check target,
2018-09-19), $(LIB_H) is part of a global rule and therefore must be
expanded. Meaning: this `find` command has to be run upon every
`make` invocation. In the presence of many a worktree, this can tax the
developers' patience quite a bit.

Even in the absence of worktrees or other untracked files and
directories, the cost of I/O to generate that list of header files is
simply a lot larger than a simple `git ls-files` call.

Therefore, just like in 335339758c (Makefile: ask "ls-files" to list
source files if available, 2011-10-18), we now prefer to use `git
ls-files` to enumerate the header files to enumerating them via `find`,
falling back to the latter if the former failed (which would be the case
e.g. in a worktree that was extracted from a source .tar file rather
than from a clone of Git's sources).

This has one notable consequence: we no longer include `command-list.h`
in `LIB_H`, as it is a generated file, not a tracked one, but that is
easily worked around. Of the three sites that use `LIB_H`, two
(`LOCALIZED_C` and `CHK_HDRS`) already handle generated headers
separately. In the third, the computed-dependency fallback, we can just
add in a reference to $(GENERATED_H).

Likewise, we no longer include not-yet-tracked header files in `LIB_H`.

Given the speed improvements, these consequences seem a comparably small
price to pay.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Acked-by: Ramsay Jones <ramsay@ramsayjones.plus.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoMerge tag 'l10n-2.21.0-rnd2.1' of git://github.com/git-l10n/git-po
Junio C Hamano [Tue, 5 Mar 2019 12:53:10 +0000 (21:53 +0900)] 
Merge tag 'l10n-2.21.0-rnd2.1' of git://github.com/git-l10n/git-po

L10n for Git 2.21.0 round 2.1

* tag 'l10n-2.21.0-rnd2.1' of git://github.com/git-l10n/git-po:
  l10n: Fixes to Catalan translation
  l10n: Updated Vietnamese translation for v2.21 rd2
  l10n: fr.po remove obsolete entries

5 years agobuilt-in rebase: set ORIG_HEAD just once, before the rebase
Johannes Schindelin [Sun, 3 Mar 2019 17:11:55 +0000 (09:11 -0800)] 
built-in rebase: set ORIG_HEAD just once, before the rebase

Technically, the scripted version set ORIG_HEAD only in two spots (which
really could have been one, because it called `git checkout $onto^0` to
start the rebase and also if it could take a shortcut, and in both cases
it called `git update-ref $orig_head`).

Practically, it *implicitly* reset ORIG_HEAD whenever `git reset --hard`
was called.

However, what we really want is that it is set exactly once, at the
beginning of the rebase.

So let's do that.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agobuilt-in rebase: demonstrate that ORIG_HEAD is not set correctly
Johannes Schindelin [Sun, 3 Mar 2019 17:11:54 +0000 (09:11 -0800)] 
built-in rebase: demonstrate that ORIG_HEAD is not set correctly

The ORIG_HEAD pseudo ref is supposed to refer to the original,
pre-rebase state after a successful rebase. Let's add a regression test
to prove that this regressed: With GIT_TEST_REBASE_USE_BUILTIN=false,
this test case passes, with GIT_TEST_REBASE_USE_BUILTIN=true (or unset),
it fails.

Reported by Nazri Ramliy.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agobuilt-in rebase: use the correct reflog when switching branches
Johannes Schindelin [Sun, 3 Mar 2019 17:11:54 +0000 (09:11 -0800)] 
built-in rebase: use the correct reflog when switching branches

By mistake, we used the reflog intended for ORIG_HEAD.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agobuilt-in rebase: no need to check out `onto` twice
Johannes Schindelin [Sun, 3 Mar 2019 17:11:53 +0000 (09:11 -0800)] 
built-in rebase: no need to check out `onto` twice

In the case that the rebase boils down to a fast-forward, the built-in
rebase reset the working tree twice: once to start the rebase at `onto`,
then realizing that the original (pre-rebase) HEAD was an ancestor and
we basically already fast-forwarded to the post-rebase HEAD,
`reset_head()` was called to update the original ref and to point HEAD
back to it.

That second `reset_head()` call does not need to touch the working tree,
though, as it does not change the actual tip commit (and therefore the
working tree should stay unchanged anyway): only the ref needs to be
updated (because the rebase detached the HEAD, and we want to go back to
the branch on which the rebase was started).

But that second `reset_head()` was called without the flag to leave the
working tree alone (the reason: when that call was introduced, that flag
was not yet even thought of). Let's avoid that unnecessary work by
passing that flag.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agotests: introduce --stress-jobs=<N>
Johannes Schindelin [Sun, 3 Mar 2019 14:44:55 +0000 (06:44 -0800)] 
tests: introduce --stress-jobs=<N>

The --stress option currently accepts an argument, but it is confusing
to at least this user that the argument does not define the maximal
number of stress iterations, but instead the number of jobs to run in
parallel per stress iteration.

Let's introduce a separate option for that, whose name makes it more
obvious what it is about, and let --stress=<N> error out with a helpful
suggestion about the two options tha could possibly have been meant.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agotests: let --stress-limit=<N> imply --stress
Johannes Schindelin [Sun, 3 Mar 2019 14:44:54 +0000 (06:44 -0800)] 
tests: let --stress-limit=<N> imply --stress

It does not make much sense that running a test with
--stress-limit=<N> seemingly ignores that option because it does not
stress test at all.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoremote-curl: use post_rpc() for protocol v2 also
Jonathan Tan [Thu, 21 Feb 2019 20:24:41 +0000 (12:24 -0800)] 
remote-curl: use post_rpc() for protocol v2 also

When transmitting and receiving POSTs for protocol v0 and v1,
remote-curl uses post_rpc() (and associated functions), but when doing
the same for protocol v2, it uses a separate set of functions
(proxy_rpc() and others). Besides duplication of code, this has caused
at least one bug: the auth retry mechanism that was implemented in v0/v1
was not implemented in v2.

To fix this issue and avoid it in the future, make remote-curl also use
post_rpc() when handling protocol v2. Because line lengths are written
to the HTTP request in protocol v2 (unlike in protocol v0/v1), this
necessitates changes in post_rpc() and some of the functions it uses;
perform these changes too.

A test has been included to ensure that the code for both the unchunked
and chunked variants of the HTTP request is exercised.

Note: stateless_connect() has been updated to use the lower-level packet
reading functions instead of struct packet_reader. The low-level control
is necessary here because we cannot change the destination buffer of
struct packet_reader while it is being used; struct packet_buffer has a
peeking mechanism which relies on the destination buffer being present
in between a peek and a read.

Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agodocs/git-gc: fix typo "--prune=all" to "--prune=now"
Robert P. J. Day [Sat, 2 Mar 2019 08:51:52 +0000 (03:51 -0500)] 
docs/git-gc: fix typo "--prune=all" to "--prune=now"

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agol10n: Fixes to Catalan translation
Jordi Mas [Sat, 2 Mar 2019 18:12:58 +0000 (19:12 +0100)] 
l10n: Fixes to Catalan translation

Signed-off-by: Jordi Mas <jmas@softcatala.org>
5 years agol10n: Updated Vietnamese translation for v2.21 rd2
Tran Ngoc Quan [Tue, 26 Feb 2019 07:50:59 +0000 (14:50 +0700)] 
l10n: Updated Vietnamese translation for v2.21 rd2

Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
5 years agotravis: remove the hack to build the Windows job on Azure Pipelines
Johannes Schindelin [Thu, 28 Feb 2019 19:33:52 +0000 (11:33 -0800)] 
travis: remove the hack to build the Windows job on Azure Pipelines

Since Travis did not support Windows (and now only supports very limited
Windows jobs, too limited for our use, the test suite would time out
*all* the time), we added a hack where a Travis job would trigger an
Azure Pipeline (which back then was still called VSTS Build), wait for
it to finish (or time out), and download the log (if available).

Needless to say that it was a horrible hack, necessitated by a bad
situation.

Nowadays, however, we have Azure Pipelines support, and do not need that
hack anymore. So let's retire it.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agorebase docs: fix "gitlink" typo
Kyle Meyer [Thu, 28 Feb 2019 02:43:15 +0000 (21:43 -0500)] 
rebase docs: fix "gitlink" typo

Change it to "linkgit" so that the reference is properly rendered.

Signed-off-by: Kyle Meyer <kyle@kyleam.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agobisect: make diff-tree output prettier
Jeff King [Fri, 22 Feb 2019 06:23:28 +0000 (01:23 -0500)] 
bisect: make diff-tree output prettier

After completing a bisection, we print out the commit we found using an
internal version of diff-tree. The result is aesthetically lacking:

  - it shows a raw diff, which is generally less informative for human
    readers than "--stat --summary" (which we already decided was nice
    for humans in format-patch's output).

  - by not abbreviating hashes, the result is likely to wrap on most
    people's terminals

  - we don't use "-r", so if the commit touched files in a directory,
    you only get to see the top-level directory mentioned

  - we don't specify "--cc" or similar, so merges print nothing (not
    even the commit message!)

Even though bisect might be driven by scripts, there's no reason to
consider this part of the output as machine-readable (if anything, the
initial "$hash is the first bad commit" might be parsed, but we won't
touch that here). Let's make it prettier and more informative for a
human reading the output.

While we're tweaking the options, let's also switch to using the diff
"ui" config. If we're accepting that this is human-readable output, then
we should respect the user's options for how to display it.

Note that we have to touch a few tests in t6030. These check bisection
in a corrupted repository (it's missing a subtree). They didn't fail
with the previous code, because it didn't actually recurse far enough in
the diff to find the broken tree. But now we'll see the corruption and
complain.

Adjusting the tests to expect the die() is the best fix. We still
confirm that we're able to bisect within the broken repo. And we'll
still print "$hash is the first bad commit" as usual before dying;
showing that is a reasonable outcome in a corrupt repository (and was
what might happen already, if the root tree was corrupt).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agobisect: fix internal diff-tree config loading
Jeff King [Fri, 22 Feb 2019 06:21:33 +0000 (01:21 -0500)] 
bisect: fix internal diff-tree config loading

When we run our internal diff-tree to show the bisected commit, we call
init_revisions(), then load config, then setup_revisions(). But that
order is wrong: we copy the configured defaults into the rev_info struct
during the init_revisions step, so our config load wasn't actually doing
anything.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agobisect: use string arguments to feed internal diff-tree
Jeff King [Fri, 22 Feb 2019 06:20:37 +0000 (01:20 -0500)] 
bisect: use string arguments to feed internal diff-tree

Commit e22278c0a0 (bisect: display first bad commit without forking a
new process, 2009-05-28) converted our external call to diff-tree to
an internal use of the log_tree_commit(). But rather than individually
setting options in the rev_info struct (and explaining in comments how
they map to command-line options), we can just pass the command-line
options to setup_revisions().

This is shorter, easier to change, and less likely to break if
revision.c internals change.

Note that we unconditionally set the output format to "raw". The
conditional in the original code didn't actually do anything useful,
since nobody had an opportunity to set the format to anything.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agol10n: fr.po remove obsolete entries
Jean-Noël Avila [Mon, 25 Feb 2019 21:11:15 +0000 (22:11 +0100)] 
l10n: fr.po remove obsolete entries

On NetBSD, the version of msgfmt is still 0.14.4. There's no hope for
an upgrade due to some GPLv3 allergy of NetBSD's. This version chokes
on heavily decorated commented entries in po files. It's safer to get
rid of all these obsolete entries.

Signed-off-by: Jean-Noël Avila <jn.avila@free.fr>
5 years agoGit 2.21 v2.21.0
Junio C Hamano [Sun, 24 Feb 2019 15:55:19 +0000 (07:55 -0800)] 
Git 2.21

Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoMakefile: allow for combining DEVELOPER=1 and CFLAGS="..."
Ævar Arnfjörð Bjarmason [Fri, 22 Feb 2019 14:41:27 +0000 (15:41 +0100)] 
Makefile: allow for combining DEVELOPER=1 and CFLAGS="..."

Ever since the DEVELOPER=1 facility introduced there's been no way to
have custom CFLAGS (e.g. CFLAGS="-O0 -g -ggdb3") while still
benefiting from the set of warnings and assertions DEVELOPER=1
enables.

This is because the semantics of variables in the Makefile are such
that the user setting CFLAGS overrides anything we set, including what
we're doing in config.mak.dev[1].

So let's introduce a "DEVELOPER_CFLAGS" variable in config.mak.dev and
add it to ALL_CFLAGS. Before this the ALL_CFLAGS variable
would (basically, there's some nuance we won't go into) be set to:

    $(CPPFLAGS) [$(CFLAGS) *or* $(CFLAGS) in config.mak.dev] $(BASIC_CFLAGS) $(EXTRA_CPPFLAGS)

But will now be:

    $(DEVELOPER_CFLAGS) $(CPPFLAGS) $(CFLAGS) $(BASIC_CFLAGS) $(EXTRA_CPPFLAGS)

The reason for putting DEVELOPER_CFLAGS first is to allow for
selectively overriding something DEVELOPER=1 brings in. On both GCC
and Clang later settings override earlier ones. E.g. "-Wextra
-Wno-extra" will enable no "extra" warnings, but not if those two
arguments are reversed.

Examples of things that weren't possible before, but are now:

    # Use -O0 instead of -O2 for less painful debuggng
    DEVELOPER=1 CFLAGS="-O0 -g"
    # DEVELOPER=1 plus -Wextra, but disable some of the warnings
    DEVELOPER=1 DEVOPTS="no-error extra-all" CFLAGS="-O0 -g -Wno-unused-parameter"

The reason for the patches leading up to this one re-arranged the
various *FLAGS assignments and includes is just for readability. The
Makefile supports assignments out of order, e.g.:

    $ cat Makefile
    X = $(A) $(B) $(C)
    A = A
    B = B
    include c.mak
    all:
            @echo $(X)
    $ cat c.mak
    C=C
    $ make
    A B C

So we could have gotten away with the much smaller change of changing
"CFLAGS" in config.mak.dev to "DEVELOPER_CFLAGS" and adding that to
ALL_CFLAGS earlier in the Makefile "before" the config.mak.*
includes. But I think it's more readable to use variables "after"
they're included.

1. https://www.gnu.org/software/make/manual/html_node/Overriding.html

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoMakefile: move the setting of *FLAGS closer to "include"
Ævar Arnfjörð Bjarmason [Fri, 22 Feb 2019 14:41:26 +0000 (15:41 +0100)] 
Makefile: move the setting of *FLAGS closer to "include"

Move the setting of variables like CFLAGS down past settings like
"prefix" and default programs like "TAR" to just before we do the
include from "config.mak.*".

There's no functional changes here yet, but move note that
"ALL_CFLAGS" and "ALL_LDFLAGS" are moved below the include. A
follow-up change will tweak those depending on a variable set in
config.mak.dev.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoMakefile: Move *_LIBS assignment into its own section
Ævar Arnfjörð Bjarmason [Fri, 22 Feb 2019 14:41:25 +0000 (15:41 +0100)] 
Makefile: Move *_LIBS assignment into its own section

Now the only other non-program assignment in the previous list is
PTHREAD_CFLAGS, which'll be moved elsewhere in a follow-up change.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoMakefile: add/remove comments at top and tweak whitespace
Ævar Arnfjörð Bjarmason [Fri, 22 Feb 2019 14:41:24 +0000 (15:41 +0100)] 
Makefile: add/remove comments at top and tweak whitespace

The top of the Makfile is mostly separated into logical steps like set
default configuration, set programs etc., but there's some deviation
from that.

Let's add mostly comments where they're missing, remove those that
don't add anything. The whitespace tweaking makes subsequent patches
smaller.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoMakefile: move "strip" assignment down from flags
Ævar Arnfjörð Bjarmason [Fri, 22 Feb 2019 14:41:23 +0000 (15:41 +0100)] 
Makefile: move "strip" assignment down from flags

Move the assignment of the "STRIP" variable down to where we're
setting variables with the names of other programs.

For consistency with those use "=" for the assignment instead of
"?=". I can't imagine why this would need to be different than the
rest, and 4dc00021f7 ("Makefile: add 'strip' target", 2006-01-12)
which added it doesn't provide an explanation.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoMakefile: remove an out-of-date comment
Ævar Arnfjörð Bjarmason [Fri, 22 Feb 2019 14:41:22 +0000 (15:41 +0100)] 
Makefile: remove an out-of-date comment

Remove a comment referring to a caveat that hasn't been applicable
since 18b0fc1ce1 ("Git.pm: Kill Git.xs for now", 2006-09-23).

At the time of 8d7f586f13 ("Git.pm: Support for perl/ being built by a
different compiler", 2006-06-25) some of the code in perl would be
built by a C compiler, but support for that went away a few months
later in 18b0fc1ce1 discussed above.

Since my 20d2a30f8f ("Makefile: replace perl/Makefile.PL with simple
make rules", 2017-12-10) the perl/ directory doesn't even have its own
build process.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoMerge branch 'yn/checkout-doc-fix'
Junio C Hamano [Sun, 24 Feb 2019 15:18:00 +0000 (07:18 -0800)] 
Merge branch 'yn/checkout-doc-fix'

Doc fix.

* yn/checkout-doc-fix:
  checkout doc: fix an unmatched double-quote pair

5 years agodiff: reuse diff setup for --no-index case
Jeff King [Sat, 16 Feb 2019 06:57:56 +0000 (01:57 -0500)] 
diff: reuse diff setup for --no-index case

When "--no-index" is in effect (or implied by the arguments), git-diff
jumps early to a special code path to perform that diff. This means we
miss out on some settings like enabling --ext-diff and --textconv by
default.

Let's jump to the no-index path _after_ we've done more setup on
rev.diffopt. Since some of the options don't affect us (e.g., items
related to the index), let's re-order the setup into two blocks (see the
in-code comments).

Note that we also need to stop re-initializing the diffopt struct in
diff_no_index(). This should not be necessary, as it will already have
been initialized by cmd_diff() (and there are no other callers). That in
turn lets us drop the "repository" argument from diff_no_index (which
never made much sense, since the whole point is that you don't need a
repository).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoMerge tag 'l10n-2.21.0-rnd2' of git://github.com/git-l10n/git-po
Junio C Hamano [Sun, 24 Feb 2019 15:03:39 +0000 (07:03 -0800)] 
Merge tag 'l10n-2.21.0-rnd2' of git://github.com/git-l10n/git-po

l10n-2.21.0-rnd2

* tag 'l10n-2.21.0-rnd2' of git://github.com/git-l10n/git-po:
  l10n: bg.po: Updated Bulgarian translation (4363t)
  l10n: update German translation
  l10n: zh_CN: Revision for git v2.21.0 l10n
  l10n: zh_CN: for git v2.21.0 l10n round 1~2
  l10n: bg.po: correct typo
  l10n: Update Swedish translation (4363t0f0u)
  l10n: de.po: fix grammar in message for tag.c
  l10n: de.po: fix a message for index-pack.c
  l10n: de.po: consistent translation of 'root commit'
  l10n: it: update the Italian translation
  l10n: es: 2.21.0 round 2
  l10n: el: add Greek l10n team and essential translations
  l10n: fr.po v2.21.0 rnd 2
  l10n: fr.po Fix some typos from round3
  l10n: fr.po Fix some typos
  l10n: Fixes to Catalan translation
  l10n: git.pot: v2.21.0 round 2 (3 new, 3 removed)
  l10n: git.pot: v2.21.0 round 1 (214 new, 38 removed)
  l10n: zh_CN: fix typo of submodule init message
  l10n: Update Catalan translation

5 years agoREADME: adjust for final Azure Pipeline ID
Johannes Schindelin [Sat, 23 Feb 2019 14:49:23 +0000 (06:49 -0800)] 
README: adjust for final Azure Pipeline ID

During the six months of development of the Azure Pipelines support, the
patches went through quite a few iterations of changes, and to test
those iterations, a temporary build definition was used.

In the meantime, Azure Pipelines support made it to `master`, and we now
have a regular Azure Pipeline, installed via the common GitHub App
workflow. This new pipeline has a different name (git.git instead of
test-git.git), and a new ID (11 instead of 2).

Let's adjust the badge in our README to reflect that final shape of the
Azure Pipeline.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agocheckout doc: fix an unmatched double-quote pair
Yoichi Nakayama [Sat, 23 Feb 2019 06:33:40 +0000 (15:33 +0900)] 
checkout doc: fix an unmatched double-quote pair

Signed-off-by: Yoichi Nakayama <yoichi.nakayama@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agol10n: bg.po: Updated Bulgarian translation (4363t)
Alexander Shopov [Sat, 23 Feb 2019 16:39:07 +0000 (18:39 +0200)] 
l10n: bg.po: Updated Bulgarian translation (4363t)

Signed-off-by: Alexander Shopov <ash@kambanaria.org>
5 years agoMerge branch 'ab/bsd-fixes'
Junio C Hamano [Sat, 23 Feb 2019 05:20:19 +0000 (21:20 -0800)] 
Merge branch 'ab/bsd-fixes'

Test portability fix.

* ab/bsd-fixes:
  commit-graph tests: fix unportable "dd" invocation
  tests: fix unportable "\?" and "\+" regex syntax

5 years agoMerge branch 'ab/workaround-dash-bug-in-test'
Junio C Hamano [Sat, 23 Feb 2019 05:20:19 +0000 (21:20 -0800)] 
Merge branch 'ab/workaround-dash-bug-in-test'

* ab/workaround-dash-bug-in-test:
  tests: avoid syntax triggering old dash bug

5 years agotrace2: add for_each macros to clang-format
Jeff Hostetler [Fri, 22 Feb 2019 22:25:11 +0000 (14:25 -0800)] 
trace2: add for_each macros to clang-format

Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agotrace2: t/helper/test-trace2, t0210.sh, t0211.sh, t0212.sh
Jeff Hostetler [Fri, 22 Feb 2019 22:25:10 +0000 (14:25 -0800)] 
trace2: t/helper/test-trace2, t0210.sh, t0211.sh, t0212.sh

Create unit tests for Trace2.

Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agotrace2:data: add subverb for rebase
Jeff Hostetler [Fri, 22 Feb 2019 22:25:10 +0000 (14:25 -0800)] 
trace2:data: add subverb for rebase

Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agotrace2:data: add subverb to reset command
Jeff Hostetler [Fri, 22 Feb 2019 22:25:09 +0000 (14:25 -0800)] 
trace2:data: add subverb to reset command

Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agotrace2:data: add subverb to checkout command
Jeff Hostetler [Fri, 22 Feb 2019 22:25:08 +0000 (14:25 -0800)] 
trace2:data: add subverb to checkout command

Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agotrace2:data: pack-objects: add trace2 regions
Derrick Stolee [Fri, 22 Feb 2019 22:25:07 +0000 (14:25 -0800)] 
trace2:data: pack-objects: add trace2 regions

When studying the performance of 'git push' we would like to know
how much time is spent at various parts of the command. One area
that could cause performance trouble is 'git pack-objects'.

Add trace2 regions around the three main actions taken in this
command:

1. Enumerate objects.
2. Prepare pack.
3. Write pack-file.

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agotrace2:data: add trace2 instrumentation to index read/write
Jeff Hostetler [Fri, 22 Feb 2019 22:25:07 +0000 (14:25 -0800)] 
trace2:data: add trace2 instrumentation to index read/write

Add trace2 events to measure reading and writing the index.

Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agotrace2:data: add trace2 hook classification
Jeff Hostetler [Fri, 22 Feb 2019 22:25:06 +0000 (14:25 -0800)] 
trace2:data: add trace2 hook classification

Classify certain child processes as hooks.

Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agotrace2:data: add trace2 transport child classification
Jeff Hostetler [Fri, 22 Feb 2019 22:25:05 +0000 (14:25 -0800)] 
trace2:data: add trace2 transport child classification

Add trace2 child classification for transport processes.

Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agotrace2:data: add trace2 sub-process classification
Jeff Hostetler [Fri, 22 Feb 2019 22:25:05 +0000 (14:25 -0800)] 
trace2:data: add trace2 sub-process classification

Add trace2 classification for long-running processes
started in sub-process.c

Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agotrace2:data: add editor/pager child classification
Jeff Hostetler [Fri, 22 Feb 2019 22:25:04 +0000 (14:25 -0800)] 
trace2:data: add editor/pager child classification

Add trace2 process classification for editor and pager
child processes.

Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agotrace2:data: add trace2 regions to wt-status
Jeff Hostetler [Fri, 22 Feb 2019 22:25:03 +0000 (14:25 -0800)] 
trace2:data: add trace2 regions to wt-status

Add trace2_region_enter() and trace2_region_leave() calls around the
various phases of a status scan.  This gives elapsed time for each
phase in the GIT_TR2_PERF and GIT_TR2_EVENT trace target.

Also, these Trace2 calls now use s->repo rather than the_repository.

Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agotrace2: collect Windows-specific process information
Jeff Hostetler [Fri, 22 Feb 2019 22:25:02 +0000 (14:25 -0800)] 
trace2: collect Windows-specific process information

Add platform-specific interface to log information about the current
process.

On Windows, this interface is used to indicate whether the git process
is running under a debugger and list names of the process ancestors.

Information for other platforms is left for a future effort.

Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agotrace2: create new combined trace facility
Jeff Hostetler [Fri, 22 Feb 2019 22:25:01 +0000 (14:25 -0800)] 
trace2: create new combined trace facility

Create a new unified tracing facility for git.  The eventual intent is to
replace the current trace_printf* and trace_performance* routines with a
unified set of git_trace2* routines.

In addition to the usual printf-style API, trace2 provides higer-level
event verbs with fixed-fields allowing structured data to be written.
This makes post-processing and analysis easier for external tools.

Trace2 defines 3 output targets.  These are set using the environment
variables "GIT_TR2", "GIT_TR2_PERF", and "GIT_TR2_EVENT".  These may be
set to "1" or to an absolute pathname (just like the current GIT_TRACE).

* GIT_TR2 is intended to be a replacement for GIT_TRACE and logs command
  summary data.

* GIT_TR2_PERF is intended as a replacement for GIT_TRACE_PERFORMANCE.
  It extends the output with columns for the command process, thread,
  repo, absolute and relative elapsed times.  It reports events for
  child process start/stop, thread start/stop, and per-thread function
  nesting.

* GIT_TR2_EVENT is a new structured format. It writes event data as a
  series of JSON records.

Calls to trace2 functions log to any of the 3 output targets enabled
without the need to call different trace_printf* or trace_performance*
routines.

Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agotrace2: Documentation/technical/api-trace2.txt
Jeff Hostetler [Fri, 22 Feb 2019 22:25:00 +0000 (14:25 -0800)] 
trace2: Documentation/technical/api-trace2.txt

Created design document for Trace2 feature.

Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoDelete check-racy.c
Nguyễn Thái Ngọc Duy [Fri, 22 Feb 2019 11:27:57 +0000 (18:27 +0700)] 
Delete check-racy.c

This is git-checy-racy command, added a long time ago [1] and was never
part of the default build. Naturally after some makefile changes [2],
git-check-racy was no longer recognized as a build target. Even if it
compiles to day, it will not link after the introduction of
common-main.c [3].

Racy index has not been a problem for a long time [4].  It's time to let
this code go. I briefly consider if check-racy should be part of
test-tool.  But I don't think it's worth the effort.

[1] 42f774063d (Add check program "git-check-racy" - 2006-08-15)
[2] c373991375 (Makefile: list generated object files in OBJECTS -
    2010-01-26)
[3] 3f2e2297b9 (add an extra level of indirection to main() -
    2016-07-01)
[4] I pretend I don't remember anything about the recent split-index's
    racy problem

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoremote-curl: refactor reading into rpc_state's buf
Jonathan Tan [Thu, 21 Feb 2019 20:24:40 +0000 (12:24 -0800)] 
remote-curl: refactor reading into rpc_state's buf

Currently, whenever remote-curl reads pkt-lines from its response file
descriptor, only the payload is written to its buf, not the 4 characters
denoting the length. A future patch will require the ability to also
write those 4 characters, so in preparation for that, refactor this read
into its own function.

Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agocommit-graph tests: fix unportable "dd" invocation
Ævar Arnfjörð Bjarmason [Thu, 21 Feb 2019 19:28:49 +0000 (20:28 +0100)] 
commit-graph tests: fix unportable "dd" invocation

Change an unportable invocation of "dd" with count=0, that wanted to
truncate the commit-graph file.  In POSIX it is unspecified what
happens when count=0 is provided[1]. The NetBSD "dd" behavior
differs from GNU (and seemingly other BSDs), which has left this test
broken since d2b86fbaa1 ("commit-graph: fix buffer read-overflow",
2019-01-15).

Copying from /dev/null would seek/truncate to seek=$zero_pos and
stop immediately after that (without being able to copy anything),
which is the right way to truncate the file.

1. http://pubs.opengroup.org/onlinepubs/9699919799/utilities/dd.html

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Helped-by: SZEDER Gábor <szeder.dev@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoMerge branch 'master' of https://github.com/ralfth/git-po-de
Jiang Xin [Fri, 22 Feb 2019 14:18:12 +0000 (22:18 +0800)] 
Merge branch 'master' of https://github.com/ralfth/git-po-de

5 years agol10n: update German translation
Ralf Thielow [Fri, 22 Feb 2019 07:45:40 +0000 (08:45 +0100)] 
l10n: update German translation

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Reviewed-by: Matthias Rüster <matthias.ruester@gmail.com>