
Andrew Hanna

Andrew Hanna

Metadaten-Konflikte in Salesforce entstehen, weil die Konfiguration deiner Org in Tausenden XML-Dateien lebt, und drei Eigenschaften dieser Dateien machen Kollisionen zur Routine: die Metadata API gibt Elemente in nicht-deterministischer Reihenfolge zuruck, monolithische Dateien wie Profile sammeln Anderungen aus unzusammenhangender Arbeit, und Teams mergen aus Sandboxes, die auseinandergedriftet sind. Die meisten Konflikte, die du bekampfst, sind falsch, Rauschen statt echter Uneinigkeit. Du stoppst sie mit Source Tracking, kurzlebigen Branches, Permission Sets statt Profilen und einem metadaten-bewussten Merge statt eines rohen git-Diffs.
Ein Metadaten-Konflikt ist ein Merge-Konflikt in den XML-Dateien, die deine Org definieren: Objekte, Felder, Apex, Flows, Profile, Permission Sets und Layouts. Er entsteht, wenn zwei Branches dieselbe Datei andern und git sie nicht automatisch zusammenfuhren kann. Da Salesforce Konfiguration als Text darstellt, wird jeder Admin-Klick und jeder Entwickler-Commit letztlich zu einer Zeile in einer Datei, die git mergen muss.
Der Haken ist, dass viele dieser Konflikte falsch sind. Git meldet eine Kollision, wo es keine echte semantische Uneinigkeit gibt, nur umsortiertes oder umformatiertes XML.
Vier Grundursachen, grob nach Haufigkeit:
Manche Dateitypen sind weit konfliktanfalliger als andere:
Wenn ein Konflikt doch landet:
Ein roher Drei-Wege-git-Merge kann umsortiertes XML nicht von einer echten Anderung unterscheiden, weshalb das gesamte Salesforce-DevOps-Okosystem zum metadaten-bewussten Mergen konvergiert ist. Das komplette Vorgehen, inklusive Lesen eines Profil-Diffs und Umgang mit einem konfliktbehafteten Flow, steht in Salesforce-Metadatenkonflikte lösen, ohne die Arbeit anderer zu verlieren.
Mehrere Plattformen bieten semantisches oder metadaten-bewusstes Mergen, das falsche Konflikte automatisch lost und nur die echten meldet. Gearset, Copado, AutoRABIT, Flosum, Salto und Blue Canvas arbeiten alle in diesem Bereich, jeweils mit einer anderen Balance aus Automatisierung und Kontrolle. Serpent wahlt einen git-nativen Ansatz: es liest deine Metadaten kontextbezogen, absorbiert nicht-funktionales XML-Rauschen und bringt nur echte Konflikte zur menschlichen Entscheidung nach oben, sodass kurzlebige Branches gunstig zu mergen bleiben.
Sind die meisten Salesforce-Metadaten-Konflikte echt?
Nein. Viele sind falsche Konflikte durch nicht-deterministische XML-Reihenfolge oder Umformatierung, und ein metadaten-bewusster Merge ignoriert sie automatisch.
Warum sind Profile so konfliktanfallig?
Ein Profil ist eine grosse Datei mit Berechtigungen fur jedes Objekt und Feld, sodass unzusammenhangende Anderungen nebeneinander landen und git sie als Kollision liest.
Verhindern Permission Sets Konflikte?
Sie reduzieren sie. Kleinere, zweckgebundene Permission Sets bedeuten, dass weniger Leute dieselbe Datei bearbeiten, was Uberschneidungen verkleinert.
Wie helfen kurzlebige Branches?
Tagliches Mergen in den Trunk halt die Divergenz klein, sodass jeder Merge Stunden an Anderung zusammenfuhrt statt Wochen.
Kann CI/CD Metadaten-Konflikte eliminieren?
Nicht vollstandig, aber Source Tracking, haufige Merges und metadaten-bewusstes Tooling verwandeln die meisten Konflikte in automatische Losungen.
Unverbindlich.