forked from bia-tech/precommit4onec
-
Notifications
You must be signed in to change notification settings - Fork 20
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
198 changed files
with
27,943 additions
and
2,167 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
# Команда `exec-rules` | ||
|
||
Команда предназначена для принудительного выполнения указанных сценариев в выбранном репозитории. | ||
|
||
### Параметры команды | ||
|
||
``` | ||
exec-rules -source-dir <Каталоги исходных файлов> -rules <Применяемые сценарии> -cfg-file <Файл настроек> <КаталогРепозитория> <Коммит1> <Коммит2> | ||
``` | ||
|
||
Описание параметров: | ||
- КаталогРепозитория - обязательный параметр, должен содержать абсолютный или относительный путь к каталогу репозитория, для файлов которого будут выполняться сценарии прекоммита; | ||
- Коммит1, Коммит2 - необязательные параметры, если указаны, сценарии будут выполнены не для всех исходных файлов, а только для тех, которые были изменены между двумя коммитами. В качестве значения следует передавать хэш коммита. Если указано два хэша, будут составлен список измененных файлов между ними, если один, то он должен иметь двух родителей (как в случае коммита при merge-реквесте), иначе будет вызвано исключение; | ||
- Каталоги исходных файлов - необязательный параметр, поддерживает перечисление через запятую относительных путей к каталогам внутри каталога репозитория, в которых расположены исходные файлы, для которых будут выполнять сценарии прекоммита. Значение по-умолчанию - "src"; | ||
- Применяемые сценарии - необязательный параметр, содержащий список сценариев, перечисленных через запятую, выполняемый для обрабатываемых файлов. Если не указан, выполняются все сценарии прекоммита; | ||
- Файл настроек - необязательный параметр, путь к файлу настроек прекоммита. Если не указан, используется файл `v8config.json` репозитория или глобальные настройки, если файл в репозитории отсутствует. | ||
|
||
### Примеры | ||
|
||
1. Команда: | ||
|
||
```shell | ||
precommit4onec exec-rules "C:\МойРепозиторий" -source-dir "ПапкаИсходныхФайловSrc" -rules "ВставкаКопирайтов,ПроверкаНецензурныхСлов" | ||
``` | ||
|
||
Для всех файлов в каталоге `C:\МойРепозиторий\ПапкаИсходныхФайловSrc` будут выполнены сценарии: `ВставкаКопирайтов`, `ПроверкаНецензурныхСлов`. | ||
|
||
2. Команда: | ||
|
||
```shell | ||
precommit4onec exec-rules "C:\МойРепозиторий" 454474a414494f4b77c484939173e1d44678c96a 937f5cf1ebdda2eaadb1aa169cf066583f2763db | ||
``` | ||
|
||
Для файлов в каталоге `C:\МойРепозиторий\src`, измененных между указанными коммитами, будут выполнены все сценарии прекоммита. Если файлы находятся вне каталога `src`, они будут проигнорированы. | ||
|
||
### Вызов команды в Git Extensions | ||
|
||
Возможности [Git Extension](https://gitextensions.github.io/) позволяют подключать пользовательские скрипты для работы с данными. Например, следующая настройка в разделе `Git Extensions\Scripts`: | ||
|
||
![Settings](img/GitExtensions_Settings.png) | ||
|
||
позволяет добавить на командную панель кнопку запуска прекоммита для выбранных в дереве коммитов: | ||
|
||
![Button](img/GitExtensions_Interface.png) | ||
|
||
В настройках указывается: | ||
- Command - путь к скрипту запуска прекоммита; | ||
- Arguments - параметры запуска по шаблону, описанному выше. Вместо `{sHashes}` Git Extensions подставит разделенные пробелом хэши выделенных в дереве коммитов. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
# Функциональность проверки сообщения коммита | ||
|
||
### Описание | ||
|
||
Позволяет проверять сообщения коммита в репозиториях, где подключен прекоммит, на соответствие регулярному выражению. | ||
|
||
### Настройка | ||
|
||
Пример: | ||
```JSON | ||
{ | ||
"Precommt4onecСценарии": { | ||
"ПроверкаСообщенияКоммита": { | ||
"Использовать": true, | ||
"Выражение": "Задача: \d+, Сообщение: \w+", | ||
"СообщениеОбОшибке": "Сообщение коммита не содержит номера задачи" | ||
} | ||
} | ||
} | ||
``` | ||
|
||
Описание параметров: | ||
- `Использовать` - Булево - флаг включения проверки соообщений коммита; | ||
- `Выражение` - Строка - регулярное выражение, которому должно соответствовать сообщение коммита; | ||
- `СообщениеОбОшибке` - Строка - текст сообщения, которое будет показано пользователю при несоответствии сообщения коммита выражению проверки. | ||
|
||
Например, при указанной выше настройке, если пользователь введет сообщение "Задача: 1234, Соообщение: Рефакторинг", то проверка пройдет без ошибки. Если сообщение "Рефакторинг по задаче", то при коммите будет выдано сообщение об ошибке "Сообщение коммита не содержит номера задачи". | ||
|
||
Настройка осуществляется в файле v8config.json репозитория. Если файл локальных настроек отсутствует, используются глобальные настройки прекоммита. | ||
|
||
Проверка сообщения вызывается до проверки измененных файлов и останавливает выполнение прекоммита, если сообщение не соответствует маске. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.