about summary refs log tree commit diff
path: root/tests/fetchGit.sh
AgeCommit message (Collapse)AuthorFilesLines
2018-08-17 fetchGit: use a better caching schemeGraham Christensen1-2/+2
The current usage technically works by putting multiple different repos in to the same git directory. However, it is very slow as Git tries very hard to find common commits between the two repositories. If the two repositories are large (like Nixpkgs and another long-running project,) it is maddeningly slow. This change busts the cache for existing deployments, but users will be promptly repaid in per-repository performance.
2018-01-16 Add pure evaluation modeEelco Dolstra1-0/+7
In this mode, the following restrictions apply: * The builtins currentTime, currentSystem and storePath throw an error. * $NIX_PATH and -I are ignored. * fetchGit and fetchMercurial require a revision hash. * fetchurl and fetchTarball require a sha256 attribute. * No file system access is allowed outside of the paths returned by fetch{Git,Mercurial,url,Tarball}. Thus 'nix build -f ./foo.nix' is not allowed. Thus, the evaluation result is completely reproducible from the command line arguments. E.g. nix build --pure-eval '( let nix = fetchGit { url = https://github.com/NixOS/nixpkgs.git; rev = "9c927de4b179a6dd210dd88d34bda8af4b575680"; }; nixpkgs = fetchGit { url = https://github.com/NixOS/nixpkgs.git; ref = "release-17.09"; rev = "66b4de79e3841530e6d9c6baf98702aa1f7124e4"; }; in (import (nix + "/release.nix") { inherit nix nixpkgs; }).build.x86_64-linux )' The goal is to enable completely reproducible and traceable evaluation. For example, a NixOS configuration could be fully described by a single Git commit hash. 'nixos-rebuild' would do something like nix build --pure-eval '( (import (fetchGit { url = file:///my-nixos-config; rev = "..."; })).system ') where the Git repository /my-nixos-config would use further fetchGit calls or Git externals to fetch Nixpkgs and whatever other dependencies it has. Either way, the commit hash would uniquely identify the NixOS configuration and allow it to reproduced.
2018-01-09 fetchGit.sh: Test we don't "corrupt" cache if invoke w/o git availWill Dietz1-0/+13
2017-12-22 fetchGit: Fix handling of local repo when not using 'master' branchWill Dietz1-0/+26
Add tests checking this behavior.
2017-11-24 fetchGit: Ignore tarballTtl if rev is set and not in the repo.Shea Levy1-0/+7
Fixes #1697.
2017-11-21 fetchGit/fetchMercurial: Fix directory inclusion checkEelco Dolstra1-1/+3
E.g. the existence of .gitignore would cause .git to be included.
2017-11-07 Show when tests are skippedEelco Dolstra1-1/+1
Also, don't depend on tput (ncurses). It's really not needed since ANSI escape sequences have been standardized for 35 years or so.
2017-11-03 fetchGit/fetchMercurial: Filter out directories with untracked filesEelco Dolstra1-3/+6
2017-11-03 fetchGit: Add a testEelco Dolstra1-0/+83