Рекомендации по переносу пользовательских модов кода в новый основной выпуск программного обеспечения с открытым исходным кодом? - PullRequest
0 голосов
/ 24 мая 2011

У меня (грязная) производственная установка форума Simple Machines Forum (SMF 1.1.13). Это была чистая установка, однажды ... около пяти лет, двадцать обновлений и 40 модов назад. Не говоря уже о пользовательском коде, который был исправлен непосредственно в базе кода. Это началось как забавный побочный проект, и на начальном этапе не было никаких методов управления кодом.

Теперь SMF 2 (становится ближе) начинает работать, и я хочу обновить его. Но не оставляя пользовательских функций позади.

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

Я пытаюсь найти лучший способ перенести пользовательские функции в новую ветвь кода.

  • В некоторых случаях пользовательская функциональность 1.1.x уже существует в 2.0. У меня нет работы для меня!
  • В некоторых случаях будут версии пакетов для версий 2.0, и я могу просто установить их непосредственно в чистой сборке SMF 2. Да, минимальная работа для меня!
  • В некоторых случаях порт кода будет довольно простым между двумя версиями (например, несколько небольших изменений в запросах или построении глобальной переменной). (Я перенес несколько функций / модов назад с 2.0 на 1.1.x, так что я начинаю знакомиться с ним.)
  • В некоторых случаях мне просто нужно будет перестроить функции в основном с нуля.

Этими двумя вариантами будет сложно управлять.

Есть предложения о том, как перенести большое количество изменений из одной ветви в другую? Когда это не мой собственный внутренний код. Вот мой первоначальный план:

  • Разница между чистой версией 1.1.x и моим "грязным" рабочим кодом
  • Сопоставить каждую строку diff с функцией («Это обновление кода - это особенность тегов, придется переносить их построчно, а в этой галерее есть галерея, я, вероятно, могу установить обновленный мод».) Это было бы SOMUCHEASIER, если бы существовал инструмент сравнения, который генерировал консолидированный отчет, вместо того, чтобы просматривать множество файлов по одному. Поиски в Google и SO не нашли такого инструмента ... Есть ли один?
  • Установить чистую ветку 2.0
  • Установить доступные обновленные моды
  • Сверните мои рукава и просмотрите функцию различий по функциям (вот почему мне нужен сводный отчет о разностях. Было бы адски делать страницу за страницей.) И встроить их обратно.

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

В противном случае? Боюсь, что мои варианты - отказаться от пользовательских функций (на самом деле неосуществимо) или остаться на старой ветке. Оба сосут. Помогите!

tl; dr : укажите мне на инструмент сравнения, который будет делать консолидированные отчеты о файлах для файлов по всем каталогам. И / или помогите найти более простой способ переноса моего пользовательского кода.

1 Ответ

1 голос
/ 24 мая 2011

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

Отойдите от размышлений об изменениях на уровне кода и подумайте об особенностях уровня приложения и поведенческих изменениях.Какие функции внесены ваши изменения?Каким образом ваше приложение теперь ведет себя по-разному из-за ваших изменений?

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

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

  • Установить версию vanilla 2.0
  • Применить все соответствующие моды
  • Применить к делуStyling
  • Используйте новую систему, обратите внимание на различия в поведении и разработайте из этого набор необходимых функций

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

  • Применение функций, собранных из самых последних отзывов (в идеале через обратимые моды)
  • Обратите внимание на различия в поведении при разработке из этого набора необходимых функций
  • Повтор
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...