Merge branch 'jc/triangle-push-fixup'
commit3b8d2765c794ef1f1c7b39a90f72c4e61ce26fbd
authorJunio C Hamano <gitster@pobox.com>
Thu, 11 Jul 2013 20:03:21 +0000 (11 13:03 -0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 11 Jul 2013 20:03:21 +0000 (11 13:03 -0700)
tree0af328a7a081562447ce79a5c19ddd1f26284bb7
parentfb58544ec738ecdede58ad9dadb2d4676c544eb9
parent6e1696b7c46f02310a882b4e761a29d3a0cf278f
Merge branch 'jc/triangle-push-fixup'

Earlier remote.pushdefault (and per-branch branch.*.pushremote)
were introduced as an additional mechanism to choose what
repository to push into when "git push" did not say it from the
command line, to help people who push to a repository that is
different from where they fetch from.  This attempts to finish that
topic by teaching the default mechanism to choose branch in the
remote repository to be updated by such a push.

The 'current', 'matching' and 'nothing' modes (specified by the
push.default configuration variable) extend to such a "triangular"
workflow naturally, but 'upstream' and 'simple' have to be updated.

. 'upstream' is about pushing back to update the branch in the
  remote repository that the current branch fetches from and
  integrates with, it errors out in a triangular workflow.

. 'simple' is meant to help new people by avoiding mistakes, and
  will be the safe default in Git 2.0.

  In a non-triangular workflow, it will continue to act as a cross
  between 'upstream' and 'current' in that it pushes to the current
  branch's @{upstream} only when it is set to the same name as the
  current branch (e.g. your 'master' forks from the 'master' from
  the central repository).

  In a triangular workflow, this series tentatively defines it as
  the same as 'current', but we may have to tighten it to avoid
  surprises in some way.

* jc/triangle-push-fixup:
  t/t5528-push-default: test pushdefault workflows
  t/t5528-push-default: generalize test_push_*
  push: change `simple` to accommodate triangular workflows
  config doc: rewrite push.default section
  t/t5528-push-default: remove redundant test_config lines
Documentation/config.txt