diff options
author | Junio C Hamano <gitster@pobox.com> | 2015-02-09 14:37:17 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2015-02-09 14:37:17 -0800 |
commit | 507d6aa5bf2fb9f56d0c7f70d4ff3b8177da9d8e (patch) | |
tree | ef1fc1dd06e2e394ebf75652b41ac732c2fdddfb /builtin/push.c | |
parent | Merge branch 'mh/reflog-expire' into mh/ref-trans-value-check (diff) | |
parent | Document receive.advertiseatomic (diff) | |
download | tgif-507d6aa5bf2fb9f56d0c7f70d4ff3b8177da9d8e.tar.xz |
Merge branch 'sb/atomic-push' into mh/ref-trans-value-check
* sb/atomic-push:
Document receive.advertiseatomic
t5543-atomic-push.sh: add basic tests for atomic pushes
push.c: add an --atomic argument
send-pack.c: add --atomic command line argument
send-pack: rename ref_update_to_be_sent to check_to_send_update
receive-pack.c: negotiate atomic push support
receive-pack.c: add execute_commands_atomic function
receive-pack.c: move transaction handling in a central place
receive-pack.c: move iterating over all commands outside execute_commands
receive-pack.c: die instead of error in case of possible future bug
receive-pack.c: shorten the execute_commands loop over all commands
Diffstat (limited to 'builtin/push.c')
-rw-r--r-- | builtin/push.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/builtin/push.c b/builtin/push.c index 12f5e69393..fc771a9f6f 100644 --- a/builtin/push.c +++ b/builtin/push.c @@ -487,6 +487,7 @@ int cmd_push(int argc, const char **argv, const char *prefix) int flags = 0; int tags = 0; int rc; + int atomic = 0; const char *repo = NULL; /* default repository */ struct option options[] = { OPT__VERBOSITY(&verbosity), @@ -518,6 +519,7 @@ int cmd_push(int argc, const char **argv, const char *prefix) OPT_BIT(0, "follow-tags", &flags, N_("push missing but relevant tags"), TRANSPORT_PUSH_FOLLOW_TAGS), OPT_BIT(0, "signed", &flags, N_("GPG sign the push"), TRANSPORT_PUSH_CERT), + OPT_BOOL(0, "atomic", &atomic, N_("request atomic transaction on remote side")), OPT_END() }; @@ -533,6 +535,9 @@ int cmd_push(int argc, const char **argv, const char *prefix) if (tags) add_refspec("refs/tags/*"); + if (atomic) + flags |= TRANSPORT_PUSH_ATOMIC; + if (argc > 0) { repo = argv[0]; set_refspecs(argv + 1, argc - 1, repo); |