Junio C Hamano [off-list ref] writes:
Johan Herland [off-list ref] writes:
...
quoted
Or would you rather switch around the "verbose" and the
"parse_and_verify_tag_buffer()" (i.e. not even attempt the thorough
verification unless in verbose mode)?
Actually I was thinking about doing something like this.
- if (parse_and_verify_tag_buffer(0, data, size, 1) && verbose)
+ if (parse_and_verify_tag_buffer(0, data, size, verbose))
Well, after running fsck with --verbose, I take the whole
suggestion back. I think it is a good idea to do the "thorough"
tag validation in general, and it should not be buried under the
verbose output, which is almost useless unless in a very narrow
special case that you are really trying to see which exact
object is corrupt.
So I think your original patch to signal error on thorough tag
validation failure is probably a good approach in general.
People need to know that in git.git fsck would return non-zero
because of v0.99 tag, but the people who get hit/annoyed by this
ought to be minority. It may be the case that a major portion
of git users currently are the ones who futz with the git.git
repository, but there would be a serious problem if it continues
to be the case ;-)
On Wednesday 06 June 2007, Junio C Hamano wrote:
Junio C Hamano [off-list ref] writes:
quoted
Johan Herland [off-list ref] writes:
...
quoted
Or would you rather switch around the "verbose" and the
"parse_and_verify_tag_buffer()" (i.e. not even attempt the thorough
verification unless in verbose mode)?
Actually I was thinking about doing something like this.
- if (parse_and_verify_tag_buffer(0, data, size, 1) && verbose)
+ if (parse_and_verify_tag_buffer(0, data, size, verbose))
Well, after running fsck with --verbose, I take the whole
suggestion back. I think it is a good idea to do the "thorough"
tag validation in general, and it should not be buried under the
verbose output, which is almost useless unless in a very narrow
special case that you are really trying to see which exact
object is corrupt.
Take your pick among my patches or feel free to roll your own. :)
So I think your original patch to signal error on thorough tag
validation failure is probably a good approach in general.
People need to know that in git.git fsck would return non-zero
because of v0.99 tag, but the people who get hit/annoyed by this
ought to be minority. It may be the case that a major portion
of git users currently are the ones who futz with the git.git
repository, but there would be a serious problem if it continues
to be the case ;-)
I also noticed that a number of the early tags in the kernel repo use the
ancient format, and would thus fail fsck.
<stroke-of-madness>
Could we replace the v0.99 tag (and other ancient tags) with "correct"
versions, and then encourage users who have already cloned to delete their
v0.99 tag and re-pull? New clones would of course never see the old tag at
all. This sure as hell sounds similar to inserting foot into mouth before
shooting oneself in said foot, but it might still be worth considering...
</stroke-of-madness>
Have fun!
...Johan
--
Johan Herland, [off-list ref]
www.herland.net