سؤال

تستخدم

libreoffice التنسيقات القائمة على XML مضغوط، مما يجعل الملفات الناتجة صغيرة نسبيا، ولكن عديمة الفائدة لأغراض فرق في SVN. ومع ذلك، علمت مؤخرا أن هناك معادلات XML المسطحة (E.G. جدول بيانات .DS يصبح جدول بيانات XML مسطح) وهو نص أساسي، وقد يكون مختلفا في SVN.

الآن، فإن الشيء الموجود حول النص مقابل Binary في SVN هو عادة أنه إذا كان لديك ملف 20 كيلو بايت وقم بضغوط، فسوف يكلفك تغيير صغير 20 كيلو بايت آخر للالتزام إذا كان ثنائي؛ في حين أنه قد يكلف عدد قليل فقط من البايتات إذا كان النص ويتم تخزين DIFF فقط.

في حالتي لدي جدول بيانات نموذجي، والذي يستغرق 164 كيلو بايت كما .fods (شقة XML) و 18.3 كيلو بايت كأرادس (XML مضغوط). عندما أضيف بعض الخلايا وحفظها، قم بعمل فرق يظهر أن أكثر من 50٪ من الملف تغير. ونظرا أن إصدار XML المسطح هو 164 كيلو بايت، وهذا يعني أنه في الواقع أكثر كفاءة لتخزين النسخة الثنائية.

لذلك، هل أنا أفتقد شيئا ما، أو هل هذا شيء مسطح XML غير فعال حقا؟

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

المحلول

هذا هو أساسا مكررة من: ستقوم بتخريب مخزن مستندات OpenXML Office Office؟

الجواب لا يزال هناك صحيح. هناك عمل نحو حل هذا. التي يمكنك قراءتها عن القليل مع استجابة ستيفان لسؤال مماثل على قائمة dev@subversion.apache.org.

تنسيق 7 في هذا الموضوع يتحدث عن تنسيق FSFS 7، وهو جزء قادم من 1.9.0. لسوء الحظ، منذ ذلك الحين، أعتقد أن العمل الذي فعله ستيفان الذي فعله نحو ذلك قد انزلق من التنسيق 7 (ولكن قد أكون مخطئا في ذلك) وإلى نهاية FSX مرة أخرى، وهي آلية تخزين تجريبية ستكون موجودة أيضا في 1.9.0 ولكن لن ينصح باستخدام الإنتاج حتى الآن (ولكن قد أكون مخطئا في ذلك).

إلى سؤالك حول XML المسطح، نعم سيساعدك كثيرا. إذا قرأت الخيط بأكمله (بدلا من الاستجابة الفردية التي قدمتها)، فأنا متأكد من أنها مذكورة كحل ممكن في الوقت الحالي.

يبدو وكأنك تستخدم استخدام SVN Diff للحصول على فكرة عن مقدار مساحة التخزين التي ستمنحك XML المسطح. لسوء الحظ، هذا لن يساعدك حقا كثيرا. بادئ ذي بدء تشغيل Subversion يستخدم تنسيق دلتا ثنائي يختلف بكثير عن تنسيق الفرق الموحد.

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

أيضا نحن لا نقوم بتخزين Deltas فقط إلى المراجعة السابقة للملف. بدلا من ذلك، نحن نستخدم تخطي خوارزمية دلتا لتحديد أي منها مراجعة لتخزين دلتا من وحتى تخزين نص كامل في بعض الأحيان. الغرض من ذلك هو الحد من مقدار العمل المنجز لحساب النص الكامل لأي مراجعة معينة. الأمور أكثر تعقيدا قليلا من ذلك مع 1.8 حيث يوجد بعض خيارات fsfs.conf التي تؤدي إلى تخطي خوارزمية دلتا .

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

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