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 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html