Remembering to pass --signed to git push on every push is extra typing that is easy to forget, and just leads to annoyance if the remote has a hook that makes signed pushes required. Add a config option push.gpgSign, analogous to commit.gpgSign, allowing users to set this flag by default. Since --signed push will simply fail on any remote that does not advertise a push cert nonce, actually setting this to true is not very useful (except for the super-paranoid who would never want to push to a server that does not support signed pushes). So, add a third state to this boolean, "if-possible", to sign the push if and only if supported by the server. To keep parity between the config and command line options, add a --signed-if-possible flag to git push as well. The "if-possible" name and weird tri-state boolean is basically a straw man, and I am happy to change if someone has a clearer suggestion. Dave Borowitz (7): Documentation/git-push.txt: Document when --signed may fail Documentation/git-send-pack.txt: Flow long synopsis line Documentation/git-send-pack.txt: Document --signed gitremote-helpers.txt: Document pushcert option transport: Remove git_transport_options.push_cert Support signing pushes iff the server supports it Add a config option push.gpgSign for default signed pushes Documentation/config.txt | 8 ++++++++ Documentation/git-push.txt | 11 +++++++++-- Documentation/git-send-pack.txt | 17 ++++++++++++++++- Documentation/gitremote-helpers.txt | 3 +++ builtin/push.c | 26 +++++++++++++++++++++++++- builtin/send-pack.c | 33 +++++++++++++++++++++++++++++++-- remote-curl.c | 14 ++++++++++---- send-pack.c | 18 +++++++++++++++--- send-pack.h | 8 +++++++- transport-helper.c | 34 +++++++++++++++++----------------- transport.c | 11 +++++++---- transport.h | 6 +++--- 12 files changed, 151 insertions(+), 38 deletions(-) -- 2.5.0.276.gf5e568e -- 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