[PATCH/selftest] hash-object: don't rely on order of --stdin, -w arguments
- From
Gerrit Pape <pape@smarden.org>
- Date
- Feb 13, 2008, 22:49 UTC
- Message-ID
- <20080213224941.18121.qmail@c0fdbb95c1b5f1.315fe32.mid.smarden.org>
- In-Reply-To
- <7v7ih8pre6.fsf@gitster.siamese.dyndns.org>
Fix 'git hash-object --stdin -w' to actually write the object, just as 'git hash-object -w --stdin' does.
Reported by Josh Triplett through http://bugs.debian.org/464432
Signed-off-by: Gerrit Pape <pape@smarden.org> --- hash-object.c | 8 +++++--- t/t5303-hash-object.sh | 19 +++++++++++++++++++ 2 files changed, 24 insertions(+), 3 deletions(-) create mode 100755 t/t5303-hash-object.sh
diff --git a/hash-object.c b/hash-object.c index 0a58f3f..ff60f0f 100644 --- a/hash-object.c +++ b/hash-object.c @@ -41,6 +41,7 @@ int main(int argc, char **argv) const char *prefix = NULL; int prefix_length = -1; int no_more_flags = 0; + int hashstdin = 0; git_config(git_default_config); @@ -64,9 +65,8 @@ int main(int argc, char **argv) } else if (!strcmp(argv[i], "--help")) usage(hash_object_usage); - else if (!strcmp(argv[i], "--stdin")) { - hash_stdin(type, write_object); - } + else if (!strcmp(argv[i], "--stdin")) + hashstdin = 1; else usage(hash_object_usage); } @@ -79,5 +79,7 @@ int main(int argc, char **argv) no_more_flags = 1; } } + if (hashstdin) + hash_stdin(type, write_object); return 0; } diff --git a/t/t5303-hash-object.sh b/t/t5303-hash-object.sh new file mode 100755 index 0000000..23dcfcb --- /dev/null +++ b/t/t5303-hash-object.sh @@ -0,0 +1,19 @@ +#!/bin/sh + +test_description=git-hash-object + +. ./test-lib.sh + +test_expect_success \ + 'git hash-object -w --stdin saves the object' \ + 'echo foo | git hash-object -w --stdin && + test -r .git/objects/25/7cc5642cb1a054f08cc83f2d943e56fd3ebe99 && + rm -f .git/objects/25/7cc5642cb1a054f08cc83f2d943e56fd3ebe99' + +test_expect_success \ + 'git hash-object --stdin -w saves the object' \ + 'echo foo | git hash-object --stdin -w && + test -r .git/objects/25/7cc5642cb1a054f08cc83f2d943e56fd3ebe99 && + rm -f .git/objects/25/7cc5642cb1a054f08cc83f2d943e56fd3ebe99' + +test_done
-- 1.5.4.1