[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
|
||||
ferhat elmas,1,1,1
|
||||
```
|
||||
[encoding/csv](https://golang.org/pkg/encoding/csv/)
|
||||
|
||||
`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}]
|
||||
```
|
||||
[encoding/json](https://golang.org/pkg/encoding/json/)
|
||||
|
||||
`json-lines`:
|
||||
```
|
||||
|
@ -83,15 +97,15 @@ ferhat elmas,1,1,1
|
|||
|
||||
**--extensions** — список расширений, сужающий список файлов в расчёте; множество ограничений разделяется запятыми, например, `'.go,.md'`
|
||||
|
||||
**--languages** — список языков (программирования, разметки и др.), сужающий список файлов в расчёте; множество ограничений разделяется запятыми например `'go,markdown'`
|
||||
**--languages** — список языков (программирования, разметки и др.), сужающий список файлов в расчёте; множество ограничений разделяется запятыми, например `'go,markdown'`
|
||||
|
||||
Принадлежность файла к языку программирования определяется с помощью его расширения.
|
||||
В [configs/language_extensions.json](configs/language_extensions.json) лежит маппинг.
|
||||
Неизвестные языки никаких ограничений не накладывают. При их использовании можно написать 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