Cygwin - Repo com Git / Working Dir separados 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. Tendo já configurado meus dotfiles em um repo seguindo este tutorial , eu percebi que também ser bastante fácil migrar todas as minhas configurações para a minha configuração do Cygwin na minha partição do Windows.

Já tendo a configuração do repositório no Github, eu simplesmente clone o repositório e movi todos os arquivos para o meu diretório inicial, tornando-o um espelho do meu diretório inicial do OS X. Infelizmente, não consigo usar o repositório real ainda dentro do Cygwin.

O problema é que eu não posso usar meu repositório de dotfiles com o git dentro do Cygwin. A configuração é exclusiva da maioria dos repositórios git normais, em que o diretório de trabalho e o diretório git estão em locais diferentes. Especificamente, o diretório de trabalho é $HOME ( /Users/kyle no OS X, /home/kyle no Cygwin) e o repositório git é $HOME/.dotfiles.git . Então, se eu quisesse obter o status do repositório, por exemplo, eu 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, isso se recusa a trabalhar dentro do Cygwin. Independentemente de usar ou não o meu alias, ou se eu substituo $HOME manualmente, obtenho 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/dotfiles era o local original do repositório do git quando eu inicialmente o clonei. Além disso, é importante observar que o repositório depende muito de submódulos. Se detalhes forem necessários, o repo em questão pode ser encontrado no GitHub . Os comandos que executei para configurar o repositório no Cygwin podem também ser encontrados no arquivo Readme .

    
por Kyle Lacy 29.08.2012 / 23:52

1 resposta

0

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

Basicamente, você deve tentar executar git submodule init e / ou git submodule update . Caso contrário, você receberá um erro criptográfico, como mencionado na pergunta.

    
por 30.08.2012 / 04:32