Vscode: Git : Utiliser VS Code comme éditeur de fusion

Créé le 25 avr. 2016  ·  96Commentaires  ·  Source: microsoft/vscode

1.0.0 a introduit la possibilité d'utiliser VS Code en tant qu'outil de différenciation git. Les lignes .gitconfig globales pertinentes sont les suivantes :

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

Comment puis-je utiliser VS Code comme outil de fusion git ?

Les arguments pertinents qu'il doit accepter, je crois, sont $LOCAL , $REMOTE , $BASE et $MERGED .

feature-request git

Commentaire le plus utile

Nous ne voudrions pas qu'il en soit autrement. 😉

Tous les 96 commentaires

Pas encore pris en charge.

Cette fonctionnalité sera-t-elle incluse dans la prochaine itération, par hasard ?

Probablement pas, c'est un gros effort, car une interface utilisateur de fusion doit être implémentée.

Est-il prévu que l'interface utilisateur de fusion prenne en charge la fusion à trois ? (par exemple changer a, changer b, ancêtre commun)

Nous ne voudrions pas qu'il en soit autrement. 😉

Je ne peux pas assez voter pour celui-ci. C'est le meilleur scénario pour moi de me rabattre sur un autre éditeur/IDE ( toux * memory-hog Webstorm * toux ) :)

Si possible, ce serait une aubaine, pour plusieurs raisons :

  1. Meld, bien que fonctionnel, manque cruellement de fonctionnalités en ce qui concerne les raccourcis clavier configurables et la mise en évidence des couleurs, et est vraiment _ vraiment _ lent à démarrer sur ma machine Windows, même lorsqu'il est installé sur un SSD.
  2. J'aimerais que l'éditeur de fusion accepte également le même .editorconfig/settings que celui de mon éditeur de texte principal, et si vscode comble cette lacune, ce serait génial.
  3. À des niveaux plus petits, le thème de l'éditeur et la familiarité avec l'interface sont également un plus - parfois, moi ou mon équipe faisons des erreurs lors de la fusion en raison de l'absence de coloration syntaxique, ce qui, bien que petit, a causé d'énormes bogues dans les systèmes de production. Et certaines de ces erreurs sont plutôt difficiles à comprendre jusqu'à ce qu'elles se produisent. _Je suppose qu'il y aurait toujours des problèmes similaires avec mergetools_, mais peut-être qu'ils seront réduits si l'on pouvait fusionner dans le même environnement dans lequel on écrit.

Comme je l'ai dit, la fusion est _ok_, mais ce serait super si vscode était un jour utilisé dans ce scénario.

Visual Studio a toujours été ma fusion de code de choix. J'adorerais voir cette fonctionnalité !

Pas de problème pour utiliser un autre outil de fusion git, mais j'aimerais vraiment voir sa propre interface utilisateur de fusion se produire très bientôt !!

😐 moi.

Je m'attends à ces fonctionnalités dans les IDE lourds. Dans la classe des éditeurs légers de vscode (dans laquelle je considérerais atom, sublime, etc.), je ne le fais pas. Pour les activités liées à git, je privilégie un terminal et vim pour la résolution des conflits. La foule de l'interface graphique a déjà de grands uni-taskers comme meld, diffmerge, kaléidoscope, etc.

@kumarharsh c'est un bon point sur les commentaires immédiats (par exemple; linting.) En suivant la voie vim ci-dessus, je suppose que vous pouvez définir l'éditeur externe par défaut de git sur vscode ... cela pourrait être pénible de fournir un contexte au linting spécifique au projet / règles de syntaxe/etc.

+1

cette fonctionnalité peut-elle être implémentée en tant qu'extension de vscode ? ou n'importe quel poste existant recommandé.

Je ne pense pas, car je peux voir que les extensions ne sont pas autorisées à créer des fonctionnalités d'interface utilisateur

Enviado do meu telefone Windows 10

De: Tank Sui
Envié:quarta-feira , 7 décembre 2016 10:41
Par: Microsoft/vscode
Cc:Herbert Pimentel; Commenter
Assunto : Re : [Microsoft/vscode] Utilisation de VS Code comme outil de fusion git (#5770)

cette fonctionnalité peut-elle être implémentée en tant qu'extension de vscode ? ou n'importe quel poste existant recommandé.

Vous recevez ceci parce que vous avez commenté.
Répondez directement à cet e-mail, consultez-le sur GitHub ou désactivez le fil de discussion.

Le plugin peut fournir des fonctionnalités d'interface utilisateur : consultez l'historique de Git. Il rend une vue Web, qui peut "potentiellement" être utilisée comme outil de fusion. Mais je pense qu'il sera très difficile pour un plugin de le faire sans un certain niveau de support par vscode lui-même.

Le problème principal avec les outils de kaléidoscope, de fusion, etc. est dans un cas d'utilisation très typique :
Modifier le résultat lors de la fusion. Comme, vous savez : acceptez cette ligne à partir de la gauche, acceptez cette ligne à partir de la droite, et aussi, ajoutez ce petit correctif pour qu'ils puissent tous les deux travailler ensemble.
Captain evident rapporte : Les outils de fusion sont bons pour la fusion :D
Mais l'édition à l'aide de ie meld est totalement pénible, surtout lorsque vous vous habituez à un outil aussi pratique que vscode. C'est pourquoi la plupart des développeurs souhaitent intégrer l'outil de fusion dans leur éditeur.

L'interface utilisateur de fusion à 4 volets et à 3 voies de P4merge est excellente.
http://naleid.com/blog/2013/10/29/how-to-use-p4merge-as-a-3-way-merge-tool-with-git-and-tower-dot-app

nous permettre de voir le diff (fonctionnalités incroyablement utiles dans un éditeur) mais ne pas nous donner un moyen de fusionner est très décevant

Une extension VS Code serait parfaite pour fusionner les conflits.

+1

Le résolveur de conflits côte à côte Git ne fonctionne pas dans le dernier code VS.

Édition 1.10.2
Commettre 8076a19fdcab7e1fc1707952d652f0bb6c6db331
Date 2017-03-08T14:02:52.799Z
Coque 1.4.6
Rendu 53.0.2785.143
Noeud 6.5.0

J'aimerais vraiment pouvoir modifier le code lors de la fusion tout en utilisant mon éditeur de code (vscode), plutôt que d'avoir à utiliser un autre éditeur.

Il s'agit d'une fonctionnalité "indispensable" pour pouvoir passer complètement à VSCode lorsque vous travaillez dans des projets de développement Agile. Un outil de fusion intégré est un énorme gain de temps sans que la fonctionnalité git soit juste incomplète. J'espère que nous pourrons l'avoir bientôt.

+1

j'ai besoin de l'outil de fusion

Je peux recommander l'extension "meilleure fusion" pour l'instant...

Oui, c'est ce que je l'utilise maintenant, et plutôt bien !

Par conséquent, ce problème, je pense, peut être fermé?
Le dimanche 30 avril 2017 à 16h58, Ali Robertson [email protected]
a écrit:

Je peux recommander l'extension "meilleure fusion" pour l'instant...


Vous recevez ceci parce que vous avez commenté.
Répondez directement à cet e-mail, consultez-le sur GitHub
https://github.com/Microsoft/vscode/issues/5770#issuecomment-298222866 ,
ou couper le fil
https://github.com/notifications/unsubscribe-auth/AAU8Q2JVio1PlIvEb8S1zg2cf5tzxxciks5r1Fs9gaJpZM4IPCMA
.

>

Envoyé depuis l'iPhone

@alirobe mieux fusionner n'a pas trois fenêtres de version comme fusionner
On dirait que vsc n'a que trois fenêtres, mais personne n'implémente un outil de fusion ?

Salut @nchammas , @joaomoreno et tous les autres intéressés,
Aujourd'hui, j'ai configuré en utilisant VS Code comme mon git mergetool et je l'ai expliqué sur StackOverflow : Comment utiliser Visual Studio Code comme éditeur par défaut pour Git MergeTool (il l'explique avec plus de détails, alors vérifiez-le !).

Voici la version rapide :
Vous pouvez modifier votre .gitconfig directement et le coller

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

ou depuis la ligne de commande entrez

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

Ensuite, utilisez git mergetool depuis le répertoire git avec le conflit de fusion, et ta-da 😄 !

Vous devriez voir une ligne indiquant Accept Current Change | Accepter les deux modifications |

Assurez-vous simplement d' enregistrer votre fichier avant de fermer VS Code !

J'aime le fait qu'il ait l'objectif de code "Accepter le changement actuel | Accepter le changement entrant | Accepter les deux changements | Comparer les changements", et j'aime le diff côte à côte lorsque vous cliquez sur "Comparer les changements", mais cela ne me laisse rien modifier en ligne, ou avec comme un troisième panneau combiné que vous voyez dans l'outil de fusion de Visual Studio ou d'autres outils comme Meld, Winmerge ou Beyond Compare. J'aimerais voir ce troisième panneau dans la comparaison côte à côte afin que je puisse faire plus de fusions personnalisées.

@jaxspades , FWIW, ce que je fais quand j'ai besoin de faire de la personnalisation, c'est Accepter les deux, puis éditer. Jusqu'à présent, cela a assez bien fonctionné, même si je n'ai pas encore eu de fusions particulièrement poilues à l'aide de cela.

Le "vrai" Visual Studio agit comme un excellent outil de fusion, FWIW. J'aimerais voir cette fonctionnalité dans VS Code.

+1 à @zneak

La prise actuelle de ce bloc ou de ce bloc est terrible et fait perdre beaucoup de temps, de refactorisation et d'erreurs. J'aimerais avoir la possibilité de choisir ligne par ligne comme VS.

Les faux positifs sur les modifications de fichiers sont également un problème lors du rebondissement entre les branches.

J'adore l'outil, ce domaine manque juste.

Bonjour
dans VScode doit être l'outil de fusion par défaut.
Nous avons un outil de comparaison sympa, et vsc peut se diviser en trois parties, donc... il suffit de l'implémenter.
Nous pourrions l'implémenter par communauté avec ext, mais nous n'avons pas le droit de modifier l'interface utilisateur. Nous ne pouvons pas créer de boutons personnalisés dans l'interface utilisateur, alors aidez-nous

J'utilise kdiff3 sous Windows et Mac par défaut git mergetool . Il a une fusion à 3 voies à 4 vues, une très bonne résolution automatique, et il est gratuit et multiplateforme.

En mai, une meilleure fusion a été intégrée. Cela a effectivement résolu le problème en ajoutant une interface utilisateur de fusion.
https://code.visualstudio.com/updates/v1_13

Ericop a fourni des instructions sur la configuration de vscode pour utiliser l'interface "meilleure fusion" comme outil de fusion ci-dessus.

Ce problème devrait donc être clos, résolu.

@alirobe Je ne pense pas que cette fusion soit bonne, peut-être que cela peut ressembler à une fusion, trois éditeurs montrent LOCAL, BASE, REMOTE

@zjjott compréhensible, je suggérerais d'ouvrir un nouveau problème demandant une amélioration spécifique de la fonctionnalité existante, et d'y faire référence ici.

C'est l'une des meilleures extensions que j'ai jamais utilisées https://marketplace.visualstudio.com/items?itemName=letmaik.git-tree-compare#review -details

@joaomoreno Suite à votre commentaire, allons-nous voir une fusion à 3 voies à l'avenir ?

@zjjott kdiff3 le fait très bien (vues locales, de base, distantes et de résultats). Je ne sais vraiment pas pourquoi les gens ont besoin / désirent des fonctionnalités supplémentaires dans vscode alors que cet outil multiplateforme existant est déjà si génial.

@RoyTinker parce que je ne fais généralement pas que "fusionner". Vous devez éditer quelque chose (lorsque des conflits se produisent) et lorsque vous éditez quelque chose, vous voulez que vous soyez le meilleur éditeur de tous les temps, pas quelque chose que kdiff3 a (c'est ok mais vscode est bien meilleur)

Pourquoi ne pas parler avec @eamodio et importer son travail génial sur GitLens pour VSCode ?
J'en suis extrêmement satisfait, en particulier lors de la navigation dans un fichier en conflit, lorsque j'ai des modifications des deux flux dans une seule vue et que je peux accepter la modification actuelle, la modification entrante, les deux modifications ou même les modifier en une seule fois.
C'est assez proche de l'idéal, seulement parfois ça devient fou avec les fins de ligne sous Windows, alors il n'y a que Visual Studio complet à la rescousse.
Sinon, la meilleure expérience d'interface graphique git de l'IDE que j'aie jamais eue.

@m-wilczynski Bien que j'apprécie vraiment les aimables paroles - la prise en charge des conflits de fusion ne fait pas partie de GitLens - elle est intégrée directement dans vscode lui-même (c'était à l'origine une autre extension qui a été introduite dans le noyau)

@eamodio - sry, je ne savais pas. 😄 Cela ne change rien au fait que pour moi (et la plupart de mes collègues qui utilisent VSCode @ work en raison de ma recommandation) VS Code est inutile pour travailler avec git sans GitLens.
Avec GitLens, j'ai hâte d'ouvrir VSCode même si je ne code pas dedans (principalement en l'utilisant pour TypeScript et JavaScript) juste pour voir clairement ce qui se passe dans cette fusion.
Tout est question d'expérience utilisateur.
Même si VSCode avait tout inclus et que vous n'aviez qu'à le visualiser correctement, vous êtes le seul à blâmer pour mon incroyable expérience utilisateur. 😉

@m-wilczynski Très humble. Merci - j'apprécie grandement les aimables paroles !

Cela fait deux ans maintenant ... et à mon humble avis, c'est toujours l'une des fonctionnalités manquantes les plus évidentes à ce stade. J'adorerais faire de VSCode mon outil de fusion.

@tracker1 Ce problème est techniquement résolu : https://github.com/Microsoft/vscode/issues/5770#issuecomment -308533904. Je ne sais pas pourquoi il n'a toujours pas été fermé.

@joaomoreno ce problème peut-il être clos ?

Je pense que la raison pour laquelle il est toujours ouvert (et aussi pourquoi je le regarde toujours) est que les gens recherchent une capacité de fusion à trois voies côte à côte dans vscode. Par exemple, j'utilise actuellement meld ( exemple de capture d'écran).

Oui et nous avons des scénarios lorsque git a un conflit (renommer/renommer) et que le fichier $MERGED est vide et qu'il reste nécessaire de modifier la commande diff $LOCAL $REMOTE, j'utilise cette cmd ci-dessous pour ce problème

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

Mais ceux-ci peuvent être transformés en problèmes distincts - le travail principal de ce problème particulier est effectué à l'OMI.

Peut-être que ce qui est montré dans # 5770 fonctionne bien pour de petits changements, mais c'est une mauvaise expérience pour des changements importants et vous avez vraiment besoin d'une expérience à 3 ou 4 volets pour le faire correctement.

J'utilise actuellement Visual Studio (propre) comme outil MERGE/DIFF et MELD lorsque Visual Studio (propre) n'est pas installé. Ceux-ci font le travail, mais ce serait formidable de pouvoir éditer le code avec le même outil qui a été utilisé pour l'écrire dans le premier palais.

S'ils veulent le fermer, c'est bien, car il _peut_ être utilisé comme outil de fusion, mais nous devrions alors avoir un problème immédiatement créé pour capturer la capacité de différence à trois voies côte à côte.

Maintenant, vscode a la possibilité d'avoir plus de deux fenêtres visibles. (à partir de la v1.24.0). Je n'ai pas essayé moi-même une fusion à 3 voies, mais cela devrait certainement être une possibilité maintenant

C'est certainement le plus gros défaut de cet incroyable éditeur

La fusion à trois est un must. La façon actuelle d'effectuer git merge est très grossière à l'usage.

Veuillez ajouter une fusion à trois voies

@michaelKurowski Oui, récemment, j'ai entendu des collègues se plaindre des capacités de fusion de VScode, mais je n'ai pas plongé dans les détails. Donc bref si cet aspect peut être amélioré, ça ferait du bien à vscode.

Veuillez ajouter une fusion à trois voies

Je ne suis pas sûr de bien comprendre. Les gens ici semblent demander une fusion à trois, mais il semble que VSCode ait déjà une fusion à trois, comme dans cette capture d'écran.

image

Cependant, si je comprends bien, il n'y a aucun moyen d'invoquer la fusion à trois depuis la ligne de commande. Comme mentionné dans la publication initiale, cela impliquerait un moyen d'invoquer avec quatre arguments sur la ligne de commande : le fichier de base, les deux versions révisées différentes et le chemin d'accès pour écrire le résultat final fusionné.

Dans mon cas, je souhaite utiliser VSCode comme outil de fusion avec Perforce et non Git, mais en supposant que VSCode accepte ces quatre noms de fichiers sur la ligne de commande, peu importe le logiciel de contrôle source que vous utilisez, le concept de fusion est le même.

Ce problème devrait-il être appelé quelque chose comme "Ajouter une option de ligne de commande pour invoquer la fonctionnalité de fusion à 3 voies existante", ou y a-t-il quelque chose que je comprends mal à propos de l'implémentation actuelle de la fusion dans VSCode, en plus du manque d'utilisation de la ligne de commande, qui le rend inadapté pour les fusions à trois voies de git ?

Je ne suis pas sûr de bien comprendre. Les gens ici semblent demander une fusion à trois, mais il semble que VSCode ait déjà une fusion à trois, comme dans cette capture d'écran.

image

Cependant, si je comprends bien, il n'y a aucun moyen d'invoquer la fusion à trois depuis la ligne de commande. Comme mentionné dans la publication initiale, cela impliquerait un moyen d'invoquer avec quatre arguments sur la ligne de commande : le fichier de base, les deux versions révisées différentes et le chemin d'accès pour écrire le résultat final fusionné.

Dans mon cas, je souhaite utiliser VSCode comme outil de fusion avec Perforce et non Git, mais en supposant que VSCode accepte ces quatre noms de fichiers sur la ligne de commande, peu importe le logiciel de contrôle source que vous utilisez, le concept de fusion est le même.

Ce problème devrait-il être appelé quelque chose comme "Ajouter une option de ligne de commande pour invoquer la fonctionnalité de fusion à 3 voies existante", ou y a-t-il quelque chose que je comprends mal à propos de l'implémentation actuelle de la fusion dans VSCode, en plus du manque d'utilisation de la ligne de commande, qui le rend inadapté pour les fusions à trois voies de git ?

Je crois qu'ils aimeraient voir quelque chose comme ça :
https://user-images.githubusercontent.com/1470309/32250860-c677e4ce-bec0-11e7-82b5-0196d981cc28.png

@michaelKurowski je vois. Peut-être y a-t-il alors deux problèmes distincts,

  • La visualisation des fusions à trois voies. (l'implémentation actuelle affiche les fusions en ligne, alors que certaines personnes demandent une vue à trois colonnes)
  • La possibilité d'utiliser VSCode comme un outil de fusion à 3 voies appelé à partir de la ligne de commande. (ce qui nécessiterait une option de ligne de commande similaire à l'actuel --diff file1 file2 mais avec un support de fusion, par exemple --merge basefile revision1file revision2file mergedfile

Mon impression est que l'affiche originale demandait quelque chose de plus comme ce dernier (ce qui semble facile à mettre en œuvre en utilisant la visualisation actuelle) alors que la demande d'une visualisation à trois colonnes de la fusion est un peu plus une demande compliquée et ouverte et peut-être que la confusion entre ces deux demandes distinctes est à l'origine de ce problème?

Ok merci pour la clarification @uglycoyote & @michaelKurowski , donc à votre avis devrions-nous créer un nouveau problème/demande de fonctionnalité dédié à la vue diff à trois colonnes ?

Ce serait bien si @joaomoreno pouvait commenter la question de @JeanPerriault et ma suggestion quant à savoir si ce problème devrait être divisé en deux, car il semble faire partie de l'équipe VSCode. Mais à en juger par ses réponses précédentes de "une interface utilisateur de fusion doit être implémentée" et "nous ne l'aurions pas autrement (qu'une fusion à trois voies)", il semble qu'il voit les deux problèmes que je mentionnais comme une chose.

@joaomoreno , ne serait-il pas logique d'abord, à court terme, d'implémenter une option de ligne de commande pour exposer le comportement de fusion existant ? Personnellement, je serais d'accord avec l'utilisation de la fusion en ligne actuelle et je ne trouve pas qu'une vue à 3 colonnes soit essentielle (bien que cela puisse être agréable). Mais si accrocher la fusion existante à la ligne de commande est une tâche facile, je ne voudrais pas qu'elle soit bloquée indéfiniment par le manque de volonté de l'équipe VSCode d'implémenter une visualisation de fusion à 3 voies plus sophistiquée.

oui, donnez-nous une vue/éditeur visuel de fusion comme http://meldmerge.org/

WinMerge fonctionne comme un chef
after-3way-merge

oui, donnez-nous une vue/éditeur visuel de fusion comme http://meldmerge.org/

J'utilise Meld et bien que j'aimerais voir VSCode faire de même, je ne vois aucun problème à utiliser Meld pour cela, honnêtement.

@lig pourquoi dois-je alors utiliser vscode pour l'édition? Je peux juste utiliser le bloc-notes

@josser utilise simplement l'outil qui correspond le mieux à votre tâche actuelle. Je pense que cette guerre sainte est hors sujet d'ailleurs.

@lig Je veux juste expliquer pourquoi les gens demandent d'intégrer l'outil de fusion dans vscode
Parce qu'ils aiment vscode et n'aiment pas les autres outils. Fusionner c'est aussi éditer. Et vous voulez éditer des fichiers dans votre bel éditeur même si l'édition fait partie du processus de fusion

Jetez un œil à ce commentaire : https://github.com/Microsoft/vscode/issues/5770#issuecomment -265497516

@josser comme mentionné précédemment dans ce fil plusieurs fois, la demande d'origine peut être effectuée en configurant git pour utiliser VSCode comme outil de fusion et en exécutant git mergetool pendant les conflits, ce qui ouvre le flux de fusion VSCode qui fonctionne bien pour moi et les autres utilisateurs.

Si vous souhaitez voir une interface de type Meld lorsque vous utilisez VSCode en tant qu'outil de fusion, _veuillez créer une demande de fonctionnalité distincte dans un problème séparé_ afin que nous puissions arrêter de spammer ce fil pour ce qui est essentiellement _une demande de fonctionnalité sans rapport_.

@lig Je veux juste expliquer pourquoi les gens demandent d'intégrer l'outil de fusion dans vscode
Parce qu'ils aiment vscode et n'aiment pas les autres outils. Fusionner c'est aussi éditer. Et vous voulez éditer des fichiers dans votre bel éditeur même si l'édition fait partie du processus de fusion

Jetez un oeil à ce commentaire : #5770 (commentaire)

Simple et facile ! C'est exactement ce que les gens veulent. Pourquoi est-ce si difficile à comprendre ? Je commence un diff et la prochaine étape est la fusion. Cela va ensemble et toute séparation est totalement contraire à un bon flux de travail et ne coûte que du temps. Je souhaite utiliser l'éditeur de code Visual Studio et aucun outil externe.

J'aimerais aussi que VS Code soit utilisable comme éditeur de fusion à trois voies. Acceptez ou refusez les modifications de gauche ou de droite et modifiez le résultat avant de valider les modifications. Cela améliorerait tellement VSCode. Cela n'a vraiment aucun sens d'utiliser autant de fonctionnalités puissantes de git, sauf l'une des plus importantes : la fusion.

Faites comme JetBrains. (https://github.com/Microsoft/vscode/issues/37350)

Et honnêtement, la fusion de la fusion a l'air plutôt moche. C'est de 2012, non ? Et on dirait que ça date de 2003. Pourquoi devrais-je voyager dans le temps à chaque fois que je veux faire la fusion à 3 ?

Un nouveau problème a été créé pour avoir les vues de fusion à trois voies : https://github.com/Microsoft/vscode/issues/37350

Quelqu'un a pris le temps d'ouvrir un problème séparé pour l'interface utilisateur de fusion à trois voies (comme recommandé ici) avec une belle maquette, pour le fermer immédiatement. =(

@mofahead , il semble que celui que j'ai créé était un doublon de # 37350 .. bien que la clôture ait mentionné ce problème.

Ce serait bien d'avoir le https://github.com/Microsoft/vscode/issues/8226 amélioré avant de l'activer en tant qu'éditeur de fusion

Salut tout le monde!

Vous pouvez suivre le tutoriel pour configurer VSCode en tant que git.mergetool officiel :

https://stackoverflow.com/a/44549734

Il semble qu'il y ait une certaine confusion ici avec des personnes mentionnant à la fois les aspects de l'interface utilisateur et la fonctionnalité de fusion. Pour moi, le plus grand tueur de productivité aujourd'hui dans VSCode est le fait que la fusion fonctionne verticalement au lieu de côte à côte.

Honnêtement, je ne comprends pas comment cela peut même être considéré à distance comme une interface utilisateur acceptable pour cette fonctionnalité. Inutile.

Pour ceux qui ont un Mac, voici une solution de contournement.

  • Installer Diffmerge
  • Installer VSCode Git Diff et l'outil de fusion
  • Modifier ~/.gitconfig
    ajouter
[diff]
        tool = diffmerge
[difftool "diffmerge"]
        cmd = diffmerge \"$LOCAL\" \"$REMOTE\"
[merge]
        tool = diffmerge
[mergetool "diffmerge"]
        cmd = diffmerge -merge \"$LOCAL\" \"$BASE\" \"$REMOTE\"
        trustexitcode = true
        keepbackup = false
  • Dans VSCode, allez dans Source Control, faites un clic droit sur le fichier et sélectionnez Launch merge tool

La seule chose est que je ne peux pas fusionner automatiquement les fichiers avec VSCode dans tous les scénarios.

J'utilise diffmerge depuis de nombreuses années sur Mac et Windows. Je suis passé à Sublime Merge il y a quelques mois. Je l'aime vraiment, vraiment. C'est rapide, c'est moderne. Je l'utilise également sous Windows au lieu de Visual Studio lorsque j'ai besoin de travailler dans cet environnement.

retour à emacs pour différencier et fusionner des répertoires non contrôlés par VCS :(

VS Code a un joli plugin L13D pour comparer les répertoires (par exemple, les répertoires de configuration entre un ordinateur source et un ordinateur de destination), mais vous ne pouvez pas fusionner sans git ou un autre contrôle de version.

Donc, c'est diff-directories à emacs de créer une session, puis de fusionner ce que je veux de manière sélective, pour cette tâche. J'essaie de quitter emacs, mais je trouve toujours la chose occasionnelle qu'il peut faire, ce que Code ne peut pas faire.

VS Code a un joli plugin L13D pour comparer les répertoires (par exemple, les répertoires de configuration entre un ordinateur source et un ordinateur de destination), mais vous ne pouvez pas fusionner sans git ou un autre contrôle de version.

As-tu un lien vers L13D ?

Je ne suis pas sûr de bien comprendre. Les gens ici semblent demander une fusion à trois, mais il semble que VSCode ait déjà une fusion à trois, comme dans cette capture d'écran.

image

Cela fonctionne pour des conflits de fusion complètement triviaux, mais je rencontre des gens dans des entreprises qui n'utilisent que VSCode et toute leur idée de "conflits de fusion" est basée sur le diff grossièrement simplifié de VSCode. Et lorsqu'ils ont un conflit de fusion non trivial, ils "choisissent toujours un côté" (en gros, abandonnent les modifications de quelqu'un sur quelques lignes au lieu de les combiner) au moins une fois.

Nous avons besoin d'une interface de type fusion dans VSCode non seulement parce que c'est cool, mais parce que sans elle, nous encourageons les mauvaises pratiques chez les jeunes développeurs.

Il ne s'agit pas seulement de "jeunes développeurs". Je code depuis 20 ans et une fusion à 3 volets est tout simplement meilleure. Vous ferez des erreurs avec un diff en ligne que vous auriez attrapées si vous pouviez voir l'intégralité de chaque version du code à la fois.

J'aimerais voir trois volets avec des différences par rapport au commit de base dans chaque volet. Cela permettrait de voir facilement ce qui a changé où et quels changements conserver et non.

@lig Je veux juste expliquer pourquoi les gens demandent d'intégrer l'outil de fusion dans vscode
Parce qu'ils aiment vscode et n'aiment pas les autres outils. Fusionner c'est aussi éditer. Et vous voulez éditer des fichiers dans votre bel éditeur même si l'édition fait partie du processus de fusion

Parce que VSCode est plus qu'un éditeur de texte glorifié. C'est un IDE avec linter et intellisense. Il analyse même mon code Python pour les variables indéfinies. Et je trouve très utile lors de la fusion de pouvoir voir, en temps réel, les indices que linter+intellisense+etc. offres lorsque je choisis les lignes à accepter.

L'utilisation d'un outil de fusion "stupide" rend plus difficile la recherche d'erreurs dans la fusion et même la correction après la fusion et le retour à VSC.

C'est l'une des 2 ou 3 choses qui m'empêchent de revenir à VS Code

C'est dans la feuille de route 2020-

Fournir une prise en charge complète de la fusion (3 voies)

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

Je viens de publier mon extension VS Code en tant que Git Mergetool . Il n'est pas aussi riche en fonctionnalités que les autres éditeurs de conflits de fusion mais devrait être utilisable. Par défaut, j'ai configuré une disposition à 4 volets que j'ai trouvée plus pratique que la disposition classique à 3 colonnes. Attention aux retours !

Il n'est pas encore disponible sur le Marketplace, vous devez donc le télécharger depuis GitHub et l'installer manuellement. sur la Marketplace ._

Bonjour @zawys ,

Prend-il en charge la comparaison des 3 ou 4 dossiers que je fusionnerai avec les fichiers oprhan ?

Salut @gusbemacbe ,

Dans son état actuel, l'extension était principalement conçue comme un outil de fusion de fichiers "3 voies" s'intégrant dans l'interface de git mergetool . C'est toujours l'objectif premier. Cependant, je prévois d'étendre la fonctionnalité afin qu'aucun processus git-mergetool ne soit exécuté car ce petit script shell a ses propres lacunes UX. Au lieu de cela, je souhaite intégrer davantage l'extension à VS Code.

Dans ce processus, je clonerai certaines des fonctionnalités de git-mergetool, par exemple la résolution des conflits de suppression et de fusion de liens symboliques. Je ne sais pas dans quelle mesure cela couvre votre cas d'utilisation. Peut-être que je pourrais aussi ajouter, par exemple, une commande accept-all-incoming-in-folder. Veuillez ouvrir un problème pour
l'extension à discuter plus loin.

Mon extension est désormais disponible sur la Marketplace .

Mon extension est désormais disponible sur la Marketplace .

202010-04_0859_27__

@InLaw Vous devez mettre à jour votre code VS pour utiliser l'extension. Pour plus de détails, veuillez créer un rapport de bogue sur le site de l'extension .

Cette page vous a été utile?
0 / 5 - 0 notes