أي ملفات Eclipse تنتمي إلى التحكم في الإصدار؟



version-control svn (6)

أعمل حاليًا على مشروع حيث لدينا ملفات .project و .cproject تحت التحكم في المصدر. كانت الفكرة هي أن الإعدادات المتعلقة بمسارات المكتبة وتوجيهات الارتباط سوف تنتشر عبر الفريق.

وعمليًا ، لم يفلح ذلك في العمل بشكل جيد ، فعادة ما تعود إلى حالة متناقضة تحتاج إلى أن تكون غير منسقة خارج الكسوف ، ثم يتم إغلاق المشروع وإعادة فتحه حتى تدخل التغييرات حيز التنفيذ.

أنا لا أوصي الاحتفاظ بها في التحكم بالمصادر.

https://ffff65535.com

أي ملفات Eclipse مناسبة لوضعها تحت التحكم في المصدر ، وبصرف النظر عن المصادر بشكل واضح؟

في مشروعي ، على وجه التحديد ، أنا أتساءل:

.البيانات الوصفية/*
مشروع دير / .project
مشروع دير / .classpath
مشروع دير / .settings / *

إذا كان هناك أي من هذه الأمور التي تعتمد عليها ، يرجى توضيح الإرشادات الخاصة بك.


أنا لا أقول أي منهم. على الأرجح أنها تحتوي على معلومات ذات صلة فقط بمحطة عملك (أفكر في مسارات للمكتبات وجميع). أيضا ماذا لو كان شخص ما في فريقك لا يستخدم Eclipse؟


لا يجب إدارة البيانات التعريفية في التحكم بالمصادر. أنها تحتوي في الغالب على بيانات ذات صلة بمساحة العمل الخاصة بك .

الاستثناء الوحيد هو ملفات XML .launch (تعريف المشغل).

وجدت في

[eclipse-workspace]\.metadata\.plugins\org.eclipse.debug.core\.launches

ويجب نسخها إلى دليل المشروع: عند تحديث مشروعك ، سيتم عرض تلك التهيئات في مربع الحوار "تشغيل التكوين".

وبهذه الطريقة ، يمكن أيضًا إدارة ملفات المعلمات الإطلاق في SCM.

(تحذير: قم بإلغاء تحديد الخيار "حذف التكوينات عندما يتم حذف المورد المقترن" في لوحة تفضيلات تشغيل Run / Launching / Launch : من الشائع أن يتم حذف مشروع بنجاح من أجل استيراده مرة أخرى - لفرض إعادة تهيئة لـ لكن هذا الخيار ، إذا تم تحديده ، سيزيل معلمات الإطلاق المفصلة!)

project-dir/.project
project-dir/.classpath
project-dir/.settings/* 

يجب أن تكون في SCM (خاصة .project و. .classpath وفقًا لوثائق Eclipse ).

الهدف هو أن أي شخص يمكنه الخروج / تحديث مساحة عمل SCM الخاصة به واستيراد مشروع Eclipse إلى مساحة عمل Eclipse.

لذلك ، تريد استخدام المسارات النسبية فقط في .classpath ، باستخدام الموارد المرتبطة .

ملاحظة: من الأفضل إذا كان project-dir يشير إلى دليل مشروع "خارجي" ، وليس دليلاً تم إنشاؤه أسفل مساحة عمل الكسوف. بهذه الطريقة ، يتم فصل المفهومين (مساحة عمل الكسوف مقابل مساحة عمل SCM) بشكل واضح.

كما يشير إليه ipsquiggle في التعليق ، وكما أشرت إليه في إجابة قديمة ، يمكنك بالفعل حفظ تهيئة الإطلاق كملف مشترك مباشرة في دليل المشروع الخاص بك. يمكن بعد ذلك إعداد جميع إصدارات التشغيل مثل ملفات المشاريع الأخرى.

(من مشاركة المدونة نصيحة: إنشاء ومشاركة تكوينات التشغيل من KD)



ملف .classpath هو مرشح جيد للتحقيق في scm حيث أن إعداده يدويًا يمكن أن يكون الكثير من العمل وسيكون من الصعب على المشروعات الجديدة التي تدخل المشروع. صحيح أنه يمكن توليده من مصادر أخرى ، وفي هذه الحالة ستقوم بفحص المصدر الآخر.

أما بالنسبة. إعدادات ، ذلك يعتمد على الإعدادات. هذه منطقة رمادية ، ولكن بعض الإعدادات تكاد تكون إلزامية ومن الملائم أن تكون قادرًا على التحقق من مشروع ما ، واستيراده في Eclipse وإعداد كل شيء وجيد.

في مشروعنا ، فإننا نحتفظ بنسخة من مجلد .settings يسمى CVS.settings ولدينا مهمة نمل لنسخها إلى إعدادات. عندما تحصل على المشروع من CVS ، يمكنك استدعاء مهمة ant 'eclipsify' لنسخ الإعدادات الافتراضية إلى مجلد الإعدادات الجديدة. عندما تقوم بتهيئة الإعدادات التي يحتاجها كل شخص يقوم بالتطوير في المشروع ، فقم بدمجها مرة أخرى في مجلد CVS.settings وارتكب ذلك إلى CVS. بهذه الطريقة تصبح إعدادات الحفظ في SCM عملية واعية. يتطلب الأمر من devs لدمج هذه الإعدادات مرة أخرى في مجلدات .ettettings من وقت لآخر عندما يتم التحقق من التغييرات الكبيرة. لكنه نظام بسيط يعمل بشكل جيد بشكل مدهش.


يعتبر:

.classpath
.project
.launch

يجب أن تكون هذه في التحكم في الإصدار طالما أنك تلتزم باستخدام المسارات المتعلقة بالمشروع. يسمح ذلك للمطورين الآخرين بمراجعة المشروع والبدء في العمل على الفور دون الحاجة إلى المرور بكل آلام الإعداد التي مر بها المطورون الآخرون أيضًا.

قد يميل إلى تضمين .metadata في التحكم في الإصدار أيضًا ، لذا يمكن لمطوّري Eclipse الاطلاع على مساحة عمل كاملة وتهيئتها مسبقًا مع جميع المشاريع المناسبة ، ولكنها تتضمن الكثير من المعلومات الخاصة بالمستخدمين في أي وقت يعمل فيها أي شخص ، التغيير ، لذلك أنصح بعدم تضمين .metadata. من السهل إنشاء مساحة عمل محلية فقط من خلال استيراد جميع مشاريع Eclipse الموجودة.





svn