|
412 | 412 | ФайлКомментария.Закрыть();
|
413 | 413 | Лог.Информация("Текст коммита: <"+Комментарий+">");
|
414 | 414 |
|
415 |
| - ИмяФайлаЛогаКоммита = ВременныеФайлы.СоздатьФайл("log"); |
416 |
| - |
417 | 415 | КомандныйФайл = Новый КомандныйФайл;
|
| 416 | + |
| 417 | + КомандныйФайл.УстановитьКодировкуВывода(КодировкаТекста.UTF8); |
| 418 | + |
418 | 419 | ПрефиксЭкспортаПеременной = ?(ЭтоWindows, "set", "export");
|
419 | 420 | Если ЭтоWindows Тогда
|
420 | 421 | КомандныйФайл.ДобавитьКоманду("cd /d " + ОбернутьВКавычки(КаталогРабочейКопии));
|
|
423 | 424 | КонецЕсли;
|
424 | 425 | КомандныйФайл.ДобавитьКоманду(ПрефиксЭкспортаПеременной + " GIT_AUTHOR_DATE="+ОбернутьВКавычки(ДатаPOSIX(Дата)));
|
425 | 426 | КомандныйФайл.ДобавитьКоманду(ПрефиксЭкспортаПеременной + " GIT_COMMITTER_DATE="+ОбернутьВКавычки(ДатаPOSIX(Дата)));
|
426 |
| - КомандныйФайл.ДобавитьКоманду(СтрШаблон("git add -A . %1", КомандныйФайл.СуффиксПеренаправленияВывода(ИмяФайлаЛогаКоммита, Истина))); |
| 427 | + КомандныйФайл.ДобавитьКоманду(СтрШаблон("git add -A .")); |
427 | 428 |
|
428 | 429 | авторДляГит = Автор;
|
429 | 430 | Если Найти(Автор, "<") <= Найти(Автор, ">") Тогда
|
430 | 431 | авторДляГит = Автор+" <"+Автор+"@localhost>"; // e-mail может быть удобен для поиска в связанных системах //авторДляГит = Автор+" <"+Автор+">";
|
431 | 432 | КонецЕсли;
|
432 | 433 |
|
433 |
| - СтрокаПеренаправленияВывода = КомандныйФайл.СуффиксПеренаправленияВывода(ИмяФайлаЛогаКоммита, Истина, Ложь); |
434 |
| - КомандаКоммита = СтрШаблон("git commit -a --file=""%1"" --author=""%2"" %3", ИмяФайлаКомментария, Автор, СтрокаПеренаправленияВывода); |
| 434 | + КомандаКоммита = СтрШаблон("git commit -a --file=""%1"" --author=""%2"" ", ИмяФайлаКомментария, Автор); |
435 | 435 |
|
436 | 436 | КомандныйФайл.ДобавитьКоманду(КомандаКоммита);
|
437 |
| - КомандныйФайл.ДобавитьКоманду("exit " + ?(ЭтоWindows, "/b %ERRORLEVEL%", "$#")); |
| 437 | + |
| 438 | + Если Не ЭтоWindows Тогда |
| 439 | + КомандныйФайл.ДобавитьКоманду("exit $#"); |
| 440 | + Иначе |
| 441 | + // сейчас аккуратно верну кодировку, |
| 442 | + // иначе после выполнения коммита все последующие команды скриптов будут неверно отображаться в консоли! |
| 443 | + КомандныйФайл.ДобавитьКоманду("set gitsync_exit=%ERRORLEVEL%"); |
| 444 | + КомандныйФайл.ДобавитьКоманду("chcp 866 >nul");// >nul важен для исключения ненужной надписи с иероглифами |
| 445 | + КомандныйФайл.ДобавитьКоманду("exit /b %gitsync_exit%"); |
| 446 | + КонецЕсли; |
438 | 447 |
|
439 | 448 | ИмяФайлаВыполнения = КомандныйФайл.Закрыть();
|
440 | 449 |
|
|
451 | 460 |
|
452 | 461 | Лог.Информация("ВыполнитьКоммитГит: Вызов git commit вернул код <" + рез + "> ");
|
453 | 462 |
|
454 |
| - текстФайла = ""; |
455 |
| - успешно = ПолучитьТекстФайла(ИмяФайлаЛогаКоммита, текстФайла); |
| 463 | + ВыводКоманды = КомандныйФайл.ПолучитьВывод(); |
456 | 464 | Если рез <> 0 Тогда
|
457 |
| - Если успешно Тогда |
458 |
| - Лог.Ошибка("ВыполнитьКоммитГит: Лог команды git commit %1%2", Символы.ПС, текстФайла); |
459 |
| - Иначе |
460 |
| - Лог.Ошибка("ВыполнитьКоммитГит: Не удалось получить лог команды git commit"); |
461 |
| - КонецЕсли; |
| 465 | + Лог.Ошибка("ВыполнитьКоммитГит: Лог неудачной команды git commit %1%2", Символы.ПС, ВыводКоманды); |
462 | 466 | Иначе
|
463 |
| - Лог.Отладка("ВыполнитьКоммитГит: Лог команды git commit %1%2", Символы.ПС, текстФайла); |
| 467 | + Лог.Отладка("ВыполнитьКоммитГит: Лог команды git commit %1%2", Символы.ПС, ВыводКоманды); |
464 | 468 | КонецЕсли;
|
465 | 469 |
|
466 | 470 | УдалитьВременныеФайлыПриНеобходимости(ИмяФайлаВыполнения);
|
467 | 471 | УдалитьВременныеФайлыПриНеобходимости(ИмяФайлаКомментария);
|
468 |
| - УдалитьВременныеФайлыПриНеобходимости(ИмяФайлаЛогаКоммита); |
469 |
| - |
| 472 | + |
470 | 473 | Если Рез <> 0 Тогда
|
471 | 474 | ВызватьИсключение "Коммит в git выполнить не удалось. См. лог";
|
472 | 475 | КонецЕсли;
|
|
0 commit comments