diff --git a/doc/manual/expressions/builtins.xml b/doc/manual/expressions/builtins.xml
index 07d8357b4..873f30b06 100644
--- a/doc/manual/expressions/builtins.xml
+++ b/doc/manual/expressions/builtins.xml
@@ -398,6 +398,84 @@ stdenv.mkDerivation { … }
+
+
+ Fetching a private repository over SSH
+ builtins.fetchGit {
+ url = "git@github.com:my-secret/repository.git";
+ ref = "master";
+ rev = "adab8b916a45068c044658c4158d81878f9ed1c3";
+}
+
+
+
+ Fetching a repository's specific commit on an arbitrary branch
+
+ If the revision you're looking for is in the default branch
+ of the gift repository you don't strictly need to specify
+ the branch name in the ref attribute.
+
+
+ However, if the revision you're looking for is in a future
+ branch for the non-default branch you will need to specify
+ the the ref attribute as well.
+
+ builtins.fetchGit {
+ url = "https://github.com/nixos/nix.git";
+ rev = "841fcbd04755c7a2865c51c1e2d3b045976b7452";
+ ref = "1.11-maintenance";
+}
+
+
+ It is nice to always specify the branch which a revision
+ belongs to. Without the branch being specified, the
+ fetcher might fail if the default branch changes.
+ Additionally, it can be confusing to try a commit from a
+ non-default branch and see the fetch fail. If the branch
+ is specified the fault is much more obvious.
+
+
+
+
+
+ Fetching a repository's specific commit on the default branch
+
+ If the revision you're looking for is in the default branch
+ of the gift repository you may omit the
+ ref attribute.
+
+ builtins.fetchGit {
+ url = "https://github.com/nixos/nix.git";
+ rev = "841fcbd04755c7a2865c51c1e2d3b045976b7452";
+}
+
+
+
+ Fetching a tag
+ builtins.fetchGit {
+ url = "https://github.com/nixos/nix.git";
+ ref = "tags/1.9";
+}
+ Due to a bug (#2385),
+ only non-annotated tags can be fetched.
+
+
+
+ Fetching the latest version of a remote branch
+
+ builtins.fetchGit can behave impurely
+ fetch the latest version of a remote branch.
+
+ Nix will refetch the branch in accordance to
+ .
+ This behavior is disabled in
+ Pure evaluation mode.
+ builtins.fetchGit {
+ url = "ssh://git@github.com/nixos/nix.git";
+ ref = "master";
+}
+
@@ -1244,8 +1322,8 @@ in foo
This is not allowed because it would cause a cyclic dependency in
the computation of the cryptographic hashes for
foo and bar.
- It is also not possible to reference the result of a derivation.
- If you are using Nixpkgs, the writeTextFile function is able to
+ It is also not possible to reference the result of a derivation.
+ If you are using Nixpkgs, the writeTextFile function is able to
do that.