Junio C Hamano 8ccba008ee unpack-trees: allow Porcelain to give different error messages
The plumbing output is sacred as it is an API.  We _could_ change it if it
is broken in such a way that it cannot convey necessary information fully,
but we just do not _reword_ for the sake of rewording.  If somebody does
not like it, s/he is complaining too late.  S/he should have been here in
early May 2005 and make the language used by the API closer to what humans
read.  S/he wasn't here.  Too bad, and it is too late.

And people who complain should look at a bigger picture.  Look at what was
suggested by one of them and think for five seconds:

     $ git checkout mytopic
    -fatal: Entry 'frotz' not uptodate. Cannot merge.
    +fatal: Entry 'frotz' has local changes. Cannot merge.

If you do not see something wrong with this output, your brain has already
been rotten with use of git for too long a time.  Nobody asked us to
"merge" but why are we talking about "Cannot merge"?

This patch introduces a mechanism to allow Porcelains to specify messages
that are different from the ones that is given by the underlying plumbing
implementation of read-tree, so that we can reword the message Porcelains give
without disrupting the output from the plumbing.

    $ git-checkout pu
    error: You have local changes to 'Makefile'; cannot switch branches.

There are other places that ask unpack_trees() to n-way merge, detect
issues  and let it issue error message on its own, but I did this as a
demonstration and replaced only one message.

Yes I know about C99 structure initializers.  I'd love to use them but we
try to be nice to compilers without it.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-05-19 19:30:13 -07:00
2007-06-07 00:04:01 -07:00
2008-05-16 22:10:13 -07:00
2008-05-15 01:31:15 -07:00
2007-06-07 00:04:01 -07:00
2007-06-07 00:04:01 -07:00
2008-05-16 22:05:22 -07:00
2008-02-29 00:00:09 -08:00
2007-05-30 15:03:50 -07:00
2007-06-07 00:04:01 -07:00
2008-05-14 13:45:20 -07:00
2008-04-19 21:09:54 -07:00
2008-02-27 13:03:50 -08:00
2008-05-14 13:34:34 -07:00
2007-11-09 00:21:44 -08:00
2008-03-14 00:16:42 -07:00
2008-02-26 00:14:22 -08:00
2008-01-16 15:35:35 -08:00
2008-03-26 00:10:55 -07:00
2008-03-01 01:51:44 -08:00
2008-05-14 13:45:20 -07:00
2008-05-14 13:45:20 -07:00
2008-02-16 17:59:20 -08:00
2007-06-07 00:04:01 -07:00
2007-06-07 00:04:01 -07:00
2008-05-10 18:14:28 -07:00
2008-02-05 00:46:49 -08:00
2008-05-14 13:45:20 -07:00
2008-03-05 10:32:01 -08:00
2008-02-25 23:57:35 -08:00
2008-05-12 15:44:43 -07:00
2008-05-13 21:45:28 -07:00
2008-04-02 00:22:20 -07:00
2008-05-14 13:45:16 -07:00
2008-05-14 13:45:16 -07:00
2008-04-29 23:11:57 -07:00
2006-09-27 23:59:09 -07:00
2008-05-06 16:50:17 -07:00
2007-12-13 23:04:26 -08:00
2008-02-09 23:16:51 -08:00
2008-02-25 23:57:35 -08:00
2007-06-07 00:04:01 -07:00
2007-11-02 16:27:37 -07:00
2008-02-17 12:47:01 -08:00
2007-06-07 00:04:01 -07:00
2008-03-08 21:29:56 -08:00
2008-05-05 19:16:16 -07:00
2008-04-20 16:03:40 -07:00
2007-11-09 21:14:10 -08:00
2008-05-05 19:16:16 -07:00
2008-02-25 19:57:06 -08:00
2008-03-02 15:11:07 -08:00
2006-03-25 16:35:43 -08:00
2007-05-01 02:59:08 -07:00
2008-03-02 15:11:07 -08:00
2008-05-03 13:39:53 -07:00
2008-03-14 00:16:42 -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.
It was originally written by Linus Torvalds with help of a group of
hackers around the net. It is currently maintained by Junio C Hamano.

Please read the file INSTALL for installation instructions.
See Documentation/tutorial.txt to get started, then see
Documentation/everyday.txt for a useful minimum set of commands,
and "man git-commandname" for documentation of each command.
CVS users may also want to read Documentation/cvs-migration.txt.

Many Git online resources are accessible from http://git.or.cz/
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. 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://marc.theaimsgroup.com/?l=git and other archival sites.

The messages titled "A note from the maintainer", "What's in
git.git (stable)" and "What's cooking in git.git (topics)" and
the discussion following them on the mailing list give a good
reference for project status, development direction and
remaining tasks.
Description
Git with broken hash generation to generate collisions between object IDs. Don't use this!
https://undefinedbehavior.de/posts/commit-vandalism/
Readme 217 MiB
Languages
C 50%
Shell 38.2%
Perl 5.5%
Tcl 3.5%
Python 0.9%
Other 1.7%