Всем привет.

Предлагаю вашему вниманию мою утилиту, висящую в трее и отображающую статусы нескольких каталогов-репозиториев git (ссылка на исходник, бинарник):

image



Краткое видео-описание:

image

Иногда приходится работать над несколькими проектами и лично мне хотелось периодически видеть в каком состоянии находится git-статус каждого проекта не заходя в каждый каталог по отдельности. Так же хотелось, чтобы была возможность запустить диалоговое окно TortoiseGit commit сразу из программы, когда посчитаете, что настал момент для commit.

Дополнительные компоненты


Для работы программы необходима установка git и tortoisegit.

Проверка статусов


После выполнения операции commit нужно заново перечитать статусы. Для этого нужно
открыть контекстное меню программы в трее и выполнить команды «Reload repositories»:

image

Ждёте появление диалогового окна, сообщающего о завершении сканирования статусов репозиториев:

image

Снова открываете контекстное меню, чтобы проверить изменения:

image

Переход по url-push ссылке проекта



image

Запуск диалогового окна commit TortoiseGit


image

Краткое графическое описание программы


(открыть в отдельном окне не получается)
image

P.S.


Спасибо за внимание. Надеюсь, не смотря на простой функционал она будет полезна разработчикам, пользующимся git и tortoisegit.
Поделиться с друзьями
-->

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


  1. dreamer-dead
    01.09.2016 18:53

    Не буду ничего говорить про код, не писал на шарпе уже несколько лет.
    Но мне не совсем понятна задача утилиты.
    У Вас бывает так, что работаете над кодом, затем переключаетесь без коммита и потом забываете, в какой стадии находится работа?
    Попробуйте делать небольшие коммиты почаще.
    Иначе, вот через неделю я вижу что репозиторий "грязный". Но как понять, нужно ли коммитить, или продолжить разработку? Что должно быть в commit message, если я толком не помню, что делал?
    Разве не придется все равно делать git status или запускать утилиту, чтобы понять все это?
    Опять же, Ваша утилита даже имя текущей ветки не показывает.


    Но мне кажется, если начнете углубляться, то окажется, что копируете GUI вроде того же Tortoise.


    1. AlexZaharow
      01.09.2016 22:21

      Но мне не совсем понятна задача утилиты.

      Задача утилиты — просто небольшой сервис без претензий. Посмотреть на состояние нескольких репозиториев (не обязательно это код, у меня есть парочка «блокнотов», куда я веду свои записи со скриншотами; я к ним настолько привык и так давно веду, что иногда забываю их коммитить). Потом у меня есть парочка файлов, которые обновляются автоматически — скрипты fiddler2 и его Composer-Scratchpad. Они тоже сохраняются автоматически. И все эти вещи раскиданы по дискам. Пусть их и 5-10 штук, но требуют постоянных одинаковых нажатий мышкой. А так сейчас это программа за меня сделает быстрее.

      Попробуйте делать небольшие коммиты почаще

      Я достаточно часто делаю коммиты, а ещё пишу сопроводительную документацию для разработчиков. Помогает даже мне, когда через полгода возвращаюсь к проекту и тогда каждая запятая на вес золота, а каждый лишний скриншот — клад.

      Опять же, Ваша утилита даже имя текущей ветки не показывает.

      Ваше замечание очень уместно! Теперь есть текущая ветка и в tooltip показывает последнее сообщение, с которым был произведён commit:

      image
      https://github.com/satabol/git_repositories_scanner/releases/tag/v0.0.90

      Такой вариант удобнее?

      Но мне кажется, если начнете углубляться, то окажется, что копируете GUI вроде того же Tortoise

      Честно говоря у меня было тайное желание прикрутить к каждому пункту все контекстные меню Tortoise, просто, чтобы не переходить в подкаталоги и не делать лишних щелчков мыши. Если бы можно было бы вызывать функцию формирования контекстного меню как это делает Windows, передавая в dll TortoiseGit ссылку на своё контекстное меню, да на C#, то круто… Но боюсь, что это невозможно.
      А так — самые ежедневные клики.