[devel] git -- хитрая задачка

Денис Смирнов mithraen на altlinux.ru
Вт Авг 24 08:31:38 UTC 2010


Имеется множество git-репозиториев (около тысячи).
Большая часть их них -- устаревшие backup'ы, но какие определить
по имени или еще каким-либо очевидным характеристикам невозможно.
Разобраться в этом кошмаре вручную -- тем более.

Задача -- выявить и удалить старье (которого там процентов 90).

Лобовое решение: прогнать для каждого бранча каждого репозитория git log,
положить результат в sqlite (commit id/путь к репо/бранч). Также положить
в базу последний commit id каждого бранча каждого репозитория.

После этого я могу легко определить есть ли такой commit id в другом
репозитории. И если есть, и это не последний коммит в бранче -- то наш
бранч явно стухший и его можно удалить.

Такое решение мне не нравится тем, что придется строить базу по миллионам
commit'ов.

Можно ли придумать что-то значительно шустрее?

-- 
С уважением, Денис

http://mithraen.ru/
----------------------------------------------------------------------------

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.altlinux.org/pipermail/devel/attachments/20100824/2bdeb53b/attachment.bin>


Подробная информация о списке рассылки Devel