Cygwin - Repo com Git / Dir de trabalho separado não funciona

0

Desde que mudei para o OS X e o Vim, achei mais fácil gerenciar todos os meus 'dotfiles' (todos os meus arquivos de configuração e scripts diversos) com o Git. Depois de configurar meus dotfiles em um repositório após este tutorial , achei que também seria fácil migrar todas as minhas configurações para a configuração do Cygwin na partição do Windows.

Já com a configuração do repositório no Github, eu simplesmente cloneo repo e movi todos os arquivos para o meu diretório pessoal, tornando-o um espelho do meu diretório pessoal do OS X. Infelizmente, não consigo mais usar o repositório real no Cygwin.

O problema é que não consigo usar meu repositório dotfiles com o git no Cygwin. A configuração é exclusiva da maioria dos repositórios git normais, pois o diretório de trabalho e o diretório git estão em locais diferentes. Especificamente, o diretório de trabalho é $HOME( /Users/kyleno OS X, /home/kyleno Cygwin) e o repositório git é $HOME/.dotfiles.git. Portanto, se eu quisesse obter o status do repositório, por exemplo, digitaria o seguinte comando (que eu alias para reduzir a digitação, é claro):

git --work-tree=$HOME --git-dir=$HOME/.dotfiles.git status -uno

Enquanto isso funciona bem no OS X, ele se recusa a trabalhar no Cygwin. Independentemente de usar ou não meu alias ou substituir $HOME manualmente , recebo o seguinte erro git:

fatal: Not a git repository: /home/Kyle/dotfiles/.git/modules/.build/git

Não entendo de onde vem esse erro, mas o caminho /home/Kyle/dotfilesera o local original do repositório git quando eu o clonei inicialmente. Além disso, é importante observar que o repositório depende muito de submódulos. Se forem necessários detalhes, o repositório em questão pode ser encontrado no GitHub . Os comandos que executei para configurar o repositório no Cygwin também podem ser encontrados no arquivo Leiame .

Kyle Lacy
fonte

Respostas:

0

Eu descobri o problema. Se você tiver um repositório git com submódulos, mova o conteúdo do repositório, e as coisas começam a quebrar.

Basicamente, você deve tentar executar git submodule inite / ou git submodule update. Caso contrário, você receberá um erro enigmático, como mencionado na pergunta.

Kyle Lacy
fonte