Skip to content

Commit a74b74b

Browse files
committed
Finish 1.1.0
2 parents 05ba9d2 + 7dcd3a7 commit a74b74b

19 files changed

+339
-50
lines changed

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
# Встроенные плагины в gitsync
22

3-
##Плагины для gitsync
3+
## Плагины для gitsync
44

55
1. `increment` - обеспечивает инкрементальную выгрузку конфигурации в исходники
6-
1. `sync-remote` - добавляет функциональность синхронизации с удаленным репозиторием git (команды `git pull` и `git push`)
6+
1. `sync-remote` - добавляет функциональность синхронизации с удаленным репозиторием git (команды `git pull` и `git push`)
77
1. `limit` - добавляет возможность ограничения на минимальный, максимальный номер версии хранилища, а так же на лимит на количество выгружаемых версий за один запуск
88
1. `check-authors` - добавляет функциональность проверки автора версии в хранилище на наличие соответствия в файле `AUTHORS`
99
1. `check-comments` - добавляет функциональность проверки на заполненность комментариев в хранилище
10-
1. `smart-tags` - добавляет функциональность автоматической расстановки меток в git (команда `git tag`) при изменении версии конфигурации
10+
1. `smart-tags` - добавляет функциональность автоматической расстановки меток в git (команда `git tag`) при изменении версии конфигурации или при нумерации версий хранилища
1111
1. `unpackForm` - добавляет функциональность распаковки обычных форм на исходники
1212
1. `tool1CD` - заменяет использование штатных механизмов 1С на приложение `tool1CD` при синхронизации
1313
1. `disable-support` - снимает конфигурацию с поддержки перед выгрузкой в исходники

bin/v8unpack/v8unpack.dll

0 Bytes
Binary file not shown.

bin/v8unpack/v8unpack_1.0.19.dll

14 KB
Binary file not shown.

features/check-authors.feature

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
И Я добавляю позиционный параметр для команды "gitsync" из переменной "КаталогХранилища1С"
3131
И Я добавляю позиционный параметр для команды "gitsync" из переменной "ПутьКаталогаИсходников"
3232
Когда Я выполняю команду "gitsync"
33-
Тогда Вывод команды "gitsync" содержит "В таблице истории версий найдены авторы (количество 8), которые не сопоставлены в AUTHORS"
33+
Тогда Вывод команды "gitsync" содержит "В таблице истории версий найдены авторы (количество 10), которые не сопоставлены в AUTHORS"
3434
И Вывод команды "gitsync" не содержит "Внешнее исключение"
3535
И Код возврата команды "gitsync" равен 1
3636

features/check-comments.feature

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
Допустим Я добавляю позиционный параметр для команды "gitsync" из переменной "КаталогХранилища1С"
3030
И Я добавляю позиционный параметр для команды "gitsync" из переменной "ПутьКаталогаИсходников"
3131
Когда Я выполняю команду "gitsync"
32-
Тогда Вывод команды "gitsync" содержит "КРИТИЧНАЯОШИБКА - Нашли следующую версию <4> от автора <Администратор>, а комментарий не задан!"
32+
Тогда Вывод команды "gitsync" содержит "КРИТИЧНАЯОШИБКА - Версия <4> от автора <Администратор>: комментарий не задан"
3333
И Вывод команды "gitsync" не содержит "Внешнее исключение"
3434
И Код возврата команды "gitsync" равен 0
3535

@@ -38,7 +38,7 @@
3838
И Я добавляю позиционный параметр для команды "gitsync" из переменной "КаталогХранилища1С"
3939
И Я добавляю позиционный параметр для команды "gitsync" из переменной "ПутьКаталогаИсходников"
4040
Когда Я выполняю команду "gitsync"
41-
Тогда Вывод команды "gitsync" содержит "КРИТИЧНАЯОШИБКА - Нашли следующую версию <4> от автора <Администратор>, а комментарий не задан!"
41+
Тогда Вывод команды "gitsync" содержит "КРИТИЧНАЯОШИБКА - Версия <4> от автора <Администратор>: комментарий не задан"
4242
И Вывод команды "gitsync" не содержит "Внешнее исключение"
4343
И Код возврата команды "gitsync" равен 1
4444
И Количество коммитов должно быть "3"

features/limit.feature

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353
Тогда Вывод команды "gitsync" содержит "ИНФОРМАЦИЯ - Завершена синхронизации с git"
5454
И Вывод команды "gitsync" не содержит "Внешнее исключение"
5555
И Код возврата команды "gitsync" равен 0
56-
И Количество коммитов должно быть "4"
56+
И Количество коммитов должно быть "6"
5757

5858
Сценарий: Cинхронизация хранилища все вместе
5959
Допустим Я добавляю параметр "--limit 3" для команды "gitsync"

packagedef

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@
2222
КонецПроцедуры
2323

2424
Описание.Имя("gitsync-plugins")
25-
.Версия("1.0.5")
26-
.Автор("Khorev A.A. and SiverBulleters")
27-
.АдресАвтора("[email protected]")
25+
.Версия("1.1.0")
26+
.Автор("Khorev A.A. and SilverBulleters")
27+
.АдресАвтора("[email protected],[email protected]")
2828
.Описание("Набор предустановленных плагинов для gitsync")
29-
.ВерсияСреды("1.0.20")
29+
.ВерсияСреды("1.2.0")
3030
.ВключитьФайл("src")
3131
.ВключитьФайл("docs")
3232
.ВключитьФайл("oscript_modules")

src/Классы/checkAuthors.os

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

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

@@ -80,10 +81,13 @@
8081

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

83-
Процедура ПередНачаломЦиклаОбработкиВерсий(ТаблицаИсторииХранилища, ТекущаяВерсия, СледующаяВерсия, МаксимальнаяВерсияДляРазбора) Экспорт
84+
Процедура ПослеПолученияТаблицыАвторов(ПутьКФайлуАвторов, ТаблицаАвторов) Экспорт
85+
86+
ТаблицаАвторовГит = ТаблицаАвторов.Скопировать();
87+
88+
КонецПроцедуры
8489

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

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

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

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

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

src/Классы/checkComments.os

Lines changed: 83 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44
Перем Лог;
55
Перем КомандыПлагина;
66
Перем ВызватьОшибку;
7+
Перем ПрефиксЗадачи;
8+
Перем МинимальноеКоличествоЗадач;
9+
Перем МаксимальноеКоличествоЗадач;
710

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

@@ -67,7 +70,7 @@
6770

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

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

83+
КлассРеализации.Опция("task-prefix", "", "[*check-comments] Префикс задачи.")
84+
.ВОкружении("GITSYNC_TASK_PREFIX")
85+
.Обязательный(Ложь);
86+
87+
КлассРеализации.Опция("min-task-count", 0, СтрШаблон("[*check-comments] Минимальное количество упоминаний задач"))
88+
.ТЧисло()
89+
.Обязательный(Ложь);
90+
91+
КлассРеализации.Опция("max-task-count", 0, СтрШаблон("[*check-comments] Максимальное количество упоминаний задач"))
92+
.ТЧисло()
93+
.Обязательный(Ложь);
94+
8095
КонецПроцедуры
8196

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

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

86101
ВызватьОшибку = Булево(ВызватьОшибку);
87-
88102
Лог.Отладка("Получаю параметр <error-comment> значение <%1>", ВызватьОшибку);
89-
103+
104+
ПрефиксЗадачи = ПараметрыКоманды.Параметр("task-prefix", "");
105+
Лог.Отладка("Получаю параметр <task-prefix> значение <%1>", ПрефиксЗадачи);
106+
107+
МинимальноеКоличествоЗадач = ПараметрыКоманды.Параметр("min-task-count", 0);
108+
Лог.Отладка("Получаю параметр <min-task-count> значение <%1>", МинимальноеКоличествоЗадач);
109+
110+
МаксимальноеКоличествоЗадач = ПараметрыКоманды.Параметр("max-task-count", 0);
111+
Лог.Отладка("Получаю параметр <max-task-count> значение <%1>", МаксимальноеКоличествоЗадач);
112+
90113
КонецПроцедуры
91114

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

94-
Если ПустаяСтрока(СтрокаВерсии.Комментарий) Тогда
95-
СтрокаОшибки = СтрШаблон("Нашли следующую версию <%1> от автора <%2>, а комментарий не задан!",
96-
СледующаяВерсия,
97-
СтрокаВерсии.Автор);
98-
Лог.КритичнаяОшибка(СтрокаОшибки);
117+
ПроверитьЗаполненностьКомментария(СтрокаВерсии, СледующаяВерсия);
118+
119+
ПроверитьКомментарийНаНаличиеУпоминанийЗадач(СтрокаВерсии, СледующаяВерсия);
120+
121+
КонецПроцедуры
122+
123+
Процедура ПроверитьЗаполненностьКомментария(СтрокаВерсии, СледующаяВерсия)
99124

125+
Если Не ПустаяСтрока(СтрокаВерсии.Комментарий) Тогда
126+
Возврат;
127+
КонецЕсли;
128+
129+
СтрокаОшибки = СтрШаблон("Версия <%1> от автора <%2>: комментарий не задан",
130+
СледующаяВерсия,
131+
СтрокаВерсии.Автор);
132+
Лог.КритичнаяОшибка(СтрокаОшибки);
133+
134+
Если ВызватьОшибку Тогда
135+
136+
ВызватьИсключение СтрокаОшибки;
137+
138+
КонецЕсли;
139+
140+
КонецПроцедуры
141+
142+
Процедура ПроверитьКомментарийНаНаличиеУпоминанийЗадач(СтрокаВерсии, СледующаяВерсия)
143+
144+
Если ПустаяСтрока(ПрефиксЗадачи) Или ПустаяСтрока(СтрокаВерсии.Комментарий) Тогда
145+
Возврат;
146+
КонецЕсли;
147+
148+
РВ = Новый РегулярноеВыражение(СтрШаблон("%1-%2", ПрефиксЗадачи, "\d"));
149+
Совпадения = РВ.НайтиСовпадения(СтрокаВерсии.Комментарий);
150+
КоличествоВхождений = Совпадения.количество();
151+
152+
Если КоличествоВхождений < МинимальноеКоличествоЗадач Тогда
153+
СтрокаОшибки = СтрШаблон("Версия <%1> от автора <%2>: количество упоминаний задач %3 (%4) меньше требуемого (%5)",
154+
СледующаяВерсия,
155+
СтрокаВерсии.Автор, ПрефиксЗадачи, КоличествоВхождений, МинимальноеКоличествоЗадач);
156+
157+
Лог.КритичнаяОшибка(СтрокаОшибки);
158+
100159
Если ВызватьОшибку Тогда
101160

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

104163
КонецЕсли;
105-
164+
106165
КонецЕсли;
166+
167+
Если КоличествоВхождений > МаксимальноеКоличествоЗадач Тогда
168+
СтрокаОшибки = СтрШаблон("Версия <%1> от автора <%2>: количество упоминаний задач %3 (%4) больше требуемого (%5)",
169+
СледующаяВерсия,
170+
СтрокаВерсии.Автор, ПрефиксЗадачи, КоличествоВхождений, МаксимальноеКоличествоЗадач);
171+
172+
Лог.КритичнаяОшибка(СтрокаОшибки);
173+
174+
Если ВызватьОшибку Тогда
107175

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

178+
КонецЕсли;
179+
180+
КонецЕсли;
181+
182+
КонецПроцедуры
110183
#КонецОбласти
111184

112185
Процедура Инициализация()

src/Классы/increment.os

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@
107107
КаталогРабочейКопии,
108108
?(ТекущийФайлВерсийМетаданных.Существует(), "существует", "отсутствует"));
109109

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

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

171171
ПутьКФайлуИзменений = ВременныеФайлы.НовоеИмяФайла();
172172
ОбновлениеВозможно = Ложь;
173-
173+
174+
КаталогВыгрузки = ВременныеФайлы.СоздатьКаталог();
175+
174176
ТекущийФайлВерсийМетаданных = Новый Файл(ОбъединитьПути(КаталогВыгрузки, "ConfigDumpInfo.xml"));
175177

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

src/Классы/internal/bindata/Классы/v8unpack_1_0_19_gitsync_plugins.os

Lines changed: 34 additions & 0 deletions
Large diffs are not rendered by default.

src/Классы/internal/bindata/Классы/v8unpack_gitsync_plugins.os

Lines changed: 2 additions & 2 deletions
Large diffs are not rendered by default.

src/Классы/internal/bindata/Классы/МенеджерЗапакованныхФайловGitsyncPlugins.os

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

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

src/Классы/limit.os

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@
7878

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

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

0 commit comments

Comments
 (0)