
Andrew Hanna

Andrew Hanna

Um einen Salesforce-Metadatenkonflikt bei einem Merge aufzuloesen, behandeln Sie die Datei als XML-Knoten statt als Zeilen: oeffnen Sie die konfliktbehaftete Datei, behalten Sie die unabhaengigen Aenderungen beider Seiten, verwerfen Sie nur die wirklich kollidierende Bearbeitung, validieren Sie dann das XML und deployen Sie in eine Scratch Org oder Sandbox, bevor Sie committen. Die meisten Salesforce-Konflikte sind Falschmeldungen durch XML-Reihenfolge, keine echten Meinungsverschiedenheiten, daher ist das Ziel Versoehnung, nicht einen Sieger zu kueren. So machen Sie es sauber.
Ein Merge-Konflikt entsteht, wenn zwei Git-Branches dieselbe Datei aendern und Git nicht entscheiden kann, welche Version gewinnt, also stoppt es und gibt Ihnen die Datei mit Konfliktmarkierungen zurueck. Auf Salesforce ist diese Datei fast immer deklarative Metadaten, gespeichert als XML: ein Profil, eine Permission Set, ein Flow oder ein Layout. Git vergleicht Text Zeile fur Zeile, und XML passt nicht gut in dieses Modell.
Drei Eigenschaften von Salesforce-Metadaten machen Konflikte weit haeufiger als in gewoehnlichem Code:
Wir gehen tiefer auf die Ursachen ein in warum Metadatenkonflikte entstehen und wie man sie stoppt.
<<<<<<<, ======= und
>>>>>>>. Alles ueber dem Trenner ist Ihr Branch;
alles darunter ist der eingehende Branch.
<fieldPermissions>- oder
<objectPermissions>-Block ist eine Einheit, nicht die Zeilen
darum herum.
Fur die Disziplin, nie die Aenderung eines Teamkollegen zu verlieren, siehe wie man Konflikte aufloest, ohne jemandes Arbeit zu verlieren.
Manuelle Zeile-fur-Zeile-Merges skalieren nicht. Die dauerhafte Loesung ist ein metadatenbewusster Merge, der die XML-Struktur versteht. Ein Salesforce-bewusster Git Merge Driver vergleicht Dateien Knoten fur Knoten, merged automatisch alles, was nur auf einer Seite geaendert wurde, und meldet nur die echten Kollisionen; wir gehen die Einrichtung durch in wie man einen Salesforce-bewussten Git Merge Driver einrichtet. DevOps-Plattformen treiben dieselbe Idee weiter: Gearset, Copado, Flosum und Blue Canvas bieten alle Semantic- oder Smart-Merge-Funktionen, die nicht funktionale XML-Reihenfolge ignorieren und nur echte Konflikte hervorheben. Serpent wendet dasselbe Prinzip in GitHub-nativen Pipelines an, sodass Ihr Team Entscheidungen pruft, nicht Rauschen. Gute Quellhygiene hilft ebenfalls, und das Verwalten von Salesforce-Metadaten behandelt die Gewohnheiten, die Konflikte von vornherein verhindern: kurzlebige Branches, haeufige Merges, synchron gehaltene Umgebungen und einen einzigen Eigentuemer fur geteilte Komponenten wie Profile. Durchstoebern Sie die ganze SF-Guides-Bibliothek fur mehr, und vergleichen Sie Werkzeugoptionen auf unserer Preise-Seite.
Warum meldet Git Konflikte, wenn sich nichts wirklich geaendert hat?
Weil die Metadata API XML-Elemente in nicht deterministischer Reihenfolge zurueckgibt, sieht Git umsortierte Zeilen als Unterschiede, selbst wenn die Einstellungen identisch sind.
Kann ich einfach eine Seite des Konflikts waehlen?
Nur wenn beide Seiten genau denselben Knoten bearbeitet haben. Betreffen die Aenderungen verschiedene Knoten, loescht das Waehlen einer Seite still die echte Arbeit eines Teamkollegen.
Soll ich Profilkonflikte in der Profildatei aufloesen?
Verschieben Sie Objekt- und Feldberechtigungen nach Moeglichkeit in Permission Sets statt in Profile. Kleinere, fokussierte Dateien kollidieren weit seltener.
Brauche ich ein spezielles Werkzeug, oder reicht reines Git?
Reines Git reicht fur kleine Teams, aber ein metadatenbewusster Merge Driver oder eine DevOps-Plattform mit Semantic Merge nimmt den Grossteil der manuellen Arbeit ab, sobald mehr als ein paar Entwickler Metadaten teilen.
Unverbindlich.