Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Доработан функционал смены ветки #49

Open
wants to merge 6 commits into
base: develop
Choose a base branch
from
Open

Доработан функционал смены ветки #49

wants to merge 6 commits into from

Conversation

theshadowco
Copy link
Contributor

Доработан функционал смены ветки в ВыполнитьGitPull (сообщение #26)

@theshadowco theshadowco changed the title Feature/checkoutbranch Доработан функционал смены ветки Feb 22, 2017
ИмяТекущейВетки = Сред(СтрокаФайла, 4, ПозицияРазделителя - 4);
Если ИмяТекущейВетки <> ИмяВетки Тогда

Лог.Отладка("Текущая ветка репозитория '" + ИмяТекущейВетки + "', а требуется '" + ИмяВетки + "'");
Copy link
Member

Choose a reason for hiding this comment

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

Предлагаю использовать формат СтрШаблон,
в методы вывода лога я давно добавил возможность использования этой фичи.
например, Лог.Отладка("строка %1", НужнаяСтрока);
очень удобно

Функция НовыйКомандныйФайлGit(ЛокальныйРепозиторий)

КомандныйФайл = Новый КомандныйФайл;
ИмяФайлаЛога = ВременныеФайлы.СоздатьФайл("log");
Copy link
Member

@artbear artbear Feb 23, 2017

Choose a reason for hiding this comment

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

1commands уже научился получать непосредственный вывод от команд.
Поэтому промежуточный файл лога, с использованием СуффиксПеренаправленияВывода, теперь не нужен.
Пример соответствующего кода есть в методе, выполняющем коммит

Предлагаю доработать и здесь, раз уж начали доработку :)

Copy link
Member

Choose a reason for hiding this comment

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

ИМХО в этом случае не нужно управление файлом лога и не нужно доп.функции обертки НовыйКомандныйФайлGit, ЗакрытьКомандныйФайлGit

ИсполнитьКомандныйФайлGit вполне можно оставить.

Copy link
Member

@artbear artbear left a comment

Choose a reason for hiding this comment

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

Предлагаю доработать и убрать использование вывода в отдельный лог

ИмяФайлаЛога = ВременныеФайлы.СоздатьФайл("log");
Если ЭтоWindows Тогда

КомандныйФайл.ДобавитьКоманду(СтроковыеФункции.ПодставитьПараметрыВСтроку("cd /d ""%1""", ЛокальныйРепозиторий));
Copy link
Member

Choose a reason for hiding this comment

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

Вместо
СтроковыеФункции.ПодставитьПараметрыВСтроку("cd /d ""%1""", ЛокальныйРепозиторий)
предлагаю сразу юзать СтрШаблон, он уже давно поддерживается.
СтрШаблон("cd /d ""%1""", ЛокальныйРепозиторий)

Copy link
Member

@artbear artbear left a comment

Choose a reason for hiding this comment

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

Тесты проходят на последних правках?


Иначе

КомандныйФайл.ДобавитьКоманду(СтроковыеФункции.ПодставитьПараметрыВСтроку("cd ""%1""", ЛокальныйРепозиторий));
Copy link
Member

Choose a reason for hiding this comment

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

И здесь СтрШаблон

@theshadowco
Copy link
Contributor Author

Тесты прошли успешно, но все также где-то в серединете теста git-sync-test происходит смена кодировки и выводятся кракозябры в консоль

@artbear
Copy link
Member

artbear commented Feb 24, 2017

@theshadowco Создай ишуз на этот баг, разберемся.


// вывод содержит много мусора, поэтому обработаем построчно
// нужная нам строка начинается с *
СтрокиФайла = СтрРазделить(КомандныйФайлСтатуса.ПолучитьВывод(), Символы.ПС, ЛОЖЬ);
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.

Вот регулярка \*\s*(.*)

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
Contributor Author

Choose a reason for hiding this comment

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

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Стоит менять? или в рамках задачи перевода на гитраннер все сделаем?

ПараметрыКоманды.Добавить("git branch");

Результат = ИсполнитьКомандныйФайлGit(КомандныйФайлСтатуса, ПараметрыКоманды);
Если Результат = 0 Тогда
Copy link
Member

Choose a reason for hiding this comment

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

Не обрабатывается неуспешный результат git branch.
Вдруг локальный репо это не репо гит?

Copy link
Member

Choose a reason for hiding this comment

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

Тем более, что у нас API-метод

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

// надо проверить текущую ветку, совпдает ли она с требуемой
КомандныйФайлСтатуса = НовыйКомандныйФайлGit(ЛокальныйРепозиторий);
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 Feb 24, 2017

Совсем чуть-чуть осталось :)

@theshadowco
Copy link
Contributor Author

theshadowco commented Feb 24, 2017 via email

@theshadowco
Copy link
Contributor Author

@artbear up

@artbear
Copy link
Member

artbear commented Mar 1, 2017

Пока некогда было.
Разгребусь скоро, надеюсь.

@theshadowco
Copy link
Contributor Author

@artbear Удалось посмотреть?

@khorevaa
Copy link
Member

khorevaa commented May 3, 2017

up. Надо бы слить PR

@asosnoviy
Copy link
Member

@artbear не останавливайся. PR ждут тебя =)

@artbear
Copy link
Member

artbear commented Oct 10, 2017

@theshadowco Еще актуально? :(
Сольешь конфликты, а я затем посмотрю?

@artbear artbear added this to the 2.4.0 milestone Oct 10, 2017
@artbear
Copy link
Member

artbear commented Oct 10, 2017

@theshadowco В общем, ждем тебя, твой PR остался последний из незакрытых.

@asosnoviy
Copy link
Member

@artbear ПР висит с первого марта. Ждал тебя. Потом протух. И тут внезапно @theshadowco должен что то поправлять... Плохая политика.

@artbear
Copy link
Member

artbear commented Oct 12, 2017

Ну извините, опенсорс, понимаешь :)
сейчас у нас команды гита переведены на гитраннер, а в данном PR используется прямой запуск процесса гита.
Вот и нужна авторская переделка

@theshadowco
Copy link
Contributor Author

theshadowco commented Oct 12, 2017 via email

@artbear
Copy link
Member

artbear commented Nov 12, 2017

@theshadowco У тебя получится посмотреть/доработать этот ПР ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants