7 марта 2014 в 13:09

Превращаем скучные логи Git'a в захватывающую анимацию tutorial



Каждый, кто посвятил себя работе с компьютерами, хоть раз, но сталкивался с распространёнными высказываниями вроде: «Помоги мне сделать %work%, ты ведь всё равно без дела за компом сидишь». Особенно часто в эту ситуацию попадаёшь, когда работаешь непосредственно в окружении коллег проделывающих ручную работу. Для этих людей ты зачастую представляешься воплощением безделия и главным пользователем youtube.
Сейчас я покажу вам один из приёмов, как превратиться в глазах сотрудников из лодыря в волшебника.

Началась эта история с того, что я устроился разработчиком в относительно продвинутый интернет магазин. К моему удивлению оказалось, что всю систему разрабатывает и администрирует всего один программист, не считая менеджера, который занимается контролем продуктов и созданием начинки в CMS.

С моим появлением тут же остро встал вопрос о создании системы управления версиями и возможностью быстрого отката к рабочей версии. Так как выбор был не велик, мы остановились на Git. Он и удобен и вспомогательного софта хватает. Сказано, сделано. Установили нужное ПО, настроили сервера и резервные копии, разработали план взаимодействия.

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

С той поры прошло ровно пол года и коммитов в системе накопилось солидное количество, от которых собственно почти никакой пользы не было. Пока мой коллега не показал мне видео с визуализацией при помощи gource (про него уже писали на хабре) одного из Git-проектов.

Это видео и породило во мне цель, сделать подобное для нашего магазина, используя Windows 7.

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

Шаг 1:


Скачиваем софт для Git здесь и устанавливаем. Во время установки нужно соблюсти два ключевых момента.

Во-первых разрешить установщику зарегистрировать Git в переменной окружения PATH.


Во-вторых настроить Checkout на неизменность.


Шаг 2:


Скачиваем актуальную версию Gource здесь и устанавливаем в любую удобную нам папку.

Шаг 3:


Вручную добавляем в переменную окружения PATH, путь к папке где лежит gource.exe.
Для этого нужно зайти в Свойства системы->Дополнительно->Переменные среды. Там уже будут переменные PATH. Одна для текущего пользователя, вторая — общесистемная. Кликаете на PATH, затем изменить и добавляете нужный путь, не забыв поставить в конце строки точку с запятой.


Шаг 4:


Запускаем, доступную в Windows, строку ввода команд и в ней пишем следующее:

Параметры которые вы передаёте gource:
-1920х1080 разрешение экрана, которое вы хотите использовать
-f включение полноэкранного режима
--highlight-all-users или --highlight-users выделение всех пользователей
--multi-sampling включение сглаживания граней
С:/… путь к локальной .git папке проекта на вашем компьютере

Всё готово! Остался последний шаг.
Нажимаем клавишу Enter и после короткой, автоматической загрузки логов начинаем наслаждаться цветопредставлением.

P.S.:

Не забывайте, что для желаемого эффекта, ваше участие в Git-проекте должно быть по настоящему активным, в противном случае ваше бездействие тут же разоблачат.

P.P.S.:

Сделаем наш мир красивее!
Я хочу знать, как записать видео из получившейся визуализации!

Проголосовало 648 человек. Воздержалось 196 человек.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Sergej Kolmogorov @mr_Flagman
карма
5,0
рейтинг 0,0
Похожие публикации
Самое читаемое Разработка

Комментарии (33)

  • –6
    АХ ТЫ Ж НИХРЕНА СЕБЕ
  • +33
    Шаг 1 должен быть «ставим винду»
    • +3
      # port install gource
      
      • +3
        sudo apt-get install gource
        


        Супер-штука, конечно. Очень приятно смотреть, как твой проект растет и что как происходит :)
      • +3
        brew install gource
      • +2
        Ждем ебилдов.
        • +2
          А чего их ждать?

          $ eix gource
          * dev-util/gource
               Available versions:  (~)0.39 (~)0.40
               Homepage:            http://code.google.com/p/gource/
               Description:         A software version control visualization tool
          
          
          • 0
            Да, действительно. Я опечатался в названии, когда проверял.
    • 0
      brew install gource
  • +1
    Так шеф-то успокоился? Между нами — число кода/коммитов как метод оценки чей-то полезности — ну не комильфо же.
    Может быть, гораздо полезнее для обоих сторон было бы разъяснение шефу, что вы занимаетесь внедрением технологий для командной разработки, помимо командной разработки?
    • +1
      Да, шеф успокоился. Мы ему всё в самом начале показали и хорошо объяснили, да он нам и без этого доверяет. А измерять полезность коммитами, согласен, негоже. Поэтому мы этого и не делаем. Есть куда более интересные единицы измерения. Визуализация была для души сделана, чтобы глаз порадовать.
      • +1
        Есть куда более интересные единицы измерения

        Хотелось бы услышать.
  • +1
    А если история линейная? По какому принципу оно делает такое разветвление?
    • 0
      При рендере можно мышкой навести на точку дерева и отобразиться имя файла, с котором была работа.
      Подозреваю, что данное дерево отображает файловую структуру вашего проекта и если долго не было коммитов, то ветки отмирают.

      P.S. еще в режиме рендера работает мышка — скроллом можно менять масштаб, «драгом» менять позицию просмотра, а внизу есть полоса прокрутки (она появляется, если мышку вниз сдвинуть)
    • –2
      Разветвление делается по принципу дерева папок, так же как это выглядит в проводнике. Каждая папка, это узел, в котором могут находится другие папки и файлы. Хотя на досуге будет интересно создать много вложенных папок, в последнюю положить единственный файл и посмотреть как это выглядит.
  • +1
    Как-то давно уже был пост на хабре, напомнили…
    Старый пост — habrahabr.ru/post/75780/
  • +1
    Лет 6-7 назад я делал автоматизацию для генерации таких роликов (визуализация через Gource/Codeswarm)
    lib.custis.ru/ShowTeamWork
    • +1
      И спасибо, до сих пор с удовольствием им пользуюсь :)
  • +23
    Пост о том, как скачать и запустить Gource? Вы серьезно?
    • –12
      Вполне. И количество просмотров тому подтверждение. Увы не у всех есть свободное время самостоятельно разбираться с подобными шалостями.
  • 0
    «Бесконечно долго можно смотреть на три вещи: льющуюся воду, горящий огонь и на то как работает другой человек»
    Еле-еле заставил себя перемотать по-ближе к концу, завораживает…
  • 0
    ноут вырубился от перегрева (запустил через optirun) :)
  • 0
    Кстати «git extensions» поддерживает gource «из-коробки» — умеет скачивать, и формирует командную строку
  • НЛО прилетело и опубликовало эту надпись здесь
  • 0
    Вот еще пример:
    www.youtube.com/watch?v=NEI-rh5-9Jk
  • 0
  • 0
    Люди, кто-нибудь может объяснить феномен почему карма поста растёт в плюс, а карма его автора в минус?
    • +4
      Парадокс Хабрахабра. Те, кто плюсует топик или коммент редко заходят в профиль, чтобы плюсануть карму. Зато многие минусующие воспринимают некоторые вещи как личное оскорбление и поэтому считают своим долгом еще и в карму подна… ать.
  • 0
    По сути весть пост сводится к четырем командам примерно такого содержания:
    brew install gource
    brew install ffmpeg
    
    gource --seconds-per-day 1 1920x1080 --auto-skip-seconds 1 --multi-sampling --stop-at-end --highlight-users --hide mouse,progress --file-idle-time 13 --max-files 0 --background-colour 000000 --font-size 20 --output-ppm-stream output.ppm --output-framerate 30 --hide-filenames ~/PathToGIT/.git/
    
    ffmpeg -y -r 60 -f image2pipe -vcodec ppm -i output.ppm  -vcodec libx264 -preset ultrafast -pix_fmt yuv420p -threads 3 -bf 0 gource.avi
    


    Даже, четвертая и вторая команды — плюшки конвертации видео, о которых не идет речи в посте.
  • 0
    Тут в контексте систем контроля версий возник вопрос — как бы сделать такое же, но для Team Foundation Server от Microsoft. Оказалось, что им тоже пользуются достаточное количество проектов. Я знаю как минимум десяток внутренних
  • 0
    Весело смотрится проект мейнкрафт с даной темой на ютубе…
    Кстати на джаваскрипт находил подобные вещи…
    — П.С.: незабудьте глянуть ддос аттаки в визуализации… очень круто смотриться!

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.