jmeMedlem sedan maj 20012 237 inlägg Hej.
Hur lägger ni upp era projekt under versionshantering (mest intresserad av svn - subversion)?
T ex om ni har 2-3 web-projekt som alla delar på gemensam kod men som ändå i viss mån har unika versioner av vissa klasser.
Försöker här själv klura ihop ett passande struktur.
Tar gärna emot förslag och tips. :bire
Det är väl bl a externals och merge som jag funderar på.
dAEkMedlem sedan feb. 20041 816 inlägg Jag undrar också hur ni andra gör.
På jobbet har vi snackat om att strukturera om men det blir aldrig av när man är många som tycker och vill olika. F.n. har vi oftast ett repository för varje projekt men det tycker jag är rätt kasst eftersom man inte kan använda repobrowsern för att få en överblick.
Kan ingen som har lite mer erfarenhet av SVN droppa några tankar eller två?
Intressant fråga, är också nyfiken på svar. Jag gör en mapp för varje projekt med trunk, tags, branches av gammal vana men det vore ju bra att ha något gemensamt för den kod projekten delar (vilket de alltid nästan gör).
colioneMedlem sedan juni 20014 421 inlägg Separera ut gemensam kod till ett eget projekt med branches/tags/trunk.
Det finns väl egentligen 4 bra vägar att gå (och varianter på dem):
- Varje projekt bor sedan i ett eget repo och har en versionshanterd make/ant/rake/vad-du-nu-vill-fil. I denna fil specar ni olika parametrar som version av bibliotek, vart saker och ting ska hamna (självklart ska det finnas vettiga standardvärden om man inte vill konfigurera själv), man kan ha olika buildtargets (dev, stage, prod). Man utvecklar alltså alltid mot sin working copy (både kundprojektmässigt biblioteksprojektmässigt) och låter sedan byggprogrammet göra vad den ska med bygg-filen och bygga ihop det till en app (köra svn export/checkout/copy och andra relevanta kommandon).
- Låta svn hooks sköta uppdatering/checkouts/logik av delade filer
- Använda svn externals, som skapar en typ av sub-repo i ditt repo. Då lägger du alltså in en URL till en specifik version av ditt biblioteks-repo som en external.
- En blandning av ovannämnda tre metoder
Valet är lite upp till hur stor flexibilitet man vill ha:
- Byggfilen ger mest felxibilitet och frihet i kodandet, med nackdelen att du repeterar funktionalitet som redan finns i svn.
- Hooks tycker jag personligen är lite jobbigt att underhålla när de ska innehålla mycket logik
- Externals är i vissa fall inte tillräckligt kraftfulla.
En mix av externals/hooks och byggsystem i perfekt symbios är svårt att få. Jag använder helst en blandning av externals och bygg-fil och låter hooks göra tråk-grejer (mail och krafs).