سؤال

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

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

من الناحية المثالية، أبحث عن شيء على غرار:

فو.فب

  • تمت إضافة شريط وظائف جديد

بار.فب

  • تمت إزالة الوظيفة foo
  • الوظيفة المضافة في XYZ للقيام بوظيفة ABC +/- المعدلة لتسجيل الخطأ
هل كانت مفيدة؟

المحلول

سأفعل هذا فقط في رسالة الالتزام الفردية. السلحفاةSVN لديه الإكمال التلقائي لاسم الملف بحيث يساعد بشكل كبير في هذا.

شيء آخر يمكنك القيام به هو svn st قبل الالتزام ونسخ/لصق أسماء الملفات في رسالة الالتزام الخاصة بك.

أوه، وتأكد من التشكيك بقوة في قيمة هذا.أعلم أن بعض مشاريع OSS (نظام التشغيل Linux؟) تتطلب هذا النوع من الدقة، ولكن بالنسبة للعديد من المشاريع، يعد هذا مجرد ضجيج.يمكن أن يخبرك Diff بأكثر من ذلك بكثير، وبشكل أكثر دقة.

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

نصائح أخرى

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

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

فيما يلي أربع أفكار للحل:

  1. تحقق من كل برنامج من برامجك على حدة، مع رسالة السجل الخاصة به.قد يعني هذا أنه إذا قمت، على سبيل المثال، بإيداع خمسة ملفات، فسوف "تستخدم" خمسة إصدارات، أربعة منها قد تؤدي إلى بنية معطلة.
  2. قم بتطويرك على مسار منفصل (أيفرعك الخاص)، قم بما هو مذكور أعلاه، ثم في اللحظات الإستراتيجية قم بدمج فرعك في صندوق السيارة.
  3. تحقق من كل شيء معًا، واحتفظ بالسجلات الفردية كتعليقات في رأس البرنامج.قد يعني هذا عملاً إضافيًا (قليلًا)، ولكن سيتعين عليك إنشاء رسائل تسجيل دخول فردية على أي حال.
  4. قم بإجراء تسجيل وصول واحد لجميع الملفات، ولكن مع رسالة سجل كاملة لطيفة توضح بالتفصيل كل جزء لكل ملف.

لقد كتبت مشروعًا للقيام بهذا النوع من الأشياء يسمى مواب

تتمثل إحدى وظائفه في إنشاء إدخال ChangeLog من الفرق المحلي لديك (يدعم حاليًا bazaar وcvs وsvn وgit وdarcs).يمكنك القيام بذلك عن طريق تشغيل "moap Changelog Preparation" أو "moap cl prep". يمكن أن يتضمن هذا الإدخال وظائف تم تغييرها أيضًا إذا قمت بتمكين الخيار.

يمكنك بعد ذلك الانتقال وتغيير هذا الإدخال، واصفًا التغييرات التي أجريتها.يمكنك إزالة الملفات التي لا تريد الالتزام بها كجزء من التزامك التالي.

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

امل ان يساعد!

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

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