Hi,
I'm currently in the progress of pulling some subprojects in a git repository
of mine into their own repositories and adding these subprojects back as
submodules.
While doing this I enountered a potential bug as checkout complains on branch
switching that a file already exists.
I've reproduced it on debian stretch with the following git versions:
master:
git version 2.15.0.rc0.39.g2f0e14e649
pu:
git version 2.15.0.rc0.245.g6d586db062
A script to trigger it is
mkdir -p test/subproject
cd test
git init
touch subproject/1
git add subproject
git commit -m "blah"
cd ..
mkdir subproject
cd subproject
git init
touch 1
git add 1
git commit -m "blubb"
cd ../test
git branch old
git rm -rf subproject
git commit -m "remove blah"
git submodule add ../subproject
git add -A
git commit -m "added subproject"
git branch new
git checkout old
and this fails with
$LANG=C ./run.sh
Initialized empty Git repository in /home/XXX/devel/test/.git/
[master (root-commit) 33e6607] blah
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 subproject/1
Initialized empty Git repository in /home/XXX/devel/subproject/.git/
[master (root-commit) e817644] blubb
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 1
rm 'subproject/1'
[master 9cbfd57] remove blah
1 file changed, 0 insertions(+), 0 deletions(-)
delete mode 100644 subproject/1
Cloning into '/home/XXX/devel/test/subproject'...
done.
[master 1c67e23] added subproject
2 files changed, 4 insertions(+)
create mode 100644 .gitmodules
create mode 160000 subproject
error: The following untracked working tree files would be overwritten by
checkout:
subproject/1
Please move or remove them before you switch branches.
Aborting
If I'm misusing git here I'm glad for any advice.
Thanks,
Thomas