Skip to content

Commit 612895d

Browse files
authored
Merge pull request #1 from VladFrost/hotfix/smart-tags-errors-bypass
Обход ошибок создания тегов
2 parents 4fc150e + 2a58ff2 commit 612895d

File tree

1 file changed

+45
-1
lines changed

1 file changed

+45
-1
lines changed

src/Классы/smart-tags.os

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
Перем ВерсияПлагина;
44
Перем Лог;
55
Перем Обработчик;
6+
Перем КомандыПлагина;
7+
Перем ПропускатьСуществующиеТеги;
68
Перем ПоследняяВерсияКонфигурации;
79
Перем ТекущаяВерсияКонфигурации;
810

@@ -20,6 +22,29 @@
2022

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

25+
Процедура ПриРегистрацииКомандыПриложения(ИмяКоманды, КлассРеализации, Парсер) Экспорт
26+
27+
Лог.Отладка("Ищю команду <%1> в списке поддерживаемых", ИмяКоманды);
28+
Если КомандыПлагина.Найти(ИмяКоманды) = Неопределено Тогда
29+
Возврат;
30+
КонецЕсли;
31+
32+
Лог.Отладка("Устанавливаю дополнительные параметры для команды %1", ИмяКоманды);
33+
34+
ПропускатьСуществующиеТеги = КлассРеализации.Опция("S skip-exists-tags", Ложь, "[*skip-exists-tags] флаг пропуска ошибок создания существующих тегов").Флаговый();
35+
36+
КонецПроцедуры
37+
38+
Процедура ПриПолученииПараметров(ПараметрыКоманды, ДополнительныеПараметры) Экспорт
39+
40+
ПропускатьСуществующиеТеги = ПараметрыКоманды["--skip-exists-tags"];
41+
42+
Если ПропускатьСуществующиеТеги = Неопределено Тогда
43+
ПропускатьСуществующиеТеги = Ложь;
44+
КонецЕсли;
45+
46+
КонецПроцедуры
47+
2348
Процедура ПередНачаломВыполнения(ПутьКХранилищу, КаталогРабочейКопии, URLРепозитория, ИмяВетки) Экспорт
2449

2550
ПоследняяВерсияКонфигурации = ПрочитатьВерсиюИзИсходников(КаталогРабочейКопии);
@@ -48,7 +73,18 @@
4873
ПараметрыКоманды.Добавить("tag");
4974
ПараметрыКоманды.Добавить(Строка(ТекущаяВерсияКонфигурации));
5075

51-
ГитРепозиторий.ВыполнитьКоманду(ПараметрыКоманды);
76+
Попытка
77+
ГитРепозиторий.ВыполнитьКоманду(ПараметрыКоманды);
78+
Исключение
79+
ТекстОшибки = ОписаниеОшибки();
80+
Если ПропускатьСуществующиеТеги
81+
И ЭтоОшибкаТегУжеСуществует(ТекстОшибки, ТекущаяВерсияКонфигурации) Тогда
82+
Лог.Ошибка(ТекстОшибки);
83+
Иначе
84+
ВызватьИсключение ТекстОшибки;
85+
КонецЕсли;
86+
КонецПопытки;
87+
5288
ПоследняяВерсияКонфигурации = ТекущаяВерсияКонфигурации;
5389

5490
КонецЕсли;
@@ -68,6 +104,14 @@
68104

69105
КонецФункции // ПрочитатьВерсиюИзИсходников()
70106

107+
Функция ЭтоОшибкаТегУжеСуществует(ТекстОшибки, ТекущаяВерсияКонфигурации)
108+
109+
Возврат СтрНайти(
110+
ТекстОшибки,
111+
СтрШаблон("fatal: tag '%1' already exists", ТекущаяВерсияКонфигурации)) > 0;
112+
113+
КонецФункции
114+
71115
// Функция читает параметры конфигурации из каталога исходников
72116
//
73117
Функция ПолучитьПараметрыКонфигурацииИзИсходников(КаталогИсходныхФайлов)

0 commit comments

Comments
 (0)