У мене є сховище Git, в якому весь мій код знаходиться у головній гілці, і я раніше просто ігнорував усі файли Drupal, так що я зберігав суворе розділення між кодом, який я написав (або змінив або міг змінити), і кодом що може бути породжене Друшем чи чим завгодно.
Це здавалося гарною стратегією, поки мені не довелося модернізувати Drupal. Я зрозумів, що хочу мати змогу відкотитись, якщо справи пішли погано, і який кращий інструмент використовувати, ніж Git для цього. Я думав, що це буде ідеальною ситуацією для гілки функцій, тому я створив drupal-7.14
гілку, дав їй своє .gitignore
ігнорувати всі мої файли коду та налаштувань і звертати увагу лише на файли, що входять до інсталяції Drupal, які я б не хотів ' не торкатися. Я здійснив оновлення вручну (скачати, скасувати, untar, скопіювати), сортуючи прикордонні випадки, такі як robots.txt та .htaccess, і замінив .gitignore Drupal на мій власний. Я виправив деякі налаштування, які працювали з 7.14, але не з 7.15, щоб відновити помилку 500, і тоді все здавалося ідеальним. Я перейменував гілку на drupal-7.15
та збирався йти щасливим шляхом.
Поки я не зрозумів, що я зробив ненавмисно: файли, які раніше не відслідковувались моїм головним відділенням, але залишалися в робочому каталозі, тепер видалялися з робочого каталогу, коли я перевіряв майстер, оскільки вони вже не були відхиленими файлами! D'oh!
Якщо я об'єднаю drupal-7.15
гілку з master, я втрачу розділення коду.
Можливо, є якийсь спосіб перетворити гілку на підмодуль. Якщо припустити, що це можливо, це може бути найкращою стратегією. До того, як я це зробив, я знав, що підмодулі - це «правильне» рішення, але оскільки я не усвідомлював побічний ефект від використання гілок для раніше не відстежуваних файлів, вирішив вирізати кути і піти цим маршрутом. (Крім того, всі підходи, які я бачив до використання підмодулів з Drupal, припускають, що ви починаєте новий проект, і Drupal буде головним відділенням. Мені небажано робити чийсь код основним відділенням, і я вже мав репо з головним відділенням. Це виглядало так, що це було б зайво складним, просто зробити оновлення.)
Можливо, є якесь інше рішення, про яке я не думав.
Як мені найкраще оговтатися від цього за допомогою найменших можливих недоліків?
ОНОВЛЕННЯ : Цей процес розробляється (в VM Linux на моєму ноутбуці), і він ще не перейшов до виробництва. До моменту, коли ми переходимо до виробництва, я планую все, що буде загорнуто у функціональні модулі, але це ще не на місці.
ОНОВЛЕННЯ 2 : Підмодулі можуть не працювати. За словами Pro Git , "Підмодулі дозволяють зберігати сховище Git як підкаталог іншого сховища Git". Drupal не забезпечує такого гарного розлуки. Замість того, щоб увесь код Drupal знаходився у підкаталозі, відносини більш-менш перевернуті, але все ще немає чистого розмежування, оскільки ви можете редагувати свої .htaccess і robots.txt, тому ваш код та repo Drupal змішуються разом. Я шукаю вирішення цієї проблеми .