diff --git a/version.nix b/version.nix index f82fb62102..1f0d103a9e 100644 --- a/version.nix +++ b/version.nix @@ -5,7 +5,20 @@ { pkgs, ... }: let - hgRepo = builtins.path { path = ./.hg; name = "depot-hg"; }; + inherit (pkgs) lib; + inherit (builtins) elemAt match length; + hgRelativePath = path: elemAt (match ".*/\\.hg/(.*)$" path) 0; + hgDepth = path: length (lib.splitString "/" (hgRelativePath path)); + hgRepo = builtins.path { + path = ./.hg; + name = "depot-hg"; + filter = path: type: (type == "directory" && ( + hgRelativePath path == "store" || + hgRelativePath path == "merge" || + hgRelativePath path == "cache")) || + (type == "regular" && hgDepth path == 1) || + (type == "regular" && hgDepth path == 2); + }; changesetDeriv = pkgs.runCommandLocal "depot-version" { HG_REPO = hgRepo; MERCURIAL = pkgs.mercurial;