Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Как уменьшить количество изменений в ветке?

895  1 2 3 все
AlexNek патриот10.05.23 19:57
AlexNek
10.05.23 19:57 

Начали работу над задачей, создали ветку, начали менять код, запостили изменения. И вот находим совершенно новую, неожидаемую проблему, которая мешает выполнению данной задачи, но никак не связана с ней. Что теперь делать с изменениями для этой новой проблемы?


Например: задача добавить новую колонку в для отображения в таблице. Добавили. Но для теста нужно еще обновить данные в таблице /по умолчанию нет ничего/, а вот обновить данные не получается, хотя раньше можно было.

#1 
alex445 коренной житель10.05.23 20:50
NEW 10.05.23 20:50 
в ответ AlexNek 10.05.23 19:57

Ничё не понял, но если одно мешает другому, значит они связаны.

#2 
AlexNek патриот10.05.23 21:55
AlexNek
NEW 10.05.23 21:55 
в ответ alex445 10.05.23 20:50

вот пример. В желтой рамке, то что было до того, внизу что хотят. Забыл только стереть содержимое ячеек, поначалу все пустые.

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

задача - добавить колонку, кнопка ну никак не связана с этой задачей.

#3 
alex445 коренной житель10.05.23 23:23
NEW 10.05.23 23:23 
в ответ AlexNek 10.05.23 21:55

Не понял, что мешает добавить? В таблице нет колонки ещё и она не мапится на гуй, или что? Ну сделайте промежуточный класс, который принимает данные из таблицы с одной колонкой и ещё имеет временную вторую колонку с любыми данными.

#4 
AlexNek патриот11.05.23 19:13
AlexNek
NEW 11.05.23 19:13 
в ответ alex445 10.05.23 23:23
Не понял, что мешает добавить?

Ничего не мешает, вопрос совершенно в другом.


Добавили мы колонку и еще, что надо, но теперь нужны данные, а кнопа не работает, нужно править. Так вот что делать с этими изменениями?

И кстати, это просто пример, на самом деле все сложнее, но принцип тот же.

#5 
alex445 коренной житель12.05.23 00:53
NEW 12.05.23 00:53 
в ответ AlexNek 11.05.23 19:13, Последний раз изменено 12.05.23 00:57 (alex445)

Не понял. Нужно править, но через короткое время в табле появится нужная колонка, и всё исправленное нужно обратно возвращать? И вы типа не хотите создавать новую тестовую ветку, которую через пару дней всё равно мерджить придётся? А в чём проблема делать короткоживующие ветки? В разных обущающих уроках по контролю версий часто показывают варианты, где ветка из пары коммитов состоит всего, а потом либо убивается, либо мёрджится. Да там даже не всю ветку мёрджить надо - лишь те файлы, которые вы меняли для тестов со своей таблицей.

#6 
MrSanders коренной житель12.05.23 09:58
NEW 12.05.23 09:58 
в ответ AlexNek 10.05.23 19:57
Начали работу над задачей, создали ветку, начали менять код, запостили изменения. ...

Тебе интересно что стоит сделать в git-е, так?

#7 
Simple Nothing is f*cked12.05.23 15:42
Simple
NEW 12.05.23 15:42 
в ответ AlexNek 10.05.23 19:57

Новая ветка для проблемы; когда будет решена - слияние с веткой для задачи.

#8 
MrSanders коренной житель12.05.23 16:00
NEW 12.05.23 16:00 
в ответ Simple 12.05.23 15:42

и с мастером!

#9 
Simple Nothing is f*cked12.05.23 16:12
Simple
NEW 12.05.23 16:12 
в ответ MrSanders 12.05.23 16:00

Это уже детали.

Мастер, кстати, не политкорретно ;)

#10 
Simple Nothing is f*cked12.05.23 16:14
Simple
NEW 12.05.23 16:14 
в ответ alex445 12.05.23 00:53

Пережитки сабвершна или, прости господи, clearcase.

#11 
AlexNek патриот12.05.23 17:50
AlexNek
NEW 12.05.23 17:50 
в ответ alex445 12.05.23 00:53
Не понял

Сорри, не знаю что еще нужно пояснить

#12 
AlexNek патриот12.05.23 18:02
AlexNek
NEW 12.05.23 18:02 
в ответ MrSanders 12.05.23 09:58
Тебе интересно что стоит сделать в git-е,

как одно из направлений. Но вообще то, проблема гораздо шире.

Есть PBI, есть Task, есть бранч к таску, есть время выполнения таски, есть PR. Есть код, есть изменения непосредственно относящиеся к задаче, а есть нет.

Все это нужно синхронизировать и для этого нужно иметь чётко описанный алгоритм, что делать в каком случае.


Вот например, комментарий с ошибкой написан, код неправильно отформатирован, имя функции неправильное и т.п.

Ну или что бы идти дальше, нужно сделать небольшие изменения, не относящиеся непосредственно к задаче.


#13 
AlexNek патриот12.05.23 18:08
AlexNek
NEW 12.05.23 18:08 
в ответ Simple 12.05.23 15:42

Новая ветка для проблемы - откуда создаем ветку и когда? Может достаточно изменить одну троку, а может и по некоторому количеству строк в разных файлах.

Если из мастера, то там могут быть уже новые изменения от другого чела. Да и дальнейшая работа может не иметь смысла без предыдущей правки. Если из текущей, то как делать PR только для этих изменений, в файле то могут быть изменения и для текущей задачи.

#14 
alex445 коренной житель12.05.23 19:05
NEW 12.05.23 19:05 
в ответ Simple 12.05.23 16:12, Последний раз изменено 12.05.23 19:05 (alex445)
Мастер, кстати, не политкорретно ;)

Слияние с веткой белой мужской шовинистической свиньи подойдёт? ))

#15 
alex445 коренной житель12.05.23 19:10
NEW 12.05.23 19:10 
в ответ AlexNek 12.05.23 18:08, Последний раз изменено 12.05.23 19:11 (alex445)

Обычно куски проекта изолируют, чтобы более-менее не зависеть от веток других разработчиков, а внутри команды планируют, кто когда и какую ветку будет делать и когда будут их мёрджить или убивать, чтобы веток не сильно много было и они не сильно затягивались по времени. В ветке же вы обычно только свою часть правите, а не по всему проекту тестовые изменения раскидываете? Так что при слиянии число конфликтов будет минимальным. Ну а перед слиянием своей ветки подтягиваете последнюю версию из мастера, чтобы протестить с уже последними изменениями. Это вроде даже автоматом делается - сначала чекаут или получение последний версии, а потом чекин.

#16 
Бесконечный цикл завсегдатай12.05.23 19:59
NEW 12.05.23 19:59 
в ответ AlexNek 10.05.23 19:57

Я тоже не понял в чем проблема.


1) Все что надо для решения задачи делаешь в одной ветке, потом в мастера пихаешь (ну или в stage у кого как принято)

2) Делаешь ветку для подзадачи из данной ветки и в конце пихаешь в ветку задачи (а потом как всегда в мастера). Это если не очень уверен в нужности или это просто эксперимент

3) Если подзадача полезна другим уже сейчас и они не хотят ждать, делаешь новую ветку из мастера и туда же ее мержишь, а потом подсавываешь в свою рабочую ветку (вместе со всеми другими). Фактически отдельная задача, типа хот-фикс.


#17 
Simple Nothing is f*cked12.05.23 20:36
Simple
NEW 12.05.23 20:36 
в ответ alex445 12.05.23 19:05

Главная ветка теперь называется main ;)

#18 
Simple Nothing is f*cked12.05.23 21:03
Simple
NEW 12.05.23 21:03 
в ответ AlexNek 12.05.23 18:08

Смотря какая проблема. Если в проде, создаётся новая задача - хотфикс, создается новая ветка от главной ветки (мастер или мэйн), дальше все по плану - PR в мастер. После этого мастер сливается с веткой для задачи, и работа идёт дальше.

Если проблема только для реализации задачи, фиксите ее прямо в ветке для задачи.

#19 
AlexNek патриот12.05.23 23:27
AlexNek
NEW 12.05.23 23:27 
в ответ Бесконечный цикл 12.05.23 19:59
Все что надо для решения задачи делаешь в одной ветке, потом в мастера пихаешь

Как можно пихать в мастер то что не работает?


Делаешь ветку для подзадачи из данной ветки

иногда бывает так что проблема накатывается комом или просто видишь рефакторинг. Значит всё туды и открывать новую таску? только на что? Если хочется много не связанных исправлений, которые-то сразу и не видно.

постоянно открывать новые и на них PR в новую задачу, так PR задачи будет с мастером сравнивать и там будут изменения не имеющие отношения к задаче.


Если подзадача полезна другим уже сейчас

Кто должен определять степень полезности?

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

Пока приходится делать двойную работу, делать локально как надо, а после смотреть что относится к задача, а что нет и разбивать на новые ветки.


Хотя вот попалась хитрая штука. В блазоре "хтмл код" можно записывать в одном файле с "cs", а можно и в разных.

Согласно текущему соглашению всё должно быть в разных. Но это можно сделать только когда вообще никто не будет работать над этим проектом.


#20 
1 2 3 все