через некоторое время я наконец подключил trac к git, но теперь у меня проблема с установкой хука post-receive.
Мой пользователь git является частью группы www-data, а www-data также является частью группы git. Но проблема в том, что обработчик post-receive использует этот код (python) для вызова trac-admin:
args = [TRAC_ADMIN, TRAC_ENV, 'changeset', 'added', REPO_NAME] + commits
call(' '.join(args), shell = True)
Это вызовет в оболочке следующее:
/usr/bin/trac-admin /var/lib/trac/MyTrac changeset added /home/git/repositories/mynewrepo.git/ 372ba439b9fa430c932095de608cb084d6ab98eb
Но когда я перехожу к trac и к тикету, на который должна ссылаться сделанная фиксация, я ничего не получаю.
Но, что еще более странно, если Я просто копирую звонок и запускаю в терминале(на сервере), тогда билет обновляется.
Я снова протестировал, на этот раз я сделал новую фиксацию, и снова тикет не обновился, затем на сервере сделано:
su git
И вызвал команду, и увидел, что ни один тикет не обновился ... Затем, вызывая его с root, я могу заставить его работать...
Итак, что здесь происходит? Почему мой пользователь git может вызывать trac-admin?
Я не знаю, является ли это частью проблемы, но когда я запускаю which trac-admin, я получаю:
/usr/bin/trac-admin
И это принадлежит корень.
Как мне тогда заставить пользователя git вызывать trac-admin?
Спасибо
В итоге я не смог заставить эту работу работать, поэтому мне удалось переустановить все с самого начала.
И когда я устанавливал trac, вместо того, чтобы использовать apt-get install trac, Я скачал источник из github(trac 0.12) и установил (с требованиями тоже) оттуда.
После того, как я сделал это, я проверил, где находится trac-admin, с помощью "which trac-admin" и получил:
/usr/local/bin/trac-admin
И после установки и настройки все заработало нормально.
Поэтому я считаю, что установка apt-get - не лучший способ делать что-то в trac.
Надеюсь, это поможет любому, у кого тоже может быть эта проблема.
OBS: я сохранил скрипт, устанавливающий хуки apache2 + trac + git +, в github, и если кто-то захочет использовать, вот ссылка: https://github.com/arruda/TRAC-GIT-HOOKS