Forum: PC-Programmierung SVN Branches und Visual Studio


von derDäne (Gast)


Lesenswert?

Hi

Ich entwickle C++ Projekte mit Visual studio 2008.
Dabei habe ich Solutions die aus mehreren separat versionierten 
Projekten bestehen. Diese sind in Hauptprojekte und Grundmodule 
gegliedert.
Mein SVN sieht also so aus:

root\
-->Grundmodule
|-->Grundmodul1
||-->trunk
|||-->Grundmodul1.vcproj
||->tags
|||-->V0.1
||||-->Grundmodul1.vcproj
|||-->V0.2
||||-->Grundmodul1.vcproj
|-->Grundmodul2
||-->trunk
|||-->Grundmodul2.vcproj
||-->tags
|||-->V0.1
||||-->Grundmodul2.vcproj
-->Projekt1
|-->trunk
||-->Projekt1.vcproj
|-->tags
||-->V1.0
|||-->Projekt1.vcproj
-->Projekt2
|-->trunk
||-->Projekt2.vcproj
|-->tags
||-->V1.1
|||-->Projekt2.vcproj

Auf meiner Platte die dann so. Ausgechekct sind nur Trunks

root\
-->Grundmodule
|-->Grundmodul1
||-->Grundmodul1.vcproj
|-->Grundmodul2
||-->Grundmodul2.vcproj
-->Projekte
|-->Projekt1
||-->Projekt1.vcproj
|-->Projekt2
||-->Projekt2.vcproj

Generell arbeite ich auf dem trunk, Releases werden in Tags gebracht.
Grundmodule werden immer wieder überarbeitet und "modernisiert".
In meinem Projekten arbeite ich auf Absoluten Pfaden der Grundmodule

Wenn ich nun in einer alten Version eines Hauptprojektes einen Bug fixen 
möchte brauche ich die dazu passenden Versionen der Grundmodule.

Natürlich sind es mehr als nur ein zwei module und Hauptprojekte 
deswegen folgende Frage:

Wie kann ich, (teil-)automatisiert die Branches der Grundmodule 
auschecken.
Bzw. wie löst ihr diese Problem

Vielen Dank
derDäne

von Kaj (Gast)


Lesenswert?

derDäne schrieb:
> Wie kann ich, (teil-)automatisiert die Branches der Grundmodule
> auschecken.
> Bzw. wie löst ihr diese Problem

Wir machen das auf arbeit so, das wir zu jedem projekt eine datei haben, 
in der alle unterprojekte mit svn-pfad und ggf. revisionsnummer drin 
steht.

In etwa so:

unterprojekt1: "https://mein/svn/server/projekt/trunk";
unterprojekt2: "https://mein/svn/server/projekt/branches/xy -r 4096"
unterprojekt3: "<vollstaendiger svn-pfad>"
unterprojekt4: "<vollstaendiger svn-pfad> -r 23401"
unterprojekt5: "<vollstaendiger svn-pfad> -r 96"

usw.

Über Skripte (shell/batch) kannst du die Datei einfach einlesen, 
auswerten und automatisch auschecken. Wenn du unter windows arbeitest 
brauchst du zu "tortoise svn" noch "slik svn". in meinem Beispiel wird 
für die unterprojekte 2, 4 und 5 die Projekte in der entsprechenden 
revision ausgecheckt. Die Datei muss natüerich gepflegt werden, aber 
wenn sie erstmal da ist, ist alles ganz easy.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Kaj schrieb:
> Wir machen das auf arbeit so, das wir zu jedem projekt eine datei haben,
> in der alle unterprojekte mit svn-pfad und ggf. revisionsnummer drin
> steht.

Ganz ohne Datei und Tools kann man sowas aber auch über SVN externals 
erreichen...

von derDäne (Gast)


Lesenswert?

Hey

Ich kenn mich da zu wenig aus aber Externals soll man doch nicht nehmen.

Ja das mit der Datei ist soweit einläuchtend.

Problem ist zusätzlich: ich möchte beim bearbeiten eines alten Standes 
meinen aktuelle Arbeitskopie nicht überschreiben
Irgendwie sollte das in einem separaten Ordner geschehen.

von Gustav (Gast)


Lesenswert?

derDäne schrieb:
> aber Externals soll man doch nicht nehmen

Wie kommst du darauf?

von Kaj (Gast)


Lesenswert?

Läubi .. schrieb:
> Kaj schrieb:
>> Wir machen das auf arbeit so, das wir zu jedem projekt eine datei haben,
>> in der alle unterprojekte mit svn-pfad und ggf. revisionsnummer drin
>> steht.
>
> Ganz ohne Datei und Tools kann man sowas aber auch über SVN externals
> erreichen...

Hatten wir auch mal... dann haben wir angefangen den ganzen external 
mist raus zu werfen, weil die externals mehr arbeit und probleme gemacht 
haben, als sie loesten.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.