هل هناك خيار تجاهل على الالتزام في Mercurial؟

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

  •  23-08-2019
  •  | 
  •  

سؤال

هل هناك أي طريقة لتجاهل التغييرات في بعض الملفات على الالتزام مع الزئبق؟

لدي موقف محدد حيث لدينا ملف افتراضي Oracle Tnsnames.ora يشير إلى 127.0.0.1، لكن بعض المطورين سيقومون بتعديله للإشارة إلى أنظمة أخرى، لكننا لا نريد تغيير الملف الافتراضي.

في التخريب، أضافت هذه البساطة هذا إلى تباهي تغيير الأطقم. هل هناك طريقة للقيام بذلك في mercurial؟

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

المحلول

إذا كانت الملفات التي تريد حذفها من الأمر "HG Comment" يتم بالفعل "تعقب"، يجب عليك استخدام خيار -x. النمط الذي تم تمريره إلى -x مرن للغاية، مما يجعل من الممكن تشغيله على سبيل المثال:

% hg stat
A etc/foo.conf
M src/bar.c
M lib/libbar/loader.c
% hg commit -X '**.conf'

لتجنب ارتكاب أي ملف بتمديد ".conf"، بغض النظر عن مدى عمق شجرة المصدر التي تعيش فيها. في مساحة العمل الموضحة أعلاه من شأنها أن تلتزم "SRC / BAR.C" و "Lib / libbar / loader.c" ولكن ليس "ETC / FOO.CONF".

لاستبعاد أنماط متعددة من أسماء الملفات، استخدم خيارات -x متعددة، أي:

% hg commit -X '**.conf' -X '**.sh'

نصائح أخرى

تقليديا، يتم حل هذا من خلال عدم إصدار الملف نفسه، ولكن عن طريق إصدار نسخة منه كقالب للآخرين لاستخدامها.

لذلك سوف hg mv tnsnames.ora tnsnames.ora-template, ، ثم ارتكاب، ثم قم بنسخة من ملفات الملفات المستقيمة من tnsnames.ora-template إلى tnsnames.ora، وإضافة tnsnames.ora إلى ملف .hgignore.

ستظل التغييرات اللاحقة في القالب مضغوطا، لكنها لن تغير بيئة العمل بالفعل ما لم نسخ شخص ما القالب إلى الملف الفعلي.

هل يمكن أن تلتزم الاسم المستعار بشيء مثل "HG Comment -xxx excluded_file.ext" لم تستخدم قط Mercurial، لذلك أنا فقط أذهب إلى صفحة الرجل هنا.

ابحث عن ملف .hgignore في وثائق Mercurial.

هنا مثال على تجاهل الملف.

       # use glob syntax.
       syntax: glob

       *.elc
       *.pyc
       *~

       # switch to regexp syntax.
       syntax: regexp
       ^\.pc/
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top