git-commit bug (was Re: Editing the root commit)
From: Chris Webb <hidden>
Date: 2016-06-15 22:54:11
Chris Webb [off-list ref] writes:
PS Whilst experimenting, I also noticed a (presumably unintentional) behaviour: $ git init . Initialized empty Git repository in /tmp/foo/.git/ $ git checkout --detach $ touch bar $ git add bar $ git commit -m test [(null) (root-commit) 17b5bf9] test 0 files changed create mode 100644 bar $ ls .git/refs/heads/ (null) $ Here we've created a branch with the strange name '(null)' instead of actually detaching, or refusing to detach because we're on an unborn branch.
This was introduced by abe199808c, which is intended to allow
git init . && git checkout --orphan newbranch
but presumably wasn't also meant to enable
git checkout --orphan foo
git checkout --detach
This leads to a printf("%s", NULL) and thus
$ git symbolic-ref HEAD
refs/heads/(null)
I've followed up to this message with a patch including a test to catch this
in future.
Best wishes,
Chris.