All of lore.kernel.org
 help / color / mirror / Atom feed
* [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; 4+ 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] 4+ 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; 4+ 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] 4+ 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; 4+ 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] 4+ 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; 4+ 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] 4+ messages in thread

end of thread, other threads:[~2011-07-23 18:01 UTC | newest]

Thread overview: 4+ 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

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.