mirror of
https://github.com/privatevoid-net/nix-super.git
synced 2024-11-10 08:16:15 +02:00
Merge pull request #2582 from LnL7/fetchgit-refs
fetchGit: allow fetching explicit refs
This commit is contained in:
commit
33db1d35ae
4 changed files with 43 additions and 1 deletions
|
@ -425,6 +425,13 @@ stdenv.mkDerivation { … }
|
||||||
This is often a branch or tag name. Defaults to
|
This is often a branch or tag name. Defaults to
|
||||||
<literal>HEAD</literal>.
|
<literal>HEAD</literal>.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
By default, the <varname>ref</varname> value is prefixed
|
||||||
|
with <literal>refs/heads/</literal>. As of Nix 2.3.0
|
||||||
|
Nix will not prefix <literal>refs/heads/</literal> if
|
||||||
|
<varname>ref</varname> starts with <literal>refs/</literal>.
|
||||||
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
</variablelist>
|
</variablelist>
|
||||||
|
@ -438,6 +445,14 @@ stdenv.mkDerivation { … }
|
||||||
}</programlisting>
|
}</programlisting>
|
||||||
</example>
|
</example>
|
||||||
|
|
||||||
|
<example>
|
||||||
|
<title>Fetching an arbitrary ref</title>
|
||||||
|
<programlisting>builtins.fetchGit {
|
||||||
|
url = "https://gitub.com/NixOS/nix.git";
|
||||||
|
ref = "refs/heads/0.5-release";
|
||||||
|
}</programlisting>
|
||||||
|
</example>
|
||||||
|
|
||||||
<example>
|
<example>
|
||||||
<title>Fetching a repository's specific commit on an arbitrary branch</title>
|
<title>Fetching a repository's specific commit on an arbitrary branch</title>
|
||||||
<para>
|
<para>
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
</partintro>
|
</partintro>
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
<xi:include href="rl-2.3.xml" />
|
||||||
<xi:include href="rl-2.2.xml" />
|
<xi:include href="rl-2.2.xml" />
|
||||||
<xi:include href="rl-2.1.xml" />
|
<xi:include href="rl-2.1.xml" />
|
||||||
<xi:include href="rl-2.0.xml" />
|
<xi:include href="rl-2.0.xml" />
|
||||||
|
|
22
doc/manual/release-notes/rl-2.3.xml
Normal file
22
doc/manual/release-notes/rl-2.3.xml
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
<section xmlns="http://docbook.org/ns/docbook"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||||
|
version="5.0"
|
||||||
|
xml:id="ssec-relnotes-2.3">
|
||||||
|
|
||||||
|
<title>Release 2.3 (????-??-??)</title>
|
||||||
|
|
||||||
|
<para>This release contains the following changes:</para>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><function>builtins.fetchGit</function>'s <varname>ref</varname>
|
||||||
|
argument now allows specifying an absolute remote ref.
|
||||||
|
Nix will automatically prefix <varname>ref</varname> with
|
||||||
|
<literal>refs/heads</literal> only if <varname>ref</varname> doesn't
|
||||||
|
already begin with <literal>refs/</literal>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</section>
|
|
@ -94,7 +94,11 @@ GitInfo exportGit(ref<Store> store, const std::string & uri,
|
||||||
runProgram("git", true, { "init", "--bare", cacheDir });
|
runProgram("git", true, { "init", "--bare", cacheDir });
|
||||||
}
|
}
|
||||||
|
|
||||||
Path localRefFile = cacheDir + "/refs/heads/" + *ref;
|
Path localRefFile;
|
||||||
|
if (ref->compare(0, 5, "refs/") == 0)
|
||||||
|
localRefFile = cacheDir + "/" + *ref;
|
||||||
|
else
|
||||||
|
localRefFile = cacheDir + "/refs/heads/" + *ref;
|
||||||
|
|
||||||
bool doFetch;
|
bool doFetch;
|
||||||
time_t now = time(0);
|
time_t now = time(0);
|
||||||
|
|
Loading…
Reference in a new issue