Question

LIBREOFFICE utilise des formats basés sur XML qui sont zippés, rendant les fichiers résultants relativement petits, mais inutiles à des fins DIFF dans SVN. Cependant, j'ai récemment appris qu'il y ait les équivalents plats XML (E.g. une feuille de calcul .ODS devient une feuille de calcul XML plate .FODS) qui sont essentiellement du texte et peuvent être différés dans SVN.

Maintenant, la chose à propos du texte vs binaire dans SVN est généralement que si vous avez un fichier de 20 ko et que c'est compressé, un petit changement vous coûtera un autre 20 Ko à commettre si elle est binaire; Bien que cela ne coûte que quelques octets seulement si c'est du texte et que seul le diff est stocké.

Dans mon cas, j'ai une feuille de calcul typique, qui prend 164 Ko comme .fods (plat xml) et 18.3kb comme .Ods (XML comprimé). Lorsque j'ajoute quelques cellules et économisez, effectuez un diff montrant que plus de 50% du fichier a changé. Et étant donné que la version plate XML est de 164 Ko, cela signifierait qu'il est effectivement plus efficace de stocker la version binaire.

Alors, je manque quelque chose ou est-ce que cette chose plate XML est vraiment inefficace?

Était-ce utile?

La solution

C'est essentiellement un duplicata de: Subversion stocke efficacement des documents Office OpenXML?

La réponse est toujours vraie. Il y a du travail à résoudre ce problème. Que vous pouvez lire un peu avec La réponse de Stefan à une question similaire sur la liste dev@subversion.apache.org.

Format 7 Dans ce fil parle du format FSFS 7, une partie à venir de 1,9,0. Malheureusement, depuis lors, je crois que le travail que Stefan a fait vers cela a glissé de format 7 (mais je pourrais me tromper à cet égard) et dans l'arrière-plan de la FSX, qui est un mécanisme de stockage expérimental qui sera également présent dans 1.9.0 mais ne sera pas recommandé pour l'utilisation de la production (mais je pourrais me tromper de cela).

à votre question à propos de l'appartement XML, oui qui vous aidera beaucoup. Si vous lisez l'ensemble du fil (plutôt que la réponse unique que j'ai fournie) Je suis à peu près sûr qu'il est mentionné comme une solution possible pour le moment.

On dirait que vous utilisez avec SVN DIFF pour avoir une idée de la quantité d'espace de stockage que l'appartement XML vous donnera. Malheureusement, ça ne va pas vraiment vous aider beaucoup. Tout d'abord Subversion utilise un format delta binaire qui est bien différent du format de diff.

Certaines de vos hypothèses, même sur le cas zippé, ne sont pas vraiment vraies. Juste parce que vous avez changé une partie d'un paquet XML zippé ne signifie pas que l'ensemble du fichier aura changé, voir le courrier électronique de Stefan que je suis lié à.

Nous ne stockons également pas Deltas juste à la révision précédente d'un fichier. Nous utilisons plutôt le Skip Delta Algorithm pour déterminer lequel Révision de stocker un delta de et même stocker parfois un texte complet. L'objectif est de limiter la quantité de travail effectuée pour calculer le texte intégral de toute révision donnée. Les choses sont un peu plus compliquées que celle avec 1,8 où il y a des Options pour fsfs.conf qui modifie l'algorithme Skip Delta .

Si vous souhaitez obtenir une idée précise de si les fichiers plats sont efficaces, vous devez effectuer une certaine expérimentation et voir comment la taille du référentiel sur disque se développe.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top