From: Martin Langhoff Date: Wed, 19 Oct 2005 23:23:11 GMT Subject: Re: git-send-pack segfaulting on DebianPPC (was: Re: cg-clone, tag objects and cg-push/git-push don't play nice) Message-ID: <46a038f90510191623k4f1a7267m50d3bbbd6665a2a3@mail.gmail.com> In-Reply-To: <20051019223743.GQ30889@pasky.or.cz> On 10/20/05, Petr Baudis wrote: > Dear diary, on Wed, Oct 19, 2005 at 10:56:35PM CEST, I got a letter > where Martin Langhoff told me that... > > To recap: repo is slightly broken because cg-fetch has fetched tag > > objects, but hasn't followed them through to the commit objects they > > refer to. > > That must be leftover of some old fetch, before cg-fetch got fixed wrt. > this issue. Yes, I'm trying to figure out if I can fix it... > > Internally cg-fetch is actually using git-ssh-fetch (I misreported it > > using git-fetch-pack), which is working correctly. However, cg-fetch > > attempts to optimize the fetch process, by not calling git-ssh-fetch > > if it has the tagobj that the ref points to. How those tag objects get > > there without commits in the first place I don't know. So I've removed > > the optimization and life is much better. > > The "optimization" or something alike needs to be there at least for the > user interface, so that we can actually say what tags are we > downloading; besides, there can be a *lot* of tags. But I'm not sure how > moot will this all be after Cogito moves to the remote peeking (Real > Soon Now, promise ;-). > > > There is a second bug during the tag fetch. Some of the references > > (created by git-cvsimport) are multiline, and break cg-fetch. It's > > probably a bug in git-cvsimport, but I'm fixing cg-fetch to use head > > -n1 instead of cat. I'll deal with git-cvsimport later. > > Eek. Did I miss something and are multiline refs meaningful now? If not, > they are pretty bad and I'd imagine other parts of Cogito would be > pretty confused about that. I'd call this a corrupted repository, > tough. Perhaps a check should be added to fsck. Actually, all the tagsrefs have only one line, but something is going weird around tagid=$(cat $tag) as $tag ends up containing many filenames. So I undid my initial change to "head -n1", and I'm trying to fix the loop. cheers, martin