On Sun, May 28, 2006 at 03:31:47AM +0400, Dmitry V. Levin wrote: > On Sat, May 27, 2006 at 12:24:27PM +0400, Sergey Vlasov wrote: > [...] > > Вообще-то обычно делают git-repack -a -d && git-prune-packed. > > Я так понимаю, что если git-repack запускается с ключами -a -d, то > git-prune-packed уже запускать незачем. Нет, git-prune-packed как раз нужен - git-repack -a -d удаляет только старые pack-файлы, но не трогает неупакованные объекты, которые как раз и занимают кучу места. > > git-prune - действительно очень ресурсоёмкая операция, но она нужна > > только в том случае, если в репозитории по каким-то причинам появились > > объекты, на которые нет ссылок. Кроме того, необходимо, чтобы при > > выполнении git-prune никто не писал в репозиторий (иначе только что > > добавленные объекты могут быть удалены, поскольку в этот момент на них > > ещё нет ссылок). > > git-repack -a -- тоже очень ресурсоёмкая операция, особенно на больших > файлах типа gcc-4.1.1-20060525.tar; видимо, алгоритм реализован > неоптимально с точки зрения потребляемых ресурсов. Вообще этот алгоритм пытались править - сейчас в ветке master всё это сильно переписано.