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 - действительно очень ресурсоёмкая операция, но она нужна > только в том случае, если в репозитории по каким-то причинам появились > объекты, на которые нет ссылок. Кроме того, необходимо, чтобы при > выполнении git-prune никто не писал в репозиторий (иначе только что > добавленные объекты могут быть удалены, поскольку в этот момент на них > ещё нет ссылок). git-repack -a -- тоже очень ресурсоёмкая операция, особенно на больших файлах типа gcc-4.1.1-20060525.tar; видимо, алгоритм реализован неоптимально с точки зрения потребляемых ресурсов. > Кроме того, если постоянно выполнять git-repack -a -d, нужно делать > доступ через git daemon - нормально работать через http или rsync в > таких условиях невозможно (при каждом git fetch всё будет скачиваться > заново). Это безусловно так. Но с git-daemon (равно как и с git-shell) есть одна проблема: $ grep -rw strcpy git-1.3.3 |wc -l 112 $ grep -rw sprintf git-1.3.3 |wc -l 129 Один только exec_cmd.c чего стоит... Я в шоке. -- ldv