git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] fix git-repack for use with GIT_TRACE

From
MLMatthias Lederhofer <matled@gmx.net>
Date
Jul 10, 2006, 13:12 UTC
Message-ID
<E1FzvZG-0002C1-UN@moooo.ath.cx>
In-Reply-To
<7vwtalbqeo.fsf@assigned-by-dhcp.cox.net>

--- Junio C Hamano <junkio@cox.net> wrote:

Show 7 quoted lines
> This particular one is trying to catch an error condition from
> rev-list.  Shell reports the exit status from the last command
> in the pipeline, and when rev-list notices a corrupt repository,
> it wants to tell pack-objects to stop producing incorrect pack,
> but there is no way other than sending a garbage string (as an
> error message) to cause pack-object to notice there is garbage
> coming in.

Ok, this patch should fix this. Instead of "echo abort" another more meaningful message could be used. I checked the other scripts which redirect stderr and they should be fine. In the tests I found t/t1200-tutorial.sh:38 t/t1300-repo-config.sh:276 t/t5500-fetch-pack.sh:66 redirecting stderr, which probably fail which GIT_TRACE.

git-cvsserver.perl:2138 has 2>&1 but uses an regexp to match for the content, so the trace message should not make a problem. Can someone using git-cvsserver confirm this? Perhaps this should be changed to 2>/dev/null anyway.

---
 git-repack.sh |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/git-repack.sh b/git-repack.sh
index 640ad8d..4dd7dad 100755
--- a/git-repack.sh
+++ b/git-repack.sh
@@ -43,7 +43,7 @@ case ",$all_into_one," in
 	;;
 esac
 pack_objects="$pack_objects $local $quiet $no_reuse_delta$extra"
-name=$(git-rev-list --objects --all $rev_list 2>&1 |
+name=$( (git-rev-list --objects --all $rev_list || echo abort) |
 	git-pack-objects --non-empty $pack_objects .tmp-pack) ||
 	exit 1
 if [ -z "$name" ]; then
-- 
1.4.1.gf157-dirty
Previous: Junio C HamanoNext: Junio C Hamano
Message 3 of 4 in “problems GIT_TRACE”
  1. Matthias LederhoferJul 10, 2006
  2. Junio C HamanoJul 10, 2006
  3. fix git-repack for use with GIT_TRACEMatthias Lederhofer, Jul 10, 2006
  4. Junio C HamanoJul 11, 2006

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.