summaryrefslogtreecommitdiff
path: root/builtin/push.c
diff options
context:
space:
mode:
authorRonnie Sahlberg <sahlberg@google.com>2015-01-08 03:23:23 (GMT)
committerJunio C Hamano <gitster@pobox.com>2015-01-08 03:56:44 (GMT)
commitd0e8e09cd8828b278a56d4ebfc52d662ff8038d8 (patch)
tree4e0a64281575a14d7c46184d061a32d2ed28105d /builtin/push.c
parent4ff17f10c4297ab3d9948d4216016ca367e737e3 (diff)
downloadgit-d0e8e09cd8828b278a56d4ebfc52d662ff8038d8.zip
git-d0e8e09cd8828b278a56d4ebfc52d662ff8038d8.tar.gz
git-d0e8e09cd8828b278a56d4ebfc52d662ff8038d8.tar.bz2
push.c: add an --atomic argument
Add a command line argument to the git push command to request atomic pushes. Signed-off-by: Ronnie Sahlberg <sahlberg@google.com> Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/push.c')
-rw-r--r--builtin/push.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/builtin/push.c b/builtin/push.c
index a076b19..8f1d945 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);