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