Закрытие билетов в Trac с сообщением Git commit - PullRequest
3 голосов
/ 20 июня 2011

Я пытался использовать Trac с Git.

  1. Я настроил плагин Git - он правильно отображает репозиторий и наборы изменений на вкладке «Обзор источника».
  2. Включил плагин CommitTicketUpdater, настроил его: отключил аутентификацию, установил, чтобы не использовать скобки, оставил ключевые слова по умолчанию.
  3. Добавлены некоторые заявки.
  4. Готово фиксируется с сообщениемсодержит "close # 5".

Trac видит номер заявки (в наборах изменений он помечен красным и связан с заявкой), но не закрывает заявку № 5. Что может быть не так?

ТИА

Ответы [ 5 ]

0 голосов
/ 21 января 2014

Если это поможет, я заполнил свой trac ini следующим текстом:

[ticket] commit_ticket_update_commands.close = close

Официальная документация утверждает, что если вы оставите 'commit_ticket_update_commands.close ='пустое, обновление коммитера будет использовать некоторые ключевые слова по умолчанию, чтобы решить, должно ли оно закрыть тикет, но это не работает для меня.Единственное, что работает, - это явно установить какое-либо ключевое слово в этом поле, например (commit_ticket_update_commands.close = close)

0 голосов
/ 17 сентября 2013

У меня была такая же проблема. Похоже, что плагин git CommitTicketUpdater по умолчанию рассчитывает заключить в квадратные скобки термин, например [закрывает # 5]. См. Также trac.init для commit_ticket_update_envelope в этой записи в блоге

0 голосов
/ 22 июня 2011

Я бросил Trac, переключился на Redmine. Теперь это немного лучше - фиксирует ссылку с указанным идентификатором билета на тикеты, но опять же - «исправления № 1» не закрывают тикет № 1 ... Afaik Redmine не нуждается в крючках ..

0 голосов
/ 10 февраля 2012

как вы используете репозиторий trac?Обычно у вас есть trac, запущенный на сервере, куда вы нажимаете.Ловушка после фиксации не запускается после нажатия.

В этом случае вам понадобится ловушка после получения.Я внес несколько изменений в хук post-receive в пакете git-plugin, так как в нем были некоторые ошибки.(Например, вы можете сделать только одно изменение / секунду для тикета в trac, поэтому мне пришлось добавить sleep (1), так как при нажатии все ваши коммиты будут обрабатываться за одну секунду. И вы также можете указатьколичество отработанных часов)

Этот хук после получения можно найти на моем github: https://github.com/JensTimmerman/TRAC-SVN-to-GIT-migration/blob/master/hooks/trac-post-receive-hook.py

Вы должны установить его в /path/to/your/.git/hooks/ post-receive и убедитесь, что он исполняемый (chmod + x /path/to/your/.git/hooks/post-receive в linux) и измените «TRAC_ENV = '/ home / jens / tractest /'» так, чтобы он указывал наваша среда trac.

edit:

Если вы не размещаете свой git-репозиторий на том же сервере, на котором работает trac, вы можете выполнить временное git-репо и нажатьснова к одному траку, используемому с заданием cron или около того.Затем это снова вызовет ловушку post-receive в вашем реальном хранилище и обновит ваш trac.

У меня есть это на месте:

a64609@chaos:~/git$ ls
gitcron.log  realrepo  syncgit.sh  tmprepo

где tmprepo - это просто место, где я тяну инажми и у ререпрепо есть мой пост-приемный хук.с syncgit.sh:

cd /home/username/git/tmprepo;
git pull;
git push real;

и удаленным «реальным» tmprepo, установленным на

a64609@chaos:~/git/tmprepo$ git remote -v show
origin  https://JensTimmerman@github.com/hpcugent/easybuild.git
real    ../realrepo/

, и все синхронизируется с помощью записи в crontab (поместите это в crontab -e)

*/3 * * * * /hhome/username/git/syncgit.sh  >> /home/username/git/gitcron.log 2>&1
0 голосов
/ 20 июня 2011

Если я следую документации , вам следует попробовать closes #5. Если это все еще не работает, попробуйте определить, правильно ли настроен post-commit-hook .

#XXX - это стандартный синтаксис Trac / Wiki для ссылки на билет XXX, с другой стороны, [YYYY] будет ссылаться на коммит YYYY, он всегда будет работать, даже если не определен post-commit-hook.

Обязательно активируйте post-commit-hook с помощью по этой ссылке

...