threads / discuss / 17275

Git rebase -i failing on cygwin -- git checkout-index says File Exists

Subject: Git rebase -i failing on cygwin -- git checkout-index says File Exists

## tl;dr

6 messages between Jan 20, 2009 and Jan 20, 2009.

replies: 5people: 2as markdown or json

Ludvig Strigeus· Jan 20, 2009, 20:09 UTC · lore
Hi,

I'm having some weird problem with Git on Cygwin on Windows XP. I start with a totally clean repo, and then run interactive rebase to edit a historical commit. I exit the editor without doing anything (I get similar issues if I modify stuff inside the editor).

$ git st # On branch master nothing to commit (working directory clean)

$ git rebase -i 4a1552c81b622f85b0e9170c6fd7a22b4a3e633c error: git checkout-index: unable to create file util/stringfuncs.cpp (File exists) fatal: Could not reset index file to revision '4965936'. error: Entry 'util/boink-py.cc' not uptodate. Cannot merge. fatal: merging of trees 0c27b10e163f00655486976896d096302b0f5c21 and 7c7dfd93d678cfc564649738d45260e0b5d9f5a7 failed Could not apply d9c7ac9... Various reorganizations.

Any clues?

Thanks, Ludde

Ludvig Strigeus· Jan 20, 2009, 20:12 UTC · re: Ludvig Strigeus · lore

Re: Git rebase -i failing on cygwin -- git checkout-index says File Exists

By the way, the version I use is:

$ git --version git version 1.6.1.48.ge9b8

/Ludde
On Tue, Jan 20, 2009 at 9:09 PM, Ludvig Strigeus <strigeus@gmail.com> wrote:
Show 25 quoted lines
> Hi,
>
> I'm having some weird problem with Git on Cygwin on Windows XP. I
> start with a totally clean repo, and then run interactive rebase to
> edit a historical commit. I exit the editor without doing anything (I
> get similar issues if I modify stuff inside the editor).
>
> $ git st
> # On branch master
> nothing to commit (working directory clean)
>
> $ git rebase -i 4a1552c81b622f85b0e9170c6fd7a22b4a3e633c
> error: git checkout-index: unable to create file util/stringfuncs.cpp
> (File exists)
> fatal: Could not reset index file to revision '4965936'.
> error: Entry 'util/boink-py.cc' not uptodate. Cannot merge.
> fatal: merging of trees 0c27b10e163f00655486976896d096302b0f5c21 and
> 7c7dfd93d678cfc564649738d45260e0b5d9f5a7 failed
> Could not apply d9c7ac9... Various reorganizations.
>
> Any clues?
>
> Thanks,
> Ludde
>
Johannes Schindelin· Jan 20, 2009, 21:16 UTC · re: Ludvig Strigeus · lore

Re: Git rebase -i failing on cygwin -- git checkout-index says File Exists

Hi,
On Tue, 20 Jan 2009, Ludvig Strigeus wrote:
Show 12 quoted lines
> I'm having some weird problem with Git on Cygwin on Windows XP. I start 
> with a totally clean repo, and then run interactive rebase to edit a 
> historical commit. I exit the editor without doing anything (I get 
> similar issues if I modify stuff inside the editor).
> 
> $ git st
> # On branch master
> nothing to commit (working directory clean)
> 
> $ git rebase -i 4a1552c81b622f85b0e9170c6fd7a22b4a3e633c
> error: git checkout-index: unable to create file util/stringfuncs.cpp
> (File exists)
This is the error that should stop the whole thing.
Show 5 quoted lines
> fatal: Could not reset index file to revision '4965936'.
> error: Entry 'util/boink-py.cc' not uptodate. Cannot merge.
> fatal: merging of trees 0c27b10e163f00655486976896d096302b0f5c21 and
> 7c7dfd93d678cfc564649738d45260e0b5d9f5a7 failed
> Could not apply d9c7ac9... Various reorganizations.
But here, it should not have continued.

Having said that, I often had that case with interactive rebase, because I had an untracked file lying around (in your case util/stringfuncs.cpp) that was tracked in the version I was trying to rebase onto, but it stopped right there, even on msysGit.

Hopefully you can investigate the scenario more, by "git rebase --abort", and then running the rebase -i again, but with GIT_TRACE=1.

Ciao, Dscho

Ludvig Strigeus· Jan 20, 2009, 22:20 UTC · re: Johannes Schindelin · lore

Re: Git rebase -i failing on cygwin -- git checkout-index says File Exists

Hi!

On Tue, Jan 20, 2009 at 10:16 PM, Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:

Show 5 quoted lines
>
> Having said that, I often had that case with interactive rebase, because
> I had an untracked file lying around (in your case util/stringfuncs.cpp)
> that was tracked in the version I was trying to rebase onto, but it
> stopped right there, even on msysGit.

util/stringfuncs.cpp is not an untracked file, though. It's a part of my repo. Also 'git status' shows that no files are modified. If it was an untracked file, 'git status' would have said so.

>
> Hopefully you can investigate the scenario more, by "git rebase --abort",
> and then running the rebase -i again, but with GIT_TRACE=1.
>
Here is the trace output. Notice how it prints errors about two files this time.

$ GIT_TRACE=1 git rebase -i 4a1552c81b622f85b0e9170c6fd7a22b4a3e633c trace: exec: 'git-rebase' '-i' '4a1552c81b622f85b0e9170c6fd7a22b4a3e633c' trace: built-in: git 'rev-parse' '--git-dir' trace: built-in: git 'rev-parse' '--is-inside-work-tree' trace: built-in: git 'rev-parse' '--show-cdup' trace: built-in: git 'rev-parse' '--parseopt' '--' '-i' '4a1552c81b622f85b0e9170c6fd7a22b4a3e633c' trace: built-in: git 'rev-parse' '--git-dir' trace: built-in: git 'rev-parse' '--show-cdup' trace: built-in: git 'rev-parse' '--is-inside-work-tree' trace: exec: 'git-var' 'GIT_COMMITTER_IDENT' trace: built-in: git 'rev-parse' '--verify' 'HEAD' trace: built-in: git 'update-index' '--ignore-submodules' '--refresh' trace: built-in: git 'diff-files' '--quiet' '--ignore-submodules' trace: built-in: git 'diff-index' '--cached' '--quiet' 'HEAD' '--ignore-submodules' '--' trace: built-in: git 'rev-parse' '--verify' '4a1552c81b622f85b0e9170c6fd7a22b4a3e633c' trace: built-in: git 'rev-parse' '--verify' 'HEAD' trace: built-in: git 'rev-parse' '--short' '4a1552c81b622f85b0e9170c6fd7a22b4a3e633c' trace: built-in: git 'rev-parse' '--short' '7a70781d089d98f0de606515d1041230cef9b184' trace: built-in: git 'rev-parse' '--short' '4a1552c81b622f85b0e9170c6fd7a22b4a3e633c' trace: built-in: git 'rev-list' '--no-merges' '--cherry-pick' '--pretty=oneline' '--abbrev-commit' '--abbrev=7' '--rever se' '--left-right' '--topo-order' '4a1552c81b622f85b0e9170c6fd7a22b4a3e633c...7a70781d089d98f0de606515d1041230cef9b184' trace: built-in: git 'update-ref' 'ORIG_HEAD' '7a70781d089d98f0de606515d1041230cef9b184' trace: built-in: git 'rev-parse' '--verify' '4965936^' trace: built-in: git 'rev-parse' '--verify' 'HEAD' trace: built-in: git 'reset' '--hard' '4965936' trace: run_command: 'read-tree' '-v' '-u' '--reset' '49659367ed932a691749fb4c6b93e38b2a85e9e1' trace: exec: 'git' 'read-tree' '-v' '-u' '--reset' '49659367ed932a691749fb4c6b93e38b2a85e9e1' trace: built-in: git 'read-tree' '-v' '-u' '--reset' '49659367ed932a691749fb4c6b93e38b2a85e9e1' error: git checkout-index: unable to create file util/boink_unittest.cpp (File exists) error: git checkout-index: unable to create file util/stringfuncs.cpp (File exists) fatal: Could not reset index file to revision '4965936'. trace: built-in: git 'rev-parse' '--short' '4965936' trace: built-in: git 'rev-parse' '--verify' 'd9c7ac9^' trace: built-in: git 'rev-parse' '--verify' 'HEAD' trace: built-in: git 'cherry-pick' 'd9c7ac9' error: Entry 'util/boink-py.cc' not uptodate. Cannot merge. fatal: merging of trees 0c27b10e163f00655486976896d096302b0f5c21 and 7c7dfd93d678cfc564649738d45260e0b5d9f5a7 failed trace: built-in: git 'rev-list' '--parents' '-1' 'd9c7ac9' trace: built-in: git 'diff-tree' '-p' 'd9c7ac9^'\!'' trace: built-in: git 'cat-file' 'commit' 'd9c7ac9' trace: built-in: git 'config' 'i18n.commitencoding' trace: built-in: git 'show' '-s' '--pretty=raw' '--encoding=UTF-8' 'd9c7ac9' '--' trace: built-in: git 'rerere' Could not apply d9c7ac9... Various reorganizations.

It doesn't really tell me much.

Maybe this command log is useful. I got this while aborting the rebase. Looks like some file creation race condition? Windows doesn't allow files to be deleted while they're open.

$ git rebase --abort error: git checkout-index: unable to create file util/boink_unittest.cpp (File exists) fatal: Could not reset index file to revision '7a70781d089d98f0de606515d1041230cef9b184'.

$ git rebase --abort error: git checkout-index: unable to create file util/stringfuncs.h (File exists) fatal: Could not reset index file to revision '7a70781d089d98f0de606515d1041230cef9b184'.

$ git rebase --abort error: git checkout-index: unable to create file util/boink_unittest.cpp (File exists) error: git checkout-index: unable to create file util/common.h (Permission denied) fatal: Could not reset index file to revision '7a70781d089d98f0de606515d1041230cef9b184'.

$ git rebase --abort
(this time it worked)

Thanks, Ludde

Ludvig Strigeus· Jan 20, 2009, 22:44 UTC · re: Ludvig Strigeus · lore

Re: Git rebase -i failing on cygwin -- git checkout-index says File Exists

On Tue, Jan 20, 2009 at 11:20 PM, Ludvig Strigeus <strigeus@gmail.com> wrote:
>
> Maybe this command log is useful. I got this while aborting the
> rebase. Looks like some file creation race condition? Windows doesn't
> allow files to be deleted while they're open.

I believe I found the source of my problems with git rebase. I had an editor open that wanted to reload the files when changed, and this seemed to conflict with git's file manipulations. After closing the editor, I don't get the mysterious errors anymore.

/Ludde
Johannes Schindelin· Jan 20, 2009, 23:23 UTC · re: Ludvig Strigeus · lore

Re: Git rebase -i failing on cygwin -- git checkout-index says File Exists

Hi,
On Tue, 20 Jan 2009, Ludvig Strigeus wrote:
Show 10 quoted lines
> On Tue, Jan 20, 2009 at 11:20 PM, Ludvig Strigeus <strigeus@gmail.com> wrote:
> >
> > Maybe this command log is useful. I got this while aborting the 
> > rebase. Looks like some file creation race condition? Windows doesn't 
> > allow files to be deleted while they're open.
> 
> I believe I found the source of my problems with git rebase. I had an 
> editor open that wanted to reload the files when changed, and this 
> seemed to conflict with git's file manipulations. After closing the 
> editor, I don't get the mysterious errors anymore.

Yep, that's a Windows issue. Once you keep a file open in an editor, it cannot be overwritten/deleted.

Live with it, or upgrade to a real operating system :-)

Ciao, Dscho

← back to recent threads