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> - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
This archive was generated by hypermail 2.1.8 : 2005-12-16 11:36:39 EST