git-merge-changelog - Online na nuvem

Este é o comando git-merge-changelog que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas várias estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online Windows ou emulador online MAC OS

PROGRAMA:

NOME


git-merge-changelog - driver git merge para arquivos GNU ChangeLog

DESCRIÇÃO


O driver de mesclagem padrão do 'git' sempre produz conflitos ao atrair público
modificações em um arquivo ChangeLog modificado de forma privada. Isso ocorre porque os arquivos ChangeLog
são sempre modificados na parte superior; o driver de mesclagem padrão não tem idéia de como lidar com
isto. Além disso, os conflitos são apresentados com mais marcadores <<<< ==== >>>> do que
necessário; isso ocorre porque o driver de mesclagem padrão faz esforços inúteis para olhar para o
mudanças de linha individuais dentro de uma entrada ChangeLog.

Este programa serve como um driver de mesclagem 'git' que evita esses problemas.

1. Não produz conflito quando as entradas de ChangeLog são inseridas no topo, tanto em
a modificação pública e a privada. Coloca as entradas adicionadas de forma privada acima
as entradas adicionadas publicamente.

2. Respeita a estrutura dos arquivos ChangeLog: as entradas não são divididas em linhas, mas
mantidos juntos.

3. Ele também lida com o caso de pequenas modificações de entradas anteriores do ChangeLog, ou de
entradas ChangeLog removidas: elas são mescladas como esperado.

4. Os conflitos são apresentados no início do arquivo, e não onde ocorreram, portanto
para que o usuário os veja imediatamente. (Ao contrário do código-fonte escrito em alguns
linguagem de programação, marcadores de conflito que estão localizados a várias centenas de linhas de
a parte superior não causará nenhum erro de sintaxe e, portanto, provavelmente permanecerá
despercebido.)

Para a git Comercial:
- Adicione a .git / config do checkout (ou ao seu $ HOME / .gitconfig) as linhas

[mesclar "merge-changelog"]
name = Driver de mesclagem de ChangeLog estilo GNU
driver = / usr / bin / git-merge-changelog% O% A% B

- Em cada diretório que contém um arquivo ChangeLog, adicione um arquivo '.gitattributes' com
está linha:

ChangeLog merge = merge-changelog

(Consulte "man 5 gitattributes" para obter mais informações.)

Para a bzr Comercial:
- Instale o plug-in bzr 'extmerge' listado em
<http://doc.bazaar.canonical.com/plugins/en/index.html>
<http://wiki.bazaar.canonical.com/BzrPlugins>

- Adicione ao seu $ HOME / .bazaar / bazaar.conf a linha

external_merge = git-merge-changelog% b% T% o

- Então, para mesclar um conflito em um arquivo ChangeLog, use

$ bzr extmerge Log de alterações

Para a hg Comercial:
- Adicione ao seu $ HOME / .hgrc as linhas

[padrões de mesclagem]
ChangeLog = git-merge-changelog

[ferramentas de fusão]
git-merge-changelog.executable = / usr / bin / git-merge-changelog
git-merge-changelog.args = $ base $ local $ other

Vejohttp://www.selenic.com/mercurial/hgrc.5.html> seção ferramentas de fusão para referência.

Uso as an alternativa para 'diff3':
git-merge-changelog desempenha a mesma função que "diff3 -m", apenas com argumentos reordenados:

$ git-merge-changelog% O% A% B

é comparável a

$ diff3 -m% A% O% B

chamada convenção:
Um driver de mesclagem é chamado com três argumentos de nome de arquivo:

1.% O = O ancestral comum de% A e% B.

2.% A = O conteúdo do arquivo da "ramificação atual".

3.% B = O conteúdo do arquivo da "outra ramificação"; este é o conteúdo sendo mesclado
pol

No caso de um "git stash apply" ou de um pull upstream (por exemplo, de um mantenedor de subsistema para
um mantenedor central) ou de um pull downstream com --rebase:

2.% A = o conteúdo puxado mais recente do arquivo; modificado por outros committers.

3.% B = a cópia mais recente do usuário do arquivo; modificado pelo usuário.

No caso de um pull downstream (por exemplo, de um repositório central para o usuário) ou de um
pull upstream com --rebase:

2.% A = a cópia mais recente do arquivo do usuário; modificado pelo usuário.

3.% B = o conteúdo puxado mais recente do arquivo; modificado por outros committers.

Ele deve gravar sua saída mesclada no arquivo% A. Ele também pode ecoar alguns comentários para stdout.
Ele deve sair com o código de retorno 0 se a fusão puder ser resolvida de forma limpa ou com um valor diferente de zero
código de retorno se houver conflitos.

Como funciona o dobrador de carta de canal it obras:
A estrutura de um arquivo ChangeLog: Consiste em entradas ChangeLog. Uma entrada ChangeLog
começa em uma linha após uma linha em branco e começa com um caractere diferente de espaço em branco,
ou no início de um arquivo. O driver de mesclagem funciona da seguinte maneira: ele lê os três
arquivos na memória e os disseca em entradas de ChangeLog. Em seguida, ele encontra as diferenças
entre% O e% B. Eles são classificados como:

- remoções (algumas entradas consecutivas removidas),

- alterações (algumas entradas consecutivas removidas, algumas entradas consecutivas adicionadas),

- adições (algumas entradas consecutivas adicionadas).

O driver então tenta aplicar as alterações em% A. Para este efeito, primeiro calcula um
correspondência entre as entradas em% O e as entradas em% A, usando string fuzzy
correspondência para ainda identificar entradas alteradas.

- As remoções são aplicadas uma a uma. Se a entrada estiver presente em% A, em qualquer posição, é
removido. Caso contrário, a remoção é marcada como um conflito.

- As adições no topo de% B são aplicadas no topo de% A.

- Adições entre a entrada x e a entrada y (y pode ser o final do arquivo) em% B são aplicadas
entre a entrada xea entrada y em% A (se eles ainda existirem e ainda forem consecutivos em
% A), caso contrário, as adições são marcadas como um conflito.

- As mudanças são categorizadas em "mudanças simples":
entry1 ... entryn são mapeados para
Added_entry ... Added_entry modify_entry1 ... modify_entryn, onde o
correspondência entre entry_i e modificados_entry_i ainda é clara; e "grandes mudanças":
estes são todos os demais. Mudanças simples na parte superior de% B são aplicadas colocando o
entradas adicionadas no topo de% A. As mudanças em mudanças simples são aplicadas uma a uma;
possivelmente levando a conflitos de entrada única. Grandes mudanças são aplicadas em bloco, possivelmente
levando a conflitos que abrangem várias entradas.

- Os conflitos são gerados na parte superior do arquivo e causam um status de saída 1.

Use git-merge-changelog online usando serviços onworks.net



Programas online mais recentes para Linux e Windows