سؤال

ولقد تم تكليف مع خلق أداة يمكن أن مهرجان دبي السينمائي الدولي ودمج ملفات التكوين للمنتج شركتي. يتم تخزين تكوينات إما XML أو سلاسل ترميز URL. أنا أبحث عن مكتبة، ويفضل أن يكون المصدر المفتوح مع رخصة متوافق مع البرمجيات التجارية، التي يمكن أن تفعل هذه بيانات الاختلاف. هو مكتوب لدينا التطبيق في C ++، لذلك مكتبات C ++ سيكون أفضل، ولكن أنا على استعداد للنظر في المكتبات التي هي C # محددة منذ أستطيع أن أكتب مجمع الذي يعرضها لC ++ عبر COM. سيكون ثلاثي بيانات الاختلاف يكون مثاليا، ولكن في اتجاهين غير مقبول. إذا كان لديه فهم XML، التي من شأنها أن أيضا أن يكون الجمع (منذ العقد XML يمكن إعادة ترتيب دون تغيير وثيقة، الخ). أي مكتبة اقتراحات؟ يجب أن تنظر حتى كتابة أدواتي فرق الخاصة على أمل يعطيها المعرفة الدلالي من الأشكال لدينا؟

هذا السؤال مماثلة ، لقد اكتشفت بالفعل <ل أ href = "http://code.google.com/p/google-diff-match-patch/" يختلط = "نوفولو noreferrer"> هذا مكتبة جوجل ، والذي يبدو عظيم حقا، ولكن أنا لا تزال تبحث عن خيارات أخرى. ويبدو أيضا أن تكون قادرة على انتاج بيانات الاختلاف في شكل HTML (باستخدام <ins> و<del> العلامات التي لم أكن أعرف موجودة قبل اكتشفت ذلك)، والتي يمكن أن تكون في متناول اليد حقا، ولكن يبدو أن هناك فرق موحد فقط. انا بحاجة الى الذهاب الى عرض النتائج في متصفح الإنترنت، وربما يكون لديك لبناء واجهة لفعل دمج في المتصفح كذلك. لا أتوقع مكتبة لتكون قادرة على مساعدة مع هذه المهام، ولكن يجب أن تنتج الناتج في شكل غير قابلة لللي بناء هذا على أعلى من ذلك. أنا تصور حاليا شيء على غرار TortoiseMerge (جنبا إلى جنب بيانات الاختلاف، وليس موحدة)، باستثناء يستند إلى مستعرض. سيكون موضع تقدير أي نصائح / الحيل / تصميم الأفكار حول كيفية تقديم هذا أيضا.

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

المحلول

لdiffing وXML أود أن أقترح أن كنت تطبيع لأول مرة: فرز جميع العناصر في الترتيب الأبجدي، ثم توليد تيار من الرموز / أكس تمثل الوثيقة الأصلية ولكن مستقلة عن التنسيق الأصلي. بعد تشغيل فرق، تحليل نتيجة للحصول على شجرة تحتوي على ما تم إضافة / إزالة.

نصائح أخرى

والتخريب يأتي مع libsvn_diff وlibsvn_delta مرخص تحت رخصة أباتشي للبرمجيات.

هنا مكتبة C ++ التي يمكن أن مهرجان دبي السينمائي الدولي ما يسميه المؤلف بيانات semistructured. انها تتعامل بشكل جيد مع HTML و XML. منذ بياناتك XML من شأنه أن يجعل الكثير من معانيها لاستخدام هذا بدلا من فرق نص عادي. هذا هو الحال خاصة عندما تكون الملفات التي تم إنشاؤها الجهاز.

واني اسعى حاليا لاستخدام هذه المكتبة لبناء أداة بيانات الاختلاف ملفات المشاريع ستوديو البصرية. هذه هي أساسا ملفات XML واستخدام أداة فرق عادي مثل ينمرغ هو مؤلمة جدا بسبب Visual Studio حد كبير الأوحال حتى الملف بأكمله قبل إعادة ترتيب مجنون. والفكرة هي أن تفعل بعض نوع من فرق منظم لمعالجة هذه المشكلة.

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