diff --git a/README.md b/README.md index 9613a20..04874c9 100644 --- a/README.md +++ b/README.md @@ -27,10 +27,21 @@ Перед использованием необходима установка precommit-hook'а в репозиторий: - для выполнения установки в конкретный репозиторий необходимо выполнить команду `precommit4onec install repo_name` + - для выполнения установки во все репозитории каталога необходимо выполнить команду `precommit4onec install folder_reps -r` + - если каталог исходных файлов в репозитории отличается от стандартного "src" (например, когда исходные файлы в формате EDT), необходимо явно указать его с помощью дополнительного параметра `-source-dir "configuration"` -После этого, при каждом коммите будет выполняться обработка файлов. + После этого, при каждом коммите будет выполняться обработка файлов. + +###### **Интерактивная обработка**. + + Для обработки **измененных, но неиндексированных файлов epf erf cfe** можно воспользоваться командой вида + `oscript "C:\Program Files\OneScript\lib\precommit4onec\src\main.os" precommit ./ -source-dir "src" -interactive` + +Для использования режима интерактивной обработки установка precommit-hook'а в репозиторий не нужна. + + В комплекте присутствуют следующие сценарии обработки файлов: diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\321\200\320\265\320\272\320\276\320\274\320\274\320\270\321\202.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\321\200\320\265\320\272\320\276\320\274\320\274\320\270\321\202.os" index 67852de..9fe7b73 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\321\200\320\265\320\272\320\276\320\274\320\274\320\270\321\202.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\237\321\200\320\265\320\272\320\276\320\274\320\274\320\270\321\202.os" @@ -10,6 +10,7 @@ Перем Лог; Перем РепозиторийGit; +Перем ЭтоИнтерактив; /////////////////////////////////////////////////////////////////////////////// @@ -19,6 +20,14 @@ Парсер.ДобавитьПозиционныйПараметрКоманды(Команда, "КаталогРепозитория", "Каталог анализируемого репозитория"); Парсер.ДобавитьИменованныйПараметрКоманды(Команда, "-source-dir", "Каталог расположения исходных файлов относительно корня репозитория. По умолчанию "); + Парсер.ДобавитьИменованныйПараметрКоманды(Команда, "-ibconnection", + "Опционально: соединение с базой данных 1С вида /SИмяСервера\ИмяБазы"); + Парсер.ДобавитьИменованныйПараметрКоманды(Команда, "-u", + "Опционально: логин базы данных 1С"); + Парсер.ДобавитьИменованныйПараметрКоманды(Команда, "-p", + "Опционально: пароль базы данных 1С"); + Парсер.ДобавитьПараметрФлагКоманды(Команда, "-interactive", + "Признак интерактивного разбора неиндексированных файлов epf erf cfe"); КонецПроцедуры // НастроитьКоманду @@ -35,6 +44,7 @@ КаталогРепозитория = ПараметрыКоманды["КаталогРепозитория"]; КаталогИсходныхФайлов = ПараметрыКоманды["-source-dir"]; + ЭтоИнтерактив = ПараметрыКоманды["-interactive"]; Если НЕ ПроверитьПараметрыКоманды(КаталогРепозитория, Лог) Тогда @@ -185,7 +195,13 @@ Функция ПолучитьЖурналИзменений() ПараметрыКомандыGit = Новый Массив; - ПараметрыКомандыGit.Добавить("diff --name-status --staged --no-renames"); + + Если ЭтоИнтерактив Тогда + ПараметрыКомандыGit.Добавить("status -s -u "); + Иначе + ПараметрыКомандыGit.Добавить("diff --name-status --staged --no-renames"); + КонецЕсли; + РепозиторийGit.ВыполнитьКоманду(ПараметрыКомандыGit); РезультатВывода = РепозиторийGit.ПолучитьВыводКоманды(); СтрокиВывода = СтрРазделить(РезультатВывода, Символы.ПС); @@ -196,7 +212,15 @@ Лог.Отладка(" <%1>", СтрокаВывода); СтрокаВывода = СокрЛП(СтрокаВывода); - ПозицияПробела = СтрНайти(СтрокаВывода, Символы.Таб); + Если ЭтоИнтерактив Тогда + Если СтрНайти(СтрокаВывода, " -> ") = 0 Тогда + ПозицияПробела = 2; + Иначе + ПозицияПробела = СтрНайти(СтрокаВывода, " -> ") + 3; + КонецЕсли; + Иначе + ПозицияПробела = СтрНайти(СтрокаВывода, Символы.Таб); + КонецЕсли; СимволИзменения = Лев(СтрокаВывода, 1); ТипИзменения = ВариантИзмененийФайловGit.ОпределитьВариантИзменения(СимволИзменения);