Was ist der richtige Weg, um zwei Projekte in der Quellcodeverwaltungssoftware zusammenzuführen?


8

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. Es verschmilzt bei 1,8 !!


4
Sound ist, dass Sie Dinge überkomplizieren. Was ist so schlimm an einem "fossilen Repo, das einfach tot ist"? Ersetzen Sie "tot" durch "archiviert" und es klingt nicht mehr so ​​negativ.
Doc Brown

4
Ich habe dies bereits mit Mercurial getan. Mein Rat wäre, das alte Projekt irgendwann als archiviert zu markieren und die benötigten Ressourcen in das neue zu kopieren, denn wenn Sie die alte Geschichte nicht wirklich benötigen, ist dies nicht erforderlich beide Projekte zusammenführen.
Timoteo Ponce

Was hält Sie davon ab, sich zusammenzuschließen? Und selbst wenn Sie zusammenführen, bleibt der alte Stamm erhalten. Durch das Zusammenführen werden keine Zweige entfernt, sondern nur Dateien von Zweig A zu Zweig B zusammengeführt.
NickL

Ich denke, das, was mich davon abhält, zu verschmelzen, ist, dass ich zwei verschiedene Fossilien a.fossil und b.fossil habe, daher bin ich mir nicht sicher, wie ich alle Informationen zu Verlauf und Check-ins erhalten würde, um im zweiten Fossil vorhanden zu sein. Jetzt, da ich viel älter bin, denke ich, ist die Frage, wie Sie zwei Repositorys zu einem zusammenführen.
Malve

Antworten:


1

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/fossil-users@lists.fossil-scm.org/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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.