lambdaisland / lambdaisland/deep-diff2
Diffing sets doesn’t deep-diff
Personne n'a encore pris cette issue.
- Langage dominant
- Clojure
- Étoiles
- 326
- Forks
- 18
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
When diffing a set, i.e.
(ddiff/diff
#{{:db/id 17592186065894
:test "1"}}
#{{:db/id 17592186065894
:test "2"}
{:db/id 13194139559179
:db/txInstant #inst "2025-05-20T07:41:40.877-00:00"}})
the result is:
#{{:+
{:db/id 13194139559179,
:db/txInstant #inst "2025-05-20T07:41:40.877000000-00:00"}}
{:+ {:db/id 17592186065894, :test "2"}}
{:- {:db/id 17592186065894, :test "1"}}}
I would expect the result to be similar to a vector, i.e.
(ddiff/diff
[{:db/id 17592186065894
:test "1"}]
[{:db/id 17592186065894
:test "2"}
{:db/id 13194139559179
:db/txInstant #inst "2025-05-20T07:41:40.877-00:00"}])
produces:
[{:db/id 17592186065894, :test {:- "1", :+ "2"}}
{:+
{:db/id 13194139559179,
:db/txInstant #inst "2025-05-20T07:41:40.877000000-00:00"}}]
Digging deeper, it looks like there is bug with set diffing in general:
I.e.
(ddiff/diff #{{:id 123 :foo :bar}} #{{:id 123 :foo :baz}})
produces:
#{{:+ {:id 123, :foo :baz}} {:- {:id 123, :foo :bar}}}
where using a vector produces:
[{:id 123, :foo {:- :bar, :+ :baz}}]
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par reproduire les exemples de ddiff/diff pour les ensembles et les vecteurs, puis comparez la manière dont les maps imbriquées sont mises en correspondance dans chaque cas. Le travail est terminé lorsque la comparaison des ensembles signale les champs modifiés au sein des maps correspondantes tout en signalant correctement les éléments réellement ajoutés ou supprimés.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- clojure
- Domaine
- tooling
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100