mirror of
https://github.com/git/git.git
synced 2024-11-24 18:33:43 +08:00
builtin/hash-object: convert to struct object_id
Signed-off-by: Patryk Obara <patryk.obara@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
b3622a4ee9
commit
eab8bf292b
@ -16,7 +16,7 @@
|
||||
* needs to bypass the data conversion performed by, and the type
|
||||
* limitation imposed by, index_fd() and its callees.
|
||||
*/
|
||||
static int hash_literally(unsigned char *sha1, int fd, const char *type, unsigned flags)
|
||||
static int hash_literally(struct object_id *oid, int fd, const char *type, unsigned flags)
|
||||
{
|
||||
struct strbuf buf = STRBUF_INIT;
|
||||
int ret;
|
||||
@ -24,7 +24,7 @@ static int hash_literally(unsigned char *sha1, int fd, const char *type, unsigne
|
||||
if (strbuf_read(&buf, fd, 4096) < 0)
|
||||
ret = -1;
|
||||
else
|
||||
ret = hash_sha1_file_literally(buf.buf, buf.len, type, sha1, flags);
|
||||
ret = hash_sha1_file_literally(buf.buf, buf.len, type, oid->hash, flags);
|
||||
strbuf_release(&buf);
|
||||
return ret;
|
||||
}
|
||||
@ -33,16 +33,16 @@ static void hash_fd(int fd, const char *type, const char *path, unsigned flags,
|
||||
int literally)
|
||||
{
|
||||
struct stat st;
|
||||
unsigned char sha1[20];
|
||||
struct object_id oid;
|
||||
|
||||
if (fstat(fd, &st) < 0 ||
|
||||
(literally
|
||||
? hash_literally(sha1, fd, type, flags)
|
||||
: index_fd(sha1, fd, &st, type_from_string(type), path, flags)))
|
||||
? hash_literally(&oid, fd, type, flags)
|
||||
: index_fd(oid.hash, fd, &st, type_from_string(type), path, flags)))
|
||||
die((flags & HASH_WRITE_OBJECT)
|
||||
? "Unable to add %s to database"
|
||||
: "Unable to hash %s", path);
|
||||
printf("%s\n", sha1_to_hex(sha1));
|
||||
printf("%s\n", oid_to_hex(&oid));
|
||||
maybe_flush_or_die(stdout, "hash to stdout");
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user