[subversion&apache] live/devel/test versies

Pagina: 1
Acties:

  • maartenvdv737
  • Registratie: Augustus 2000
  • Laatst online: 16-05 20:36
Ik ben bezig me te verdiepen in version control, om onze projecten beter te beheren. Ik ben het subversion boek aan het doornemen, en daar staat erg veel in. Op dit moment heb ik de volgende constructie:

Windows client: TortoiseSVN
Unix Server: SVN
Webserver: Apache

Ik heb SVN niet als apache module geinstalleerd, alles loopt gewoon over SSH.

Ik heb drie subdomeinen per domeinnaam:
test.domein.nl (copy van repository die getest moet worden)
devel.domein.nl (een directe weergave van de huidige repository)
www.domein.nl (live versie van het domein)

Het idee is dat er gewerkt kan worden aan het project onder devel.domein.nl, vervolgens, als de testfase bereikt wordt, moet er een copy naar test.domein.nl en als die goedgekeurd is moet het door naar www.domein.nl.

Ik wil graag dat we ten alle tijden snel terug kunnen schuiven tussen deze versies. Blijkt de Live versie toch niet goed te zijn, dan moet de vorige live versie teruggezet worden, en moet de huidige live naar devel terug.

Ik zie een command: "svn copy" waarmee ik een tag kan maken. Volgens mij kan ik hiermee een copy maken van de huidige repository. Daarmee zou ik de verschillende domeinen kunnen vullen. Echter, dan werkt het terugdraaien niet meer.


Heeft iemand een idee hoe ik dit het beste in de praktijk kan brengen?

Ik blijf er iig vrij nuchter onder....


Verwijderd

svn is een version control systeem... tuurlijk kan je snel terugdraaien, maar dat wist je al ;)

ik neem even aan dat je PHP/HTML/whatever code in je svn staat en je apache server alleen de web content draait, en niks met svn te maken heeft...

wat je dan doet is je webroot leeggooien (of iig het gedeelte van je website dat onder SVN beheer staat), en een checkout van de juiste tag naar de juiste webroot voor het betreffende domein. al klaar...

maak voor elke nieuwe live en test versie een nieuwe tag in svn, voor devel is dit niet echt nodig omdat je al de live en test tags hebt.
zo kan je altijd een oudere versie snel terugzetten door naar een oudere tag te revert-en

(en maak je geen zorgen over het diskruimte gebruik van svn, die zorgt voor een optimale opslag, alleen verschillen worden namelijk opgeslagen, vuistregel voor het ruimtegebruik van svn is ongeveer 3 keer de grootte van de data die onder versiebeheer staan, dus als je een tag maakt, wordt er geen, (nou ja, een paar bytes) extra ruimte op je disk gebruikt )

en nog een tip, waarschijnlijk heb je het al gedaan, maar goed hier komt ie toch.
ga in een rustig hoekje zitten en lees van "version control with subversion" hoofdstuk 1 t/m3 en van hoofdstuk 4 paragraaf "tags" en hoofdstuk 5 paragraaf "adding projects" eerst eens helemaal door. dat geeft je een goed overzicht van hoe en wat met svn.
(voor de mensen die dit ook interessant vinden het boek is hier voor html en hier voor pdf te vinden, en de FAQ is hier)

en nog een tip, maak de .svn directory ontoegangkelijk voor je website bezoekers (in je apache config), dit is namelijk belangrijke data voor svn, maar niet voor je website bezoekers.

[ Voor 48% gewijzigd door Verwijderd op 22-07-2004 11:22 ]


  • maartenvdv737
  • Registratie: Augustus 2000
  • Laatst online: 16-05 20:36
Ik werk met tortoisesvn, die maakt een working copy aan op mijn systeem. De repository staat op de server.

Nu wil ik dus een tag maken, in test/ en www/, maar dan krijg ik de melding dat de map geen working copy is:

svn copy file:///home/maartenvdv/mvanderveen/svn/shiatsu shiatsu

Dat klopt, want de working copy staat op mijn client. Is het ook mogelijk om zo'n tag te maken vanuit tortoisesvn?

Ik blijf er iig vrij nuchter onder....


  • maartenvdv737
  • Registratie: Augustus 2000
  • Laatst online: 16-05 20:36
Ik zie dat er een functie is om een branch/tag te maken, in tortoisesvn, maar dan krijg ik de melding dat de map waar ik het heen wil copieren geen repository is. Dat klopt, want ik wil alleen een kopie van de files, zodat mijn apache die kan serveren.

Iemand een idee?

Ik blijf er iig vrij nuchter onder....


Verwijderd

in je repository maak je een tag, door in je repository te kopieeren
code:
1
2
svn copy file:///home/maartenvdv/mvanderveen/svn/shiatsu 
     file:///home/maartenvdv/mvanderveen/svn/shiatsu_test/shiatsu_test_v1.0

en de volgende tag wordt dan
code:
1
2
svn copy file:///home/maartenvdv/mvanderveen/svn/shiatsu 
     file:///home/maartenvdv/mvanderveen/svn/shiatsu_test/shiatsu_test_v1.1

en voor een live tag nadat de test is goedgekeurd doe je dan
code:
1
2
svn copy file:///home/maartenvdv/mvanderveen/svn/shiatsu_test/shiatsu_test_v1.1 
     file:///home/maartenvdv/mvanderveen/svn/shiatsu_live/shiatsu_live_v1.1

dan doe je in je webroot waar je het wilt hebben een checkout van de tag directory
code:
1
svn checkout file:///home/maartenvdv/mvanderveen/svn/shiatsu_test/shiatsu_test_v1.1

als je die lastige .svn directory in je webroot niet wilt hebben kan je ipv "checkout" ook "export" gebruiken

maar de truuk is dus om in je repository een aparte dir te maken waarin je de tags maakt
een tag is trouwens niks anders dan elke andere directory in je repository, aleen in je hoofd heeft ie een andere betekenis

ik heb in de repository root 3 directories gemaakt, met in trunk de developers versie, en in tags komen de tags
maar dat hoeft niet speciaal, je kan er ook zelfgemaakte benamingen voor maken
(ik doe een gooi, shiatsu_test en shiatsu_live)

hierondereen screenshot van tortoiseSVN na het indrukken van het branch/tag knopje, en daaronder wat er dan in je repository gebeurt

Afbeeldingslocatie: http://www.resc.demon.nl/svn_repository.JPG

[ Voor 124% gewijzigd door Verwijderd op 22-07-2004 19:19 ]