So che questo è stato chiesto molte volte prima, ma credo che la mia situazione sia diversa.SVN hook pre-revprop-change not working
Sto tentando di aggiungere un hook pre-rev-change-change al nostro repository SVN per abilitare le modifiche da apportare ai messaggi di registro.
Prima ho aggiunto il file pre-revprop-change
stavo ottenendo questo errore:
$ svn propset -r 557 --revprop svn:log "New message!" https://myserver/repos/myrepo
svn: DAV request failed; it's possible that the repository's pre-revprop-change hook either failed or is non-existent
svn: At least one property change failed; repository is unchanged
svn: Error setting property 'log':
Repository has not been enabled to accept revision propchanges;
ask the administrator to create a pre-revprop-change hook
Nessun problema, ho pensato. Io aggiungo:
$ cd /var/www/svn/myrepo/hooks
$ # Create the simplest hook possible
$ echo '#!/bin/sh' > pre-revprop-change
$ echo 'exit 0' >> pre-revprop-change
$ # Check that it looks correct
$ cat pre-revprop-change
#!/bin/sh
exit 0
$ # Looks good, now make it executable
$ chmod a+x pre-revprop-change
$ # Check the permissions
$ ls -al pre-revprop-change
-rwxr-xr-x 1 apache apache 17 2012-05-24 12:05 pre-revprop-change
$ # Run it, to make sure it runs, and check the error code
$ ./pre-revprop-change
$ echo $?
0
Quindi, in base a tutto il resto che ho letto su SO, che dovrebbe essere tutto quello che serve per farlo funzionare. Ma, quando si tenta di modificare nuovamente il messaggio di log, ho ancora un errore (uno diverso questa volta):
$ svn propset -r 557 --revprop svn:log "New message!" https://myserver/repos/myrepo
svn: DAV request failed; it's possible that the repository's pre-revprop-change hook either failed or is non-existent
svn: At least one property change failed; repository is unchanged
svn: Error setting property 'log':
Revprop change blocked by pre-revprop-change hook (exit code 255) with no output.
ci sono alcuni punti da notare:
1) Il repository è ospitato su un server SELinux (core 10 di Fedora). Forse c'è qualcosa che devo fare riguardo a quei permessi? Ecco le autorizzazioni SE del gancio:
$ ls -alZ pre-revprop-change
-rwxr-xr-x apache apache unconfined_u:object_r:httpd_sys_content_rw_t:s0 pre-revprop-change
2) Il repository si accede tramite WebDAV (notare il https://
nel nome repository). C'è qualcosa che ho bisogno di configurare sul lato WebDAV per consentire modifiche pre-rev-change-change?
Se questo è sicuro dipende dalle vostre norme di "garantire" :) ... ma sì, SELinux può causare alcuni problemi sottili, che possono essere diagnosticato abilitando la registrazione, però. – 0xC0000022L
Grazie. Sì, non credo che il nostro server sarà hackerante, ma volevo solo assicurarmi di non aver aperto un enorme buco di sicurezza! Sai perché usare 'httpd_sys_script_exec_t' non ha funzionato? Sembra dalla documentazione che dovrebbe avere ... –
Avrei pensato anche che questo avrebbe dovuto funzionare. Non ho idea del motivo per cui deve essere "httpd_exec_t" invece di "httpd_sys_script_exec_t". Ma è possibile che SELinux sia in qualche modo in grado di distinguere gli script il cui output va ad Apache da quelli dove va altrove.Tu dove usi Apache e non 'svnserve' (anche se Apache può farlo da proxy), giusto? – 0xC0000022L