Skip to content

Conversation

@EvilBeaver
Copy link

Дополнительно устанавливается, как приложение и позволяет выполнять установку прекоммита в тек. каталог.

>cd my-epf-repo
>precommit1c install

@artbear artbear self-assigned this Sep 12, 2016
commands.os Outdated
Функция НастроитьПарсер()

Парсер = Новый ПарсерАргументовКоманднойСтроки();
Команда = Парсер.ОписаниеКоманды("install", "Установка precommit в текущий git репозиторий");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Продукт называется precommit1c, а не precommit

КонецЕсли;

Если Не Успех Тогда
Сообщить("Не удалось выполнить команду. Обратитесь к разработчикам");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Сообщить("Не удалось выполнить команду. Обратитесь к разработчикам");

Вот здесь что-то отступ большой.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Хотя в сравнении с другим кодом отступ нормальный.
Вопрос снимаю.

@artbear
Copy link
Member

artbear commented Sep 13, 2016

Провел небольшое расследование по .git\hooks
Консольные команды git init и clone создают этот каталог
А вот SourceTree при клонировании не создает этот каталог :( что странно, используется одна и та же версия гит.

@EvilBeaver будем добавлять проверку на наличие каталога и создание или нет смысла?

@artbear
Copy link
Member

artbear commented Sep 13, 2016

@EvilBeaver больше вопросов, кроме .git\hooks, не осталось.
Жду ответа и буду мержить.

ЗаписьТекста.ЗаписатьСтроку("xcopy """ + КаталогПрекоммита + """\tools\v8unpack.exe """+Каталог+"""\.git\hooks\tools\ /Y /F");
ЗаписьТекста.ЗаписатьСтроку("xcopy """ + КаталогПрекоммита + """\tools\v8unpack.exe """+Каталог+"""\.git\hooks\tools\ /Y /F");
ЗаписьТекста.ЗаписатьСтроку("cd """+Каталог+"""\");
ЗаписьТекста.ЗаписатьСтроку("git config --local core.quotepath false");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Может заодно git config --local core.longpaths true?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Может заодно git config --local core.longpaths true?

Да, нужно добавить

@nixel2007
Copy link
Member

Разве mkdir не создаст каталоги, в которые будет помещать файлы?

В остальном - LGTM

@nixel2007
Copy link
Member

Оффтопик - если поставишь галочку справа, я могу подмочь:
image

@EvilBeaver
Copy link
Author

@nixel2007 mkdir создает. В линуксе только по доп. ключу, а здесь - создаст и так.
А что такое LGTM?

@nixel2007
Copy link
Member

@EvilBeaver что-то я не уловил, что оно не кросс-платформенное :)
LGTM = Looks Good To Me

@EvilBeaver
Copy link
Author

@nixel2007 галочка стоит вроде как

@nixel2007
Copy link
Member

Если @pumbaEO еще даст вариант установки для линукса, будет совсем хорошо.

@EvilBeaver
Copy link
Author

@artbear я могу замержить, но наверное, будет правильнее если ты или @pumbaEO

@pumbaEO
Copy link

pumbaEO commented Sep 13, 2016

Под linux precommit не рабочий, там используется regexp.

@pumbaEO pumbaEO merged commit 5bb9ee0 into xDrivenDevelopment:develop Sep 13, 2016
@artbear
Copy link
Member

artbear commented Sep 13, 2016

@pumbaEO Женя, ну чего ты торопишься? :(

Я же специально на себя назначил (assignees) чтобы замержить, когда все замечания доработаем.

@artbear
Copy link
Member

artbear commented Sep 13, 2016

@nixel2007 mkdir создает. В линуксе только по доп. ключу, а здесь - создаст и так.

@EvilBeaver ты ошибаешься.
Если нет исходного/первичного каталога, то внутренний каталог не создается.
А вот если исходный каталог 1 есть, то через mkdir 1\2 можно создать каталог 2.

Вот тест (Win 10)
image

@EvilBeaver
Copy link
Author

@artbear ну впили тогда эту проверку прямо в батник, если не сложно

ФайлСкрипта = ВременныеФайлы.НовоеИмяФайла("cmd");

ЗаписьТекста = Новый ЗаписьТекста(ФайлСкрипта, "cp866");
ЗаписьТекста.ЗаписатьСтроку("@echo off");
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Кг/ам, ребят я чего-то не понимаю наверное, но зачем делать xcopy если есть КопироватьФайл
зачем mkdir если есть СоздатьКаталог?

@pumbaEO
Copy link

pumbaEO commented Sep 13, 2016

Я так понял, что все исправили и просто Никита не может смержить, потому и сделал сквош.
И я тут перечитал код и не понял, а нафига выполнять xcopy и всюкую такую фигню, если можно всегда это сделать с помощью oscript СоздатьКаталог и КопироватьФайл?

@nixel2007
Copy link
Member

я мог мержить. не сквошил, просто пушил в репо @EvilBeaver
А по поводу КопироватьФайл... Есть даже вот такой скрипт...

@nixel2007
Copy link
Member

@artbear
Copy link
Member

artbear commented Sep 13, 2016

https://github.com/xDrivenDevelopment/precommit1c/blob/develop/scripts/build.os

Прикольно, а слона-то мы и не заметили :)

@EvilBeaver
Copy link
Author

Поясню, почему xcopy. Данный пулреквест сделан в качестве предлога к обсуждению самой возможности ставить через опм. И была попытка сделать через батник copy links, но он не завелся (чат был в гиттере насчет привилегий). Пришлось заюзать второй батник. Он точно рабочий, да и код старта батника уже был, только чуть поправить.

ФайлСкрипта,
ФайлЛога);

ЗапуститьПриложение(КомандаЗапуска,,Истина);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Код возврата не анализируется, а вдруг ошибка??

@artbear
Copy link
Member

artbear commented Sep 13, 2016

@pumbaEO В общем, поторопился ты замержить :)

Давайте все-таки запилим вариант на чистом oscript.
Здесь важен контроль ошибок копирования/создания, сейчас нет контроля кода возврата от батника.

@EvilBeaver @nixel2007 сможете доработать через СоздатьКаталог и КопироватьФайл?

@pumbaEO
Copy link

pumbaEO commented Sep 13, 2016

Поторопился.

я думал установка через opm приведет к тому, что в файл precommit будет добавленна только одна комманад

precommit1c

а установка через opm приведет к тому, что будет батник в patch будет и установка будет нужна только для того что-бы одну комманду добавить в файл хука существующего репозитория, и нет необходимости копировать в ./hooks базы, v8reader и т.д. и т.п.

@artbear
Copy link
Member

artbear commented Sep 13, 2016

@pumbaEO тогда мы попадаем на зависимость - на одной машине может быть развернута только одна версия продукта :(
а вдруг ошибка? а тесты на разработческой машине? и прочее?
установка разных версий в продуктив разных продуктов все-таки надежнее.

@pumbaEO
Copy link

pumbaEO commented Sep 13, 2016

Тогда у тебя индивидально меняется в файле ./hooks/precommit правильный путь к другому прекоммиту1с и все. Тестируй без проблем.
Разные виды библиотек в opm сейчас не поддерживаюстя, только если называть пакет с версией, но это очень затратно, поэтому я не вижу проблемы.

@EvilBeaver
Copy link
Author

@pumbaEO я предыдущее сообщение твое не понял. Которое, "Поторопился".
Сейчас просто тот же самый прекоммит, который был, плюс установка в репо не через сабмодуль, а из консоли в каталоге свежесозданного репо.

А как ты ожидал, что будет?

@pumbaEO
Copy link

pumbaEO commented Sep 13, 2016

я ожидал, что установим пакет opm и у нас в переменной patch появится комманда precommit1c, потом мы сможем указать только 1 строку в файле ./hooks/precommit

Установка сводится только к патчинку хука и добавлению одной строки. Как-то так.

@EvilBeaver
Copy link
Author

Это сделано, но до половины. в PATH есть precommit1c, но в хук она не прописывается, пишется старая строка запуска.

@pumbaEO
Copy link

pumbaEO commented Sep 14, 2016

Тогда зачем нам тянуть старые Энтерпрайзные решения в виде копии обработки v8reader в каждом репо и копии легковесной базы и т.д....?

@artbear
Copy link
Member

artbear commented Sep 14, 2016

В принципе, нужно договориться о схеме работы precommit1c :)
Есть 2 подхода:

  • один продукт precommit1c на машине разработчика
    • удобство управления, продукт в одном месте
    • удобство обновления (обновить одно место)
    • минус: если обновление/релиз не удачны, можно поломать все репозитории на машине разработчика
  • разные продукты precommit1c на машине разработчика
    • гарантия независимости всех репозиториев друг от друга
    • минус: неудобное управление и обновление, т.к. нужно знать все репозитории

Что еще забыл?

В целом, т.к. мы говорим о машине разработчика, поразмыслив, я за развертывание единого продукта на машину.

И мне больше нравится вариант прописывания вызова продукта сразу в .git\hooks\precommit одной строкой precommit1c, без копирования файлов.

@nixel2007
Copy link
Member

О моем ишузе и геркин-тексте все забыли, да? :)

14 сентября 2016 г., 11:35 пользователь Artur Ayukhanov <
notifications@github.com> написал:

В принципе, нужно договориться о схеме работы precommit1c :)
Есть 2 подхода:

  • один продукт precommit1c на машине разработчика
    • удобство управления, продукт в одном месте
    • удобство обновления (обновить одно место)
    • минус: если обновление/релиз не удачны, можно поломать все
      репозитории на машине разработчика
  • разные продукты precommit1c на машине разработчика
    • гарантия независимости всех репозиториев друг от друга
    • минус: неудобное управление и обновление, т.к. нужно знать все
      репозитории

Что еще забыл?

В целом, т.к. мы говорим о машине разработчика, поразмыслив, я за
развертывание единого продукта на машину.

И мне больше нравится вариант прописывания вызова продукта сразу в
.git\hooks\precommit одной строкой precommit1c, без копирования файлов.


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#93 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABFJKNztqQTDuz1W8hvUXElEvNHMFyZ0ks5qp7HcgaJpZM4J6eoN
.

@artbear
Copy link
Member

artbear commented Sep 14, 2016

@nixel2007 что за ишуз?
у нас есть только мой ишуз на эту тему :)

@nixel2007
Copy link
Member

Значит твой ишуз)

@artbear
Copy link
Member

artbear commented Sep 14, 2016

@nixel2007 Андрей фактически и реализовал сценарий из твоей фичи.
Женя и я предлагаем другой сценарий :)

Нужно выбрать.

@EvilBeaver
Copy link
Author

@artbear тут много буков уже, я заблудился. Какой именно сценарий второй (твой и Жени)?

@artbear
Copy link
Member

artbear commented Sep 15, 2016

я ожидал, что установим пакет opm и у нас в переменной patch появится
комманда precommit1c, потом мы сможем указать только 1 строку в файле
./hooks/precommit

Установка сводится только к патчинку хука и добавлению одной строки.
Как-то так.

чт, 15 Сен 2016, 11:32 Andrei Ovsiankin notifications@github.com:

@artbear https://github.com/artbear тут много буков уже, я заблудился.
Какой именно сценарий второй (твой и Жени)?


You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub
#93 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACyRcQ9HhPXcPa6OmmleaVg1Dd5n3j_Jks5qqQKTgaJpZM4J6eoN
.

@EvilBeaver
Copy link
Author

это одна и та же задача, не взаимоисключающие. Я там писал выше, что просто 1 половина сделана, вторая нет. Кроме того, я не очень знаком с архитектурой прекоммита. Если там не нужна временная ИБ 1С, то зачем она в репо в мастере лежит?

@EvilBeaver
Copy link
Author

@artbear @pumbaEO дайте инфу по поводу папки ibService? Ее удалить или что с ней делать? Женя спрашивал, зачем я ее в пакет opm вставил, так вот я не знаю. Она же как бы есть в репо, вдруг нужна? Что с ней делать?

@nixel2007
Copy link
Member

@EvilBeaver в этой базе запускается v8reader. Для снижения времени инициализации. Хотя по идее ее можно создавать при первом запуске.

artbear added a commit that referenced this pull request Sep 27, 2016
Добавил доработки PR #93
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants