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

Re: qgit reports errors in the git repository

From
PRPavel Roskin <proski@gnu.org>
Date
Dec 16, 2005, 00:35 UTC
Message-ID
<1134693349.22652.22.camel@dv>
In-Reply-To
<e5bfff550512151100k33a66db5tdb2eb1ff2da10a59@mail.gmail.com>
On Thu, 2005-12-15 at 20:00 +0100, Marco Costalba wrote:
>  Yes! this is a bug.
> Thanks  for the patch, applied.

Actually, the qgit git repository appear to be broken right now. First of all, requests to missing files return code 200 rather that 404. git-http-fetch crashes trying to parse the returned page as alternates. I've fixed it.

It's a hack, not a signed patch, please be cautious:
diff --git a/http-fetch.c b/http-fetch.c
index ad59f1c..2767676 100644
--- a/http-fetch.c
+++ b/http-fetch.c
@@ -520,6 +520,8 @@ static void process_alternates_response(
 				}
 			}
 			// skip 'objects' at end
+			okay &= (posn - i > 8);
+			okay &= (strncmp(data + posn - 8, "/objects", 8) == 0);
 			if (okay) {
 				target = xmalloc(serverlen + posn - i - 6);
 				strncpy(target, base, serverlen);
@@ -601,7 +603,7 @@ static void fetch_alternates(char *base)
 	else
 		got_alternates = -1;
 
-	free(data);
+//	free(data);
 	free(url);
 }
 

The free() was commented out because glibc detects double free and
prints backtrace.  It's Fedora Core 4 on x86_64, all up-to-date.  I
don't see where "data" is freed, maybe it's a bug in glibc.

Even clean fetch of qgit doesn't work:

$ cg-clone http://digilander.libero.it/mcostalba/qgit.git
defaulting to local storage area
Fetching head...
Fetching objects...
progress: 8 objects, 12858 bytes
error: File 8fef66ee82bcbbc26426d21e537478867f648e12 (http://digilander.libero.it/mcostalba/qgit.git/objects/fc/0712e55de18eda32aee44bd7863fee37fc83aa) corrupt

Getting pack list for http://digilander.libero.it/mcostalba/qgit.git/
progress: 11 objects, 76091 bytes
Getting alternates list for http://digilander.libero.it/mcostalba/qgit.git/
error: Unable to find fc0712e55de18eda32aee44bd7863fee37fc83aa under http://digilander.libero.it/mcostalba/qgit.git/

Cannot obtain needed commit fc0712e55de18eda32aee44bd7863fee37fc83aa
while processing commit 5013d718eea0b19a28faebf93eade68127f4b2b4.
Waiting for http://digilander.libero.it/mcostalba/qgit.git/objects/20/35781249a0d6c788e4aef07432c335d9694b9b
progress: 12 objects, 80655 bytes
cg-fetch: objects fetch failed
cg-clone: fetch failed

Anyway, I'm using the latest revision I could get,
9e5ccecbef2a9cb4b75887791b410c0e07d630cc.

> Unfortunatly, regarding the main question on git-cat-file I cannot
> reproduce the bug.

I've made a clean checkout of git using git-fetch:
git-clone git://www.kernel.org/pub/scm/git/git.git

Now qgit complains about 1ed91937e5cd59fdbdfa5f15f6fac132d2b21ce0.

> The problem is that on my box the object
> 23ea3e201cea0deea909569e08e950a9ec2345f7 is
> _never_ fed to git-cat-file because is filtered out ending with "^{}"
> git-ls-remote ./.git |grep 23ea3e201cea0deea909569e08e950a9ec2345f7
> 23ea3e201cea0deea909569e08e950a9ec2345f7        refs/tags/v0.99.9g^{}

Same for me.

> The corresponding tag feeded to git-cat-file is 
> bd67d7d845eb5ae929306dadd3dff41cf04ce004
> 
> I have just made a
> git pull
> git fetch --tags
> 
> from git repository.

OK, "git fetch --tags" made the difference for the old repository!  Now
it also complains about 1ed91937e5cd59fdbdfa5f15f6fac132d2b21ce0.

I was using cogito only on the old repository.  I think cogito doesn't
run "git fetch --tags" or anything equivalent.

> So, please, test with this:
> 
> --- a/src/git_startup.cpp
> +++ b/src/git_startup.cpp
> @@ -111,6 +111,7 @@ bool Git::getRefs() {
>  
>          if (itNext != rLst.constEnd() && (*itNext).right(3) == "^{}")
> {
>              signedTag = true;
> +            dbg(refSha);
>              if (run("git-cat-file tag " + refSha, &runOutput)) {
>                  QString msg(runOutput.section("\n\n", 1));
>                  if (!msg.isEmpty())
> 
> and send me the output. Mine is
[skip]

Both are attached.
-- 
Regards,
Pavel Roskin


refSha is <a0e7d36193b96f552073558acf5fcc1f10528917>
refSha is <f25a265a342aed6041ab0cc484224d9ca54b6f41>
refSha is <c5db5456ae3b0873fc659c19fafdde22313cc441>
refSha is <7ceca275d047c90c0c7d5afb13ab97efdf51bd6e>
refSha is <b3e9704ecdf48869f635f0aa99ddfb513f885aff>
refSha is <07e38db6a5a03690034d27104401f6c8ea40f1fc>
refSha is <f12e22d4c12c3d0263fa681f25c06569f643da0f>
refSha is <f8696fcd2abc446a5ccda3e414b731eff2a7e981>
refSha is <1094cf40f7029f803421c1dcc971238507c830c5>
refSha is <da30c6c39cd3b048952a15929c5440acfd71b912>
refSha is <9165ec17fde255a1770886189359897dbb541012>
refSha is <02b2acff8bafb6d73c6513469cdda0c6c18c4138>
refSha is <b041895af323bdef10cc9a718bda468ba3622bc0>
refSha is <cfc2ea6116410a545573d5fa5311d3c3b2df69d1>
refSha is <0b122201af0afb6a6a8059ff446a1e26b1d0c823>
refSha is <d186f3d21148f373a5ea5e43804f5f6707670a87>
refSha is <48055bb38d650ab39957ed07d640469176c12419>
refSha is <b79a5a49c9e412e27a336e705fb7b462367f4c16>
refSha is <ebd5d002da3f6cfbd0aa3ff5b5c4a9d9eeee630d>
refSha is <08f9f32076455ff75b59b41d7003927869082a3f>
refSha is <67b4b78858d9d9dd044f758a90a4270e48543cf1>
refSha is <c512b0344196931ad3a9a049eb3f5d3f05b09328>
refSha is <3d65a838c77f816527acf84c899419eb6825dcee>
refSha is <3521017556c5de4159da4615a39fa4d5d2c279b5>
refSha is <107e3d2b4d5b9ecd9a15a23ad1c64652b8b67ba9>
refSha is <10e5ae69eb6cdcdd149bb23e1e73131adf4ab3b7>
refSha is <b685b14cd9385e8b0f5742ebcd35ef8c8c12ec4d>
refSha is <bd67d7d845eb5ae929306dadd3dff41cf04ce004>
refSha is <5c857638d55bdd575d3f38bf3b99f1a2f99d3e46>
refSha is <4a6a394c62f33a3bf94badd6b14bc1f48647905f>
refSha is <c0f7d44ecba75d54a73ba542adde0ff80d2da03a>
refSha is <0c675e9d0b5f5d1fbb7b0169d71769993b225701>
refSha is <ca6cec9c5843d85d23b1184d584a11699d92e927>
refSha is <93ea4a9599564101be20507a3a756d38427a70ac>
refSha is <71c1a700da60da8cf99d586cc618c46fef201ed1>
refSha is <1ed91937e5cd59fdbdfa5f15f6fac132d2b21ce0>
refSha is <5f4cd4ca015dc795b9f7f4fed11b3f80a60ac175>
refSha is <112c4fd6b3fe400a075d575c0fe1a583aafe8f2c>
refSha is <dcd118f6b933d7a81739c3c4269e2bf4654e4a99>
refSha is <055e4ae3ae6eb344cbabf2a5256a49ea66040131>
refSha is <2d2846cd06fce719c35b58a8b81f7ae42f1986ca>
refSha is <781aab17fe544cbfcaba0f0ea5cacf7672717236>
Previous: Pavel RoskinNext: Junio C Hamano
Message 5 of 9 in “qgit reports errors in the git repository”
  1. Pavel RoskinDec 13, 2005
  2. Linus TorvaldsDec 13, 2005
  3. Pavel RoskinDec 15, 2005
  4. Pavel RoskinDec 15, 2005
  5. Pavel RoskinDec 16, 2005
  6. Junio C HamanoDec 16, 2005
  7. Junio C HamanoDec 17, 2005
  8. Junio C HamanoDec 17, 2005
  9. Pavel RoskinDec 20, 2005

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.