OberonCore
https://forum.oberoncore.ru/

BlackBox Merge tool
https://forum.oberoncore.ru/viewtopic.php?f=127&t=4431
Страница 2 из 4

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

Роман М. писал(а):
Сегодня мы имеем широкий набор инструментов для отслеживания версий документов и грех не пользоваться их преимуществами.
Сегодня полно других языков и платформ, зачем Вам именно ББ?

P.S. Я не троллю, я серьёзно спрашиваю.

Автор:  Пётр Кушнир [ Пятница, 16 Август, 2013 13:37 ]
Заголовок сообщения:  Re: BlackBox Merge tool

Роман, ваша задача подразумевает замену интерфейса Stores.Reader/Stores.Writer с потокового на структурный, а на эту структурность уже натягиваются и xml (и остальные подобные форматы) и дифф и слияние. Правильно я понимаю?
UPD: насколько я понял, проблема состоит в том, что в xml минимальная единица это ветка (Node), то есть, для записи даже самой минимальной информации необходима целая ветка определённого типа. В бинарном формате, таком как .odc минимальная единица это байт. Поэтому не получится превратить xml в хранилище бинарного формата данных, как не получится интерфейс Stores ограничить структурными единицами.

В целом, конечно, ничего не мешает совершить поступательное развитие, и сначала обернуть бинарные данные odc с помощью xml-контейнера, затем на этот xml-контейнер надстроить базовый XmlStore с базовыми записывателями, и уже на основе этого продолжить развитие цепочки наследования XmlStore -> XmlView -> ContainerXmlView -> TextXmlView, к этому времени обеспечить механизмы работы всех звеньев цепочки, а старый бинарный Store и его наследников объявить устаревшими и в конце концов отправить на пенсию. Других сценариев я не вижу. Получится наш ответ ODF, хы-хы, все желающие могут ознакомиться с бегунками по структурам в подсистеме Odf, ничего сложного в общем-то.

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

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

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

Я имел в виду не только исходники каркаса. Перед тем кидаться такими утверждениями убедитесь что правильно поняли сообщение.

Автор:  Борис Рюмшин [ Пятница, 16 Август, 2013 18:41 ]
Заголовок сообщения:  Re: BlackBox Merge tool

Как мне кажется, любителям простого текста нужно раз и навсегда уяснить: формат хранения исходников в BlackBox - бинарный, внутренний. Это неотъемлемая, фундаментальная, особенность BlackBox и так должно оставаться. Если хочется по-другому, то это уже не BlackBox. Если хочется в нём, то только так и никак иначе.

А прикручивать конвертеры к git, чтобы было удобно работать с ним --- всегда пожалуйста.

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

Всему Оберон сообществу пора уяснить, что не они придумали Оберон и не им судить о том что правильно в Оберон-системах, а что нет. Тут у каждого своя имха. Причины по которым так было сделано в оригинальном Обероне вам описал Роман.

Хватит уже. Вы не носители тайных знаний.

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

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

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

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

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

Документацию конечно в odc оставить. Речь шла только об исходном коде.
Чтобы сливать документацию придётся свой структурный формат придумать типа xml, иначе это будет гемор а не слияние.

Фолды можно и без odc делать. А вьюшки управляющие кодом имхо зло.

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

А всё, в конечном счёте, из-за не столь нужной фичи автослияния ))

Потому что чисто для отслеживания истории изменений легко сделать тулзу на базе непосредственно ББ.

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

Каким образом? И зачем? За вас уже все придумали и обкатали на практике годами. Вы ведь в итоге тот же гит и изобретете :-)

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

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

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

У меня тоже такое желание иногда возникает, но я сомневаюсь, что у меня хватит мозгов переплюнуть такую систему как гит или меркуриал.

Почитайте про историю систем контроля версий. Очень вероятно что вам придётся её повторить :-)

Автор:  Роман М. [ Пятница, 16 Август, 2013 21:41 ]
Заголовок сообщения:  Re: BlackBox Merge tool

Илья Ермаков писал(а):
А всё, в конечном счёте, из-за не столь нужной фичи автослияния ))

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

ilovb писал(а):
Каким образом? И зачем? За вас уже все придумали и обкатали на практике годами. Вы ведь в итоге тот же гит и изобретете :-)
Не, не так. Речь идёт не о системе контроля версий в самом ББ, а только инстументе для сравнения изменений. То есть аналоге KDiff3, только на ББ.

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

Роман М. писал(а):
Речь идёт не о системе контроля версий в самом ББ, а только инстументе для сравнения изменений. То есть аналоге KDiff3, только на ББ.
Нет-нет, такого нету. Напишите :)

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

Роман М. писал(а):
То есть аналоге KDiff3, только на ББ.

И для ББ...
Могу указать направление откуда скомуниздить наработки https://code.google.com/p/google-diff-match-patch/

Еще могу показать как выглядит мердж в 1С, если интересно. Там тоже сложные форматы. В последней версии одинэснеги по просьбе трудящихся сделали выгрузку\загрузку всего прикладного решения в xml. Т.е. сейчас там даже формы можно мерджить с помощью всяких гитов с меркуриалами.

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

Пётр Кушнир писал(а):
Роман, ваша задача подразумевает замену интерфейса Stores.Reader/Stores.Writer с потокового на структурный, а на эту структурность уже натягиваются и xml (и остальные подобные форматы) и дифф и слияние. Правильно я понимаю?
UPD: насколько я понял, проблема состоит в том, что в xml минимальная единица это ветка (Node), то есть, для записи даже самой минимальной информации необходима целая ветка определённого типа. В бинарном формате, таком как .odc минимальная единица это байт. Поэтому не получится превратить xml в хранилище бинарного формата данных, как не получится интерфейс Stores ограничить структурными единицами.

В целом, конечно, ничего не мешает совершить поступательное развитие, и сначала обернуть бинарные данные odc с помощью xml-контейнера, затем на этот xml-контейнер надстроить базовый XmlStore с базовыми записывателями, и уже на основе этого продолжить развитие цепочки наследования XmlStore -> XmlView -> ContainerXmlView -> TextXmlView, к этому времени обеспечить механизмы работы всех звеньев цепочки, а старый бинарный Store и его наследников объявить устаревшими и в конце концов отправить на пенсию. Других сценариев я не вижу. Получится наш ответ ODF, хы-хы, все желающие могут ознакомиться с бегунками по структурам в подсистеме Odf, ничего сложного в общем-то.

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

Если исходить из того, что мы не имеем встроенных в ББ средств сравнения составных документов, то примитивным решением является сериализация единиц View в закодированную последовательность (допустим, в StdCoder). Таким образом, для этого в ББ потребуется обеспечить два механизма: сериализацию и десериализацию. Так станет возможным временно вставить закодированный кусок в ББ для его последующей раскодировки и отображения (допустим, формы диалога) и затем вернуться во внешний (примитивный, на тексте) инструмент сравнения, чтобы произвести слияние выбранных частей.

Код:
<body>
   Text Text<para/>Text
   <view type="OleClient.View">
      <data>
         DLKHFLNLKCHcdscsad875875...
      </data>
      <view type="HostPictures.StdView">
         <data>
            BVKJSDhF99797...
         </data>
      </view>
   </view>
   Text Text Text
   <view type="TextViews.View">
      <data>
         KCJGSKJGsdfsdsdd6s...
      </data>
   </view>
</body>

Как-то так...

Автор:  Борис Рюмшин [ Пятница, 16 Август, 2013 23:41 ]
Заголовок сообщения:  Re: BlackBox Merge tool

ilovb писал(а):
Всему Оберон сообществу пора уяснить, что не они придумали Оберон и не им судить о том что правильно в Оберон-системах, а что нет. Тут у каждого своя имха. Причины по которым так было сделано в оригинальном Обероне вам описал Роман.

Хватит уже. Вы не носители тайных знаний.

Борис, не надо передёргивать. Я высказался про вполне конкретное решение во вполне конкретном продукте, а не про все оберон-системы и не за всё сообщество.

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

Борис Рюмшин писал(а):
Борис, не надо передёргивать. Я высказался про вполне конкретное решение во вполне конкретном продукте, а не про все оберон-системы и не за всё сообщество.

Вы перечитайте свое сообщение. Не исключаю что я что-то не так понял, но там вроде утверждается:
Цитата:
формат хранения исходников в BlackBox - бинарный, внутренний. Это неотъемлемая, фундаментальная, особенность BlackBox и так должно оставаться. Если хочется по-другому, то это уже не BlackBox. Если хочется в нём, то только так и никак иначе.


Подача утверждения такая, будто это истина в последней инстанции. И при этом вам кажется, что нам это пора уяснить.

С какого перепуга нам "уяснять" ваших тараканов?

Запомните раз и на всегда: истиной не владеет никто. Есть два мнения и есть компромисс.
Одно мнение без компромиссов - это фашизм.

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

Цитата:
Способ, как творил Создатель,
Что считал Он боле кстати —
Знать не может председатель
Комитета о печати.

Автор:  Борис Рюмшин [ Суббота, 17 Август, 2013 00:00 ]
Заголовок сообщения:  Re: BlackBox Merge tool

Борис. Повторяю ещё раз: составные документы неотъемлемая часть фреймворка и основа BlackBox. Вы с эти не согласны? Или ЭТО НЕ ТАК?! Это моя фантазия?!

Это не касается: Компонентного Паскаля, консольного компилятора (и, заодно, GPCP), представления исходников в utf8, в XML, в чём ещё угодно. Хотите - делайте всё в плоском тексте. НИКТО НЕ МЕШАЕТ ТАК ДЕЛАТЬ. Но переделывать для этого BlackBox Component Builder не надо. Его смысл в том, что он есть сейчас.

Нужен другая IDE на КП и прочее, с "современными" средствами разработки? Да ради Бога! Если не хотите писать сами, вкрутите GPCP в Eclipse и наслаждайтесь.

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

Представьте себе, ДА! Это ваша фантазия.
Также, как моя фантазия заключается в том, что ББ не более чем одна из версий S3. Было удобно раньше все в одном формате, но те времена прошли. Документа за печатью, датой и подписью магистра, о том где начинаются и заканчиваются границы истеннага ББ я не видел.
Права у меня на фантазию ни чем не хуже ваших.

ps И обратите внимание, что избавляться от составных документов вообще никто и не собирался. Речь идет только о модулях.

Автор:  Борис Рюмшин [ Суббота, 17 Август, 2013 00:14 ]
Заголовок сообщения:  Re: BlackBox Merge tool

Эти документы - документация продукта. На данный момент она имеет версию 1.6rc6.

Обсуждение не конструктивно и плодит эмоции. Поэтому каждый пусть остаётся при своём мнении.

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