سؤال

نحاول الحفاظ على خاصية "SVN: MergeInfo" في مجلد فرع الجذر فقط. ومع ذلك ، نستمر في رؤيته يتسلل إلى المجلدات الفرعية. لقد تمكنا من تحديد بعض الأسباب المحتملة:

  1. تحريك مجلد في متصفح الريبو
  2. تحريك و/أو إعادة تسمية الحزم في Intellij
  3. باستخدام عملاء SVN القديم

هل يمكن لأي شخص تقديم قائمة بالأشياء التي يجب ألا نفعلها لتجنب إنشاء هذه الخصائص عن طريق الصدفة؟

الأدوات التي نستخدمها هي Intellij 8 (قريباً 9) ، Ankh ، Tortoisesvn و Sliksvn.

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

المحلول 2

لقد كتبنا خطافًا/مشغل SVN يرفض ببساطة ارتباطًا بـ SVN: خصائص على غير Trunk. لم ننظر إلى الوراء.

نصائح أخرى

لسوء الحظ ، فإن عملاء SVN القديم يقومون بذلك ، وأي أدوات تستند إلى هذه الإصدارات القديمة من SVN مكسورة أيضًا. الطريقة الوحيدة لحل هذه المشكلة هي حذف إدخالات SVN: MergeInfo قبل ارتكابها. نظرًا لأن معظم الناس لا يدركون أنهم يتم إنشاؤهم ، فإن الطريقة الحقيقية الوحيدة لتطبيقها عبارة عن خطاف ما قبل الالتزام ، أو مجرد القيام به:

svn propdel --recursive svn:mergeinfo $ROOT/*

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

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

بناءً على إجابة أخرى على هذا السؤال ، تفسير سريع لسبب المشكلة. عندما تقوم بنسخة عمل تحرك أو حذف عملاء SVN الأكبر من 1.5.5 إنشاء SVN زائفة: دخول MergeInfo. هذا هو حل في SVN 1.5.5.

لا يمكنني تقديم مثل هذه القائمة. أوصيك باستخدام SVN Hook الذي سيقوم بتسجيل إجراء المستخدم الذي يؤدي إلى تغيير خاصية المجلد وإما إصدار تحذير أو رفض الالتزام ، كل ما هو مناسب وفقًا لسير العمل.

يؤدي تنفيذ الدمج على المجلدات الفرعية أو الملفات الفردية إلى ذلك ، وهو ينبغي تسبب ذلك ، لأنه يجب أن يسجل معلومات دمج.

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

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