git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: submodule/index/working tree woes

From
Alexei Sholik <alcosholik@gmail.com>
Date
Jun 25, 2011, 11:02 UTC
Message-ID
<BANLkTi=4D1qqM+9EFZACHwVwSsVOkWQ4GQ@mail.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:
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
Previous: John Powell
Message 2 of 2 in “submodule/index/working tree woes”
  1. John PowellJun 24, 2011
  2. Alexei SholikJun 25, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.