Skip to content

Commit

Permalink
Finish 1.1.0
Browse files Browse the repository at this point in the history
  • Loading branch information
khorevaa committed Jan 9, 2020
2 parents 05ba9d2 + 7dcd3a7 commit a74b74b
Show file tree
Hide file tree
Showing 19 changed files with 339 additions and 50 deletions.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
# Встроенные плагины в gitsync

##Плагины для gitsync
## Плагины для gitsync

1. `increment` - обеспечивает инкрементальную выгрузку конфигурации в исходники
1. `sync-remote` - добавляет функциональность синхронизации с удаленным репозиторием git (команды `git pull` и `git push`)
1. `sync-remote` - добавляет функциональность синхронизации с удаленным репозиторием git (команды `git pull` и `git push`)
1. `limit` - добавляет возможность ограничения на минимальный, максимальный номер версии хранилища, а так же на лимит на количество выгружаемых версий за один запуск
1. `check-authors` - добавляет функциональность проверки автора версии в хранилище на наличие соответствия в файле `AUTHORS`
1. `check-comments` - добавляет функциональность проверки на заполненность комментариев в хранилище
1. `smart-tags` - добавляет функциональность автоматической расстановки меток в git (команда `git tag`) при изменении версии конфигурации
1. `smart-tags` - добавляет функциональность автоматической расстановки меток в git (команда `git tag`) при изменении версии конфигурации или при нумерации версий хранилища
1. `unpackForm` - добавляет функциональность распаковки обычных форм на исходники
1. `tool1CD` - заменяет использование штатных механизмов 1С на приложение `tool1CD` при синхронизации
1. `disable-support` - снимает конфигурацию с поддержки перед выгрузкой в исходники
Expand Down
Binary file modified bin/v8unpack/v8unpack.dll
Binary file not shown.
Binary file added bin/v8unpack/v8unpack_1.0.19.dll
Binary file not shown.
2 changes: 1 addition & 1 deletion features/check-authors.feature
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
И Я добавляю позиционный параметр для команды "gitsync" из переменной "КаталогХранилища1С"
И Я добавляю позиционный параметр для команды "gitsync" из переменной "ПутьКаталогаИсходников"
Когда Я выполняю команду "gitsync"
Тогда Вывод команды "gitsync" содержит "В таблице истории версий найдены авторы (количество 8), которые не сопоставлены в AUTHORS"
Тогда Вывод команды "gitsync" содержит "В таблице истории версий найдены авторы (количество 10), которые не сопоставлены в AUTHORS"
И Вывод команды "gitsync" не содержит "Внешнее исключение"
И Код возврата команды "gitsync" равен 1

Expand Down
4 changes: 2 additions & 2 deletions features/check-comments.feature
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
Допустим Я добавляю позиционный параметр для команды "gitsync" из переменной "КаталогХранилища1С"
И Я добавляю позиционный параметр для команды "gitsync" из переменной "ПутьКаталогаИсходников"
Когда Я выполняю команду "gitsync"
Тогда Вывод команды "gitsync" содержит "КРИТИЧНАЯОШИБКА - Нашли следующую версию <4> от автора <Администратор>, а комментарий не задан!"
Тогда Вывод команды "gitsync" содержит "КРИТИЧНАЯОШИБКА - Версия <4> от автора <Администратор>: комментарий не задан"
И Вывод команды "gitsync" не содержит "Внешнее исключение"
И Код возврата команды "gitsync" равен 0

Expand All @@ -38,7 +38,7 @@
И Я добавляю позиционный параметр для команды "gitsync" из переменной "КаталогХранилища1С"
И Я добавляю позиционный параметр для команды "gitsync" из переменной "ПутьКаталогаИсходников"
Когда Я выполняю команду "gitsync"
Тогда Вывод команды "gitsync" содержит "КРИТИЧНАЯОШИБКА - Нашли следующую версию <4> от автора <Администратор>, а комментарий не задан!"
Тогда Вывод команды "gitsync" содержит "КРИТИЧНАЯОШИБКА - Версия <4> от автора <Администратор>: комментарий не задан"
И Вывод команды "gitsync" не содержит "Внешнее исключение"
И Код возврата команды "gitsync" равен 1
И Количество коммитов должно быть "3"
2 changes: 1 addition & 1 deletion features/limit.feature
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@
Тогда Вывод команды "gitsync" содержит "ИНФОРМАЦИЯ - Завершена синхронизации с git"
И Вывод команды "gitsync" не содержит "Внешнее исключение"
И Код возврата команды "gitsync" равен 0
И Количество коммитов должно быть "4"
И Количество коммитов должно быть "6"

Сценарий: Cинхронизация хранилища все вместе
Допустим Я добавляю параметр "--limit 3" для команды "gitsync"
Expand Down
8 changes: 4 additions & 4 deletions packagedef
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,11 @@
КонецПроцедуры

Описание.Имя("gitsync-plugins")
.Версия("1.0.5")
.Автор("Khorev A.A. and SiverBulleters")
.АдресАвтора("khorevaa@gmail.com")
.Версия("1.1.0")
.Автор("Khorev A.A. and SilverBulleters")
.АдресАвтора("khorevaa@gmail.com,help@silverbulleters.org")
.Описание("Набор предустановленных плагинов для gitsync")
.ВерсияСреды("1.0.20")
.ВерсияСреды("1.2.0")
.ВключитьФайл("src")
.ВключитьФайл("docs")
.ВключитьФайл("oscript_modules")
Expand Down
12 changes: 8 additions & 4 deletions src/Классы/checkAuthors.os
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

Перем Лог;
Перем Обработчик;
Перем ТаблицаАвторовГит;
Перем МассивНомеровВерсий;
Перем КаталогРабочейКопии;

Expand Down Expand Up @@ -80,10 +81,13 @@

КонецПроцедуры

Процедура ПередНачаломЦиклаОбработкиВерсий(ТаблицаИсторииХранилища, ТекущаяВерсия, СледующаяВерсия, МаксимальнаяВерсияДляРазбора) Экспорт
Процедура ПослеПолученияТаблицыАвторов(ПутьКФайлуАвторов, ТаблицаАвторов) Экспорт

ТаблицаАвторовГит = ТаблицаАвторов.Скопировать();

КонецПроцедуры

ПутьКФайлуСопоставления = ОбъединитьПути(КаталогРабочейКопии, Обработчик.ИмяФайлаАвторов());
ТаблицаСопоставления = Обработчик.ПрочитатьФайлАвторовГитВТаблицуПользователей(ПутьКФайлуСопоставления);
Процедура ПередНачаломЦиклаОбработкиВерсий(ТаблицаИсторииХранилища, ТекущаяВерсия, СледующаяВерсия, МаксимальнаяВерсияДляРазбора) Экспорт

КоличествоВерсий = 0;

Expand All @@ -93,7 +97,7 @@
Продолжить;
КонецЕсли;

СтрокаПользователя = ТаблицаСопоставления.Найти(СтрокаВерсии.Автор, "Автор");
СтрокаПользователя = ТаблицаАвторовГит.Найти(СтрокаВерсии.Автор, "Автор");

Если СтрокаПользователя = Неопределено Тогда

Expand Down
93 changes: 83 additions & 10 deletions src/Классы/checkComments.os
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@
Перем Лог;
Перем КомандыПлагина;
Перем ВызватьОшибку;
Перем ПрефиксЗадачи;
Перем МинимальноеКоличествоЗадач;
Перем МаксимальноеКоличествоЗадач;

#Область Интерфейс_плагина

Expand Down Expand Up @@ -67,7 +70,7 @@

Процедура ПриРегистрацииКомандыПриложения(ИмяКоманды, КлассРеализации) Экспорт

Лог.Отладка("Ищю команду <%1> в списке поддерживаемых", ИмяКоманды);
Лог.Отладка("Ищу команду <%1> в списке поддерживаемых", ИмяКоманды);
Если КомандыПлагина.Найти(ИмяКоманды) = Неопределено Тогда
Возврат;
КонецЕсли;
Expand All @@ -77,36 +80,106 @@
КлассРеализации.Опция("C error-comment", Ложь, "[*check-comments] флаг вызова ошибки при отсутствии текста комментария")
.Флаговый();

КлассРеализации.Опция("task-prefix", "", "[*check-comments] Префикс задачи.")
.ВОкружении("GITSYNC_TASK_PREFIX")
.Обязательный(Ложь);

КлассРеализации.Опция("min-task-count", 0, СтрШаблон("[*check-comments] Минимальное количество упоминаний задач"))
.ТЧисло()
.Обязательный(Ложь);

КлассРеализации.Опция("max-task-count", 0, СтрШаблон("[*check-comments] Максимальное количество упоминаний задач"))
.ТЧисло()
.Обязательный(Ложь);

КонецПроцедуры

Процедура ПриПолученииПараметров(ПараметрыКоманды) Экспорт

ВызватьОшибку = ПараметрыКоманды.Параметр("error-comment", Ложь);

ВызватьОшибку = Булево(ВызватьОшибку);

Лог.Отладка("Получаю параметр <error-comment> значение <%1>", ВызватьОшибку);


ПрефиксЗадачи = ПараметрыКоманды.Параметр("task-prefix", "");
Лог.Отладка("Получаю параметр <task-prefix> значение <%1>", ПрефиксЗадачи);

МинимальноеКоличествоЗадач = ПараметрыКоманды.Параметр("min-task-count", 0);
Лог.Отладка("Получаю параметр <min-task-count> значение <%1>", МинимальноеКоличествоЗадач);

МаксимальноеКоличествоЗадач = ПараметрыКоманды.Параметр("max-task-count", 0);
Лог.Отладка("Получаю параметр <max-task-count> значение <%1>", МаксимальноеКоличествоЗадач);

КонецПроцедуры

Процедура ПередОбработкойВерсииХранилища(СтрокаВерсии, СледующаяВерсия) Экспорт

Если ПустаяСтрока(СтрокаВерсии.Комментарий) Тогда
СтрокаОшибки = СтрШаблон("Нашли следующую версию <%1> от автора <%2>, а комментарий не задан!",
СледующаяВерсия,
СтрокаВерсии.Автор);
Лог.КритичнаяОшибка(СтрокаОшибки);
ПроверитьЗаполненностьКомментария(СтрокаВерсии, СледующаяВерсия);

ПроверитьКомментарийНаНаличиеУпоминанийЗадач(СтрокаВерсии, СледующаяВерсия);

КонецПроцедуры

Процедура ПроверитьЗаполненностьКомментария(СтрокаВерсии, СледующаяВерсия)

Если Не ПустаяСтрока(СтрокаВерсии.Комментарий) Тогда
Возврат;
КонецЕсли;

СтрокаОшибки = СтрШаблон("Версия <%1> от автора <%2>: комментарий не задан",
СледующаяВерсия,
СтрокаВерсии.Автор);
Лог.КритичнаяОшибка(СтрокаОшибки);

Если ВызватьОшибку Тогда

ВызватьИсключение СтрокаОшибки;

КонецЕсли;

КонецПроцедуры

Процедура ПроверитьКомментарийНаНаличиеУпоминанийЗадач(СтрокаВерсии, СледующаяВерсия)

Если ПустаяСтрока(ПрефиксЗадачи) Или ПустаяСтрока(СтрокаВерсии.Комментарий) Тогда
Возврат;
КонецЕсли;

РВ = Новый РегулярноеВыражение(СтрШаблон("%1-%2", ПрефиксЗадачи, "\d"));
Совпадения = РВ.НайтиСовпадения(СтрокаВерсии.Комментарий);
КоличествоВхождений = Совпадения.количество();

Если КоличествоВхождений < МинимальноеКоличествоЗадач Тогда
СтрокаОшибки = СтрШаблон("Версия <%1> от автора <%2>: количество упоминаний задач %3 (%4) меньше требуемого (%5)",
СледующаяВерсия,
СтрокаВерсии.Автор, ПрефиксЗадачи, КоличествоВхождений, МинимальноеКоличествоЗадач);

Лог.КритичнаяОшибка(СтрокаОшибки);

Если ВызватьОшибку Тогда

ВызватьИсключение СтрокаОшибки;

КонецЕсли;

КонецЕсли;

Если КоличествоВхождений > МаксимальноеКоличествоЗадач Тогда
СтрокаОшибки = СтрШаблон("Версия <%1> от автора <%2>: количество упоминаний задач %3 (%4) больше требуемого (%5)",
СледующаяВерсия,
СтрокаВерсии.Автор, ПрефиксЗадачи, КоличествоВхождений, МаксимальноеКоличествоЗадач);

Лог.КритичнаяОшибка(СтрокаОшибки);

Если ВызватьОшибку Тогда

КонецПроцедуры
ВызватьИсключение СтрокаОшибки;

КонецЕсли;

КонецЕсли;

КонецПроцедуры
#КонецОбласти

Процедура Инициализация()
Expand Down
6 changes: 4 additions & 2 deletions src/Классы/increment.os
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@
КаталогРабочейКопии,
?(ТекущийФайлВерсийМетаданных.Существует(), "существует", "отсутствует"));

Лог.Отладка("Проверяю возможность обновление выгрузки для файла <%1>", ПутьКФайлуВерсийМетаданных);
Лог.Отладка("Проверяю возможность обновления выгрузки для файла <%1>", ПутьКФайлуВерсийМетаданных);

ВыгрузкаИзмененийВозможна = ТекущийФайлВерсийМетаданных.Существует()
И ПроверитьВозможностьОбновленияФайловВыгрузки(Конфигуратор, КаталогВыгрузки, ПутьКФайлуВерсийМетаданных);
Expand Down Expand Up @@ -170,7 +170,9 @@

ПутьКФайлуИзменений = ВременныеФайлы.НовоеИмяФайла();
ОбновлениеВозможно = Ложь;


КаталогВыгрузки = ВременныеФайлы.СоздатьКаталог();

ТекущийФайлВерсийМетаданных = Новый Файл(ОбъединитьПути(КаталогВыгрузки, "ConfigDumpInfo.xml"));

Если НЕ ТекущийФайлВерсийМетаданных.Существует() И ПустаяСтрока(ПутьКФайлуВерсийДляСравнения) Тогда
Expand Down

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

ИндексФайлов = Новый Соответствие;
ИндексФайлов.Вставить("v8unpack.dll", "v8unpack_gitsync_plugins");
ИндексФайлов.Вставить("v8unpack_1.0.19.dll", "v8unpack_1_0_19_gitsync_plugins");
ИндексФайлов.Вставить("v8unpack_d.exe", "v8unpack_d_gitsync_plugins");
ИндексФайлов.Вставить("cTool_1CD.exe", "cTool_1CD_gitsync_plugins");

Expand Down
2 changes: 1 addition & 1 deletion src/Классы/limit.os
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@

Процедура ПриРегистрацииКомандыПриложения(ИмяКоманды, КлассРеализации) Экспорт

Лог.Отладка("Ищю команду <%1> в списке поддерживаемых", ИмяКоманды);
Лог.Отладка("Ищу команду <%1> в списке поддерживаемых", ИмяКоманды);
Если КомандыПлагина.Найти(ИмяКоманды) = Неопределено Тогда
Возврат;
КонецЕсли;
Expand Down
Loading

0 comments on commit a74b74b

Please sign in to comment.