Как узнать требования к пространству файлов для фиксации? - PullRequest
5 голосов
/ 07 марта 2011

Я собираюсь заархивировать старый огромный проект, содержащий много мусора. Надеюсь, он мне больше никогда не понадобится, но я хочу поставить все важные вещи под контроль версий. Из-за хаоса в проекте нелегко сказать, каковы источники и что может уйти (нет makefile, нет make clean, ничего). Так что я хотел бы поместить туда почти все и рассмотреть только самые большие файлы для исключения.

Как я могу перечислить файлы для фиксации (или размещения) вместе с их размером?

Я мог бы написать сценарий или что-то еще, но надеюсь на более простое решение. Я работаю под Cygwin, и единственный доступный графический интерфейс - git gui, который не показывает размеры файла. В противном случае это было бы идеально для того, что мне нужно.

Ответы [ 3 ]

2 голосов
/ 07 марта 2011

Вы можете попробовать это. Он находит все файлы размером более 1М и сортирует их от самого большого до самого маленького. Размеры печатаемых файлов указаны в байтах:

cd ~/files_to_archive
find . -type f -size +1M -printf '%s %p\n' |sort -nr

Выход:

74751072 ./linux-2.6.38-rc4.tar.bz2
34686037 ./git-source.tar.gz
14026384 ./Python-2.7.tar.gz

Обновлено: переберите файлы, возвращенные find, и напечатайте их git статус:

git ls-files -t `find . -type f -size +1M |xargs`
0 голосов
/ 07 марта 2011

В первом приближении du -sk . в верхней части дерева каталогов даст вам необходимое пространство. После того, как вы сделаете git gc, это может быть завышением.

Но вы должны были использовать управление версиями задолго до того, как достигли точки выхода из проекта.

0 голосов
/ 07 марта 2011

Я не знаю о Git, но если вы используете Mercurial, вы можете использовать комбинацию:

ls -laS
hg status
...