Branch switching with submodules where the submodule replaces a folder aborts unexpectedly
- From
Thomas Braun <thomas.braun@virtuell-zuhause.de>
- Date
- Oct 9, 2017, 21:29 UTC
- Message-ID
- <788230417.115707.1507584541605@ox.hosteurope.de>
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.
AbortingIf I'm misusing git here I'm glad for any advice.
Thanks, Thomas