Unsere Entwicklung verwendet viel Open-Source-Code, und ich versuche herauszufinden, wie ich diese externen Abhängigkeiten am besten verwalten kann.
Unsere derzeitige Konfiguration:
- wir entwickeln sowohl für Linux als auch für Windows
- Wir verwenden svn für unseren eigenen Code
- externe Abhängigkeiten (boost, log4cpp usw.) werden nicht in svn gespeichert. Stattdessen lege ich sie unter ./extern (oder c: \extern unter Windows). Ich möchte sie nicht in unser Repository aufnehmen, weil ich sie dann nicht mehr aktualisieren kann. Einige von ihnen werden ständig aktualisiert.
Meine Fragen
-
Was ist zu tun, wenn ich externen Code ändern muss? Derzeit habe ich in meinem svn-Repository einen Ordner mit dem Namen extern_hacks angelegt, in dem ich den modifizierten externen Code ablege. Ich verlinke (oder kopiere unter Windows) die Dateien dann in die externe Verzeichnisstruktur. Diese Lösung ist problematisch, da es schwer ist, den Überblick über das Kopieren der Dateien zu behalten, und es sehr schwer ist, die Dateien von svn aus zu aktualisieren, wenn sie in zwei Repositories liegen (meinem für die geänderten Dateien und dem ursprünglichen Repository, z.B. sourceforge)
-
Wie verwaltet man die Versionen von externen Abhängigkeiten?
Ich bin gespannt, wie andere mit diesen Fragen umgehen. Danke!