Pergunta

Eu desenvolvo em um idioma de script proprietário com código muito retomado no qual a maioria das configurações está contida dentro do próprio código.

O problema óbvio seria as diferenças no próprio código entre os ambientes de teste e produção e é exatamente isso que estou tentando gerenciar com o Git.

Como o meu teste Env é bastante volátil, achei que poderia criar uma filial no Git para ela, enquanto há alterações sendo feitas (e mantenha o código com as configurações de teste lá) e depois que o código for aceito, eu o mesclará na produção.

Bem, quando peço ao Git para mesclar meus ramos, ele faz um trabalho maravilhoso com o código. Mas as configurações também são migradas e que eu tenho que abrir o arquivo de arquivo, mudando de volta para o que era.

Existe alguma maneira de desativar a mesclagem automática do Git e ameaçar tudo como conflitos de código a serem mesclados manualmente com Winmerge ou algo mais tarde? O código é curto, realmente. E já que vou ter que editá -lo de qualquer maneira para aplicar as configurações ...

PS.: Por favor, observe, não estou perguntando como configurar o Winmerge no Git. Eu tenho essas ferramentas funcionando. Minha pergunta é como sempre realizar mesclagem manual entre ramos.

obrigado!

f.

Foi útil?

Solução

Desative a mesclagem automática

Isso poderia ser alcançado escrevendo um pequeno motorista de mesclagem, situado em uma .gitattributes Arquivo.
Uma política como unset Pode ser o que você está procurando.

Unset

Pegue a versão do ramo atual como resultado provisório de mesclagem e declare que a mesclagem tem conflitos. Isso é adequado para arquivos binários que não possuem uma semântica de mesclagem bem definida.

Mas outro driver Gitattribute interessante seria um arquivador limpo:

http://git-scm.com/figures/18333fig0703-tn.png

Isso executaria automaticamente um script 'limpo' de sua escolha antes de comprometer o conteúdo "limpo" no repositório.
Tal 'clean'O script pode ajudá -lo a automatizar as alterações que você precisa fazer no seu código para manter ou modificar os valores de configuração incorporados nele.

Outras dicas

Você diz "a maioria das configurações está contida no próprio código", mas espero que toda a configuração seja isolada nos arquivos específicos da configuração. Se for esse o caso, você pode manter os casos de teste e liberação do código de configuração na mesma ramificação. Você pode usar uma chave de linha de comando para usar a configuração de teste em vez da normal.

Se o seu programa puder ler uma seleção de configuração da linha de comando (ou variável de ambiente, chave de registro, arquivo de texto ou qualquer outra coisa), você não precisará se fundir. O programa pode ignorar os arquivos de configuração de teste quando a chave de linha de comando não estiver presente e ignorar a configuração de liberação quando a chave de linha de comando estiver presente.

Isso o salva dos possíveis erros durante a mesclagem, bem como o tempo necessário para fazer a mesclagem.

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