From 42b3d1b739b5f0cef40f349cdc7044a785dc604a Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Sun, 24 Mar 2024 11:47:19 +0300 Subject: [PATCH] =?utf8?q?=D0=91=D0=BE=D0=BB=D0=B5=D0=B5-=D0=BC=D0=B5?= =?utf8?q?=D0=BD=D0=B5=D0=B5=20=D0=B0=D0=BA=D1=82=D0=B8=D0=B2=D0=BD=D0=B0?= =?utf8?q?=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=B0=20=D1=81=20schwabr?= =?utf8?q?ak-=D0=BE=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit В bd94115b066472316ea03e85d611f732785f8b7c я упоминал о написании "issue tracker"-а на основе директорий и файлов, пригодного для использования без дополнительного софта, имея под рукой только Git. С парой коллег вот попытались его вести для нескольких проектов. Наверное ещё рано говорить об успехе или провале, но пока вроде отторжения ни у кого не вызывает это всё. Используем все написанные на Z shell утилиты мои. Много коммитов наделал в него, которые то тут, то там что-то упрощают при работе с ним. Разукрасил его вывод, обмазал цветами: всё же цвета ощутимо позволяют облегчить навигацию по тексту глазами. Изначально использовал supercat утилиту, но, оказалось, есть ещё компьютеры с настолько старой версией, где нет множества используемых мною опций. Написал свою версию supercat на zsh: # Usage: colourise ColourSpec:RegExp [ColourSpec:RegExp ...] # It is intended to be a drop-in replacement for supercat utility. # ColourSpec is comma delimited list of ANSI codes for colour setting. # Look for zsh'es Functions/Misc/colors documentation about possible # colour values. For example to set bold red on green background you use # "bold,fg-red,bg-green" as a ColourSpec. # RegExp is POSIX extended regular expression of the text you want to # colourise. colourise() { if [[ -n $NO_COLOR ]] || [[ $# -eq 0 ]] ; then cat return fi (( ${+colour} )) || { autoload -Uz colors ; colors ; } local lc=$'\e[' rc=m colr="" local spec=(${(s/:/)1}) shift for c (${(s/,/)${spec[1]}}) colr="${col}${lc}${colour[$c]}${rc}" local re=${(j/:/)spec[2,-1]} sed -E "s/${re}/${colr}&${reset_color}/g" | colourise $@ } Можно давать вот такие команды: colourise bold,fg-green,bg-magenta:"\d+" blue:"whatever regexp" перечисляя множество регулярок и опций для формирования ANSI разукрасок. Понравилось что вышло без кучи кода, переиспользуя colors модуль zsh и POSIX-совместимый sed с расширенными регулярками. Раньше не было команды "comment", ибо что в неё засунуть, если нужно всего-лишь открыть issues/.../comment файл и после редактирования добавить в Git? Но теперь она есть и позволяет предыдущий комментарий оставить в виде "#"-комментария, а после выхода из редактора удаляет его, добавляя в Git index. А если ничего не было отредактировано, то оставляет как было. "list" команда позволяет фильтровать по тагам. Причём не нужно указывать полное название тагов. "list star" покажет список задач у которых есть таги "assignee:stargrave". Если перед тагом написать "!", то будут показаны задачи у которых него его. "list starg \!done" -- все не сделанные задачи (у которых нет status:done тага) повешенные на меня. На работе используется сраный GitLab (сраный -- потому что не поддерживает SHA256 Git-репозитории, как минимум). Но в нём парой щелчков можно включить отсылку оповещений о коммитах с показом diff-а. Поэтому любой push в репозиторий с задачами -- оповещает на email всех участников. Пока мне очень нравится как с ним удаётся работать и лично мне ощутимо помогает уже с несколькими десятками задач. Кроме него, у меня ещё и личный issue tracker был, по которому очень легко было делать отчёты об удалённой работе (да, сдаём каждый месяц такое). С schwabrak-based tracker-ом можно давать ссылки на GitLab и на нужную директорию задачи, что было бы уже проблематично, если бы задачи находились в SQL/Recutils/Org-mode СУБД какой-нибудь. -- 2.48.1