Я в общем-то не участвую в развитии ocStore: не хватает времени на свои проекты, поэтому не хочется брать на себя ещё что-то. А в целом да - насколько понимаю, берется ocStore в одной папке, новый релиз Opencart в другой, и вручную все изменения просматриваются и сливаются вместе.У меня сейчас проекты - это локальные ветки, отпочкованные от основного репозитория Опенкарта. Всё, что приползает туда, я легко получаю к себе. Отдельно храню лишь некоторые доработки, которые надо отдавать другим (в виде diff-файла и папки с измененными файлами). В целом diff-ы не являются универсальным способом долго хранить изменения: если код к тому времени изменится, автомат не сможет справиться с автоматическим применением этого патча и всё придётся разбирать вручную, разрешая конфликты. Имеющийся дифф можно легко и просто применить к определенной версии проекта (когда точно известно, в каком состоянии исходные файлы и конфликтов не будет). А если пройдет какое-то время - эти места и эти файлы могут уже измениться, и patch обломится.
Форк - это отдельная ветка проекта, которая может развиваться параллельно. На каком-то этапе копия ответвляется и в ней ведется работа. Но при этом сохраняется связь с "родителем" и вносимыми изменениями можно обмениваться: в копию интегрировать внесенные в основной ветке изменения (если развитие фичи в отдельной ветке затянулось по времени или же ветка изначально создавалась как параллельная альтернатива) или наоборот, включить обратно все новые изменения из ветки (форка) в основной родительский проект. На гитхабе это очень просто и удобно происходит: в Git работа с ветками, в отличие от SVN - базовая, простая, мощная и очень удобная процедура. И форки может делать кто угодно - для этого необязательно просить разрешения авторов и ждать, когда же они рассмотрят и одобрят твою кандидатуру. Делается форк, в нем ведется работа, отдельные ветки своего проекта можно "вернуть" пулл-реквестом, предложив включить в основной проект. То есть нет никакой проблемы активно подключиться к процессу разработки. Не понравится авторам - форк будет развиваться сам по себе, параллельно, понравится - изменения будут включаться в основной проект, понравится настолько, что новому разработчику станут доверять - его просто подключат в список тех, кому разрешены коммиты в основной проект, и он может там работать. То есть на всех этапах есть связь с "родительскими" проектами и обмениваться изменениями очень просто.Без всякой ручной работы в виде диффов и патчей и никак не связанными проектами, которые сложно синхронизировать.http://ru.wikipedia.org/wiki/Форк
http://en.wikipedia....are_development)
http://help.github.com/fork-a-repo/
Как это работает в идеале, можно посмотреть на примере CodeIgniter: github EllisLab/CodeIgniter - contributing.md
Почитайте там секцию "Branching" и "How-to Guide", надеюсь, станет понятнее.
Они без проблем принимают какие-то правки в виде патчей, но по большей части мелочь какую-нибудь. С больее обширными изменениями возникают проблемы. Во-первых, Даниэль считает себя крутым разработчиком, и часто на разумные советы более опытных программеров такую бочку катит и обзывается, что люди натурально в шоке от такого поведения и перестают вообще общаться с ним. Потом он, правда, иногда извиняется, но в общем все об этом в курсе. Понять его в какой-то мере можно, он болеет за своё детище. В силу технической ограниченности им сложно взять какое-то большое изменение (типа того же SeoPro), ответвить, протестить с ним, убедиться что всё ок и включить в основную ветку. Они просто не умеют - Qphoria (автор vQmod и второй человек, кто имеет право коммитить в Опенкарт репозиторий), только недавно начал экспериментировать с ветками в SVN. В общем, они технически и психологически не готовы к модели совместной разработки. Там немного голову перестраивать надо, концепции разработки и взаимодействия немного меняются. Они же более по-старинке работают. И поэтому им сложно впускать в свой внутренний круг других разработчиков, поскольку при этой модели (одна ветка и в ней всё меняется) усложняется процесс контроля за изменениями, нет никаких автоматизированных юнит-тестов, и т.д. и т.п. Они не готовы легко приветствовать новых разработчиков и координировать их деятельность. Даниэль активно кодит, считает, что делает это очень хорошо и, разумеется, разбираться с чужими правками -- ему не до этого. Поэтому он злится, когда его критикуют, ревностно относится к изменениям и т.п. Не знаю, насколько это плохо или хорошо - опенкарт живет и развивается силами одного человека и какой-то помощи сообщества, так что пока работает - пусть работает как умеет. Это его путь и его продукт. Многие теоретики и более опытные разработчики и этого не могут. Поэтому даже при всём при том, за что его можно люто ненавидеть, я его усилия уважаю, хотя и приятным общение и попытки участия в развитии трудно назвать.Для примера можно посмотреть, сколько в приведенном примере (репо CodeIgniter на гитхабе) форков и разработчиков участвуют в развитии и исправлении этого движка. Если Вы читали ругань Даниэля в багтрекере и на форумах - ему до такой открытой совместной разработки ещё очень долго расти. CodeIgniter не так давно открыли и перенесли разаработку на гитхаб - 1-2 года, но результат заметен и после этого решения, принятого EllisLab, его развитие существенно ускорилось.