Skip to content
This repository has been archived by the owner on Dec 20, 2019. It is now read-only.

Commit

Permalink
#2 Каталог, куда выгружается конфигурация (раньше это было жестко "s…
Browse files Browse the repository at this point in the history
…rc") теперь можно переопределить
  • Loading branch information
Stepa86 committed May 3, 2017
1 parent 2b00af8 commit 756fffe
Show file tree
Hide file tree
Showing 4 changed files with 106 additions and 9 deletions.
48 changes: 48 additions & 0 deletions src/Catalogs/Хранилища.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1107,6 +1107,54 @@
<FullTextSearch>Use</FullTextSearch>
</Properties>
</Attribute>
<Attribute uuid="e3bb8a20-4fc8-40e5-bc10-00014f52ed6b">
<Properties>
<Name>КаталогСИсходнымКодом</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Каталог с исходным кодом</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
<v8:Type>xs:string</v8:Type>
<v8:StringQualifiers>
<v8:Length>50</v8:Length>
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</Type>
<PasswordMode>false</PasswordMode>
<Format/>
<EditFormat/>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Если не указан, используется "src".</v8:content>
</v8:item>
</ToolTip>
<MarkNegatives>false</MarkNegatives>
<Mask/>
<MultiLine>false</MultiLine>
<ExtendedEdit>false</ExtendedEdit>
<MinValue xsi:nil="true"/>
<MaxValue xsi:nil="true"/>
<FillFromFillingValue>false</FillFromFillingValue>
<FillValue xsi:type="xs:string"/>
<FillChecking>DontCheck</FillChecking>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<ChoiceParameterLinks/>
<ChoiceParameters/>
<QuickChoice>Auto</QuickChoice>
<CreateOnInput>Auto</CreateOnInput>
<ChoiceForm/>
<LinkByType/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
<Use>ForItem</Use>
<Indexing>DontIndex</Indexing>
<FullTextSearch>Use</FullTextSearch>
</Properties>
</Attribute>
<Form>ФормаЭлемента</Form>
<Form>ФормаСписка</Form>
<Command uuid="5e668a69-6683-4e4c-9801-e329b0a254e1">
Expand Down
33 changes: 28 additions & 5 deletions src/Catalogs/Хранилища/Ext/ManagerModule.bsl
Original file line number Diff line number Diff line change
Expand Up @@ -464,8 +464,11 @@

Процедура ИнициироватьЛокальныйРепозиторий(Хранилище) Экспорт

Git.ИнициироватьЛокальныйРепозиторий(Хранилище.ЛокальныйРепозиторийАдрес);
СоздатьКаталог(ЗавершитьРазделителемПутьДоКаталога(Хранилище.ЛокальныйРепозиторийАдрес) + ПолучитьИмяКаталогаКонфигурации());
ОбеспечитьКаталог( Хранилище.ЛокальныйРепозиторийАдрес );

Git.ИнициироватьЛокальныйРепозиторий(Хранилище.ЛокальныйРепозиторийАдрес);
СоздатьКаталог(ПолучитьКаталогКонфигурации(Хранилище));

Если Хранилище.ВыгружатьВУдаленныйРепозиторий Тогда
Git.ДобавитьУдаленныйРепозиторий(Хранилище.ЛокальныйРепозиторийАдрес, Хранилище.УдаленныйРепозиторийАдрес);
КонецЕсли;
Expand All @@ -477,15 +480,35 @@
#Область Каталог

Функция ПолучитьКаталогКонфигурации(Знач Хранилище) Экспорт
каталогКонфигурации = ЗавершитьРазделителемПутьДоКаталога(Хранилище.ЛокальныйРепозиторийАдрес) + ПолучитьИмяКаталогаКонфигурации();

каталогКонфигурации = ЗавершитьРазделителемПутьДоКаталога(Хранилище.ЛокальныйРепозиторийАдрес) + ОтносительныйПутьККаталогуИсходныхКодов( Хранилище );

ОбеспечитьКаталог( каталогКонфигурации );

Возврат каталогКонфигурации;
каталог = Новый Файл(каталогКонфигурации); // Для обрезания всяких /../ и /./
каталогРепозитория = Новый Файл( Хранилище.ЛокальныйРепозиторийАдрес );

Если каталог.ПолноеИмя = каталогРепозитория.ПолноеИмя Тогда
ВызватьИсключение НСтр( "ru='Каталог репозитория и каталог исходных кодов не могут совпадать. Это приведет к уничтожению папки .git'" );
КонецЕсли;

Возврат ЗавершитьРазделителемПутьДоКаталога(каталог.ПолноеИмя);

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

Функция ОтносительныйПутьККаталогуИсходныхКодов(Знач Хранилище) Экспорт

адресИсходников = Хранилище.КаталогСИсходнымКодом;

Если Не ЗначениеЗаполнено( адресИсходников ) Тогда
адресИсходников = ПолучитьИмяКаталогаКонфигурации();
КонецЕсли;

Возврат ЗавершитьРазделителемПутьДоКаталога( адресИсходников );

КонецФункции // ОтносительныйПутьККаталогуИсходныхКодов()


Процедура УдалитьВсеФайлыВКаталоге(Знач Каталог) Экспорт

Каталог = ЗавершитьРазделителемПутьДоКаталога(Каталог);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -233,6 +233,17 @@
<ContextMenu name="ЛокальныйРепозиторийАдресКонтекстноеМеню" id="29"/>
<ExtendedTooltip name="ЛокальныйРепозиторийАдресРасширеннаяПодсказка" id="30"/>
</InputField>
<InputField name="КаталогСИсходнымиКодами" id="209">
<DataPath>Объект.КаталогСИсходнымКодом</DataPath>
<InputHint>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>src</v8:content>
</v8:item>
</InputHint>
<ContextMenu name="КаталогСИсходнымиКодамиКонтекстноеМеню" id="210"/>
<ExtendedTooltip name="КаталогСИсходнымиКодамиРасширеннаяПодсказка" id="211"/>
</InputField>
<CheckBoxField name="ВыгружатьВУдаленныйРепозиторий" id="31">
<DataPath>Объект.ВыгружатьВУдаленныйРепозиторий</DataPath>
<EditMode>EnterOnInput</EditMode>
Expand Down
23 changes: 19 additions & 4 deletions src/CommonModules/Git/Ext/Module.bsl
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@

Если КодВозврата <> 0 Тогда
ОписаниеОшибки = "Неизвестная ошибка при создании репозитория";
ВызватьИсключение ИсключениеОшибкаПриВыполненииКоманды(ОписаниеОшибки, ТекстКоманды);
ВызватьИсключение ИсключениеОшибкаПриВыполненииКоманды(ОписаниеОшибки, ТекстКоманды);
КонецЕсли;

Config(ЛокальныйРепозиторийАдрес, "core.autocrlf", "false");
Config(ЛокальныйРепозиторийАдрес, "core.autocrlf", "false");
Config(ЛокальныйРепозиторийАдрес, "core.quotepath", "false");

КонецПроцедуры
Expand Down Expand Up @@ -136,11 +136,26 @@

текФайл = чтениеФайла.ПрочитатьСтроку();

имяКаталога = Справочники.Хранилища.ПолучитьИмяКаталогаКонфигурации() + "/";
каталогКонфигурации = Справочники.Хранилища.ПолучитьКаталогКонфигурации( Хранилище );

имяКаталога = СтрЗаменить( каталогКонфигурации, ЛокальныйРепозиторийАдрес, "" );

Если ЗначениеЗаполнено( имяКаталога ) Тогда

имяКаталога = СтрЗаменить( имяКаталога, "\", "/" );

Если Не СтрЗаканчиваетсяНа( имяКаталога, "/" ) Тогда

имяКаталога = имяКаталога + "/";

КонецЕсли;

КонецЕсли;

Пока текФайл <> Неопределено Цикл

Если СтрНачинаетсяС( текФайл, имяКаталога ) Тогда
Если СтрНачинаетсяС( текФайл, имяКаталога )
ИЛИ СтрНачинаетсяС( текФайл, """" + имяКаталога ) Тогда

мз = РегистрыСведений.СписокИзменений.СоздатьМенеджерЗаписи();

Expand Down

0 comments on commit 756fffe

Please sign in to comment.