سؤال

عادة قد تمكن امتداد طريق إضافة ما يلي .hg/hgrc:

[extensions]
hgext.win32text=
[encode]
** = cleverencode:
[decode]
** = cleverdecode:

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

يبدو أنه من غير الممكن من الوثائق, ولكن لا أحد يعرف أي الحيل أنيق التي يمكن أن تساعدني هنا ؟

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

المحلول

تريد الزئبقي أن تفعل شيئا تلقائيا عند استنساخ الريبو (تحديث السنانير أو التكوين). الوثائق يقول أنه ليس من الممكن ويعطي بعض أسباب وجيهة جدا:

Hooks do not propagate

In Mercurial, hooks are not revision controlled, and do not propagate when you clone,
or pull from, a repository. The reason for this is simple: a hook is a completely    
arbitrary piece of executable code. It runs under your user identity, with your 
privilege level, on your machine. No comments

It would be extremely reckless for any distributed revision control system to 
implement revision-controlled hooks, as this would offer an easily exploitable way to 
subvert the accounts of users of the revision control system. No comments

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

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

إذا كنت تريد أن تكون ذكية حول هذا:

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

معقدة بعض الشيء ولكن هذا هو الأقرب يمكنني تصور للاحتياجات الخاصة بك:

  • المستخدم تشغيل البرنامج النصي مرة وينسون
  • يمكنك التأكد من أنه إذا لم يتم تشغيل ذلك ، فإنها يمكن أن لا تلتزم المركزي الريبو

نصائح أخرى

والنسخة الحالية من التنمية زئبقي (سيصدر كما زئبقي 1.3 في 1 يوليو) يدعم التوجيه %include في ملفات التكوين الخاص بها.

وهذا يعني أنه يمكنك أن تطلب من الناس أن يضع

%include ../common-hgrc

وفي .hg/hgrc. وبعد أن فعلت ذلك، ثم يمكنك التحكم في الإعدادات الخاصة بها زئبقي على نحو فعال من خلال ارتكاب تغييرات على common-hgrc. عندما سحب التغيير، فإن الإعدادات الجديدة نافذة المفعول.

هل لاحظ أن هذا أمر خطير: أي شخص يمكن أن تحصل على سحب التغيرات في المخزون الخاص بك يمكن الآن إدراج السنانير تعسفية في common-hgrc وسوف تنفيذها على الأمر زئبقي التالي (حتى "آمنة" سطر الأوامر hg status).

وكنت قد تكون قادرة على حل هذه المشكلة عن طريق ProjRC تمديد .

و"هذا التمديد يجعل زئبقي تبحث عنه، وتحليل .hg / projrc لإعدادات التكوين إضافية. يتم نقل الملف على استنساخ وعلى سحب (ولكن أبدا على دفع) "

وماذا عن خلق وصلة من .hg/hgrc إلى مثل customhg/hgrc بحيث يحصل تعيين إصدار ذلك. ثم تحتاج إلى إنشاء بعض هوك بنسخ مرة أخرى إلى .hg/hgrc - على سبيل المثال بعد كل تحديث.

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