code: def test_pipeline_tracked_params(tmp_dir, scm, dvc, run_copy):
      from dvc.dvcfile import PROJECT_FILE
  
      tmp_dir.gen({"foo": "foo", "params.yaml": "foo: bar\nxyz: val"})
      run_copy("foo", "bar", name="copy-foo-bar", params=["foo,xyz"])
  
      scm.add(["params.yaml", PROJECT_FILE])
      scm.commit("add stage")
  
      tmp_dir.scm_gen("params.yaml", "foo: baz\nxyz: val", commit="baz")
      tmp_dir.scm_gen("params.yaml", "foo: qux\nxyz: val", commit="qux")
  
      assert dvc.params.diff(a_rev="HEAD~2") == {
          "diff": {"params.yaml": {"foo": {"old": "bar", "new": "qux"}}}
      }
  
file_path: dvc/tests/func/params/test_diff.py
imports: from os.path import join
  import pytest
  from dvc.utils import relpath
label_desc: Use image node_id 10 for calling a global function with example usage: test_pipeline_tracked_params(tmp_dir, scm, dvc, run_copy) without return types