[Trac] Help with Post-receive hook for Git

17 views
Skip to first unread message

Patty Cottrill

unread,
Aug 10, 2023, 4:58:32 PM8/10/23
to trac-...@googlegroups.com
I have a question regarding the Git post-receive hook.
 
Per the Trac Repository Admin guide (link below), the suggested post-receive hook is:
 
#!/bin/sh
tracenv=/path/to/env  # set to your Trac environment's path
repos=                # set to your repository's name
while read oldrev newrev refname; do
    if [ "$oldrev" = 0000000000000000000000000000000000000000 ]; then
        git rev-list --reverse "$newrev" --
    else
        git rev-list --reverse "$newrev" "^$oldrev" --
    fi | xargs trac-admin "$tracenv" changeset added "$repos"
done
 
 
Per the ticket below in Trac Edgewall, the above hook is dangerous and the recommended hook is:
 
#!/bin/sh
tracenv=/path/to/env     # change with your Trac environment's path
repos=                   # change with your repository's name
while read oldrev newrev refname; do
    if expr "$oldrev" : '0*$' >/dev/null; then
        branches=`git for-each-ref --format="%(refname)" | grep -vw "$refname"`
        git rev-list --reverse "$newrev" --not $branches --
    elif expr "$newrev" : '0*$' >/dev/null; then
        : # do nothing upon removing a branch
    else
        git rev-list --reverse "$newrev" "^$oldrev" --
    fi | xargs --no-run-if-empty trac-admin "$tracenv" changeset added "$repos"
 
done
 
 
Can you please tell me which hook I should be using.
I read through the different comments on that ticket, as well as #10730, but I really did not see any conclusion.
As I understand it, the danger of the first script is generating many commits at once, as well as lots of email notifications.
However, the problem with the 2nd script is it won’t work when pushing multiple branches.
Please advise.
 
Below is the environment:
  • Trac  1.2.3
  • Babel 1.3
  • Docutils 0.12
  • Genshi 0.7 (with speedups)
  • GIT 2.7.4
  • mod_python 3.3.1
  • Pygments 2.1
  • pysqlite 2.7.0
  • Python 2.7.12
  • Pytz 2014.10
  • setuptools 20.7.0
  • SQLite 3.11.0
  • jQuery 1.11.3
  • jQuery UI 1.11.4
  • jQuery Timepicker 1.5.5
  • Apache2 2.4.18
 
 
Best,
Patty Cottrill
 
 
*** CONFIDENTIALITY NOTICE: This email and any attachments from IMCI Technologies are for the sole use of the intended recipient and may contain material that is proprietary, confidential, privileged or otherwise legally protected or restricted under applicable government laws. Any review, disclosure, distributing or other use without expressed permission of the sender is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies without reading, printing, or saving. ***
Reply all
Reply to author
Forward
0 new messages