Fork verwalten (Änderungen in einem Projekt ins andere Übernehmen)

jeipack

Erfahrenes Mitglied
Hi
Wir haben zwei Projekte mit der gleichen Codebasis*, eines davon das ständig weiter entwickelt wird und eines das bei dem bestimmte Sachen speziell angepasst werden.
Nun sollen aber Änderungen im ersten Projekt auch ins Speziallisierte übernommen werden. Bei Klassen die sich nicht geändert haben, oder die nicht speziell angepasst wurden ist das relativ einfach. Bei Klassen die aber speziell angepasst wurden und nun im ersten Projekt weiter entwickelt wurden kann dies sehr mühsam werden.

Nun wollte ich mal fragen ob jemand von euch schon Erfahrungen damit hat?
Es gibt ja einige Projekte die so ablaufen (Als Beispiel Google Chrome und Chromium, resp die auf Chromium aufbauenden Projekte).

Bin um jegliche Infos zu dem Thema dankbar (auch Links, Bücher, etc).


*: Eigentlich sind es mehr als 2 Projekte, da es verschiedene Projekte gibt bei denen unterschiedliche spezielle Anpassungen gemacht werden. Was die Sache nochmals verkompliziert, resp. aufwändig macht.
 

saftmeister

Nutze den Saft!
Welches Versionskontrollsystem wird verwendet?

Bei SVN bspw. gibts die Aktionstrigger, z.B. beim check-in bestimmte Scripts ausführen. Man könnte das so veranstalten, das wenn jemand in dem "Hauptprojekt" eincheckt, die Änderungen quasi autonom an die Childs weitergeleitet werden, in dem man ein Shell-Script im entsprechenden Branch aufruft. Man nennt diese Trigger-Scripte auch Hooks, so gibt es bspw. ein post-commit-hook, mit dem könnte man das erledigen.
 

jeipack

Erfahrenes Mitglied
Leider! wird VSS verwendet. Aber abgesehen davon geht mir das noch nicht weit genug. Nehmen wir mal eine Beispielklasse: class ABC mit zwei Funktionen function1 und function2:
Code:
class ABC {
	fuction1() {
		...
	}
	function2() {
		...
	}
}
Sagen wir nun diese Klasse wird "geforkt" und die function2 angepasst. Wird nun die function1 im Hauptprojekt geändert kann ich mir noch vorstellen dass dies relativ autonom (lassen wir die technischen Details der Realisierung einfach mal weg) übernommen wird. Wird nun aber im Hauptprojekt die function2 angepasst kann dies nur sehr schwer autonom übernommen werden.
Allerdigns ist die Anforderung auch nicht dass alles automatisch geschiet, es darf durchaus manuelle Arbeit anfallen, allerdings sollte es so vereinfacht wie nur irgend möglich werden.
Deshalb wären auch Infos wie eine Klasse im Fork am besten angepasst wird und was beim "forken" zu beachten ist nützlich.
Im Internet habe ich einige Projekte gefunden die geforkt wurden und auch dass Änderungen auch wieder in den Fork fliesen oder Teils sogar in beide Richtungen. Nur habe ich nichts über den grundsätzlichen Ablauf gefunden.

Aber vielen Dank für den Input!

Grüsse
jeipack
 

saftmeister

Nutze den Saft!
Ich kenne mich mit Visual SourceSafe nicht aus, gehe aber davon aus, das es ähnlich den anderen VCS arbeitet. Dann kann man keine einzelnen Dateien forken, nur ganze Projekte.

Mit Sicherheit kann man auch mit VSS scripten, so das man gewissen Dinge automatisieren kann. Was für deine Zwecke wohl sinnvoller wäre sind sog. Branches und keine Forks.

Edit: Hier gibts richtig gute Infos zum Thema: http://msdn.microsoft.com/en-US/library/b93a82h6(v=VS.80).aspx
 
Zuletzt bearbeitet:

Neue Beiträge