"git commit" fails due to spurious file in index

3 messages, 2 authors, 2016-06-15 · open the first message on its own page

"git commit" fails due to spurious file in index

From: Robert Irelan <hidden>
Date: 2016-06-15 22:56:18

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

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

From: Torsten Bögershausen <hidden>
Date: 2016-06-15 22:56:18

On 04.03.13 19:15, Robert Irelan wrote:
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

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

From: Robert Irelan <hidden>
Date: 2016-06-15 22:56:18

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:
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


Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help