threads / discuss / 27699

submodule/index/working tree woes

Subject: submodule/index/working tree woes

## tl;dr

2 messages between Jun 24, 2011 and Jun 25, 2011.

replies: 1people: 2as markdown or json

John Powell· Jun 24, 2011, 18:25 UTC · lore

I have no changes to be committed (tracked or untracked according to 'git status') and yet when I try and switch branches git complains that I have untracked working tree files that would be overridden and aborts before the switch.

The change I have just committed locally removes some files from the repository and adds a submodule in it's place to better organize the source for the project.

Shaka, when the walls fell. Anyone want to assist me with this issue? Feeling clueless.

Alexei Sholik· Jun 25, 2011, 11:02 UTC · lore

Re: submodule/index/working tree woes

---------- Forwarded message ----------
From: Alexei Sholik <alcosholik@gmail.com>
Date: 25 June 2011 14:00
Subject: Re: submodule/index/working tree woes
To: masterblaster@vmware.com
On 24 June 2011 21:25, John Powell <jpowell@vmware.com> wrote:
Show 12 quoted lines
> I have no changes to be committed (tracked or untracked according to
> 'git status') and yet when I try and switch branches git complains
> that I have untracked working tree files that would be overridden
> and aborts before the switch.
>
> The change I have just committed locally removes some files from the
> repository and adds a submodule in it's place to better organize the
> source for the project.
>
> Shaka, when the walls fell.  Anyone want to assist me with this issue?
> Feeling clueless.
>

Git is unable to remove a directory with submodule when switching branches. If you have a submodule on one branch and a directory with the same name on another branch, you'll have troubles.

I'm speaking of version 1.7.3.4. Here's a small demo:
$ mkdir test
$ cd test
$ git init
Initialized empty Git repository in /Users/alco/Documents/git/test/.git/
$ echo "Hello" >file.txt
$ git add file.txt
$ git commit -m 'test'
[master (root-commit) 8e9c724] test
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 file.txt
$ git checkout -b another
Switched to a new branch 'another'
$ echo "Bye" >file2.txt
$ git add file2.txt
$ git commit -m 'second'
[another 62e6da2] second
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 file2.txt
$ git checkout master
Switched to branch 'master'
$ git submodule add git://github.com/tweepy/tweepy.git
Cloning into tweepy...
...
$ git commit -m 'submodule'
[master 3c9b6f7] submodule
 2 files changed, 4 insertions(+), 0 deletions(-)
 create mode 100644 .gitmodules
 create mode 160000 tweepy
$ git checkout another
warning: unable to rmdir tweepy: Directory not empty
Switched to branch 'another'
$ ls tweepy/
CONTRIBUTORS    INSTALL         LICENSE         README          docs
         examples        setup.py        tests.py        tools
  tweepy
$ git version
git version 1.7.3.4

-- Best regards, Alexei Sholik

-- 
Best regards,
Alexei Sholik

← back to recent threads