* tag format and tests @ 2011-05-30 14:12 David Glesser 2011-05-30 16:02 ` Jeff King 0 siblings, 1 reply; 3+ messages in thread From: David Glesser @ 2011-05-30 14:12 UTC (permalink / raw) To: git; +Cc: Matthieu.Moy Hello, We are currently coding a minimal git client using libgit2. We use git tests to test our git client. We have an error caused by the tag format used by libgit2. The test t1006-cat-file.sh report many errors, the first one is: not ok - 23 Size of tag is correct This error comes from libgit2 and how it writes the timestamp, see below: $ cat tag && echo object 5e1c309dae7f45e0f39b1bf3ac3cd9db12e7d689 type blob tag hellotag tagger SpongeBob <spongebob.square@crusty-crabs.com> 0000000000 +0000 cheeseburger $ git mktag < tag 7eade44ddd1b9ee24a44e0b2dde2561efea7f7d6 $ echo 7eade44ddd1b9ee24a44e0b2dde2561efea7f7d6 | git cat-file --batch 7eade44ddd1b9ee24a44e0b2dde2561efea7f7d6 tag 154 object 5e1c309dae7f45e0f39b1bf3ac3cd9db12e7d689 type blob tag hellotag tagger SpongeBob <spongebob.square@crusty-crabs.com> 0000000000 +0000 cheeseburger And now using libgit2 : $ git2 mktag < tag 49bc784cd2071c97a14841b3eab1181dd1c8fbcd $ echo 49bc784cd2071c97a14841b3eab1181dd1c8fbcd | git cat-file --batch 49bc784cd2071c97a14841b3eab1181dd1c8fbcd tag 145 object 5e1c309dae7f45e0f39b1bf3ac3cd9db12e7d689 type blob tag hellotag tagger SpongeBob <spongebob.square@crusty-crabs.com> 0 +0000 cheeseburger Both formats are accepted by git. It's reasonable to say that the test is wrong because it doesn't fit exactly with the format ? David G. ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: tag format and tests 2011-05-30 14:12 tag format and tests David Glesser @ 2011-05-30 16:02 ` Jeff King 2011-05-30 16:09 ` David Glesser 0 siblings, 1 reply; 3+ messages in thread From: Jeff King @ 2011-05-30 16:02 UTC (permalink / raw) To: David Glesser; +Cc: git, Matthieu.Moy On Mon, May 30, 2011 at 04:12:30PM +0200, David Glesser wrote: > This error comes from libgit2 and how it writes the timestamp, see below: > > $ cat tag && echo > object 5e1c309dae7f45e0f39b1bf3ac3cd9db12e7d689 > type blob > tag hellotag > tagger SpongeBob <spongebob.square@crusty-crabs.com> 0000000000 +0000 > > cheeseburger > $ git mktag < tag > 7eade44ddd1b9ee24a44e0b2dde2561efea7f7d6 > $ echo 7eade44ddd1b9ee24a44e0b2dde2561efea7f7d6 | git cat-file --batch > 7eade44ddd1b9ee24a44e0b2dde2561efea7f7d6 tag 154 > object 5e1c309dae7f45e0f39b1bf3ac3cd9db12e7d689 > type blob > tag hellotag > tagger SpongeBob <spongebob.square@crusty-crabs.com> 0000000000 +0000 > > cheeseburger > > > And now using libgit2 : > > $ git2 mktag < tag > 49bc784cd2071c97a14841b3eab1181dd1c8fbcd > $ echo 49bc784cd2071c97a14841b3eab1181dd1c8fbcd | git cat-file --batch > 49bc784cd2071c97a14841b3eab1181dd1c8fbcd tag 145 > object 5e1c309dae7f45e0f39b1bf3ac3cd9db12e7d689 > type blob > tag hellotag > tagger SpongeBob <spongebob.square@crusty-crabs.com> 0 +0000 > > cheeseburger > > Both formats are accepted by git. Yes, both are valid timestamps. And git itself, when creating a tag via "git tag", will not write silly leading zeroes. But in this test, we are using mktag, which is creating a tag object from already-formatted input. So the question is not whether the date-formatting is a problem, but rather whether mktag should do be doing _any_ modification or canonicalization of its input at all. And I think the answer is "no", because we may be handing gpg-signed contents to mktag, and any change could invalidate that signature. So libgit2 is wrong to munge the data. I imagine your code parses the buffer into a tag object, checks that it parsed properly, then writes out that object. I think instead you need to parse the buffer into a tag object, check that it parsed, and then write the _original_ buffer into a tag object. -Peff ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: tag format and tests 2011-05-30 16:02 ` Jeff King @ 2011-05-30 16:09 ` David Glesser 0 siblings, 0 replies; 3+ messages in thread From: David Glesser @ 2011-05-30 16:09 UTC (permalink / raw) To: Jeff King; +Cc: git, Matthieu.Moy On Mon, 30 May 2011 12:02:03 -0400, Jeff King <peff@peff.net> wrote: > And I think the answer is "no", because we may be handing gpg-signed > contents to mktag, and any change could invalidate that signature. So > libgit2 is wrong to munge the data. Ok, I will patch libgit2. > I imagine your code parses the buffer into a tag object, checks that it > parsed properly, then writes out that object. Exactly ! Thanks for your answer. David G. ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2011-05-30 16:10 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2011-05-30 14:12 tag format and tests David Glesser 2011-05-30 16:02 ` Jeff King 2011-05-30 16:09 ` David Glesser
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).