
Andrew Hanna

Andrew Hanna

Kurz gesagt: Ein Merge-Konflikt sind zwei konkurrierende Aenderungen am selben Teil einer Datei, die die Versionsverwaltung nicht allein aufloesen kann. In Salesforce sind die meisten davon nicht echt: es ist XML-Sortierrauschen, das ein metadatenbewusster Merge ohne Rueckfrage klaeren sollte. Interessant sind die Konflikte, die diesen Filter ueberleben, und genau dort verdient KI in einer Release-Pipeline zuerst ihr Geld.
Zwei strukturelle Gruende, und keiner ist jemandes Schuld.
Erstens sind die Dateien riesig. Ein Profile beschreibt Berechtigungen fuer die gesamte Org, also koennen zwei Entwickler an zwei unabhaengigen Objekten benachbarte Aenderungen in einer Datei erzeugen. Profiles, Permission Sets, Page Layouts, Lightning Pages und Custom Labels sind die ueblichen Verdaechtigen.
Zweitens ist die Reihenfolge der Elemente in diesen Dateien nicht stabil. Holen Sie dasselbe Profile zweimal ab, und die Listeneintraege koennen in anderer Folge zurueckkommen. Git sieht umsortierte Zeilen und nennt das eine Aenderung, obwohl die Berechtigungen inhaltlich identisch sind. So verbringt ein Team einen Donnerstagnachmittag mit einem Konflikt, den es nicht gibt.
Diese Unterscheidung ist der ganze Artikel, also klar gesagt.
Beides als ein Problem zu behandeln ist der Grund, warum Konfliktwerkzeuge einen schlechten Ruf haben. Sie brauchen unterschiedliche Maschinerie.
Ein metadatenbewusster Merge parst das XML in Elemente mit stabilen Schluesseln und fuehrt Element fuer Element zusammen statt Zeile fuer Zeile. Der quelloffene Salesforce Git Merge Driver ist eine gute oeffentliche Referenz fuer diesen Ansatz: er erkennt eindeutige Schluessel in Metadatenelementen, fuehrt einzelne Eintraege statt ganzer Arrays zusammen, behandelt deterministisches Umsortieren fuer wirklich geordnete Typen wie Picklist Value Sets und Record-Type-Zuweisungen und faellt erst dann auf einen rohen Konflikt zurueck, wenn er einen Schluessel nicht kennt. Kommerzielle Werkzeuge tun dasselbe; Gearset beschreibt genau deshalb einen metadatenbewussten semantischen Merge-Algorithmus.
Das ist keine KI und soll auch keine sein. Es ist Parsing, und Parsing gehoert deterministisch, schnell und langweilig. Richtig gemacht entfernt es die grosse Mehrheit der Salesforce-Konflikte, bevor ein Mensch sie sieht.
Was es nicht kann, ist entscheiden. Setzen beide Branches denselben Schluessel auf unterschiedliche Werte, verweigert ein korrekter deterministischer Merger, und diese Verweigerung ist richtig.
Genau dort, an dieser Verweigerung. Konfliktloesung ist aus vier Gruenden eine ungewoehnlich gute erste Aufgabe fuer KI in der Auslieferung.
Vergleichen Sie das damit, ein Modell Apex schreiben zu lassen: unbegrenzte Eingabe, mehrdeutiger Kontext, teure Pruefung. Konfliktloesung hat die umgekehrte Form, deshalb ist sie der vernuenftige Anfang.
Ja, und schnell. Salesforces eigenes DevOps Center liefert inzwischen Konfliktloesung ueber MCP-Werkzeuge, bei der grosse Sprachmodelle Konflikte analysieren, in natuerlicher Sprache erklaeren und Loesungen aus der IDE heraus vorschlagen. Wenn der Plattformanbieter LLM-Konfliktanalyse mitliefert, ist die Debatte, ob das in eine Pipeline gehoert, beendet.
Serpent kommt aus derselben Richtung. Es ist der einzige native
MCP-Server im Salesforce DevOps, mit resolve_metadata_conflict neben
plan_deploy, create_pull_request und
trigger_pipeline, sodass sich dieselbe Aufloesung aus Claude, Cursor,
Windsurf oder Agentforce steuern laesst, mit Vorabpruefungen und verpflichtender
menschlicher Freigabe. Das KI-Code-Review laeuft in jedem Plan, auch im kostenlosen,
weil Review und Konflikt dasselbe Gespraech ueber dieselbe Aenderung sind.
Darf KI Salesforce-Konflikte ohne Review automatisch mergen?
Nein. Vorschlagen und erklaeren, dann menschliche Freigabe verlangen, besonders bei Profiles und Permission Sets, wo ein schlechter Merge den Zugriff jedes zugewiesenen Nutzers aendert.
Macht semantisches Mergen KI ueberfluessig?
Im Gegenteil. Es entfernt die falschen Konflikte, uebrig bleiben genau die Ermessensfragen, bei denen zusaetzlicher Kontext hilft.
Warum sind Profiles die schlimmsten Faelle?
Es sind einzelne riesige Dateien fuer die ganze Org, unabhaengige Arbeit landet also in benachbarten Zeilen, und ihre Listenreihenfolge ist zwischen Abrufen nicht garantiert stabil.
Welchen Kontext braucht ein KI-Resolver?
Den Drei-Wege-Diff, das verknuepfte Ticket, die Commit-Nachrichten und den Zustand der Ziel-Org. Ohne die raet er selbstbewusster als ein Mensch.
Woher wissen wir, dass eine Aufloesung richtig war?
Validieren Sie das zusammengefuehrte Ergebnis gegen die Ziel-Org, bevor der Merge landet, und halten Sie fest, was vorgeschlagen und von wem freigegeben wurde.
Unverbindlich.