git: размер репозитория

IDE, VCS и прочее

Модератор: Модераторы разделов

Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

git: размер репозитория

Сообщение t.t »

С размером я всё-таки что-то не понимаю. Репозиторий весил 16 с чем-то метров. Добавил каталог весом 21 метр (большей частью тексты) — Получил репозиторий весом 43 метра. Сделал git repack -a -d (или git gc --aggressive — результат практически одинаковый), а затем git push (mnt/backup — то, куда пушил; до начала всех описанных действий был копией .git) — картина следующая:

Shell

$ du -s mnt/backup/.git/ 23220 mnt/backup/.git/ $ du -s .git 40664 .git



Кто-нибудь может пояснить, что всё это значит?
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: git: размер репозитория

Сообщение sash-kan »

t.t писал(а):
26.06.2010 19:06
$ du -s .git
40664 .git
это репозиторий и рабочая копия.
t.t писал(а):
26.06.2010 19:06
$ du -s mnt/backup/.git/
23220 mnt/backup/.git/
а это только репозиторий.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: git: размер репозитория

Сообщение t.t »

sash-kan писал(а):
26.06.2010 19:59
t.t писал(а):
26.06.2010 19:06
$ du -s .git
40664 .git
это репозиторий и рабочая копия.
t.t писал(а):
26.06.2010 19:06
$ du -s mnt/backup/.git/
23220 mnt/backup/.git/
а это только репозиторий.
Не совсем понял. Мне казалось, что рабочая копия — это те файлы и каталоги, которые лежат за пределами .git/; с которыми я непосредственно и работаю. Я ошибаюсь?
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: git: размер репозитория

Сообщение sash-kan »

t.t писал(а):
26.06.2010 20:48
Мне казалось, что рабочая копия — это те файлы и каталоги, которые лежат за пределами .git/; с которыми я непосредственно и работаю.
совершенно верно.
из одного репозитория ты делаешь push в другой. информация во втором репозитории изменяется. но рабочая копия, если таковая при нём была, не изменяется.
вообще push-ить в репозиторий с прилагающейся рабочей копией — плохое решение.
можно сразу создавать репозиторий без рабочей копии — опция --bare у git clone.

см., например, это: http://book.git-scm.com/4_setting_up_a_pub...repository.html
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: git: размер репозитория

Сообщение t.t »

sash-kan писал(а):
26.06.2010 22:40
t.t писал(а):
26.06.2010 20:48
Мне казалось, что рабочая копия — это те файлы и каталоги, которые лежат за пределами .git/; с которыми я непосредственно и работаю.
совершенно верно.
из одного репозитория ты делаешь push в другой. информация во втором репозитории изменяется. но рабочая копия, если таковая при нём была, не изменяется.
Рабочая копия здесь ни при чём. Взвешивал-то я только каталоги .git, т.е. сами репозитории.

sash-kan писал(а):
26.06.2010 22:40
вообще push-ить в репозиторий с прилагающейся рабочей копией — плохое решение.
можно сразу создавать репозиторий без рабочей копии — опция --bare у git clone.
А её там и нет.

Shell

$ la mnt/backup/ .git/

¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: git: размер репозитория

Сообщение sash-kan »

значит, детальнее надо сравнивать. и в отдельной теме.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: git: размер репозитория

Сообщение t.t »

sash-kan писал(а):
27.06.2010 11:49
значит, детальнее надо сравнивать. и в отдельной теме.
Да я уже с тех пор нашёл кое-что большое и ненужное; удалил; понял, что ребейзить будет сложнее, чем создать с нуля. А теперь вроде всё точно так же сделал, а оно не воспроизводится. Т.е. есть разница, но небольшая, меньше метра. Что интересно, «большое и ненужное» было не в doc. Если ещё раз возникнет такая проблема, тогда и создам отдельную тему.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: git: размер репозитория

Сообщение t.t »

Не уверен, что воспроизвелась именно та же проблема, но пару раз размер рабочего хранилища снова становился на 20-50% больше того, в которое из него пушился. Решение нашёл в сети:

Код: Выделить всё

git reflog expire --expire=0 --all
git repack -da
git prune

После этих команд разница размеров составляет не больше 1-2%.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали: