Vscode: Suporte a ferramenta de resolução de conflitos Git semelhante a IntelliJ, WebStorm

Criado em 31 out. 2017  ·  91Comentários  ·  Fonte: microsoft/vscode

IntelliJ, e todos os outros IDE baseados em IntelliJ, como WebStorm, oferecem suporte a uma ferramenta de resolução de conflito do git merge que mostra o conflito em três colunas:

  • a primeira coluna para Mudanças Locais
  • a terceira coluna para mudanças do servidor
  • a segunda coluna para o Resultado da Resolução de Conflitos

Por favor, veja meu arquivo anexado.
merge-conflict-resolution

Acho que é muito fácil para nós resolver o conflito, porque posso comparar as alterações locais e as alterações do servidor nas mesmas janelas e posso ver o resultado da resolução imediatamente.

Podemos apoiar isso?

feature-request merge-conflict

Comentários muito úteis

Este será um recurso muito legal, eu uso VSCode para meu trabalho diário, mas frequentemente recorro a WebStorm quando preciso resolver um conflito de mesclagem devido à sua interatividade e facilidade de uso.

Todos 91 comentários

Este será um recurso muito legal, eu uso VSCode para meu trabalho diário, mas frequentemente recorro a WebStorm quando preciso resolver um conflito de mesclagem devido à sua interatividade e facilidade de uso.

Alguma novidade sobre isso? esse recurso seria incrível. Por um lado, existe uma ferramenta diff (ou seja, comparar dois arquivos) no código do VS, mas você não pode editar / escolher o que manter; por outro lado, existe uma ferramenta de conflito de mesclagem que permite escolher o que manter (mudança atual / sua mudança). Agora, o melhor seria ter as duas ferramentas em uma única ferramenta, como a ferramenta sugerida por @uyhung.

Eu também gostaria de acrescentar, para qualquer contribuidor que vier por: VS Code é um software incrível, continue assim :)!

Será um recurso incrível ... alguma notícia sobre isso? alguém recomenda alguma extensão que faça algo semelhante?

Estou usando isso no PyCharm. Esse recurso incrível ajuda muito a evitar bugs em fusões maiores. Todos os linters estão disponíveis durante o processo, portanto, erros / violações de estilo / variáveis ​​não utilizadas são fáceis de detectar.

Apresse-se com este recurso se estiver planejando implementá-lo :)

Polegar para cima 👍 para este. Essa é a única coisa que me impede de mudar totalmente para o VSCode. Seria super útil e útil.

No dia em que você implementar esse recurso, pararei de usar o webstorm.

Não apenas para resolver conflitos, este design deve estar disponível para ver o arquivo de histórico também.

git config merge.conflictStyle diff3 e você tem isso hoje, mas com o layout do editor do VSCode - que é muito melhor do que abrir um diálogo e uma nova janela para ver o arquivo que você já tinha aberto no IMO!

Qualquer notícia? Está programado, talvez, ou planejado para ser programado?

Sim, realmente precisava

este é um recurso muito necessário, estou usando a idéia inteliij apenas para resolver conflitos.

+1, isso seria incrível!

+1 aqui! Tentando fazer a mudança, mas IMO, este é um dos principais recursos que faltam para mudar de WebStorm para VSCode

Podemos parar com os comentários +1? Não traz nada para a conversa.
Apenas observe este tópico e espere ...

@Zielak +1 vamos parar de adicionar mais comentários

Alguém sabe se existe algum plugin que possa tornar isso possível?

@rajjejosefsson Como eu disse acima , você pode definir: ( git config merge.conflictStyle diff3 )

[merge]
  conflictStyle = diff3

para vê-los / common / us. Isso não mudará a formatação / tema do VSCode, mas você obterá essas três partes em seu diff ao invés de apenas eles / nós como é o padrão (git).

A menos que haja algo mais (além de abrir vários diálogos apenas para voltar a ver uma diferença no arquivo que você já abriu) que os IDEs do JetBrains oferecem e que estou perdendo aqui?

O recém-lançado Sublime Merge tem uma implementação semelhante.

Este será um recurso muito legal, eu uso VSCode para meu trabalho diário, mas frequentemente recorro a WebStorm quando preciso resolver um conflito de mesclagem devido à sua interatividade e facilidade de uso.

Você pode adicionar essas configurações em seu arquivo .gitconfig e digitar "git mergetool" em seu terminal sempre que houver conflito. Ele só abrirá sua interface gui de mesclagem do webstorm para cada arquivo.

[mergetool "webstorm"]
    cmd = webstorm merge $(cd $(dirname "$LOCAL") && pwd)/$(basename "$LOCAL") $(cd $(dirname "$REMOTE") && pwd)/$(basename "$REMOTE") $(cd $(dirname "$BASE") && pwd)/$(basename "$BASE") $(cd $(dirname "$MERGED") && pwd)/$(basename "$MERGED")
    trustExitCode = true
[merge]
    tool = webstorm

+1 aqui, agora é a única razão de eu usar o webstorm!

+1

+1

É verdade que o VS Code é incrível, exceto pela falta dessa ferramenta de interface do usuário.

+1, é exatamente assim que eu espero que a ferramenta de mesclagem seja.
E o # 5770 deve ser implementado assim.

+1 é o único recurso que realmente sinto falta ao usar o VSC em comparação com o WebStorm.

Eu também gostaria que isso fosse implementado, o único grande todo que vejo no código do VS como um IDE completo

Ok, como o Webstorm parece ser a única solução real, vou fazer o download agora.
Estou ansioso para que o VSCode suporte esse recurso !!

Além disso, alguém poderia votar contra esta postagem para mim? Obrigado: P

Esse recurso ainda está em andamento?

+1, totalmente usaria isso se implementado

Eu adicionei uma nova configuração e comando para melhorar um pouco a resolução do conflito de mesclagem, aqui está como será a experiência depois que https://github.com/microsoft/vscode/pull/74231 for mesclada

Em primeiro lugar, uma nova configuração merge-conflict.diffViewContext foi adicionada para mostrar o contexto em torno do conflito

Antes: não há contexto em torno do diff
compare-withoutcontext

Depois: com "merge-conflict.diffViewContext": 3
compare-with-context

Em segundo lugar, um novo comando Comparar tudo é introduzido para exibir a comparação completa entre o espaço de trabalho atual e as mudanças de entrada, com o qual você pode comparar o conteúdo antigo, o de entrada e o conteúdo local mais recente no disco

compare-all

Mais trabalho na área do editor precisa ser feito para oferecer suporte ao estilo JetBrains, por exemplo, abrindo um grupo de editores de três colunas do conflito. Mas ainda quero ouvir seus comentários sobre a solução atual mencionada acima.

Isso é legal. Você pode escolher linha por linha que alteração deseja incorporar ao novo arquivo ou trata-se apenas de um arquivo ou de outro? Linha por linha ou tudo seria incrível !!!

Se você puder aceitar cada alteração de qualquer um dos arquivos, bloco por bloco, e mesclar no terceiro, isso provavelmente cobrirá a maioria dos casos de uso. Por exemplo, se um arquivo tivesse 3 alterações e o outro arquivo 4, eu poderia escolher o que quisesse. Como aceitar 2 alterações de um arquivo e 2 alterações do outro. Pode fazer isso? Se sim ... isso é demais!

@rebornix O contexto adicional é bom e gosto de comparar tudo, mas para mim ainda faltam algumas coisas:

  1. Comparando cada "lado" com a base comum - embora uma visualização de mesclagem de 3 vias seja provavelmente melhor, isso poderia pelo menos ajudar nesse ínterim (tenho tentado adicionar algo para isso no GitLens)
  2. Ser capaz de editar na visualização de comparação e ter as alterações sincronizadas de volta ao documento - isso é algo que foi falado antes de o better-merge ser trazido para o núcleo. Aqui estava um pedido sobre isso (embora o pedido original tenha desaparecido: cry :) https://github.com/microsoft/vscode/issues/10547#issuecomment -300201327 '

# 2 provavelmente pode ser feito hoje com um provedor de sistema de arquivos personalizado (embora isso pareça um exagero)

@eamodio

Comparando cada "lado" com a base comum - embora uma visualização de mesclagem de 3 vias seja provavelmente melhor, isso poderia pelo menos ajudar nesse ínterim (tenho tentado adicionar algo para isso no GitLens)

Este requer a adição de uma nova visão diff de três vias (um algoritmo de diff de três vias e um editor de três colunas), mas é factível. Para o # 2, acho que um provedor de sistema de arquivos personalizado é o caminho certo, já que o conteúdo do arquivo no disco contém conflitos de mesclagem (como >>>>>>, <<<<<< ), enquanto selecionamos as alterações de conteúdo na visualização diff, não queremos para bagunçar o arquivo no disco, então ele já é um provedor de sistema de arquivos virtual.

Precisa muito desse recurso.

@rebornix Eu gosto da ideia, acho que pode ser ainda melhor do que abrir um editor de 3 colunas, já que as telas dos laptops não são tão grandes. Acho que pode ser mais fácil melhorar um pouco para finalmente se parecer com a ferramenta de mesclagem Gitkracken mostrando o contexto no editor superior e permitindo a edição do arquivo relutante (que atualmente tem >>>> <<<< ...) na parte inferior .
merge-tool@2x

Sim, muitas vezes quando há conflito de mesclagem eu mudo para PHPStorm, mesmo se o outro trabalho no projeto eu faço em VSCode. É estranho que dois anos se passaram e ainda não houve uma fusão adequada.

@rebornix Eu gosto da ideia, acho que pode ser ainda melhor do que abrir um editor de 3 colunas, já que as telas dos laptops não são tão grandes. Acho que pode ser mais fácil melhorar um pouco para finalmente se parecer com a ferramenta de mesclagem Gitkracken mostrando o contexto no editor superior e permitindo a edição do arquivo relutante (que atualmente tem >>>> <<<< ...) na parte inferior .

Eu discordo, o layout de três colunas é parte do que torna o Webstorm tão bom. Ele mantém uma visão geral muito organizada

Mesmo aqui, eu sempre mudo para o IntelliJ para resolução de conflitos de mesclagem. A ferramenta de varinha mágica „Resolver conflitos simples“ economiza muito tempo também!

Eu mudo de volta para o Visual Studio 2017 para resolver conflitos ...

Na terça - feira, 25 de junho de 2019 às 8:35 AM fabb

Mesmo aqui, eu sempre mudo para o IntelliJ para resolução de conflitos de mesclagem.
A ferramenta de varinha mágica „Resolver conflitos simples“ economiza muito tempo também!

-
Você está recebendo isto porque está inscrito neste tópico.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/microsoft/vscode/issues/37350?email_source=notifications&email_token=AAEN6O3LOPBVEY7PMABVNRDP4I3KZA5CNFSM4EBV5J4KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODYQUWAQ#issuecomment-505498370 ,
ou silenciar o tópico
https://github.com/notifications/unsubscribe-auth/AAEN6O4AO24V4GB24EWOJGDP4I3KZANCNFSM4EBV5J4A
.

O vscode deve mudar a ferramenta de conflito do git, porque ao resolver os conflitos, o vscode adiciona <<< , === , o que causa um erro de sintaxe de linguagem

@ SupinePandora43 Isso não é VSCode, é como o git lida com conflitos, ele adiciona <<< , === às linhas conflitantes. WebStorm analisa esses blocos e cria uma ótima ferramenta visual para mesclagem.

@vedmant então ... vscode precisa de algum analisador

@ minkir014 Verifique a imagem anexada no comentário original no topo, é isso que todos querem dizer.

Isso está em dicas e truques do código vs e isso significa que ele está embutido no código vs. Então, por que esse problema ainda está aberto?

@ minkir014 Vou vincular a imagem do comentário original aqui novamente, porque você claramente está pensando em algo diferente: https://user-images.githubusercontent.com/1470309/32250860-c677e4ce-bec0-11e7-82b5-0196d981cc28.png

@ minkir014 O que está no código do VS agora não é nada perto do recurso que o IntelliJ tem, basta comparar: https://user-images.githubusercontent.com/1470309/32250860-c677e4ce-bec0-11e7-82b5-0196d981cc28.png e o que você postou https://github.com/Microsoft/vscode-tips-and-tricks/blob/master/media/resolve_merge_conflicts.gif você vê muitas semelhanças?

@ minkir014 porque o recurso integrado não é o mesmo que estamos discutindo neste tópico.

A mesclagem de três vias é o único recurso que me impede de usar o VSCode como meu único IDE.

A mesclagem de três vias é o único recurso que me impede de usar o VSCode como meu único IDE.

Eu ouço você. Este é um recurso matador que precisamos ter. Eu tenho que manter o PHPStorm por perto apenas por esse motivo.

Levei um tempo para perceber que você tem a maior parte do que você _precisa_ contido nas atualizações do tópico acima, apenas não é exibido de maneira bonita, nem pode fazer diffs arbitrárias de 3 vias (para ser super-alimentado no futuro por GitLens com cometer diffing e seleção de ancestrais, sem dúvida).

As alterações de configuração abaixo cobrem a maioria das necessidades de contextualização de conflito de mesclagem do mundo real melhor do que as configurações VSCode / Git padrão quando você deseja ser capaz de compreender o contexto de duas alterações diferentes quando elas foram feitas, enquanto simultaneamente reconcilia suas diferenças. Portanto, para futuros pesquisadores:

  1. Habilite a revelação do ancestral comum (diferente) de dois diffs mudando seu estilo de conflito git para diff3. Faça isso editando seu ~ / .gitconfig ou usando o cli: git config merge.conflictStyle diff3
  2. Defina a configuração do VSCode para a posição de visualização de comparação como "Abaixo" ou "Ao lado" "merge-conflict.diffViewPosition": "Below"

Parabéns, agora você pode ver o contexto de seus dois diffs como referências estáticas, a base comum da qual ambos se ramificaram, e tudo isso enquanto ainda faz edições em todos os três contextos (ancestral, ramo A e ramo B) usando diff in-line. Agora é um vimdiff de pobre.

(adicionar um painel estático para exibir o diff ancestral comum sem realces seria uma adição fácil e fácil, sem a necessidade de um editor principal ou atualizações de algoritmo de diff, por falar em vimdiff)

E se essas mudanças não forem no GIT? (Estou usando forçosamente e não tenho escolha no momento.)

Duplicado de # 25887

Essa é uma visão de duas colunas. Esta é uma visão de três colunas.

Duplicado de # 25887

Essa é uma visão de duas colunas. Esta é uma visão de três colunas.

Achei que valeria a pena vincular as questões, pois é o mesmo problema.
Duas ou três colunas fazem parte da solução.
Por outro lado, minha motivação para vincular é obter atração de ambos os problemas e adicionar o comportamento ausente o mais rápido possível - eu realmente gostaria de usar esse recurso ☺

Mas aqui estão 427 votos contra 310 (# 25887). Talvez você possa mesclar contar os votos, se já quiser mesclar. Este recurso será o top 10

Implementar uma mesclagem de painel de estilo 3 do IntelliJ eficaz e amigável (às vezes referida como mesclagem de três vias, mas são dois arquivos mesclados em um painel de resultados) colocaria o produto editor de código VS no topo do mundo. Tenho certeza disso - e vários desses tópicos e muitos comentários contam a história de pessoas "segurando" seus produtos Intellij apenas por causa da falta desse recurso. Não vejo como uma solicitação de recurso poderia ser melhor motivada ou uma prioridade mais clara para os proprietários / desenvolvedores do produto. Alguma notícia sobre seus (desenvolvedores, gerentes de código vs) pensamentos sobre isso?

O fato de algumas pessoas aludirem ao quão próximos os recursos já implementados trazem o VS Code para o resultado desejado, apenas me diz que implementar isso até o fim não deveria ser tão exigente, se a maior parte do trabalho já foi feita.

É exatamente por isso que ainda uso o Meld como minha ferramenta de fusão

É exatamente por isso que ainda uso o Meld como minha ferramenta de fusão

A fusão sublime é muito melhor do que a fusão

É exatamente por isso que ainda uso o Meld como minha ferramenta de fusão

A fusão sublime é muito melhor do que a fusão

Eu concordo, embora não ache que este seja o lugar para discutir qual ferramenta de mesclagem é a melhor que existe.

É pelo menos possível mostrar uma BASE comum para as alterações atuais e de entrada?

@ackvf sim, você pode com diff de três vias

quais as novidades?

Espere também, alguém por favor me avise quando estiver disponível

esperando o mesmo ... ter essa ferramenta vai ser incrível

talvez eu deva pegar o IntelliJ também :)

+1 aqui, agora é a única razão de eu usar o webstorm!
+1
esperando o mesmo ... ter essa ferramenta vai ser incrível
talvez eu deva pegar o IntelliJ também :)

Por favor, pare de enviar spam para todos os assinantes deste tíquete com mensagens não relacionadas.

Confira https://marketplace.visualstudio.com/items?itemName=mhutchie.git-graph#review -details. Acho que essa extensão tem recursos quase semelhantes aos do IDE Webstorm.

Este é o principal motivo pelo qual não uso o vscode como meu editor principal. Seria ótimo ver isso adicionado, já que a integração e fusão git embutidas são muito mais úteis no WebStorm. Seria ótimo ver isso adicionado.

Eu preciso disso na minha vida.

Nenhuma notícia sobre este recurso? ou mesmo um plugin é bom: D ??

vscode é ótimo, mas na verdade ainda usa a ferramenta intellij merge apenas para isso ..)

Todas as novidades que temos são o Roadmap 2020, que menciona "suporte total para fusão (3 vias)": https://github.com/microsoft/vscode/wiki/Roadmap#scm

Oh cara! uma grande falta do VSCode. Eu me pergunto como os desenvolvedores sobrevivem sem esse recurso. Vou recorrer ao Webstorm para este

Foi verificado a extensão Git Graph para Visual Studio Code, mas ainda não é o recurso. Estou usando vscode para todas as versões, exceto mesclar seletivas com pycharm.

_Ainda_ usando IntelliJ para mesclar. Também o painel de commits, onde podemos escolher quais commits do mesmo arquivo manter. etc. 😐

Cara, eu criei esse pedido há 3 anos :)

Embora o VSCode seja ótimo, ainda preciso usar o Webstorm para tarefas relacionadas ao Git :(

Estou esperando por isso

por que ainda não há suporte para isso? existe algum plugin vscode que desempenhe a mesma função no mercado?

@sshsu
Posso estar errado, mas acho que os fatores limitantes são os recursos do editor ausentes. Se fosse possível escrever um plugin, já haveria um

Posso estar errado, mas acho que os fatores limitantes são os recursos do editor ausentes. Se fosse possível escrever um plugin, já haveria um

Tipo de. Comecei a implementar um plugin de mesclagem em meu tempo livre e a única coisa que descobri que realmente faltava era https://github.com/microsoft/vscode/issues/85682

No entanto, estou muito grato pelo ide vscode de código aberto 😍 Portanto, ficarei feliz com tudo o que será adicionado - talvez até veremos esse recurso este ano, pois faz parte do roteiro de 2020 😍😍

Esse recurso está chegando? A linha principal do Visual Studio tem mesclagem de 3 vias no TFS

Talvez você queira experimentar minha nova extensão VS Code como Git Mergetool . Ele tem alguns déficits devido à falta de API, mas ainda não recebi nenhum feedback negativo, exceto de mim mesmo. O layout de quatro painéis proposto pode até ter algumas vantagens sobre um layout de três colunas, no entanto.

Ainda não está no Marketplace, mas pode ser instalado manualmente. _Já está disponível no Marketplace ._

Vou deletar o webstorm quando tiver esse recurso.

Muito necessário: +1:

Este será um ótimo recurso <3

Como solução temporária é usar ferramentas online como https://editor.mergely.com

Eu tenho um comentário aqui de alguns anos atrás dizendo a mesma coisa que os outros, e embora eu ache que uma visualização alternativa de mesclagem de três vias seria incrível, eu na verdade prefiro essa forma barebones agora, já que é literalmente apenas uma capa sobre o texto que o git coloca lá.

O que eu quero dizer é que isso não deve ser um "bloqueador" para quem usa VSCode. Experimente, em vez de reverter para um IDE IDEA para interações git. (A única extensão que recomendo é o Git Graph)

Esta página foi útil?
0 / 5 - 0 avaliações