otymko / gitrules

Библиотека разбора xml правил конвертации (правил обмена / правил регистрации) на файлы и каталоги
MIT License
66 stars 22 forks source link

Конфликт при коммите в SourceTree #20

Closed korolevpavel closed 5 years ago

korolevpavel commented 5 years ago

Процесс работы: 1) Файлы правил сохраняются в каталог 2) Индексирование и коммиты идут через SourceTree

В случае, если использовать хук как есть - коммиты через SourceTree не отправляются и вылетает ошибка:

git -c diff.mnemonicprefix=false -c core.quotepath=false --no-optional-locks -c credential.helper= -c credential.helper="C:/Users/Korolev/AppData/Local/ATLASS~1/SOURCE~1/GIT_EX~1/GIT-CR~1.EXE" commit -q -F C:\Users\Korolev\AppData\Local\Temp\1y2burf1.1es
Start
Запущен менеджер правил

START precommit gitrules
FILE: D:\repo1c\ПравилаОбменаДанными.xml
Add to index git
{Модуль C:\Program Files (x86)\OneScript\lib\1commands\src\Команда.os / Ошибка в строке: 308 / Внешнее исключение (System.ArgumentException): Элемент уже добавлен. Ключ в словаре: "HOME"  Добавляемый ключ: 'home'}
Выполнено с ошибками, см. выше.

Чтобы уйти от ошибки - закомментировал код image

Но в итоге получилось что сначала идет отправка коммита с неразобранным файлом правил, после коммита происходит разбор и новые файлы заново индексирую через SourceTree.

Я так понимаю, здесь нужно использовать что-то отличное, то git *, так как неразобранный файл правил проиндексированный через SourceTree заново индексируется через хук:

Процедура ДобавитьПравилаВИндексGIT() Экспорт
    Команда = Новый Команда;
    Команда.УстановитьРабочийКаталог(ОсновнойКаталогПравил);
    Команда.УстановитьКоманду("git add *");
    КодВозврата = Команда.Исполнить();
КонецПроцедуры
otymko commented 5 years ago

Можно попробовать версия 1.1.0 (через opm install gitrules)

korolevpavel commented 5 years ago

Можно попробовать версия 1.1.0 (через opm install gitrules)

Пока воспроизводится. Проверил что обновлено, скорректировав вывод сообщения. image Получил: image

otymko commented 5 years ago

Странно.. Сегодня поставил из коробки sourcetree и не было такого

korolevpavel commented 5 years ago

Заработало, после opm install 1commands