محفوظات الملف: في المصدر أو ترك SCM التعامل معها؟

StackOverflow https://stackoverflow.com/questions/929824

  •  06-09-2019
  •  | 
  •  

سؤال

أنا أتعلم mercurial كبرمجي SOLO SCM. مع برنامج الإدارة الأخرى، يمكنك وضع تعليقات التغيير في رأس الملف من خلال العلامات. مع HG عليك التعليق على مجموعة التغيير، وهذا لا يدخل في المصدر. أنا أكثر اعتاد السيطرة المركزية مثل VSS.

لماذا يجب أن أضع محفوظات الملف في رأس الملف المصدر؟ هل يجب أن أترك mercurial إدارة التاريخ بتعليقات التغييرات الخاصة بي؟

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

المحلول

دع نظام التحكم المصدر يتعامل معها.

إذا وضعت تفاصيل التغيير في الرأس، فسوف تصبح قريبا غير عملي وتغلب على الكود الفعلي.

بالإضافة إلى ذلك إذا كان لدى SCM مفهوم التغيير (حيث يتم تجميع العديد من الملفات في تغيير واحد)، فستتمكن من كتابة التعليق بحيث ينطبق على التغيير بأكمله وليس فقط التعديلات في ملف واحد (إذا كان ذلك من المنطقي)، مما يتيح لك صورة أوضح لماذا كان التحرير مطلوبا.

نصائح أخرى

نعم؛ دع نظام التحكم المصدر يتعامل مع تعليقات التغييرات الخاصة بك. الأساس المنطقي لهذا هو أنه من المعنى أنه أكثر بكثير عند عرض سجل التغيير لاحقا، في محاولة للعمل ما يحدث بين نسختين من ملف - يمكن لنظام التحكم المصدر تقديم تعليق التغيير لمحاولة التنوير وبعد

لا يوجد أي سبب للحفاظ على سجل الملف يدويا عندما يكون برنامج SCM أكثر ملاءمة لحل هذه المشكلة. في كثير من الأحيان أرى تاريخ ملف مكتمل جزئيا في المصدر، والذي يؤلمني بالفعل، لأن الناس يفترضون بشكل غير صحيح أنه دقيق.

الفرق ليس ما إذا كان VCS مركزي أو موزز، فهو أكثر ما يتم تغييره.

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

إذا كنت بحاجة إلى تحديد جميع التغييرات في تغيير معين، فيمكنني فرقتها بين الإصدارين من المشروع.

أكبر فرق (واستفادة) رأيت عند التحول بعيدا عن SourceSafe كان التبديل من الملفات بناء على ارتكاب المشاريع. بمجرد أن تعتاد على ذلك، توقفت عن إضافة تعليقات نوع التغيير إلى جميع ملفاتي.

(كأحد جانبي، لقد وجدت أن تعليقاتي العملية الخاصة بي أصبحت أفضل)

أنا لست مؤيدا كبيرا من القمامة من التعليمات البرمجية مع تغيير التعليقات. في حالة حاجة إليها، يمكن البحث عنها في SCM (على الأقل لمتغيرات SCM التي استخدمتها). إذا كنت تريد منهم في الملف، ففكر في وضعها في النهاية بدلا من البداية. بهذه الطريقة لن تضطر إلى التمرير لأسفل تعليقات (Unantesting، بالنسبة لي على الأقل) على الأقل) قبل أن تصل إلى التعليمات البرمجية الفعلية.

صوت آخر للسماح لنظام SCM التعامل مع تعليقات Checkin، ولكن لدي شيء واحد لإضافته.

تتيح لك بعض الأنظمة استخدام علامات RCS في التعليمات البرمجية المصدرية حيث يمكن أن يقوم SCM بإدراج سجل التغيير مباشرة في الملف المصدر الذي تم ارتكابه تلقائيا. يبدو وكأنه توازن جميل لأن التاريخ هو ثم في نظام SCM ثم وضعت تلقائيا في التعليمات البرمجية المصورة نفسها.

المشكلة هي أن هذه العملية التغييرات الملف المصدر. أعتقد أن هذه فكرة سيئة لأن الملف لا يمكن تغيير الملف على القرص حتى بعد إدخال التعليق. إذا كنت مهندسا جيدا، فيجب أن تكون قد تم تصميمها ومختبرها قبل الالتزام. إذا تغير المصدر الخاص بك بعد الالتزام، فإنك حصلت بشكل أساسي على بناء يمكن كسره - ولكن لن يبني معظم المهندسين بعد الالتزام - لماذا يجب عليهم؟

لكنه مجرد تعليق تقوله! صحيح، لكن لدي حالة حيث كان هناك رمز في ملف المصدر الخاص بي الغريب بما فيه الكفاية كان سبب نظرة مثل علامة رأس RCS، واستبدل هذا القسم من التعليمات البرمجية على Checkin، وبالتالي Munging التعليمات البرمجية الخاصة بي. سهل بما فيه الكفاية لإصلاح، ولكن سيء أن بناء مكسور لمدة 20 سنة

من الأسهل بكثير أن ننسى الحفاظ على التاريخ في المصدر، كما يجب أن يرتكب المرء دائما (IMO) على نظام التحكم المصدر الذي يصيب المشكلة. أيضا إذا تغير الكثير من الملفات قبل الالتزام، فإن تغيير التاريخ في كل ملف سيكون عمل مزعج. هذه هي حقا واحدة من النقاط مع وجود SCM.

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

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