- PVSM.RU - https://www.pvsm.ru -

Фотографируемся после каждого коммита (Win)

Приятного времени суток!

Ох, жуть как зацепила статья alizar [1] Фотографируемся после каждого коммита (Linux, OSX) [2]. Но в силу особенностей своей ОС, предложенные решения мне, слегка, не подошли. Проведя немного времени в поисках и не получив искомого результата, было принято решение сделать что-то простенькое (just for fun, with Demonix [3]) для решения данной задачи…

Дано:
Несколько клиентов для разных систем (изврат, но что поделать)
Фотографируемся после каждого коммита (Win)
Найти:
решение как можно при коммите делать фото с веб камеры.

Чтобы максимально упростить решение задачи, я использовал библиотеку DirectShow .NET [4]

Основной код консольного приложения:

  1. Image image = Capture.GetImage();
  2. image.Save(path, ImageFormat.Jpeg);
  3. image.Dispose();

Настройки клиентов:
Я создал hook на событие Post-commit, т.к. мне хотелось добавлять к имени файла ревизию.
Фотографируемся после каждого коммита (Win)

При запуске команды, автоматически добавляются аргументы. Для разных событий, разные аргументы [5].
Конкретно для события Post-commit аргументы следующие:
PATH DEPTH MESSAGEFILE REVISION ERROR CWD

В итоге получается что-то типа c:tempsvn_134278_2012-07-17_13-54-46.jpg

Фотографируемся после каждого коммита (Win)

Путь и формат файла каждый может настроить под себя [6].
Для TortoiseGit настройки практически идентичны:
Фотографируемся после каждого коммита (Win)

На моем железе время работы программы около 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 [6]

Автор: iklementiev


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/git/11554

Ссылки в тексте:

[1] alizar: http://habrahabr.ru/users/alizar/

[2] Фотографируемся после каждого коммита (Linux, OSX): http://habrahabr.ru/post/146418/

[3] Demonix: http://habrahabr.ru/users/demonix/

[4] DirectShow .NET: http://www.codeproject.com/Articles/2615/DirectShow-NET

[5] разные аргументы: http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings.html#tsvn-dug-settings-hooks

[6] настроить под себя: https://github.com/iklementiev/webcam-snap