From: Stefan Beller <sbeller@google.com>
To: gitster@pobox.com
Cc: git@vger.kernel.org, sunshine@sunshineco.com,
mhagger@alum.mit.edu, jrnieder@gmail.com,
ronniesahlberg@gmail.com, Stefan Beller <sbeller@google.com>
Subject: [PATCH 0/9] atomic pushes
Date: Tue, 30 Dec 2014 15:41:29 -0800 [thread overview]
Message-ID: <1419982898-23108-1-git-send-email-sbeller@google.com> (raw)
This patch series adds a flag to git push to update the remote refs atomically.
All comments from Eric and Junio have been incorporated.
The patch to negotiate the atomic push protocol was ripped apart
and we have one commit for the receiving side and one for the sending side,
so the order of new functionality introduced should not bring any bisect
breakages.
The remote side learned the receive.advertiseatomic config option
and a test was added, that the user cannot push any more if they ask
for --atomic but the server doesn't advertise atomic.
But as of writing this cover letter I have a question on the security
implications here. If we ask the remote side to not advertise atomic,
(say because of some problem with too many file descriptors open)
but the client side (being a malicious client, not possible with the code
presented in this patch series) does ask for atomic, the server should not
obey the request to handle it atomic. I just added that as well.
How about other capabilites requested such as "report-status",
"side-band-64k" and "quiet" ?
This series applies on top of origin/mh/reflog-expire
Any comments are welcome!
Thanks,
Stefan
Ronnie Sahlberg (3):
receive-pack.c: negotiate atomic push support
send-pack.c: add --atomic command line argument
push.c: add an --atomic argument
Stefan Beller (6):
receive-pack.c: shorten the execute_commands loop over all commands
receive-pack.c: move iterating over all commands outside
execute_commands
receive-pack.c: move transaction handling in a central place
receive-pack.c: add execute_commands_atomic function
send-pack: rename ref_update_to_be_sent to check_to_send_update
t5543-atomic-push.sh: add basic tests for atomic pushes
Documentation/git-push.txt | 7 +-
Documentation/git-send-pack.txt | 7 +-
Documentation/technical/protocol-capabilities.txt | 13 +-
builtin/push.c | 5 +
builtin/receive-pack.c | 166 ++++++++++++++----
builtin/send-pack.c | 6 +-
remote.h | 3 +-
send-pack.c | 65 +++++++-
send-pack.h | 3 +-
t/t5543-atomic-push.sh | 194 ++++++++++++++++++++++
transport.c | 5 +
transport.h | 1 +
12 files changed, 425 insertions(+), 50 deletions(-)
create mode 100755 t/t5543-atomic-push.sh
--
2.2.1.62.g3f15098
next reply other threads:[~2014-12-30 23:41 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-30 23:41 Stefan Beller [this message]
2014-12-30 23:41 ` [PATCHv9 1/9] receive-pack.c: shorten the execute_commands loop over all commands Stefan Beller
2015-01-03 2:20 ` Jonathan Nieder
2015-01-03 9:53 ` Duy Nguyen
2015-01-05 18:02 ` Stefan Beller
2015-01-05 18:25 ` [PATCHv10 01/10] " Stefan Beller
2015-01-05 18:25 ` [PATCHv10 02/10] receive-pack.c: die instead of error in assure_connectivity_checked Stefan Beller
2015-01-05 20:17 ` Jonathan Nieder
2015-01-05 21:15 ` Stefan Beller
2015-01-05 21:25 ` Jonathan Nieder
2015-01-06 19:40 ` [PATCHv11 02/11] receive-pack.c: die instead of error in case of possible future bug Stefan Beller
2015-01-06 19:46 ` Jonathan Nieder
2015-01-05 20:22 ` [PATCHv10 01/10] receive-pack.c: shorten the execute_commands loop over all commands Jonathan Nieder
2015-01-05 21:07 ` Stefan Beller
2015-01-05 21:18 ` Jonathan Nieder
2015-01-06 19:34 ` [PATCHv11 01/11] " Stefan Beller
2014-12-30 23:41 ` [PATCHv9 2/9] receive-pack.c: move iterating over all commands outside execute_commands Stefan Beller
2014-12-30 23:41 ` [PATCHv9 3/9] receive-pack.c: move transaction handling in a central place Stefan Beller
2014-12-30 23:41 ` [PATCHv9 4/9] receive-pack.c: add execute_commands_atomic function Stefan Beller
2014-12-30 23:41 ` [PATCHv9 5/9] receive-pack.c: negotiate atomic push support Stefan Beller
2014-12-30 23:41 ` [PATCHv9 6/9] send-pack: rename ref_update_to_be_sent to check_to_send_update Stefan Beller
2014-12-30 23:41 ` [PATCHv9 7/9] send-pack.c: add --atomic command line argument Stefan Beller
2014-12-30 23:41 ` [PATCHv9 8/9] push.c: add an --atomic argument Stefan Beller
2014-12-30 23:41 ` [PATCHv9 9/9] t5543-atomic-push.sh: add basic tests for atomic pushes Stefan Beller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1419982898-23108-1-git-send-email-sbeller@google.com \
--to=sbeller@google.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jrnieder@gmail.com \
--cc=mhagger@alum.mit.edu \
--cc=ronniesahlberg@gmail.com \
--cc=sunshine@sunshineco.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).