[BUG] rebase --interactive silently overwrites ignored files
- From
- wh <microrffr@gmail.com>
- Date
- Apr 11, 2019, 23:56 UTC
- Message-ID
- <CAL_tzDGRQ4BzJ4c6QypXfBXQNQYocbKbJSBOHhBBB2TwQQPCGA@mail.gmail.com>
I'm using git 2.20.1 from Debian. Git is usually careful not to overwrite untracked files, including ignored files. But interactive rebase doesn't detect this (non-interactive rebase works fine).
Reproduction: -----
#!/bin/sh mkdir upstream cd upstream git init echo 1 >feature-1 git add feature-1 git commit -m "feature 1"
cd .. git clone upstream local cd local # write some tools for our own convenience echo ours >tools echo /tools >>.git/info/exclude # start working on a feature git checkout -b f2 echo wip >feature-2 git add feature-2 git commit -m "wip"
cd ../upstream # official tools are available echo theirs >tools git add tools git commit -m "tools"
cd ../local git fetch ../upstream master
# this would be okay #git rebase FETCH_HEAD
# problem: overwrites tools silently GIT_EDITOR=true git rebase -i FETCH_HEAD
cat tools
-----
Expected: `git rebase -i` fails because it would have to overwrite the untracked "tools" file. Contents of tools file remains `ours`.
Actual: Contents of tools file becomes `theirs`.