OberonCore https://forum.oberoncore.ru/ |
|
Особенности версионности с составными документами https://forum.oberoncore.ru/viewtopic.php?f=23&t=4440 |
Страница 2 из 4 |
Автор: | Valery Solovey [ Пятница, 16 Август, 2013 20:07 ] |
Заголовок сообщения: | Re: Особенности версионности с составными документами |
И слияние и уведомление о коллизиях замечательно работают в гите уже сейчас. Даже с документами ББ. Проблема не в том, что это не делается. Проблема в том, что в случае коллизии система контроля версий только и сможет сказать "у вас коллизия". И чтобы с ней разобраться, придётся вручную сравнивать два документа. |
Автор: | Илья Ермаков [ Пятница, 16 Август, 2013 21:15 ] |
Заголовок сообщения: | Re: Особенности версионности с составными документами |
Так, теперь выяснилось, что под автослиянием коллеги понимают слияние веток (наборов файлов). А не слияние конфликтующих изменений одного файла. Автослияние веток прекрасно работает и с бинарниками, в чём проблема-то... |
Автор: | Иван Кузьмицкий [ Пятница, 16 Август, 2013 21:21 ] |
Заголовок сообщения: | Re: Особенности версионности с составными документами |
Valery Solovey писал(а): И слияние и уведомление о коллизиях замечательно работают в гите уже сейчас. Даже с документами ББ. Проблема не в том, что это не делается. Проблема в том, что в случае коллизии система контроля версий только и сможет сказать "у вас коллизия". И чтобы с ней разобраться, придётся вручную сравнивать два документа. Проблема в том, что никакая система контроля версиий не способна различить коллизии на уровне алгоритма, а срабатывает только на уровне строк, насколько я знаю.
|
Автор: | Valery Solovey [ Пятница, 16 Август, 2013 21:26 ] |
Заголовок сообщения: | Re: Особенности версионности с составными документами |
Илья Ермаков писал(а): слияние конфликтующих изменений Почему конфликтующих? Просто изменений.
|
Автор: | Роман М. [ Пятница, 16 Август, 2013 21:29 ] |
Заголовок сообщения: | Re: Особенности версионности с составными документами |
Илья Ермаков писал(а): Так, теперь выяснилось, что под автослиянием коллеги понимают слияние веток (наборов файлов). А не слияние конфликтующих изменений одного файла. Именно так. Собственно, одна из проблем при работе с контролем версий - это когда VCS автоматически пытается слить два файла в один, порождая конфликт. Благо, конфликты сам он не решает, а оставляет разработчику.На работе использую git, редко - Subversion. |
Автор: | Роман М. [ Пятница, 16 Август, 2013 21:32 ] |
Заголовок сообщения: | Re: Особенности версионности с составными документами |
Иван Кузьмицкий писал(а): Проблема в том, что никакая система контроля версиий не способна различить коллизии на уровне алгоритма, а срабатывает только на уровне строк, насколько я знаю. Если можно, лучше привести пример, при котором при слиянии веток произойдёт конфликт на уровне программы, при участии VCS в авто-слиянии.
|
Автор: | Valery Solovey [ Пятница, 16 Август, 2013 21:43 ] |
Заголовок сообщения: | Re: Особенности версионности с составными документами |
Иван Кузьмицкий писал(а): Проблема в том, что никакая система контроля версиий не способна различить коллизии на уровне алгоритма, а срабатывает только на уровне строк, насколько я знаю. Алгоритмы в Обероне останутся алгоритмами и после переписывания на других языках. Так что с одной стороны - да, если могут существовать коллизии на уровне алгоритма, то эти инструменты их не обработают правильно (как и ещё многое другое), но с другой стороны, в обычных текстовых файлах других языков программирования они тоже не могут быть обработаны. А самое приятное, что это и не надо. Поэтому-то инструменты контроля версий и могут существовать.Иван Кузьмицкий писал(а): срабатывает только на уровне строк, насколько я знаю. Задача обнаружения конфликта - это задача на пересечение множеств. Есть один дифф с группой изменений. Каждое изменение представлено диапазоном. Диапазоном байт в простейшем случае. Появляется ещё один дифф. Если какой-то из диапазонов нового диффа пересекается с диапазоном первого, то имеем конфликт.Пользователю дифф-файл представляется в виде строк потому, что так ему удобнее определять места изменений: проще ориентироваться в исходнике. |
Автор: | ilovb [ Пятница, 16 Август, 2013 22:23 ] |
Заголовок сообщения: | Re: Особенности версионности с составными документами |
Роман М. писал(а): Если можно, лучше привести пример, при котором при слиянии веток произойдёт конфликт на уровне программы, при участии VCS в авто-слиянии. Все просто. Если система автослияния ничего не знает о структуре содержимого текстовика, то конфликт это файл который правился в обеих ветках. Если система умеет распарсить текст до процедур, то конфликт это процедура, которая правилась в обеих ветках. И так далее... Т.е. все зависит от того, на сколько глубоко ситема может проанализировать исходник и построить по нему структурное дерево. В 1С мердж работает на уровне процедур, например. |
Автор: | ilovb [ Пятница, 16 Август, 2013 22:36 ] |
Заголовок сообщения: | Re: Особенности версионности с составными документами |
Вот еще информация в тему: Цитата: Ну вот допустим есть некий модуль версии 1.0. В модуле две процедуры А() и В() Два человека независимо друг от друга вносят изменения в свои копии этого модуля, т.е. появляются два потомка. Сравнивая три файла (исходный и два потомка) мы обнаружим что каждая процедура: 1) Не изменялась ни у первого, ни у второго потомка 2) Изменялась только у первого 3) Изменялась только у второго 4) Изменялась у обоих Понятно, что в первых трех случаях слияние можно сделать автоматически. А четвертый конфликтный вариант придется делать вручную. Ну вот как то так. http://oberspace.dyndns.org/index.php/t ... ml#msg4269 |
Автор: | Илья Ермаков [ Суббота, 17 Август, 2013 18:20 ] |
Заголовок сообщения: | Re: Особенности версионности с составными документами |
Valery Solovey писал(а): Илья Ермаков писал(а): слияние конфликтующих изменений Почему конфликтующих? Просто изменений.Ну, в том же Mercurial любые изменения, параллельно сделанные, даже если они относятся к разным файлам, всё равно нуждаются в pull - merge - commit для их слияния. Меня это сначало дико удивило после SVN |
Автор: | Иван Денисов [ Суббота, 17 Август, 2013 18:47 ] |
Заголовок сообщения: | Re: Особенности версионности с составными документами |
Все что нужно, на мой взгляд, чтобы F9 не пропускал отображения и различия в форматировании при анализе документов! Тогда все будет зашибись. Ведь не только код приходится сравнивать, а еще и документацию бывает. |
Автор: | ilovb [ Воскресенье, 18 Август, 2013 15:15 ] |
Заголовок сообщения: | Re: BlackBox Merge tool |
Илья Ермаков писал(а): Если хотите мое мнение глобальное, перспективное - то я за семантическое представление исходников А у нас тут однако мысли сходятся. От txt в исходниках нужно уходить. Странный это процесс... хранить в txt и каждый раз парсить для синтаксического контроля, подсветки и прочего... Да и редактировать по сути дерево как текст тоже странно. Но я об этом не заикаюсь, т.к. не представляю как это реализовать. И уж на это точно никто не пойдет в ББ |
Автор: | ilovb [ Среда, 21 Август, 2013 15:30 ] |
Заголовок сообщения: | Re: BlackBox Merge tool |
Илья Ермаков писал(а): А всё, в конечном счёте, из-за не столь нужной фичи автослияния )) Вот прям сейчас подвернулся жизненный пример. Пилю значит одну разработку. Клиент делает перепостановку задачи в начале месяца и просит внести изменения до конца месяца. На данный момент я эти изменения закодил, но не тестировал, т.е. отдать в продакшен не могу. Сегодня звонит клиент и говорит что нужно кровь из носа запилить дополнительную фичу до конца месяца. Ресурсов у меня не хватит на то и другое. Договариваюсь, что предыдущую задачу откладываем на след. месяц. Обе задачи вносят изменения в логику одного и того же алгоритма, который, естественно, заключен в одном модуле. Сейчас я нахожусь на ревизии 469. Мне нужно вернуться к ревизии 450, выделить ветку и закодить вторую задачу. А в след. месяце нужно будет допилить задачу в первой ветке, и выполнить слияние. Вот такой простой жизненный пример. |
Автор: | Иван Кузьмицкий [ Среда, 21 Август, 2013 16:11 ] |
Заголовок сообщения: | Re: BlackBox Merge tool |
ilovb писал(а): ...Клиент делает перепостановку задачи в начале месяца и просит внести изменения до конца месяца. На данный момент я эти изменения закодил, но не тестировал, т.е. отдать в продакшен не могу. Сегодня звонит клиент и говорит что нужно кровь из носа запилить дополнительную фичу до конца месяца. Ресурсов у меня не хватит на то и другое. Договариваюсь, что предыдущую задачу откладываем на след. месяц. Обе задачи вносят изменения в логику одного и того же алгоритма, который, естественно, заключен в одном модуле. Сейчас я нахожусь на ревизии 469. Мне нужно вернуться к ревизии 450, выделить ветку и закодить вторую задачу. А в след. месяце нужно будет допилить задачу в первой ветке, и выполнить слияние. Вот такой простой жизненный пример. Если изменения в двух ветках затрагивают существенные элементы одного и того же алгоритма, то в результате автослияния получится неработающий фарш. Если же автослияние не сломает ничего, то изменения вносятся, по сути, в разные алгоритмы. |
Автор: | ilovb [ Среда, 21 Август, 2013 17:02 ] |
Заголовок сообщения: | Re: BlackBox Merge tool |
Да нет, все норм. Процедура Алгоритм() ... Подалгоритм1() // тут изменения по первой задаче ... Подалгоритм2() // тут изменения по второй задаче ... // несколько правок в основной процедуре по первой задаче КонецПроцедуры Никакого фарша. |
Автор: | Иван Кузьмицкий [ Среда, 21 Август, 2013 18:01 ] |
Заголовок сообщения: | Re: BlackBox Merge tool |
Совершенно случайно так получилось, что вносимые изменения не пересекаются, не ломают логику процедуры и не портят контракт. |
Автор: | Борис Рюмшин [ Среда, 21 Август, 2013 18:06 ] |
Заголовок сообщения: | Re: BlackBox Merge tool |
ilovb писал(а): Вот такой простой жизненный пример. В общем-то, потому что везде такая хреновая организация производства и возникают такие инструменты как merge в хранилищах. P.S. На всякий случай уточняю: хранилища с версиями нужны сами по себе. |
Автор: | ilovb [ Среда, 21 Август, 2013 18:59 ] |
Заголовок сообщения: | Re: BlackBox Merge tool |
Иван Кузьмицкий писал(а): Совершенно случайно так получилось, что вносимые изменения не пересекаются, не ломают логику процедуры и не портят контракт. Может быть. А может быть и наоборот. Не помню случаев когда при слиянии изменения пересекались. Возможно я очень везучий. Но мне кажется, что как раз пересечения маловероятны. В любом случае слияние конфликта делает человек... |
Автор: | Борис Рюмшин [ Среда, 21 Август, 2013 19:02 ] |
Заголовок сообщения: | Re: BlackBox Merge tool |
Только человек не всегда сможет учесть побочные неочевидные эффекты... |
Автор: | ilovb [ Среда, 21 Август, 2013 19:11 ] |
Заголовок сообщения: | Re: BlackBox Merge tool |
Борис Рюмшин писал(а): В общем-то, потому что везде такая хреновая организация производства и возникают такие инструменты как merge в хранилищах. Не очень понимаю о какой организации вы говорите. Про то, как клиент ставит задачи? У нас так всегда. Это нормальный рабочий момент. |
Страница 2 из 4 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |