git-commit bug (was Re: Editing the root commit)
- From
Chris Webb <chris@arachsys.com>
- Date
- Jun 26, 2012, 15:04 UTC
- Message-ID
- <20120626150436.GU9682@arachsys.com>
- In-Reply-To
- <20120622205026.GI32205@arachsys.com>
Chris Webb <chris@arachsys.com> writes:
Show 19 quoted lines
> 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.