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
- воспользоваться случаем и доделать, что в офлайне не получалось.