قراءة السجل

ملاحظات الالتزام

رسالة الالتزام تُكتب مرة واحدة ثم تتجمّد: تغييرها يعيد كتابة الالتزام، ويعطيه بصمة جديدة، ويكسر كل من لديه القديمة بالفعل. وهذا مقبول بعد ساعة من الالتزام ومستحيل بعد أسبوع.

وgit notes هو المخرج. فالملاحظة تُخزَّن بجانب الالتزام، تحت refs/notes/commits، وإلحاق واحدة يترك الالتزام مطابقًا بايتًا ببايت. فهي تعمل إذًا على سجل نُشر بالفعل — وهو بالضبط الوقت الذي تريد فيه أن تضيف شيئًا أكثر من أي وقت.

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

كتابة واحدة

اختر التزامًا. أسفل الرسالة يوجد قسم ملاحظة: أضِف ملاحظة، ثم اكتب، ثم احفظ الملاحظة. والأسطر المتعددة مقبولة.

كتابة ملاحظة أسفل رسالة التزام مُرسَل، ثم حفظها

وحفظ الملاحظة إجراء اعتيادي في Gitcito — يُصدر إشعارًا، والتراجع يعيد النص السابق، بما في ذلك استعادة ملاحظة أزلتها.

ومسح النص ثم الحفظ يزيل الملاحظة؛ فليس هناك ما يُسمى ملاحظة فارغة.

العثور على واحدة

الملاحظات غير مرئية في سجل عادي، وهذا هو السبب الرئيس في أن الناس لا يكتشفونها أبدًا. ويعلّم Gitcito الالتزام الذي يحمل واحدة بأيقونة ملاحظة صغيرة في عمود الرسالة في الرسم البياني، فيمكن العثور على التعليق دون معرفة أنه هناك.

ومن سطر الأوامر، يطبعها git log --notes أسفل كل رسالة.

مشاركتها

وهذا هو الجزء الذي يفاجئ الجميع: git push العادي لا يرسل الملاحظات، وgit fetch العادي لا يجلبها. فهي تعيش خارج refs/heads وrefs/tags، ولذا تتخطاها مواصفات المراجع الافتراضية تمامًا. والملاحظات المكتوبة على حاسبك تبقى على حاسبك حتى ينقلها أحد صراحةً.

الأدوات ← ملاحظة ← إرسال الملاحظات / جلب الملاحظات، لكل مستودع بعيد. وهي تشغّل:

git push <remote> refs/notes/commits
git fetch <remote> +refs/notes/commits:refs/notes/commits

لا ينتقل إلا مرجع ملاحظات الالتزامات وحده — أما مراجع Gitcito المحلية الخاصة بالجهاز (مثل أحكام التكامل المستمر المحلي) فلا تُنشر عمدًا.

وبعض المستضيفين يحتاج أيضًا إلى تفعيل الملاحظات أو السماح بها من جانبه؛ والرفض هناك سياسة المستضيف، لا حدٌّ من حدود Gitcito.

لا مستودع بعيد مشترك، أو لا صلاحية كتابة؟ يمكن لـالمشاركة الآمنة أن تحزم ملاحظات مستودع في ملف مشفَّر يستورده الزميل مباشرةً، مع معاينة لما سيصل وخيار صريح للكتابة فوق الملاحظات المتشعّبة.

الحدود

  • مرجع ملاحظات واحد. يقرأ Gitcito ويكتب refs/notes/commits الافتراضي. ومساحات الأسماء المخصصة (git notes --ref=review) غير معروضة — فالمستودع الذي يستخدمها لن يرى تلك الملاحظات هنا.
  • لا دمج للملاحظات المتشعّبة. فإن علّق شخصان على الالتزام نفسه وأرسلا كلاهما، رفض git الإرسال الثاني. وحلّ ذلك يعني git notes merge في الطرفية.
  • الملاحظات لا تحفظها نسخة الإزالة الاحتياطية ولا اللقطات. فهي مراجع اعتيادية وتنجو من العمليات العادية، لكن مستودعًا أُعيد استنساخه من الصفر يبدأ بدونها.

انظر أيضًا: الالتزام · الرسم البياني للالتزامات

حسّن هذه الترجمة على GitHub