[gitfame] Update readme.
This commit is contained in:
parent
69d2aa7212
commit
269e262e8a
1 changed files with 21 additions and 3 deletions
|
@ -33,6 +33,18 @@ f4640df4 (Fedor Korotkiy 2020-02-26 20:28:52 +0000 5) Задача считае
|
||||||
Кроме того, этот формат схлопывает соседние строки относящиеся к одному коммиту,
|
Кроме того, этот формат схлопывает соседние строки относящиеся к одному коммиту,
|
||||||
что может сильно сократить размер результата. Поэтому использовать нужно его.
|
что может сильно сократить размер результата. Поэтому использовать нужно его.
|
||||||
|
|
||||||
|
Стоит помнить, что не все файлы из директории git проекта обязательно принадлежат git репозиторию.
|
||||||
|
Получить список файлов git репозитория можно разными способами, например с помощью `git ls-tree`.
|
||||||
|
|
||||||
|
### Интерфейс
|
||||||
|
|
||||||
|
Утилита должна печатать результат в stdout.
|
||||||
|
При использовании невалидного значения флага или любой другой ошибке программа должна завершаться с ненулевым кодом возврата.
|
||||||
|
|
||||||
|
Расчёт может занимать довольно длительное время.
|
||||||
|
Хорошим качеством подобной утилиты является отображение прогресса (вынесенное за флаг).
|
||||||
|
Прогресс можно печатать в stderr в произвольном формате.
|
||||||
|
|
||||||
### Флаги
|
### Флаги
|
||||||
|
|
||||||
Утилита должна поддерживать следующий набор флагов:
|
Утилита должна поддерживать следующий набор флагов:
|
||||||
|
@ -68,11 +80,13 @@ Joe Tsai,64,3,2
|
||||||
Ross Light,2,1,1
|
Ross Light,2,1,1
|
||||||
ferhat elmas,1,1,1
|
ferhat elmas,1,1,1
|
||||||
```
|
```
|
||||||
|
[encoding/csv](https://golang.org/pkg/encoding/csv/)
|
||||||
|
|
||||||
`json`:
|
`json`:
|
||||||
```
|
```
|
||||||
[{"name":"Joe Tsai","lines":64,"commits":3,"files":2},{"name":"Ross Light","lines":2,"commits":1,"files":1},{"name":"ferhat elmas","lines":1,"commits":1,"files":1}]
|
[{"name":"Joe Tsai","lines":64,"commits":3,"files":2},{"name":"Ross Light","lines":2,"commits":1,"files":1},{"name":"ferhat elmas","lines":1,"commits":1,"files":1}]
|
||||||
```
|
```
|
||||||
|
[encoding/json](https://golang.org/pkg/encoding/json/)
|
||||||
|
|
||||||
`json-lines`:
|
`json-lines`:
|
||||||
```
|
```
|
||||||
|
@ -83,15 +97,15 @@ ferhat elmas,1,1,1
|
||||||
|
|
||||||
**--extensions** — список расширений, сужающий список файлов в расчёте; множество ограничений разделяется запятыми, например, `'.go,.md'`
|
**--extensions** — список расширений, сужающий список файлов в расчёте; множество ограничений разделяется запятыми, например, `'.go,.md'`
|
||||||
|
|
||||||
**--languages** — список языков (программирования, разметки и др.), сужающий список файлов в расчёте; множество ограничений разделяется запятыми например `'go,markdown'`
|
**--languages** — список языков (программирования, разметки и др.), сужающий список файлов в расчёте; множество ограничений разделяется запятыми, например `'go,markdown'`
|
||||||
|
|
||||||
Принадлежность файла к языку программирования определяется с помощью его расширения.
|
Принадлежность файла к языку программирования определяется с помощью его расширения.
|
||||||
В [configs/language_extensions.json](configs/language_extensions.json) лежит маппинг.
|
В [configs/language_extensions.json](configs/language_extensions.json) лежит маппинг.
|
||||||
Неизвестные языки никаких ограничений не накладывают. При их использовании можно написать warning в stderr.
|
Неизвестные языки никаких ограничений не накладывают. При их использовании можно написать warning в stderr.
|
||||||
|
|
||||||
**--exclude** — набор [Glob](https://en.wikipedia.org/wiki/Glob_(programming)) паттернов, исключающих файлы из расчёта
|
**--exclude** — набор [Glob](https://en.wikipedia.org/wiki/Glob_(programming)) паттернов, исключающих файлы из расчёта, например `'foo/*,bar/*'`
|
||||||
|
|
||||||
**--restrict-to** — набор Glob паттернов, исключающий все файлы, не удовлетворяющие ни одному из паттерну из набора
|
**--restrict-to** — набор Glob паттернов, исключающий все файлы, не удовлетворяющие ни одному из паттернов набора
|
||||||
|
|
||||||
### Тесты
|
### Тесты
|
||||||
|
|
||||||
|
@ -164,3 +178,7 @@ git clone /path/to/my.bundle .
|
||||||
### Критерии сдачи
|
### Критерии сдачи
|
||||||
|
|
||||||
Решение должно проходить все тесты, так же как и в обычной задаче.
|
Решение должно проходить все тесты, так же как и в обычной задаче.
|
||||||
|
|
||||||
|
После прохождения тестов в табличке появится 0.
|
||||||
|
Нужно успеть отправить решение до дедлайна!
|
||||||
|
Проверяющие посмотрят на решение и заменят 0 на 1.
|
||||||
|
|
Loading…
Reference in a new issue