diff options
author | Junio C Hamano <gitster@pobox.com> | 2009-04-18 14:46:17 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-04-18 14:46:17 -0700 |
commit | 9824a388e53ba0951e38f246038fa0ef6fda3397 (patch) | |
tree | afae88c319c71b70dfd76de729222af8490f2dd0 /builtin-rev-list.c | |
parent | 5758b25da43c401cad33f3304f78084a0305d21c (diff) | |
parent | cf2ab916afa4231f7e9db31796e7c0f712ff6ad1 (diff) | |
download | git-9824a388e53ba0951e38f246038fa0ef6fda3397.tar.gz git-9824a388e53ba0951e38f246038fa0ef6fda3397.tar.xz |
Merge branch 'lt/pack-object-memuse'
* lt/pack-object-memuse:
show_object(): push path_name() call further down
process_{tree,blob}: show objects without buffering
Conflicts:
builtin-pack-objects.c
builtin-rev-list.c
list-objects.c
list-objects.h
upload-pack.c
Diffstat (limited to 'builtin-rev-list.c')
-rw-r--r-- | builtin-rev-list.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/builtin-rev-list.c b/builtin-rev-list.c index 193993cf4..38a8f234d 100644 --- a/builtin-rev-list.c +++ b/builtin-rev-list.c @@ -156,27 +156,29 @@ static void finish_commit(struct commit *commit, void *data) commit->buffer = NULL; } -static void finish_object(struct object_array_entry *p, void *data) +static void finish_object(struct object *obj, const struct name_path *path, const char *name) { - if (p->item->type == OBJ_BLOB && !has_sha1_file(p->item->sha1)) - die("missing blob object '%s'", sha1_to_hex(p->item->sha1)); + if (obj->type == OBJ_BLOB && !has_sha1_file(obj->sha1)) + die("missing blob object '%s'", sha1_to_hex(obj->sha1)); } -static void show_object(struct object_array_entry *p, void *data) +static void show_object(struct object *obj, const struct name_path *path, const char *component) { + char *name = path_name(path, component); /* An object with name "foo\n0000000..." can be used to * confuse downstream "git pack-objects" very badly. */ - const char *ep = strchr(p->name, '\n'); + const char *ep = strchr(name, '\n'); - finish_object(p, data); + finish_object(obj, path, name); if (ep) { - printf("%s %.*s\n", sha1_to_hex(p->item->sha1), - (int) (ep - p->name), - p->name); + printf("%s %.*s\n", sha1_to_hex(obj->sha1), + (int) (ep - name), + name); } else - printf("%s %s\n", sha1_to_hex(p->item->sha1), p->name); + printf("%s %s\n", sha1_to_hex(obj->sha1), name); + free(name); } static void show_edge(struct commit *commit) |