2014-09-18 6 views
3

Возможно ли получить количество всех файлов всех коммитов в репозитории на GitHub?
Я не использую Git самостоятельно, мне просто нужно знать количество других больших репозиториев.
Возьмем, к примеру JQueryКоличество файлов в репозитории GitHub

Update
Есть файлы, такие как:

  • .editorconfig
  • .gitattributes
  • ...

и папки курса например:

  • сборки
  • внешний
  • ...

с еще большим количеством файлов.

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

Можно ли найти эти цифры на GitHub?

+1

Что именно вы имеете в виду? Вы хотите узнать количество файлов, которые когда-либо существовали в репозитории? – Chris

+0

Да, текущее число (что более важно), если возможно, количество всех файлов, каждый из которых существовал. – user1170330

+0

@ user1170330 Как и Крис, я пытаюсь понять ваш вопрос ... Обратите внимание, что Git не хранит файлы в обычном смысле. Вы знакомы с концепцией [* blob *] (http://git-scm.com/book/en/Git-Internals-Git-Objects)? Вы спрашиваете, сколько блоков содержит хранилище? – Jubobs

ответ

0

Как насчет того, что вы делаете (неглубокий) клон хранилища и считаете локально?

Мне неизвестно какой-либо инструмент gifub web gui, который показывает вам эту информацию.

Также: получение общего количества файлов, которые когда-либо существовали, было бы трудным, столько же удалений или переименований, или что-то еще, что может или не может рассчитывать на то, что вам понадобится для этой статистики.

2

Я согласен с @rubenvb в том, что вам нужно клонировать репо и делать счет на месте. Я не знаю инструмент, который получит количество файлов для каждой ревизии, поэтому вам придется сворачивать свои собственные.

Чтобы получить счет при текущей фиксации, вы можете запустить git ls-files | wc -l, что даст вам общее для репо при этом фиксации.

Чтобы получить счет за все время, вам нужно будет перебрать все коммиты, достижимые с первого фиксации, каждый раз запуская эту команду. Вы можете попытаться нажимать вывод git ls-files в массив каждый раз и поддерживать «глобальный» массив при переходе через все коммиты. (Вероятно, это займет некоторое время на большом репо, таком как jQuery.) Затем вы можете подсчитать размер массива позже.

Число будет довольно субъективным в зависимости от того, что вы решите считать. Следует ли считать файл, перемещающийся из одного каталога в другой в коммите? (В методе, который я только что изложил, он будет считаться двумя разными файлами.) Вы считаете ветви, которые не были объединены с мастером, или просто любое достижение, доступное из HEAD текущей ведущей ветки? Это зависит от вас.

Смежные вопросы