Ich verwende Fossil-SCM, um meine Projekte zu pflegen. Da ich nicht in einem Team arbeite, habe ich normalerweise nur einen sehr linearen Entwicklungszweig: 1.0 -> 1.1 -> 1.2
Ich frage mich, wie das Verfahren abläuft, wenn Sie ein Projekt haben, dessen Aufgabe einem verwandten Projekt übertragen werden soll. Und damit das erste Projekt überflüssig machen. Obwohl ich dazu neige, den größten Teil meines Codes neu zu schreiben, wenn ich mich nicht daran erinnere, ihn bereits geschrieben zu haben, möchte ich den Code dennoch archivieren. Und ich hätte lieber kein fossiles Repo, das einfach tot ist. Kann ich es zusammenführen? Ist das die richtige Art, damit umzugehen?
Der Code extrahierte beispielsweise Daten aus einer Excel-Datei, um eine HTML-Seite zu formatieren. Jetzt habe ich meinen Arbeitgeber davon überzeugt, seine Excel-Tabelle in eine Datenbank zu verschieben, um die Redundanz zu verringern, die Effizienz zu steigern und yaddy yadda. Da ich jetzt logische Abfragen durchführen kann, bei denen keine Reifen übersprungen werden müssen, um mithilfe der Datenbank eine Vorform zu erstellen, benötige ich keine zusätzlichen vbs-Dateien, die ursprünglich die Excel-Datei manipuliert haben. Technisch würde ich einen Teil des vorhandenen Codes in das aktuelle neue Projekt portieren.
Da es bereits einen eigenen Kofferraum hat, wäre es ratsam, den Kofferraum eines anderen Projekts mit diesem zu kombinieren, und wie würde ich das genau tun?
Ich denke, mein Baum würde so aussehen, und ich habe noch nie Beispiele für Software-Verzweigungen gesehen, die diesem invertierten Baum ähneln. Ich frage mich also, was die Norm für eine solche Situation ist.
Antworten:
Wie Projekte am besten zusammengeführt werden können, hängt ein wenig davon ab, wie Sie ihren Verlauf verwalten möchten und ob Sie erwarten, dass sie sich separat weiterentwickeln.
Halten Sie sie getrennt - verwenden Sie externe Geräte / Submodule
Eine sehr gute Technik wäre die von Submodulen. Git und svn haben dieses Konzept (in svn als extern bezeichnet), aber leider scheint es nicht fossil zu sein ( https://www.mail-archive.com/[email protected]/msg14798.html) ).
Die Idee ist jedoch, dass ein Projekt von einem anderen Projekt abhängen kann und Sie einfach auswählen, welchen Zweig oder Tag oder welche einzelne Festschreibung aus dem anderen Projekt Sie im referenzierenden Projekt verwenden möchten.
Kopieren Sie es einfach
Wenn Sie nur eine Menge Code abheben möchten und sich NICHT um den Verlauf kümmern möchten, können Sie einfach einen Ordner mit dem neuen Code hinzufügen und diesen festschreiben.
Einfach kopieren, aber ältere Geschichte bewahren
Wenn Sie den Code aus dem zweiten Projekt in das erste zusammenführen und den Verlauf zumindest mit git beibehalten möchten, können Sie git merge verwenden (siehe https://saintgimp.org/2013/01/22/merging-two-git) -repositorys-in-ein-repository-ohne-den-verlauf-dateiverlauf zu verlieren / für ein beispiel). Mit git können andere Repositorys als Datenquelle für die Zusammenführung ausgewählt werden (so funktioniert git Pulls im Grunde). Ich weiß nicht genug über Fossilien, um zu wissen, ob die Zusammenführung von Fossilien auf diese Weise verwendet werden kann.
quelle