سؤال

أنا أعمل في فريق كبير مع فروع متعددة ودمج يحدث بشكل منتظم.

الشيء الوحيد الذي يحدث على أساس منتظم هو أن ملفات مشروع الويب في نهاية المطاف مع إدخالات مكررة للمحتوى الثابت (.js، Favicon.ico، إلخ ...).

لدي طريقتان لإزالة المكرر:

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

كلاهما مملة وأنا غير راض عنهم - هل لديك طريقة أفضل / أسرع / أسرع؟

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

المحلول

أسهل طريقة هي ببساطة انقر بزر الماوس الأيمن فوق خيار "استبعاد المشروع". سوف تختفي المكررة بعد تحديث المشروع.

نصائح أخرى

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

var hash = new HashSet<string>();
using (var fs = File.OpenRead(@"path\to\csproj\file"))
using (var sr = new StreamReader(fs))
{
     while (!sr.EndOfStream)
     {
        var line = sr.ReadLine().Trim();
        if (line.StartsWith(@"<Reference") || line.StartsWith(@"<Compile") || line.StartsWith(@"<Page"))
        {
            if (!hash.Add(line))
            {
                line.Dump();
            }
        }
     }
}

يسرد جميع المكرر الموجود في .csproj الملف (شيء ما أتمنى VS فعله الآن، ولكن حسنا، ربما في 10 سنوات أخرى). لا يزال يتعين عليك إزالة التكرارات يدويا، لكن وجود قائمة كاملة يسرع الأشياء بشكل كبير.

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