diff options
author | Maximilian Bosch <maximilian@mbosch.me> | 2020-04-29 22:39:58 +0200 |
---|---|---|
committer | Maximilian Bosch <maximilian@mbosch.me> | 2020-07-28 00:44:39 +0200 |
commit | f74243846512ffabf082985bca395890c97643e0 (patch) | |
tree | 48f006bd17f825b48be4c3ceada24644ce60e749 /flake.nix | |
parent | 86805a2c0a25f5ceefac0d64e64ba57ace73b7f5 (diff) |
Merge legacy `fetchGit`-builtin with the generic `fetchTree`-function
The original idea was to implement a git-fetcher in Nix's core that
supports content hashes[1]. In #3549[2] it has been suggested to
actually use `fetchTree` for this since it's a fairly generic wrapper
over the new fetcher-API[3] and already supports content-hashes.
This patch implements a new git-fetcher based on `fetchTree` by
incorporating the following changes:
* Removed the original `fetchGit`-implementation and replaced it with an
alias on the `fetchTree` implementation.
* Ensured that the `git`-fetcher from `libfetchers` always computes a
content-hash and returns an "empty" revision on dirty trees (the
latter one is needed to retain backwards-compatibility).
* The hash-mismatch error in the fetcher-API exits with code 102 as it
usually happens whenever a hash-mismatch is detected by Nix.
* Removed the `flakes`-feature-flag: I didn't see a reason why this API
is so tightly coupled to the flakes-API and at least `fetchGit` should
remain usable without any feature-flags.
* It's only possible to specify a `narHash` for a `git`-tree if either a
`ref` or a `rev` is given[4].
* It's now possible to specify an URL without a protocol. If it's missing,
`file://` is automatically added as it was the case in the original
`fetchGit`-implementation.
[1] https://github.com/NixOS/nix/pull/3216
[2] https://github.com/NixOS/nix/pull/3549#issuecomment-625194383
[3] https://github.com/NixOS/nix/pull/3459
[4] https://github.com/NixOS/nix/pull/3216#issuecomment-553956703
Diffstat (limited to 'flake.nix')
0 files changed, 0 insertions, 0 deletions