|
99 | 99 | Знач Коммитер = "", |
100 | 100 | Знач ДатаКоммита = '00010101') Экспорт |
101 | 101 |
|
102 | | - НадоВосстановитьКоммитера = Ложь; |
103 | 102 | НадоОчиститьУстановленныеПеременные = Ложь; |
104 | 103 | НадоУдалитьВременныйФайлКомментария = Ложь; |
105 | 104 | ИмяВременногоФайлаКомментария = ""; |
|
131 | 130 | КонецЕсли; |
132 | 131 |
|
133 | 132 | Если Не ПустаяСтрока(Коммитер) Тогда |
134 | | - |
135 | | - УстановитьКоммитера(Коммитер, НадоВосстановитьКоммитера); |
136 | | - |
| 133 | + УстановитьКоммитера(Коммитер); |
137 | 134 | КонецЕсли; |
138 | 135 |
|
139 | 136 | Если ЗначениеЗаполнено(ДатаКоммита) Тогда |
|
161 | 158 | Если НадоОчиститьУстановленныеПеременные Тогда |
162 | 159 | ОчиститьУстановленныеПеременныеГит(); |
163 | 160 | КонецЕсли; |
164 | | - Если НадоВосстановитьКоммитера Тогда |
165 | | - ВосстановитьКоммитера(); |
166 | | - КонецЕсли; |
167 | | - |
| 161 | + ВосстановитьКоммитера(); |
| 162 | + |
168 | 163 | Если НадоУдалитьВременныйФайлКомментария Тогда |
169 | 164 | Попытка |
170 | 165 | УдалитьФайлы(ИмяВременногоФайлаКомментария); |
|
733 | 728 | Функция ПолучитьНастройку(Знач ИмяНастройки, Знач РежимУстановкиНастроекGit = Неопределено) Экспорт |
734 | 729 |
|
735 | 730 | ПараметрыЗапуска = Новый Массив; |
736 | | - ПараметрыЗапуска.Добавить("config"); |
737 | | - ПараметрыЗапуска.Добавить(ИмяНастройки); |
738 | | - |
| 731 | + ПараметрыЗапуска.Добавить("config"); |
739 | 732 |
|
740 | 733 | Если РежимУстановкиНастроекGit <> Неопределено Тогда |
741 | 734 | ПараметрыЗапуска.Добавить(РежимУстановкиНастроекGit); |
742 | 735 | КонецЕсли; |
743 | | - |
744 | 736 |
|
745 | | - ВыполнитьКоманду(ПараметрыЗапуска); |
| 737 | + ПараметрыЗапуска.Добавить(ИмяНастройки); |
746 | 738 |
|
| 739 | + // если настройка не установлена - возвращает код 1 |
| 740 | + ВыполнитьКоманду(ПараметрыЗапуска, 1); |
| 741 | + |
747 | 742 | ВыводКоманды = СокрЛП(ПолучитьВыводКоманды()); |
748 | 743 |
|
749 | 744 | Возврат ВыводКоманды; |
|
779 | 774 |
|
780 | 775 | КонецПроцедуры |
781 | 776 |
|
| 777 | +// Удалить настройку git |
| 778 | +// git config --unset |
| 779 | +// |
| 780 | +// Параметры: |
| 781 | +// ИмяНастройки - Строка - Имя настройки |
| 782 | +// РежимУстановкиНастроекGit - РежимУстановкиНастроекGit - Режим установки настройки. |
| 783 | +// Значения параметра содержатся в перечислении РежимУстановкиНастроекGit |
| 784 | +// |
| 785 | +Процедура УдалитьНастройку(Знач ИмяНастройки, Знач РежимУстановкиНастроекGit = Неопределено) Экспорт |
| 786 | + |
| 787 | + ПараметрыЗапуска = Новый Массив; |
| 788 | + ПараметрыЗапуска.Добавить("config"); |
| 789 | + |
| 790 | + Если Найти(ИмяНастройки, " ") > 0 Тогда |
| 791 | + ИмяНастройки = ОбернутьВКавычки(ИмяНастройки); |
| 792 | + КонецЕсли; |
| 793 | + |
| 794 | + Если РежимУстановкиНастроекGit <> Неопределено Тогда |
| 795 | + ПараметрыЗапуска.Добавить(РежимУстановкиНастроекGit); |
| 796 | + КонецЕсли; |
| 797 | + |
| 798 | + ПараметрыЗапуска.Добавить("--unset"); |
| 799 | + ПараметрыЗапуска.Добавить(ИмяНастройки); |
| 800 | + |
| 801 | + ВыполнитьКоманду(ПараметрыЗапуска); |
| 802 | + |
| 803 | +КонецПроцедуры |
| 804 | + |
782 | 805 | // Удаление секции настроек git |
783 | 806 | // |
784 | 807 | // Параметры: |
|
797 | 820 | ПараметрыЗапуска.Добавить("--remove-section"); |
798 | 821 | ПараметрыЗапуска.Добавить(ИмяСекции); |
799 | 822 |
|
800 | | - ВыполнитьКоманду(ПараметрыЗапуска); |
| 823 | + // удаление несуществующей секции - код возврата 128 |
| 824 | + ВыполнитьКоманду(ПараметрыЗапуска, 128); |
801 | 825 |
|
802 | 826 | КонецПроцедуры |
803 | 827 |
|
|
860 | 884 | // Параметры - Массив - Массив строковых аргументов, передаваемых в командную |
861 | 885 | // строку. Добавляются после исполняемого файла. |
862 | 886 | // |
863 | | -Процедура ВыполнитьКоманду(Знач Параметры) Экспорт |
| 887 | +Процедура ВыполнитьКоманду(Знач Параметры, Знач ДопустимыйКодВозврата = 0) Экспорт |
864 | 888 |
|
865 | 889 | ПроверитьВозможностьВыполненияКоманды(); |
866 | 890 |
|
|
884 | 908 |
|
885 | 909 | УстановитьКодВозврата(КодВозврата); |
886 | 910 |
|
887 | | - Если КодВозврата <> 0 Тогда |
| 911 | + Если КодВозврата <> 0 |
| 912 | + И КодВозврата <> ДопустимыйКодВозврата Тогда |
| 913 | + |
888 | 914 | ВыводКоманды = ПолучитьВыводКоманды(); |
889 | 915 | Если ТихийРежимРаботы Тогда |
890 | 916 | Лог.Ошибка("Получен ненулевой код возврата %1. Сообщение: `%2`", КодВозврата, ВыводКоманды); |
|
893 | 919 | ВызватьИсключение ВыводКоманды; |
894 | 920 | КонецЕсли; |
895 | 921 | Иначе |
896 | | - Лог.Отладка("Код возврата равен 0"); |
| 922 | + Лог.Отладка("Код возврата равен %1", КодВозврата); |
897 | 923 | КонецЕсли; |
898 | 924 |
|
899 | 925 | КонецПроцедуры |
|
1076 | 1102 | // |
1077 | 1103 | // Параметры: |
1078 | 1104 | // Коммитер - Строка - представление коммитера комментария в формате: автор <email@com> |
1079 | | -// ТребуетсяВосстановлениеНастроек - Булево - устанавливается в истина для последующего восстановления |
1080 | 1105 | // |
1081 | | -Процедура УстановитьКоммитера(Знач Коммитер, ТребуетсяВосстановлениеНастроек = Ложь) |
| 1106 | +Процедура УстановитьКоммитера(Знач Коммитер) |
1082 | 1107 |
|
1083 | 1108 | РегуляркаДляПочты = Новый РегулярноеВыражение ("<([^>]+)>"); |
1084 | 1109 | КоллекцияСовпадений = РегуляркаДляПочты.НайтиСовпадения(Коммитер); |
|
1096 | 1121 | ТекущаяПочта = ПолучитьНастройку(НастройкаПочты, РежимУстановкиНастроекGit.Локально); |
1097 | 1122 |
|
1098 | 1123 | // Сохранение в отдельную секцию "bak" |
1099 | | - |
1100 | | - ТребуетсяСохранениеВСекцию_bak = НЕ (ПустаяСтрока(ТекущееНаименование) И ПустаяСтрока(ТекущаяПочта)); |
1101 | | - Если ТребуетсяСохранениеВСекцию_bak Тогда |
1102 | | - |
1103 | | - // Установка новых значений в секцию bak |
1104 | | - УстановитьНастройку("bak."+ НастройкаНаименования, ТекущееНаименование); |
1105 | | - УстановитьНастройку("bak."+ НастройкаПочты, ТекущаяПочта); |
1106 | | - |
1107 | | - ТребуетсяВосстановлениеНастроек = Истина; |
1108 | | - |
| 1124 | + Если ЗначениеЗаполнено(ТекущееНаименование) Тогда |
| 1125 | + УстановитьНастройку("bak."+ НастройкаНаименования, ТекущееНаименование, РежимУстановкиНастроекGit.Локально); |
| 1126 | + КонецЕсли; |
| 1127 | + Если ЗначениеЗаполнено(ТекущаяПочта) Тогда |
| 1128 | + УстановитьНастройку("bak."+ НастройкаПочты, ТекущаяПочта, РежимУстановкиНастроекGit.Локально); |
1109 | 1129 | КонецЕсли; |
1110 | 1130 |
|
1111 | 1131 | // Установим новые значения |
|
1128 | 1148 | Почта_bak = ПолучитьНастройку("bak."+ НастройкаПочты, РежимУстановкиНастроекGit.Локально); |
1129 | 1149 |
|
1130 | 1150 | // Установим новые значения |
1131 | | - Если ТекущееНаименование <> Наименование_bak Тогда |
1132 | | - УстановитьНастройку(НастройкаНаименования, Наименование_bak, РежимУстановкиНастроекGit.Локально); |
| 1151 | + Если ТекущееНаименование <> Наименование_bak Тогда |
| 1152 | + Если ЗначениеЗаполнено(Наименование_bak) Тогда |
| 1153 | + УстановитьНастройку(НастройкаНаименования, Наименование_bak, РежимУстановкиНастроекGit.Локально); |
| 1154 | + Иначе |
| 1155 | + УдалитьНастройку(НастройкаНаименования, РежимУстановкиНастроекGit.Локально); |
| 1156 | + КонецЕсли; |
1133 | 1157 | КонецЕсли; |
1134 | 1158 |
|
1135 | | - Если ТекущаяПочта <> Почта_bak Тогда |
1136 | | - УстановитьНастройку(НастройкаПочты, Почта_bak, РежимУстановкиНастроекGit.Локально); |
| 1159 | + Если ТекущаяПочта <> Почта_bak Тогда |
| 1160 | + Если ЗначениеЗаполнено(Почта_bak) Тогда |
| 1161 | + УстановитьНастройку(НастройкаПочты, Почта_bak, РежимУстановкиНастроекGit.Локально); |
| 1162 | + Иначе |
| 1163 | + УдалитьНастройку(НастройкаПочты, РежимУстановкиНастроекGit.Локально); |
| 1164 | + КонецЕсли; |
1137 | 1165 | КонецЕсли; |
1138 | 1166 |
|
1139 | 1167 | УдалитьСекциюНастроек("bak.user", РежимУстановкиНастроекGit.Локально); |
|
0 commit comments