# submodule/index/working tree woes

2 messages from 2011-06-24 to 2011-06-25. Participants: John Powell, Alexei Sholik.
Thread: https://gitlist.dev/t/27699

## John Powell, 2011-06-24 18:25

Subject: submodule/index/working tree woes
Message-ID: <20110624182546.GB30640@vmware.com>
URL: https://gitlist.dev/e/20110624182546.GB30640%40vmware.com

```
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, 2011-06-25 11:02

Subject: Re: submodule/index/working tree woes
Message-ID: <BANLkTi=4D1qqM+9EFZACHwVwSsVOkWQ4GQ@mail.gmail.com>
URL: https://gitlist.dev/e/BANLkTi%3D4D1qqM%2B9EFZACHwVwSsVOkWQ4GQ%40mail.gmail.com
In-Reply-To: <BANLkTik6xij0ZNy9nB2sbiF97Z4EF76sHQ@mail.gmail.com>

```
---------- 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:
> 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

```
