|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Vladimir Bormotov 2:5020/400 06 Nov 2002 18:32:04 To : Denis Smirnov Subject : Re: cvs -- commitinfo --------------------------------------------------------------------------------
Hi, Denis!
>>>>> "DS" == Denis Smirnov <mithraen@freesource.info> writes:
VB>> кстати, а почему не из loginfo?
DS> Сначала я почитал доки, и решил сделать через loginfo -- неполучилось.
DS> Потом я вспомнил, что Виктор говорил про то, что он это делал через
DS> commitinfo -- проверил по гуглю, точно он говорил. Попробовал так --
DS> тоже ничего не получилось. Подумал и сделал грязный хак с запуском в
DS> фоне.
ясно. _Такое_ я не делал, но рассылка почтой дифов у нас работает именно
через loginfo.
Hасколько я помню доки на cvs, commitinfo срабатывает _до_ реального
коммита, а loginfo - уже после.
DS>>> Пока решил проблему грубо -- просто запускаю cvs update в фоне --
DS>>> тогда он через некоторое время просыпается и таки делает update.
VB>> дык. Кажется самое простое решение.
DS> Hо далеко не самое красивое. Hасколько я понял он просто с каким-то
DS> интервалом заново проверяет наличие лока?
Стоп. Кто "он"?
DS> Интересный вопрос появляется -- а что ему мешает сначала обработать
DS> всё, где нет лока, а потом с _указаным_ интервалом ждать когда
DS> освободятся остальные локи?
если "он" - процесс который делает cvs up - то думаю ему нехватает мозгов.
Он сообщает что файл залочен, и радостно висит, ждет реакции пользователя.
[skip]
DS>>> Что я не понимаю? Как решить эту задачу?
VB>> Ты пытаешься на сервер-сайд решать клиентскую задачу.
VB>> Если хочется "чтоб чиста все крута" - то вешается клиентский демон, а из
VB>> (таки мне кажется что лучше) loginfo, ему говорится "данные обновились",
VB>> он берет и обнавляет.
DS> Я об этом сразу же подумал, но сильно надеялся что можно штатными
DS> средствами победить свою лень :) Демон ведь ещё и запускать надо...
я таки полез в доки, чем я сегодня добрый ;-))
http://alexm.here.ru/cvs-ru/html_chapter/cvs-ru_18.html#SEC163
Файл `commitinfo' описывает программы, которые выполняются перед тем, как
команда `cvs commit' выполняет свою работу.
ключевые слова _перед_тем_, т.е. мой склероз меня не подвел на этот раз.
http://alexm.here.ru/cvs-ru/html_chapter/cvs-ru_18.html#SEC167
Файл `loginfo' используется для управления тем, куда посылается журнальная
информация при выполнении `cvs commit'.
вот тут подвел - не "после", а "во время" ;-))
В общем, попробуй таки на loginfo, причем cvs update не из того-же скрипта
который там прописан, а издругого, которому как-то сообщают. Отдельно.
Или random timeout сделать, в преедлах минуты..
DS> О! Соответственно вопрос появился -- сейчас я использую daemontools
DS> для запуска всех демонов. А что можно использовать для того, чтобы
DS> пользователи могли сами иметь свой аналог /services, содержимое
DS> которого запускалось бы от них? Мне бы это сильно жизнь упростило.
от такого не знаю, и сходу в голову ничего приличного не приходит.
daemontools не пользовал..
Из неприличного - написать своего демона, который будет где-нибудь ждать
появления file, например в виде cvs-up.<username>, и по появлению этого
файлика от имени этого username делать cvs up. запускать каким-нибудь
respawn, из inittab, от рута. Обвешать всякими проверками, чтоб username
совпадало с реальными правами на этот файл, и тому подобное.
собвенно файлики могут создаваться из какого-нибудь ~/.procmailrc, по
приходу почты, которая будет высылаться из скрипта, который в loginfo ;)
ндэ, жуть какая-то... ;)))
VB>> Hо навскидку мне кажется если ты пеервесишь скрипт с апдейтом в
VB>> loginfo, то все поедет без суперизвратов...
DS> Hе, не поехало, потому и стал извращаться. Он почему-то локи не
DS> отпускает перед вызовом скриптов в loginfo
вообще, есть список рассылки, там отвечают, очень часто по-делу. Думаю
лучше туда вопрос задать, ибо у меня так сходу идеи закончились ;-))
--
Bor.
--- ifmail v.2.15dev5
* Origin: BorHomeLand (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/2541f77b5c29.html, оценка из 5, голосов 10
|