wiggle - Online na nuvem

Este é o comando wiggle 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 do Windows ou emulador online do MAC OS

PROGRAMA:

NOME


wiggle - aplique patches rejeitados e execute diferenças em palavras

SINOPSE


mexer [função] [opções] lima [arquivos]

DESCRIÇÃO


A principal função do mexer é aplicar um patch a um arquivo de maneira semelhante ao
remendo(1) programa.

A diferença distintiva de mexer é que tentará aplicar um patch mesmo que o
a parte "antes" do patch não corresponde perfeitamente ao arquivo de destino. Isso é alcançado por
dividir o arquivo e patch em palavras e encontrar o melhor alinhamento de palavras no arquivo
com palavras no patch. Uma vez que este alinhamento foi encontrado, quaisquer diferenças (palavras)
no patch são aplicados ao arquivo da melhor maneira possível.

Também, mexer irá (em alguns casos) detectar mudanças que já foram aplicadas, e irá
ignore-os.

mexer garante que todas as alterações no patch sejam aplicadas ao arquivo de destino de alguma forma. Se um
uma mudança particular não pode ser feita no arquivo, o arquivo é anotado para mostrar onde o
a mudança deve ser feita de maneira semelhante ao fundir(1) programar com o -A opção. Cada
a anotação contém 3 componentes: uma parte do arquivo original onde a alteração deve
ser aplicado, uma parte do patch que não pode ser correspondida precisamente no arquivo, e o
texto que deve substituir aquela parte do patch. Estes são separados por linhas
contendo precisamente 7 caracteres idênticos, seja '<', '|', '=' ou '>', possivelmente
seguido por uma palavra descritiva. assim
<<<<<<<< found
Alguma parte do arquivo original
||||||| esperado
texto para substituir
=======
texto para substituí-lo por
>>>>>>> substituição
indica que "texto a ser substituído" deve ser substituído por "texto para substituí-lo por" em algum lugar
na parte do arquivo original. Contudo mexer não foi capaz de encontrar um lugar para fazer
esta mudança.

mexer também pode produzir relatórios de conflito mostrando apenas as palavras que estão envolvidas, em vez
do que mostrar linhas inteiras. Nesse caso, a saída é semelhante a:
<<< --- original ||| antigo === novo --- >>>

Um possível uso de mexer é correr remendo para aplicar algum patch, e para coletar uma lista de
rejeita monitorando as mensagens de erro do patch. Então, para cada arquivo para o qual um
rejeitar foi encontrado, execute
wiggle --replace arquivo original arquivo original.rej

Finalmente, cada arquivo deve ser examinado para resolver quaisquer conflitos não resolvidos e para ter certeza
o patch aplicado é semanticamente correto.

Como alternativa, o arquivo de patch original pode ser alimentado para o procurar modo como
wiggle -B <patchfile

Isso permitirá que as alterações e conflitos sejam inspecionados e, até certo ponto, modificados;
e então os resultados podem ser salvos.

OPÇÕES
As seguintes opções são compreendidas por mexer. Alguns deles são explicados em mais
detalhes nas seções a seguir em MERGE, DIFF, EXTRACT e BROWSE.

-m, --mesclar
Selecione a função "mesclar". Esta é a função padrão.

-d, --dif
Selecione a função "diff". Isso exibe as diferenças entre os arquivos. Isso pode
ser dado depois --Squeaky toy (veja abaixo), caso em que um patch ou diff de dois arquivos pode
ser visto sem os originais.

-x, --extrair
Selecione a função "extrair". Isso extrai uma ramificação de um patch ou arquivo de mesclagem.

-B, --Squeaky toy
Selecione a função "navegar". Isso é semelhante a "mesclar" (ou "diff") apenas com um
apresentação diferente. Em vez de o resultado simplesmente ser enviado para o padrão
saída, é apresentado usando uma GUI baseada em ncurses para que cada pedaço do patch
pode ser examinado para entender quais conflitos estavam envolvidos e o que precisava ser
ignorado na ordem do patch a ser mexido no lugar.

-w, --palavras
Solicite que todas as operações e exibições sejam baseadas em palavras. Este é o padrão para o
função "diff".

-l, --linhas
Solicite que todas as operações e exibições sejam baseadas em linhas.

-b, --ignore-brancos
Retirar a ênfase do espaço em branco (espaço, tabulação e nova linha) está determinando as diferenças e
alterações.

Normalmente, o espaço em branco é tratado como uma palavra que pode ser combinada ou alterada por um
correção. Quando este sinalizador está em vigor, o espaço em branco serve apenas como um separador entre
outras palavras e não é correspondido em si. O efeito disso é que as mudanças no
quantidade de espaço em branco não é tratada como significativa.

Para ser mais preciso, qualquer espaço em branco é combinado com a palavra anterior ou, no caso
de espaço inicial em uma linha, com a palavra a seguir. No entanto, não está envolvido em
quaisquer comparações dessa palavra. Se um patch exclui uma palavra, o espaço em branco anexado
também é excluído. Se um patch adiciona uma palavra, o espaço em branco anexado é adicionado como
bem.

Uma linha vazia, ou que contenha apenas espaços em branco, será tratada como uma única palavra
que corresponderá a qualquer outra linha em branco, não importa quantos espaços ela tenha.

-b não tem efeito em --linha modo.

-p, --correção
Trate o último arquivo nomeado como um patch em vez de um arquivo (com --diff) ou uma fusão
(--extrair). Dentro fundir or procurar Modo, -p requer que haja exatamente um arquivo que
é um patch e pode conter patches para vários arquivos. Os patches são mesclados
em cada arquivo. Quando usado em fundir modo, este uso requer o --substituir opção
já que gravar muitos arquivos mesclados na saída padrão é impraticável.

Ao processar um patch de vários arquivos, -p pode ser seguido por um argumento numérico
indicando quantos componentes de nome de arquivo devem ser retirados dos arquivos nomeados no
arquivo de patch. Se nenhum argumento numérico for fornecido, mexer irá deduzir um apropriado
número com base em quais arquivos estão presentes no sistema de arquivos.

-r, --substituir
Normalmente, a saída mesclada é gravada na saída padrão. Com --substituir,
o arquivo original é substituído pela saída de mesclagem. Dentro procurar modo, isso instrui
mexer para sempre salvar a mesclagem resultante ao sair.

-o, --output =
Em vez de gravar o resultado no stdout ou substituir o arquivo original, este
solicita que a saída seja gravada no arquivo fornecido. Isso é apenas significativo
de --mesclar or --Squeaky toy quando recebe uma única mesclagem para navegar.

Esta opção substitui -r.

-R, --marcha ré
Quando usado com o diff função, troque os arquivos antes de calcular o
diferenças. Quando usado com o fundir or procurar funções, mexer tentativas de
reverter as alterações em vez de aplicá-las.

-i, - não ignorar
Normalmente o wiggle irá ignorar as mudanças no patch que parecem já ter sido
aplicado no original. Com este sinalizador, essas mudanças são relatadas como conflitos
em vez de ser ignorado.

-W, - show-wiggles
Quando usado com --mesclar, os conflitos que podem ser colocados no lugar são relatados como
entra em conflito com uma estrofe extra que mostra qual seria o resultado se este sinalizador
não tinha sido usado. A estrofe extra é introduzida com uma linha contendo 7
e comercial (&) caracteres assim:
<<<<<<<< found
Alguma parte do arquivo original
||||||| esperado
texto para substituir
=======
texto para substituí-lo por
&&&&&&&& resolução
Texto que resultaria de uma manobra bem-sucedida
>>>>>>> substituição

--report-wiggles
Se uma mesclagem for bem-sucedida na aplicação de todas as alterações, normalmente ela sairá com um
status de sucesso (0), apenas relatando falha (1) se um conflito ocorreu e foi
anotado. Com --report-wiggles mexer também relatará falha se houver alguma alteração
teve que ser mexido. Isso pode ser útil quando mexer é usado para mesclagens automáticas
como com git. Se algum movimento acontecer, git irá relatar a falha e os resultados
podem ser examinados para confirmar se são aceitáveis.

-h, --Socorro
Imprima uma mensagem de ajuda simples. Se fornecido após um dos seletores de função
(--mesclar, --dif, --extrair, --Squeaky toy) ajuda específica para essa função é exibida.

-V, --versão
Mostra o número da versão de mexer.

-v, --verbose
Ative o modo detalhado. Atualmente, isso não faz diferença.

-q, --quieto
Ative o modo silencioso. Isso suprime a mensagem da função de mesclagem quando há
são conflitos insolúveis.

PALAVRAS
mexer pode dividir um texto em linhas ou palavras ao executar suas tarefas. Uma linha é simplesmente
uma sequência de caracteres terminada por uma nova linha. Uma palavra é um contíguo máximo
string de alfanuméricos (incluindo sublinhado), uma string contígua máxima de espaço ou
caracteres de tabulação ou qualquer outro caractere único.

MERGE
A função de mesclagem modifica um determinado texto encontrando todas as mudanças entre dois outros textos
e impondo essas mudanças no texto dado.

Normalmente mexer concentra-se em quais palavras mudaram de modo a maximizar a possibilidade de
encontrar uma boa correspondência no texto fornecido para o contexto de uma determinada mudança. No entanto, pode
considere apenas linhas inteiras.

mexer extrai os três textos de que precisa dos arquivos listados na linha de comando.
Podem ser listados 1, 2 ou 3 arquivos, e qualquer um deles pode ser um hífen solitário significando
entrada padrão.

Se um arquivo for fornecido e o -p opção não estiver presente, o arquivo é tratado como um fundir
arquivo, ou seja, a saída de "mesclar -A" ou "mexer". Esse arquivo contém implicitamente três
córregos e estes são extraídos e comparados.

Se dois arquivos são fornecidos, o primeiro simplesmente contém o texto principal, e o segundo é
tratado como um arquivo de patch (a saída de "diff -u" ou "diff -c", ou um arquivo ".rej" do
remendo) e os outros dois textos são extraídos dessa.

Se um arquivo for fornecido junto com o -p opção, o arquivo é tratado como um arquivo de patch
contendo os nomes dos arquivos corrigidos. Neste caso, várias operações de mesclagem
pode acontecer e cada um pega um fluxo de um arquivo nomeado no patch, e os outros dois
do próprio patch. O --substituir opção é necessária e os resultados são escritos de volta
para os arquivos de destino.

Finalmente, se três arquivos são listados, eles são considerados como contendo o texto fornecido e os dois
outros textos, em ordem.

Normalmente, o resultado da mesclagem é gravado na saída padrão. Se o -r bandeira é dada,
a saída é gravada em um arquivo que substitui o arquivo original fornecido. Neste caso, o
arquivo original é renomeado para ter um .porig sufixo (para "original corrigido" que faz sentido
se você usar primeiro remendo para aplicar um patch e, em seguida, use mexer para mexer nas rejeições).

Além disso, se o -o opção é fornecida com um nome de arquivo, a saída será gravada nesse
Arquivo. Neste caso, nenhum backup é criado.

Se nenhum erro ocorrer (como erros de acesso a arquivos) mexer sairá com um status de 0 se todos
as alterações foram mescladas com sucesso, e com um status de saída de 1 e uma breve mensagem, se houver
as alterações não puderam ser totalmente mescladas e, em vez disso, foram inseridas como anotações. Entretanto se
ou --report-wiggles or - show-wiggles opções foram dadas, mexer também existirá com
status de 1 se alguma alteração tiver que ser ajustada mesmo que tenha sido bem-sucedida.

A função de mesclagem pode operar em três modos diferentes com relação a linhas ou palavras.

Com o --linhas opção, linhas inteiras são comparadas e quaisquer conflitos são relatados como um todo
linhas que precisam ser substituídas.

Com o --palavras opção, palavras individuais são comparadas e quaisquer conflitos são relatados apenas
cobrindo as palavras afetadas. Isso usa o formato de conflito <<< ||| === >>>.

Sem nenhuma dessas opções, uma abordagem híbrida é adotada. Palavras individuais são
comparada e fundida, mas quando um conflito é encontrado, toda a linha circundante é relatada
como estando em conflito.

mexer irá garantir que cada mudança entre os dois outros textos seja refletida no
resultado da fusão de alguma forma. Existem quatro maneiras diferentes de uma mudança ser
refletido.

1 Se uma mudança converte A para B e A é encontrado em um local adequado no original
arquivo, ele é substituído por B. Isso inclui a possibilidade de B está vazio, mas
isso não A está vazia.

2 Se for encontrada uma mudança que simplesmente adiciona B e o texto imediatamente anterior e
após a inserção são encontrados adjacentes ao arquivo original em um adequado
lugar então B é inserido entre esses textos adjacentes.

3 Se uma mudança for encontrada, que muda A para B e isso parece (com base no contexto) para
alinhar com B no original, então presume-se que essa mudança já foi
aplicada, e a alteração é ignorada. Quando isso acontece, uma mensagem refletindo o
número de mudanças ignoradas é impresso por mexer. Essa otimização pode ser
suprimido com o -i bandeira.

4 Se for encontrada uma mudança que não se enquadre em nenhuma das possibilidades acima, então um
o conflito é relatado conforme descrito anteriormente.

DIFF
A função diff é fornecida principalmente para permitir a inspeção dos alinhamentos que mexer
calculado entre textos e que ele usa para realizar uma fusão.

A saída da função diff é semelhante à saída unificada de diff. No entanto, enquanto
diff não produz longos trechos de texto comum, mexero modo diff produz tudo.

Ao calcular um alinhamento baseado em palavras (o padrão), mexer pode ser necessário mostrar essas palavras-
diferenças baseadas. Isso é feito usando uma extensão para o formato unified-diff. Se uma linha
começa com uma barra vertical, então pode conter seções cercadas por
colchetes de caracteres. Os colchetes "<<< ++" e "++ >>>" circundam o texto adicionado, enquanto "<<< -"
e "- >>>" envolve o texto removido.

mexer pode receber os dois textos para comparação de uma das três maneiras.

Se apenas um arquivo é fornecido, ele é tratado como um patch e as duas ramificações desse
patch são comparados. Isso efetivamente permite que um patch seja refinado a partir de um patch baseado em linha
para um patch baseado em palavras.

Se dois arquivos forem fornecidos, normalmente serão considerados textos simples a serem comparados.

Se dois arquivos são fornecidos junto com a opção --patch, o segundo arquivo é assumido como
ser um patch e o primeiro (com -1) ou o segundo (com -2) branch é extraído e
em comparação com o texto encontrado no primeiro arquivo.

Esta última opção causa mexer para aplicar um algoritmo de "melhor ajuste" para alinhar pedaços de patch
com o arquivo antes de calcular as diferenças. Este algoritmo é usado ao mesclar um
patch com um arquivo, e seu valor pode ser visto comparando a diferença produzida desta forma
com a diferença produzida pela primeira extração de um branch de um patch em um arquivo, e
então calculando a diferença desse arquivo com o arquivo principal.

EXTRAIR
A função de extração de mexer simplesmente expõe a funcionalidade interna para extrair
uma ramificação de um patch ou arquivo de mesclagem.

Precisamente um arquivo deve ser fornecido, e será considerado um arquivo de mesclagem, a menos que
--correção é fornecido, caso em que um patch é assumido.

A escolha do ramo é feita fornecendo um de -1, -2ou -3 com significados óbvios.

Pesquisar
A função de navegação de mexer apresenta o resultado de uma fusão ou (com -d) uma diferença em um
GUI baseada em texto que pode ser navegada usando pressionamentos de tecla semelhantes a vi(1) ou emacs(1).

O navegador permite que cada um dos dois ou três streams sejam vistos individualmente com
cores usadas para destacar diferentes tipos de texto - verde para texto adicionado, vermelho para excluído
texto etc. Ele também pode mostrar o patch por si só, o resultado completo da mesclagem ou o
mesclar e o patch lado a lado.

O navegador fornece várias páginas de ajuda contextuais que podem ser acessadas por
digitando '?'

O canto superior direito da GUI relatará o tipo de texto sob o cursor, que também é
indicado pela cor do texto. As opções são inalteradas, alteradas, sem correspondência,
Externo, já aplicado e em conflito. Se os significados deles forem um pouco claros
as experimentações devem ajudar.

Uma quantidade limitada de edição é permitida enquanto em procurar modo. Atualmente o texto que é
indesejados podem ser descartados com x. Isso irá converter um conflito ou mudança em inalterado,
e um Unmatched to Changed (que efetivamente o altera para a string vazia). similarmente
um texto pode ser marcado como desejado com c. Isso irá converter um conflito ou estranho em
Mudado. Usar a mesma chave novamente reverterá a alteração.

Finalmente, as maiúsculas X irá reverter todas as alterações na linha atual.

Para fazer mudanças mais abrangentes, você pode usar v que dirige um editor, preferindo $ VISUAL or
$ EDITOR se eles estiverem definidos no ambiente.

Se você fizer alguma alteração, o wiggle perguntará se deseja salvar as alterações, mesmo que
--substituir não foi dado.

ATENÇÃO


Deve-se sempre ter cuidado ao aplicar um patch rejeitado com mexer. Quando remendo
rejeita um patch, ele o faz por um bom motivo. Apesar de mexer pode ser capaz de encontrar um
lugar confiável para aplicar cada mudança textual, não há garantia de que o resultado seja
correto em qualquer sentido semântico. O resultado deve sempre ser inspecionado para garantir que seja
corrigir.

EXEMPLOS


mexer --substituir lima arquivo.rej
Este é o uso normal de mexer e fará qualquer mudança em arquivo.rej que remendo poderia
não se aplicam e mesclam-nos em lima.

mexer -dp1 lima arquivo.rej
Isso irá realizar uma comparação de palavras entre os lima e os votos de antes ramo da
diff em arquivo.rej e mostrar as diferenças. Isso permite que você veja onde um determinado patch
se aplicaria.

mexer --mesclar --Socorro
Obtenha ajuda sobre a função de mesclagem de mexer.

mexer --Squeaky toy --correção atualização.patch
Analise o atualização.patch arquivo para patches e apresentar uma lista de arquivos com patch que podem ser
navegado para examinar cada patch em detalhes.

mexer pode ser integrado com git de modo que seja usado como a ferramenta de mesclagem padrão e diff
ferramenta. Isso pode ser conseguido adicionando as seguintes linhas ao .gitconfig na casa do usuário
diretório.
[mesclar "mexer"]
name = "Wiggle flexível mesclagem"
driver = mexer -o% A% A% O% B
recursivo = binário
[unir]
ferramenta = mexer
[mergetool "wiggle"]
cmd = wiggle -B -o $ MERGED $ LOCAL $ BASE $ REMOTE
[difftool "mexer"]
cmd = wiggle -Bd $ LOCAL $ REMOTE
Isso fará git fundiretool e git diftool usar mexer.

Se você quiser git sempre usar mexer para mesclagens (o que pode ser perigoso), você pode adicionar
* merge = wiggle
para um apropriado gitatributes arquivo como $ HOME / .config / git / attribute.

CITAR


O nome de mexer foi inspirado pela seguinte citação.

O problema que encontro é que muitas vezes quero levar
(arquivo1 + patch) -> arquivo2,
quando eu não tenho o arquivo1. Mas as ferramentas de mesclagem querem levar
(arquivo1 | arquivo2) -> arquivo3.
Eu não vi uma ferramenta gráfica que o ajude a mexer em um patch
em um arquivo.
- Andrew Morton - 2002

ATALHOS


- mexer não pode ler a saída estendida do diff unificado que ele produz para --diff
--palavras.

- mexer não pode ler o formato de mesclagem baseado em palavras que produz para --merge
--palavras.

- mexer não entende Unicode e por isso tratará muito todos os caracteres não ASCII
da mesma forma que trata a pontuação - tratará cada uma como uma palavra separada. O
o navegador não exibirá caracteres não ASCII corretamente.

Use wiggle online usando serviços onworks.net



Programas online mais recentes para Linux e Windows