Я знаю, что об этом уже много раз спрашивали, но я считаю, что моя ситуация иная.
Я пытаюсь добавить ловушку pre-revprop-change в наш репозиторий SVN, чтобы можно было вносить изменения в сообщения журнала.
Прежде чем я добавил файл pre-revprop-change
, я получал эту ошибку:
$ 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
«Нет проблем, - подумал я. Добавлю:
$ 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
Итак, согласно всему остальному, что я читал о SO, это должно быть все, что мне нужно, чтобы заставить его работать. Но когда я снова пытаюсь отредактировать сообщение журнала, я все равно получаю сообщение об ошибке (на этот раз уже другое):
$ 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.
Следует отметить несколько моментов:
1) Репозиторий размещен на сервере SELinux (Fedora core 10). Возможно, мне нужно что-то сделать с этими разрешениями? Вот разрешения SE для ловушки:
$ ls -alZ pre-revprop-change
-rwxr-xr-x apache apache unconfined_u:object_r:httpd_sys_content_rw_t:s0 pre-revprop-change
2) Доступ к репозиторию осуществляется через WebDAV (обратите внимание на https://
в имени репозитория). Есть ли что-то, что мне нужно настроить на стороне WebDAV, чтобы разрешить изменения до изменений?