Commit 017ceb4
Don't re-download a tarball we already have, even after the URL cache expires
Nix re-checks a downloaded tarball's URL every hour by default (tarball-ttl),
even when the caller already pinned the exact content hash (narHash). That
pinned hash is enough to know the content is still correct without
contacting the server again, but nothing was checking for that case, so
fetches kept hitting the network on a schedule for no reason.
If the cached entry for a URL has gone stale but its content still matches
the pinned hash, reuse it instead of re-downloading. This is skipped when
the TTL is explicitly 0 (as with `--refresh`), since that means the caller
wants the source re-verified regardless of any hash we already have on file.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>1 parent 7f711be commit 017ceb4
2 files changed
Lines changed: 51 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
105 | 105 | | |
106 | 106 | | |
107 | 107 | | |
108 | | - | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
109 | 113 | | |
110 | 114 | | |
111 | 115 | | |
| |||
150 | 154 | | |
151 | 155 | | |
152 | 156 | | |
153 | | - | |
154 | | - | |
155 | | - | |
156 | | - | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
157 | 174 | | |
158 | 175 | | |
159 | 176 | | |
| |||
491 | 508 | | |
492 | 509 | | |
493 | 510 | | |
494 | | - | |
| 511 | + | |
| 512 | + | |
495 | 513 | | |
496 | 514 | | |
497 | 515 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
34 | 61 | | |
35 | 62 | | |
36 | 63 | | |
| |||
0 commit comments