Ich habe einige Projekte, die auf angepasster Hardware laufen. Jetzt hat sich die Hardware geändert, was einige Softwareänderungen erforderlich machte. Daher gibt es Quelle A für "alte Hardware" und Quelle B für "neue Hardware", die zu 95% gleich sind.Wie man etwas unterschiedliche Software behält?
Wenn ein neues Feature in der Zukunft hinzugefügt wird, muss es für beide Versionen durchgeführt werden. Mit anderen Worten, A und B werden Seite an Seite existieren und von nun an werden immer dieselben Änderungen erforderlich sein.
Ich habe gerade begonnen, Subversion zu verwenden, daher kenne ich mich mit all den Möglichkeiten nicht aus.
Wie ich verstehe, würde ein neuer Zweig für B beide von diesem Punkt an trennen, was ich nicht brauche.
Was ist der beste Weg, um A und B so zu pflegen, dass zukünftige Änderungen für beide Versionen gelten, ohne sie manuell zweimal anwenden zu müssen?
Das ist die gleiche Art, wie ich diese Dinge vorher gemacht habe, ohne an Subversion zu denken. Könnte sein, dass es eine bessere Lösung mit Subversion gab, das war mein Grund für die Frage. – Holgerwa
Mit ifdefs innerhalb des Codes, um einen "gemeinsamen" Code-Basis-Speicherort zu pflegen, ist nicht so einfach, wie es aussehen könnte und ich kann es nicht empfehlen.Am Ende wird es eine weitere wichtige Quelle für Change Control Albtraum sein, denn es ist einfach, dass im selben Quellcode, Nebenwirkungen "Cross" Versionen einzuführen. Je mehr "Zweige" Sie haben, desto problematischer ist es, die Änderungen für eine bestimmte Version zu verfolgen und die Nebenwirkungen für die restlichen Versionen auszublenden. –
@Catalin Pitis: Für jede einzigartige Hardware-Umgebung muss es zumindest einige Verzweigungen des Codes geben. IMHO, sollte man versuchen zu isolieren, was so einzigartig wie möglich ist, und vorzugsweise sammeln Sie es an einem Ort. Manchmal funktioniert #ifdefs gut, manchmal ist es sinnvoll, einige hardwarespezifische Treiberklassen oder Funktionen zu erstellen. Was empfehlen Sie als Alternative? –