From: Linus Torvalds Date: Tue, 13 Dec 2005 01:06:47 GMT Subject: Re: qgit reports errors in the git repository Message-ID: In-Reply-To: <1134433440.3798.27.camel@dv> On Mon, 12 Dec 2005, Pavel Roskin wrote: > > Git says: > fatal: git-cat-file 23ea3e201cea0deea909569e08e950a9ec2345f7: bad file > > I believe qgit runs "git-cat-file -t tag" on in, but it's a commit. If > I change the git-cat-file invocation in src/git_startup.cpp to use > "commit" instead of "tag", qgit complains about > 0918385dbd9656cab0d1d81ba7453d49bbc16250. > > Maybe qgit should check the type of the object first? Or maybe there > should another type for git-cat-file that would match both tag and > commit? Using "git-cat-file commit " already works for both real commits and for tags that point to commits. However, the "0918385dbd9656cab0d1d81ba7453d49bbc16250" object is a tag that points to a blob (Junios public gpg key), so you can't use that. Basically, qgit should do either: - check the type of the object by hand first (using "git-cat-file -t" and then follow any tags it finds by hand) _or_ - just use "git-cat-file commit" and if an error occurs, just silently ignore that ref since it doesn't understand them. which one is the right strategy depends on usage. Linus