سؤال

هل هناك طريقة بسيطة لإعداد ملفات .gitignore مختلفة لأجهزة التحكم عن بعد المختلفة؟ لدي مستودع أفعى إلى كل من Heroku و Github. أحتاج إلى قاعدة بيانات. لذلك أنا بحاجة إلى ملف .gitignore مختلف لكل من أجهزة التحكم عن بعد.

حاولت وجود فرعين منفصلين ، أحدهما يتجاهل database.yml ، وهو واحد لا. تكمن المشكلة في أنه عندما أتغلب على فرع Heroku وأعود إلى فرع Github الخاص بي ، يتم اختفاء ملف Database.yml بالكامل.

أي نصائح؟

هل كانت مفيدة؟

المحلول

لا أعرف أي شيء عن متطلبات Heroku - نأمل أن تكون العدالة صحيحة ويمكنك ببساطة تجنب المشكلة. إذا لم تتمكن من ذلك ، أو إذا وجد شخص آخر هذا من لا يستطيع ...

إذا كنت تريد أن يكون جهاز التحكم عن بعد المرايا (لهما نفس الالتزامات) ، فيجب أن يكون لهما نفس الملفات في تلك الالتزامات. لذلك ، لديك خياران: لديك file-for-repo-B في جميع المستودعات ، حتى لو لم تكن بحاجة إليها ، أو استخدموا سير عمل فوضوي قليلاً مع فرعين: master و for-repo-B. الفرق الوحيد بين الفرعين سيكون اللمس file-for-repo-B; ؛ الفرع for-repo-B سوف تندمج دائما من master (ولكن أبدا العكس!). الآن لديك فرع مختلف تم فحصه في الريبو B ، وكل شيء جيد.

نصائح أخرى

لا تضع معلومات قاعدة البيانات في Database.yml. بدلاً من ذلك ، استخدم متغيرات بيئة Heroku.

يجب عليك إصدار A:

  • database.yml مع المتغيرات فقط في ذلك ، و
  • نصي قادر على استبدال هذه المتغيرات بالقيم الصحيحة اعتمادًا على الخادم البعيد حيث database.yml تم نشره.

ثم تستخدم البرنامج النصي كملف سائق مرشح السمة تلطيخ:

smudge content filter

في كل مرة ستتحقق (وإنشاء شجرة عاملة) على خادم بعيد ، يتم تنفيذ البرنامج النصي وسيغير المتغيرات وفقًا لذلك ، مما يمنحك مخصصًا database.yml ملف.
إذا كان أحد جهاز التحكم عن بُعد لا يحتاج إلى ذلك database.yml ملف ، لا يزال من الممكن أن يكون هناك ، ولكن يتم إفراغه بواسطة البرنامج النصي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top