Стандарт атрибутов лингвиста .gitattributes

Я только что создал новый проект Laravel и настраиваю атрибуты .gitattributes Linguist. Проблема в том, что я не уверен, какие из них установить для каких файлов/каталогов.

Файл .gitattributes по умолчанию выглядит так:

* text=auto
*.css linguist-vendored
*.scss linguist-vendored
*.js linguist-vendored
CHANGELOG.md export-ignore

Прежде всего, почему все файлы .css, .scss и .js имеют значение linguist-vendored? Это не только исключит все такие файлы, созданные пользователями, из Linguist, но и Laravel также будет иметь только соответственно 1, 2 и 4 таких файла, как это значительно повлияет на статистику Linguist?

Во-вторых, существует ли какое-либо соглашение/стандарт относительно того, какие файлы следует помечать как linguist-vendored? Должен ли я помечать все файлы Laravel, только те, которые я не изменяю, только каталог vendor или вообще ничего? Или, может быть, еще что-то?

Заранее спасибо !


person Tristan Cottam Meulemans    schedule 01.06.2018    source источник


Ответы (1)


Во-первых, почему для всех файлов .css, .scss и .js установлено значение linguist-vendored?

Из того, что я понимаю, читая комментарии к коммитам e3630a5 и 93876d6, авторы хотели, чтобы проекты Laravel были помечены как PHP (GitHub помечает проекты первым языком из языковой статистики).

Это не только исключит все такие файлы, созданные пользователями, из Linguist, но и Laravel также будет иметь только соответственно 1, 2 и 4 таких файла, как это значительно повлияет на статистику Linguist?

В Linguist языковая статистика выводится из размера файлов для каждого языка (вы можете прочитать мой ответ на как работает Linguist для Более подробная информация). Таким образом, один большой файл может изменить языковую статистику.

В случае с Laravel, если я удалю переопределения Linguist и снова запущу Linguist в репозитории, я получу следующую статистику:

94.11%  PHP
3.30%   HTML
1.42%   JavaScript
0.68%   Vue
0.49%   CSS

Таким образом, нет необходимости использовать переопределения Linguist, чтобы пометить репозиторий как PHP. Однако возможно, что при добавлении переопределений были файлы большего размера.

Обратите внимание, что репозиторий Laravel содержит два больших уменьшенных файла. Лингвист распознает, что есть минифицированные, и помечает их как сгенерированные, тем самым автоматически исключая их из статистики.

Во-вторых, существует ли какое-либо соглашение/стандарт относительно того, какие файлы следует помечать как linguist-vendored? Должен ли я помечать все файлы Laravel, только те, которые я не изменяю, только каталог vendor или вообще ничего? Или, может быть, еще что-то?

Это действительно зависит от вас; насколько мне известно, не существует соглашения о том, что представляет собой вендорный код.

В Linguist мы пытаемся пометить как поставщики все третьи код участника, который может повлиять на статистику, но создан не владельцем репозитория. Однако вы можете изменить поведение по умолчанию с помощью переопределений.

person pchaigno    schedule 02.06.2018
comment
Да, я читал эти комментарии к коммитам, но не понял их, учитывая количество файлов. Во всяком случае, теперь я понял, большое спасибо! - person Tristan Cottam Meulemans; 02.06.2018