Jeff King afe5d3d516 symbolic ref: refuse non-ref targets in HEAD
When calling "git symbolic-ref" it is easy to forget that
the target must be a fully qualified ref. E.g., you might
accidentally do:

  $ git symbolic-ref HEAD master

Unfortunately, this is very difficult to recover from,
because the bogus contents of HEAD make git believe we are
no longer in a git repository (as is_git_dir explicitly
checks for "^refs/heads/" in the HEAD target). So
immediately trying to fix the situation doesn't work:

  $ git symbolic-ref HEAD refs/heads/master
  fatal: Not a git repository

and one is left editing the .git/HEAD file manually.

Furthermore, one might be tempted to use symbolic-ref to set
up a detached HEAD:

  $ git symbolic-ref HEAD `git rev-parse HEAD`

which sets up an even more bogus HEAD:

  $ cat .git/HEAD
  ref: 1a9ace4f2ad4176148e61b5a85cd63d5604aac6d

This patch introduces a small safety valve to prevent the
specific case of anything not starting with refs/heads/ to
go into HEAD. The scope of the safety valve is intentionally
very limited, to make sure that we are not preventing any
behavior that would otherwise be valid (like pointing a
different symref than HEAD outside of refs/heads/).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-01-29 01:00:48 -08:00
2008-11-27 19:25:06 -08:00
2009-01-29 00:12:52 -08:00
2008-12-17 21:56:48 -08:00
2008-12-03 21:29:03 -08:00
2008-07-19 11:25:51 -07:00
2008-07-19 11:17:43 -07:00
2008-10-26 16:21:08 -07:00
2008-10-21 17:58:11 -07:00
2008-08-28 20:50:10 -07:00
2008-09-10 15:00:17 -07:00
2008-12-07 15:13:02 -08:00
2008-08-03 14:14:10 -07:00
2008-12-11 00:36:31 -08:00
2008-10-08 08:05:43 -07:00
2008-10-26 14:42:57 -07:00
2008-12-07 15:13:02 -08:00
2008-09-15 23:11:35 -07:00
2008-09-25 09:39:24 -07:00
2008-12-11 00:36:31 -08:00
2008-12-02 15:29:12 -08:00
2009-01-05 19:46:19 -08:00
2008-10-10 08:39:20 -07:00
2008-10-10 08:39:20 -07:00
2008-08-28 21:49:51 -07:00
2008-11-02 16:36:40 -08:00
2008-11-14 19:11:49 -08:00
2008-11-11 14:49:50 -08:00
2008-08-05 21:21:08 -07:00
2008-07-13 14:12:48 -07:00
2008-12-03 14:27:17 -08:00
2008-07-13 14:12:48 -07:00
2009-01-29 00:12:52 -08:00
2008-12-04 18:05:51 -08:00
2008-09-25 08:00:28 -07:00
2008-11-11 14:49:50 -08:00
2008-09-07 23:52:16 -07:00
2008-12-07 15:13:02 -08:00
2008-11-12 22:26:35 -08:00
2008-11-23 19:23:34 -08:00
2008-07-21 19:11:50 -07:00
2008-07-21 19:11:50 -07:00
2008-10-25 12:09:31 -07:00
2008-09-10 15:00:17 -07:00
2008-07-13 14:12:48 -07:00
2008-12-15 23:06:13 -08:00
2008-07-21 19:11:50 -07:00
2008-11-11 14:49:50 -08:00
2009-01-29 00:12:52 -08:00
2008-11-12 22:26:24 -08:00
2008-07-21 19:11:50 -07:00
2008-11-14 22:12:38 -08:00
2008-07-21 19:11:50 -07:00
2008-07-21 19:11:50 -07:00
2008-07-21 19:11:50 -07:00
2008-10-21 17:58:01 -07:00
2008-10-09 11:26:17 -07:00
2008-09-29 07:30:16 -07:00
2008-07-30 11:42:01 -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 "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
No description provided
Readme 609 MiB
Languages
C 50.5%
Shell 38.7%
Perl 4.5%
Tcl 3.2%
Python 0.8%
Other 2.1%