Ich habe drei repos - Namen für Klarheit geändert:Merging subtree Änderungen - fatal: ungültiger Pfad 'somefile_BASE_20704.cs'
SharedStuff
, ProjectA
und ProjectB
Beide Projekte werden mit git-Unterstruktur zu halten eine lokale Kopie von . Beide haben lokale Änderungen vorgenommen, die ich zentral zusammenführen, testen und dann wieder zusammenführen möchte.
Ich habe dies auf der ProjectA Repo laufen:
git subtree split --prefix=SharedStuff -b SharedStuff_from_ProjectA --rejoin
... schob dann, dass zum SharedStuff
Repo, ein paar einfachen Konflikte gelöst, fusionierte sie nach oben.
Jetzt habe ich diese auf dem ProjectB Repo laufen:
git subtree split --prefix=platform/SharedStuff -b SharedStuff_from_Project_B --rejoin
... und schob wieder, dass auf die SharedStuff
Repo in einem neuen Zweig. . Das Problem tritt auf, wenn ich versuche, in jene Änderungen zu verschmelzen
Im aktuellen Fall, wechsle ich auf die SharedStuff_from_Project_B
Zweig, dann git merge master
- aber ich sofort alle geänderten Dateien als add aufgeführt erhalten/ Konflikte hinzufügen. Als ich git mergetool
laufen, hat jeder einen Fehler wie folgt aus:
Merging:
somefile.xyz
Normal merge conflict for 'somefile.xyz':
{local}: created file
{remote}: created file
fatal: invalid path './somefile.xyz_BASE_20704.cs'
(Natürlich, wenn ich die andere Art und Weise versuchen, um - SharedStuff_from_Project_B
in master
zu verschmelzen - bekomme ich die gleichen Arten von Konflikten, umgekehrt nur noch. hinzufügen/hinzufügen).
Meine Vermutung ist, dass etwas in der Geschichte von ProjectB falsch sein könnte, was das Erscheinen von Add/Adds verursacht. Ich bin mir nicht sicher, wie ich das weiter diagnostizieren soll - was kann ich tun?
bearbeiten: es gab einen vorherigen Teilbaum „wieder zusammenzubringen“ begehen in ProjectB
, aber die Änderungen wurden nicht verschmolzen zu SharedStuff
an diesem Punkt scheint es. Aber das erneute Ausführen von git subtree split
mit --ignore-joins
erzeugt das gleiche Problem - viele add/add
Zusammenführungskonflikte, trotz der Geschichte dieser geteilten Unterbaum Verzweigung geht zurück, wenn die SharedStuff
wurde erstmals in ProjectB
gelegt. :(
bearbeiten: Auch git merge-base
zwischen der geteilten Teilstruktur von ProjectB
und master
auf SharedStuff
gibt keine Ergebnisse Ich bin nicht sicher, wie dies kam zu sein oder, wie zu lösen
Hier gehen wir, Kopfgeld # 3 ... –