myrepos
Тоже из эпически давнего, хотя использую посейчас, примерно ежедневно. Для ленивых любителей git и прочих vcs. fossil, например, тоже знает. Да и произвольные команды можно настроить, кажется.
https://myrepos.branchable.com/
git я нежно люблю, хотя и использую ничтожную долю от его возможностей. Дивно удобная штука. Поэтому репозиториев git у меня на компе становится всё больше и больше. Уже больше двадцати, и это не предел, я так предчувствую. Часть - тексты. Часть - конфиги. Часть - полезные штуки, которые удобнее всего скачивать и обновлять именно через git. Лежат, разумеется, в разных местах, в зависимости от того, что это и зачем. И вручную пинать все бывает просто лень.
Вот поэтому я поставила себе myrepos.
Мне, как обычно, проще всего ставить из репозитория дебиана: aptitude install myrepos. Но автор предлагает также вариант git clone git://myrepos.branchable.com/ myrepos или брать с https://github.com/joeyh/myrepos. По желанию.
Потом зайти в те репозитории, которые уже надоело пинать вручную, и скомандовать mr register. И в файлике ~/.mrconfig появятся записи об этих репозиториях. Или внести в файл руками. Как кому кажется легче.
Теперь можно запустить, скажем, mr status и посмотреть, что получится, все ли отозвались. Заметим, кое-что зависит от того, где запускать. mr будет трогать только известные ему репозитории в каталоге, откуда запущен, и его подкаталогах. Вверх не полезет. И это сильно упрощает общение с группами репозиториев. Таким способом можно делать довольно много - массово коммитить, стягивать обновления и что там бишь ещё.
mr help - ясно, справка.
Недавно сделала себе усовершенствование. Прежде, чем пытаться отправлять что-то куда-то, спросить git, как он считает, есть ли, что. Гораздо меньше мороки при отправке пачкой.
push = LC_ALL=C git status | grep -q 'is ahead' && git push || echo 'up-to-date'
В смысле, начали с того, что запросили статус. Если в ответе есть is ahead — имеет смысл пушить. Если нет – пишем в консоль, что всё и так норм.
Часть репозиториев у меня личные, шлю туда только я, обновлений помимо моих там не будет. Соответственно, на те, где точно ничего не будет с другого компа или телефона, на команду fetch и update (то бишь, стянуть свежее) у меня стоит echo "моё, пропускаем". Из нынешнего 2024 я прям недоумеваю, как так у меня было :)
Часто использую mr status - посмотреть, всё ли закоммичено.
mr commit - массовый коммит и пуш. Полезно при уходе от рабочего места. Ключ -m – комментарий к коммиту.
А вот списочек того, что не использую. Неполный, кажется.
- mr diff- посмотреть диффы. Кажется, ни разу.
- mr checkoutдля меня, похоже, не имеет смысла. 2023-08-08 поменялось. То из дома, то с работы :)
- mr cleanпоказывает файлы, которые не под контролем в репозитории. С ключиком- -fможет их и удалить. Но мне, как правило, такое не надо. Даже поштучно.
- mr record- просто массовый коммит, без пуша в репозитории. С ключом- -m- указывается комментарий. Тож пока ни разу не.
- mr log- покажет лог коммитов.
- mr grep pattern- потенциально полезно, реально запускаю поиски через projectile.
- mr run command- позволяет в каждом репозитории выполнить команду. Тож пока ни разу.
- mr list- список репозиториев, в которых mr будет действовать.
- mr config- смотреть и менять конфиг из командной строки.
- mr offline- сказать, что мы в офлайне, что не получится сделать, надо запомнить до онлайна.
- mr remember- запомнить команду до онлайна (заодно говорит mr, что мы в офлайне), но даже не пытаться делать,
- mr online- воспользоваться случаем и доделать, что в офлайне не получалось.
