[svn] Repository contents dumpen op commit

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • dtech
  • Registratie: Juni 2005
  • Laatst online: 13-06 23:19
Een paar mensen ontwikkelen een website via een svn repository. Op een gegeven moment maken ze een tag en kopiëren dan handmatig de inhoud van die tag naar de live-omgeving.

Nu wil ik dat via dev.sitenaam.nl altijd de laatste ontwikkelversie te zien is. Ik dacht een virtualhost voor dev.sitenaam.nl aan te maken en die dan naar een bepaalde directory te laten wijzen. Op het moment dat er dan een commit is wilde ik /trunk/ naar die directory dumpen.

Probleem is dat ik geen idee heb hoe (en of) dat kan, en het enige wat ik met zoeken vind is hoef je een backup kan maken van het hele repository (geschiedenis incluus)

Iemand een idee hoef dit wel kan?

Acties:
  • 0 Henk 'm!

  • michelzwarts
  • Registratie: Juni 2005
  • Laatst online: 19-10-2024
Je kunt met de commit hook een script laten uitvoeren dat je export uitvoert naar je gewenste directory.

Windows Veteran turned Apple Addict


Acties:
  • 0 Henk 'm!

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 10-08 02:59

Gerco

Professional Newbie

Dit kun je doen met een post-commit hook. Daar kun je een svn export command in zetten om de trunk te exporteren.

Kijk in het SVN book, bij Hook scripts, voor details.

[ Voor 33% gewijzigd door Gerco op 12-09-2010 16:06 ]

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Acties:
  • 0 Henk 'm!

  • dtech
  • Registratie: Juni 2005
  • Laatst online: 13-06 23:19
Ik heb het volgens in post-commit.tpl gezet:
code:
1
2
/bin/rm -rf /var/www/dev.sitenaam.nl/*
/usr/bin/svn export --force --username SVNdump --password SVNdump --non-interactive -r HEAD  https://svn.sitenaam.nl/site /var/www/dev.sitenaam.nl/


Toch wordt de directory niet geupdate.

Als ik de commando's zelf uitvoer als www-data gaat alles goed. Enig idee hoe ik dit moet debuggen? Ik heb de paden absoluut opgegeven zoals in de documentatie stond.

Acties:
  • 0 Henk 'm!

  • DizzyWeb
  • Registratie: Februari 2001
  • Laatst online: 05-09 14:30

DizzyWeb

Ondertiteld

Onder welke user draait svn? Heeft die user wel rechten om in die dir te schrijven? Aangezien je zegt dat het handmatig als www-data wel lukt?

Acties:
  • 0 Henk 'm!

  • dtech
  • Registratie: Juni 2005
  • Laatst online: 13-06 23:19
Aangezien ik de apache module van svn gebruik nam ik aan dat svn ook als www-data draait.

Acties:
  • 0 Henk 'm!

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 10-08 02:59

Gerco

Professional Newbie

Die .tmpl files zijn templates (de naam zegt het ook wel een beetje). Je moet ze renamen (die .tmpl eraf halen) en executable maken met chmod +x.
On Unix platforms, this means supplying a script or program (which could be a shell script, a Python program, a compiled C binary, or any number of other things) named exactly like the name of the hook. Of course, the template files are present for more than just informational purposes—the easiest way to install a hook on Unix platforms is to simply copy the appropriate template file to a new file that lacks the .tmpl extension, customize the hook's contents, and ensure that the script is executable.
Tevens is het wellicht makkelijker om het script zo te maken:
code:
1
2
/bin/rm -rf /var/www/dev.sitenaam.nl/*
/usr/bin/svn export file://$1/site /var/www/dev.sitenaam.nl/

In $1 krijg je namelijk het pad op schijf van de repo mee, in $2 het revisie nummer. $2 heb je niet nodig, maar als je $1 gebruikt hoef je niet via de web server de boel te exporteren (inefficient) en hoef je ook geen passwords in dat script te zetten (onveilig).

Het aantal / achter file: moet je een beetje mee spelen, dat heb ik nooit in 1 keer goed.

[ Voor 93% gewijzigd door Gerco op 12-09-2010 19:59 ]

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Acties:
  • 0 Henk 'm!

  • dtech
  • Registratie: Juni 2005
  • Laatst online: 13-06 23:19
Het was inderdaad het hernoemen |:(

En het moesten idd file:// zijn: file:// is het "protocol" en en $1 het pad (dat al een / bevat, tenzij het relatief is). Een extra slash zou wel werken maar overbodig zijn (tenzij het een relatief pad is, dan zou het kapot gaan).

[ Voor 4% gewijzigd door dtech op 12-09-2010 20:32 ]

Pagina: 1