Vscode: Git: Verwenden Sie VS Code als Merge-Editor

Erstellt am 25. Apr. 2016  ·  96Kommentare  ·  Quelle: microsoft/vscode

1.0.0 führte die Möglichkeit ein, VS Code als Git-Difftool zu verwenden. Die relevanten globalen .gitconfig -Zeilen lauten wie folgt:

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

Wie kann ich VS Code als Git -Mergetool verwenden ?

Die relevanten Argumente, die es akzeptieren muss, sind meiner Meinung nach $LOCAL , $REMOTE , $BASE und $MERGED .

feature-request git

Hilfreichster Kommentar

Wir hätten es nicht anders. 😉

Alle 96 Kommentare

Noch nicht unterstützt.

Ist diese Funktion zufällig in der nächsten Iteration enthalten?

Wahrscheinlich nicht, das ist ein großer Aufwand, da eine Zusammenführungs-UI implementiert werden muss.

Ist geplant, dass die Zusammenführungs-UI die Drei-Wege-Zusammenführung unterstützt? (z. B. a ändern, b ändern, gemeinsamer Vorfahre)

Wir hätten es nicht anders. 😉

Kann dieses nicht genug hochstimmen. Dies ist das Top-Szenario für mich, um auf einen anderen Editor/eine andere IDE zurückzugreifen ( hust* Speicherfresser Webstorm *hust ) :)

Wenn möglich, wäre dies aus mehreren Gründen ein Glücksfall:

  1. Obwohl Meld funktionsfähig ist, fehlt es ihm stark an Funktionalität in Bezug auf konfigurierbare Tastenbelegungen und Farbhervorhebungen, und es ist wirklich _wirklich_ langsam, auf meinem Windows-Rechner zu starten, selbst wenn es auf einer SSD installiert ist.
  2. Ich möchte, dass der Merge-Editor auch die gleichen .editorconfig/settings akzeptiert, die mein Haupt-Texteditor hat, und wenn vscode diese Lücke füllt, wäre es großartig.
  3. Auf kleineren Ebenen sind das Editor-Design und die Vertrautheit mit der Benutzeroberfläche ebenfalls von Vorteil – manchmal machen ich oder mein Team beim Zusammenführen Fehler, weil keine Syntaxhervorhebung erfolgt, die zwar klein sind, aber in Produktionssystemen große Fehler verursacht haben. Und einige dieser Fehler sind ziemlich schwer zu ergründen, bis sie auftreten. _Ich schätze, es würde immer ähnliche Probleme mit Mergetools geben_, aber vielleicht werden sie reduziert, wenn man in der gleichen Umgebung zusammenführen könnte, in der man schreibt.

Wie gesagt, meld ist _ok_, aber es wäre super, wenn vscode eines Tages in diesem Szenario verwendet würde.

Visual Studio war schon immer meine bevorzugte Codezusammenführung. Würde gerne diese Funktion sehen!

Kein Problem bei der Verwendung eines anderen Git-Mergetools, aber ich würde wirklich gerne sehen, dass bald eine eigene Merge-UI erscheint!!

😐 äh.

Ich erwarte diese Funktionen in schweren IDEs. In der Klasse der leichten Editoren von vscode (in der ich Atom, Sublime usw. in Betracht ziehen würde) tue ich das nicht. Für Git-bezogene Aktivitäten bevorzuge ich ein Terminal und vim zur Konfliktlösung. Die GUI-Crowd hat bereits großartige Uni-Tasker wie meld, diffmerge, kaleidoscope usw.

@kumarharsh , das ist ein guter Punkt in Bezug auf sofortiges Feedback (z. B. Linting.) Wenn Sie den obigen vim-Weg gehen, können Sie vermutlich den externen Standardeditor von git auf vscode setzen ... obwohl es schwierig sein könnte, den Kontext für das projektspezifische Linting bereitzustellen / Syntax-/usw.-Regeln.

+1

Kann diese Funktion als Erweiterung von vscode implementiert werden? oder irgendein existiert ext empfohlen.

Ich glaube nicht, da ich sehen kann, dass Erweiterungen keine UI-Funktionen erstellen dürfen

Enviado do meu telefonieren Windows 10

De: Tank Sui
Enviado:quarta-feira , 7. Dezember 2016 10:41
Absatz: Microsoft/vscode
Cc:Herbert Pimentel; Kommentar
Assunto: Betreff: [Microsoft/vscode] Verwenden von VS Code als Git-Mergetool (#5770)

Kann diese Funktion als Erweiterung von vscode implementiert werden? oder irgendein existiert ext empfohlen.

Sie erhalten dies, weil Sie kommentiert haben.
Antworten Sie direkt auf diese E-Mail, zeigen Sie sie auf GitHub an oder schalten Sie den Thread stumm.

Das Plugin kann UI-Funktionen bereitstellen: siehe Git History. Es rendert eine Webansicht, die "potenziell" als Merge-Tool verwendet werden kann. Aber ich denke, es wird für ein Plugin sehr schwierig sein, dies ohne ein gewisses Maß an Unterstützung durch vscode selbst zu tun.

Das Hauptproblem bei Kaleidoskop-, Verschmelzungs- usw. Werkzeugen liegt in einem sehr typischen Anwendungsfall:
Ergebnis während der Zusammenführung bearbeiten. Wie Sie wissen: Akzeptieren Sie diese Zeile von links, akzeptieren Sie diese Zeile von rechts und fügen Sie außerdem diese kleine Korrektur hinzu, damit beide zusammenarbeiten können.
Kapitän Offensichtlich berichtet: Zusammenführungswerkzeuge sind gut beim Zusammenführen :D
Aber das Bearbeiten mit zB meld ist total mühsam, besonders wenn man sich an ein so praktisches Tool wie vscode gewöhnt hat. Aus diesem Grund möchten die meisten Entwickler, dass das Merge-Tool in ihren Editor integriert ist.

Die 4-Fenster-3-Wege-Zusammenführungs-Benutzeroberfläche von P4merge ist ausgezeichnet.
http://naleid.com/blog/2013/10/29/how-to-use-p4merge-as-a-3-way-merge-tool-with-git-and-tower-dot-app

Uns zu erlauben, den Unterschied zu sehen (unglaublich nützliche Funktionen in einem Editor), uns aber keine Möglichkeit zum Zusammenführen zu geben, ist sehr enttäuschend

Eine VS-Code-Erweiterung wäre perfekt zum Zusammenführen von Konflikten.

+1

Git Side-by-Side-Konfliktlöser funktioniert nicht im neuesten VS-Code.

Version 1.10.2
Commit 8076a19fdcab7e1fc1707952d652f0bb6c6db331
Datum 2017-03-08T14:02:52.799Z
Schale 1.4.6
Renderer 53.0.2785.143
Knoten 6.5.0

Ich würde wirklich gerne in der Lage sein, Code beim Zusammenführen mit meinem Code-Editor (vscode) zu bearbeiten, anstatt einen anderen Editor verwenden zu müssen.

Dies ist ein „Must Have“-Feature, um vollständig auf VSCode umsteigen zu können, wenn Sie in agilen Entwicklungsprojekten arbeiten. Ein integriertes Zusammenführungstool ist eine enorme Zeitersparnis, ohne dass das Git-Feature nur unvollständig ist. Ich hoffe, wir können das bald haben.

+1

Ich brauche das Mergetool

Ich kann die Erweiterung "Better Merge" vorerst empfehlen ...

Ja, das ist es, was ich jetzt benutze, und ziemlich ok!

Daher kann dieses Thema meiner Meinung nach geschlossen werden?
Am Sonntag, 30. April 2017 um 16:58 Uhr, Ali Robertson [email protected]
schrieb:

Ich kann die Erweiterung "Better Merge" vorerst empfehlen ...


Sie erhalten dies, weil Sie kommentiert haben.
Antworten Sie direkt auf diese E-Mail und zeigen Sie sie auf GitHub an
https://github.com/Microsoft/vscode/issues/5770#issuecomment-298222866 ,
oder den Thread stumm schalten
https://github.com/notifications/unsubscribe-auth/AAU8Q2JVio1PlIvEb8S1zg2cf5tzxxciks5r1Fs9gaJpZM4IPCMA
.

>

Vom iPhone gesendet

@alirobe better merge hat keine drei Versionsfenster wie meld
Scheint, als hätte vsc nur drei Fenster, aber niemand implementiert ein Zusammenführungstool?

Hallo @nchammas , @joaomoreno und alle anderen interessierten Leute,
Heute habe ich die Verwendung von VS-Code als mein git mergetool eingerichtet und es auf StackOverflow erklärt: How to use Visual Studio Code as Default Editor for Git MergeTool (es erklärt es ausführlicher, also schau es dir an!).

Hier die Speedversion:
Sie können Ihre .gitconfig direkt bearbeiten und einfügen

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

oder von der Befehlszeile eingeben

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

Verwenden Sie dann git mergetool aus dem Git-Verzeichnis mit dem Merge-Konflikt und ta-da 😄!

Sie sollten eine Zeile mit der Aufschrift Accept Current Change | sehen Akzeptiere beide Änderungen |

Stellen Sie einfach sicher, dass Sie Ihre Datei speichern, bevor Sie VS Code schließen!

Mir gefällt, dass es die Code-Linse "Aktuelle Änderung akzeptieren | Eingehende Änderung akzeptieren | Beide Änderungen akzeptieren | Änderungen vergleichen" hat, und ich liebe den Vergleich nebeneinander, wenn Sie auf "Änderungen vergleichen" klicken, aber ich kann nichts bearbeiten Inline oder mit einem dritten kombinierten Bedienfeld, das Sie im Zusammenführungstool von Visual Studio oder anderen Tools wie Meld, Winmerge oder Beyond Compare sehen. Ich würde gerne dieses dritte Panel im Side-by-Side-Vergleich sehen, damit ich mehr benutzerdefinierte Zusammenführungen vornehmen kann.

@jaxspades , FWIW, was ich mache, wenn ich benutzerdefinierte machen muss, ist beides zu akzeptieren und dann zu bearbeiten. Bisher hat das gut funktioniert, obwohl ich noch keine besonders haarigen Zusammenführungen damit hatte.

Das "echte" Visual Studio fungiert als großartiges Zusammenführungstool, FWIW. Ich würde diese Funktion gerne in VS Code sehen.

+1 an @zneak

Die aktuelle Version dieses oder jenes Blocks ist schrecklich und verschwendet viel Zeit, Refactoring und Fehler. Ich würde gerne die Möglichkeit haben, Zeile für Zeile wie VS auszuwählen.

False Positives bei Dateiänderungen sind ebenfalls ein Problem, wenn man zwischen Branches hin und her springt.

Ich liebe das Tool, dieser Bereich fehlt einfach.

Hallo
in VScode muss das Standard-Merge-Tool sein.
Wir haben ein cooles Diff-Tool, und vsc kann in drei Teile geteilt werden, also muss es nur implementiert werden.
Wir könnten es von der Community mit ext implementieren, aber wir dürfen die Benutzeroberfläche nicht ändern. Wir können keine benutzerdefinierten Schaltflächen in der Benutzeroberfläche erstellen, also helfen Sie uns

Ich verwende kdiff3 unter Windows und Mac als Standard git mergetool . Es hat eine 4-Ansichten-3-Wege-Zusammenführung, eine sehr gute automatische Auflösung und ist kostenlos und plattformübergreifend.

Im Mai wurde better merge integriert. Dadurch wurde das Problem effektiv gelöst, indem eine Merge-UI hinzugefügt wurde.
https://code.visualstudio.com/updates/v1_13

Ericop hat Anweisungen zur Konfiguration von vscode bereitgestellt, um die Schnittstelle „Better Merge“ oben als Mergetool zu verwenden .

Dieses Thema sollte daher geschlossen und behoben werden.

@alirobe Ich denke nicht, dass diese Zusammenführung gut ist, vielleicht kann es wie meld erscheinen, drei Editoren zeigen LOCAL, BASE, REMOTE

@zjjott verständlich, ich würde vorschlagen, ein neues Problem zu eröffnen, in dem eine bestimmte Verbesserung der vorhandenen Funktion angefordert wird, und hier darauf zu verweisen.

Dies ist eine der besten Erweiterungen, die ich je verwendet habe https://marketplace.visualstudio.com/items?itemName=letmaik.git-tree-compare#review -details

@joaomoreno Werden wir nach Ihrem Kommentar in Zukunft eine 3-Wege-Merge sehen?

@zjjott kdiff3 macht das wirklich gut (lokale, Basis-, Remote- und Ergebnisansichten). Ich bin mir wirklich nicht sicher, warum Leute zusätzliche Funktionen in vscode brauchen / wünschen, wenn dieses vorhandene plattformübergreifende Tool bereits so großartig ist.

@RoyTinker, weil ich normalerweise nicht nur "verschmelzen" mache. Sie müssen etwas bearbeiten (wenn einige Konflikte auftreten) und wenn Sie etwas bearbeiten, möchten Sie den besten Editor aller Zeiten, nicht etwas, das kdiff3 hat (es ist in Ordnung, aber vscode ist viel besser).

Warum sprichst du nicht mit @eamodio und importierst seine großartige Arbeit auf GitLens für VSCode ?
Ich bin sehr zufrieden damit, besonders beim Durchsuchen von Konfliktdateien, wenn ich Änderungen aus beiden Streams in einer Ansicht habe und aktuelle Änderungen, eingehende Änderungen, beide Änderungen akzeptieren oder sogar auf einmal bearbeiten kann.
Es ist ziemlich nah am Ideal, nur manchmal geht es mit Zeilenenden unter Windows durch, dann hilft nur noch das vollständige Visual Studio.
Ansonsten beste Git-GUI-Erfahrung von IDE, die ich je hatte.

@m-wilczynski Obwohl ich die freundlichen Worte sehr schätze - die Unterstützung für Zusammenführungskonflikte ist nicht Teil von GitLens - ist sie direkt in vscode selbst integriert (es war ursprünglich eine andere Erweiterung, die in den Kern gebracht wurde).

@eamodio - sry, wusste nicht. 😄 Ändert nichts an der Tatsache, dass für mich (und die meisten meiner Kollegen, die aufgrund meiner Empfehlung VSCode @ work verwenden) VS Code für die Arbeit mit Git ohne GitLens nutzlos ist.
Mit GitLens bin ich bestrebt, VSCode zu öffnen, auch wenn ich nicht atm darin codiere (hauptsächlich verwende ich es für TypeScript und JavaScript), nur um klar zu sehen, was in dieser Zusammenführung vor sich geht.
Es dreht sich alles um die Benutzererfahrung.
Selbst wenn VSCode alles enthalten hätte und Sie es nur richtig visualisieren müssten - Sie sind derjenige, der an meiner großartigen Benutzererfahrung schuld ist. 😉

@m-wilczynski Sehr demütig. Vielen Dank – ich freue mich sehr über die netten Worte!

Es geht jetzt auf zwei Jahre zu ... und meiner Meinung nach ist dies immer noch eines der offensichtlichsten fehlenden Features an diesem Punkt. würde gerne VSCode zu meinem Mergetool machen.

@tracker1 Dieses Problem wurde technisch gelöst: https://github.com/Microsoft/vscode/issues/5770#issuecomment -308533904. Ich weiß nicht, warum es immer noch nicht geschlossen wurde.

@joaomoreno kann dieses Problem geschlossen werden?

Ich denke, der Grund, warum es immer noch offen ist (und auch, warum ich es immer noch beobachte), ist, dass die Leute nach einer Möglichkeit zum parallelen Drei-Wege-Mergen in vscode suchen. Zum Beispiel verwende ich derzeit meld ( Beispiel-Screenshot ).

Ja, und wir haben Szenarien, in denen Git einen Konflikt (Umbenennen/Umbenennen) hat und die $MERGED-Datei leer ist und dennoch eine Bearbeitung erforderlich ist, die den Befehl $LOCAL $REMOTE unterscheidet. Ich verwende dieses cmd unten für dieses Problem

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

Aber diese können in separate Ausgaben umgewandelt werden - die Hauptaufgabe dieser speziellen Ausgabe ist meiner Meinung nach erledigt.

Vielleicht funktioniert das, was in #5770 gezeigt wird, gut für kleine Änderungen, aber es ist eine schlechte Erfahrung für große Änderungen und Sie brauchen wirklich eine Erfahrung mit 3 oder 4 Fenstern, um dies richtig zu machen.

Ich verwende derzeit Visual Studio (eigentlich) als MERGE/DIFF-Tool und MELD, wenn Visual Studio (eigentlich) nicht installiert ist. Diese erledigen die Arbeit, aber es wäre großartig, den Code mit demselben Werkzeug bearbeiten zu können, mit dem er im ersten Palast geschrieben wurde.

Wenn sie es schließen wollen, ist das in Ordnung, da es als Zusammenführungstool _kann_ verwendet werden kann, aber dann sollten wir sofort ein Problem erstellen, um die Möglichkeit des parallelen Drei-Wege-Vergleichs zu erfassen.

Jetzt hat vscode die Option, mehr als zwei Fenster sichtbar zu machen. (ab v1.24.0). Ich habe selbst noch keinen 3-Wege-Merge ausprobiert, aber es sollte jetzt sicherlich eine Möglichkeit geben

Dies ist mit Sicherheit das größte Manko dieses erstaunlichen Editors

Eine Drei-Wege-Zusammenführung ist ein Muss. Die derzeitige Art, Git-Merge durchzuführen, ist sehr grob im Gebrauch.

Bitte fügen Sie eine Drei-Wege-Zusammenführung hinzu

@michaelKurowski Ja, kürzlich habe ich Kollegen gehört, die sich über VScode-Merging-Fähigkeiten beschwert haben, bin aber nicht in die Details eingetaucht. Kurz gesagt, wenn dieser Aspekt verbessert werden kann, würde es für vscode gut tun.

Bitte fügen Sie eine Drei-Wege-Zusammenführung hinzu

Ich bin mir nicht sicher, ob ich das vollständig verstehe. Die Leute hier scheinen nach einer Drei-Wege-Zusammenführung zu fragen, aber es scheint, als hätte VSCode bereits eine Drei-Wege-Zusammenführung, wie in diesem Screenshot.

image

Soweit ich weiß, gibt es jedoch keine Möglichkeit, die Drei-Wege-Zusammenführung von der Befehlszeile aus aufzurufen. Wie im ersten Beitrag erwähnt, würde dies eine Möglichkeit zum Aufrufen mit vier Argumenten in der Befehlszeile beinhalten: die Basisdatei, die beiden verschiedenen überarbeiteten Versionen und den Pfad zum Schreiben des endgültigen zusammengeführten Ergebnisses.

In meinem Fall möchte ich VSCode als Zusammenführungstool mit Perforce und nicht mit Git verwenden, aber wenn VSCode diese vier Dateinamen in der Befehlszeile akzeptiert, dann wäre es egal, welche Quellcodeverwaltungssoftware Sie verwenden, das Konzept des Zusammenführens ist dasselbe.

Sollte dieses Problem so etwas wie "Befehlszeilenoption zum Aufrufen der vorhandenen 3-Wege-Zusammenführungsfunktionalität hinzufügen" heißen, oder gibt es etwas, das ich bei der aktuellen Zusammenführungsimplementierung in VSCode missverstehe, abgesehen von der fehlenden Verwendung der Befehlszeile, die es ungeeignet macht für Git-Drei-Wege-Zusammenführungen?

Ich bin mir nicht sicher, ob ich das vollständig verstehe. Die Leute hier scheinen nach einer Drei-Wege-Zusammenführung zu fragen, aber es scheint, als hätte VSCode bereits eine Drei-Wege-Zusammenführung, wie in diesem Screenshot.

image

Soweit ich weiß, gibt es jedoch keine Möglichkeit, die Drei-Wege-Zusammenführung von der Befehlszeile aus aufzurufen. Wie im ersten Beitrag erwähnt, würde dies eine Möglichkeit zum Aufrufen mit vier Argumenten in der Befehlszeile beinhalten: die Basisdatei, die beiden verschiedenen überarbeiteten Versionen und den Pfad zum Schreiben des endgültigen zusammengeführten Ergebnisses.

In meinem Fall möchte ich VSCode als Zusammenführungstool mit Perforce und nicht mit Git verwenden, aber wenn VSCode diese vier Dateinamen in der Befehlszeile akzeptiert, dann wäre es egal, welche Quellcodeverwaltungssoftware Sie verwenden, das Konzept des Zusammenführens ist dasselbe.

Sollte dieses Problem so etwas wie "Befehlszeilenoption zum Aufrufen der vorhandenen 3-Wege-Zusammenführungsfunktionalität hinzufügen" heißen, oder gibt es etwas, das ich bei der aktuellen Zusammenführungsimplementierung in VSCode missverstehe, abgesehen von der fehlenden Verwendung der Befehlszeile, die es ungeeignet macht für Git-Drei-Wege-Zusammenführungen?

Ich glaube, dass sie so etwas gerne sehen würden:
https://user-images.githubusercontent.com/1470309/32250860-c677e4ce-bec0-11e7-82b5-0196d981cc28.png

@michaelKurowski Ich

  • Die Visualisierung von Drei-Wege-Zusammenführungen. (Die aktuelle Implementierung zeigt Zusammenführungen inline an, während einige Leute nach einer dreispaltigen Ansicht fragen)
  • Die Möglichkeit, VSCode als 3-Wege-Zusammenführungstool zu verwenden, das über die Befehlszeile aufgerufen wird. (was eine Befehlszeilenoption ähnlich der aktuellen --diff file1 file2 erfordern würde, aber mit Zusammenführungsunterstützung, z. B. --merge basefile revision1file revision2file mergedfile

Mein Eindruck ist, dass das Originalposter eher nach etwas Ähnlichem gefragt hat (was mit der aktuellen Visualisierung einfach zu implementieren scheint), während die Anfrage nach einer dreispaltigen Visualisierung der Zusammenführung etwas komplizierter und offener ist Vielleicht führt die Verwirrung zwischen diesen beiden separaten Anfragen dazu, dass dieses Problem aufgegriffen wird?

Ok, danke für die Klarstellung @uglykoyote & @michaelKurowski , also sollten wir Ihrer Meinung nach ein neues Problem/eine neue Feature-Anfrage erstellen, die der dreispaltigen Diff-Ansicht gewidmet ist?

Es wäre gut, wenn @joaomoreno die Frage von @JeanPerriault und meinen Vorschlag, ob dieses Problem in zwei Teile geteilt werden sollte, kommentieren könnte, da er anscheinend im VSCode-Team ist. Aber nach seinen früheren Antworten zu urteilen, „eine Zusammenführungs-UI muss implementiert werden“ und „Wir hätten es nicht anders (als eine Drei-Wege-Zusammenführung)“, scheint es, als ob er beide Probleme sieht, die ich erwähnt habe als eine Sache.

@joaomoreno , wäre es nicht sinnvoll, kurzfristig zunächst eine Befehlszeilenoption zu implementieren, um das vorhandene Zusammenführungsverhalten aufzudecken? Ich persönlich wäre mit der Verwendung der aktuellen Inline-Zusammenführung einverstanden und finde eine 3-Spalten-Ansicht nicht unbedingt erforderlich (obwohl sie nett sein könnte). Aber wenn es eine einfache Aufgabe ist, die vorhandene Zusammenführung mit der Befehlszeile zu verbinden, möchte ich nicht, dass sie auf unbestimmte Zeit ins Stocken gerät, weil das VSCode-Team nicht willens ist, eine ausgefallenere 3-Wege-Zusammenführungsvisualisierung zu implementieren.

Ja, geben Sie uns eine visuelle Zusammenführungsansicht/einen Editor wie http://meldmerge.org/

WinMerge arbeitet wie ein Boss
after-3way-merge

Ja, geben Sie uns eine visuelle Zusammenführungsansicht/einen Editor wie http://meldmerge.org/

Ich verwende Meld und obwohl ich gerne sehen würde, dass VSCode dasselbe tut, sehe ich ehrlich gesagt kein Problem darin, Meld dafür zu verwenden.

@lig warum muss ich dann vscode zum bearbeiten verwenden? Ich kann nur Notepad verwenden

@josser Verwenden Sie einfach das Tool, das besser zu Ihrer aktuellen Aufgabe passt. Ich denke, dieser heilige Krieg ist übrigens offtopic.

@lig Ich möchte nur erklären, warum Leute darum bitten, das Merge-Tool in vscode zu integrieren
Weil sie vscode mögen und andere Tools nicht mögen. Zusammenführen ist auch Bearbeiten. Und Sie möchten Dateien in Ihrem schönen Editor bearbeiten, auch wenn die Bearbeitung Teil des Zusammenführungsprozesses ist

Sehen Sie sich diesen Kommentar an: https://github.com/Microsoft/vscode/issues/5770#issuecomment -265497516

@josser Wie bereits mehrfach in diesem Thread erwähnt, kann die ursprüngliche Abfrage erfolgen, indem git so eingerichtet wird, dass VSCode als Mergetool verwendet wird, und während Konflikten git mergetool ausgeführt wird, wodurch der VSCode-Merging-Flow geöffnet wird, der gut funktioniert für mich und andere Benutzer.

Wenn Sie eine Meld-ähnliche Schnittstelle sehen möchten, wenn Sie VSCode als Zusammenführungstool verwenden, _erstellen Sie bitte eine separate Feature-Anfrage in einer separaten Ausgabe_, damit wir aufhören können, diesen Thread für etwas zu spammen, das im Wesentlichen _eine nicht verwandte Feature-Anfrage_ ist.

@lig Ich möchte nur erklären, warum Leute darum bitten, das Merge-Tool in vscode zu integrieren
Weil sie vscode mögen und andere Tools nicht mögen. Zusammenführen ist auch Bearbeiten. Und Sie möchten Dateien in Ihrem schönen Editor bearbeiten, auch wenn die Bearbeitung Teil des Zusammenführungsprozesses ist

Schauen Sie sich diesen Kommentar an: #5770 (Kommentar)

Schlicht und einfach! Genau das wollen die Leute. Warum ist das so schwer zu verstehen? Ich starte ein Diff und der nächste Schritt ist das Zusammenführen. Das gehört zusammen und jede Trennung ist total gegen einen guten Workflow und kostet nur Zeit. Ich möchte den Code-Editor von Visual Studio verwenden und kein externes Tool.

Ich möchte auch, dass VS Code als Drei-Wege-Merge-Editor verwendet werden kann. Akzeptieren oder lehnen Sie Änderungen von links oder rechts ab und ändern Sie das Ergebnis, bevor Sie die Änderungen übernehmen. Dies würde VSCode so sehr verbessern. Es macht wirklich keinen Sinn, so viele leistungsstarke Git-Funktionen zu verwenden, außer einer der wichtigen: der Zusammenführung.

Machen Sie es wie JetBrains. (https://github.com/Microsoft/vscode/issues/37350)

Und ehrlich gesagt sieht die Zusammenführung ziemlich hässlich aus. Das ist von 2012, oder? Und es sieht so aus, als wäre es aus dem Jahr 2003. Warum sollte ich jedes Mal eine Zeitreise machen, wenn ich die 3-Wege-Merge machen möchte?

Ein neues Problem wurde erstellt, um Ansichten zum Zusammenführen in drei Richtungen zu haben: https://github.com/Microsoft/vscode/issues/37350

Jemand hat sich die Zeit genommen, ein separates Problem für die Drei-Wege-Merge-UI (wie hier empfohlen) mit einem wunderschönen Mock-up zu öffnen, nur um es sofort zu schließen. =(

@mofahead, es sieht so aus, als wäre das, das ich erstellt habe, ein Duplikat von # 37350 ... obwohl der Abschluss dieses Problem erwähnt hat.

Es wäre schön, wenn https://github.com/Microsoft/vscode/issues/8226 verbessert würde, bevor es als Zusammenführungseditor aktiviert wird

Hallo zusammen!

Sie können dem Tutorial folgen, um VSCode als offizielles git.mergetool zu konfigurieren:

https://stackoverflow.com/a/44549734

Es scheint, als ob hier einige Verwirrung herrscht, da Leute sowohl UI-Aspekte als auch Zusammenführungsfunktionen erwähnen. Für mich ist der derzeit größte Produktivitätskiller in VSCode die Tatsache, dass die Zusammenführung vertikal statt nebeneinander funktioniert.

Ich verstehe ehrlich gesagt nicht, wie dies überhaupt als akzeptable Benutzeroberfläche für diese Funktionalität angesehen werden kann. Nicht zu gebrauchen.

Für diejenigen mit einem Mac ist hier eine Problemumgehung.

  • Diffmerge installieren
  • Installieren Sie das VSCode Git Diff and Merge Tool
  • Bearbeiten Sie ~/.gitconfig
    hinzufügen
[diff]
        tool = diffmerge
[difftool "diffmerge"]
        cmd = diffmerge \"$LOCAL\" \"$REMOTE\"
[merge]
        tool = diffmerge
[mergetool "diffmerge"]
        cmd = diffmerge -merge \"$LOCAL\" \"$BASE\" \"$REMOTE\"
        trustexitcode = true
        keepbackup = false
  • Gehen Sie in VSCode zur Quellcodeverwaltung, klicken Sie mit der rechten Maustaste auf die Datei und wählen Sie Launch merge tool aus

Die einzige Sache ist, dass ich die Dateien nicht in allen Szenarien automatisch wieder mit VSCode zusammenführen kann.

Benutze diffmerge seit vielen Jahren auf Mac und Windows. Bin vor ein paar Monaten zu Sublime Merge gewechselt. Ich liebe es wirklich sehr. Es ist schnell, es ist modern. Ich verwende es auch unter Windows anstelle von Visual Studio, wenn ich in dieser Umgebung arbeiten muss.

zurück zu emacs für Diff und Merge von nicht VCS-kontrollierten Verzeichnissen :(

VS Code hat ein nettes Plugin L13D zum Vergleichen von Verzeichnissen (z. B. Konfigurationsverzeichnisse zwischen einem Quell- und Zielcomputer), aber Sie können nicht ohne Git oder eine andere Versionskontrolle zusammenführen.

Es ist also diff-directories von emacs, eine Sitzung zu erstellen und dann für diese Aufgabe selektiv einzufügen, was ich will. Ich versuche, emacs zu verlassen, aber ich finde immer noch gelegentlich Dinge, die es tun kann, was Code nicht kann.

VS Code hat ein nettes Plugin L13D zum Vergleichen von Verzeichnissen (z. B. Konfigurationsverzeichnisse zwischen einem Quell- und Zielcomputer), aber Sie können nicht ohne Git oder eine andere Versionskontrolle zusammenführen.

Hast du einen Link zu L13D?

Ich bin mir nicht sicher, ob ich das vollständig verstehe. Die Leute hier scheinen nach einer Drei-Wege-Zusammenführung zu fragen, aber es scheint, als hätte VSCode bereits eine Drei-Wege-Zusammenführung, wie in diesem Screenshot.

image

Dies funktioniert für völlig triviale Merge-Konflikte, aber ich treffe auf Leute in Unternehmen, die nur VSCode verwenden, und ihre gesamte Vorstellung von "Merge-Konflikten" basiert auf dem stark vereinfachten Diff von VSCode. Und wenn sie einen nicht-trivialen Merge-Konflikt bekommen, "wählen sie immer mindestens einmal eine Seite" (im Grunde lassen sie die Änderungen von jemandem in ein paar Zeilen fallen, anstatt sie zu kombinieren).

Wir brauchen eine Meld-ähnliche Oberfläche in VSCode, nicht nur weil es cool ist, sondern weil wir ohne sie schlechte Praktiken bei jüngeren Entwicklern fördern.

Es sind nicht nur "jüngere Entwickler". Ich programmiere seit 20 Jahren und eine 3-Fenster-Zusammenführung ist einfach besser. Sie werden Fehler mit einem Inline-Diff machen, die Sie bemerkt hätten, wenn Sie die Gesamtheit jeder Version des Codes auf einmal sehen könnten.

Ich möchte drei Bereiche mit Unterschieden zum Basis-Commit in jedem Bereich sehen. Das würde es leicht machen zu sehen, was sich wo geändert hat und welche Änderungen beibehalten werden sollten und welche nicht.

@lig Ich möchte nur erklären, warum Leute darum bitten, das Merge-Tool in vscode zu integrieren
Weil sie vscode mögen und andere Tools nicht mögen. Zusammenführen ist auch Bearbeiten. Und Sie möchten Dateien in Ihrem schönen Editor bearbeiten, auch wenn die Bearbeitung Teil des Zusammenführungsprozesses ist

Denn VSCode ist mehr als ein verherrlichter Texteditor. Es ist eine IDE mit Linter und Intellisense. Es analysiert sogar meinen Python-Code auf undefinierte Variablen. Und ich finde es sehr nützlich, beim Zusammenführen in Echtzeit die Hinweise sehen zu können, dass die Linter+IntelliSense+etc. Angebote, wenn ich wähle, welche Zeilen ich annehmen möchte.

Die Verwendung eines "dummen" Merge-Tools macht es schwieriger, Fehler in der Zusammenführung zu finden und sie sogar zu korrigieren, nachdem sie zusammengeführt und zu VSC zurückgekehrt sind.

Dies ist eines von nur 2 oder 3 Dingen, die mich davon abhalten, zu VS Code zurückzukehren

Das steht in der Roadmap 2020

Bieten Sie vollständige Merge-Unterstützung (3-Wege)

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

Ich habe gerade meine Erweiterung VS Code als Git Mergetool veröffentlicht . Es ist nicht so funktionsreich wie andere Merge-Konflikt-Editoren, sollte aber brauchbar sein. Als Standard habe ich ein 4-Fenster-Layout konfiguriert, das ich praktischer fand als das klassische 3-Spalten-Layout. Achten Sie auf Rückmeldungen!

Es ist noch nicht im Marketplace verfügbar, also müssen Sie es von GitHub herunterladen und manuell installieren. auf dem Marktplatz verfügbar ._

Hallo @zawys ,

Unterstützt es den Vergleich der 3 oder 4 Ordner, in denen ich die Oprhan-Dateien zusammenführen werde?

Hallo @gusbemacbe ,

In ihrem aktuellen Zustand war die Erweiterung hauptsächlich als "3-Wege"-Tool zum Zusammenführen von Dateien gedacht, das in die Schnittstelle von git mergetool passt. Dies ist nach wie vor das vorrangige Ziel. Ich plane jedoch, die Funktionalität so zu erweitern, dass kein git-mergetool-Prozess ausgeführt werden muss, da dieses kleine Shell-Skript einige eigene UX-Mängel aufweist. Stattdessen möchte ich die Erweiterung stärker in VS Code integrieren.

In diesem Prozess werde ich einige der Funktionen von git-mergetool klonen, z. B. das Auflösen von Konflikten beim Löschen und Zusammenführen symbolischer Links. Ich bin mir nicht sicher, wie weit das Ihren Anwendungsfall abdeckt. Vielleicht könnte ich auch zB einen Accept-all-incoming-in-fold-Befehl hinzufügen. Bitte öffnen Sie ein Problem für
die Verlängerung, um weiter zu diskutieren.

Meine Erweiterung ist jetzt auf dem Marketplace zu finden.

Meine Erweiterung ist jetzt auf dem Marketplace zu finden.

202010-04_0859_27__

@InLaw Sie müssen Ihren VS-Code aktualisieren, um die Erweiterung verwenden zu können. Für weitere Diskussionen erstellen Sie bitte einen Fehlerbericht auf der Website der Erweiterung .

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen