Pergunta

Nós já usou muitos submódulos nos nossos principais repositórios, mas para aumentar a capacidade de manutenção de nossos projetos começamos um ramo experimental onde substituiu-os todos com sub-árvores.

Esta boa funcionou -. Mas agora quando eu estou tentando atualizar um dos sub-árvores que erroneamente se funde a atualização em um diretório completamente errado que nem sequer é uma sub

O repositório principal, onde o ramo "sub" contém o ramo experimental, é: git: //github.com/hugowetterberg/goodold_drupal.git

O repositório de fundir na atualização de: git: //github.com/voxpelli/drupal-oembed.git

A fusão fazendo: merge git -s sub oEmbed / master

O caminho das atualizações devem ser fundidas em: sites / all / modules / oEmbed /

O caminho que eles são fundidos em: módulos / agregador / traduções /

Qualquer pessoa com uma idéia de como obter as atualizações para as subárvores ou o que o erro pode ser?

Foi útil?

Solução

Infelizmente este é um bug (ou recurso ausente) no código "merge git -s sub". Na verdade, palpites as subárvores que você deseja mesclar. Normalmente, isso magicamente acaba por ser correto, mas se o seu sub contém uma série de mudanças (ou foi originalmente esvaziar, ou qualquer outro), então ele pode falhar espetacularmente.

A melhor maneira de trabalhar em torno dele é:

  1. Mesclar os arquivos que você fez anteriormente.

  2. manualmente mover todos os arquivos resultantes para onde eles deve ter ido.

  3. git commit -a --amend para corrigir o merge cometer.

integrações futuras, provavelmente, um belo trabalho, a menos que este diretório é constantemente em quantidades inacreditáveis ??de fluxo.

O experimental " git subárvore " comando tem um parâmetro --prefix que deve deixá-lo substituir esse, mas infelizmente ele não funciona no momento (uma vez que exige trabalho em torno de recursos "merge git -s subárvore" e não houve tempo para fazê-lo).

De qualquer forma, isso deve ser uma situação rara e a solução não será necessário até mesmo para futuras fusões do mesmo projeto.

Outras dicas

git versão 1.7.9.5

git pull -s subtree <remote name> <remote branch>

(merge foi para o diretório errado)

git reset --hard HEAD^
git pull -s subtree -Xsubtree=correct/directory <remote name> <remote branch>

Note que não há nenhuma barra final no diretório

apenwarr

http://git.661346.n2.nabble.com/PATCH-0-8-The-return-of-Xours-Xtheirs-Xsubtree-dir-td4069081.html

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top