<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>GQ&#039;s blog &#187; Trac</title>
	<atom:link href="http://gq.net.ru/tag/trac/feed/" rel="self" type="application/rss+xml" />
	<link>http://gq.net.ru</link>
	<description>Next step is the world domination...</description>
	<lastBuildDate>Wed, 25 Aug 2010 19:29:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Git trac post-receive hook</title>
		<link>http://gq.net.ru/2009/07/15/git-trac-post-receive-hook/</link>
		<comments>http://gq.net.ru/2009/07/15/git-trac-post-receive-hook/#comments</comments>
		<pubDate>Wed, 15 Jul 2009 14:46:42 +0000</pubDate>
		<dc:creator>GQ</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[hook]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Trac]]></category>

		<guid isPermaLink="false">http://gq.net.ru/?p=344</guid>
		<description><![CDATA[Добавил тут для одного из проектов хук в репозиторий, который закрывает тикеты по коммит-логам. Неочевидное тут вот что: закрывать тикеты надо тогда, когда коммит попадает на master (такая у нас модель разработки), соответственно надо отлавливать мержи и в случае мержа просматривать смерженные коммиты. Upd: Гит оказался умнее меня и сам (rev-list) выводит коммиты со смерженных [...]]]></description>
			<content:encoded><![CDATA[<p>Добавил тут для одного из проектов хук в репозиторий, который закрывает тикеты по коммит-логам.</p>
<p>Неочевидное тут вот что:<br />
закрывать тикеты надо тогда, когда коммит попадает на master (такая у нас модель разработки), соответственно надо отлавливать мержи и в случае мержа просматривать смерженные коммиты.</p>
<p><b>Upd</b>: Гит оказался умнее меня и сам (rev-list) выводит коммиты со смерженных веток. Поэтому всё намного проще и получившийся скрипт даже и не интересен ни разу.</p>
<p>Скрипт получился такой:<br />
<code>
<pre>#!/bin/sh
# This script is run after receive-pack has accepted a pack and the
# repository has been updated.  It is passed arguments in through stdin
# in the form
#  oldrev newrev refname
# For example:
#  aa453216d1b3e49e7f6f98441fa56946ddcd6a20 68f7abf4e6f922807889f52bc043ecd31b79f814 refs/heads/master

TRAC_HOOK="/srv/git/hooks/trac-post-commit-hook"
TRAC_DIR="/srv/trac/stand"

procrevs() {
    while read gitrev; do
	"$TRAC_HOOK" -p "$TRAC_DIR" -r "$gitrev"
    done
}

while read OLD NEW NAME;do
	test "$NAME" == "refs/heads/master"||continue
	git rev-list --no-merges "$OLD..$NEW"|procrevs
done
</pre>
<p></code></p>
<p>Где TRAC_HOOK &#8211; это trac-post-commit-hook из дистрибутива trac, TRAC_DIR &#8211; каталог с проектом trac. В самом trac&#8217;е должен быть включен и настроен плагин trac-git.</p>
]]></content:encoded>
			<wfw:commentRss>http://gq.net.ru/2009/07/15/git-trac-post-receive-hook/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
