OberonCore
https://forum.oberoncore.ru/

Особенности версионности с составными документами
https://forum.oberoncore.ru/viewtopic.php?f=23&t=4440
Страница 1 из 4

Автор:  Илья Ермаков [ Четверг, 15 Август, 2013 19:26 ]
Заголовок сообщения:  Особенности версионности с составными документами

Иван Денисов писал(а):
Роман поставил вопрос о качественном автоматическом слиянии двух полноценных документов. Ведь F9 пропускает отображения, diff их не показывает.


Считаю, что автослияние - ненормальная ситуация для разработки на модульном языке.
Это фича, жизненно необходимая для "говнокодной" слабо контролируемой разработки на языках типа C/PHP/...
Либо на этапе сопровождения ещё не "вылизанного" продукта, когда идёт поток мелких локальных исправлений, которые быстрей делать "в несколько рук", что явно не наш случай.

Если люди не смогли договориться и пытаются одновременно править один файл, то почему нужно эту ситуацию разруливать "автоматом"? Нужно дать каждому по башке ошибкой - и пусть садятся и разруливают...
Если же работа велась в параллельной ветке сознательно, то тем более - объединение веток требует внимательного ручного досмотра.

(модератор) Тема выделена из viewtopic.php?p=81468#p81468 (согл. п. 3.3)

Автор:  Иван Кузьмицкий [ Четверг, 15 Август, 2013 19:37 ]
Заголовок сообщения:  Re: BlackBox Merge tool

Илья Ермаков писал(а):
Считаю, что автослияние - ненормальная ситуация для разработки на модульном языке.
Разрешите подписаться. Каждому разработчику по модулю, и ничего сливать не понадобится. А если сливать автоматически, то можно получить массу головной боли в сломанных алгоритмах.

Автор:  Иван Денисов [ Четверг, 15 Август, 2013 19:42 ]
Заголовок сообщения:  Re: BlackBox Merge tool

Если править код, то тоже подписываюсь. Но, вот беда, при разработке то не только код имеется. Сопроводительная документация, формы. Ради проверки сделал правку в файле Tutorial.odc, заменил логотип на качественно нарисованный. Результат — пустой diff. Redmine на это ругается. Поэтому работа, которую начали Пётр и Роман очень важна для избежания подобных ситуаций, когда что-то изменилось, а мы ничего не видим.

Автор:  Роман М. [ Четверг, 15 Август, 2013 22:38 ]
Заголовок сообщения:  Re: BlackBox Merge tool

Иван Денисов писал(а):
Роман поставил вопрос о качественном автоматическом слиянии двух полноценных документов. Ведь F9 пропускает отображения, diff их не показывает.
Я такого не писал. Я хотел бы иметь хотя бы инструмент для ручного слияния. Главное, чтобы визуально мог видеть различия. А автоматическое - это было бы вообще хорошо.
В вопросе о слиянии документов я ставлю исходный код, прежде всего. Остальные варианты (презентации, документация) меня меньше интересуют, поскольку их можно решить поштучно, особенно если это сложный процесс.

Илья Ермаков писал(а):
Считаю, что автослияние - ненормальная ситуация для разработки на модульном языке.
Это фича, жизненно необходимая для "говнокодной" слабо контролируемой разработки на языках типа C/PHP/...
Либо на этапе сопровождения ещё не "вылизанного" продукта, когда идёт поток мелких локальных исправлений, которые быстрей делать "в несколько рук", что явно не наш случай.

Если люди не смогли договориться и пытаются одновременно править один файл, то почему нужно эту ситуацию разруливать "автоматом"? Нужно дать каждому по башке ошибкой - и пусть садятся и разруливают...
Если же работа велась в параллельной ветке сознательно, то тем более - объединение веток требует внимательного ручного досмотра.

Автослияние - вполне здоровая ситуация для разработки на любом языке разработки. Вопрос состоит лишь в том, как быть при разрешении конфликтов. Поэтому ПО оставляет эту прерогативу человеку. А там где версионное ПО может решить без участия человека - тем лучше для него. Тестированию код подлежит вне зависимости является ли слияние автоматическим или выполненным вручную.

Автор:  Иван Денисов [ Четверг, 15 Август, 2013 23:01 ]
Заголовок сообщения:  Re: BlackBox Merge tool

Роман М. писал(а):
Я такого не писал.
Значит это моя вольная трактовка слова «немуторный» как «качественный автоматический» :D

Автор:  Иван Кузьмицкий [ Пятница, 16 Август, 2013 08:17 ]
Заголовок сообщения:  Re: BlackBox Merge tool

Роман М. писал(а):
Автослияние - вполне здоровая ситуация для разработки на любом языке разработки.
Мне кажется, что это очень большой миф, который растёт на непонимании того, что же такое исходный текст программы с экономической точки зрения.

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

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

Понятное дело, если программист не считает собственное время, то ему всё равно. Собственно говоря, программист, как правило, не является самостоятельным экономическим субъектом, и это объясняет наплевательское отношение к инвестициям в исходные тексты.

Автор:  ilovb [ Пятница, 16 Август, 2013 09:03 ]
Заголовок сообщения:  Re: BlackBox Merge tool

Иван Кузьмицкий писал(а):
Роман М. писал(а):
Автослияние - вполне здоровая ситуация для разработки на любом языке разработки.
Мне кажется, что это очень большой миф, который растёт на непонимании того, что же такое исходный текст программы с экономической точки зрения.

Полностью согласен с Романом. Вполне штатная ситуация.

Я например регулярно с этим сталкиваюсь на работе при обновлении конфигураций 1С у клиентов. Да и внутри моей команды такое частенько бывает, т.к. в SVN иногда одновременно разными кодерами правится одна разработка, т.к. ресурсы не резиновые, и повесить все на одного человека невозможно.

ps Вот так это выглядит в 1С http://v8.1c.ru/overview/Term_000000291.htm

Автор:  Иван Кузьмицкий [ Пятница, 16 Август, 2013 09:16 ]
Заголовок сообщения:  Re: BlackBox Merge tool

ilovb писал(а):
Полностью согласен с Романом. Вполне штатная ситуация.

Я например регулярно с этим сталкиваюсь на работе при обновлении конфигураций 1С у клиентов. Да и внутри моей команды такое частенько бывает, т.к. в SVN иногда одновременно разными кодерами правится одна разработка, т.к. ресурсы не резиновые, и повесить все на одного человека невозможно.
В каких единицах измеряется ваша "разработка"? В оберонах мы имеем дело с модулями, которые позволяют разделить ответственность и изолировать проблемы.

Автор:  Иван Кузьмицкий [ Пятница, 16 Август, 2013 10:01 ]
Заголовок сообщения:  Re: BlackBox Merge tool

Тут в частной переписке проявилось некоторое непонимание модульности.

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

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

Конечно, в модуле могут быть ошибки.

Но тут возникает вопрос - а понимают ли природу ошибок те, кто исправляют модуль? Понимают ли они архитектуру системы и понимают ли они онтологическое место модуля в системе? Смогут ли они корректно исправить ошибку и не наделают ли новых? И не собираются ли они изменить онтологическую позицию модуля, сломав нафик всю архитектуру?

Конечно, при базарной разработке никто на это не смотрит. Вся головная боль в точке сборки, у майнтайнера, который вряд ли будет стеной стоять на страже качества, когда есть такое удобное средство, как merge. Стоит ли удивляться тому, что каждая новая версия Убунты, например, приносит с собой новые глюки, а старые, хорошо работавшие вещи, просто отваливаются.

Автор:  ilovb [ Пятница, 16 Август, 2013 10:12 ]
Заголовок сообщения:  Re: BlackBox Merge tool

Иван, это все теория, которая редко вяжется с практикой. Вам говорят, что на практике такое неизбежно возникает. Это обычная штатная ситуация.
Идеальных команд программистов не существует. Умеющих архитектурить исчезающе мало. Программист то талантливый встречается редко, а уж архитектор это вообще красная книга.

Автор:  Иван Кузьмицкий [ Пятница, 16 Август, 2013 10:25 ]
Заголовок сообщения:  Re: BlackBox Merge tool

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

Автор:  ilovb [ Пятница, 16 Август, 2013 10:32 ]
Заголовок сообщения:  Re: BlackBox Merge tool

Иван Кузьмицкий писал(а):
Борис, надо учитывать, что в данном конкретном случае мы имеем дело с нормальной модульной системой, к которой плохо применима ваша практика. Мои же слова опираются на мою собственную практику.

Во-первых, не только моя практика. Так работают практически все, имхо.
Во-вторых, почему мы должны плюнуть на мою практику и брать в расчет только вашу?

Автор:  ilovb [ Пятница, 16 Август, 2013 10:46 ]
Заголовок сообщения:  Re: BlackBox Merge tool

Опять же в ветке непонятно о чем речь идет. Автоматическое слияние делается не на конфликтных модулях.
Обычно это инструмент, который автоматически сливает модули, которые правились только в одной ветке. А для конфликтных модулей открывается удобный визуальный полуручной мердж, в котором программер перекидывает куски кода одной кнопкой. Перед мерджем, естественно, нужно просматривать диф. Это инструмент облегчающий ручную работу, а не делающий ее за программера.

Автор:  Евгений Темиргалеев [ Пятница, 16 Август, 2013 10:47 ]
Заголовок сообщения:  Re: BlackBox Merge tool

ilovb писал(а):
Иван Кузьмицкий писал(а):
Роман М. писал(а):
Автослияние - вполне здоровая ситуация для разработки на любом языке разработки.
Мне кажется, что это очень большой миф, который растёт на непонимании того, что же такое исходный текст программы с экономической точки зрения.

Полностью согласен с Романом. Вполне штатная ситуация.
1) Автоматическое слияние составных документов не возможно (viewtopic.php?p=81466#p81466). Только автоматизированное, и эту задачу, даже для частного случая, наскоком не решить.

2) Программирование --- "Научная и практическая деятельность по созданию программ." Автослияние исходников для программирования --- рукосуйство, возникающее от соответствующей организации рабочего процесса.

Какая там команда в git для метода поиска места привнесения глюка методом деления пополам? Для чего её ввели?

Автор:  Иван Кузьмицкий [ Пятница, 16 Август, 2013 10:49 ]
Заголовок сообщения:  Re: BlackBox Merge tool

ilovb писал(а):
Иван Кузьмицкий писал(а):
Борис, надо учитывать, что в данном конкретном случае мы имеем дело с нормальной модульной системой, к которой плохо применима ваша практика. Мои же слова опираются на мою собственную практику.

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

Обсуждаемая система построена на принципах, которые, как оказывается, мало кому понятны.

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

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

Автор:  Иван Кузьмицкий [ Пятница, 16 Август, 2013 10:52 ]
Заголовок сообщения:  Re: BlackBox Merge tool

ilovb писал(а):
Опять же в ветке непонятно о чем речь идет. Автоматическое слияние делается не на конфликтных модулях.
Обычно это инструмент, который автоматически сливает модули, которые правились только в одной ветке. А для конфликтных модулей открывается удобный визуальный полуручной мердж, в котором программер перекидывает куски кода одной кнопкой. Перед мерджем, естественно, нужно просматривать диф. Это инструмент облегчающий ручную работу, а не делающий ее за программера.
Мы тут обсуждаем автослияние.

И, кстати, не путайте оберон-модули с именованным ворохом процедур. За одно возникновение ситуации, когда требуется "перекидывать куски кода" туда-сюда, надо расстреливать.

Автор:  ilovb [ Пятница, 16 Август, 2013 10:58 ]
Заголовок сообщения:  Re: BlackBox Merge tool

facepalm

Диалога видимо опять не получится.

Автор:  ilovb [ Пятница, 16 Август, 2013 11:00 ]
Заголовок сообщения:  Re: BlackBox Merge tool

Евгений Темиргалеев писал(а):
1) Автоматическое слияние составных документов не возможно (viewtopic.php?p=81466#p81466). Только автоматизированное, и эту задачу, даже для частного случая, наскоком не решить.


Согласен. Лично я вообще за UTF-8 :)

Автор:  Valery Solovey [ Пятница, 16 Август, 2013 19:59 ]
Заголовок сообщения:  Re: BlackBox Merge tool

Иван Кузьмицкий писал(а):
За одно возникновение ситуации, когда требуется "перекидывать куски кода" туда-сюда, надо расстреливать.
Это не автослияние. И даже не близко к нему.

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

Правда, так svn работает с текстовыми файлами. Как обстоит дело с бинарниками, я уже подзабыл.

Автор:  Valery Solovey [ Пятница, 16 Август, 2013 20:03 ]
Заголовок сообщения:  Re: BlackBox Merge tool

Евгений Темиргалеев писал(а):
1) Автоматическое слияние составных документов не возможно
Автоматическое разрешение коллизий невозможно. Но все уважаемые инструменты никогда и не пытались выполнять его автоматом.

Страница 1 из 4 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/