Re: [PATCH 08/20] streaming: make stream_blob_to_fd take struct object_id

2016-08-29 Thread Johannes Schindelin
Hi Brian,

On Sun, 28 Aug 2016, brian m. carlson wrote:

> Since all of its callers have been updated, modify stream_blob_to_fd to
> take a struct object_id.
> 
> Signed-off-by: brian m. carlson 

I reviewed the patches until here, and they all look very good to me.

Will continue to review after clearing out my brain with other things (it
is mesmerizing to sift through sha1->oid changes for too long).

Ciao,
Dscho


[PATCH 08/20] streaming: make stream_blob_to_fd take struct object_id

2016-08-28 Thread brian m. carlson
Since all of its callers have been updated, modify stream_blob_to_fd to
take a struct object_id.

Signed-off-by: brian m. carlson 
---
 builtin/cat-file.c | 6 +++---
 builtin/fsck.c | 2 +-
 builtin/log.c  | 4 ++--
 entry.c| 2 +-
 streaming.c| 4 ++--
 streaming.h| 2 +-
 6 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/builtin/cat-file.c b/builtin/cat-file.c
index 7b2e0537..49b8fa8e 100644
--- a/builtin/cat-file.c
+++ b/builtin/cat-file.c
@@ -83,7 +83,7 @@ static int cat_one_file(int opt, const char *exp_type, const 
char *obj_name,
}
 
if (type == OBJ_BLOB)
-   return stream_blob_to_fd(1, oid.hash, NULL, 0);
+   return stream_blob_to_fd(1, , NULL, 0);
buf = read_sha1_file(oid.hash, , );
if (!buf)
die("Cannot read object %s", obj_name);
@@ -105,7 +105,7 @@ static int cat_one_file(int opt, const char *exp_type, 
const char *obj_name,
oidcpy(_oid, );
 
if (sha1_object_info(blob_oid.hash, NULL) == OBJ_BLOB)
-   return stream_blob_to_fd(1, blob_oid.hash, 
NULL, 0);
+   return stream_blob_to_fd(1, _oid, NULL, 0);
/*
 * we attempted to dereference a tag to a blob
 * and failed; there may be new dereference
@@ -240,7 +240,7 @@ static void print_object_or_die(struct batch_options *opt, 
struct expand_data *d
if (data->type == OBJ_BLOB) {
if (opt->buffer_output)
fflush(stdout);
-   if (stream_blob_to_fd(1, oid->hash, NULL, 0) < 0)
+   if (stream_blob_to_fd(1, oid, NULL, 0) < 0)
die("unable to stream %s to stdout", oid_to_hex(oid));
}
else {
diff --git a/builtin/fsck.c b/builtin/fsck.c
index f604adff..055dfdcf 100644
--- a/builtin/fsck.c
+++ b/builtin/fsck.c
@@ -268,7 +268,7 @@ static void check_unreachable_object(struct object *obj)
if (!(f = fopen(filename, "w")))
die_errno("Could not open '%s'", filename);
if (obj->type == OBJ_BLOB) {
-   if (stream_blob_to_fd(fileno(f), obj->oid.hash, 
NULL, 1))
+   if (stream_blob_to_fd(fileno(f), >oid, 
NULL, 1))
die_errno("Could not write '%s'", 
filename);
} else
fprintf(f, "%s\n", describe_object(obj));
diff --git a/builtin/log.c b/builtin/log.c
index 48b9db51..0b427b67 100644
--- a/builtin/log.c
+++ b/builtin/log.c
@@ -474,13 +474,13 @@ static int show_blob_object(const struct object_id *oid, 
struct rev_info *rev, c
fflush(rev->diffopt.file);
if (!DIFF_OPT_TOUCHED(>diffopt, ALLOW_TEXTCONV) ||
!DIFF_OPT_TST(>diffopt, ALLOW_TEXTCONV))
-   return stream_blob_to_fd(1, oid->hash, NULL, 0);
+   return stream_blob_to_fd(1, oid, NULL, 0);
 
if (get_sha1_with_context(obj_name, 0, oidc.hash, _context))
die(_("Not a valid object name %s"), obj_name);
if (!obj_context.path[0] ||
!textconv_object(obj_context.path, obj_context.mode, , 1, 
, ))
-   return stream_blob_to_fd(1, oid->hash, NULL, 0);
+   return stream_blob_to_fd(1, oid, NULL, 0);
 
if (!buf)
die(_("git show %s: bad file"), obj_name);
diff --git a/entry.c b/entry.c
index ce80d292..c6eea240 100644
--- a/entry.c
+++ b/entry.c
@@ -127,7 +127,7 @@ static int streaming_write_entry(const struct cache_entry 
*ce, char *path,
if (fd < 0)
return -1;
 
-   result |= stream_blob_to_fd(fd, ce->oid.hash, filter, 1);
+   result |= stream_blob_to_fd(fd, >oid, filter, 1);
*fstat_done = fstat_output(fd, state, statbuf);
result |= close(fd);
 
diff --git a/streaming.c b/streaming.c
index 811fcc24..3c48f049 100644
--- a/streaming.c
+++ b/streaming.c
@@ -497,7 +497,7 @@ static open_method_decl(incore)
  * Users of streaming interface
  /
 
-int stream_blob_to_fd(int fd, unsigned const char *sha1, struct stream_filter 
*filter,
+int stream_blob_to_fd(int fd, const struct object_id *oid, struct 
stream_filter *filter,
  int can_seek)
 {
struct git_istream *st;
@@ -506,7 +506,7 @@ int stream_blob_to_fd(int fd, unsigned const char *sha1, 
struct stream_filter *f
ssize_t kept = 0;
int result = -1;
 
-   st = open_istream(sha1, , , filter);
+   st = open_istream(oid->hash, , , filter);
if (!st) {
if (filter)
free_stream_filter(filter);
diff --git a/streaming.h b/streaming.h