Skip to content

Commit 6dc097b

Browse files
author
Василий Соколов
committed
#20 Плагин замены автора коммита
Исправлено поведение плагина. Для работы плагина требуется только наличие автора в файле AUTHORS. Наличие пользователя в хранилище не обязательно.
1 parent 304f17f commit 6dc097b

File tree

1 file changed

+37
-31
lines changed

1 file changed

+37
-31
lines changed

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

Lines changed: 37 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
Перем Лог;
44
Перем Обработчик;
55
Перем МеткаЗамены;
6+
Перем АвторыДляДополнения;
67

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

@@ -46,7 +47,9 @@
4647
|
4748
|Для замены необходимо при помещении версии хранилища добавить в комментарий к версии строку:
4849
|
49-
| --GitSyncAuthor ПользователяХранилища
50+
| --GitSyncAuthor НовыйАвтор
51+
|
52+
|НовыйАвтор должен быть указан в файле AUTHORS, наличие в хранилище не обязательно.
5053
|
5154
|При коммите изменений в git будет выполнена замена автора версии хранилища.
5255
|
@@ -80,8 +83,14 @@
8083

8184
Процедура ПриАктивизации(СтандартныйОбработчик) Экспорт
8285

86+
Лог = Логирование.ПолучитьЛог(ИмяЛога());
87+
8388
Лог.Отладка("Активизация плагина <%1>", Имя());
8489
Обработчик = СтандартныйОбработчик;
90+
91+
МеткаЗамены = "--GitSyncAuthor ";
92+
93+
АвторыДляДополнения = Новый Массив;
8594

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

@@ -93,8 +102,6 @@
93102

94103
Процедура ПослеПолученияТаблицыВерсий(ТаблицаВерсий, ПутьКХранилищу) Экспорт
95104

96-
ТаблицаПользователейХранилища = Обработчик.ПрочитатьТаблицуПользователейХранилища(ПутьКХранилищу);
97-
98105
Для Каждого СтрокаВерсии Из ТаблицаВерсий Цикл
99106

100107
СтрокВКомментарии = СтрЧислоСтрок(СтрокаВерсии.Комментарий);
@@ -110,30 +117,21 @@
110117
НовыйАвтор = СтрЗаменить(СтрокаКомментария, МеткаЗамены, "");
111118
НовыйАвтор = СокрЛП(НовыйАвтор);
112119

113-
СтрокаПользователя = ТаблицаПользователейХранилища.Найти(НовыйАвтор, "Автор");
120+
СтарыйАвтор = СтрокаВерсии.Автор;
114121

115-
Если НЕ СтрокаПользователя = Неопределено Тогда
122+
СтрокаВерсии.Автор = НовыйАвтор;
123+
СтрокаВерсии.ГУИД_Автора = НовыйАвтор;
116124

117-
СтарыйАвтор = СтрокаВерсии.Автор;
118-
119-
СтрокаВерсии.Автор = СтрокаПользователя.Автор;
120-
СтрокаВерсии.ГУИД_Автора = СтрокаПользователя.ГУИД_Автора;
121-
122-
СтрокаВерсии.Комментарий = СтрЗаменить(СтрокаВерсии.Комментарий, СтрокаКомментария, "");
123-
124-
Лог.Информация("Заменен автор коммита с <%1> на <%2>", СтарыйАвтор, НовыйАвтор);
125-
126-
Иначе
127-
128-
ТекстИсключение = СтрШаблон(
129-
"В версии хранилища <%1> указан не корректный пользователь для замены <%2>",
130-
СтрокаВерсии.НомерВерсии,
131-
НовыйАвтор);
132-
133-
ВызватьИсключение ТекстИсключение;
134-
135-
КонецЕсли;
136-
125+
СтрокаВерсии.Комментарий = СтрЗаменить(СтрокаВерсии.Комментарий, СтрокаКомментария, "");
126+
127+
Лог.Информация(
128+
"Для версии хранилища <%1> заменен автор с <%2> на <%3>",
129+
СтрокаВерсии.НомерВерсии,
130+
СтарыйАвтор,
131+
НовыйАвтор);
132+
133+
АвторыДляДополнения.Добавить(НовыйАвтор);
134+
137135
КонецЕсли;
138136

139137
КонецЦикла;
@@ -142,14 +140,22 @@
142140

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

145-
#КонецОбласти
146-
147-
Процедура Инициализация()
143+
Процедура ПослеПолученияТаблицыПользователей(ТаблицаПользователей, ПутьКХранилищу) Экспорт
148144

149-
Лог = Логирование.ПолучитьЛог(ИмяЛога());
145+
Для каждого Автор Из АвторыДляДополнения Цикл
150146

151-
МеткаЗамены = "--GitSyncAuthor ";
147+
НужноДобавитьВТаблицуПользователей = ТаблицаПользователей.Найти(Автор, "ГУИД_Автора") = Неопределено;
148+
149+
Если НужноДобавитьВТаблицуПользователей Тогда
150+
151+
НовыйПользователь = ТаблицаПользователей.Добавить();
152+
НовыйПользователь.Автор = Автор;
153+
НовыйПользователь.ГУИД_Автора = Автор;
154+
155+
КонецЕсли;
156+
157+
КонецЦикла;
152158

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

155-
Инициализация();
161+
#КонецОбласти

0 commit comments

Comments
 (0)