summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: f2a0633)
raw | patch | inline | side by side (parent: f2a0633)
author | Junio C Hamano <junkio@cox.net> | |
Tue, 28 Jun 2005 06:59:18 +0000 (23:59 -0700) | ||
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | |
Tue, 28 Jun 2005 15:53:22 +0000 (08:53 -0700) |
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>
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>
Documentation/git-cat-file.txt | patch | blob | history | |
cat-file.c | patch | blob | history |
index 48fb37769c2f4e528f143713125b3d6593d57c7d..2131a29993405742fcc67ed81a578c06bf950f44 100644 (file)
SYNOPSIS
--------
-'git-cat-file' (-t | <type>) <object>
+'git-cat-file' (-t | -s | <type>) <object>
DESCRIPTION
-----------
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
-------
Instead of the content, show the object type identified by
<object>.
+-s::
+ Instead of the content, show the object size identified by
+ <object>.
+
<type>::
Typically this matches the real type of <object> but asking
for a type that can trivially dereferenced from the given
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
be returned.
diff --git a/cat-file.c b/cat-file.c
index 0076fc5b20a71b4d32add42b8dcb76a22eea4ef6..85a5d4caedec271f6c5e71ec3d7337b33447f581 100644 (file)
--- a/cat-file.c
+++ b/cat-file.c
unsigned long size;
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)) {
- printf("%s\n", type);
+ switch (argv[1][1]) {
+ case 't':
+ printf("%s\n", type);
+ break;
+ case 's':
+ printf("%lu\n", size);
+ break;
+ }
return 0;
}
buf = NULL;