54cbbe4c6e
test-sha1-array uses the_hash_algo under the hood. Since t0064 wants to use the value that is correct for the hash algorithm that we're testing, make sure the test helper initializes the repository to set the_hash_algo correctly. Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
40 lines
1019 B
C
40 lines
1019 B
C
#include "test-tool.h"
|
|
#include "cache.h"
|
|
#include "oid-array.h"
|
|
|
|
static int print_oid(const struct object_id *oid, void *data)
|
|
{
|
|
puts(oid_to_hex(oid));
|
|
return 0;
|
|
}
|
|
|
|
int cmd__oid_array(int argc, const char **argv)
|
|
{
|
|
struct oid_array array = OID_ARRAY_INIT;
|
|
struct strbuf line = STRBUF_INIT;
|
|
int nongit_ok;
|
|
|
|
setup_git_directory_gently(&nongit_ok);
|
|
|
|
while (strbuf_getline(&line, stdin) != EOF) {
|
|
const char *arg;
|
|
struct object_id oid;
|
|
|
|
if (skip_prefix(line.buf, "append ", &arg)) {
|
|
if (get_oid_hex(arg, &oid))
|
|
die("not a hexadecimal oid: %s", arg);
|
|
oid_array_append(&array, &oid);
|
|
} else if (skip_prefix(line.buf, "lookup ", &arg)) {
|
|
if (get_oid_hex(arg, &oid))
|
|
die("not a hexadecimal oid: %s", arg);
|
|
printf("%d\n", oid_array_lookup(&array, &oid));
|
|
} else if (!strcmp(line.buf, "clear"))
|
|
oid_array_clear(&array);
|
|
else if (!strcmp(line.buf, "for_each_unique"))
|
|
oid_array_for_each_unique(&array, print_oid, NULL);
|
|
else
|
|
die("unknown command: %s", line.buf);
|
|
}
|
|
return 0;
|
|
}
|