|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
Как в GIT осуществляется работа по веткам DEV-TEST-PROD? (работа ведется в VS) Как мы это делали в TFS: - Сначала создали DEV-ветку, из нее клонируются TEST, PROD. - В DEV работают разработчики, по завершению разработки они делают merge своих изменений в DEV->TEST - Тестировщики работают TEST-ветке и могут как откатить changeset обратно, так и сделать merge в TEST->PROD - В релизный день содержимое PROD-ветки билдится и накатывается на продуктив 1) В GIT же у меня какой-то локальный репозиторий master + репозиторий master на сервере. Я могу переименовать локальный репозиторий master в DEV, но в скобках там остается origin/master, что это? см картинка 2) Я могу создать локальную ветку, но мне не понятно, как создать серверную ветку TEST, которая потом будет собираться и выкладываться на тестовый сервер и ветку PROD? 3) Как в GIT решаются конфликты? В TFS (в той схеме, что я использовал ранее) только 1 разработчик мог брать объект на редактирование в DEV-ветке и конфликты возникали, только если он делал большую паузу перед отправкой DEV->TEST, и при этом в TEST-ветке уже лежала чья-то более свежая версия кода. А тут как? Может разрабочик как-то увидеть, что его сосед правит "его" объекты, которые ему нужны для данной задачи? Или это выявится только на этапе синхронизации репозиториев? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2020, 12:48 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
Вдогонку - чтобы на win-компе выполнять команды git`а что нужно установить? Какие есть удобные GUI-средства? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2020, 12:51 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
Критик, Посмотрите в сторону git-flow . Переименование веток нужно запретить. Продуктовые master-ветки должны быть заблокированы для внесения изменений, только через pull-request. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2020, 13:19 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
hVostt, вот так? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2020, 13:53 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
Как оно работает
Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2020, 14:06 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
А кто такой Code owner в git? Первый добавивший, или Maintainer, или owner со вкладки "Group members" web-интерфейса? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2020, 14:50 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
Критик Какие есть удобные GUI-средства? Не так давно вышел удобный Windows Terminal ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2020, 16:29 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
Критик Как в GIT осуществляется работа по веткам DEV-TEST-PROD? (работа ведется в VS) Как мы это делали в TFS: - Сначала создали DEV-ветку, из нее клонируются TEST, PROD. - В DEV работают разработчики, по завершению разработки они делают merge своих изменений в DEV->TEST - Тестировщики работают TEST-ветке и могут как откатить changeset обратно, так и сделать merge в TEST->PROD - В релизный день содержимое PROD-ветки билдится и накатывается на продуктив Вы хотите git-flow. Например описана тут: https://habr.com/ru/post/106912/ Моё мнение- штука не слишком удобная. Лучше использовать gitlab-flow, например вот описание: https://habr.com/ru/company/softmart/blog/316686/ Критик В GIT же у меня какой-то локальный репозиторий master + репозиторий master на сервере. Я могу переименовать локальный репозиторий master в DEV, но в скобках там остается origin/master, что это? см картинка Не стоит. Совсем не стоит. Это запутывает. Вы хотите что-то сделать. Создаётелокальную ветку на основе DEV, пишите туда коммиты, пушите а потом делаете pull request (github) или merge request (gitlab) - суть почти так же. Критик Я могу создать локальную ветку, но мне не понятно, как создать серверную ветку TEST, которая потом будет собираться и выкладываться на тестовый сервер и ветку PROD? Например создать локально, а потом сделать push Критик Как в GIT решаются конфликты? Двое меняют одну строку локально- никак. Двое сделали push веток, создали merge/pull request - никак. Один из request'ов замержили - второй видит, что есть конфликт- правит его. Критик Вдогонку - чтобы на win-компе выполнять команды git`а что нужно установить? https://git-scm.com/download/win Он даже SSH настраивает (хотя в целом с ssh в винде плохо всё). Критик А кто такой Code owner в git? Первый добавивший, или Maintainer, или owner со вкладки "Group members" web-интерфейса? Вообще git сейчас используется не так, как задумывался. Изначально предполагалось, что "главного" сервера нет, есть только некоторый выделенный компьютер, а все обмениваются кодом делая pull-request - предлождение забрать с твоего компьютера код и вмержить его в репозиторий на компьютере "владельца". Но сейчас все используют сервера для хранения информации - https://github.com/ https://gitlab.com/ https://bitbucket.org/ Первый теперь принадлежит Микрософту и поддерживает сборку кода в том числе для windows (и хорошо поддерживает- и java кучи версий есть, и innosetup и msys2). Причём на всех есть бесплатные планы, а есть платные на разных вкус (а можно и локально сервер поставить- у гитлаба бесплатно даже). Без сервера нынче никто не работает, а там настройка прав широкая- кто owner, кто master, и прочее. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2020, 07:45 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
Alexey Tomin Лучше использовать gitlab-flow Пробовали - не понравилось. Git-flow он более, как бы сказать, регламентированный, и, что самое главное, он из коробки поддержиается самим Git (git flow ****). Для гитлаб-флоу все пляски с мержами, удалениями веток, пушами приходится делать руками. С гитфлоу я набирая в консоли: 'git flow feature finish -r -S -D --push' и все , сколько раз мне надо будет в бубен ударить для того же в случае гитлаб-флоу? Впрочем, у гитфлоу есть неудобство когда мы релизим новые версии, но при этом надо подерживать и старые - он лучше рассчитан на просто последовательный выпуск все более новых версий. Хотя в крайних версиях для этого, кажется, уже ввели специальные "support branches" - я, правда, не пробовал, у нас продукты все заказные, поэтому пока что нужды не возникало. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2020, 08:43 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
hVostt Переименование веток нужно запретить. Так на самом деле переименования веток и не существует, если я не ошибаюсь. Хочешь переименовать - создавай новую а старую прибивай. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2020, 08:52 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
Alexey Tomin Вообще git сейчас используется не так, как задумывался. Изначально предполагалось, что "главного" сервера нет, есть только некоторый выделенный компьютер Ну так гитхаб это и есть этот самый "выделенный компьютер". И, на самом деле, гит задумывался вообще без "выделенного компьютера", на то он и распределенный. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2020, 10:31 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
fkthat Alexey Tomin Лучше использовать gitlab-flow Пробовали - не понравилось. Git-flow он более, как бы сказать, регламентированный, и, что самое главное, он из коробки поддержиается самим Git (git flow ****). Для гитлаб-флоу все пляски с мержами, удалениями веток, пушами приходится делать руками. С гитфлоу я набирая в консоли: 'git flow feature finish -r -S -D --push' и все , сколько раз мне надо будет в бубен ударить для того же в случае гитлаб-флоу? Создать pull/merge-request с галочкой "удалить ветку после мержа" и после ревью нажать кнопочку "merge" ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2020, 12:03 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
Alexey Tomin Создать pull/merge-request с галочкой "удалить ветку после мержа" и после ревью нажать кнопочку "merge" Ну да, без "галочек" и "кнопочек" нынешнему разработчику никуда. Гребанный стыд, даже в убунтушных туториалах уже повсюду "редактор nano" ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2020, 12:29 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
Если разработчик начинает редактировать код, то он редактирует его в локальном репозитории. А если этот код уже кто-то поменял и отправил 3 новых версии в удаленный репозиторий? Насколько я понимаю, локальные репозитории ведь не обновляются сами? У разработчика будет сообщение об устаревшей версии до момента начала редактирования? Или он об этом узнает лишь постфактум? (когда он попробует сам зафиксировать код в удаленном репозитории и, наверное, получит merge-конфликт). Разработчик по приходу на работу обязательно должен нажать кнопку получения последней версии? Это чтобы свести такие ситуации к минимуму. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2020, 16:30 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
Критик, В общем случае такого быть не должно. На каждый таск заводится отдельная фича-ветка и девелопер один в ней работает ни с кем не конфликтуя. Когда работа полностью закончена тогда его ветка мержится в общую develop-ветку. Напрямую писать что-то в develop-ветку нельзя, все изменения только через мерж (или через rebase + fast-forward). Обычно делают вторым способом, чтобы не устраивать хитросплетения из веток и мержей. Опционально, если детальная история изменений не так критична, то делают еще stash ("схлопывают" все коммиты в один большой). ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2020, 17:09 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
Критик Если разработчик начинает редактировать код, то он редактирует его в локальном репозитории. А если этот код уже кто-то поменял и отправил 3 новых версии в удаленный репозиторий? Насколько я понимаю, локальные репозитории ведь не обновляются сами? Вам надо читать основы git - про pull/push/fetch/merge и прочее. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2020, 17:52 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
fkthat Alexey Tomin Создать pull/merge-request с галочкой "удалить ветку после мержа" и после ревью нажать кнопочку "merge" Ну да, без "галочек" и "кнопочек" нынешнему разработчику никуда. Я ревью смотрю либо в UI gitlab/github, либо в IDEA. Вот настолько к галочкам привык. fkthat Гребанный стыд, даже в убунтушных туториалах уже повсюду "редактор nano" Я вообще mcedit использую ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2020, 17:54 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
Alexey Tomin Вам надо читать основы git - про pull/push/fetch/merge и прочее. Тем более совершенно бесплатная книжка даже в русском переводе доступна. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2020, 19:36 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
Alexey Tomin хотя в целом с ssh в винде плохо всё А что там с ssh не так? В десятке и клиент и сервер из коробки. Про сервер не скажу, но клиентом пользуюсь каждый день и все абсолютно ок. Гит, правда, кажется, своего собственного клиента использует, но с ним тоже все ок. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2020, 00:15 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
Alexey Tomin Я ревью смотрю либо в UI gitlab/github, либо в IDEA. Вот настолько к галочкам привык. Да это я прикалываюсь. Хотя я сам в ГУИ (вижуал студия) только смотрю хистори, когда надо и конфликты резолвью, все остальное как-то исторически привык делать в командной строке. Alexey Tomin Я вообще mcedit использую Не. Тут я непреклонен и категоричен. Только vim Под студию и VS Code стоят вимовские расширения, если что по-мелкому быстро поправить, типа как в ноутпаде для этого стоит виндовая версия консольного, капслок специально переназначен на ескейп :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2020, 01:00 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
fkthat hVostt Переименование веток нужно запретить. Так на самом деле переименования веток и не существует, если я не ошибаюсь. Хочешь переименовать - создавай новую а старую прибивай. Ну я имею в виду вообще такое понятие как факт, как бы оно не выполнялось :) fkthat Пробовали - не понравилось. Git-flow он более, как бы сказать, регламентированный Гит-флоу чёткий, гибкий и кастомизируется под процессы. А вот это стремление всё "упрощать", зачастую приводит на деле к обыкновенной банальной деградации. При чём проявляется везде -- в искусстве, в дизайне, в работе. На примере gitlab-flow, типа есть фичи ветки и мастер. Всё. А чё дальше не пошли? В топку ветки. Только master, только хардкор, lean просто зашкаливающий. Упрощение понимают крайне искажённо. Не понимают, что простые в использовании вещи внутри сложные, а вовсе не наоборот. Чтобы процесс разработки был простым, значит он должен быть достаточно гибким и понятным, а не примитивным на подобие палки с мордой коня вместо сложного мотоцикла. Прям на ржач пробивает глядя на упрощателей всего и вся :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2020, 01:52 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
hVostt На примере gitlab-flow, типа есть фичи ветки и мастер. Всё. А чё дальше не пошли? Справедливости ради, там все же есть релизные ветки. Когда выпускается очередная версия, то для неё делаеься ветка от мастера и туда уже вносятся только фиксы. Но вообще с гитлабфлоу я видел бардак, т.к. в нем нет даже какого-то общепринятого стандарта именования веток - каждый точит, как он хочет. hVostt Прям на ржач пробивает глядя на упрощателей всего и вся :)) Меня приколол такой аргумент в их мануалах, что, дескать, большой недостаток git-flow это то что там основная рабочая ветка это не master, как, типа, все привыкли, а develop. Кто эти "все привыкли", я не знаю. Гитхаб, например, изначально при создании репо назначает веткой по-умолчанию именно develop. И вообще я нелюбитель гитлаба в целом. У них этакий комбайн, в котором, вроде бы все есть, но любое отдельное из этого "все" на порядок хуже существующих альтернатив. Если уж сравнивать "комбайны", то тот же Azure DevOps по удобству и фичам кроет гитлаб как бык овцу. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2020, 06:02 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
hVostt На примере gitlab-flow, типа есть фичи ветки и мастер. Всё. А чё дальше не пошли? В топку ветки. Только master, только хардкор, lean просто зашкаливающий. Это github-flow hVostt Упрощение понимают крайне искажённо. Не понимают, что простые в использовании вещи внутри сложные, а вовсе не наоборот. Чтобы процесс разработки был простым, значит он должен быть достаточно гибким и понятным, а не примитивным на подобие палки с мордой коня вместо сложного мотоцикла. Прям на ржач пробивает глядя на упрощателей всего и вся :)) Дело, собственно, не в упрощении. Если посмотреть реальные отличия gitlab-glow от gitflow, то аналогом ветки develop - фичивая ветка. Аналог release - master Аналог master - v1.0 и прочие ветки конкретных версий. Я сейчас вот в основном своём проекте работаю по gitflow, а в "побочных" - gitlab-flow и github-flow, так что сравнить могу. Раньше был на основном, где gitlab-flow. В чём лично мне видится минус gitflow и плюс gitlab-flow? 1. Непонятно как тестировать большую фичу без пересечением с другими фичами. 2. Если надо поправить "позапрошлый" релиз то это сделать проще в gitlab-flow. Там всегда релиз имеет свою ветку. В чём плюс gitflow? 1. Когда развернуть серверную часть дорого, то наличие 3х веток и не больше- это намного дешевле. 2. Когда клиентских приложений 5 разных - то это позволяет синхронизировать весь это зоопарк. Собственно эти оба пункта про текущий проект, так что gitflow оправдан. В чём плюс github-flow? Хорошо на старте разработки, пока все постоянно рефакторинг фигачат - с мержем проблем нет. fkthat Но вообще с гитлабфлоу я видел бардак, т.к. в нем нет даже какого-то общепринятого стандарта именования веток - каждый точит, как он хочет. Уровень бардака определяется квалификацией участников, а не процессом. Попытки заменить квалифицированных разработчиков процессами всегда приводит к провалу. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2020, 09:10 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
Alexey Tomin 1. Непонятно как тестировать большую фичу без пересечением с другими фичами. Так фича живет в отдельной ветке, какие пересечения? Alexey Tomin 2. Если надо поправить "позапрошлый" релиз то это сделать проще в gitlab-flow. Там всегда релиз имеет свою ветку. Это да, я об этом ранее тут писал. Но для этого, как я упоминал, уже достаточно давно ввели "support branches" которые полный аналог релизных веток гитлаб-флоу. Alexey Tomin Уровень бардака определяется квалификацией участников, а не процессом. Попытки заменить квалифицированных разработчиков процессами всегда приводит к провалу. Очень сильно сомневаюсь. За свою карьеру насмотрелся уже всевозможных квалифицированных поделий. По мне так даже команда макак, но делающих все по учебникам, гайдам и процессам представляет куда меньшую опасность. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2020, 09:54 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
fkthat Alexey Tomin 1. Непонятно как тестировать большую фичу без пересечением с другими фичами. Так фича живет в отдельной ветке, какие пересечения? Речь видимо про то, что чем дольше живёт большая фича в своей ветке, тем чаще надо подмёрживать develop в неё. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2020, 15:49 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
skyANA Речь видимо про то, что чем дольше живёт большая фича в своей ветке, тем чаще надо подмёрживать develop в неё. А в чем проблема время от времени делать "rebase develop"? Лично я так всегда и делаю. Да и в gitlab-flow тоже ведь коммитить напрямую в master это моветон и обычно просто-напросто заблокировано, поэтому в чем разница-то? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2020, 17:36 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
fkthat skyANA Речь видимо про то, что чем дольше живёт большая фича в своей ветке, тем чаще надо подмёрживать develop в неё. А в чем проблема время от времени делать "rebase develop"? Лично я так всегда и делаю. Нет проблемы. Просто по началу многие так не делают. Сидят себе и пилят фичи каждый в своей ветке, а потом начинается веселуха, потому как по началу они ещё и права имеют вливать просто так, без проверки билда и тестов :) Со временем, наевшись, люди приходят к автоматизации, когда на любой пул (мёрж) реквест поднимается среда, где выполняются тесты, и более жёсткому flow. Если что пошло не так, то твои изменения просто не попадут в develop и тем самым ничего не сломают. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2020, 18:08 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
Ещё была такая проблема больших фич до распила монолита. Две команды пилят месяцами каждая свою фичу, затрагивая при этом одни и теже куски монолита. Одна выпускает свою фичу первой, вторая ловит туеву хучу мёрж конфликтов. Только вот git-flow тут не при чём. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2020, 18:18 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
skyANA, Очень часто проблемы мержа возникают из-за того, что в рамках фичи делают какие-то изменения к самой фиче не относящиеся. В принципе, с благими целями - улучшить что-нибудь между делом. Еще тот подарок ревьюеру. Сидишь такой и репу чешешь - WTF, какого лешего для переделок CSS понадобились еще изменения в Startup.cs ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2020, 21:26 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
Alexey Tomin Если посмотреть реальные отличия gitlab-glow от gitflow, то аналогом ветки develop - фичивая ветка. Так фичивая ветка не является аналогом develop. Alexey Tomin Аналог release - master Аналогично, release не является аналогом master. Alexey Tomin 1. Непонятно как тестировать большую фичу без пересечением с другими фичами. 1. feature toggle 2. большая фича зачастую состоит из реализации разных тасков разными разработчиками и в разных компонентах 3. для этого собственно и существует dev Alexey Tomin 2. Если надо поправить "позапрошлый" релиз то это сделать проще в gitlab-flow. Там всегда релиз имеет свою ветку. релизные ветки есть в gitflow изначально Alexey Tomin В чём плюс gitflow? 1. Когда развернуть серверную часть дорого, то наличие 3х веток и не больше- это намного дешевле. 2. Когда клиентских приложений 5 разных - то это позволяет синхронизировать весь это зоопарк. Собственно эти оба пункта про текущий проект, так что gitflow оправдан. В чём плюс github-flow? Хорошо на старте разработки, пока все постоянно рефакторинг фигачат - с мержем проблем нет. Если поглядеть на различия, то github-flow это тупо сильно покоцанный gitflow. Всё что можно делать в github-flow, можно делать в gitflow, но не наоборот. Стабилизация -- это понятный, осмысленный процесс в разработке серьёзных проектов. Подход, основанный на вылизывания фиче-ветки до идеала просто смешной :) Да, он хорошо ложится на опен-сорс проекты, так как в ОС одна фича = один человек. Но в боевых коммерческих проектах это зачастую абсолютно не так. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2020, 01:30 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
fkthat Alexey Tomin 1. Непонятно как тестировать большую фичу без пересечением с другими фичами. Так фича живет в отдельной ветке, какие пересечения? Речь про то, что когда тестирование идёт с общей ветки, то и ногда сложно понять "чей туфля", т.е. чья бага. Так что первое тестирование лучше делать с "именно" ветки. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2020, 06:57 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
hVostt релизные ветки есть в gitflow изначально Ветки release/*, они ведь не для этого. Это pre-release ветки, куда уже никакие фичи не добавляются. Аналог release-ветки gitlab-flow, как я уже выше писал, это support/*. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2020, 10:05 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
Alexey Tomin fkthat пропущено... Так фича живет в отдельной ветке, какие пересечения? Речь про то, что когда тестирование идёт с общей ветки, то и ногда сложно понять "чей туфля", т.е. чья бага. Так что первое тестирование лучше делать с "именно" ветки. Дык так и делается. Пушите изменения в свою ветку, создаёте пул (мёрж) реквест в develop. Запускается автоматический пайплайн интеграции: сборка артефакта из вашей ветки, поднятие среды, выкатка туда артефакта, выполнение тестов. Если всё прошло удачно, то мёрж в develop разрешён. Также при желании на ветку можно натравить полный прогон всех существующих тестов. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2020, 10:11 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
Также против develop ежедневного выполняются тесты. Они так и называются daily tests. Если вдруг develop "покраснел", то понять "чей туфля" не сложно. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2020, 10:15 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
Alexey Tomin Речь про то, что когда тестирование идёт с общей ветки, то и ногда сложно понять "чей туфля", т.е. чья бага. При кошерных настройках CI то, что ломает тесты в ветку develop вообще не попадет. CI он не для того чтобы просто запускать тесты на сервере (свою feature ветку каждый может и у себя локально оттестировать), а чтобы быть уверенным что тесты проходит все вместе собранное до кучи и изменения Васи не ломают изменения Пети. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2020, 10:16 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
fkthat skyANA, Очень часто проблемы мержа возникают из-за того, что в рамках фичи делают какие-то изменения к самой фиче не относящиеся. В принципе, с благими целями - улучшить что-нибудь между делом. Еще тот подарок ревьюеру. Сидишь такой и репу чешешь - WTF, какого лешего для переделок CSS понадобились еще изменения в Startup.cs Это не проблемы мёржа, это проблемы ревью. Решаются договорённостью делать отдельные коммиты с комментариями о том, что это вот к фиче не относится, это улучшения. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2020, 10:22 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
skyANA Это не проблемы мёржа, это проблемы ревью. Решаются договорённостью делать отдельные коммиты с комментариями о том, что это вот к фиче не относится, это улучшения. Мне все-таки больше по душе, чтобы это отдельной веткой от develop оформлялось, а то разбираться еще со всякими левыми коммитами и комментариями - нафиг, например, мне оно при ревью надо. К тому же мне больше нравится squash до ревью, а не перед merge. Мне на ревью удобней видеть все изменения по таску сразу, а не прокручивать простыню коммитов. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2020, 10:45 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
fkthat skyANA Это не проблемы мёржа, это проблемы ревью. Решаются договорённостью делать отдельные коммиты с комментариями о том, что это вот к фиче не относится, это улучшения. Мне все-таки больше по душе, чтобы это отдельной веткой от develop оформлялось, а то разбираться еще со всякими левыми коммитами и комментариями - нафиг, например, мне оно при ревью надо. К тому же мне больше нравится squash до ревью, а не перед merge. Мне на ревью удобней видеть все изменения по таску сразу, а не прокручивать простыню коммитов. А откуда простыня-то? Один коммит с изменениями в Startup.cs ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2020, 14:16 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
skyANA А откуда простыня-то? Один коммит с изменениями в Startup.cs Я не то имел в виду. Я говорил о том, что мне нравится делать squash еще до ревью, чтобы вместо простыни с кучей небольших изменений видеть все изменения сразу. Но если я делаю squash до ревью, то изменения в Startup.cs будут слиты с остальными в один коммит и весь смысл как-то их метить и комментировать пропадает. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2020, 15:00 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
fkthat Мне все-таки больше по душе, чтобы это отдельной веткой от develop оформлялось, а то разбираться еще со всякими левыми коммитами и комментариями - нафиг, например, мне оно при ревью надо. К тому же мне больше нравится squash до ревью, а не перед merge. Мне на ревью удобней видеть все изменения по таску сразу, а не прокручивать простыню коммитов. так это.. на ревью не важно сколько коммитов, пулл-реквест это разница между целевой веткой и набором изменений. если в результате ревью будут замечания, устранение замечаний происходит в том же пулл-реквесте доп. коммитами. ты же не на коммит ревью делаешь :) насчёт скваша, это уже способ вливать изменения из реквеста, хочешь скваш, хочешь ребейз (если это возможно), хочешь мердж. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2020, 15:07 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
skyANA Также против develop ежедневного выполняются тесты. Они так и называются daily tests. Если вдруг develop "покраснел", то понять "чей туфля" не сложно. если пайплайн сборки разбит на ряд сборок, то можно триггер повесить, любое изменение, влитое в дев, собирает альфу и прогоняет все тесты. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2020, 15:10 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
fkthat В общем случае такого быть не должно. На каждый таск заводится отдельная фича-ветка и девелопер один в ней работает ни с кем не конфликтуя. Когда работа полностью закончена тогда его ветка мержится в общую develop-ветку. Напрямую писать что-то в develop-ветку нельзя, все изменения только через мерж (или через rebase + fast-forward). Обычно делают вторым способом, чтобы не устраивать хитросплетения из веток и мержей. Опционально, если детальная история изменений не так критична, то делают еще stash ("схлопывают" все коммиты в один большой). Почему у меня возник вопрос желательности блокирования: потому что, если редактируемый файлик - это вордовский файл, то разрешение конфликтов мёржа - это просто ад. Вордовский файл - это конечно условно, для примера. Но у меня куча похожих файлов отчетной системы + есть файлы кубов OLAP. И либо мы имеем большущий геморрой при мёрже, либо нужна возможность блочить файлы (чтобы разрабы знали кто-что правит и смогли договориться). ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2020, 15:33 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
Критик fkthat В общем случае такого быть не должно. На каждый таск заводится отдельная фича-ветка и девелопер один в ней работает ни с кем не конфликтуя. Когда работа полностью закончена тогда его ветка мержится в общую develop-ветку. Напрямую писать что-то в develop-ветку нельзя, все изменения только через мерж (или через rebase + fast-forward). Обычно делают вторым способом, чтобы не устраивать хитросплетения из веток и мержей. Опционально, если детальная история изменений не так критична, то делают еще stash ("схлопывают" все коммиты в один большой). Почему у меня возник вопрос желательности блокирования: потому что, если редактируемый файлик - это вордовский файл, то разрешение конфликтов мёржа - это просто ад. Вордовский файл - это конечно условно, для примера. Но у меня куча похожих файлов отчетной системы + есть файлы кубов OLAP. И либо мы имеем большущий геморрой при мёрже, либо нужна возможность блочить файлы (чтобы разрабы знали кто-что правит и смогли договориться). Странно, что другим способом они договориться не могут. Типа вот если файл залочен, то я без проблем найду себе другую задачу. А вот если иначе, то обязательно будем толкаться жопами и создавать друг другу геморрой. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2020, 16:12 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
fkthat Alexey Tomin Речь про то, что когда тестирование идёт с общей ветки, то и ногда сложно понять "чей туфля", т.е. чья бага. При кошерных настройках CI то, что ломает тесты в ветку develop вообще не попадет. CI он не для того чтобы просто запускать тесты на сервере (свою feature ветку каждый может и у себя локально оттестировать), а чтобы быть уверенным что тесты проходит все вместе собранное до кучи и изменения Васи не ломают изменения Пети. Замечательно, когда всё можно выполнить автоматически. А бывают случаи разные - например нужно проверить взаимодействие с внешним API, которое одно и ставит блокировку на количество одновременных запросов- кроме продакшна можно выделить время на тестирование ровно одного экземпляра сервера и в строго определённое время. И тестировать надо долго- API неспешное, а данных много. Второй вариант- некоторые вещи приходится тестировать на копии данных клиента, а данных- очень много, тоже надо стоять в очереди :) Ну и изменения UI требуют ручного просмотра- выявить некрасивость иначе нельзя- значит надо разворачивать нужную версию сервера, брать JSник нужный и смотреть всё. fkthat Мне все-таки больше по душе, чтобы это отдельной веткой от develop оформлялось, а то разбираться еще со всякими левыми коммитами и комментариями - нафиг, например, мне оно при ревью надо. К тому же мне больше нравится squash до ревью, а не перед merge. Мне на ревью удобней видеть все изменения по таску сразу, а не прокручивать простыню коммитов. Это когда как. В хорошем ревью коммиты сделаны именно для удобства читателя- сначала добавили сервис с тестами, потом его использование, потом в UI что-то поменяли. А когда в куче - сложно понять. Критик Почему у меня возник вопрос желательности блокирования: потому что, если редактируемый файлик - это вордовский файл, то разрешение конфликтов мёржа - это просто ад. Вордовский файл - это конечно условно, для примера. Но у меня куча похожих файлов отчетной системы + есть файлы кубов OLAP. И либо мы имеем большущий геморрой при мёрже, либо нужна возможность блочить файлы (чтобы разрабы знали кто-что правит и смогли договориться). Да, когда большинство файлов бинарные- то надо блокировать их. Или не работать с такими средствами разработки, которые не способны хранить всё в текстовых файлах. Вот сейчас у нас только файлик лицензионного соглашения (для виндовых/макосевых дистрибутивов) и иконки/картинки всякие в бинарниках- и хорошо, и нет проблем. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2020, 08:13 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
Alexey Tomin нужно проверить взаимодействие с внешним API Alexey Tomin на копии данных клиента Alexey Tomin изменения UI требуют ручного просмотра Это уже E2E тестирование и оно лежит вне scope-а CI. Alexey Tomin сначала добавили сервис с тестами, потом его использование, потом в UI что-то поменяли Это только в идеальном мире. В реальности чаще всего дорога от создания feature-branch к pull-request напоминает путь броуновской частицы, где все что только можно по 100500 раз переделывается и рефакторится. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2020, 09:03 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
fkthat Alexey Tomin нужно проверить взаимодействие с внешним API Alexey Tomin на копии данных клиента Alexey Tomin изменения UI требуют ручного просмотра Это уже E2E тестирование и оно лежит вне scope-а CI. Но внутри этой темы. fkthat Alexey Tomin сначала добавили сервис с тестами, потом его использование, потом в UI что-то поменяли Это только в идеальном мире. В реальности чаще всего дорога от создания feature-branch к pull-request напоминает путь броуновской частицы, где все что только можно по 100500 раз переделывается и рефакторится. И что? Перед отправкой не ревью надо всё слить и разбить на логические коммиты. Некоторые так не делают- ну так уровень у всех разных, не всех можно подпускать к разработке. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2020, 10:31 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
Alexey Tomin И что? Перед отправкой не ревью надо всё слить и разбить на логические коммиты. Некоторые так не делают- ну так уровень у всех разных, не всех можно подпускать к разработке. И как ты это собрался делать, интересно? Удалять целиком ветку и по-новой накатывать руками все отдельные "логические коммиты"? Это что-то напоминает историю про то, как дурака научили богу молиться и чем это закончилось :)) И, потом, я уже писал - каждому удобней делать ревью по-своему. Лично мне при ревью feature удобней и интересней видеть просто изменения по этой feature в целом, а не поток мысли её автора за время её разработки. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2020, 10:59 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
fkthat Alexey Tomin И что? Перед отправкой не ревью надо всё слить и разбить на логические коммиты. Некоторые так не делают- ну так уровень у всех разных, не всех можно подпускать к разработке. И как ты это собрался делать, интересно? Удалять целиком ветку и по-новой накатывать руками все отдельные "логические коммиты"? Это что-то напоминает историю про то, как дурака научили богу молиться и чем это закончилось :)) И, потом, я уже писал - каждому удобней делать ревью по-своему. Лично мне при ревью feature удобней и интересней видеть просто изменения по этой feature в целом, а не поток мысли её автора за время её разработки. Моя твоя не понимать. Пилю я фичу и вижу в куске кода явный косяк и простую возможность для небольшого улучшения. Я не делаю масштабный рефакторинг, а только небольшое улучшение. Тебе прям будет сильно неудобно от такого отдельного коммита? Ты не поймёшь, что это именно улучшение? Даже прочитав комментарии? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2020, 11:14 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
skyANA Тебе прям будет сильно неудобно от такого отдельного коммита? Да. skyANA Ты не поймёшь, что это именно улучшение? Да. skyANA Даже прочитав комментарии? Да. Я же выше уже писал - мне больше нравится делать ревью уже отсквошенной фичи. Т.е. это улучшение будет уже смешано с остальными неулучшениями и коммент потеряется. В чем проблема-то переключится на время на develop, оформить улучшение как bugfix/*, вмержить и сделать rebase своей ветки? Лень? Ну так лично мне вообще лень со всеми этими ветками работать - мне легче было бы сразу в master все фигачить, но я же терплю :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2020, 13:01 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
Мда, а мне вот наоборот неудобно, когда фичу декомпозируют на таски по 2sp, а потом как прилетает мёрж реквест где они все :) Сделал таску - мёрж рекветс, сделал таску - мёрж реквест. И когда в маленьком таком реквесте будет ещё и какое-то мелкое улучшение отдельным коммитом, меня это нисколько не смутит. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2020, 14:40 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
fkthat Я же выше уже писал - мне больше нравится делать ревью уже отсквошенной фичи Не совсем понятно при чём тут сквош... вообще, сквош это результат. Вот тебе отсквошили её, а потом замечания, надо вносить исправления, а история маленьких коммитов разработчика убита. В чём смысл сквоша, не пойму? На ревью ты итак видишь весь набор изменений. По-моему это жиза ) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2020, 15:21 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
skyANA Мда, а мне вот наоборот неудобно, когда фичу декомпозируют на таски по 2sp, а потом как прилетает мёрж реквест где они все :) Сделал таску - мёрж рекветс, сделал таску - мёрж реквест. И когда в маленьком таком реквесте будет ещё и какое-то мелкое улучшение отдельным коммитом, меня это нисколько не смутит. Ну, по-моему, так и правильно 1 task в трекере -> 1 feature, как же еще. Если задачи небольшие и коммитов мало, то вполне нормально и без squash. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2020, 20:42 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
fkthat, Так task != feature/story, и тем более != epic :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2020, 23:30 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
hVostt Так task != feature/story Разумеется, имелось в виду не "1 task == 1 feature", а "1 task == 1 feature branch ". ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 01:45 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
fkthat hVostt Так task != feature/story Разумеется, имелось в виду не "1 task == 1 feature", а "1 task == 1 feature branch ". Таск бранч ) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 02:22 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
hVostt Таск бранч ) Кстати, gitflow-то можно ведь на любой префикс имен веток сконфигурировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2020, 02:24 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
fkthat hVostt Таск бранч ) Кстати, gitflow-то можно ведь на любой префикс имен веток сконфигурировать. Вообще кроме разработки, на gitflow хорошо ложится пайплайн сборки, именования версий и релизов. Забавно наблюдать, когда отказавшись от "лишних" веток народ вручную бампает версии отдельными коммитами в файликах, или придумывают костыльные хуки.. ггг :) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2020, 03:28 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
fkthat Alexey Tomin И что? Перед отправкой не ревью надо всё слить и разбить на логические коммиты. Некоторые так не делают- ну так уровень у всех разных, не всех можно подпускать к разработке. И как ты это собрался делать, интересно? Удалять целиком ветку и по-новой накатывать руками все отдельные "логические коммиты"? Перед пушем делать "git reset HEAD~5" (или сколько там) и заново выполнять коммиты, думая о ревьювере. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2020, 12:13 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
Alexey Tomin Перед пушем делать "git reset HEAD~5" (или сколько там) и заново выполнять коммиты, думая о ревьювере. Мне идея понравилась. Будем пробовать. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2020, 14:41 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
fkthat Alexey Tomin Перед пушем делать "git reset HEAD~5" (или сколько там) и заново выполнять коммиты, думая о ревьювере. Мне идея понравилась. Будем пробовать. :) А потом откроешь для себя перезапись истории :) Ток не вступай в секту гит головного мозга с вылизанными как яйца у кота коммитами... ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2020, 14:46 |
|
GIT и DEV-TEST-PROD
|
|||
---|---|---|---|
#18+
hVostt А потом откроешь для себя перезапись истории :) Да я знаю как её перезаписывать: git rebase -i blabla, может что-то еще есть, что я не в курсах. hVostt Ток не вступай в секту гит головного мозга с вылизанными как яйца у кота коммитами Я за аккуратность во всем :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2020, 14:58 |
|
|
Start [/forum/topic.php?fid=37&tid=1555236&all=1]: |
0ms |
get settings: |
1ms |
get forum list: |
6ms |
check forum access: |
0ms |
check topic access: |
0ms |
track hit: |
27ms |
get topic data: |
3ms |
get forum data: |
0ms |
get page messages: |
32ms |
update_topic_read_status (1555236): 29.10.2020 16:54:00: |
0ms |
get tp. blocked users: |
0ms |
get online users: |
20ms |
check new: |
1ms |
others: | 83ms |
total: | 173ms |
0 / 0 |