git/git.git
13 months agopromisor-remote.h: drop extern from function declaration
Denton Liu [Sat, 21 Sep 2019 00:03:48 +0000 (17:03 -0700)]
promisor-remote.h: drop extern from function declaration

During the creation of this file, each time a new function declaration
was introduced, it included an `extern`. However, starting from
554544276a (*.[ch]: remove extern from function declarations using
spatch, 2019-04-29), we've been actively trying to prevent externs from
being used in function declarations because they're unnecessary.

Remove these spurious `extern`s.

Signed-off-by: Denton Liu <liu.denton@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
17 months agoMove core_partial_clone_filter_default to promisor-remote.c
Christian Couder [Tue, 25 Jun 2019 13:40:39 +0000 (15:40 +0200)]
Move core_partial_clone_filter_default to promisor-remote.c

Now that we can have a different default partial clone filter for
each promisor remote, let's hide core_partial_clone_filter_default
as a static in promisor-remote.c to avoid it being use for
anything other than managing backward compatibility.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
17 months agoMove repository_format_partial_clone to promisor-remote.c
Christian Couder [Tue, 25 Jun 2019 13:40:38 +0000 (15:40 +0200)]
Move repository_format_partial_clone to promisor-remote.c

Now that we have has_promisor_remote() and can use many
promisor remotes, let's hide repository_format_partial_clone
as a static in promisor-remote.c to avoid it being use
for anything other than managing backward compatibility.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
17 months agoRemove fetch-object.{c,h} in favor of promisor-remote.{c,h}
Christian Couder [Tue, 25 Jun 2019 13:40:37 +0000 (15:40 +0200)]
Remove fetch-object.{c,h} in favor of promisor-remote.{c,h}

As fetch_objects() is now used only in promisor-remote.c
and should't be used outside it, let's move it into
promisor-remote.c, make it static there, and remove
fetch-object.{c,h}.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
17 months agoremote: add promisor and partial clone config to the doc
Christian Couder [Tue, 25 Jun 2019 13:40:36 +0000 (15:40 +0200)]
remote: add promisor and partial clone config to the doc

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
17 months agopartial-clone: add multiple remotes in the doc
Christian Couder [Tue, 25 Jun 2019 13:40:35 +0000 (15:40 +0200)]
partial-clone: add multiple remotes in the doc

While at it, let's remove a reference to ODB effort as the ODB
effort has been replaced by directly enhancing partial clone
and promisor remote features.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
17 months agot0410: test fetching from many promisor remotes
Christian Couder [Tue, 25 Jun 2019 13:40:34 +0000 (15:40 +0200)]
t0410: test fetching from many promisor remotes

This shows that it is now possible to fetch objects from more
than one promisor remote, and that fetching from a new
promisor remote can configure it as one.

Helped-by: SZEDER Gábor <szeder.dev@gmail.com>
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
17 months agobuiltin/fetch: remove unique promisor remote limitation
Christian Couder [Tue, 25 Jun 2019 13:40:33 +0000 (15:40 +0200)]
builtin/fetch: remove unique promisor remote limitation

As the infrastructure for more than one promisor remote
has been introduced in previous patches, we can remove
code that forbids the registration of more than one
promisor remote.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
17 months agopromisor-remote: parse remote.*.partialclonefilter
Christian Couder [Tue, 25 Jun 2019 13:40:32 +0000 (15:40 +0200)]
promisor-remote: parse remote.*.partialclonefilter

This makes it possible to specify a different partial clone
filter for each promisor remote.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
17 months agoUse promisor_remote_get_direct() and has_promisor_remote()
Christian Couder [Tue, 25 Jun 2019 13:40:31 +0000 (15:40 +0200)]
Use promisor_remote_get_direct() and has_promisor_remote()

Instead of using the repository_format_partial_clone global
and fetch_objects() directly, let's use has_promisor_remote()
and promisor_remote_get_direct().

This way all the configured promisor remotes will be taken
into account, not only the one specified by
extensions.partialClone.

Also when cloning or fetching using a partial clone filter,
remote.origin.promisor will be set to "true" instead of
setting extensions.partialClone to "origin". This makes it
possible to use many promisor remote just by fetching from
them.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
17 months agopromisor-remote: use repository_format_partial_clone
Christian Couder [Tue, 25 Jun 2019 13:40:30 +0000 (15:40 +0200)]
promisor-remote: use repository_format_partial_clone

A remote specified using the extensions.partialClone config
option should be considered a promisor remote too.

For simplicity and to make things predictable, this promisor
remote should be either always the last one we try to get
objects from, or the first one. So it should always be either
at the end of the promisor remote list, or at its start.

We decided to make it the last one we try, because it is
likely that someone using many promisor remotes is doing so
because the other promisor remotes are better for some reason
(maybe they are closer or faster for some kind of objects)
than the origin, and the origin is likely to be the remote
specified by extensions.partialClone.

This justification is not very strong, but one choice had to
be made, and anyway the long term plan should be to make the
order somehow fully configurable.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
17 months agopromisor-remote: add promisor_remote_reinit()
Christian Couder [Tue, 25 Jun 2019 13:40:29 +0000 (15:40 +0200)]
promisor-remote: add promisor_remote_reinit()

We will need to reinitialize the promisor remote configuration
as we will make some changes to it in a later commit.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
17 months agopromisor-remote: implement promisor_remote_get_direct()
Christian Couder [Tue, 25 Jun 2019 13:40:28 +0000 (15:40 +0200)]
promisor-remote: implement promisor_remote_get_direct()

This is implemented for now by calling fetch_objects(). It fetches
from all the promisor remotes.

Helped-by: Ramsay Jones <ramsay@ramsayjones.plus.com>
Helped-by: Derrick Stolee <stolee@gmail.com>
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
17 months agoAdd initial support for many promisor remotes
Christian Couder [Tue, 25 Jun 2019 13:40:27 +0000 (15:40 +0200)]
Add initial support for many promisor remotes

The promisor-remote.{c,h} files will contain functions to
manage many promisor remotes.

We expect that there will not be a lot of promisor remotes,
so it is ok to use a simple linked list to manage them.

Helped-by: Jeff King <peff@peff.net>
Helped-by: SZEDER Gábor <szeder.dev@gmail.com>
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
17 months agofetch-object: make functions return an error code
Christian Couder [Tue, 25 Jun 2019 13:40:26 +0000 (15:40 +0200)]
fetch-object: make functions return an error code

The callers of the fetch_object() and fetch_objects() might
be interested in knowing if these functions succeeded or not.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
17 months agot0410: remove pipes after git commands
Christian Couder [Tue, 25 Jun 2019 13:40:25 +0000 (15:40 +0200)]
t0410: remove pipes after git commands

Let's not run a git command, especially one with "verify" in its
name, upstream of a pipe, because the pipe will hide the git
command's exit code.

While at it, let's also avoid a useless `cat` command piping
into `sed`.

Helped-by: SZEDER Gábor <szeder.dev@gmail.com>
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
17 months agoThe third batch 616/head
Junio C Hamano [Fri, 21 Jun 2019 18:26:11 +0000 (11:26 -0700)]
The third batch

Signed-off-by: Junio C Hamano <gitster@pobox.com>
17 months agoMerge branch 'mo/clang-format-for-each-update'
Junio C Hamano [Fri, 21 Jun 2019 18:24:12 +0000 (11:24 -0700)]
Merge branch 'mo/clang-format-for-each-update'

The list of for-each like macros used by clang-format has been
updated.

* mo/clang-format-for-each-update:
  clang-format: use git grep to generate the ForEachMacros list

17 months agoMerge branch 'md/url-parse-harden'
Junio C Hamano [Fri, 21 Jun 2019 18:24:12 +0000 (11:24 -0700)]
Merge branch 'md/url-parse-harden'

The URL decoding code has been updated to avoid going past the end
of the string while parsing %-<hex>-<hex> sequence.

* md/url-parse-harden:
  url: do not allow %00 to represent NUL in URLs
  url: do not read past end of buffer

17 months agoMerge branch 'an/ignore-doc-update'
Junio C Hamano [Fri, 21 Jun 2019 18:24:11 +0000 (11:24 -0700)]
Merge branch 'an/ignore-doc-update'

The description about slashes in gitignore patterns (used to
indicate things like "anchored to this level only" and "only
matches directories") has been revamped.

* an/ignore-doc-update:
  gitignore.txt: make slash-rules more readable

17 months agoMerge branch 'ab/hash-object-doc'
Junio C Hamano [Fri, 21 Jun 2019 18:24:11 +0000 (11:24 -0700)]
Merge branch 'ab/hash-object-doc'

Doc update.

* ab/hash-object-doc:
  hash-object doc: stop mentioning git-cvsimport

17 months agoMerge branch 'cm/send-email-document-req-modules'
Junio C Hamano [Fri, 21 Jun 2019 18:24:10 +0000 (11:24 -0700)]
Merge branch 'cm/send-email-document-req-modules'

A doc update.

* cm/send-email-document-req-modules:
  send-email: update documentation of required Perl modules

17 months agoMerge branch 'md/list-objects-filter-parse-msgfix'
Junio C Hamano [Fri, 21 Jun 2019 18:24:10 +0000 (11:24 -0700)]
Merge branch 'md/list-objects-filter-parse-msgfix'

Make an end-user facing message localizable.

* md/list-objects-filter-parse-msgfix:
  list-objects-filter-options: error is localizeable

17 months agoMerge branch 'md/list-objects-filter-memfix'
Junio C Hamano [Fri, 21 Jun 2019 18:24:09 +0000 (11:24 -0700)]
Merge branch 'md/list-objects-filter-memfix'

The filter_data used in the list-objects-filter (which manages a
lazily sparse clone repository) did not use the dynamic array API
correctly---'nr' is supposed to point at one past the last element
of the array in use.  This has been corrected.

* md/list-objects-filter-memfix:
  list-objects-filter: correct usage of ALLOC_GROW

17 months agoMerge branch 'jt/partial-clone-missing-ref-delta-base'
Junio C Hamano [Fri, 21 Jun 2019 18:24:09 +0000 (11:24 -0700)]
Merge branch 'jt/partial-clone-missing-ref-delta-base'

"git fetch" into a lazy clone forgot to fetch base objects that are
necessary to complete delta in a thin packfile, which has been
corrected.

* jt/partial-clone-missing-ref-delta-base:
  t5616: cover case of client having delta base
  t5616: use correct flag to check object is missing
  index-pack: prefetch missing REF_DELTA bases
  t5616: refactor packfile replacement

17 months agoMerge branch 'ml/userdiff-rust'
Junio C Hamano [Fri, 21 Jun 2019 18:24:08 +0000 (11:24 -0700)]
Merge branch 'ml/userdiff-rust'

The pattern "git diff/grep" use to extract funcname and words
boundary for Rust has been added.

* ml/userdiff-rust:
  userdiff: two simplifications of patterns for rust
  userdiff: add built-in pattern for rust

17 months agoThe second batch
Junio C Hamano [Mon, 17 Jun 2019 17:16:10 +0000 (10:16 -0700)]
The second batch

Signed-off-by: Junio C Hamano <gitster@pobox.com>
17 months agoMerge branch 'xl/record-partial-clone-origin'
Junio C Hamano [Mon, 17 Jun 2019 17:15:20 +0000 (10:15 -0700)]
Merge branch 'xl/record-partial-clone-origin'

When creating a partial clone, the object filtering criteria is
recorded for the origin of the clone, but this incorrectly used a
hardcoded name "origin" to name that remote; it has been corrected
to honor the "--origin <name>" option.

* xl/record-partial-clone-origin:
  clone: respect user supplied origin name when setting up partial clone

17 months agoMerge branch 'pb/request-pull-verify-remote-ref'
Junio C Hamano [Mon, 17 Jun 2019 17:15:20 +0000 (10:15 -0700)]
Merge branch 'pb/request-pull-verify-remote-ref'

"git request-pull" learned to warn when the ref we ask them to pull
from in the local repository and in the published repository are
different.

* pb/request-pull-verify-remote-ref:
  request-pull: warn if the remote object is not the same as the local one
  request-pull: quote regex metacharacters in local ref

17 months agoMerge branch 'mm/p4-unshelve-windows-fix'
Junio C Hamano [Mon, 17 Jun 2019 17:15:19 +0000 (10:15 -0700)]
Merge branch 'mm/p4-unshelve-windows-fix'

The command line to invoke a "git cat-file" command from inside
"git p4" was not properly quoted to protect a caret and running a
broken command on Windows, which has been corrected.

* mm/p4-unshelve-windows-fix:
  p4 unshelve: fix "Not a valid object name HEAD0" on Windows

17 months agoMerge branch 'po/git-help-on-git-itself'
Junio C Hamano [Mon, 17 Jun 2019 17:15:19 +0000 (10:15 -0700)]
Merge branch 'po/git-help-on-git-itself'

"git help git" was hard to discover (well, at least for some
people).

* po/git-help-on-git-itself:
  Doc: git.txt: remove backticks from link and add git-scm.com/docs
  git.c: show usage for accessing the git(1) help page

17 months agoMerge branch 'es/first-contrib-tutorial'
Junio C Hamano [Mon, 17 Jun 2019 17:15:18 +0000 (10:15 -0700)]
Merge branch 'es/first-contrib-tutorial'

A new tutorial targetting specifically aspiring git-core
developers.

* es/first-contrib-tutorial:
  doc: add some nit fixes to MyFirstContribution
  documentation: add anchors to MyFirstContribution
  documentation: add tutorial for first contribution

17 months agoMerge branch 'bb/unicode-12.1-reiwa'
Junio C Hamano [Mon, 17 Jun 2019 17:15:18 +0000 (10:15 -0700)]
Merge branch 'bb/unicode-12.1-reiwa'

Update to Unicode 12.1 width table.

* bb/unicode-12.1-reiwa:
  unicode: update the width tables to Unicode 12.1

17 months agoMerge branch 'sw/git-p4-unshelve-branched-files'
Junio C Hamano [Mon, 17 Jun 2019 17:15:18 +0000 (10:15 -0700)]
Merge branch 'sw/git-p4-unshelve-branched-files'

"git p4" update.

* sw/git-p4-unshelve-branched-files:
  git-p4: allow unshelving of branched files

17 months agoMerge branch 'js/fsmonitor-unflake'
Junio C Hamano [Mon, 17 Jun 2019 17:15:17 +0000 (10:15 -0700)]
Merge branch 'js/fsmonitor-unflake'

The data collected by fsmonitor was not properly written back to
the on-disk index file, breaking t7519 tests occasionally, which
has been corrected.

* js/fsmonitor-unflake:
  mark_fsmonitor_valid(): mark the index as changed if needed
  fill_stat_cache_info(): prepare for an fsmonitor fix

17 months agoMerge branch 'ds/topo-traversal-using-commit-graph'
Junio C Hamano [Mon, 17 Jun 2019 17:15:17 +0000 (10:15 -0700)]
Merge branch 'ds/topo-traversal-using-commit-graph'

Prepare use of reachability index in topological walker that works
on a range (A..B).

* ds/topo-traversal-using-commit-graph:
  revision: keep topo-walk free of unintersting commits
  revision: use generation for A..B --topo-order queries

17 months agoMerge branch 'bl/userdiff-octave'
Junio C Hamano [Mon, 17 Jun 2019 17:15:17 +0000 (10:15 -0700)]
Merge branch 'bl/userdiff-octave'

The pattern "git diff/grep" use to extract funcname and words
boundary for Matlab has been extend to cover Octave, which is more
or less equivalent.

* bl/userdiff-octave:
  userdiff: fix grammar and style issues
  userdiff: add Octave

17 months agoMerge branch 'ba/clone-remote-submodules'
Junio C Hamano [Mon, 17 Jun 2019 17:15:17 +0000 (10:15 -0700)]
Merge branch 'ba/clone-remote-submodules'

"git clone --recurse-submodules" learned to set up the submodules
to ignore commit object names recorded in the superproject gitlink
and instead use the commits that happen to be at the tip of the
remote-tracking branches from the get-go, by passing the new
"--remote-submodules" option.

* ba/clone-remote-submodules:
  clone: add `--remote-submodules` flag

17 months agoMerge branch 'vv/merge-squash-with-explicit-commit'
Junio C Hamano [Mon, 17 Jun 2019 17:15:17 +0000 (10:15 -0700)]
Merge branch 'vv/merge-squash-with-explicit-commit'

"git merge --squash" is designed to update the working tree and the
index without creating the commit, and this cannot be countermanded
by adding the "--commit" option; the command now refuses to work
when both options are given.

* vv/merge-squash-with-explicit-commit:
  merge: refuse --commit with --squash

17 months agoMerge branch 'js/bundle-verify-require-object-store'
Junio C Hamano [Mon, 17 Jun 2019 17:15:16 +0000 (10:15 -0700)]
Merge branch 'js/bundle-verify-require-object-store'

"git bundle verify" needs to see if prerequisite objects exist in
the receiving repository, but the command did not check if we are
in a repository upfront, which has been corrected.

* js/bundle-verify-require-object-store:
  bundle verify: error out if called without an object database

17 months agoMerge branch 'js/bisect-helper-check-get-oid-return-value'
Junio C Hamano [Mon, 17 Jun 2019 17:15:16 +0000 (10:15 -0700)]
Merge branch 'js/bisect-helper-check-get-oid-return-value'

Code cleanup.

* js/bisect-helper-check-get-oid-return-value:
  bisect--helper: verify HEAD could be parsed before continuing

17 months agoMerge branch 'jk/am-i-resolved-fix'
Junio C Hamano [Mon, 17 Jun 2019 17:15:15 +0000 (10:15 -0700)]
Merge branch 'jk/am-i-resolved-fix'

"git am -i --resolved" segfaulted after trying to see a commit as
if it were a tree, which has been corrected.

* jk/am-i-resolved-fix:
  am: fix --interactive HEAD tree resolution
  am: drop tty requirement for --interactive
  am: read interactive input from stdin
  am: simplify prompt response handling

17 months agoMerge branch 'jk/HEAD-symref-in-xfer-namespaces'
Junio C Hamano [Mon, 17 Jun 2019 17:15:15 +0000 (10:15 -0700)]
Merge branch 'jk/HEAD-symref-in-xfer-namespaces'

The server side support for "git fetch" used to show incorrect
value for the HEAD symbolic ref when the namespace feature is in
use, which has been corrected.

* jk/HEAD-symref-in-xfer-namespaces:
  upload-pack: strip namespace from symref data

17 months agoMerge branch 'ew/server-info-remove-crufts'
Junio C Hamano [Mon, 17 Jun 2019 17:15:15 +0000 (10:15 -0700)]
Merge branch 'ew/server-info-remove-crufts'

"git update-server-info" used to leave stale packfiles in its
output, which has been corrected.

* ew/server-info-remove-crufts:
  server-info: do not list unlinked packs

17 months agoMerge branch 'es/grep-require-name-when-needed'
Junio C Hamano [Mon, 17 Jun 2019 17:15:14 +0000 (10:15 -0700)]
Merge branch 'es/grep-require-name-when-needed'

More parameter validation.

* es/grep-require-name-when-needed:
  grep: fail if call could output and name is null

17 months agoMerge branch 'es/git-debugger-doc'
Junio C Hamano [Mon, 17 Jun 2019 17:15:14 +0000 (10:15 -0700)]
Merge branch 'es/git-debugger-doc'

Doc update.

* es/git-debugger-doc:
  doc: hint about GIT_DEBUGGER in CodingGuidelines

17 months agoMerge branch 'ds/object-info-for-prefetch-fix'
Junio C Hamano [Mon, 17 Jun 2019 17:15:14 +0000 (10:15 -0700)]
Merge branch 'ds/object-info-for-prefetch-fix'

Code cleanup and futureproof.

* ds/object-info-for-prefetch-fix:
  sha1-file: split OBJECT_INFO_FOR_PREFETCH

17 months agoThe first batch after 2.22
Junio C Hamano [Thu, 13 Jun 2019 20:23:03 +0000 (13:23 -0700)]
The first batch after 2.22

Signed-off-by: Junio C Hamano <gitster@pobox.com>
17 months agoMerge branch 'pw/rebase-edit-message-for-replayed-merge'
Junio C Hamano [Thu, 13 Jun 2019 20:19:43 +0000 (13:19 -0700)]
Merge branch 'pw/rebase-edit-message-for-replayed-merge'

A "merge -c" instruction during "git rebase --rebase-merges" should
give the user a chance to edit the log message, even when there is
otherwise no need to create a new merge and replace the existing
one (i.e. fast-forward instead), but did not.  Which has been
corrected.

* pw/rebase-edit-message-for-replayed-merge:
  rebase -r: always reword merge -c

17 months agoMerge branch 'ab/deprecate-R-for-dynpath'
Junio C Hamano [Thu, 13 Jun 2019 20:19:43 +0000 (13:19 -0700)]
Merge branch 'ab/deprecate-R-for-dynpath'

The way of specifying the path to find dynamic libraries at runtime
has been simplified.  The old default to pass -R/path/to/dir has been
replaced with the new default to pass -Wl,-rpath,/path/to/dir,
which is the more recent GCC uses.  Those who need to build with an
old GCC can still use "CC_LD_DYNPATH=-R"

* ab/deprecate-R-for-dynpath:
  Makefile: remove the NO_R_TO_GCC_LINKER flag

17 months agoMerge branch 'mh/import-transport-fd-fix'
Junio C Hamano [Thu, 13 Jun 2019 20:19:43 +0000 (13:19 -0700)]
Merge branch 'mh/import-transport-fd-fix'

The ownership rule for the file descriptor to fast-import remote
backend was mixed up, leading to unrelated file descriptor getting
closed, which has been fixed.

* mh/import-transport-fd-fix:
  Use xmmap_gently instead of xmmap in use_pack
  dup() the input fd for fast-import used for remote helpers

17 months agoMerge branch 'ew/update-server-info'
Junio C Hamano [Thu, 13 Jun 2019 20:19:42 +0000 (13:19 -0700)]
Merge branch 'ew/update-server-info'

"git update-server-info" learned not to rewrite the file with the
same contents.

* ew/update-server-info:
  update-server-info: avoid needless overwrites

17 months agoMerge branch 'jk/help-unknown-ref-fix'
Junio C Hamano [Thu, 13 Jun 2019 20:19:42 +0000 (13:19 -0700)]
Merge branch 'jk/help-unknown-ref-fix'

Improve the code to show args with potential typo that cannot be
interpreted as a commit-ish.

* jk/help-unknown-ref-fix:
  help_unknown_ref(): check for refname ambiguity
  help_unknown_ref(): duplicate collected refnames

17 months agoMerge branch 'dl/format-patch-notes-config'
Junio C Hamano [Thu, 13 Jun 2019 20:19:42 +0000 (13:19 -0700)]
Merge branch 'dl/format-patch-notes-config'

"git format-patch" learns a configuration to set the default for
its --notes=<ref> option.

* dl/format-patch-notes-config:
  format-patch: teach format.notes config option
  git-format-patch.txt: document --no-notes option

17 months agoMerge branch 'nd/merge-quit'
Junio C Hamano [Thu, 13 Jun 2019 20:19:41 +0000 (13:19 -0700)]
Merge branch 'nd/merge-quit'

"git merge" learned "--quit" option that cleans up the in-progress
merge while leaving the working tree and the index still in a mess.

* nd/merge-quit:
  merge: add --quit
  merge: remove drop_save() in favor of remove_merge_branch_state()

17 months agoMerge branch 'ab/fail-prereqs-in-test'
Junio C Hamano [Thu, 13 Jun 2019 20:19:41 +0000 (13:19 -0700)]
Merge branch 'ab/fail-prereqs-in-test'

Developer support to emulate unsatisfied prerequisites in tests to
ensure that the remainer of the tests still succeeds when tests
with prerequisites are skipped.

* ab/fail-prereqs-in-test:
  tests: add a special setup where prerequisites fail

17 months agoMerge branch 'nd/corrupt-worktrees'
Junio C Hamano [Thu, 13 Jun 2019 20:19:41 +0000 (13:19 -0700)]
Merge branch 'nd/corrupt-worktrees'

"git worktree add" used to fail when another worktree connected to
the same repository was corrupt, which has been corrected.

* nd/corrupt-worktrees:
  worktree add: be tolerant of corrupt worktrees

17 months agoMerge branch 'js/rebase-cleanup'
Junio C Hamano [Thu, 13 Jun 2019 20:19:40 +0000 (13:19 -0700)]
Merge branch 'js/rebase-cleanup'

Update supporting parts of "git rebase" to remove code that should
no longer be used.

* js/rebase-cleanup:
  rebase: fold git-rebase--common into the -p backend
  sequencer: the `am` and `rebase--interactive` scripts are gone
  .gitignore: there is no longer a built-in `git-rebase--interactive`
  t3400: stop referring to the scripted rebase
  Drop unused git-rebase--am.sh

17 months agoMerge branch 'nd/worktree-name-sanitization'
Junio C Hamano [Thu, 13 Jun 2019 20:19:40 +0000 (13:19 -0700)]
Merge branch 'nd/worktree-name-sanitization'

In recent versions of Git, per-worktree refs are exposed in
refs/worktrees/<wtname>/ hierarchy, which means that worktree names
must be a valid refname component.  The code now sanitizes the names
given to worktrees, to make sure these refs are well-formed.

* nd/worktree-name-sanitization:
  worktree add: sanitize worktree names

17 months agoMerge branch 'en/fast-export-encoding'
Junio C Hamano [Thu, 13 Jun 2019 20:19:39 +0000 (13:19 -0700)]
Merge branch 'en/fast-export-encoding'

The "git fast-export/import" pair has been taught to handle commits
with log messages in encoding other than UTF-8 better.

* en/fast-export-encoding:
  fast-export: do automatic reencoding of commit messages only if requested
  fast-export: differentiate between explicitly UTF-8 and implicitly UTF-8
  fast-export: avoid stripping encoding header if we cannot reencode
  fast-import: support 'encoding' commit header
  t9350: fix encoding test to actually test reencoding

17 months agoMerge branch 'jk/unused-params-final-batch'
Junio C Hamano [Thu, 13 Jun 2019 20:19:34 +0000 (13:19 -0700)]
Merge branch 'jk/unused-params-final-batch'

* jk/unused-params-final-batch:
  verify-commit: simplify parameters to run_gpg_verify()
  show-branch: drop unused parameter from show_independent()
  rev-list: drop unused void pointer from finish_commit()
  remove_all_fetch_refspecs(): drop unused "remote" parameter
  receive-pack: drop unused "commands" from prepare_shallow_update()
  pack-objects: drop unused rev_info parameters
  name-rev: drop unused parameters from is_better_name()
  mktree: drop unused length parameter
  wt-status: drop unused status parameter
  read-cache: drop unused parameter from threaded load
  clone: drop dest parameter from copy_alternates()
  submodule: drop unused prefix parameter from some functions
  builtin: consistently pass cmd_* prefix to parse_options
  cmd_{read,write}_tree: rename "unused" variable that is used

17 months agoMerge branch 'sb/format-patch-base-patch-id-fix'
Junio C Hamano [Thu, 13 Jun 2019 20:18:46 +0000 (13:18 -0700)]
Merge branch 'sb/format-patch-base-patch-id-fix'

The "--base" option of "format-patch" computed the patch-ids for
prerequisite patches in an unstable way, which has been updated to
compute in a way that is compatible with "git patch-id --stable".

* sb/format-patch-base-patch-id-fix:
  format-patch: make --base patch-id output stable
  format-patch: inform user that patch-id generation is unstable

17 months agoMerge branch 'nd/init-relative-template-fix'
Junio C Hamano [Thu, 13 Jun 2019 20:18:46 +0000 (13:18 -0700)]
Merge branch 'nd/init-relative-template-fix'

A relative pathname given to "git init --template=<path> <repo>"
ought to be relative to the directory "git init" gets invoked in,
but it instead was made relative to the repository, which has been
corrected.

* nd/init-relative-template-fix:
  init: make --template path relative to $CWD

17 months agoMerge branch 'ab/send-email-transferencoding-fix'
Junio C Hamano [Thu, 13 Jun 2019 20:18:46 +0000 (13:18 -0700)]
Merge branch 'ab/send-email-transferencoding-fix'

Since "git send-email" learned to take 'auto' as the value for the
transfer-encoding, it by mistake stopped honoring the values given
to the configuration variables sendemail.transferencoding and/or
sendemail.<ident>.transferencoding.  This has been corrected to
(finally) redoing the order of setting the default, reading the
configuration and command line options.

* ab/send-email-transferencoding-fix:
  send-email: fix regression in sendemail.identity parsing
  send-email: document --no-[to|cc|bcc]
  send-email: fix broken transferEncoding tests
  send-email: remove cargo-culted multi-patch pattern in tests
  send-email: do defaults -> config -> getopt in that order
  send-email: rename the @bcclist variable for consistency
  send-email: move the read_config() function above getopts

17 months agot5616: cover case of client having delta base
Jonathan Tan [Tue, 11 Jun 2019 21:06:47 +0000 (14:06 -0700)]
t5616: cover case of client having delta base

When fetching into a partial clone, Git first prefetches missing
REF_DELTA bases from the promisor remote. (This feature was introduced
in [1].) But as can be seen in a recent test coverage report [2], the
case in which a REF_DELTA base is already present is not covered by
tests.

Extend the tests slightly to cover this case.

[1] 8a30a1efd1 ("index-pack: prefetch missing REF_DELTA bases",
2019-05-15).
[2] https://public-inbox.org/git/396091fc-5572-19a5-4f18-61c258590dd5@gmail.com/

Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
17 months agot5616: use correct flag to check object is missing
Jonathan Tan [Tue, 11 Jun 2019 21:06:46 +0000 (14:06 -0700)]
t5616: use correct flag to check object is missing

If we want to check whether an object is missing, the correct flag to
pass to rev-list is --ignore-missing; --exclude-promisor-objects will
exclude any object that came from the promisor remote, whether it is
present or missing. Use the correct flag.

Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
17 months agoGit 2.22 v2.22.0
Junio C Hamano [Fri, 7 Jun 2019 16:39:21 +0000 (09:39 -0700)]
Git 2.22

Signed-off-by: Junio C Hamano <gitster@pobox.com>
17 months agoMerge tag 'l10n-2.22.0-rnd3' of git://github.com/git-l10n/git-po
Junio C Hamano [Fri, 7 Jun 2019 16:36:32 +0000 (09:36 -0700)]
Merge tag 'l10n-2.22.0-rnd3' of git://github.com/git-l10n/git-po

l10n-2.22.0-rnd3

* tag 'l10n-2.22.0-rnd3' of git://github.com/git-l10n/git-po: (25 commits)
  l10n: fr.po: Review French translation
  l10n: de.po: Update German translation
  l10n: de.po: improve description of 'git reset --quiet'
  l10n: TEAMS: Change German translation team leader
  l10n: bg.po: Updated Bulgarian translation (4581t)
  l10n: zh_CN: Revision for git v2.22.0 l10n
  l10n: zh_CN: for git v2.22.0 l10n round 1~3
  l10n: es: 2.22.0 round 3
  l10n: it.po: Updated Italian translation
  l10n: fr v2.22.0 rnd 3
  l10n: vi.po(4581t): Updated Vietnamese translation for v2.22.0 round 3
  l10n: git.pot: v2.22.0 round 3 (3 new, 2 removed)
  l10n: es: 2.22.0 round 2
  l10n: bg.po: Updated Bulgarian translation (4580t)
  l10n: vi.po(4580t): Updated Vietnamese translation for v2.22.0 round 2
  l10n: fr.po v2.22.0 round 2
  l10n: git.pot: v2.22.0 round 2 (6 new, 3 removed)
  l10n: bg.po: Updated Bulgarian translation (4577t)
  l10n: es: 2.22.0 round 1
  l10n: vi.po(4577t): Updated Vietnamese translation for v2.22.0 round 1
  ...

17 months agoMerge branch 'fr_review' of git://github.com/jnavila/git
Jiang Xin [Fri, 7 Jun 2019 08:51:09 +0000 (16:51 +0800)]
Merge branch 'fr_review' of git://github.com/jnavila/git

* 'fr_review' of git://github.com/jnavila/git:
  l10n: fr.po: Review French translation

17 months agoMerge branch 'master' of git://github.com/alshopov/git-po
Jiang Xin [Fri, 7 Jun 2019 08:50:23 +0000 (16:50 +0800)]
Merge branch 'master' of git://github.com/alshopov/git-po

* 'master' of git://github.com/alshopov/git-po:
  l10n: bg.po: Updated Bulgarian translation (4581t)

17 months agol10n: fr.po: Review French translation
Cédric Malard [Wed, 5 Jun 2019 21:33:52 +0000 (23:33 +0200)]
l10n: fr.po: Review French translation

Signed-off-by: Cédric Malard <c.malard-git@valdun.net>
Signed-off-by: Jean-Noel Avila <jn.avila@free.fr>
17 months agoMerge branch 'en/merge-directory-renames-fix'
Junio C Hamano [Thu, 6 Jun 2019 21:03:36 +0000 (14:03 -0700)]
Merge branch 'en/merge-directory-renames-fix'

Recent code restructuring of merge-recursive engine introduced a
regression dealing with rename/add conflict.

* en/merge-directory-renames-fix:
  merge-recursive: restore accidentally dropped setting of path

17 months agol10n: de.po: Update German translation
Matthias Rüster [Sat, 1 Jun 2019 12:32:49 +0000 (14:32 +0200)]
l10n: de.po: Update German translation

Reviewed-by: Ralf Thielow <ralf.thielow@gmail.com>
Signed-off-by: Matthias Rüster <matthias.ruester@gmail.com>
17 months agol10n: de.po: improve description of 'git reset --quiet'
Ralf Thielow [Thu, 28 Feb 2019 18:25:51 +0000 (19:25 +0100)]
l10n: de.po: improve description of 'git reset --quiet'

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
17 months agol10n: TEAMS: Change German translation team leader
Matthias Rüster [Sat, 1 Jun 2019 12:32:44 +0000 (14:32 +0200)]
l10n: TEAMS: Change German translation team leader

Acked-by: Ralf Thielow <ralf.thielow@gmail.com>
Signed-off-by: Matthias Rüster <matthias.ruester@gmail.com>
17 months agomerge-recursive: restore accidentally dropped setting of path
Elijah Newren [Tue, 4 Jun 2019 20:27:50 +0000 (13:27 -0700)]
merge-recursive: restore accidentally dropped setting of path

In commit 8daec1df03de ("merge-recursive: switch from (oid,mode) pairs
to a diff_filespec", 2019-04-05), we actually switched from
(oid,mode,path) triplets to a diff_filespec -- but most callsites in the
patch only needed to worry about oid and mode so the commit message
focused on that.  The oversight in the commit message apparently spilled
over to the code as well; one of the dozen or so callsites accidentally
dropped the setting of the path in the conversion.  Restore the path
setting in that location.

Also, this pointed out that our testsuite was lacking a good rename/add
test, at least one that involved the need for merge content with the
rename.  Add such a test, and since rename/add vs. add/rename could
possibly be important, redo the merge the opposite direction to make
sure we don't have issues with the direction of the merge.  These
testcases failed before restoring the setting of path, but with the
paths appropriately set the testcases both pass.

Reported-by: Ben Humphreys <behumphreys@atlassian.com>
Based-on-patch-by: SZEDER Gábor <szeder.dev@gmail.com>
Tested-by: Ben Humphreys <behumphreys@atlassian.com>
Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
17 months agol10n: bg.po: Updated Bulgarian translation (4581t)
Alexander Shopov [Wed, 5 Jun 2019 06:51:15 +0000 (08:51 +0200)]
l10n: bg.po: Updated Bulgarian translation (4581t)

Signed-off-by: Alexander Shopov <ash@kambanaria.org>
17 months agol10n: zh_CN: Revision for git v2.22.0 l10n
Fangyi Zhou [Sun, 2 Jun 2019 21:41:45 +0000 (22:41 +0100)]
l10n: zh_CN: Revision for git v2.22.0 l10n

Revise 51 translations, improving consistency for some phrased.
Update email address for Fangyi Zhou

Signed-off-by: Fangyi Zhou <me@fangyi.io>
Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
17 months agol10n: zh_CN: for git v2.22.0 l10n round 1~3
Jiang Xin [Tue, 16 Apr 2019 00:56:12 +0000 (08:56 +0800)]
l10n: zh_CN: for git v2.22.0 l10n round 1~3

Translate 274 new messages (4581t0f0u) for git 2.22.0.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
17 months agoMerge branch '2.22' of https://github.com/ChrisADR/git-po
Jiang Xin [Wed, 5 Jun 2019 00:35:35 +0000 (08:35 +0800)]
Merge branch '2.22' of https://github.com/ChrisADR/git-po

* '2.22' of https://github.com/ChrisADR/git-po:
  l10n: es: 2.22.0 round 3

17 months agoMerge branch 'it-l10n-wip' of github.com:AlessandroMenti/git-po
Jiang Xin [Wed, 5 Jun 2019 00:17:28 +0000 (08:17 +0800)]
Merge branch 'it-l10n-wip' of github.com:AlessandroMenti/git-po

* 'it-l10n-wip' of github.com:AlessandroMenti/git-po:
  l10n: it.po: Updated Italian translation

17 months agol10n: es: 2.22.0 round 3
Christopher Diaz Riveros [Tue, 4 Jun 2019 23:52:28 +0000 (18:52 -0500)]
l10n: es: 2.22.0 round 3

Signed-off-by: Christopher Diaz Riveros <chrisadr@gentoo.org>
17 months agoclang-format: use git grep to generate the ForEachMacros list
Miguel Ojeda [Mon, 3 Jun 2019 22:48:14 +0000 (00:48 +0200)]
clang-format: use git grep to generate the ForEachMacros list

The ForEachMacros list can reasonably be generated grepping
the C source code for macros with 'for_each' in their name.

Taken almost verbatim from the .clang-format file in the Linux kernel.

Signed-off-by: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
17 months agourl: do not allow %00 to represent NUL in URLs
Matthew DeVore [Tue, 4 Jun 2019 17:57:05 +0000 (10:57 -0700)]
url: do not allow %00 to represent NUL in URLs

There is no reason to allow %00 to terminate a string, so do not allow it.
Otherwise, we end up returning arbitrary content in the string (that which is
after the %00) which is effectively hidden from callers and can escape sanity
checks and validation, and possible be used in tandem with a security
vulnerability to introduce a payload.

Helped-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Matthew DeVore <matvore@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
17 months agourl: do not read past end of buffer
Matthew DeVore [Tue, 4 Jun 2019 17:57:04 +0000 (10:57 -0700)]
url: do not read past end of buffer

url_decode_internal could have been tricked into reading past the length
of the **query buffer if there are fewer than 2 characters after a % (in
a null-terminated string, % would have to be the last character).
Prevent this from happening by checking len before decoding the %
sequence.

Helped-by: René Scharfe <l.s.r@web.de>
Signed-off-by: Matthew DeVore <matvore@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
17 months agogitignore.txt: make slash-rules more readable
Dr. Adam Nielsen [Tue, 4 Jun 2019 17:34:46 +0000 (19:34 +0200)]
gitignore.txt: make slash-rules more readable

Renew paragraphs relevant for pattern with slash.
Aim to make it more clear and to avoid possible
pitfalls for the reader. Add some examples.

Signed-off-by: Dr. Adam Nielsen <admin@in-ici.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
17 months agol10n: it.po: Updated Italian translation
Alessandro Menti [Sun, 19 May 2019 06:51:55 +0000 (08:51 +0200)]
l10n: it.po: Updated Italian translation

Signed-off-by: Alessandro Menti <alessandro.menti@alessandromenti.it>
17 months agol10n: fr v2.22.0 rnd 3
Jean-Noël Avila [Tue, 4 Jun 2019 17:53:32 +0000 (19:53 +0200)]
l10n: fr v2.22.0 rnd 3

Signed-off-by: Jean-Noël Avila <jn.avila@free.fr>
17 months agol10n: vi.po(4581t): Updated Vietnamese translation for v2.22.0 round 3
Tran Ngoc Quan [Tue, 4 Jun 2019 01:10:46 +0000 (08:10 +0700)]
l10n: vi.po(4581t): Updated Vietnamese translation for v2.22.0 round 3

Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
17 months agol10n: git.pot: v2.22.0 round 3 (3 new, 2 removed)
Jiang Xin [Tue, 4 Jun 2019 00:27:36 +0000 (08:27 +0800)]
l10n: git.pot: v2.22.0 round 3 (3 new, 2 removed)

Generate po/git.pot from v2.22.0-rc3 for git v2.22.0 l10n round 3.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
17 months agoMerge branch 'master' of git://git.kernel.org/pub/scm/git/git
Jiang Xin [Tue, 4 Jun 2019 00:24:28 +0000 (08:24 +0800)]
Merge branch 'master' of git://git./git/git

* 'master' of git://git.kernel.org/pub/scm/git/git:
  Git 2.22-rc3
  i18n: fix typos found during l10n for git 2.22.0
  RelNotes: minor typo fixes in 2.22.0 draft
  list-objects-filter: disable 'sparse:path' filters

17 months agoGit 2.22-rc3 v2.22.0-rc3
Junio C Hamano [Mon, 3 Jun 2019 18:25:12 +0000 (11:25 -0700)]
Git 2.22-rc3

Signed-off-by: Junio C Hamano <gitster@pobox.com>
17 months agoMerge branch 'cc/list-objects-filter-wo-sparse-path'
Junio C Hamano [Mon, 3 Jun 2019 18:18:54 +0000 (11:18 -0700)]
Merge branch 'cc/list-objects-filter-wo-sparse-path'

Disable "--filter=sparse:path=<path>" that would allow reading from
paths on the filesystem.

* cc/list-objects-filter-wo-sparse-path:
  list-objects-filter: disable 'sparse:path' filters

17 months agoi18n: fix typos found during l10n for git 2.22.0
Jiang Xin [Sun, 2 Jun 2019 15:11:22 +0000 (23:11 +0800)]
i18n: fix typos found during l10n for git 2.22.0

Fix two typos introduced by the following commits:

31fba9d3b4 (diff-parseopt: convert --[src|dst]-prefix, 2019-03-24)
ed8b4132c8 (remote-curl: mark all error messages for translation,
  2019-03-05)

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
Acked-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
17 months agoRelNotes: minor typo fixes in 2.22.0 draft
Todd Zullinger [Sat, 1 Jun 2019 15:51:06 +0000 (11:51 -0400)]
RelNotes: minor typo fixes in 2.22.0 draft

Signed-off-by: Todd Zullinger <tmz@pobox.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
17 months agol10n: es: 2.22.0 round 2
Christopher Diaz Riveros [Mon, 3 Jun 2019 14:34:50 +0000 (09:34 -0500)]
l10n: es: 2.22.0 round 2

Signed-off-by: Christopher Diaz Riveros <chrisadr@gentoo.org>
17 months agoMerge branch 'master' of https://github.com/vnwildman/git
Jiang Xin [Sun, 2 Jun 2019 14:35:11 +0000 (22:35 +0800)]
Merge branch 'master' of https://github.com/vnwildman/git

* 'master' of https://github.com/vnwildman/git:
  l10n: vi.po(4580t): Updated Vietnamese translation for v2.22.0 round 2

17 months agoMerge branch 'master' of git://github.com/alshopov/git-po
Jiang Xin [Sun, 2 Jun 2019 14:09:35 +0000 (22:09 +0800)]
Merge branch 'master' of git://github.com/alshopov/git-po

* 'master' of git://github.com/alshopov/git-po:
  l10n: bg.po: Updated Bulgarian translation (4580t)

17 months agol10n: bg.po: Updated Bulgarian translation (4580t)
Alexander Shopov [Sun, 2 Jun 2019 07:26:52 +0000 (09:26 +0200)]
l10n: bg.po: Updated Bulgarian translation (4580t)

Signed-off-by: Alexander Shopov <ash@kambanaria.org>
17 months agol10n: vi.po(4580t): Updated Vietnamese translation for v2.22.0 round 2
Tran Ngoc Quan [Sat, 1 Jun 2019 01:36:37 +0000 (08:36 +0700)]
l10n: vi.po(4580t): Updated Vietnamese translation for v2.22.0 round 2

Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>