No redundant values:

  $ mkdir prj
  $ cd prj

  $ cat >dune-project <<EOF
  > (lang dune 2.8)
  > (name prj)
  > EOF

  $ touch empty.ml
  $ echo 'profile = conventional' > .ocamlformat
  $ echo 'field-space = tight' >> .ocamlformat

  $ ocamlformat empty.ml --print-config
  comment-check=true
  debug=false
  disable=false
  margin-check=false
  max-iters=10
  ocaml-version=5.4.0
  quiet=false
  disable-conf-attrs=false
  version-check=true
  assignment-operator=end-line (profile conventional (file .ocamlformat:1))
  break-before-in=fit-or-vertical (profile conventional (file .ocamlformat:1))
  break-cases=fit (profile conventional (file .ocamlformat:1))
  break-collection-expressions=fit-or-vertical (profile conventional (file .ocamlformat:1))
  break-colon=after (profile conventional (file .ocamlformat:1))
  break-fun-decl=wrap (profile conventional (file .ocamlformat:1))
  break-fun-sig=wrap (profile conventional (file .ocamlformat:1))
  break-infix=wrap (profile conventional (file .ocamlformat:1))
  break-infix-before-func=false (profile conventional (file .ocamlformat:1))
  break-separators=after (profile conventional (file .ocamlformat:1))
  break-sequences=true (profile conventional (file .ocamlformat:1))
  break-string-literals=auto (profile conventional (file .ocamlformat:1))
  break-struct=force (profile conventional (file .ocamlformat:1))
  cases-exp-indent=4 (profile conventional (file .ocamlformat:1))
  cases-matching-exp-indent=normal (profile conventional (file .ocamlformat:1))
  disambiguate-non-breaking-match=false (profile conventional (file .ocamlformat:1))
  doc-comments=after-when-possible (profile conventional (file .ocamlformat:1))
  doc-comments-padding=2 (profile conventional (file .ocamlformat:1))
  doc-comments-tag-only=default (profile conventional (file .ocamlformat:1))
  dock-collection-brackets=true (profile conventional (file .ocamlformat:1))
  exp-grouping=preserve (profile conventional (file .ocamlformat:1))
  extension-indent=2 (profile conventional (file .ocamlformat:1))
  field-space=tight (file .ocamlformat:2)
  function-indent=2 (profile conventional (file .ocamlformat:1))
  function-indent-nested=never (profile conventional (file .ocamlformat:1))
  if-then-else=compact (profile conventional (file .ocamlformat:1))
  indent-after-in=0 (profile conventional (file .ocamlformat:1))
  indicate-multiline-delimiters=no (profile conventional (file .ocamlformat:1))
  indicate-nested-or-patterns=unsafe-no (profile conventional (file .ocamlformat:1))
  infix-precedence=indent (profile conventional (file .ocamlformat:1))
  leading-nested-match-parens=false (profile conventional (file .ocamlformat:1))
  let-and=compact (profile conventional (file .ocamlformat:1))
  let-binding-indent=2 (profile conventional (file .ocamlformat:1))
  let-binding-deindent-fun=true (profile conventional (file .ocamlformat:1))
  let-binding-spacing=compact (profile conventional (file .ocamlformat:1))
  let-module=compact (profile conventional (file .ocamlformat:1))
  letop-punning=preserve (profile conventional (file .ocamlformat:1))
  line-endings=lf (profile conventional (file .ocamlformat:1))
  margin=80 (profile conventional (file .ocamlformat:1))
  match-indent=0 (profile conventional (file .ocamlformat:1))
  match-indent-nested=never (profile conventional (file .ocamlformat:1))
  max-indent=68 (profile conventional (file .ocamlformat:1))
  module-indent=2 (profile conventional (file .ocamlformat:1))
  module-item-spacing=compact (profile conventional (file .ocamlformat:1))
  nested-match=wrap (profile conventional (file .ocamlformat:1))
  ocp-indent-compat=false (profile conventional (file .ocamlformat:1))
  parens-ite=false (profile conventional (file .ocamlformat:1))
  parens-tuple=always (profile conventional (file .ocamlformat:1))
  parens-tuple-patterns=multi-line-only (profile conventional (file .ocamlformat:1))
  parse-docstrings=true (profile conventional (file .ocamlformat:1))
  parse-toplevel-phrases=false (profile conventional (file .ocamlformat:1))
  sequence-blank-line=preserve-one (profile conventional (file .ocamlformat:1))
  sequence-style=terminator (profile conventional (file .ocamlformat:1))
  single-case=compact (profile conventional (file .ocamlformat:1))
  space-around-arrays=true (profile conventional (file .ocamlformat:1))
  space-around-lists=true (profile conventional (file .ocamlformat:1))
  space-around-records=true (profile conventional (file .ocamlformat:1))
  space-around-variants=true (profile conventional (file .ocamlformat:1))
  stritem-extension-indent=0 (profile conventional (file .ocamlformat:1))
  type-decl=compact (profile conventional (file .ocamlformat:1))
  type-decl-indent=2 (profile conventional (file .ocamlformat:1))
  wrap-comments=false (profile conventional (file .ocamlformat:1))
  wrap-fun-args=true (profile conventional (file .ocamlformat:1))
  profile=conventional (file .ocamlformat:1)

Redundant values from the conventional profile:

  $ echo 'profile = conventional' > .ocamlformat
  $ echo 'if-then-else = compact' >> .ocamlformat
  $ echo 'margin = 80' >> .ocamlformat

  $ ocamlformat empty.ml --print-config
  comment-check=true
  debug=false
  disable=false
  margin-check=false
  max-iters=10
  ocaml-version=5.4.0
  quiet=false
  disable-conf-attrs=false
  version-check=true
  assignment-operator=end-line (profile conventional (file .ocamlformat:1))
  break-before-in=fit-or-vertical (profile conventional (file .ocamlformat:1))
  break-cases=fit (profile conventional (file .ocamlformat:1))
  break-collection-expressions=fit-or-vertical (profile conventional (file .ocamlformat:1))
  break-colon=after (profile conventional (file .ocamlformat:1))
  break-fun-decl=wrap (profile conventional (file .ocamlformat:1))
  break-fun-sig=wrap (profile conventional (file .ocamlformat:1))
  break-infix=wrap (profile conventional (file .ocamlformat:1))
  break-infix-before-func=false (profile conventional (file .ocamlformat:1))
  break-separators=after (profile conventional (file .ocamlformat:1))
  break-sequences=true (profile conventional (file .ocamlformat:1))
  break-string-literals=auto (profile conventional (file .ocamlformat:1))
  break-struct=force (profile conventional (file .ocamlformat:1))
  cases-exp-indent=4 (profile conventional (file .ocamlformat:1))
  cases-matching-exp-indent=normal (profile conventional (file .ocamlformat:1))
  disambiguate-non-breaking-match=false (profile conventional (file .ocamlformat:1))
  doc-comments=after-when-possible (profile conventional (file .ocamlformat:1))
  doc-comments-padding=2 (profile conventional (file .ocamlformat:1))
  doc-comments-tag-only=default (profile conventional (file .ocamlformat:1))
  dock-collection-brackets=true (profile conventional (file .ocamlformat:1))
  exp-grouping=preserve (profile conventional (file .ocamlformat:1))
  extension-indent=2 (profile conventional (file .ocamlformat:1))
  field-space=loose (profile conventional (file .ocamlformat:1))
  function-indent=2 (profile conventional (file .ocamlformat:1))
  function-indent-nested=never (profile conventional (file .ocamlformat:1))
  if-then-else=compact (file .ocamlformat:2) -- Warning (redundant):  (profile conventional (file .ocamlformat:1))
  indent-after-in=0 (profile conventional (file .ocamlformat:1))
  indicate-multiline-delimiters=no (profile conventional (file .ocamlformat:1))
  indicate-nested-or-patterns=unsafe-no (profile conventional (file .ocamlformat:1))
  infix-precedence=indent (profile conventional (file .ocamlformat:1))
  leading-nested-match-parens=false (profile conventional (file .ocamlformat:1))
  let-and=compact (profile conventional (file .ocamlformat:1))
  let-binding-indent=2 (profile conventional (file .ocamlformat:1))
  let-binding-deindent-fun=true (profile conventional (file .ocamlformat:1))
  let-binding-spacing=compact (profile conventional (file .ocamlformat:1))
  let-module=compact (profile conventional (file .ocamlformat:1))
  letop-punning=preserve (profile conventional (file .ocamlformat:1))
  line-endings=lf (profile conventional (file .ocamlformat:1))
  margin=80 (file .ocamlformat:3) -- Warning (redundant):  (profile conventional (file .ocamlformat:1))
  match-indent=0 (profile conventional (file .ocamlformat:1))
  match-indent-nested=never (profile conventional (file .ocamlformat:1))
  max-indent=68 (profile conventional (file .ocamlformat:1))
  module-indent=2 (profile conventional (file .ocamlformat:1))
  module-item-spacing=compact (profile conventional (file .ocamlformat:1))
  nested-match=wrap (profile conventional (file .ocamlformat:1))
  ocp-indent-compat=false (profile conventional (file .ocamlformat:1))
  parens-ite=false (profile conventional (file .ocamlformat:1))
  parens-tuple=always (profile conventional (file .ocamlformat:1))
  parens-tuple-patterns=multi-line-only (profile conventional (file .ocamlformat:1))
  parse-docstrings=true (profile conventional (file .ocamlformat:1))
  parse-toplevel-phrases=false (profile conventional (file .ocamlformat:1))
  sequence-blank-line=preserve-one (profile conventional (file .ocamlformat:1))
  sequence-style=terminator (profile conventional (file .ocamlformat:1))
  single-case=compact (profile conventional (file .ocamlformat:1))
  space-around-arrays=true (profile conventional (file .ocamlformat:1))
  space-around-lists=true (profile conventional (file .ocamlformat:1))
  space-around-records=true (profile conventional (file .ocamlformat:1))
  space-around-variants=true (profile conventional (file .ocamlformat:1))
  stritem-extension-indent=0 (profile conventional (file .ocamlformat:1))
  type-decl=compact (profile conventional (file .ocamlformat:1))
  type-decl-indent=2 (profile conventional (file .ocamlformat:1))
  wrap-comments=false (profile conventional (file .ocamlformat:1))
  wrap-fun-args=true (profile conventional (file .ocamlformat:1))
  profile=conventional (file .ocamlformat:1)

Redundant values from the ocamlformat profile:

  $ echo 'profile = ocamlformat' > .ocamlformat
  $ echo 'if-then-else = compact' >> .ocamlformat
  $ echo 'margin = 80' >> .ocamlformat

  $ ocamlformat empty.ml --print-config
  comment-check=true
  debug=false
  disable=false
  margin-check=false
  max-iters=10
  ocaml-version=5.4.0
  quiet=false
  disable-conf-attrs=false
  version-check=true
  assignment-operator=end-line (profile ocamlformat (file .ocamlformat:1))
  break-before-in=fit-or-vertical (profile ocamlformat (file .ocamlformat:1))
  break-cases=nested (profile ocamlformat (file .ocamlformat:1))
  break-collection-expressions=fit-or-vertical (profile ocamlformat (file .ocamlformat:1))
  break-colon=after (profile ocamlformat (file .ocamlformat:1))
  break-fun-decl=wrap (profile ocamlformat (file .ocamlformat:1))
  break-fun-sig=wrap (profile ocamlformat (file .ocamlformat:1))
  break-infix=wrap (profile ocamlformat (file .ocamlformat:1))
  break-infix-before-func=true (profile ocamlformat (file .ocamlformat:1))
  break-separators=before (profile ocamlformat (file .ocamlformat:1))
  break-sequences=false (profile ocamlformat (file .ocamlformat:1))
  break-string-literals=auto (profile ocamlformat (file .ocamlformat:1))
  break-struct=force (profile ocamlformat (file .ocamlformat:1))
  cases-exp-indent=4 (profile ocamlformat (file .ocamlformat:1))
  cases-matching-exp-indent=compact (profile ocamlformat (file .ocamlformat:1))
  disambiguate-non-breaking-match=false (profile ocamlformat (file .ocamlformat:1))
  doc-comments=before-except-val (profile ocamlformat (file .ocamlformat:1))
  doc-comments-padding=2 (profile ocamlformat (file .ocamlformat:1))
  doc-comments-tag-only=default (profile ocamlformat (file .ocamlformat:1))
  dock-collection-brackets=false (profile ocamlformat (file .ocamlformat:1))
  exp-grouping=preserve (profile ocamlformat (file .ocamlformat:1))
  extension-indent=2 (profile ocamlformat (file .ocamlformat:1))
  field-space=tight (profile ocamlformat (file .ocamlformat:1))
  function-indent=2 (profile ocamlformat (file .ocamlformat:1))
  function-indent-nested=never (profile ocamlformat (file .ocamlformat:1))
  if-then-else=compact (file .ocamlformat:2) -- Warning (redundant):  (profile ocamlformat (file .ocamlformat:1))
  indent-after-in=0 (profile ocamlformat (file .ocamlformat:1))
  indicate-multiline-delimiters=space (profile ocamlformat (file .ocamlformat:1))
  indicate-nested-or-patterns=space (profile ocamlformat (file .ocamlformat:1))
  infix-precedence=indent (profile ocamlformat (file .ocamlformat:1))
  leading-nested-match-parens=false (profile ocamlformat (file .ocamlformat:1))
  let-and=compact (profile ocamlformat (file .ocamlformat:1))
  let-binding-indent=2 (profile ocamlformat (file .ocamlformat:1))
  let-binding-deindent-fun=true (profile ocamlformat (file .ocamlformat:1))
  let-binding-spacing=compact (profile ocamlformat (file .ocamlformat:1))
  let-module=compact (profile ocamlformat (file .ocamlformat:1))
  letop-punning=preserve (profile ocamlformat (file .ocamlformat:1))
  line-endings=lf (profile ocamlformat (file .ocamlformat:1))
  margin=80 (file .ocamlformat:3) -- Warning (redundant):  (profile ocamlformat (file .ocamlformat:1))
  match-indent=0 (profile ocamlformat (file .ocamlformat:1))
  match-indent-nested=never (profile ocamlformat (file .ocamlformat:1))
  max-indent=68 (profile ocamlformat (file .ocamlformat:1))
  module-indent=2 (profile ocamlformat (file .ocamlformat:1))
  module-item-spacing=sparse (profile ocamlformat (file .ocamlformat:1))
  nested-match=wrap (profile ocamlformat (file .ocamlformat:1))
  ocp-indent-compat=false (profile ocamlformat (file .ocamlformat:1))
  parens-ite=false (profile ocamlformat (file .ocamlformat:1))
  parens-tuple=always (profile ocamlformat (file .ocamlformat:1))
  parens-tuple-patterns=multi-line-only (profile ocamlformat (file .ocamlformat:1))
  parse-docstrings=false (profile ocamlformat (file .ocamlformat:1))
  parse-toplevel-phrases=false (profile ocamlformat (file .ocamlformat:1))
  sequence-blank-line=compact (profile ocamlformat (file .ocamlformat:1))
  sequence-style=separator (profile ocamlformat (file .ocamlformat:1))
  single-case=compact (profile ocamlformat (file .ocamlformat:1))
  space-around-arrays=false (profile ocamlformat (file .ocamlformat:1))
  space-around-lists=false (profile ocamlformat (file .ocamlformat:1))
  space-around-records=false (profile ocamlformat (file .ocamlformat:1))
  space-around-variants=false (profile ocamlformat (file .ocamlformat:1))
  stritem-extension-indent=0 (profile ocamlformat (file .ocamlformat:1))
  type-decl=compact (profile ocamlformat (file .ocamlformat:1))
  type-decl-indent=2 (profile ocamlformat (file .ocamlformat:1))
  wrap-comments=false (profile ocamlformat (file .ocamlformat:1))
  wrap-fun-args=true (profile ocamlformat (file .ocamlformat:1))
  profile=ocamlformat (file .ocamlformat:1)
