Приятного времени суток!
Ох, жуть как зацепила статья alizar Фотографируемся после каждого коммита (Linux, OSX). Но в силу особенностей своей ОС, предложенные решения мне, слегка, не подошли. Проведя немного времени в поисках и не получив искомого результата, было принято решение сделать что-то простенькое (just for fun, with Demonix) для решения данной задачи…
Дано:
Несколько клиентов для разных систем (изврат, но что поделать)
Найти:
решение как можно при коммите делать фото с веб камеры.
Чтобы максимально упростить решение задачи, я использовал библиотеку DirectShow .NET
Основной код консольного приложения:
Image image = Capture.GetImage();
image.Save(path, ImageFormat.Jpeg);
image.Dispose();
Настройки клиентов:
Я создал hook на событие Post-commit, т.к. мне хотелось добавлять к имени файла ревизию.
При запуске команды, автоматически добавляются аргументы. Для разных событий, разные аргументы.
Конкретно для события Post-commit аргументы следующие:
PATH DEPTH MESSAGEFILE REVISION ERROR CWD
В итоге получается что-то типа c:tempsvn_134278_2012-07-17_13-54-46.jpg
Путь и формат файла каждый может настроить под себя.
Для TortoiseGit настройки практически идентичны:
На моем железе время работы программы около 00:00:03.3676868
before INIT 00:00:00.0000007
before CaptureImage 00:00:00.3365297
before CloseInterfaces 00:00:02.3431425
before Clone 00:00:03.3188398
before save 00:00:03.3235840
end 00:00:03.3676868
Естественно использовать webcam-snap.exe можно и для любых других целей.
В дальнейшем имеющиеся снимки можно склеить, например, в видео. Пример не прикрепил, т.к. пока у меня недостаточно фото коммитов ;)
GitHub
Автор: iklementiev