Ich benutze libgit2 in C++ Projekt für meine benutzerdefinierte Objekte speichern.Umbenennen und aktualisieren Baumeintrag in einem Commit mit libgit2
Ich benutze git_tree_create_updated Funktion von libgit2 für die Aktualisierung von Bäumen.
Es gibt ein Problem für mich, sowohl den Umzug als auch die Aktualisierung für einige Bäume in einem Commit durchzuführen. Wenn ich alten Baum an alter Stelle entferne, und danach einen neuen Baum an einem anderen Ort hinzufüge, sieht es natürlich so aus, als würde man einen Baum löschen und einen weiteren Baum in der Git-Geschichte hinzufügen.
Wenn ich versuche, alten Baum zuerst zu neuen Platz hinzuzufügen, danach alten Baum an neuem Ort mit neuem Baum zu aktualisieren, und danach alten Baum an alter Stelle zu löschen, gibt libgit2 Fehler über doppelte Einträge in der Aktualisierungsliste zurück (für git_tree_create_updated Funktion)). Es passiert, weil ich zwei Operationen für einen Eintrag verwende, aber gibt es eine andere Methode, libgit2 mit umbenennen zu benachrichtigen?
Ich weiß, Git bietet Umbenennen/Update-Operation in einem Commit, aber wie kann ich das gleiche mit libgit2, vor allem mit git_tree_create_updated Funktion tun?
Über duplizieren: Da ich libgit2 benutze, hoffe ich, dass es eine Möglichkeit gibt, die diff-Prozedur anzupassen.
Wenn es C++ ist, warum Tag C? – Marievi
Weil libgit2 "C" ist – Caxa
Mögliches Duplikat von [Wie mache ich git eine gelöschte und eine neue Datei als Datei verschieben?] (Https://stackoverflow.com/questions/433111/how-to-make-git- Mark-a-deleted-und-eine-neue-Datei-als-eine-Datei-move) –