Skip to content

Commit 4daa540

Browse files
committed
fix: #125 добавлена возможность указания пути к исполняемому файлу git
1 parent 3a58500 commit 4daa540

File tree

8 files changed

+62
-6
lines changed

8 files changed

+62
-6
lines changed

features/sync.feature

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,4 +66,20 @@
6666
И Код возврата команды "gitsync" равен 0
6767
И Я очищаю значение переменных окружения
6868
|GITSYNC_STORAGE_PATH|
69+
|GITSYNC_WORKDIR|
70+
71+
Сценарий: Синхронизация хранилища с git-репозиторием с использованием пути к git
72+
Допустим Я создаю временный каталог и сохраняю его в переменной "ВременнаяДиректория"
73+
И Я добавляю параметр "--tempdir" для команды "gitsync" из переменной "ВременнаяДиректория"
74+
И Я добавляю параметр "--git-path git" для команды "gitsync"
75+
И Я добавляю параметр "-v" для команды "gitsync"
76+
И Я добавляю параметр "sync" для команды "gitsync"
77+
И Я устанавливаю переменную окружения "GITSYNC_STORAGE_PATH" из переменной "КаталогХранилища1С"
78+
И Я устанавливаю переменную окружения "GITSYNC_WORKDIR" из переменной "ПутьКаталогаИсходников"
79+
Когда Я выполняю команду "gitsync"
80+
Тогда Вывод команды "gitsync" содержит "ИНФОРМАЦИЯ - Завершена синхронизации с git"
81+
И Вывод команды "gitsync" не содержит "Внешнее исключение"
82+
И Код возврата команды "gitsync" равен 0
83+
И Я очищаю значение переменных окружения
84+
|GITSYNC_STORAGE_PATH|
6985
|GITSYNC_WORKDIR|

src/cmd/gitsync.os

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,10 @@
3131

3232
Приложение.Опция("t tempdir", "", "путь к каталогу временных файлов")
3333
.ВОкружении("GITSYNC_TEMP");
34-
34+
35+
Приложение.Опция("git-path", "", "путь к исполняемому файлу git")
36+
.ВОкружении("GITSYNC_GIT_PATH GIT_PATH");
37+
3538
Приложение.Опция("domain-email", "localhost", "домен почты для пользователей git")
3639
.ВОкружении("GITSYNC_EMAIL");
3740

@@ -61,7 +64,7 @@
6164

6265
ВерсияПлатформы = Команда.ЗначениеОпции("v8version");
6366
ВыводДополнительнойИнформации = Команда.ЗначениеОпции("verbose");
64-
//Плагины = Команда.ЗначениеОпции("plugins");
67+
ПутьКГит = Команда.ЗначениеОпции("git-path");
6568
ДоменПочты = Команда.ЗначениеОпции("domain-email");
6669
ВременныйКаталогРаботы = Команда.ЗначениеОпции("tempdir");
6770
ДоменПочты = Команда.ЗначениеОпции("domain-email");
@@ -70,7 +73,7 @@
7073

7174
Лог.Отладка("Устанавливаю общие параметры");
7275
ПараметрыПриложения.УстановитьВерсиюПлатформы(ВерсияПлатформы);
73-
//ПараметрыПриложения.УстановитьПлагины(Плагины);
76+
ПараметрыПриложения.УстановитьПутьКГит(ПутьКГит);
7477
ПараметрыПриложения.УстановитьДоменПочты(ДоменПочты);
7578
ПараметрыПриложения.УстановитьВременныйКаталог(ВременныйКаталогРаботы);
7679

src/cmd/Классы/КомандаClone.os

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@
5959
Распаковщик = Новый МенеджерСинхронизации();
6060
Распаковщик.ВерсияПлатформы(ОбщиеПараметры.ВерсияПлатформы)
6161
.ДоменПочтыПоУмолчанию(ОбщиеПараметры.ДоменПочты)
62+
.ИсполняемыйФайлГит(ОбщиеПараметры.ПутьКГит)
6263
.ПодпискиНаСобытия(ИндексПлагинов)
6364
.ПараметрыПодписокНаСобытия(Команда.ПараметрыКоманды())
6465
.УровеньЛога(ПараметрыПриложения.УровеньЛога())
@@ -78,6 +79,13 @@
7879
Лог.Отладка("URL репозитория: <%1>", URLРепозитария);
7980

8081
ГитРепозиторий = Новый ГитРепозиторий;
82+
83+
ОбщиеПараметры = ПараметрыПриложения.Параметры();
84+
85+
Если ЗначениеЗаполнено(ОбщиеПараметры.ПутьКГит) Тогда
86+
ГитРепозиторий.УстановитьПутьКГит(ОбщиеПараметры.ПутьКГит);
87+
КонецЕсли;
88+
8189
ГитРепозиторий.УстановитьРабочийКаталог(КаталогЛокальнойКопии);
8290
ГитРепозиторий.КлонироватьРепозиторий(URLРепозитария, КаталогЛокальнойКопии);
8391

src/cmd/Классы/КомандаInit.os

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@
6161
Распаковщик = Новый МенеджерСинхронизации();
6262
Распаковщик.ВерсияПлатформы(ОбщиеПараметры.ВерсияПлатформы)
6363
.ДоменПочтыПоУмолчанию(ОбщиеПараметры.ДоменПочты)
64+
.ИсполняемыйФайлГит(ОбщиеПараметры.ПутьКГит)
6465
.ПодпискиНаСобытия(ИндексПлагинов)
6566
.ПараметрыПодписокНаСобытия(Команда.ПараметрыКоманды())
6667
.УровеньЛога(ПараметрыПриложения.УровеньЛога())

src/cmd/Классы/КомандаSetVersion.os

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
НомерВерсии = Команда.ЗначениеАргумента("VERSION");
2222
КаталогРабочейКопии = Команда.ЗначениеАргумента("WORKDIR");
2323

24-
ВызватьКоммит = Команда.ЗначениеОпции("--commit");
24+
ВызватьКоммит = Команда.ЗначениеОпции("commit");
2525

2626
ОбщиеПараметры = ПараметрыПриложения.Параметры();
2727
МенеджерПлагинов = ОбщиеПараметры.УправлениеПлагинами;
@@ -30,6 +30,8 @@
3030

3131
Распаковщик = Новый МенеджерСинхронизации();
3232
Распаковщик.ВерсияПлатформы(ОбщиеПараметры.ВерсияПлатформы)
33+
.ДоменПочтыПоУмолчанию(ОбщиеПараметры.ДоменПочты)
34+
.ИсполняемыйФайлГит(ОбщиеПараметры.ПутьКГит)
3335
.ПодпискиНаСобытия(ИндексПлагинов)
3436
.ПараметрыПодписокНаСобытия(Команда.ПараметрыКоманды())
3537
.УровеньЛога(ПараметрыПриложения.УровеньЛога());

src/cmd/Классы/КомандаSync.os

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@
5656
Распаковщик = Новый МенеджерСинхронизации();
5757
Распаковщик.ВерсияПлатформы(ОбщиеПараметры.ВерсияПлатформы)
5858
.ДоменПочтыПоУмолчанию(ОбщиеПараметры.ДоменПочты)
59+
.ИсполняемыйФайлГит(ОбщиеПараметры.ПутьКГит)
5960
.ПодпискиНаСобытия(ИндексПлагинов)
6061
.ПараметрыПодписокНаСобытия(Команда.ПараметрыКоманды())
6162
.УровеньЛога(ПараметрыПриложения.УровеньЛога())

src/cmd/Модули/ПараметрыПриложения.os

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,20 @@
1212
ОбщиеПараметры.Вставить("Плагины", Новый Массив);
1313
ОбщиеПараметры.Вставить("ВерсияПлатформы", "8.3");
1414
ОбщиеПараметры.Вставить("ДоменПочты", "localhost");
15+
ОбщиеПараметры.Вставить("ПутьКГит", "");
1516

1617
ПодготовитьПлагины();
1718

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

20-
Процедура УстановитьВерсиюПлатформы(ВерсияПлатформы) Экспорт
21+
Процедура УстановитьВерсиюПлатформы(Знач ВерсияПлатформы) Экспорт
2122
ОбщиеПараметры.Вставить("ВерсияПлатформы", ВерсияПлатформы);
2223
КонецПроцедуры
2324

25+
Процедура УстановитьПутьКГит(Знач ПутьКГит) Экспорт
26+
ОбщиеПараметры.Вставить("ПутьКГит", ПутьКГит);
27+
КонецПроцедуры
28+
2429
Процедура УстановитьКаталогПлагинов(Знач ПутьККаталогуПлагинов) Экспорт
2530

2631
ЛогПриложения.Отладка("Устанавливаю каталог плагинов <%1>", ПутьККаталогуПлагинов);

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

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
Перем ХранилищеКонфигурации; // Объект.МенеджерХранилищаКонфигурации
2525
Перем АвторизацияВХранилище; // Структура ключи <Пользователь>, <ПарольПользователя>
2626
Перем МенеджерКонфигуратора; // Объект.МенеджерКонфигуратора
27+
Перем ПутьКИсполняемомуФайлуGit; // Строка, полный путь к исполняемому файлу git
2728

2829
///////////////////////////////////////////////////////////////////////////////////////////////
2930
// ПРОГРАММНЫЙ ИНТЕРФЕЙС
@@ -160,6 +161,21 @@
160161

161162
КонецФункции
162163

164+
// Устанавливает путь к исполняемому файлу git
165+
//
166+
// Параметры:
167+
// НовыйПутьКИсполняемомуФайлуГит - Строка - путь к исполняемому файлу git
168+
//
169+
// Возвращаемое значение:
170+
// Объект.МенеджерСинхронизации - ссылка на текущий объект класса <МенеджерСинхронизации>
171+
//
172+
Функция ИсполняемыйФайлГит(Знач НовыйПутьКИсполняемомуФайлуГит) Экспорт
173+
174+
ПутьКИсполняемомуФайлуGit = НовыйПутьКИсполняемомуФайлуГит;
175+
Возврат ЭтотОбъект;
176+
177+
КонецФункции
178+
163179
// Основная функция синхронизации.
164180
// Перемещает в git набор коммитов хранилища 1С
165181
//
@@ -619,7 +635,11 @@
619635
ГитРепозиторий = Новый ГитРепозиторий;
620636
ГитРепозиторий.УстановитьРабочийКаталог(КаталогРабочейКопии);
621637
ГитРепозиторий.УстановитьТихийРежимРаботы();
622-
638+
639+
Если ЗначениеЗаполнено(ПутьКИсполняемомуФайлуGit) Тогда
640+
ГитРепозиторий.УстановитьПутьКГит(ПутьКИсполняемомуФайлуGit);
641+
КонецЕсли;
642+
623643
ГитРепозиторий.УстановитьНастройку("core.quotepath", "false", РежимУстановкиНастроекGit.Локально);
624644
ГитРепозиторий.УстановитьНастройку("merge.ours.driver", "true", РежимУстановкиНастроекGit.Локально);
625645

0 commit comments

Comments
 (0)