Git fork

bundle-uri: parse bundle.<id>.creationToken values

The previous change taught Git to parse the bundle.heuristic value,
especially when its value is "creationToken". Now, teach Git to parse
the bundle.<id>.creationToken values on each bundle in a bundle list.

Before implementing any logic based on creationToken values for the
creationToken heuristic, parse and print these values for testing
purposes.

Signed-off-by: Derrick Stolee <derrickstolee@github.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

authored by

Derrick Stolee and committed by
Junio C Hamano
512fccf8 c93c3d2f

+34
+10
bundle-uri.c
··· 83 83 FILE *fp = data; 84 84 fprintf(fp, "[bundle \"%s\"]\n", info->id); 85 85 fprintf(fp, "\turi = %s\n", info->uri); 86 + 87 + if (info->creationToken) 88 + fprintf(fp, "\tcreationToken = %"PRIu64"\n", info->creationToken); 86 89 return 0; 87 90 } 88 91 ··· 200 203 if (bundle->uri) 201 204 return -1; 202 205 bundle->uri = relative_url(list->baseURI, value, NULL); 206 + return 0; 207 + } 208 + 209 + if (!strcmp(subkey, "creationtoken")) { 210 + if (sscanf(value, "%"PRIu64, &bundle->creationToken) != 1) 211 + warning(_("could not parse bundle list key %s with value '%s'"), 212 + "creationToken", value); 203 213 return 0; 204 214 } 205 215
+6
bundle-uri.h
··· 42 42 * this boolean is true. 43 43 */ 44 44 unsigned unbundled:1; 45 + 46 + /** 47 + * If the bundle is part of a list with the creationToken 48 + * heuristic, then we use this member for sorting the bundles. 49 + */ 50 + uint64_t creationToken; 45 51 }; 46 52 47 53 #define REMOTE_BUNDLE_INFO_INIT { 0 }
+18
t/t5750-bundle-uri-parse.sh
··· 258 258 heuristic = creationToken 259 259 [bundle "one"] 260 260 uri = http://example.com/bundle.bdl 261 + creationToken = 123456 261 262 [bundle "two"] 262 263 uri = https://example.com/bundle.bdl 264 + creationToken = 12345678901234567890 263 265 [bundle "three"] 264 266 uri = file:///usr/share/git/bundle.bdl 267 + creationToken = 1 265 268 EOF 266 269 267 270 test-tool bundle-uri parse-config expect >actual 2>err && 268 271 test_must_be_empty err && 269 272 test_cmp_config_output expect actual 273 + ' 274 + 275 + test_expect_success 'parse config format edge cases: creationToken heuristic' ' 276 + cat >expect <<-\EOF && 277 + [bundle] 278 + version = 1 279 + mode = all 280 + heuristic = creationToken 281 + [bundle "one"] 282 + uri = http://example.com/bundle.bdl 283 + creationToken = bogus 284 + EOF 285 + 286 + test-tool bundle-uri parse-config expect >actual 2>err && 287 + grep "could not parse bundle list key creationToken with value '\''bogus'\''" err 270 288 ' 271 289 272 290 test_done