Ich arbeite an der Implementierung von Merge mit libgit2, und ich habe Probleme, es mit Konflikten (Änderungen an der gleichen Zeile in einer Datei) zu behandeln - die Zusammenführung bricht einfach ab, mit nichts geschrieben der Index oder der Arbeitsbereich. Auflösbare Konflikte (Änderungen an verschiedenen Zeilen) funktionieren gut.libgit2: Verschmelzen mit Konflikten
Es tritt mit GIT_ECONFLICT
, die offenbar zeigt, dass die worktree und/oder Index nicht sauber sind, aber ich habe mit git status
kurz vor git_merge()
Aufruf und es ist sauber.
Ich verwende Standard-Merge-Optionen und Checkout-Optionen auf GIT_CHECKOUT_SAFE | GIT_CHECKOUT_ALLOW_CONFLICTS
festgelegt. Ich versuchte mit FORCE
anstelle von SAFE
, aber es half nicht. Was muss ich noch tun, damit die Konflikte aufgezeichnet werden?
-Code ist hier (in Swift): https://github.com/Uncommon/Xit/blob/ff1bf6312bb1250b1db432035947a282a2cdd362/Xit/XTRepository%2BMergePushPull.swift#L154