Subject: [PATCH v2 0/12] implement @{push} shorthand

From: Jeff King <[email-masked]>
Date: Fri, 1 May 2015 18:44:15 -0400

This is a re-roll of the series at:

  http://thread.gmane.org/gmane.comp.version-control.git/266532

There were some minor fixes in response to review, but the main change
here is support for "git for-each-ref --format=%(push)". To do that, I
pulled the push logic into remote.[ch], where it can be used from both
sha1_name.c and for-each-ref.c. This is a better place for it to reside,
anyway, and may help in the future unifying it with the other remote
code that is used by `git push`.

In an effort to reuse as much of the @{upstream} code as possible, I did
similar refactoring for that side; we now have branch_get_upstream().
Even though the logic for getting @{upstream} isn't nearly as
complicated as for @{push}, I think several call-sites are improved by
using the new helper.

  [01/12]: remote.c: drop default_remote_name variable
  [02/12]: remote.c: drop "remote" pointer from "struct branch"
  [03/12]: remote.c: hoist branch.*.remote lookup out of remote_get_1
  [04/12]: remote.c: provide per-branch pushremote name
  [05/12]: remote.c: introduce branch_get_upstream helper
  [06/12]: remote.c: report specific errors from branch_get_upstream
  [07/12]: remote.c: add branch_get_push
  [08/12]: sha1_name: refactor upstream_mark
  [09/12]: sha1_name: refactor interpret_upstream_mark
  [10/12]: sha1_name: implement @{push} shorthand
  [11/12]: for-each-ref: use skip_prefix instead of starts_with
  [12/12]: for-each-ref: accept "%(push)" format

-Peff