Subject: [BUG] "git checkout branch" on full disk doesn't recover from errors

From: Jakub Narebski <[email-masked]>
Date: Thu, 14 Jun 2007 01:33:41 +0200

I have accidentally (errorneous program running in parallel) run 
"git checkout gitweb/web" (where 'gitweb/web' is a branch) on a full 
disk. Git correctly notices error, but doesn't recover fully from it.

  $ git checkout gitweb/web
  fatal: unable to write new index file

It would be nice if git has shown also the error message from filesystem 
(from OS), for example if it was full disk, read-only filesystem (for 
example wrong mount options, or running from CD), or incorrect 
permissions.

  $ <free disk space>
  $ git checkout gitweb/web
  fatal: Entry '.gitignore' not uptodate. Cannot merge.

The '.gitignore' was last file changed in last commit on the page I was 
on (namely 'master'). It looks like git didn't recover fully from 
attempted branch change. "git diff" and "git status" shows many 
modified files, not only '.gitignore'.

What is a bit strange that mixed reset ("git reset HEAD") is not enough

  $ git reset HEAD
  <multitude of "needs update" messages>

Fortunately, it is easy to recover using "git reset --hard HEAD", 
although beginner user could have some problems with this.

-- 
Jakub Narebski
Poland