Skip to content

Commit 7fbcb44

Browse files
committed
Добавление отправки на удаленный репо каждые n - коммитов
1 parent 66b4e04 commit 7fbcb44

File tree

4 files changed

+94
-7
lines changed

4 files changed

+94
-7
lines changed

.vscode/tasks.json

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
{
2+
"version": "0.1.0",
3+
"command": "oscript",
4+
"isShellCommand": true,
5+
"showOutput": "silent",
6+
"args": [
7+
"-encoding=utf-8"
8+
],
9+
"tasks": [
10+
{
11+
"taskName": "OneScript: compile",
12+
"args": [
13+
"-compile",
14+
"${file}"
15+
],
16+
"echoCommand": true,
17+
"showOutput": "always",
18+
"suppressTaskName": true,
19+
"isBuildCommand": false
20+
},
21+
{
22+
"taskName": "OneScript: check",
23+
"args": [
24+
"-check",
25+
"${file}"
26+
],
27+
"echoCommand": true,
28+
"showOutput": "always",
29+
"suppressTaskName": true,
30+
"isBuildCommand": false
31+
},
32+
{
33+
"taskName": "OneScript: make",
34+
"args": [
35+
"-make",
36+
"${file}",
37+
"${fileBasename}.exe"
38+
],
39+
"echoCommand": true,
40+
"showOutput": "always",
41+
"suppressTaskName": true,
42+
"isBuildCommand": false
43+
},
44+
{
45+
"taskName": "OneScript: run",
46+
"args": [
47+
"${file}"
48+
],
49+
"echoCommand": true,
50+
"showOutput": "always",
51+
"suppressTaskName": true,
52+
"isBuildCommand": true,
53+
"problemMatcher": {
54+
"fileLocation": "absolute",
55+
"pattern": {
56+
"regexp": "^{Модуль\\s+(.*)\\s\\/\\s.*:\\s+(\\d+)\\s+\\/\\s+(.*)}$",
57+
"file": 1,
58+
"location": 2,
59+
"message": 3
60+
}
61+
}
62+
}
63+
]
64+
}

src/core/Классы/МенеджерСинхронизации.os

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -861,7 +861,14 @@
861861

862862
// Основная функция синхронизации. Перемещает в git набор коммитов хранилища 1С
863863
//
864-
Процедура СинхронизироватьХранилищеКонфигурацийСГит(Знач КаталогРабочейКопии, Знач ФайлХранилища, Знач НачальнаяВерсия = 0, Знач КонечнаяВерсия = 0, Знач Формат = Неопределено) Экспорт
864+
Процедура СинхронизироватьХранилищеКонфигурацийСГит(Знач КаталогРабочейКопии,
865+
Знач ФайлХранилища,
866+
Знач НачальнаяВерсия = 0,
867+
Знач КонечнаяВерсия = 0,
868+
Знач Формат = Неопределено,
869+
Знач КоличествоКоммитовДоPush = 0,
870+
Знач URLРепозитория = Неопределено,
871+
Знач ИмяВетки = Неопределено) Экспорт
865872

866873
Лог.Информация("Начало синхронизации с git");
867874
ТаблицаИсторииХранилища = ПрочитатьИзХранилищаИсториюКоммитовСАвторами(ФайлХранилища);
@@ -878,9 +885,14 @@
878885

879886
МаксимальнаяВерсияДляРазбора = ОпределитьМаксимальнуюВерсиюСУчетомОграниченияСверху(ТаблицаИсторииХранилища, ТекущаяВерсия, КонечнаяВерсия);
880887
Лог.Информация("Номер последней версии в хранилище: " + МаксимальнаяВерсияДляРазбора);
881-
888+
ИспользоватьПромежуточныйPUSH = КоличествоКоммитовДоPush > 0;
889+
Если ИмяВетки = Неопределено Тогда
890+
ИмяВетки = "master"
891+
КонецЕсли;
892+
893+
СчетчикКоммитов = 0;
882894
Пока СледующаяВерсия <= МаксимальнаяВерсияДляРазбора Цикл
883-
895+
884896
СтрокаВерсии = ТаблицаИсторииХранилища.Найти(СледующаяВерсия, "НомерВерсии");
885897
Если СтрокаВерсии <> Неопределено Тогда
886898

@@ -895,6 +907,14 @@
895907

896908
РазложитьМодулиПоНомеруВерсииХранилища1С(КаталогРабочейКопии, ФайлХранилища, СледующаяВерсия, Формат);
897909
ВыполнитьКоммитГит(КаталогРабочейКопии, СтрокаВерсии.Комментарий, СтрокаВерсии.ПредставлениеАвтора, СтрокаВерсии.Дата);
910+
СчетчикКоммитов = СчетчикКоммитов + 1;
911+
912+
Если ИспользоватьПромежуточныйPUSH И
913+
СчетчикКоммитов = КоличествоКоммитовДоPush Тогда
914+
СчетчикКоммитов = 0;
915+
ВыполнитьGitPush(КаталогРабочейКопии, URLРепозитория, ИмяВетки)
916+
КонецЕсли;
917+
898918

899919
Исключение
900920
Лог.Отладка("Откатываем файл VERSION после ошибки");

src/gitsync.os

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,8 @@
286286
Знач НачальнаяВерсия = 0,
287287
Знач КонечнаяВерсия = 0,
288288
Знач Формат = Неопределено,
289-
Знач ИмяВетки = Неопределено) Экспорт
289+
Знач ИмяВетки = Неопределено
290+
Знач КоличествоКоммитовДоPush = 0) Экспорт
290291

291292
Лог.Информация("Начинаю синхронизацию хранилища 1С и репозитария GIT");
292293

@@ -322,7 +323,7 @@
322323
КонецЕсли;
323324

324325
Лог.Информация("Синхронизация изменений с хранилищем");
325-
ВыполнитьЭкспортИсходников(Распаковщик, ПутьКХранилищу, ЛокальныйКаталогГит, НачальнаяВерсия, КонечнаяВерсия, Формат);
326+
ВыполнитьЭкспортИсходников(Распаковщик, ПутьКХранилищу, ЛокальныйКаталогГит, НачальнаяВерсия, КонечнаяВерсия, Формат, КоличествоКоммитовДоPush, URLРепозитория, ИмяВетки);
326327

327328
Лог.Информация("Отправка изменений на удаленный узел");
328329
КодВозврата = Распаковщик.ВыполнитьGitPush(ЛокальныйКаталогГит, URLРепозитория, ИмяВетки);
@@ -334,10 +335,10 @@
334335

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

337-
Процедура ВыполнитьЭкспортИсходников(Знач Распаковщик, Знач ПутьКХранилищу, Знач ЛокальныйКаталогГит, Знач НачальнаяВерсия = 0, Знач КонечнаяВерсия = 0, Знач Формат = Неопределено)
338+
Процедура ВыполнитьЭкспортИсходников(Знач Распаковщик, Знач ПутьКХранилищу, Знач ЛокальныйКаталогГит, Знач НачальнаяВерсия = 0, Знач КонечнаяВерсия = 0, Знач Формат = Неопределено, Знач КоличествоКоммитовДоPush = 0, Знач URLРепозитория= Неопределено, Знач ИмяВетки = Неопределено)
338339

339340
ФайлБазыДанныхХранилища = ПолучитьПутьКБазеДанныхХранилища(ПутьКХранилищу);
340-
Распаковщик.СинхронизироватьХранилищеКонфигурацийСГит(ЛокальныйКаталогГит, ФайлБазыДанныхХранилища, НачальнаяВерсия, КонечнаяВерсия, Формат);
341+
Распаковщик.СинхронизироватьХранилищеКонфигурацийСГит(ЛокальныйКаталогГит, ФайлБазыДанныхХранилища, НачальнаяВерсия, КонечнаяВерсия, Формат, КоличествоКоммитовДоPush, URLРепозитория, ИмяВетки);
341342

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

src/xml-config.os

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,8 @@
9494
Ключ = "ПутьКПлатформе83";
9595
ИначеЕсли КлючИЗначение.Ключ = "git-executable" Тогда
9696
Ключ = "ПутьGit";
97+
ИначеЕсли КлючИЗначение.Ключ = "push-every-n-commits" Тогда
98+
Ключ = "КоличествоКоммитовДоPush";
9799
Иначе
98100
ВызватьИсключение НекорректнаяСтруктураНастроек();
99101
КонецЕсли;

0 commit comments

Comments
 (0)