[subversion] post-commit hook script voor auto deployment

Pagina: 1
Acties:

  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
Ik heb een C programmatje gemaakt adv deze 'tutorial' http://forum.webfaction.com/viewtopic.php?pid=216#p216 om er voor te zorgen dat na iedere commit de files uit de repository automatisch worden gedeployed naar mijn JBoss deploy map.

dit staat er in mijn post-commit in de /hook map van de repository:
code:
1
2
3
4
#!/bin/sh
/bin/svn_update

test > /home/project/repository/hooks/test.txt


test > /home/project/repository/hooks/test.txt heb ik er in gezet om te kijken of het post-commit script uberhaupt wel wordt aangeroepen, dit is het geval want test.txt wordt aangemaakt. Echter het automatisch deployen wat in /bin/svn_update gebeurt werkt niet. Als ik los ./postcommit of /bin/svn_update dan doet hij het wel, alleen svn gaat via apache en ik vermoed dat er iets niet goed met de rechten gaat.

Uit wanhoop heb ik al chmod 777 op /home/project gedaan, maar dat werkt ook niet.

Ik draai geen SElinux.

Dit is het /bin/svn_update bestandje:
code:
1
2
3
4
5
6
7
8
9
#include <stddef.h>
#include <stdlib.h>
#include <unistd.h>

int main(void) {
    execl("/usr/bin/svn", "svn", "update", "/home/project/jboss-4.0.5.GA/server/default/deploy/",
    (const char *) NULL);
    return(EXIT_FAILURE);
}



dan nog de rechten:
code:
1
2
3
4
5
6
7
8
9
10
11
12
[root@linux-server hooks]# ls -l
total 36
-rwxrwxr-x 1 apache apache   74 Nov 28 20:46 post-commit
-rwxrwxrwx 1 apache apache 1638 Nov 28 16:33 post-lock.tmpl
-rwxrwxrwx 1 apache apache 2255 Nov 28 16:33 post-revprop-change.tmpl
-rwxrwxrwx 1 apache apache 1567 Nov 28 16:33 post-unlock.tmpl
-rwxrwxrwx 1 apache apache 2934 Nov 28 16:33 pre-commit.tmpl
-rwxrwxrwx 1 apache apache 2038 Nov 28 16:33 pre-lock.tmpl
-rwxrwxrwx 1 apache apache 2764 Nov 28 16:33 pre-revprop-change.tmpl
-rwxrwxrwx 1 apache apache 1979 Nov 28 16:33 pre-unlock.tmpl
-rwxrwxrwx 1 apache apache 2137 Nov 28 16:33 start-commit.tmpl
-rw-r--r-- 1 apache apache    0 Nov 28 20:50 test.txt


code:
1
2
3
[root@linux-server bin]# ls -l | grep svn_update
-rwsr-sr-x 1 root root    4776 Nov 28 20:24 svn_update
-rw-r--r-- 1 root root     230 Nov 28 20:24 svn_update.c


Iemand een idee wat het kan zijn? Als ik het dus handmatig run met zowel root of project als user dan werkt alles, alleen als ik een commit doe op een workstation doet de /bin/svn_update het niet.

Alvast bedankt

  • GX
  • Registratie: Augustus 2000
  • Laatst online: 14-05-2025

GX

Nee.

Los van het feit dat het niet werkt, waarom maak je zoiets in C en niet gewoon in een sh-script oid?

  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
GX schreef op dinsdag 28 november 2006 @ 21:55:
Los van het feit dat het niet werkt, waarom maak je zoiets in C en niet gewoon in een sh-script oid?
Stond in het voorbeeld, maar een sh-script werkt ook niet. Als ik het volgende in php probeer doet hij het ook niet:
<?
echo exec('/usr/bin/svn update /home/project/jboss-4.0.5.GA/server/default/deploy/');
?>
Als ik hem via het web aanroep werkt hij niet, omdat hij het dan met de user apache aanroept denk ik. als ik command line php commit.php doe dan werkt het wel... Het heeft iets met rechter te maken, maar wat weet ik niet.

  • GX
  • Registratie: Augustus 2000
  • Laatst online: 14-05-2025

GX

Nee.

Doe dan eens iets van
code:
1
whoami > /tmp/whoami.txt

En zie welke rechten de user heeft die dan in dat bestand staat.

  • tomato
  • Registratie: November 1999
  • Niet online
Lees wat er in het blauwe kadertje staat (bij 'Tip'): Hook Scripts