Skip to content

Доработки gitsync tags push tempdir authors branch #6

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

Closed
wants to merge 30 commits into from
Closed

Доработки gitsync tags push tempdir authors branch #6

wants to merge 30 commits into from

Conversation

khorevaa
Copy link
Member

Добавлены следующие возможности:

  1. Автоматическая установка и выгрузка tags
  2. Возможность указания каталога temp
  3. Возможность выполнение push - каждые n-коммитов
  4. Возможность указания ветки (branch)
  5. Изменен формат хранения AUTHORS на JSON, добавлена возможность конвертации и инициации через командную строку
  6. Изменен принцип работы команды push: на использование "refs:/" вместо "--all"

khorevaa and others added 30 commits November 15, 2016 11:51
…ый-n-версий-хранилища to master

* commit '1a0a08b61b201b763fb81a89b23683bce0084ff0':
  Исправлен вызов процедуры синхронизации с новыми параметрами
  Добавление отправки на удаленный репо каждые n - коммитов
…параметра-ветки-в-gitsync-all

# Conflicts:
#	src/multi-controller.os
#	src/xml-config.os
…-ветки-в-gitsync-all to master

* commit 'e9aca5e974c44d326b7bb178b5d853faea05c290':
  Добавлена возможность указания ветки при пакетной синхронизации
…и-указания-расположения-рабочего-каталога to develop

* commit '7d55345447bf90ae41ebbefb239cfdb4ed835fca':
  Исправлена ошибка преобразования типов
  Дорабавлен ключ "-tempcatalog"
  Добавлена возможность указания Temp каталога
* commit 'f2decf724a37db26a262ea684a4d941b3d9c7e72':
  Исправлена ошибка преобразования типов
  Дорабавлен ключ "-tempcatalog"
  Добавлена возможность указания Temp каталога
* commit 'b2e6edb60af6762b933d33ac92ef5e3150a181c9':
# Conflicts:
#	src/core/Классы/МенеджерСинхронизации.os
Добавлены консольные команды
* commit '706464c9de369447b4992c3688002eee7178c923':
  Очередная правка багов
  Исправлены баги. Добавлены консольные команды
  Переработка хранения файла AUTHORS
  Добавил Экспорт методу
* commit 'b260cc968ac0f1c587dc0d91cc1101859091c121':
  Очередная правка багов
  Исправлены баги. Добавлены консольные команды
  Переработка хранения файла AUTHORS
  Добавил Экспорт методу
* commit '9af89bfb6f043581cc6cd2ecc6a3d8ef50df32a3':
@@ -0,0 +1,3 @@
// Поместите параметры в этот файл, чтобы перезаписать параметры по умолчанию и пользовательские параметры.
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.

Не нужен.

Copy link
Member Author

Choose a reason for hiding this comment

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

Да не корректный gitignore...

@@ -24,6 +24,8 @@

Перем ДоменПочтыДляGitПоУмолчанию Экспорт;
Перем ВерсияПлатформы Экспорт;
Перем мAUTHORS Экспорт;
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.

@nixel2007 не к той строчке прикрепил. Это экспортные. Это свойства объекта. Их добавлял я. А вот те, что ниже - да, твой вопрос актуален.

Copy link
Member Author

Choose a reason for hiding this comment

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

Хм... подумаю... видимо для консольной команды надо было..

@@ -371,7 +373,7 @@

// Выполняет фиксацию изменений в локальном каталоге git
//
Процедура ВыполнитьКоммитГит(Знач КаталогРабочейКопии, Знач Комментарий, Знач Автор, Знач Дата=Неопределено) Экспорт
Процедура ВыполнитьКоммитГит(Знач КаталогРабочейКопии, Знач Комментарий, Знач Автор, Знач Дата=Неопределено, Знач УстановитьНовуюМетку, Знач Метка) Экспорт
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.

Дополню. Зачем 2 параметра? Установить метку и сама метка. Почему не сделать только "Метка" и если она указана, то устанавливать ее?

Copy link
Member Author

Choose a reason for hiding this comment

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

Да верно... Не подумал. Исправлю! . :)

@@ -386,6 +388,7 @@
КомандныйФайл = СоздатьКомандныйФайл();
ПрефиксЭкспортаПеременной = ?(ЭтоWindows, "set", "export");
Если ЭтоWindows Тогда
//ДобавитьВКомандныйФайл(КомандныйФайл, "chcp 866");
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 Author

Choose a reason for hiding this comment

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

Принято

Если Найти(Автор, "<") <= Найти(Автор, ">") Тогда
авторДляГит = Автор+" <"+Автор+"@localhost>"; // e-mail может быть удобен для поиска в связанных системах //авторДляГит = Автор+" <"+Автор+">";
КонецЕсли;
Лог.Информация("Автор коммита: <"+Автор+">");
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.

Согласен, нужно перенести в отладочный лог.

Copy link
Member Author

Choose a reason for hiding this comment

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

Принято...

КонецЕсли;


//ПараметрыКоманды.Добавить("--all -v");
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 Author

Choose a reason for hiding this comment

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

Принято

@@ -478,6 +496,7 @@

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


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 Author

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.

Такое чувство, что перенесли местами процедуры, но как-то не аккуратно

Copy link
Member

Choose a reason for hiding this comment

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

Ага, начиная с этого места, начинаются проблемы с код-ревью.
Гит просто показывается совершенно разные строки.

@khorevaa Предлагаю вернуть порядок функций, иначе сейчас очень-очень трудно выполнить полноценный код-ревью.

Copy link
Member Author

@khorevaa khorevaa Nov 22, 2016

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.

@khorevaa нет, просто сделать изменения более мелкими.

@@ -590,141 +609,411 @@

ЧтениеБазыДанных.ЗакрытьФайл();

Возврат КонвертироватьТаблицуПользователейИзФорматаБД(ТаблицаБД);
Возврат ТаблицаБД;
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 Author

Choose a reason for hiding this comment

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

Да все верно ковертация теперь не делается...


// КомандаКоммита = "git commit -a --file="""+ИмяФайлаКомментария+""" --author="""+Автор+""" >"+ИмяФайлаЛогаКоммита;
КомандаКоммита = "git commit -a --file="""+ИмяФайлаКомментария+""" --author="""+Автор+""" "+СуффиксПеренаправленияВывода(ИмяФайлаЛогаКоммита, Истина);
ДобавитьВКомандныйФайл(КомандныйФайл, КомандаКоммита);

Если УстановитьНовуюМетку Тогда
Copy link
Member

Choose a reason for hiding this comment

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

См. выше. 2 параметра не нужны.

Если ЗначениеЗаполнено(Метка) Тогда
     // устанавливаем метку

Copy link
Member Author

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.

Ага, начиная с этого места, начинаются проблемы с код-ревью.
Гит просто показывается совершенно разные строки.

@khorevaa Предлагаю вернуть порядок функций, иначе сейчас очень-очень трудно выполнить полноценный код-ревью.

@@ -458,7 +466,17 @@
ПараметрыКоманды = Новый Массив;
ПараметрыКоманды.Добавить("git push -u");
ПараметрыКоманды.Добавить(СтрЗаменить(УдаленныйРепозиторий, "%", "%%"));
ПараметрыКоманды.Добавить("--all -v");

СтрокаRefsHeads = "refs/heads/%1:refs/heads/%1";
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 Author

Choose a reason for hiding this comment

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

Функционал нужен для корректной отправки tags. Да и имя бранча мне нужно было т.к. выгружалось девелопорское хранилище.. (не грузить же его в мастер) .....

Copy link
Member

Choose a reason for hiding this comment

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

@khorevaa у вас всегда пуш/пулл делается в текущую ветку. Вот какую установили текущей, такая и синхронизируется. Явное указание ветки внутри gitsync потребует еще и команду checkout. А ее нет.

Т.е. сейчас вы например на ветке develop. Сделали синк с параметром ветки мастер, оно разложило, сделало пуш в мастер (но изменений для мастера нет, они выгрузились и закоммитились в текущий develop). В результате пуш будет пустой.

Copy link
Member

Choose a reason for hiding this comment

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

@EvilBeaver даже в режиме all?

//////////////////
// Работа с AUTHORS

Процедура СконвертироватьAuthorsВФормалJSON(Знач ПутьКФайлуАвторов, Знач ДанныеUSERS) Экспорт
Copy link
Member

Choose a reason for hiding this comment

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

@khorevaa подскажи, для чего эта доработка?

Такой масштабный PR, я бы, если честно, порезал его на более мелкие, 1 функциональность на один пулреквест.

Copy link
Member

Choose a reason for hiding this comment

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

+1 за более мелкие PR.

С другой стороны, автору ИМХО будет достаточно тяжело выделить мелкие изменения :(

Copy link
Member Author

Choose a reason for hiding this comment

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

Да с выделением будет много проблем.. Но в принципе можно....

Copy link
Member Author

Choose a reason for hiding this comment

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

Да и решал я коллизии...

@@ -396,14 +399,19 @@

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

авторДляГит = Автор;
Если Найти(Автор, "<") <= Найти(Автор, ">") Тогда
авторДляГит = Автор+" <"+Автор+"@localhost>"; // e-mail может быть удобен для поиска в связанных системах //авторДляГит = Автор+" <"+Автор+">";
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.

Там еще и AUTHORS в json превращен, насколько я понял.

@EvilBeaver
Copy link
Member

Я против вливания данного PR. Часть возможностей хорошая и правильная, часть весьма спорная. Одним мегакуском это разруливать сложно. Тут аж 6 функциональных возможностей предлагается. Это, в моем понимании, должно быть 6 реквестов.

@artbear
Copy link
Member

artbear commented Nov 22, 2016

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

@artbear
Copy link
Member

artbear commented Nov 22, 2016

@khorevaa подскажи, для чего эта доработка?

@EvilBeaver Наше обсуждение в гиттере https://gitter.im/EvilBeaver/oscript-library?at=582ee36699dce7860aff3244 (смотреть чуть выше и ниже по тексту)

@EvilBeaver
Copy link
Member

@artbear в гиттер идет обсуждение пушей через n коммитов. Отличная доработка, никто не против.
А вот переделка авторов в JSON не знаю зачем. Может и полезно, но я не вижу обсуждения с коллективом и не понимаю зачем. И насчет веток тоже обсуждения не вижу. Без явного checkout функционал пуша в заданную ветку мне непонятен.

@khorevaa khorevaa closed this Nov 22, 2016
@khorevaa
Copy link
Member Author

Буду дробить функциональность на несколько PR...

EvilBeaver pushed a commit that referenced this pull request Feb 22, 2017
@khorevaa khorevaa deleted the Feature/Доработки-gitsync-tags-push-tempdir-authors branch May 27, 2017 12:31
@artbear artbear modified the milestone: 2.2 Oct 10, 2017
nixel2007 pushed a commit that referenced this pull request May 29, 2018
Полный рефакторинг приложения и библиотеки
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.

4 participants