https://dev.entrouvert.org/https://dev.entrouvert.org/favicon.ico?15861920342021-10-04T12:52:07ZRedmine Entr’ouvertw.c.s. - Development #57299: stocker un "diff" dans l'historisation, plutôt que l'objet complethttps://dev.entrouvert.org/issues/57299?journal_id=3301712021-10-04T12:52:07ZLauréline Guérin
<ul><li><strong>Assigné à</strong> mis à <i>Lauréline Guérin</i></li></ul> w.c.s. - Development #57299: stocker un "diff" dans l'historisation, plutôt que l'objet complethttps://dev.entrouvert.org/issues/57299?journal_id=3304932021-10-05T12:19:29ZLauréline Guérin
<ul><li><strong>Fichier</strong> <a href="/attachments/58178">0001-snapshot-store-a-patch-instead-of-serialization-5729.patch</a> <a class="icon-only icon-download" title="Télécharger" href="/attachments/download/58178/0001-snapshot-store-a-patch-instead-of-serialization-5729.patch">0001-snapshot-store-a-patch-instead-of-serialization-5729.patch</a> ajouté</li><li><strong>Statut</strong> changé de <i>Nouveau</i> à <i>Solution proposée</i></li><li><strong>Patch proposed</strong> changé de <i>Non</i> à <i>Oui</i></li></ul><p>proposition</p>
<p>difflib permet de générer un diff avec ndiff, mais qui contient tout (les lignes non modifiées, les modifs), donc forcément plus volumineux que la serialization d'origine, mais à partir duquel en appliquant difflib.restore on peut builder la version qu'on veut.</p>
<p>Mais c'est volumineux</p>
<p>difflib permet aussi de générer un diff plus au format patch (avec juste les modifs) avec , plus intéressant ici. Mais rien pour appliquer ce patch. J'ai fouillé un peu partout et je suis tombée sur <a class="external" href="https://gist.github.com/noporpoise/16e731849eb1231e86d78f9dfeca3abc">https://gist.github.com/noporpoise/16e731849eb1231e86d78f9dfeca3abc</a> que j'ai copié/collé (avec 2/3 adaptations de style)<br />Ca marchouille.</p> w.c.s. - Development #57299: stocker un "diff" dans l'historisation, plutôt que l'objet complethttps://dev.entrouvert.org/issues/57299?journal_id=3326042021-10-15T12:22:37ZFrédéric Pétersfpeters@entrouvert.com
<ul></ul><pre>
# should we store a snapshot ?
store_snapshot = False
</pre>
<p>Comme c'est désormais il devient difficile de capter le moment où ça resterait à False; je pense que le code serait plus clair en inversant,</p>
<pre>
store_snapshot = True
if label is None:
# compare with patch of latest snapshot
latest = cls.get_latest(obj.object_type, obj.object_id)
if latest.patch and patch == latest.patch:
# the patch is the same as in the previous snapshot
store_snapshot = False
</pre>
<p>(il me semble que c'est la situation)</p> w.c.s. - Development #57299: stocker un "diff" dans l'historisation, plutôt que l'objet complethttps://dev.entrouvert.org/issues/57299?journal_id=3328122021-10-18T08:16:07ZLauréline Guérin
<ul><li><strong>Fichier</strong> <a href="/attachments/58575">0001-snapshot-store-a-patch-instead-of-serialization-5729.patch</a> <a class="icon-only icon-download" title="Télécharger" href="/attachments/download/58575/0001-snapshot-store-a-patch-instead-of-serialization-5729.patch">0001-snapshot-store-a-patch-instead-of-serialization-5729.patch</a> ajouté</li></ul> w.c.s. - Development #57299: stocker un "diff" dans l'historisation, plutôt que l'objet complethttps://dev.entrouvert.org/issues/57299?journal_id=3328652021-10-18T11:02:22ZFrédéric Pétersfpeters@entrouvert.com
<ul><li><strong>Statut</strong> changé de <i>Solution proposée</i> à <i>Solution validée</i></li></ul> w.c.s. - Development #57299: stocker un "diff" dans l'historisation, plutôt que l'objet complethttps://dev.entrouvert.org/issues/57299?journal_id=3330162021-10-18T18:49:03ZLauréline Guérin
<ul><li><strong>Statut</strong> changé de <i>Solution validée</i> à <i>Résolu (à déployer)</i></li></ul><pre>
commit 0565ffe5d3faccb89b80017cd872e47f8863e967
Author: Lauréline Guérin <zebuline@entrouvert.com>
Date: Tue Oct 5 11:38:28 2021 +0200
snapshot: store a patch instead of serialization (#57299)
</pre> w.c.s. - Development #57299: stocker un "diff" dans l'historisation, plutôt que l'objet complethttps://dev.entrouvert.org/issues/57299?journal_id=3332222021-10-19T16:17:06ZFrédéric Pétersfpeters@entrouvert.com
<ul><li><strong>Statut</strong> changé de <i>Résolu (à déployer)</i> à <i>Solution déployée</i></li></ul>