Керування кількома версіями веб-програми за допомогою Git


12

У нас є сімейство додатків, усі мають однакову базу. До цього часу я розробляв цю базу, і процес роботи Git був дуже простим:

  • Розвиток здійснюється в developгалузі
  • Нові можливості розробляються у name-of-the-featureгалузі
  • Релізи проводяться у release-**філії

Досі код був однаковим для кожного додатку родини. Скажімо, база, якою вони діляться, зараз повна, і відтепер код буде різним для кожного додатка.

Я не впевнений, як мені поводитися з git і цим декількома додатками, які мають однакову базу.

  • Чи повинен кожен з них мати власний проект git ?
  • Чи повинні вони бути в одному проекті, але кожен у своїй галузі ?

Справа в тому, що якщо я розміщую їх на окремих проектах, кожна модифікація, зроблена в базі додатка, мені доведеться повторюватись у кожному з додатків. Я не дуже знайомий з git , але якщо я зберігатиму кожен проект у гілці , чи вдасться об'єднати базову модифікацію з кожним додатком?

Хтось переживав подібну ситуацію? Я не впевнений, як діяти далі.

Дякую!

ВИДАЛЕНО Коли я сказав версію, я не мав на увазі, як номери версій. Насправді це різні додатки, які мають однакову базу.

Відповіді:


7

Залиште базовий додаток у власному сховищі та створіть нові проекти, які залежать від баночки, яку ви збираєте з цього сховища.

Гілки Git не для кількох додатків. Git вважає за краще використовувати одне сховище для кожного проекту чи пов’язаної з ним сім'ї проектів. Гілки існують так, що ви можете розвивати функції ізольовано, а не ви можете створювати абсолютно новий проект, не виходячи з сховища.

Ви не хочете мати кілька додатків, які діляться кодом - це кошмар технічного обслуговування. Якщо ви пропонуєте розробити кожну галузь у своєму центральному репо, у вас буде багато об’єднань, щоб розповсюдити зміни до кожної програми. Набагато простіше залежати від однієї окремої бібліотеки та використовувати щось на зразок Apache Maven для залучення залежностей проекту.


Значна частина коду, яким поділяється, - це GWT-код (перегляди, послуги тощо). Чи можна витягнути його в бібліотеку банку? Або просто можна ввести Java-код на стороні сервера?
João Daniel

Елементи подання можна витягти, але, можливо, не в банку. Наприклад, JavaScript може бути вилучений з кожної сторінки в один файл, який потім може бути включений до кожного проекту. Загальний код JSP повинен бути вилучений у теги JSP. Можливо, вам не потрібно перетягувати цілі сторінки, але я не знаю вашого проекту, тому я можу помилитися.
Майкл К

що ви думаєте про такий підхід: stackoverflow.com/a/2540471/2615737 ? це здається розумним ...
Франциско Корралес Моралес

Я не думаю, що це той самий випадок використання. Ця відповідь стосується двох версій одного і того ж додатка, які дуже незначно відрізняються, в той час як це питання стосується того, що я вважаю цілком різними програмами. Я б все-таки вважав за краще взагалі не мати відділення навіть у "трохи іншому" випадку; однак, важко виділити функціональність для розділення бібліотек в Android, якщо є якісь файли xmls view. Схоже, цей відповідач не вважав, що варто було б турбуватися для своєї ситуації.
Майкл К

6

Якщо програми не змінять саму базу, подумайте про залишення бази у власному сховищі. Потім створіть нове сховище для кожного окремого додатка та додайте базу як підмодуль git .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.