[devel] git -- хитрая задачка
Dmitry V. Levin
ldv на altlinux.org
Вт Авг 24 09:53:49 UTC 2010
On Tue, Aug 24, 2010 at 12:31:38PM +0400, Денис Смирнов wrote:
> Имеется множество git-репозиториев (около тысячи).
> Большая часть их них -- устаревшие backup'ы, но какие определить
> по имени или еще каким-либо очевидным характеристикам невозможно.
> Разобраться в этом кошмаре вручную -- тем более.
>
> Задача -- выявить и удалить старье (которого там процентов 90).
>
> Лобовое решение: прогнать для каждого бранча каждого репозитория git log,
> положить результат в sqlite (commit id/путь к репо/бранч). Также положить
> в базу последний commit id каждого бранча каждого репозитория.
>
> После этого я могу легко определить есть ли такой commit id в другом
> репозитории. И если есть, и это не последний коммит в бранче -- то наш
> бранч явно стухший и его можно удалить.
Самый лобовой способ: зафетчить в каждый репозиторий соответствующий ему
"другой", апстримный репозиторий, после чего пройтись git for-each-ref'ом
по refs/heads и выяснить (git log -n1 --pretty=format:1 ^l_ref r_ref),
есть ли в репозитории хотя бы один актуальный локальный бранч.
--
ldv
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : отсутствует
Тип : application/pgp-signature
Размер : 198 байтов
Описание: отсутствует
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20100824/f1497bc6/attachment.bin>
Подробная информация о списке рассылки Devel