git-push: fix link in man page

Signed-off-by: Tony Finch <dot@dotat.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Merge branch 'rs/strbuf-getcwd' into jch

* rs/strbuf-getcwd:
  use strbuf_add_absolute_path() to add absolute paths
  abspath: convert absolute_path() to strbuf
  use xgetcwd() to set $GIT_DIR
  use xgetcwd() to get the current directory or die
  wrapper: add xgetcwd()
  abspath: convert real_path_internal() to strbuf
  abspath: use strbuf_getcwd() to remember original working directory
  setup: convert setup_git_directory_gently_1 et al. to strbuf
  unix-sockets: use strbuf_getcwd()
  strbuf: add strbuf_getcwd()
Merge branch 'mm/config-edit-global' into jch

* mm/config-edit-global:
  commit: advertise config --global --edit on guessed identity
  home_config_paths(): let the caller ignore xdg path
  config --global --edit: create a template file if needed
Merge branch 'rs/init-no-duplicate-real-path' into jch

* rs/init-no-duplicate-real-path:
  init: avoid superfluous real_path() calls
Merge branch 'ta/doc-config' into jch

* ta/doc-config:
  add documentation for writing config files
Merge branch 'tf/maint-doc-push' into jch

* tf/maint-doc-push:
  git-push: fix link in man page
### match next
Merge branch 'ta/config-set' into jch

More or less solidified enough to be built other enhancements upon.

* ta/config-set:
  test-config: add tests for the config_set API
  add `config_set` API for caching config-like files
Merge branch 'jc/test-lazy-prereq' into jch

Test-script clean-up.

Will hold.

* jc/test-lazy-prereq:
  tests: drop GIT_*_TIMING_TESTS environment variable support
Merge branch 'mt/patch-id-stable' into jch

Teaches "git patch-id" to compute the patch ID that does not change
when the files in a single patch is reordered. As this new algorithm
is backward incompatible, the last bit to flip it to be the default
is left out of 'master' for now.

Will hold.

* mt/patch-id-stable:
  patch-id: change default to stable
Merge branch 'cc/interpret-trailers' into jch

A new filter to programatically edit the tail end of the commit log
messages.

What is the status of this one?  I think I saw reviews by Michael
but after that I do not recall seeing any updates.

* cc/interpret-trailers:
  Documentation: add documentation for 'git interpret-trailers'
  trailer: add tests for commands in config file
  trailer: execute command from 'trailer.<name>.command'
  trailer: add tests for "git interpret-trailers"
  trailer: add interpret-trailers command
  trailer: put all the processing together and print
  trailer: parse trailers from file or stdin
  trailer: process command line trailer arguments
  trailer: read and process config information
  trailer: process trailers from input message and arguments
  trailer: add data structures and basic functions
Merge branch 'rs/ref-transaction-1' into jch

The second batch of the transactional ref update series.

* rs/ref-transaction-1:
  refs.c: make delete_ref use a transaction
  refs.c: make prune_ref use a transaction to delete the ref
  refs.c: remove lock_ref_sha1
  refs.c: remove the update_ref_write function
  refs.c: remove the update_ref_lock function
  refs.c: make lock_ref_sha1 static
  walker.c: use ref transaction for ref updates
  fast-import.c: use a ref transaction when dumping tags
  receive-pack.c: use a reference transaction for updating the refs
  refs.c: change update_ref to use a transaction
  branch.c: use ref transaction for all ref updates
  fast-import.c: change update_branch to use ref transactions
  sequencer.c: use ref transactions for all ref updates
  commit.c: use ref transactions for updates
  replace.c: use the ref transaction functions for updates
  tag.c: use ref transactions when doing updates
  refs.c: add transaction.status and track OPEN/CLOSED/ERROR
  refs.c: make ref_transaction_begin take an err argument
  refs.c: update ref_transaction_delete to check for error and return status
  refs.c: change ref_transaction_create to do error checking and return status

# Conflicts:
# 	sequencer.c
# 	walker.c
Merge branch 'rs/ref-transaction' into jch

* rs/ref-transaction:
  refs.c: fix handling of badly named refs
  refs.c: make write_ref_sha1 static
  fetch.c: change s_update_ref to use a ref transaction
  refs.c: propagate any errno==ENOTDIR from _commit back to the callers
  refs.c: pass a skip list to name_conflict_fn
  refs.c: call lock_ref_sha1_basic directly from commit
  refs.c: move the check for valid refname to lock_ref_sha1_basic
  refs.c: pass NULL as *flags to read_ref_full
  refs.c: pass the ref log message to _create/delete/update instead of _commit
  refs.c: add an err argument to delete_ref_loose
  wrapper.c: add a new function unlink_or_msg
  wrapper.c: simplify warn_if_unremovable

# Conflicts:
# 	builtin/log.c
# 	git-compat-util.h
# 	refs.c
# 	walker.c
Merge branch 'cb/mergetool-difftool' into jch

* cb/mergetool-difftool:
  difftool: don't assume that default sh is sane
  mergetool: don't require a work tree for --tool-help
Merge branch 'jc/not-mingw-cygwin' into jch

We have been using NOT_{MINGW,CYGWIN} test prerequisites long
before Peff invented support for negated prerequisites e.g. !MINGW
and we still add more uses of the former.  Convert them to the
latter to avoid confusion.

* jc/not-mingw-cygwin:
  test prerequisites: enumerate with commas
  test prerequisites: eradicate NOT_FOO
Merge branch 'po/everyday-doc' into jch

This may make the said command to emit something, but the source is
not meant to be formatted into a manual pages to begin with, and
also its contents are a bit stale.  It may be a good first step in
the right direction, but needs more work to at least get the
mark-up right before public consumption.

Will hold.

* po/everyday-doc:
  Make 'git help everyday' work

# Conflicts:
# 	Documentation/Makefile
Merge branch 'nd/multiple-work-trees-1' into jch

Continue polishing nd/multiple-work-trees topic in 'next'.

* nd/multiple-work-trees-1:
  checkout --to: do not touch existing target directory
  checkout: prefix --to argument properly when cwd is moved
  environment.c: fix incorrect git_graft_file initialization
  checkout --to: fix dangling pointers in remove_junk()
  checkout: no auto-detach if the ref is already checked out
  prune --repos: fix uninitialized access
  checkout: no need to call check_linked_checkouts if head_ref is NULL
  gitrepository-layout.txt: s/ignored/ignored if/
Merge branch 'pr/remotes-in-hashmap' into jch

Optimize remotes configuration look-up in a repository with very
many remotes defined.

* pr/remotes-in-hashmap:
  use a hashmap to make remotes faster
Merge branch 'rs/ref-transaction-reflog' into jch

Cover updates to reflog with the same transaction mechanism as used
for reflog manipulations.

* rs/ref-transaction-reflog:
  refs.c: allow deleting refs with a broken sha1
  refs.c: remove lock_any_ref_for_update
  refs.c: make unlock_ref/close_ref/commit_ref static
  refs.c: rename log_ref_setup to create_reflog
  reflog.c: use a reflog transaction when writing during expire
  refs.c: allow multiple reflog updates during a single transaction
  refs.c: only write reflog update if msg is non-NULL
  refs.c: add a flag to allow reflog updates to truncate the log
  refs.c: add a transaction function to append a reflog entry
  lockfile.c: make hold_lock_file_for_append preserve meaningful errno
  refs.c: add a function to append a reflog entry to a fd
  refs.c: add a new update_type field to ref_update
  refs.c: rename the transaction functions
  refs.c: make ref_transaction_delete a wrapper for ref_transaction_update
  refs.c: make ref_transaction_create a wrapper to ref_transaction_update

# Conflicts:
# 	builtin/checkout.c
# 	builtin/reflog.c
# 	refs.c
# 	refs.h
# 	walker.c
refs.c: allow passing raw git_committer_info as email to _update_reflog

In many places in the code we do not have access to the individual fields
in the committer data. Instead we might only have access to prebaked data
such as what is returned by git_committer_info() containing a string
that consists of email, timestamp, zone etc.

This makes it inconvenient to use transaction_update_reflog since it means
you would have to first parse git_committer_info before you can call
update_reflog.

Add a new flag REFLOG_COMMITTER_INFO_IS_VALID to _update_reflog to tell it
that we pass in a fully prebaked committer info string that can be used as is.

At the same time, also go over and change all references from email
to id where the code actually refers to a committer id and not just an email
address. I.e. where the string is : NAME <EMAIL>

Signed-off-by: Ronnie Sahlberg <sahlberg@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>