# [BUG] git rebase -X fails with merge-recursive error

1 messages from 2014-12-01 to 2014-12-01. Participants: Øystein Walle.
Thread: https://gitlist.dev/t/38086

## Øystein Walle, 2014-12-01 14:33

Subject: [BUG] git rebase -X fails with merge-recursive error
Message-ID: <loom.20141201T152914-672@post.gmane.org>
URL: https://gitlist.dev/e/loom.20141201T152914-672%40post.gmane.org

```
Hi,

I discovered this while rebasing a branch after having converted files
to use LF line endings. I got around the problem by using
--ignore-whitespace but the error still seems strange to me so I'm
reporting it.

The following script is equivalent: it creates a repo with a CRLF file,
creates a "feature" branch, converts the file and then tries to rebase
the feature branch with git rebase -X ignore-whitespace-at-eol:

    git init
    echo "That's some catch, that Catch-1984" >file.txt
    unix2dos file.txt
    git add file.txt
    git commit -m 'Initial commit'
    git checkout -b feature
    ex -sc 's/1984/22/|x' file.txt
    git commit -m "Fix literary confusion" file.txt
    git checkout master
    echo '* text=auto' > .gitattributes
    dos2unix file.txt
    git add .
    git commit -m 'CRLF to LF'
    git checkout feature
    gti config merge.renormalize true
    git rebase -X ignore-space-at-eol master

While rebasing the following error appears:

    error: addinfo_cache failed for path 'file.txt'

It comes from the git-merge-recursive invocation git-rebase performs[1]
and is printed because make_cache_entry() fails[2]. I also get this
error when using the other 'ignore-*' strategy options, as well as
'theirs'.

At this point file.txt still has its CRLF terminator, but simply:

git add file.txt
git rebase --continue

has the desired effect (as it did in my real life situation). I've
tested this on Git 2.2.0, 2.1.3 and 1.9.0.

I don't know whether this is actually related to git-rebase. It's a way
to reproduce it if nothing else. I haven't tried any experiments with
git-merge-recursive directly, I get the impression I'm not supposed to
since it doesn't have a manpage ;) Interestingly, removing the creation
of .gitattributes makes the problem go away.

Additionally, git-merge-recursive exits with status 0. This confuses
git-rebase which will continue and then complain about the state of the
index. (Interestingly, at this point my prompt thingy complains that
.git/rebase-merge/done isn't there).

Regards,
Øsse

[1]: https://github.com/git/git/blob/master/git-rebase--merge.sh#L70
[2]: https://github.com/git/git/blob/master/merge-recursive.c#L209

```
