Edgewall Software

Opened 10 years ago

Closed 8 years ago

#7743 closed enhancement (wontfix)

Add/document commit-hook

Reported by: Marcus Lindblom <macke@…> Owned by: Christian Boos
Priority: high Milestone:
Component: plugin/mercurial Version: 0.11
Severity: normal Keywords: multirepos
Release Notes:
API Changes:


There is a commit hook here which IMHO should be incorporated into the plugin.

The comments also refer to a built-in hook, but I was unable to find it (neither in code nor on the TracMercurial page).

Attachments (0)

Change History (7)

comment:1 Changed 10 years ago by Christian Boos

The hook itself: http://www.bitbucket.org/madssj/mercurial-trac-hook/src/tip/trachook.py

Surely having a changeset hook for TracMercurial would be a good thing, but I prefer to base that on the new emerging interface for changeset change notification, as started in #7723.

That way the mercurial hook itself will be quite minimalistic, and the actions to be taken (closing tickets, etc.) would be done externally.

comment:2 Changed 9 years ago by anonymous

looks like #7723 has been fixed; does that mean there's a way to do this now?

comment:3 Changed 9 years ago by Remy Blank

In the MultiRepos branch, the automatic change of tickets based on commit messages has been re-written as a proper plugin (source:sandbox/multirepos/tracopt/ticket/commit_updater.py), which is independent of the VC backend. So there's nothing more to be done in the Mercurial plugin. We still need to document how to call the generic hook (trac-admin $ENV changeset added) for the various backends.

I suggest we close this against 0.12-multirepos.

comment:4 Changed 9 years ago by Christian Boos

Keywords: multirepos added
Milestone: not applicablemercurial-plugin
Priority: normalhigh

comment:5 Changed 9 years ago by dholth

This is the Mercurial hook I use to automatically close tickets when "fixes #1234" appears in a commit message. Must also enable the CommitTicketUpdater plugin.

# Notify trac when new Mercurial changesets arrive.
# Short repository name must be the same as its directory.
# Add to hgrc in the trac repository as
# [hooks]
# changegroup.trac = /path/to/this/script.sh

REPONAME=`basename $PWD`
REVS=`hg log -r $HG_NODE:tip --template {node}\ `
CMD="/usr/bin/trac-admin $ENVIRON added $REPONAME $REVS"

comment:6 Changed 9 years ago by Remy Blank

You also need to set the "commit" hook, and your current script might break for large numbers of revisions (ok, thousands, so that's not going to happen very often). See the bottom of MultipleRepositorySupport#Merge for a complete example.

comment:7 Changed 8 years ago by Remy Blank

Milestone: plugin - mercurial
Resolution: wontfix
Status: newclosed

Superseded by the CommitTicketUpdater.

Modify Ticket

Change Properties
Set your email in Preferences
as closed The owner will remain Christian Boos.
The resolution will be deleted.
to The owner will be changed from Christian Boos to the specified user.

Add Comment

E-mail address and name can be saved in the Preferences .
Note: See TracTickets for help on using tickets.