← All posts tagged trac

helgi

Попробовал сегодня, как сам предлагал в , версионировать саму очередь патчей MQ для наших патчей трака. Явно небесполезно, потому что с версии 0.11.7 до 0.12.3 в траке столько изменилось, что в первом же патче пришлось руками вносить половину изменений.

Но MQ — вероятно, из-за параллельного использования консольного hg и TortoiseHg — какой-то крайне хрупкий. Он мне два или три раза на невинную команду вроде qfold или qrefresh выдавал abort и оставлял репозиторий с рабочей копией в неконсистентном состоянии. Мне кажется, это непростительно.

helgi

Сформулирую задачу. У меня есть карманный проект под названием «Индиана» — движок моего личного сайта. Для контроля версий используется darcs, а для отслеживания дефектов — Trac с плагином trac+darcs.

Трак решает четыре задачи: отслеживание замечаний, просмотр исходного кода, планирование релизов и документирование. Со всеми этими задачами он справляется неплохо, но, оказывается, у меня часто бывают ситуации, когда интернета нет, а поработать над проектом хочется.

Тикеты я создаю для дефектов и небольших, чётко очерченных фич. Но кроме этого, есть ещё разные полуоформившиеся идеи и мелкие задачки. Чтобы не забыть, я записываю их просто в свободной форме. И оказалось, что они у меня разъехались: часть на ноутбуке, часть в траке. При этом в оффлайне не поредактируешь трак, а сидя не за ноутбуком, не посмотришь локальные заметки.

Ergo, хочется иметь примерно траковую функциональность на сервере, но чтобы все эти материалы (тикеты, вики, планируемые релизы) можно было взять с собой и редактировать в оффлайне.

Пока нацеливаюсь на связку ikiwiki + Bugs Everywhere + darcsweb.

helgi

Полистал тут книжечку Managing Software Development with Trac and Subversion (за авторством некоего Дэвида Дж. Мёрфи, издательство Packt). Странно, но почему-то ждал откровений, пусть мелких. Видимо, моё доверие к печатной продукции (в противовес сетевым источникам) до сих пор удивительно высоко.

К сожалению, откровений там нет. Книга 2007 года издания (плохо), в ней описывается svn (плохо) и трак (хорошо) версии 0.10 (плохо). Вся книга состоит из следующего: а) общих (/очень/ общих) слов о подходе к управлению проектом при помощи трака, б) описанию возможностей трака и svn, в) howto по установке трака и svn на винду и линукс.

Короче, несмотря на то, что на trac.edgewall.org эту книгу рекламируют, искать в ней что-то бессмысленно.

helgi

Что-то нигде в явном виде не написано, как настроить apply posthook для синхронизации кэша trac+darcs после того, как на серверный дарксовский репозиторий сделан пуш. Пусть будет тут.

В _darcs/prefs/defaults в репозитории нужны такие строчки:

apply posthook trac-admin /path/to/tracenv/ repository resync reponame
apply run-posthook

helgi

trac.edgewall.org — Я пропустил выход трака-0.12.2, а в нём наконец-то исправили разъезжающиеся в разные стороны столбцы в запросах с группировкой по одному из полей. Это была одна из вещей, которая меня по-настоящему раздражала в траке.

helgi

Долго думал, зачем в траке сделали возможность выбирать язык интерфейса каждому пользователю отдельно. Не придумал. Статусы, типы, приоритеты тикетов все равно хранятся в базе, поэтому сейчас на траке трака это выглядит вот так: карточка #123 (new enhancement), серьезность: normal.

helgi

code.google.com/p/modwsgi/wiki/IntegrationWithTrac — Оказывается, настроить трак через WSGI на апаче несложно. Я много лет сторонился апача, подозревая его в кривости и уродливости. Однако он явно прямее тех экзотических конфигураций, которые я изобретал вместо него.

helgi

А если у вас в репозитории под trac+darcs все файлы размером 0 байт, и при этом репозиторий на диске, отличном от C:, вам поможет следующее.

Найдите файл Lib\site-packages\tracdarcs-0.7-py2.5.egg\tracdarcs\command.py в каталоге питона.
В нём в строчке
command = 'cd %s & set TZ=UTC & %s %s' % (self.repo_dir,
замените cd %s на cd /d %s.

helgi

Чтобы trac+darcs под Windows не падал с загадочной ошибкой, когда делаешь resync, надо обязательно использовать в пути к репозиторию обратные слэши. Только обратные!