dyff icon indicating copy to clipboard operation
dyff copied to clipboard

Missing document separators when Kubernetes documents have been added/removed

Open ajhall opened this issue 1 year ago • 1 comments

When comparing a list of Kubernetes manifests against each other and some documents have been added or removed, there are no document separators in the "documents removed"/"documents added" output, so all the manifests run together.

Example:

# a.yaml
---
apiVersion: v1
kind: Namespace
metadata:
  name: a
---
apiVersion: v1
kind: Namespace
metadata:
  name: b
# x.yaml
---
apiVersion: v1
kind: Namespace
metadata:
  name: x
---
apiVersion: v1
kind: Namespace
metadata:
  name: y
$ dyff between -ib a.yaml x.yaml

(file level)
  - two documents removed:       ---
    ---                          apiVersion: v1
    apiVersion: v1               kind: Namespace
    kind: Namespace              metadata:
    metadata:                    │ name: x
    │ name: a                    apiVersion: v1
    apiVersion: v1               kind: Namespace
    kind: Namespace              metadata:
    metadata:                    │ name: y
    │ name: b

I would expect it to look something like this instead:

  - two documents removed:       ---
    ---                          apiVersion: v1
    apiVersion: v1               kind: Namespace
    kind: Namespace              metadata:
    metadata:                    │ name: x
    │ name: a                    ---
    ---                          apiVersion: v1
    apiVersion: v1               kind: Namespace
    kind: Namespace              metadata:
    metadata:                    │ name: y
    │ name: b

ajhall avatar Feb 29 '24 14:02 ajhall

apparently fixed by commit b513ffa

dyff between -ib  a.yaml x.yaml 

metadata.name  (v1/Namespace/y)
  ± value change
    - b
    + y

metadata.name  (v1/Namespace/x)
  ± value change
    - a
    + x

mouchar avatar Feb 14 '25 14:02 mouchar