Hello,
I found a curious bug in git version 2.9.0.windows.1 (run on Windows 7
via git bash).
If I clone a repository containing submodules and run a "git submodule
deinit" on any of the submodules of this repository without executing
another git command, this command fails.
For instance:
(let's say the repo MyProject contains 2 submodules: Submodule1 and Submodule2)
$ git clone ssh://****/MyProject
[ ... "git clone" output ... ]
$ cd MyProject
$ git submodule deinit Submodule1
fatal: Please stage your changes to .gitmodules or stash them to proceed
Submodule work tree 'Submodule1' contains local modifications; use
'-f' to discard them
$ git submodule deinit Submodule2
fatal: Please stage your changes to .gitmodules or stash them to proceed
Submodule work tree 'Submodule2' contains local modifications; use
'-f' to discard them
First the error message is strange.
Then what is even stranger is that the error disappears if a "git
status" is run before the submodule deinit...
$ git clone ssh://****/MyProject
[ ... "git clone" output ... ]
$ cd MyProject
$ git submodule deinit Submodule1
fatal: Please stage your changes to .gitmodules or stash them to proceed
Submodule work tree 'Submodule1' contains local modifications; use
'-f' to discard them
$ git status
[ ... "git status" output ...]
$ git submodule deinit Submodule1
Cleared directory 'Submodule1'
I have been able to reproduce this error at least 10 times and with
different repositories so I do not think it comes from the state of my
repositories.
Moreover, the use of "--recursive" argument to the "git clone" command
did not change anything.
Are you able to reproduce this problem?
Thank you in advance.
Best regards,
Thomas
On Tue, Aug 30, 2016 at 01:45:56PM +0200, Thomas Bétous wrote:
Are you able to reproduce this problem?
No. I just did a clone and an immediate deinit afterwards and no error.
Maybe you can provide a script to reproduce? Which System was this on?
Cheers Heiko
Thank you for your answer and sorry for the delay (I was on vacation...).
I am using git 2.9.0.windows.1 (run on Windows 7 via git bash).
I tested it on this repo:
https://github.com/githubtraining/example-dependency.git
The same problem occurs.
Here a small script to reproduce the error on my PC:
#!/bin/bash
git clone https://github.com/githubtraining/example-dependency.git
cd example-dependency
git submodule deinit js
It ends with this error:
fatal: Please stage your changes to .gitmodules or stash them to proceed
Submodule work tree 'js' contains local modifications; use '-f' to discard them
Is the script working on your PC?
Thank you in advance.
Thomas
On Wed, Sep 14, 2016 at 10:29 PM, Heiko Voigt [off-list ref] wrote:
On Tue, Aug 30, 2016 at 01:45:56PM +0200, Thomas Bétous wrote:
quoted
Are you able to reproduce this problem?
No. I just did a clone and an immediate deinit afterwards and no error.
Maybe you can provide a script to reproduce? Which System was this on?
Cheers Heiko
Hi,
please do not top-post the conversation will otherwise get hard to
follow. Thank you.
On Tue, Oct 04, 2016 at 05:46:45PM +0200, Thomas Bétous wrote:
Thank you for your answer and sorry for the delay (I was on vacation...).
I am using git 2.9.0.windows.1 (run on Windows 7 via git bash).
My initial reaction is that this might be a problem with line endings. Did you
check whether you get any diff when you do a 'git diff' after the clone?
Maybe the variable 'core.autocrlf' is set to 'input' ? Have a look at 'git help
config'
I tested it on this repo:
https://github.com/githubtraining/example-dependency.git
The same problem occurs.
Here a small script to reproduce the error on my PC:
#!/bin/bash
git clone https://github.com/githubtraining/example-dependency.git
cd example-dependency
git submodule deinit js
It ends with this error:
fatal: Please stage your changes to .gitmodules or stash them to proceed
Submodule work tree 'js' contains local modifications; use '-f' to discard them
Here I get
$ git submodule deinit js
Cleared directory 'js'
So all seems fine.
Is the script working on your PC?
Yes. I am on Mac OS X though.
Cheers Heiko