Ronnie Sahlberg 4ff17f10c4 send-pack.c: add --atomic command line argument
This adds support to send-pack to negotiate and use atomic pushes
iff the server supports it. Atomic pushes are activated by a new command
line flag --atomic.

In order to do this we also need to change the semantics for send_pack()
slightly. The existing send_pack() function actually doesn't send all the
refs back to the server when multiple refs are involved, for example
when using --all. Several of the failure modes for pushes can already be
detected locally in the send_pack client based on the information from the
initial server side list of all the refs as generated by receive-pack.
Any such refs that we thus know would fail to push are thus pruned from
the list of refs we send to the server to update.

For atomic pushes, we have to deal thus with both failures that are detected
locally as well as failures that are reported back from the server. In order
to do so we treat all local failures as push failures too.

We introduce a new status code REF_STATUS_ATOMIC_PUSH_FAILED so we can
flag all refs that we would normally have tried to push to the server
but we did not due to local failures. This is to improve the error message
back to the end user to flag that "these refs failed to update since the
atomic push operation failed."

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>
2015-01-07 19:56:44 -08:00
2014-10-29 10:08:07 -07:00
2014-11-19 13:47:53 -08:00
2014-07-28 10:14:33 -07:00
2014-10-08 13:05:26 -07:00
2014-10-29 10:07:56 -07:00
2014-10-08 13:05:25 -07:00
2014-09-19 11:38:35 -07:00
2014-10-14 10:49:45 -07:00
2014-08-29 10:45:32 -07:00
2014-09-19 11:38:33 -07:00
2014-10-20 12:23:48 -07:00
2014-09-11 10:44:26 -07:00
2014-10-29 10:08:07 -07:00
2014-10-29 10:09:35 -07:00
2014-11-26 13:18:34 -08:00
2014-10-20 12:25:32 -07:00
2014-10-08 13:05:25 -07:00
2014-09-29 12:36:11 -07:00
2014-10-31 11:49:47 -07:00
2014-10-20 12:23:48 -07:00
2014-10-20 12:23:48 -07:00
2014-10-29 10:08:07 -07:00
2014-10-14 10:49:45 -07:00
2014-10-19 15:28:30 -07:00
2014-10-19 15:28:30 -07:00
2014-09-02 13:23:20 -07:00
2014-07-21 12:35:39 -07:00
2014-10-20 12:23:48 -07:00
2014-10-10 16:02:26 -07:00
2014-10-29 10:48:45 -07:00
2014-10-08 13:05:25 -07:00
2014-09-15 11:29:46 -07:00
2014-09-02 13:28:44 -07:00
2014-10-29 10:07:56 -07:00
2014-10-24 14:59:10 -07:00
2014-11-19 13:47:52 -08:00
2014-09-02 13:28:44 -07:00

////////////////////////////////////////////////////////////////

	Git - the stupid content tracker

////////////////////////////////////////////////////////////////

"git" can mean anything, depending on your mood.

 - random three-letter combination that is pronounceable, and not
   actually used by any common UNIX command.  The fact that it is a
   mispronunciation of "get" may or may not be relevant.
 - stupid. contemptible and despicable. simple. Take your pick from the
   dictionary of slang.
 - "global information tracker": you're in a good mood, and it actually
   works for you. Angels sing, and a light suddenly fills the room.
 - "goddamn idiotic truckload of sh*t": when it breaks

Git is a fast, scalable, distributed revision control system with an
unusually rich command set that provides both high-level operations
and full access to internals.

Git is an Open Source project covered by the GNU General Public
License version 2 (some parts of it are under different licenses,
compatible with the GPLv2). It was originally written by Linus
Torvalds with help of a group of hackers around the net.

Please read the file INSTALL for installation instructions.

See Documentation/gittutorial.txt to get started, then see
Documentation/giteveryday.txt for a useful minimum set of commands, and
Documentation/git-commandname.txt for documentation of each command.
If git has been correctly installed, then the tutorial can also be
read with "man gittutorial" or "git help tutorial", and the
documentation of each command with "man git-commandname" or "git help
commandname".

CVS users may also want to read Documentation/gitcvs-migration.txt
("man gitcvs-migration" or "git help cvs-migration" if git is
installed).

Many Git online resources are accessible from http://git-scm.com/
including full documentation and Git related tools.

The user discussion and development of Git take place on the Git
mailing list -- everyone is welcome to post bug reports, feature
requests, comments and patches to git@vger.kernel.org (read
Documentation/SubmittingPatches for instructions on patch submission).
To subscribe to the list, send an email with just "subscribe git" in
the body to majordomo@vger.kernel.org. The mailing list archives are
available at http://news.gmane.org/gmane.comp.version-control.git/,
http://marc.info/?l=git and other archival sites.

The maintainer frequently sends the "What's cooking" reports that
list the current status of various development topics to the mailing
list.  The discussion following them give a good reference for
project status, development direction and remaining tasks.
Description
No description provided
Readme 235 MiB
Languages
C 50.1%
Shell 38.4%
Perl 5.1%
Tcl 3.3%
Python 0.8%
Other 2%