سؤال

جيف اتوود كتب عن Whitespace واقترح إنشاء ربط الالتزام الذي يزيل Whitespace مقطوعا في نهايات الخطوط والملفات.

لقد بحثت، لكنني لم أجد مثالا واضحا باستخدام pre-commit ربط لتعديل الملفات مثل هذا. هل لديك برنامج نصي ترغب في مشاركته؟

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

المحلول

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

نصائح أخرى

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

يرى الوثائق حول ارتكاب السنانير:

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

لست متأكدا من النظام الأساسي الذي أنت عليه، ولكن يمكنك القيام بذلك السلاحف, ، باستخدام لها السنانير جانب العميل.

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

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