[PATCH] git-cat-file: '-s' to find out object size.
We use sha1_object_info() now, and getting size is also trivial. I admit that this is more of "because we can" not "because I see immediate need for it", though. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
f2a06330f0
commit
62bb99606d
@ -9,12 +9,13 @@ git-cat-file - Provide content or type information for repository objects
|
|||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
--------
|
--------
|
||||||
'git-cat-file' (-t | <type>) <object>
|
'git-cat-file' (-t | -s | <type>) <object>
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
Provides content or type of objects in the repository. The type
|
Provides content or type of objects in the repository. The type
|
||||||
is required if '-t' is not being used to find the object type.
|
is required unless '-t' is used to find the object type,
|
||||||
|
or '-s' is used to find the object size.
|
||||||
|
|
||||||
OPTIONS
|
OPTIONS
|
||||||
-------
|
-------
|
||||||
@ -25,6 +26,10 @@ OPTIONS
|
|||||||
Instead of the content, show the object type identified by
|
Instead of the content, show the object type identified by
|
||||||
<object>.
|
<object>.
|
||||||
|
|
||||||
|
-s::
|
||||||
|
Instead of the content, show the object size identified by
|
||||||
|
<object>.
|
||||||
|
|
||||||
<type>::
|
<type>::
|
||||||
Typically this matches the real type of <object> but asking
|
Typically this matches the real type of <object> but asking
|
||||||
for a type that can trivially dereferenced from the given
|
for a type that can trivially dereferenced from the given
|
||||||
@ -35,7 +40,8 @@ OPTIONS
|
|||||||
|
|
||||||
OUTPUT
|
OUTPUT
|
||||||
------
|
------
|
||||||
If '-t' is specified, one of the <type>.
|
If '-t' is specified, one of the <type>. If '-s' is specified,
|
||||||
|
the size of the <object> in bytes.
|
||||||
|
|
||||||
Otherwise the raw (though uncompressed) contents of the <object> will
|
Otherwise the raw (though uncompressed) contents of the <object> will
|
||||||
be returned.
|
be returned.
|
||||||
|
11
cat-file.c
11
cat-file.c
@ -13,11 +13,18 @@ int main(int argc, char **argv)
|
|||||||
unsigned long size;
|
unsigned long size;
|
||||||
|
|
||||||
if (argc != 3 || get_sha1(argv[2], sha1))
|
if (argc != 3 || get_sha1(argv[2], sha1))
|
||||||
usage("git-cat-file [-t | tagname] <sha1>");
|
usage("git-cat-file [-t | -s | tagname] <sha1>");
|
||||||
|
|
||||||
if (!strcmp("-t", argv[1])) {
|
if (!strcmp("-t", argv[1]) || !strcmp("-s", argv[1])) {
|
||||||
if (!sha1_object_info(sha1, type, &size)) {
|
if (!sha1_object_info(sha1, type, &size)) {
|
||||||
|
switch (argv[1][1]) {
|
||||||
|
case 't':
|
||||||
printf("%s\n", type);
|
printf("%s\n", type);
|
||||||
|
break;
|
||||||
|
case 's':
|
||||||
|
printf("%lu\n", size);
|
||||||
|
break;
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
buf = NULL;
|
buf = NULL;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user