Michael Haggerty c29c46fa2e pack-refs: add fully-peeled trait
Older versions of pack-refs did not write peel lines for
refs outside of refs/tags. This meant that on reading the
pack-refs file, we might set the REF_KNOWS_PEELED flag for
such a ref, even though we do not know anything about its
peeled value.

The previous commit updated the writer to always peel, no
matter what the ref is. That means that packed-refs files
written by newer versions of git are fine to be read by both
old and new versions of git. However, we still have the
problem of reading packed-refs files written by older
versions of git, or by other implementations which have not
yet learned the same trick.

The simplest fix would be to always unset the
REF_KNOWS_PEELED flag for refs outside of refs/tags that do
not have a peel line (if it has a peel line, we know it is
valid, but we cannot assume a missing peel line means
anything). But that loses an important optimization, as
upload-pack should not need to load the object pointed to by
refs/heads/foo to determine that it is not a tag.

Instead, we add a "fully-peeled" trait to the packed-refs
file. If it is set, we know that we can trust a missing peel
line to mean that a ref cannot be peeled. Otherwise, we fall
back to assuming nothing.

[commit message and tests by Jeff King <peff@peff.net>]

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-03-18 08:06:28 -07:00
2012-10-17 10:36:42 -07:00
2012-10-04 19:13:43 +02:00
2013-03-18 08:06:28 -07:00
2012-07-13 15:37:04 -07:00
2012-09-14 21:20:40 -07:00
2012-09-02 21:10:01 -07:00
2012-09-11 11:23:54 -07:00
2012-07-22 12:55:07 -07:00
2012-08-21 14:46:11 -07:00
2012-03-07 12:12:59 -08:00
2012-01-08 15:08:03 -08:00
2012-07-31 09:41:52 -07:00
2012-08-23 21:30:51 -07:00
2012-07-15 21:38:32 -07:00
2012-10-17 10:36:42 -07:00
2012-06-25 11:55:51 -07:00
2012-04-06 10:15:11 -07:00
2012-07-25 11:08:59 -07:00
2012-05-03 15:13:31 -07:00
2011-12-19 16:06:41 -08:00
2012-09-14 21:20:40 -07:00
2012-09-11 11:23:54 -07:00
2012-01-06 12:44:07 -08:00
2012-09-11 11:23:54 -07:00
2011-11-06 20:31:28 -08:00
2013-03-18 08:06:28 -07:00
2011-12-16 22:33:40 -08:00
2012-04-27 09:26:38 -07:00
2012-08-03 12:11:07 -07:00
2011-12-12 16:09:38 -08:00
2012-09-11 11:23:54 -07:00
2013-03-18 08:06:28 -07:00
2012-04-10 15:55:55 -07:00
2012-10-17 10:36:42 -07:00
2012-09-10 15:31:06 -07:00
2012-07-22 12:55:07 -07:00
2011-12-11 23:16:25 -08:00
2012-07-08 22:03:46 -07:00
2012-07-08 22:03:46 -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/gittutorial.txt to get started, then see
Documentation/everyday.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://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%