Vscode: Git: Use o VS Code como editor de mesclagem

Criado em 25 abr. 2016  ·  96Comentários  ·  Fonte: microsoft/vscode

1.0.0 introduziu a capacidade de usar o VS Code como um git difftool. As linhas globais .gitconfig relevantes são as seguintes:

[diff]
    tool = default-difftool
[difftool "default-difftool"]
    cmd = code --wait --diff $LOCAL $REMOTE

Como posso usar o VS Code como um git mergetool ?

Os argumentos relevantes que ele precisa aceitar, acredito, são $LOCAL , $REMOTE , $BASE e $MERGED .

feature-request git

Comentários muito úteis

Não teríamos de outra maneira. 😉

Todos 96 comentários

Ainda não suportado.

Esse recurso está sendo incluído na próxima iteração, por acaso?

Provavelmente não, este é um grande esforço, já que uma interface de usuário de mesclagem precisa ser implementada.

Existe algum plano para a interface do usuário de mesclagem oferecer suporte à mesclagem de três vias? (por exemplo, alterar a, alterar b, ancestral comum)

Não teríamos de outra maneira. 😉

Não posso upvote este bastante. Este é o principal cenário para eu voltar para um editor/IDE diferente ( tosse* memory-hog Webstorm *tosse ) :)

Se possível, isso seria uma dádiva de Deus, devido a várias razões:

  1. O Meld, embora funcional, carece severamente de funcionalidade em relação às combinações de teclas configuráveis ​​e realce de cores, e é realmente _realmente_ lento para iniciar na minha máquina Windows, mesmo quando instalado em um SSD.
  2. Eu gostaria que o editor de mesclagem também aceitasse o mesmo .editorconfig/settings que meu editor de texto principal tem, e se o vscode preencher essa lacuna, seria incrível.
  3. Em níveis menores, o tema do editor e a familiaridade com a interface também são uma vantagem - às vezes eu ou minha equipe cometemos erros ao mesclar devido à falta de realce de sintaxe, que embora pequenos, causaram enormes bugs nos sistemas de produção. E alguns desses erros são bastante difíceis de entender até que ocorram. _Acho que sempre haveria problemas semelhantes com mergetools_, mas talvez eles fossem reduzidos se alguém pudesse mesclar no mesmo ambiente em que escreve.

Como eu disse, meld é _ok_, mas seria super se o vscode algum dia fosse usado nesse cenário.

O Visual Studio sempre foi minha fusão de código preferida. Adoraria ver esse recurso!

Não há problema em usar outro git mergetool, mas realmente gostaria de ver a própria interface do usuário de mesclagem acontecer muito em breve !!

😐 amei.

Espero esses recursos em IDEs pesados. Na classe de editores leves do vscode (na qual eu consideraria atom, sublime, etc), eu não. Para atividades relacionadas ao git, sou a favor de um terminal e vim para resolução de conflitos. A galera da GUI já tem grandes uni-taskers como fusão, diffmerge, caleidoscópio, etc.

@kumarharsh, esse é um bom ponto sobre feedback imediato (por exemplo; linting.) Seguindo a rota do vim acima, suponho que você possa definir o editor externo padrão do git para vscode ... regras de sintaxe/etc.

+1

esse recurso pode ser implementado como uma extensão do vscode? ou qualquer existe ext recomendado.

Acho que não, como posso ver, as extensões não têm permissão para criar recursos de interface do usuário

Enviado do meu telefone Windows 10

De: Tank Sui
Enviado:quarta-feira , 7 de dezembro de 2016 10:41
Para: Microsoft/vscode
CC: Herbert Pimentel; Comente
Assunto: Re: [Microsoft/vscode] Usando VS Code como git mergetool (#5770)

esse recurso pode ser implementado como uma extensão do vscode? ou qualquer existe ext recomendado.

Você está recebendo isso porque comentou.
Responda a este e-mail diretamente, visualize-o no GitHub ou silencie a conversa.

O plug-in pode fornecer recursos de interface do usuário: veja Git History. Ele renderiza um webview, que pode "potencialmente" ser usado como uma ferramenta de mesclagem. Mas acho que será muito difícil para um plugin fazer isso sem algum nível de suporte do próprio vscode.

O principal problema com as ferramentas caleidoscópio, fusão, etc está em um caso de uso muito típico:
Edite o resultado durante a mesclagem. Tipo, você sabe: aceite esta linha da esquerda, aceite aquela linha da direita e também adicione essa pequena correção para que ambos possam trabalhar juntos.
Capitão óbvio está relatando: As ferramentas de mesclagem são boas na mesclagem :D
Mas editar usando ou seja, o meld é totalmente doloroso, especialmente quando você se acostuma com uma ferramenta útil como o vscode. É por isso que a maioria dos desenvolvedores quer a ferramenta de mesclagem integrada em seu editor.

A interface do usuário de mesclagem de 3 vias de 4 painéis do P4merge é excelente.
http://naleid.com/blog/2013/10/29/how-to-use-p4merge-as-a-3-way-merge-tool-with-git-and-tower-dot-app

nos permitindo ver o diff (recursos incrivelmente úteis em um editor), mas não nos dando uma maneira de mesclar é muito decepcionante

Uma extensão do VS Code seria perfeita para mesclar conflitos.

+1

O resolvedor de conflitos lado a lado do Git não está funcionando no código VS mais recente.

Versão 1.10.2
Confirmar 8076a19fdcab7e1fc1707952d652f0bb6c6db331
Data 2017-03-08T14:02:52.799Z
Escudo 1.4.6
Renderizador 53.0.2785.143
Nó 6.5.0

Gostaria muito de poder editar o código enquanto mesclava usando meu editor de código (vscode), em vez de ter que usar algum outro editor.

Este é um recurso "Obrigatório" para poder migrar completamente para o VSCode quando você trabalha em projetos de desenvolvimento ágil. Uma ferramenta de mesclagem integrada economiza muito tempo sem que o recurso git seja apenas incompleto. Espero que possamos ter isso em breve.

+1

eu preciso do mergetool

Posso recomendar a extensão "melhor mesclagem" por enquanto ...

Sim, é isso que estou usando agora, e muito bem!

Portanto, esta questão eu acho que pode ser encerrada?
No domingo, 30 de abril de 2017 às 16h58, Ali Robertson [email protected]
escreveu:

Posso recomendar a extensão "melhor mesclagem" por enquanto ...


Você está recebendo isso porque comentou.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/Microsoft/vscode/issues/5770#issuecomment-298222866 ,
ou silenciar o thread
https://github.com/notifications/unsubscribe-auth/AAU8Q2JVio1PlIvEb8S1zg2cf5tzxxciks5r1Fs9gaJpZM4IPCMA
.

>

Enviado do iPhone

@alirobe melhor mesclar não tem três janelas de versão como mesclar
Parece que o vsc tem apenas três janelas, mas ninguém implementa uma ferramenta de mesclagem?

Olá @nchammas , @joaomoreno e todos os outros interessados,
Hoje eu configurei usando o VS Code como meu git mergetool e expliquei no StackOverflow: How to use Visual Studio Code as Default Editor for Git MergeTool (explica com mais detalhes, então confira!).

Aqui está a versão de velocidade:
Você pode editar seu .gitconfig diretamente e colar

[merge]
    tool = vscode
[mergetool "vscode"]
    cmd = code --wait $MERGED

ou na linha de comando digite

  1. git config --global merge.tool vscode
  2. git config --global mergetool.vscode.cmd "code --wait $MERGED"

Em seguida, use git mergetool de dentro do diretório git com o conflito de mesclagem e ta-da 😄!

Você deve ver uma linha que diz Accept Current Change | Aceite as duas alterações |

Apenas certifique-se de salvar seu arquivo antes de fechar o VS Code!

Eu gosto que ele tenha a lente de código "Aceitar alteração atual | Aceitar alteração recebida | Aceitar ambas as alterações | Comparar alterações", e adoro a diferença lado a lado quando você clica em "Comparar alterações", mas não me permite editar nada em linha ou com um terceiro painel combinado que você vê na ferramenta de mesclagem do Visual Studio ou outras ferramentas como Meld, Winmerge ou Beyond Compare. Eu adoraria ver esse terceiro painel na comparação lado a lado para que eu possa fazer mais mesclagens personalizadas.

@jaxspades , FWIW, o que eu faço quando preciso customizar é aceitar ambos e depois editar. Até agora isso funcionou bem o suficiente, embora eu ainda não tenha tido fusões particularmente cabeludas usando isso.

O Visual Studio "real" atua como uma ótima ferramenta de mesclagem, FWIW. Eu adoraria ver esse recurso no VS Code.

+1 para @zneak

A tomada atual deste ou daquele bloco é terrível e está desperdiçando muito tempo, refatoração e erros. Eu adoraria ter a capacidade de escolher linha por linha como VS.

Falsos positivos em alterações de arquivo também são um problema ao pular em ramificações.

Eu amo a ferramenta, esta área está apenas faltando.

Olá
no VScode precisa ser a ferramenta de mesclagem padrão.
Nós temos uma ferramenta de comparação legal, e o vsc pode ser dividido em três partes, então... precisamos apenas implementá-la.
Poderíamos implementá-lo pela comunidade com ext, mas não permitimos alterar a interface do usuário. Podemos criar botões personalizados na interface do usuário, então nos ajude

Eu uso kdiff3 no Windows e Mac como meu git mergetool padrão. Possui mesclagem de 3 vias em 4 visualizações, resolução automática muito boa e é gratuito e multiplataforma.

Em maio, a melhor fusão foi integrada. Isso resolveu o problema com eficiência ao adicionar uma interface do usuário de mesclagem.
https://code.visualstudio.com/updates/v1_13

Ericop forneceu instruções sobre como configurar o vscode para usar a interface 'melhor mesclagem' como uma ferramenta de mesclagem acima.

Esta questão deve, portanto, ser encerrada, resolvida.

@alirobe Eu não acho que essa mesclagem seja boa, talvez possa parecer uma fusão, três editores mostram LOCAL, BASE, REMOTE

@zjjott compreensível, sugiro abrir um novo problema solicitando aprimoramento específico ao recurso existente e referenciando isso aqui.

Esta é uma das melhores extensões que já usei https://marketplace.visualstudio.com/items?itemName=letmaik.git-tree-compare#review -details

@joaomoreno Seguindo seu comentário, veremos a fusão de 3 vias no futuro?

@zjjott kdiff3 faz isso muito bem (visualizações locais, básicas, remotas e de resultados). Eu realmente não sei por que as pessoas precisam / desejam funcionalidade extra no vscode quando essa ferramenta multiplataforma existente já é tão boa.

@RoyTinker porque geralmente não faço apenas 'mesclar'. Você tem que editar algo (quando ocorrem alguns conflitos) e quando você edita algo que você quer o melhor editor de todos os tempos, não algo que o kdiff3 tem (tudo bem, mas o vscode é muito melhor)

Por que você não fala com @eamodio e importa seu trabalho incrível no GitLens para VSCode ?
Estou extremamente satisfeito com isso, especialmente ao navegar em arquivos conflitantes, quando tenho alterações de ambos os fluxos em uma visualização e posso aceitar alterações atuais, alterações recebidas, ambas as alterações ou até editá-las de uma só vez.
É bem próximo do ideal, só que às vezes enlouquece com terminações de linha no Windows, então há apenas o Visual Studio completo para o resgate.
Caso contrário, a melhor experiência de GUI do git do IDE que já tive.

@m-wilczynski Embora eu realmente aprecie as palavras gentis - o suporte ao conflito de mesclagem não faz parte do GitLens - ele é construído diretamente no próprio vscode (era originalmente outra extensão que foi trazida para o núcleo)

@eamodio - sry, não sabia. 😄 Não muda o fato de que para mim (e a maioria dos meus colegas que usam VSCode @ work por recomendação minha) o VS Code é inútil para trabalhar com git sem GitLens.
Com o GitLens, estou ansioso para abrir o VSCode, mesmo que não esteja codificando nele (principalmente usando-o para TypeScript e JavaScript) apenas para ver claramente o que está acontecendo nessa mesclagem.
É tudo sobre a experiência do usuário.
Mesmo que o VSCode tivesse tudo incluído e você só precisasse visualizá-lo corretamente - você é o culpado pela minha incrível experiência de usuário. 😉

@m-wilczynski Muito humilde. Obrigado - eu aprecio muito as palavras gentis!

Está chegando em dois anos agora ... e imho isso ainda é um dos recursos ausentes mais óbvios neste momento. adoraria fazer do VSCode minha ferramenta de mesclagem.

@tracker1 Este problema foi resolvido tecnicamente: https://github.com/Microsoft/vscode/issues/5770#issuecomment -308533904. Não sei porque ainda não foi fechado.

@joaomoreno esta questão pode ser encerrada?

Acho que a razão pela qual ainda está aberto (e também porque ainda estou assistindo) é que as pessoas estão procurando uma capacidade de mesclagem de três vias lado a lado no vscode. Por exemplo, atualmente uso o meld ( screenshot de exemplo ).

Sim e temos cenários em que o git tem Conflict(rename/rename) e o arquivo $MERGED vem em branco e ainda é necessário editar fazendo o comando diff $LOCAL $REMOTE, estou usando este cmd abaixo para este problema

code --wait --diff $REMOTE $LOCAL | cp $LOCAL $MERGED

Mas esses podem ser transformados em questões separadas - o trabalho principal desta questão específica é feito IMO.

Talvez o que é mostrado em #5770 funcione bem para pequenas alterações, no entanto, é uma experiência ruim para grandes alterações e você realmente precisa de uma experiência de 3 ou 4 painéis para fazer isso corretamente.

Atualmente, uso o Visual Studio (adequado) como a ferramenta MERGE/DIFF e MELD quando o Visual Studio (adequado) não está instalado. Eles fazem o trabalho, mas seria ótimo poder editar o código com a mesma ferramenta que foi usada para escrevê-lo no primeiro palácio.

Se eles quiserem fechá-lo, tudo bem, pois ele pode ser usado como uma ferramenta de mesclagem, mas devemos ter um problema criado imediatamente para capturar a capacidade de comparação de três vias lado a lado.

Agora o vscode tem a opção de ter mais de duas janelas visíveis. (a partir de v1.24.0). Eu não tentei uma mesclagem de 3 vias, mas certamente deve ser uma possibilidade agora

Esta é a maior falha deste editor incrível com certeza

A fusão de três vias é uma obrigação. A maneira atual de executar o git merge é muito grosseira no uso.

Por favor, adicione uma mesclagem de três vias

@michaelKurowski Sim, recentemente, ouvi colegas reclamando sobre os recursos de mesclagem do VScode, mas não mergulhou nos detalhes. Então, em resumo, se esse aspecto puder ser melhorado, seria bom para o vscode.

Por favor, adicione uma mesclagem de três vias

Não tenho certeza se entendi completamente. As pessoas aqui parecem estar pedindo uma mesclagem de três vias, mas parece que o VSCode já tem uma mesclagem de três vias, como nesta captura de tela.

image

No entanto, pelo que entendi, não há como invocar a mesclagem de três vias a partir da linha de comando. Como a postagem inicial mencionou, isso envolveria uma maneira de invocar com quatro argumentos na linha de comando: o arquivo base, as duas versões revisadas diferentes e o caminho para escrever o resultado mesclado final.

No meu caso, estou querendo usar o VSCode como uma ferramenta de mesclagem com o Perforce e não com o Git, mas supondo que o VSCode aceitasse esses quatro nomes de arquivo na linha de comando, não importaria qual software de controle de origem você está usando, o conceito de mesclagem é o mesmo.

Este problema deve ser chamado de algo como "Adicionar opção de linha de comando para invocar a funcionalidade de mesclagem de 3 vias existente", ou há algo que não estou entendendo sobre a implementação de mesclagem atual no VSCode, além da falta de uso da linha de comando, que o torna inadequado para git three way merge?

Não tenho certeza se entendi completamente. As pessoas aqui parecem estar pedindo uma mesclagem de três vias, mas parece que o VSCode já tem uma mesclagem de três vias, como nesta captura de tela.

image

No entanto, pelo que entendi, não há como invocar a mesclagem de três vias a partir da linha de comando. Como a postagem inicial mencionou, isso envolveria uma maneira de invocar com quatro argumentos na linha de comando: o arquivo base, as duas versões revisadas diferentes e o caminho para escrever o resultado mesclado final.

No meu caso, estou querendo usar o VSCode como uma ferramenta de mesclagem com o Perforce e não com o Git, mas supondo que o VSCode aceitasse esses quatro nomes de arquivo na linha de comando, não importaria qual software de controle de origem você está usando, o conceito de mesclagem é o mesmo.

Este problema deve ser chamado de algo como "Adicionar opção de linha de comando para invocar a funcionalidade de mesclagem de 3 vias existente", ou há algo que não estou entendendo sobre a implementação de mesclagem atual no VSCode, além da falta de uso da linha de comando, que o torna inadequado para git three way merge?

Eu acredito que eles gostariam de ver algo assim:
https://user-images.githubusercontent.com/1470309/32250860-c677e4ce-bec0-11e7-82b5-0196d981cc28.png

@michaelKurowski , entendo. Talvez haja duas questões distintas então,

  • A visualização de fusões de três vias. (a implementação atual exibe mesclas inline, enquanto algumas pessoas estão solicitando uma visualização de três colunas)
  • A capacidade de usar o VSCode como uma ferramenta de mesclagem de 3 vias invocada a partir da linha de comando. (o que exigiria uma opção de linha de comando semelhante ao --diff file1 file2 atual, mas com suporte a mesclagem, por exemplo, --merge basefile revision1file revision2file mergedfile

Minha impressão é que o pôster original estava pedindo algo mais parecido com o último (o que parece fácil de implementar usando a visualização atual), enquanto o pedido para uma visualização de três colunas de mesclagem é um pouco mais complicado e aberto e talvez a confusão entre essas duas solicitações separadas esteja causando esse problema?

Ok, obrigado pelo esclarecimento @uglycoyote & @michaelKurowski , então, na sua opinião, devemos criar um novo problema/solicitação de recurso dedicado à visualização de diferenças de três colunas?

Seria bom se @joaomoreno pudesse comentar a pergunta de @JeanPerriault e minha sugestão sobre se esse problema deveria ser dividido em dois, já que ele parece estar na equipe do VSCode. Mas, a julgar por suas respostas anteriores de "uma interface de usuário de mesclagem precisa ser implementada" e "não teríamos outra maneira (a não ser uma mesclagem de três vias)", parece que ele está vendo os dois problemas que mencionei como uma coisa.

@joaomoreno , não faria sentido primeiro, a curto prazo, implementar uma opção de linha de comando para expor o comportamento de mesclagem existente? Eu pessoalmente ficaria bem em usar a mesclagem em linha atual e não acho essencial uma exibição de 3 colunas (embora possa ser bom). Mas se conectar a mesclagem existente à linha de comando for uma tarefa fácil, não gostaria que ela ficasse paralisada indefinidamente pela falta de vontade da equipe do VSCode de implementar uma visualização de mesclagem de 3 vias mais sofisticada.

sim, nos dê uma visualização/editor de mesclagem visual como http://meldmerge.org/

WinMerge trabalhando como um chefe
after-3way-merge

sim, nos dê uma visualização/editor de mesclagem visual como http://meldmerge.org/

Eu uso o Meld e, embora gostaria de ver o VSCode fazer o mesmo, não vejo problema em usar o Meld para isso, honestamente.

@lig por que então eu tenho que usar o vscode para edição? Eu posso apenas usar o bloco de notas

@josser apenas use qualquer ferramenta que melhor se adapte à sua tarefa atual. Eu acho que essa guerra santa é offtopic btw.

@lig Eu só quero explicar por que as pessoas pedem para integrar a ferramenta de mesclagem ao vscode
Porque eles gostam de vscode e não gostam de outras ferramentas. Mesclar também é editar. E você deseja editar arquivos em seu adorável editor, mesmo que a edição faça parte do processo de mesclagem

Dê uma olhada neste comentário: https://github.com/Microsoft/vscode/issues/5770#issuecomment -265497516

@josser como mencionado anteriormente neste tópico muitas vezes, o pedido original pode ser feito configurando o git para usar o VSCode como uma ferramenta de mesclagem e executando git mergetool durante conflitos, o que abre o fluxo de mesclagem do VSCode que está funcionando bem para mim e outros usuários.

Se você gostaria de ver uma interface semelhante ao Meld ao usar o VSCode como uma ferramenta de mesclagem, _por favor, crie uma solicitação de recurso separada em um problema separado_ para que possamos parar de enviar spam a este tópico para o que é essencialmente _uma solicitação de recurso não relacionada_.

@lig Eu só quero explicar por que as pessoas pedem para integrar a ferramenta de mesclagem ao vscode
Porque eles gostam de vscode e não gostam de outras ferramentas. Mesclar também é editar. E você deseja editar arquivos em seu adorável editor, mesmo que a edição faça parte do processo de mesclagem

Dê uma olhada neste comentário: #5770 (comentário)

Simples e fácil! É exatamente isso que as pessoas querem. Porque isso é tão difícil de entender ? Eu começo um diff e o próximo passo é a fusão. Pertence junto e qualquer separação é totalmente contra um bom fluxo de trabalho e apenas custa tempo. Eu quero usar o editor de código do Visual Studio e nenhuma ferramenta externa.

Eu também gostaria de ter o VS Code para ser usado como um editor de mesclagem de três vias. Aceite ou recuse as alterações da esquerda ou da direita e modifique o resultado antes de confirmar as alterações. Isso melhoraria muito o VSCode. Realmente não faz sentido usar tantos recursos poderosos do git, exceto um dos mais importantes: o merge.

Faça como o JetBrains. (https://github.com/Microsoft/vscode/issues/37350)

E honestamente, a mesclagem parece muito feia. Isso é de 2012, certo? E parece que é de 2003. Por que eu deveria viajar no tempo toda vez que quero fazer a fusão de 3 vias?

Um novo problema foi criado para ter as visualizações de mesclagem de três vias: https://github.com/Microsoft/vscode/issues/37350

Alguém se deu ao trabalho de abrir um problema separado para a interface do usuário de mesclagem de três vias (conforme recomendado aqui) completa com um belo modelo, apenas para tê-lo fechado imediatamente. =(

@mofahead parece que o que eu criei era uma duplicata de # 37350 .. embora o fechamento tenha mencionado esse problema.

Seria bom ter o https://github.com/Microsoft/vscode/issues/8226 melhorado antes de habilitá-lo como um editor de mesclagem

Oi pessoal!

Você pode seguir o tutorial para configurar o VSCode como um git.mergetool oficial:

https://stackoverflow.com/a/44549734

Parece que há alguma confusão aqui com as pessoas mencionando os aspectos da interface do usuário e a funcionalidade de mesclagem. Para mim, o maior assassino de produtividade hoje no VSCode é o fato de que a mesclagem funciona verticalmente em vez de lado a lado.

Sinceramente, não entendo como isso pode ser considerado remotamente uma interface do usuário aceitável para essa funcionalidade. Sem utilidade.

Para aqueles com um Mac, aqui está uma solução alternativa.

  • Instalar Diffmerge
  • Instale a ferramenta VSCode Git Diff and Merge
  • Editar ~/.gitconfig
    adicionar
[diff]
        tool = diffmerge
[difftool "diffmerge"]
        cmd = diffmerge \"$LOCAL\" \"$REMOTE\"
[merge]
        tool = diffmerge
[mergetool "diffmerge"]
        cmd = diffmerge -merge \"$LOCAL\" \"$BASE\" \"$REMOTE\"
        trustexitcode = true
        keepbackup = false
  • No VSCode, vá para Source Control, clique com o botão direito do mouse no arquivo e selecione Launch merge tool

A única coisa é que não consigo fazer com que os arquivos sejam mesclados automaticamente de volta ao VSCode em todos os cenários.

Tenho usado o diffmerge por muitos anos no Mac e Windows. Mudou para Sublime Merge alguns meses atrás. Eu realmente amo isso. É rápido, é moderno. Eu também uso no Windows em vez do Visual Studio quando preciso trabalhar nesse ambiente.

de volta ao emacs para diff e merge de diretórios não controlados por VCS :(

O VS Code tem um bom plugin L13D para comparar diretórios (por exemplo, diretórios de configuração entre um computador de origem e destino), mas você não pode mesclar sem git ou algum outro controle de versão.

Então, é diff-directories do emacs fazer uma sessão e então mesclar o que eu quero seletivamente, para esta tarefa. Estou tentando deixar o emacs, mas ainda encontro uma coisa ocasional que ele pode fazer que o Code não pode.

O VS Code tem um bom plugin L13D para comparar diretórios (por exemplo, diretórios de configuração entre um computador de origem e destino), mas você não pode mesclar sem git ou algum outro controle de versão.

Você tem um link para L13D?

Não tenho certeza se entendi completamente. As pessoas aqui parecem estar pedindo uma mesclagem de três vias, mas parece que o VSCode já tem uma mesclagem de três vias, como nesta captura de tela.

image

Isso funciona para conflitos de mesclagem completamente triviais, mas estou encontrando pessoas em empresas que usam apenas o VSCode e toda a sua ideia de "conflitos de mesclagem" é baseada no diff grosseiramente simplificado do VSCode. E quando eles têm um conflito de mesclagem não trivial, eles estão sempre "escolhendo um lado" (basicamente descartando as alterações de alguém em algumas linhas em vez de combiná-las) pelo menos uma vez.

Precisamos de uma interface do tipo fusão no VSCode não apenas porque é legal, mas porque sem ela estamos incentivando práticas ruins em desenvolvedores mais jovens.

Não são apenas "desenvolvedores mais jovens". Eu tenho codificação por 20 anos e uma mesclagem de 3 painéis é simplesmente melhor. Você vai cometer erros com um diff em linha que você teria pego se você pudesse ver a totalidade de cada versão do código de uma só vez.

Eu gostaria de ver três painéis com diferenças em relação ao commit base em cada painel. Isso tornaria mais fácil ver o que mudou onde e quais mudanças manter e não.

@lig Eu só quero explicar por que as pessoas pedem para integrar a ferramenta de mesclagem ao vscode
Porque eles gostam de vscode e não gostam de outras ferramentas. Mesclar também é editar. E você deseja editar arquivos em seu adorável editor, mesmo que a edição faça parte do processo de mesclagem

Porque o VSCode é mais do que um editor de texto glorificado. É um IDE com linter e intellisense. Ele até analisa meu código Python para variáveis ​​indefinidas. E acho muito útil ao mesclar para poder ver, em tempo real, as dicas que o linter+intellisense+etc. oferece quando escolho quais linhas aceitar.

Usar uma ferramenta de mesclagem "burra" torna mais difícil encontrar erros na mesclagem e até mesmo corrigi-los após a mesclagem e voltar ao VSC.

Esta é uma das 2 ou 3 coisas que me impedem de voltar ao VS Code

Isso está no roteiro de 2020-

Fornecer suporte completo para mesclagem (3 vias)

Veja- https://github.com/microsoft/vscode/wiki/Roadmap#scm

Acabei de lançar minha extensão VS Code como Git Mergetool . Não é tão rico em recursos quanto outros editores de conflito de mesclagem, mas deve ser utilizável. Como padrão, configurei um layout de 4 painéis que achei mais prático do que o layout clássico de 3 colunas. Atento ao feedback!

Ele ainda não está disponível no Marketplace, então você precisa baixá-lo do GitHub e instalá-lo manualmente. no Marketplace ._

Olá @zawys ,

Ele suporta comparar as 3 ou 4 pastas que vou mesclar os arquivos oprhan?

Olá @gusbemacbe ,

Em seu estado atual, a extensão foi pensada principalmente como uma ferramenta de mesclagem de arquivos "3-way" que se encaixa na interface de git mergetool . Este ainda é o objetivo principal. No entanto, estou planejando estender a funcionalidade para que nenhum processo git-mergetool precise ser executado, pois esse pequeno script de shell tem algumas deficiências de UX. Em vez disso, quero integrar mais a extensão com o VS Code.

Nesse processo, vou clonar algumas das funcionalidades do git-mergetool, por exemplo, resolver conflitos de exclusão e mesclagem de links simbólicos. Não tenho certeza até que ponto isso cobre seu caso de uso. Talvez eu também possa adicionar, por exemplo, um comando accept-all-incoming-in-folder. Por favor, abra um problema para
a extensão para discutir mais.

Minha extensão agora pode ser encontrada no Marketplace .

Minha extensão agora pode ser encontrada no Marketplace .

202010-04_0859_27__

@InLaw Você precisa atualizar seu VS Code para usar a extensão. Para uma discussão mais aprofundada, crie um relatório de bug no site da extensão .

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