)]}'
{"id":"depot~3503","triplet_id":"depot~canon~I127b108c8b177c657fb46786d0a6256516fd2c52","project":"depot","branch":"canon","attention_set":{},"removed_from_attention_set":{"1000034":{"account":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"last_update":"2021-09-09 15:57:58.000000000","reason":"Change was submitted"},"1000001":{"account":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"last_update":"2021-09-09 15:33:40.000000000","reason":"removed on reply"},"1000013":{"account":{"_account_id":1000013,"name":"Profpatsch","email":"mail@profpatsch.de","username":"Profpatsch"},"last_update":"2021-09-09 15:57:58.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"I127b108c8b177c657fb46786d0a6256516fd2c52","subject":"feat(nix/sparseTree): get a directory with only selected children","status":"MERGED","created":"2021-09-08 22:22:05.000000000","updated":"2021-09-09 16:00:10.000000000","submitted":"2021-09-09 15:57:58.000000000","submitter":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"3505","meta_rev_id":"1dc0f7e3b63816a42bc5f61cb28ee13e5746af15","_number":3503,"virtual_id_number":3503,"owner":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"actions":{},"labels":{"Code-Review":{"approved":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"all":[{"value":0,"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},{"tag":"autogenerated:gerrit:merged","value":2,"date":"2021-09-09 15:57:58.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},{"value":0,"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]}],"values":{"-2":"This shall not be merged","-1":"I would prefer this is not merged as is"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me, approved"},"description":"","default_value":0},"Verified":{"approved":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},{"value":0,"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},{"tag":"autogenerated:gerrit:merged","value":1,"date":"2021-09-09 15:57:58.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]}],"values":{"-1":"Fails"," 0":"No score","+1":"Verified"},"description":"","default_value":0},"Autosubmit":{"all":[{"value":0,"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},{"value":0,"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},{"value":0,"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]}],"values":{" 0":"Submit manually","+1":"Submit automatically"},"description":"","default_value":0,"optional":true},"All-Comments-Resolved":{"approved":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"all":[{"value":0,"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},{"value":0,"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},{"value":0,"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]}]},"Conformant-Commit-Message":{"approved":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"all":[{"value":0,"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},{"value":0,"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},{"value":0,"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]}]}},"removable_reviewers":[{"_account_id":1000013,"name":"Profpatsch","email":"mail@profpatsch.de","username":"Profpatsch"}],"reviewers":{"REVIEWER":[{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},{"_account_id":1000013,"name":"Profpatsch","email":"mail@profpatsch.de","username":"Profpatsch"},{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2021-09-08 22:24:27.000000000","updated_by":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"reviewer":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2021-09-08 22:24:33.000000000","updated_by":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"reviewer":{"_account_id":1000013,"name":"Profpatsch","email":"mail@profpatsch.de","username":"Profpatsch"},"state":"REVIEWER"},{"updated":"2021-09-08 22:24:33.000000000","updated_by":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"reviewer":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"state":"REVIEWER"}],"messages":[{"id":"1631d1ba9e53aa273c657081d33b83a3e7a157c4","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"date":"2021-09-08 22:22:05.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"77cd59eac4dd4a19e379958fef3ea262dcd70037","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"date":"2021-09-08 22:23:38.000000000","message":"Uploaded patch set 2: Patch Set 1 was rebased.","accounts_in_message":[],"_revision_number":2},{"id":"69b15de91d4e1f490289c37a4610cc5189421580","tag":"autogenerated:buildkite~result","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2021-09-08 22:24:27.000000000","message":"Patch Set 1: Verified+1\n\nBuild of patchset 1 passed: https://buildkite.com/tvl/depot/builds/8302","accounts_in_message":[],"_revision_number":1},{"id":"77dc5211c3e90b441ab545416c0112ca8f191132","tag":"autogenerated:buildkite~result","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2021-09-08 22:25:00.000000000","message":"Patch Set 2: Verified+1\n\nBuild of patchset 2 passed: https://buildkite.com/tvl/depot/builds/8307","accounts_in_message":[],"_revision_number":2},{"id":"dc04e0ad4a365d23e04448404bd3fbead2151ca0","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"date":"2021-09-08 22:35:36.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"b94bbfcd1676c6da6e1e41d893a1091318fa96b1","tag":"autogenerated:buildkite~result","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2021-09-08 22:37:44.000000000","message":"Patch Set 3: Verified+1\n\nBuild of patchset 3 passed: https://buildkite.com/tvl/depot/builds/8309","accounts_in_message":[],"_revision_number":3},{"id":"1eb65251f632b1dd920edf0b1548fd292e2136d9","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"date":"2021-09-09 12:53:00.000000000","message":"Uploaded patch set 4: Patch Set 3 was rebased.","accounts_in_message":[],"_revision_number":4},{"id":"8633dd1b332c69f6159cef48e8ccc549de196798","tag":"autogenerated:buildkite~result","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2021-09-09 12:55:10.000000000","message":"Patch Set 4: Verified+1\n\nBuild of patchset 4 passed: https://buildkite.com/tvl/depot/builds/8320","accounts_in_message":[],"_revision_number":4},{"id":"781f6bee1dcf627a50fe16d38eed93487de4dd34","author":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"date":"2021-09-09 15:33:40.000000000","message":"Patch Set 4: Code-Review+2","accounts_in_message":[],"_revision_number":4},{"id":"eb001bbf4379697b4b77e5148ea37a3f9b9d3e8d","tag":"autogenerated:gerrit:merged","author":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"date":"2021-09-09 15:57:58.000000000","message":"Change has been successfully rebased and submitted as 23dd8067c534d97bbd1820377998379beac1b205","accounts_in_message":[],"_revision_number":5},{"id":"1dc0f7e3b63816a42bc5f61cb28ee13e5746af15","tag":"autogenerated:buildkite~result","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2021-09-09 16:00:10.000000000","message":"Patch Set 5:\n\nBuild of patchset 5 passed: https://buildkite.com/tvl/depot/builds/8323","accounts_in_message":[],"_revision_number":5}],"current_revision_number":5,"current_revision":"23dd8067c534d97bbd1820377998379beac1b205","revisions":{"eb619606a23584f59c216c77f1fc011eb5dc4116":{"kind":"REWORK","_number":1,"created":"2021-09-08 22:22:05.000000000","uploader":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"ref":"refs/changes/03/3503/1","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/03/3503/1","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/03/3503/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/03/3503/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/03/3503/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/03/3503/1"}}},"commit":{"parents":[{"commit":"9a7ad75a6751a58a7454abff61a9334f53fde96e","subject":"refactor(nix/readTree): use throw instead of assertMsg","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d9a7ad75a6751a58a7454abff61a9334f53fde96e"}]}],"author":{"name":"sterni","email":"sternenseemann@systemli.org","date":"2021-09-08 22:04:55.000000000","tz":120},"committer":{"name":"sterni","email":"sternenseemann@systemli.org","date":"2021-09-08 22:20:13.000000000","tz":120},"subject":"feat(nix/sparseTree): get a directory with only selected children","message":"feat(nix/sparseTree): get a directory with only selected children\n\nGiven a path (which points to a directory and a list of paths which\nare below that path, build a “sparse” version of that directory, so\nthat it only contains the listed paths (and their children):\n\n    $ nix-build -E \u0027with import ./. {}; nix.sparseTree ./. [\n        ./default.nix\n        ./nix/readTree\n        ./nix/buildLisp\n        ./third_party/nixpkgs\n        ./third_party/overlays\n      ]\u0027\n    /nix/store/0ynj0gc613fs6mfp9snqcvdj5gfxbdzg-sparse-depot\n    $ lr -t \u0027type \u003d\u003d d\u0027 result/\n    result/\n    result/nix\n    result/nix/buildLisp\n    result/nix/buildLisp/example\n    result/nix/readTree\n    result/nix/readTree/tests\n    […]\n    result/third_party\n    result/third_party/nixpkgs\n    result/third_party/overlays\n    result/third_party/overlays/haskell\n    result/third_party/overlays/haskell/patches\n    result/third_party/overlays/patches\n\nThis is useful if a derivation depends on depot.path (e. g. if it wants\nto import depot at runtime). Usually this means that on every depot\ncommit (or even worse, every change of .git on a local machine), this\nderivation has to be rebuild. By using sparseTree you can instead depend\non a stripped down version of depot which only contains the bits you\nactually depend on, avoiding unrelated rebuilds.\n\nChange-Id: I127b108c8b177c657fb46786d0a6256516fd2c52\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003deb619606a23584f59c216c77f1fc011eb5dc4116"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003deb619606a23584f59c216c77f1fc011eb5dc4116"}]},"parents_data":[{"branch_name":"refs/heads/canon","commit_id":"9a7ad75a6751a58a7454abff61a9334f53fde96e","is_merged_in_target_branch":false,"change_id":"I9b488a440368091ed42d707ba4124f592a64bd86","change_number":3502,"patch_set_number":1,"change_status":"MERGED"}],"branch":"refs/heads/canon"},"143479b5915918708ce31b3069c03d76b4f68356":{"kind":"TRIVIAL_REBASE","_number":2,"created":"2021-09-08 22:23:38.000000000","uploader":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"ref":"refs/changes/03/3503/2","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/03/3503/2","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/03/3503/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/03/3503/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/03/3503/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/03/3503/2"}}},"commit":{"parents":[{"commit":"0e015e5faa3492bdf866699e3a53009dde08ac16","subject":"refactor(nix/readTree): use throw instead of assertMsg","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d0e015e5faa3492bdf866699e3a53009dde08ac16"}]}],"author":{"name":"sterni","email":"sternenseemann@systemli.org","date":"2021-09-08 22:04:55.000000000","tz":120},"committer":{"name":"sterni","email":"sternenseemann@systemli.org","date":"2021-09-08 22:23:30.000000000","tz":120},"subject":"feat(nix/sparseTree): get a directory with only selected children","message":"feat(nix/sparseTree): get a directory with only selected children\n\nGiven a path (which points to a directory and a list of paths which\nare below that path, build a “sparse” version of that directory, so\nthat it only contains the listed paths (and their children):\n\n    $ nix-build -E \u0027with import ./. {}; nix.sparseTree ./. [\n        ./default.nix\n        ./nix/readTree\n        ./nix/buildLisp\n        ./third_party/nixpkgs\n        ./third_party/overlays\n      ]\u0027\n    /nix/store/0ynj0gc613fs6mfp9snqcvdj5gfxbdzg-sparse-depot\n    $ lr -t \u0027type \u003d\u003d d\u0027 result/\n    result/\n    result/nix\n    result/nix/buildLisp\n    result/nix/buildLisp/example\n    result/nix/readTree\n    result/nix/readTree/tests\n    […]\n    result/third_party\n    result/third_party/nixpkgs\n    result/third_party/overlays\n    result/third_party/overlays/haskell\n    result/third_party/overlays/haskell/patches\n    result/third_party/overlays/patches\n\nThis is useful if a derivation depends on depot.path (e. g. if it wants\nto import depot at runtime). Usually this means that on every depot\ncommit (or even worse, every change of .git on a local machine), this\nderivation has to be rebuild. By using sparseTree you can instead depend\non a stripped down version of depot which only contains the bits you\nactually depend on, avoiding unrelated rebuilds.\n\nChange-Id: I127b108c8b177c657fb46786d0a6256516fd2c52\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d143479b5915918708ce31b3069c03d76b4f68356"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d143479b5915918708ce31b3069c03d76b4f68356"}]},"parents_data":[{"branch_name":"refs/heads/canon","commit_id":"0e015e5faa3492bdf866699e3a53009dde08ac16","is_merged_in_target_branch":false,"change_id":"I9b488a440368091ed42d707ba4124f592a64bd86","change_number":3502,"patch_set_number":2,"change_status":"MERGED"}],"branch":"refs/heads/canon"},"8799ae3720b3ab5f6fed4533f11eb8841750f74a":{"kind":"REWORK","_number":3,"created":"2021-09-08 22:35:36.000000000","uploader":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"ref":"refs/changes/03/3503/3","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/03/3503/3","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/03/3503/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/03/3503/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/03/3503/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/03/3503/3"}}},"commit":{"parents":[{"commit":"0e015e5faa3492bdf866699e3a53009dde08ac16","subject":"refactor(nix/readTree): use throw instead of assertMsg","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d0e015e5faa3492bdf866699e3a53009dde08ac16"}]}],"author":{"name":"sterni","email":"sternenseemann@systemli.org","date":"2021-09-08 22:04:55.000000000","tz":120},"committer":{"name":"sterni","email":"sternenseemann@systemli.org","date":"2021-09-08 22:35:33.000000000","tz":120},"subject":"feat(nix/sparseTree): get a directory with only selected children","message":"feat(nix/sparseTree): get a directory with only selected children\n\nGiven a path (which points to a directory and a list of paths which\nare below that path, build a “sparse” version of that directory, so\nthat it only contains the listed paths (and their children):\n\n    $ nix-build -E \u0027with import ./. {}; nix.sparseTree ./. [\n        ./default.nix\n        ./nix/readTree\n        ./nix/buildLisp\n        ./third_party/nixpkgs\n        ./third_party/overlays\n      ]\u0027\n    /nix/store/0ynj0gc613fs6mfp9snqcvdj5gfxbdzg-sparse-depot\n    $ lr -t \u0027type \u003d\u003d d\u0027 result/\n    result/\n    result/nix\n    result/nix/buildLisp\n    result/nix/buildLisp/example\n    result/nix/readTree\n    result/nix/readTree/tests\n    […]\n    result/third_party\n    result/third_party/nixpkgs\n    result/third_party/overlays\n    result/third_party/overlays/haskell\n    result/third_party/overlays/haskell/patches\n    result/third_party/overlays/patches\n\nThis is useful if a derivation depends on depot.path (e. g. if it wants\nto import depot at runtime). Usually this means that on every depot\ncommit (or even worse, every change of .git on a local machine), this\nderivation has to be rebuild. By using sparseTree you can instead depend\non a stripped down version of depot which only contains the bits you\nactually depend on, avoiding unrelated rebuilds.\n\nChange-Id: I127b108c8b177c657fb46786d0a6256516fd2c52\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d8799ae3720b3ab5f6fed4533f11eb8841750f74a"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d8799ae3720b3ab5f6fed4533f11eb8841750f74a"}]},"parents_data":[{"branch_name":"refs/heads/canon","commit_id":"0e015e5faa3492bdf866699e3a53009dde08ac16","is_merged_in_target_branch":false,"change_id":"I9b488a440368091ed42d707ba4124f592a64bd86","change_number":3502,"patch_set_number":2,"change_status":"MERGED"}],"branch":"refs/heads/canon"},"f751a1dd5086450371ee8963c61515899d6601cd":{"kind":"TRIVIAL_REBASE","_number":4,"created":"2021-09-09 12:53:00.000000000","uploader":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"ref":"refs/changes/03/3503/4","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/03/3503/4","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/03/3503/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/03/3503/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/03/3503/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/03/3503/4"}}},"commit":{"parents":[{"commit":"5f9c85a1b53dc025398e00263f87bf87a16950d3","subject":"refactor(nix/readTree): use throw instead of assertMsg","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d5f9c85a1b53dc025398e00263f87bf87a16950d3"}]}],"author":{"name":"sterni","email":"sternenseemann@systemli.org","date":"2021-09-08 22:04:55.000000000","tz":120},"committer":{"name":"sterni","email":"sternenseemann@systemli.org","date":"2021-09-09 12:52:45.000000000","tz":120},"subject":"feat(nix/sparseTree): get a directory with only selected children","message":"feat(nix/sparseTree): get a directory with only selected children\n\nGiven a path (which points to a directory and a list of paths which\nare below that path, build a “sparse” version of that directory, so\nthat it only contains the listed paths (and their children):\n\n    $ nix-build -E \u0027with import ./. {}; nix.sparseTree ./. [\n        ./default.nix\n        ./nix/readTree\n        ./nix/buildLisp\n        ./third_party/nixpkgs\n        ./third_party/overlays\n      ]\u0027\n    /nix/store/0ynj0gc613fs6mfp9snqcvdj5gfxbdzg-sparse-depot\n    $ lr -t \u0027type \u003d\u003d d\u0027 result/\n    result/\n    result/nix\n    result/nix/buildLisp\n    result/nix/buildLisp/example\n    result/nix/readTree\n    result/nix/readTree/tests\n    […]\n    result/third_party\n    result/third_party/nixpkgs\n    result/third_party/overlays\n    result/third_party/overlays/haskell\n    result/third_party/overlays/haskell/patches\n    result/third_party/overlays/patches\n\nThis is useful if a derivation depends on depot.path (e. g. if it wants\nto import depot at runtime). Usually this means that on every depot\ncommit (or even worse, every change of .git on a local machine), this\nderivation has to be rebuild. By using sparseTree you can instead depend\non a stripped down version of depot which only contains the bits you\nactually depend on, avoiding unrelated rebuilds.\n\nChange-Id: I127b108c8b177c657fb46786d0a6256516fd2c52\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003df751a1dd5086450371ee8963c61515899d6601cd"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003df751a1dd5086450371ee8963c61515899d6601cd"}]},"parents_data":[{"branch_name":"refs/heads/canon","commit_id":"5f9c85a1b53dc025398e00263f87bf87a16950d3","is_merged_in_target_branch":true,"change_id":"I9b488a440368091ed42d707ba4124f592a64bd86","change_number":3502,"patch_set_number":3,"change_status":"MERGED"}],"branch":"refs/heads/canon"},"23dd8067c534d97bbd1820377998379beac1b205":{"kind":"NO_CODE_CHANGE","_number":5,"created":"2021-09-09 15:57:58.000000000","uploader":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"ref":"refs/changes/03/3503/5","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/03/3503/5","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/03/3503/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/03/3503/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/03/3503/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/03/3503/5"}}},"commit":{"parents":[{"commit":"5f9c85a1b53dc025398e00263f87bf87a16950d3","subject":"refactor(nix/readTree): use throw instead of assertMsg","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d5f9c85a1b53dc025398e00263f87bf87a16950d3"}]}],"author":{"name":"sterni","email":"sternenseemann@systemli.org","date":"2021-09-08 22:04:55.000000000","tz":120},"committer":{"name":"sterni","email":"sternenseemann@systemli.org","date":"2021-09-09 15:57:58.000000000","tz":0},"subject":"feat(nix/sparseTree): get a directory with only selected children","message":"feat(nix/sparseTree): get a directory with only selected children\n\nGiven a path (which points to a directory and a list of paths which\nare below that path, build a “sparse” version of that directory, so\nthat it only contains the listed paths (and their children):\n\n    $ nix-build -E \u0027with import ./. {}; nix.sparseTree ./. [\n        ./default.nix\n        ./nix/readTree\n        ./nix/buildLisp\n        ./third_party/nixpkgs\n        ./third_party/overlays\n      ]\u0027\n    /nix/store/0ynj0gc613fs6mfp9snqcvdj5gfxbdzg-sparse-depot\n    $ lr -t \u0027type \u003d\u003d d\u0027 result/\n    result/\n    result/nix\n    result/nix/buildLisp\n    result/nix/buildLisp/example\n    result/nix/readTree\n    result/nix/readTree/tests\n    […]\n    result/third_party\n    result/third_party/nixpkgs\n    result/third_party/overlays\n    result/third_party/overlays/haskell\n    result/third_party/overlays/haskell/patches\n    result/third_party/overlays/patches\n\nThis is useful if a derivation depends on depot.path (e. g. if it wants\nto import depot at runtime). Usually this means that on every depot\ncommit (or even worse, every change of .git on a local machine), this\nderivation has to be rebuild. By using sparseTree you can instead depend\non a stripped down version of depot which only contains the bits you\nactually depend on, avoiding unrelated rebuilds.\n\nChange-Id: I127b108c8b177c657fb46786d0a6256516fd2c52\nReviewed-on: https://cl.tvl.fyi/c/depot/+/3503\nTested-by: BuildkiteCI\nReviewed-by: tazjin \u003cmail@tazj.in\u003e\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d23dd8067c534d97bbd1820377998379beac1b205"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d23dd8067c534d97bbd1820377998379beac1b205"}]},"parents_data":[{"branch_name":"refs/heads/canon","commit_id":"5f9c85a1b53dc025398e00263f87bf87a16950d3","is_merged_in_target_branch":true,"change_id":"I9b488a440368091ed42d707ba4124f592a64bd86","change_number":3502,"patch_set_number":3,"change_status":"MERGED"}],"branch":"refs/heads/canon"}},"requirements":[],"submit_records":[{"status":"CLOSED","labels":[{"label":"Code-Review-from-owners","status":"OK","applied_by":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"}},{"label":"Conformant-Commit-Message","status":"OK","applied_by":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"}},{"label":"All-Comments-Resolved","status":"OK","applied_by":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"}},{"label":"Verified","status":"OK","applied_by":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"OK","applied_by":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"}}]}],"submit_requirements":[{"name":"Verified","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Verified\u003dCustom-Rule","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dCustom-Rule"],"failing_atoms":[]}},{"name":"All-Comments-Resolved","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:All-Comments-Resolved\u003dCustom-Rule","fulfilled":true,"status":"PASS","passing_atoms":["label:All-Comments-Resolved\u003dCustom-Rule"],"failing_atoms":[]}},{"name":"Code-Review-from-owners","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Code-Review-from-owners\u003dCustom-Rule","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review-from-owners\u003dCustom-Rule"],"failing_atoms":[]}},{"name":"Code-Review","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Code-Review\u003dCustom-Rule","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dCustom-Rule"],"failing_atoms":[]}},{"name":"Conformant-Commit-Message","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Conformant-Commit-Message\u003dCustom-Rule","fulfilled":true,"status":"PASS","passing_atoms":["label:Conformant-Commit-Message\u003dCustom-Rule"],"failing_atoms":[]}}]}
