Messages in this thread | | | Date | Fri, 24 Oct 2008 08:17:53 -0700 (PDT) | From | Linus Torvalds <> | Subject | Re: Linux 2.6.28-rc1 |
| |
On Fri, 24 Oct 2008, Alistair John Strachan wrote: > > git reset --hard v2.6.27 ; git clean -d -f > git status ("Nothing to commit")
The problem is ignored files.
Yes, git claims everything is clean, but that's because it has been told to ignore certain files, and because it has been told to ignore them, it will not remove them (without the -x flag) in "git clean", nor will it mention them in "git status".
And yes, one of the ignored file patterns is
include/asm-*/asm-offsets.h
which means that your "git clean -df" didn't *really* clean everything from the old include/asm-x86, and because it didn't clean it all it also wouldn't be able to remove the old stale directory - since it wasn't empty.
You can use "git clean -dfx" to force git to remove ignored files too. And "make distclean" should have done it too.
Now, _another_ part (and arguably the really core reason) of this problem is that our Makefile rules for the asm include directory is weak and unreliable in the presense of already-existing unexpected entries.
And it has caused problems before. For example, if you somehow made the symlink not be a symlink at all (by using "cp -LR" for example), or a symlink pointing to another architecture (changing architecture builds in the same tree without doing a "make clean" in between), you historically got really odd results.
In fact, it's broken in subtle way before to the point where we now have a special "check-symlink" target internally that checks that the symlink is correctly set up.
Of course, it didn't check that you had some old stuff in include/asm-x86, it only checks for the _traditional_ problems we've had. Not some new odd one.
Linus
| |