* [PATCH 0/2] Ensure git ls-tree exits with a non-zero exit code if read_tree_recursive fails. @ 2011-07-23 12:27 Jon Seymour 2011-07-23 12:27 ` [PATCH 1/2] Add a test to check that git ls-tree sets non-zero exit code on error Jon Seymour 2011-07-23 12:27 ` [PATCH 2/2] Ensure git ls-tree exits with a non-zero exit code if read_tree_recursive fails Jon Seymour 0 siblings, 2 replies; 7+ messages in thread From: Jon Seymour @ 2011-07-23 12:27 UTC (permalink / raw) To: git; +Cc: Jon Seymour While working with a damaged repository, I noticed that git ls-tree was reporting an error even though it set a zero exit code. This patch uses the return code from read_tree_recursive instead. Jon Seymour (2): Add a test to check that git ls-tree sets non-zero exit code on error. Ensure git ls-tree exits with a non-zero exit code if read_tree_recursive fails. builtin/ls-tree.c | 6 +++--- t/t3103-ls-tree-missing-tree.sh | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+), 3 deletions(-) create mode 100755 t/t3103-ls-tree-missing-tree.sh -- 1.7.6.347.g6a5a9c ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/2] Add a test to check that git ls-tree sets non-zero exit code on error. 2011-07-23 12:27 [PATCH 0/2] Ensure git ls-tree exits with a non-zero exit code if read_tree_recursive fails Jon Seymour @ 2011-07-23 12:27 ` Jon Seymour 2011-07-23 18:01 ` Jens Lehmann 2011-07-23 12:27 ` [PATCH 2/2] Ensure git ls-tree exits with a non-zero exit code if read_tree_recursive fails Jon Seymour 1 sibling, 1 reply; 7+ messages in thread From: Jon Seymour @ 2011-07-23 12:27 UTC (permalink / raw) To: git; +Cc: Jon Seymour Fails at this commit, fixed by subsequent commit. Signed-off-by: Jon Seymour <jon.seymour@gmail.com> --- t/t3103-ls-tree-missing-tree.sh | 19 +++++++++++++++++++ 1 files changed, 19 insertions(+), 0 deletions(-) create mode 100755 t/t3103-ls-tree-missing-tree.sh diff --git a/t/t3103-ls-tree-missing-tree.sh b/t/t3103-ls-tree-missing-tree.sh new file mode 100755 index 0000000..365ac07 --- /dev/null +++ b/t/t3103-ls-tree-missing-tree.sh @@ -0,0 +1,19 @@ +#!/bin/sh + +test_description='ls-tree exits with non-zero status if it also reports an error' + +. ./test-lib.sh + +test_expect_success 'setup' ' + mkdir a && + touch a/one && + git add a/one && + git commit -m test +' + +test_expect_success 'ls-tree fails with non-zero exit code on broken tree' ' + rm -f .git/objects/5f/cffbd6e4c5c5b8d81f5e9314b20e338e3ffff5 && + test_must_fail git ls-tree -r HEAD +' + +test_done -- 1.7.6.347.g6a5a9c ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] Add a test to check that git ls-tree sets non-zero exit code on error. 2011-07-23 12:27 ` [PATCH 1/2] Add a test to check that git ls-tree sets non-zero exit code on error Jon Seymour @ 2011-07-23 18:01 ` Jens Lehmann 0 siblings, 0 replies; 7+ messages in thread From: Jens Lehmann @ 2011-07-23 18:01 UTC (permalink / raw) To: Jon Seymour; +Cc: git Am 23.07.2011 14:27, schrieb Jon Seymour: > Fails at this commit, fixed by subsequent commit. Maybe use "test_expect_failure" here and change that to "test_expect_success" in the next commit? > Signed-off-by: Jon Seymour <jon.seymour@gmail.com> > --- > t/t3103-ls-tree-missing-tree.sh | 19 +++++++++++++++++++ > 1 files changed, 19 insertions(+), 0 deletions(-) > create mode 100755 t/t3103-ls-tree-missing-tree.sh > > diff --git a/t/t3103-ls-tree-missing-tree.sh b/t/t3103-ls-tree-missing-tree.sh > new file mode 100755 > index 0000000..365ac07 > --- /dev/null > +++ b/t/t3103-ls-tree-missing-tree.sh > @@ -0,0 +1,19 @@ > +#!/bin/sh > + > +test_description='ls-tree exits with non-zero status if it also reports an error' > + > +. ./test-lib.sh > + > +test_expect_success 'setup' ' > + mkdir a && > + touch a/one && > + git add a/one && > + git commit -m test > +' > + > +test_expect_success 'ls-tree fails with non-zero exit code on broken tree' ' > + rm -f .git/objects/5f/cffbd6e4c5c5b8d81f5e9314b20e338e3ffff5 && > + test_must_fail git ls-tree -r HEAD > +' > + > +test_done ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 2/2] Ensure git ls-tree exits with a non-zero exit code if read_tree_recursive fails. 2011-07-23 12:27 [PATCH 0/2] Ensure git ls-tree exits with a non-zero exit code if read_tree_recursive fails Jon Seymour 2011-07-23 12:27 ` [PATCH 1/2] Add a test to check that git ls-tree sets non-zero exit code on error Jon Seymour @ 2011-07-23 12:27 ` Jon Seymour 1 sibling, 0 replies; 7+ messages in thread From: Jon Seymour @ 2011-07-23 12:27 UTC (permalink / raw) To: git; +Cc: Jon Seymour In the case of a corrupt repository, git ls-tree may report an error but presently it exits with a code of 0. This change uses the return code of read_tree_recursive instead. Signed-off-by: Jon Seymour <jon.seymour@gmail.com> --- builtin/ls-tree.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/builtin/ls-tree.c b/builtin/ls-tree.c index f08c5b0..6d6c992 100644 --- a/builtin/ls-tree.c +++ b/builtin/ls-tree.c @@ -120,7 +120,7 @@ int cmd_ls_tree(int argc, const char **argv, const char *prefix) { unsigned char sha1[20]; struct tree *tree; - int i, full_tree = 0; + int i, full_tree = 0, err; const struct option ls_tree_options[] = { OPT_BIT('d', NULL, &ls_options, "only show trees", LS_TREE_ONLY), @@ -173,7 +173,7 @@ int cmd_ls_tree(int argc, const char **argv, const char *prefix) tree = parse_tree_indirect(sha1); if (!tree) die("not a tree object"); - read_tree_recursive(tree, "", 0, 0, &pathspec, show_tree, NULL); + err = read_tree_recursive(tree, "", 0, 0, &pathspec, show_tree, NULL); - return 0; + return err; } -- 1.7.6.347.g6a5a9c ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 0/2 v2] ls-tree: exit with non-zero status on error @ 2011-07-24 1:07 Jon Seymour 2011-07-24 1:07 ` [PATCH 2/2] Ensure git ls-tree exits with a non-zero exit code if read_tree_recursive fails Jon Seymour 0 siblings, 1 reply; 7+ messages in thread From: Jon Seymour @ 2011-07-24 1:07 UTC (permalink / raw) To: git; +Cc: Jens.Lehmann, Jon Seymour While working with a damaged repository, I noticed that git ls-tree was reporting an error even though it set a zero exit code. This patch uses the return code from read_tree_recursive instead. | v2: Amended test per Jens Lehmann's suggestion. Jon Seymour (2): Add a test to check that git ls-tree sets non-zero exit code on error. Ensure git ls-tree exits with a non-zero exit code if read_tree_recursive fails. builtin/ls-tree.c | 6 +++--- t/t3103-ls-tree-missing-tree.sh | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+), 3 deletions(-) create mode 100755 t/t3103-ls-tree-missing-tree.sh -- 1.7.6.347.g6a5a9c ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 2/2] Ensure git ls-tree exits with a non-zero exit code if read_tree_recursive fails. 2011-07-24 1:07 [PATCH 0/2 v2] ls-tree: exit with non-zero status on error Jon Seymour @ 2011-07-24 1:07 ` Jon Seymour 2011-07-24 7:45 ` Junio C Hamano 2011-07-24 13:42 ` Jens Lehmann 0 siblings, 2 replies; 7+ messages in thread From: Jon Seymour @ 2011-07-24 1:07 UTC (permalink / raw) To: git; +Cc: Jens.Lehmann, Jon Seymour In the case of a corrupt repository, git ls-tree may report an error but presently it exits with a code of 0. This change uses the return code of read_tree_recursive instead. Improved-by: Jens Lehmann <Jens.Lehmann@web.de> Signed-off-by: Jon Seymour <jon.seymour@gmail.com> --- builtin/ls-tree.c | 6 +++--- t/t3103-ls-tree-missing-tree.sh | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/builtin/ls-tree.c b/builtin/ls-tree.c index f08c5b0..6d6c992 100644 --- a/builtin/ls-tree.c +++ b/builtin/ls-tree.c @@ -120,7 +120,7 @@ int cmd_ls_tree(int argc, const char **argv, const char *prefix) { unsigned char sha1[20]; struct tree *tree; - int i, full_tree = 0; + int i, full_tree = 0, err; const struct option ls_tree_options[] = { OPT_BIT('d', NULL, &ls_options, "only show trees", LS_TREE_ONLY), @@ -173,7 +173,7 @@ int cmd_ls_tree(int argc, const char **argv, const char *prefix) tree = parse_tree_indirect(sha1); if (!tree) die("not a tree object"); - read_tree_recursive(tree, "", 0, 0, &pathspec, show_tree, NULL); + err = read_tree_recursive(tree, "", 0, 0, &pathspec, show_tree, NULL); - return 0; + return err; } diff --git a/t/t3103-ls-tree-missing-tree.sh b/t/t3103-ls-tree-missing-tree.sh index cd17fa7..365ac07 100755 --- a/t/t3103-ls-tree-missing-tree.sh +++ b/t/t3103-ls-tree-missing-tree.sh @@ -11,7 +11,7 @@ test_expect_success 'setup' ' git commit -m test ' -test_expect_failure 'ls-tree fails with non-zero exit code on broken tree' ' +test_expect_success 'ls-tree fails with non-zero exit code on broken tree' ' rm -f .git/objects/5f/cffbd6e4c5c5b8d81f5e9314b20e338e3ffff5 && test_must_fail git ls-tree -r HEAD ' -- 1.7.6.347.g96e0b ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 2/2] Ensure git ls-tree exits with a non-zero exit code if read_tree_recursive fails. 2011-07-24 1:07 ` [PATCH 2/2] Ensure git ls-tree exits with a non-zero exit code if read_tree_recursive fails Jon Seymour @ 2011-07-24 7:45 ` Junio C Hamano 2011-07-24 13:42 ` Jens Lehmann 1 sibling, 0 replies; 7+ messages in thread From: Junio C Hamano @ 2011-07-24 7:45 UTC (permalink / raw) To: Jon Seymour; +Cc: git, Jens.Lehmann Jon Seymour <jon.seymour@gmail.com> writes: > In the case of a corrupt repository, git ls-tree may report an error but > presently it exits with a code of 0. > > This change uses the return code of read_tree_recursive instead. > > Improved-by: Jens Lehmann <Jens.Lehmann@web.de> > Signed-off-by: Jon Seymour <jon.seymour@gmail.com> > --- > builtin/ls-tree.c | 6 +++--- > t/t3103-ls-tree-missing-tree.sh | 2 +- > 2 files changed, 4 insertions(+), 4 deletions(-) > > diff --git a/builtin/ls-tree.c b/builtin/ls-tree.c > index f08c5b0..6d6c992 100644 > --- a/builtin/ls-tree.c > +++ b/builtin/ls-tree.c > @@ -120,7 +120,7 @@ int cmd_ls_tree(int argc, const char **argv, const char *prefix) > { > unsigned char sha1[20]; > struct tree *tree; > - int i, full_tree = 0; > + int i, full_tree = 0, err; > const struct option ls_tree_options[] = { > OPT_BIT('d', NULL, &ls_options, "only show trees", > LS_TREE_ONLY), > @@ -173,7 +173,7 @@ int cmd_ls_tree(int argc, const char **argv, const char *prefix) > tree = parse_tree_indirect(sha1); > if (!tree) > die("not a tree object"); > - read_tree_recursive(tree, "", 0, 0, &pathspec, show_tree, NULL); > + err = read_tree_recursive(tree, "", 0, 0, &pathspec, show_tree, NULL); > > - return 0; > + return err; > } Makes sense. Thanks. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 2/2] Ensure git ls-tree exits with a non-zero exit code if read_tree_recursive fails. 2011-07-24 1:07 ` [PATCH 2/2] Ensure git ls-tree exits with a non-zero exit code if read_tree_recursive fails Jon Seymour 2011-07-24 7:45 ` Junio C Hamano @ 2011-07-24 13:42 ` Jens Lehmann 1 sibling, 0 replies; 7+ messages in thread From: Jens Lehmann @ 2011-07-24 13:42 UTC (permalink / raw) To: Jon Seymour; +Cc: git, Junio C Hamano Am 24.07.2011 03:07, schrieb Jon Seymour: > diff --git a/builtin/ls-tree.c b/builtin/ls-tree.c > index f08c5b0..6d6c992 100644 > --- a/builtin/ls-tree.c > +++ b/builtin/ls-tree.c > @@ -120,7 +120,7 @@ int cmd_ls_tree(int argc, const char **argv, const char *prefix) > { > unsigned char sha1[20]; > struct tree *tree; > - int i, full_tree = 0; > + int i, full_tree = 0, err; > const struct option ls_tree_options[] = { > OPT_BIT('d', NULL, &ls_options, "only show trees", > LS_TREE_ONLY), > @@ -173,7 +173,7 @@ int cmd_ls_tree(int argc, const char **argv, const char *prefix) > tree = parse_tree_indirect(sha1); > if (!tree) > die("not a tree object"); > - read_tree_recursive(tree, "", 0, 0, &pathspec, show_tree, NULL); > + err = read_tree_recursive(tree, "", 0, 0, &pathspec, show_tree, NULL); > > - return 0; > + return err; > } Nit: Is it really necessary to introduce a new variable "err" for that? Looks like a "return read_tree_recursive(...)" would suffice here ... ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2011-07-24 13:42 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2011-07-23 12:27 [PATCH 0/2] Ensure git ls-tree exits with a non-zero exit code if read_tree_recursive fails Jon Seymour 2011-07-23 12:27 ` [PATCH 1/2] Add a test to check that git ls-tree sets non-zero exit code on error Jon Seymour 2011-07-23 18:01 ` Jens Lehmann 2011-07-23 12:27 ` [PATCH 2/2] Ensure git ls-tree exits with a non-zero exit code if read_tree_recursive fails Jon Seymour 2011-07-24 1:07 [PATCH 0/2 v2] ls-tree: exit with non-zero status on error Jon Seymour 2011-07-24 1:07 ` [PATCH 2/2] Ensure git ls-tree exits with a non-zero exit code if read_tree_recursive fails Jon Seymour 2011-07-24 7:45 ` Junio C Hamano 2011-07-24 13:42 ` Jens Lehmann
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.