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>
This commit is contained in:
parent
c93c3d2fa4
commit
512fccf8a5
10
bundle-uri.c
10
bundle-uri.c
@ -83,6 +83,9 @@ static int summarize_bundle(struct remote_bundle_info *info, void *data)
|
|||||||
FILE *fp = data;
|
FILE *fp = data;
|
||||||
fprintf(fp, "[bundle \"%s\"]\n", info->id);
|
fprintf(fp, "[bundle \"%s\"]\n", info->id);
|
||||||
fprintf(fp, "\turi = %s\n", info->uri);
|
fprintf(fp, "\turi = %s\n", info->uri);
|
||||||
|
|
||||||
|
if (info->creationToken)
|
||||||
|
fprintf(fp, "\tcreationToken = %"PRIu64"\n", info->creationToken);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -203,6 +206,13 @@ static int bundle_list_update(const char *key, const char *value,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!strcmp(subkey, "creationtoken")) {
|
||||||
|
if (sscanf(value, "%"PRIu64, &bundle->creationToken) != 1)
|
||||||
|
warning(_("could not parse bundle list key %s with value '%s'"),
|
||||||
|
"creationToken", value);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* At this point, we ignore any information that we don't
|
* At this point, we ignore any information that we don't
|
||||||
* understand, assuming it to be hints for a heuristic the client
|
* understand, assuming it to be hints for a heuristic the client
|
||||||
|
@ -42,6 +42,12 @@ struct remote_bundle_info {
|
|||||||
* this boolean is true.
|
* this boolean is true.
|
||||||
*/
|
*/
|
||||||
unsigned unbundled:1;
|
unsigned unbundled:1;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* If the bundle is part of a list with the creationToken
|
||||||
|
* heuristic, then we use this member for sorting the bundles.
|
||||||
|
*/
|
||||||
|
uint64_t creationToken;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define REMOTE_BUNDLE_INFO_INIT { 0 }
|
#define REMOTE_BUNDLE_INFO_INIT { 0 }
|
||||||
|
@ -258,10 +258,13 @@ test_expect_success 'parse config format: creationToken heuristic' '
|
|||||||
heuristic = creationToken
|
heuristic = creationToken
|
||||||
[bundle "one"]
|
[bundle "one"]
|
||||||
uri = http://example.com/bundle.bdl
|
uri = http://example.com/bundle.bdl
|
||||||
|
creationToken = 123456
|
||||||
[bundle "two"]
|
[bundle "two"]
|
||||||
uri = https://example.com/bundle.bdl
|
uri = https://example.com/bundle.bdl
|
||||||
|
creationToken = 12345678901234567890
|
||||||
[bundle "three"]
|
[bundle "three"]
|
||||||
uri = file:///usr/share/git/bundle.bdl
|
uri = file:///usr/share/git/bundle.bdl
|
||||||
|
creationToken = 1
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
test-tool bundle-uri parse-config expect >actual 2>err &&
|
test-tool bundle-uri parse-config expect >actual 2>err &&
|
||||||
@ -269,4 +272,19 @@ test_expect_success 'parse config format: creationToken heuristic' '
|
|||||||
test_cmp_config_output expect actual
|
test_cmp_config_output expect actual
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'parse config format edge cases: creationToken heuristic' '
|
||||||
|
cat >expect <<-\EOF &&
|
||||||
|
[bundle]
|
||||||
|
version = 1
|
||||||
|
mode = all
|
||||||
|
heuristic = creationToken
|
||||||
|
[bundle "one"]
|
||||||
|
uri = http://example.com/bundle.bdl
|
||||||
|
creationToken = bogus
|
||||||
|
EOF
|
||||||
|
|
||||||
|
test-tool bundle-uri parse-config expect >actual 2>err &&
|
||||||
|
grep "could not parse bundle list key creationToken with value '\''bogus'\''" err
|
||||||
|
'
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
Loading…
Reference in New Issue
Block a user