git/list[1] front-page[2] threads[3] people[4] search[5] about
 

RE: "git commit" fails due to spurious file in index

From
RIRobert Irelan <rirelan@epic.com>
Date
Mar 5, 2013, 15:30 UTC
Message-ID
<2D9BD788B02ABA478C57929170AF952B7637BC@EXCH-MBX-3.epic.com>
In-Reply-To
<5135CBBB.60102@web.de>
Nope, it was a bug in my pre-commit hook. See the other response to this message.
Robert Irelan | Server Systems | Epic | (608) 271-9000
-----Original Message-----
From: Torsten Bögershausen [mailto:tboegi@web.de] 
Sent: Tuesday, March 05, 2013 4:41 AM
To: Robert Irelan
Cc: git@vger.kernel.org
Subject: Re: "git commit" fails due to spurious file in index
On 04.03.13 19:15, Robert Irelan wrote:
Show 76 quoted lines
> Hello all:
> 
> This is my first time posting to this mailing list, but it appears to 
> me, through a Google search, that this is where you go to report what 
> might be bugs. I'm not sure if this is a bug or not, but it is 
> mysterious to me.
> 
> My git repository has this directory structure (I don't know if the 
> file names are necessary or not; only the leaf directories contain files):
> 
>     $ tree -ad -I.git
>     .
>     └── admin_scripts
>         ├── integchk
>         │   ├── 2012
>         │   └── 2014
>         ├── jrnadmin
>         │   ├── 2012
>         │   └── 2014
>         └── logarchiver
>             ├── 2012
>             └── 2014
> 
>     10 directories
> 
> The last commit in this repo was a rearrangement of the hierarchy 
> carried out using `git mv`.  Before, the directory structure went 
> `admin_scripts/version/script_name` instead of 
> `admin_scripts/script_name/version`.
> 
> Now I'm attempting to some new files that I've already created into 
> the repository, so that the repo now looks like this (`setup/2012` 
> contains files, while `setup/2014` is empty):
> 
>     $ tree -ad -I.git
>     .
>     └── admin_scripts
>         ├── integchk
>         │   ├── 2012
>         │   └── 2014
>         ├── jrnadmin
>         │   ├── 2012
>         │   └── 2014
>         ├── logarchiver
>         │   ├── 2012
>         │   └── 2014
>         └── setup
>             ├── 2012
>             └── 2014
> 
>     13 directories
> 
> Now, when I run 'git add admin_script/setup' to add the new directory 
> to the repo and then try to commit, I receive the following message:
> 
>     $ git commit
>     mv: cannot stat `admin_scripts/setup/2012/setup': No such file or 
> directory
> 
> The error message is correct in that `admin_scripts/setup/2012/setup` 
> does not exist, either as a file or as a directory. However, I'm not 
> attempting to add this path at all. Using grep, I've confirmed that 
> the only place this path appears in any of my files is in `.git/index`.
> 
> Also, I can commit to other places in the repository without 
> triggering any error. In addition, I can clone the repository to other 
> locations and apply the problematic commit manually. This is how I've 
> worked around the problem for now, and I've moved the repository 
> that's exhibiting problems to another directory and started work on 
> the cloned copy.
> 
> Why is this spurious path appearing in the index? Is it a bug, or a 
> symptom that my repo has been somehow corrupted? Any help would be 
> greatly appreciated.
> 
> Robert Irelan | Server Systems | Epic | (608) 271-9000

You have come to the right group. It might be difficult to tell (at least for me) if there is a bug or a corruption, May be some tests could help to bring more light into the darkness:

What does "git status" (in the problematic repo) tell you? What does "git fsck" (in the problematic repo) tell you? What does "git ls-files" (in both repos) tell you?

/Torsten
Previous: Torsten Bögershausen
Message 5 of 5 in “"git commit" fails due to spurious file in index”
  1. Robert IrelanMar 4, 2013
  2. Thomas RastMar 4, 2013
  3. Robert IrelanMar 5, 2013
  4. Torsten BögershausenMar 5, 2013
  5. Robert IrelanMar 5, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.