إدارة المكونات الشائعة مع CVS الأحفورية
-
02-10-2019 - |
سؤال
أنا من المبتدئين الأحفوريين (وتكوين CVS) في محاولة لإنشاء وإدارة مجموعة من مستودعات الحفريات الموزعة لمشروع Delphi.
لدي شجرة الدليل التالية على آلة التطوير الخاصة بي:
Projects
Some Project
Delphi Components
LookupListView
Some Client
Some Project For Client
Some Other Project For Client
Source Code
Project Resources
Project Database
أقوم بإعداد عنصر تحكم الإصدار الأحفوري من أجل الإصدار ومشاركة المشاريع بعض العميل بعض المشروع الآخر للرمز المصدر العميل ، والذي يحتوي على مصدر Delphi 2010 لمشروع قاعدة البيانات.
يستخدم هذا المشروع مكونات المشاريع delphi lookuplistView وهو مكون Delphi. أحتاج إلى إدراج هذا الرمز في نظام الإصدار لمشروعي. من الناحية النظرية ، سوف أحتاج إلى إدراجها في مستودعات الأحفوري الأخرى في المستقبل أيضًا.
إذا قمت بإنشاء مستودع الحفريات الخاص بي في الكود المصدري أو أي مشروع آخر لمستوى العميل ، فلا يمكنني إضافة أي رمز أعلى من هذا المستوى إلى مستودعي. ما هي الطريقة الصحيحة للتعامل مع هذا؟ الحلان اللذان يحدثان لي
1) إنشاء مستودع منفصل لـ LookuplistView والتأكد من أن كل من يستخدم مستودعًا لمشروع يشير إلى أنه "يعرف" أنه يجب عليهم أيضًا الحصول على الإصدار الحالي من هذا المشروع أيضًا. يبدو أن هذا يهزم الغرض من القدرة على الحصول على إصدار كامل من المشروع مع الخروج واحد. يتم تكبير المشكلة لأن هناك تبعيات مكونة شائعة أخرى في هذا المشروع.
2) إنشاء مستودع الحفريات الخاص بي في دليل المشاريع ، حتى أتمكن من التحقق من الملفات من مختلف المجلدات الفرعية. يبدو لي أن هذا يتضمن مجموعة كبيرة من الممرات الإضافية عند القيام بإضافة ، وأيضًا لفرض بنية الدليل الخاصة بي (بعض العميل مشروع آخر للمصدر العميل) على المستخدمين الآخرين للمستودع-في هذه الحالة ، العميل الفعلي.
أي اقتراحات موضع تقدير.
المحلول
أستخدم git ، ولكن يمكن تطبيق نهائي في وضعك.
لدي مستودع واحد لجميع مجلد المكونات. هذا يمنحني القدرة على الحصول عليها جميعًا مع عدد قليل من أوامر وحدة التحكم (في حالة إعادة تثبيت نظام التشغيل الخاص بي أو الذهاب إلى جهاز كمبيوتر آخر وما إلى ذلك).
أيضا لدي مستودع واحد لكل من مشاريعي. إذا كان بعض المشروع يستخدم عناصر تحكم الطرف الثالث ، فأنا أقوم بإنشاء مجلد فرعي "مكونات" وأقوم بروابط رمزية (تقاطعات) من كل مكونات مجموعة.
يحتوي هذا النهج على بعض العيوب (عندما "تعود" في تاريخ بعض المشاريع ، يمكن تعديل المكونات أيضًا. وإذا كانت العديد من المشاريع تستخدم نفس المكونات ، فقد يتسبب ذلك في بعض المشاكل). لكن لم يكن لدي أي مشاكل بعد :)