From: karthik nayak Date: Mon, 20 Apr 2015 15:52:47 GMT Subject: Re: [PATCH v8 2/4] cat-file: teach cat-file a '--literally' option Message-ID: <553520CF.6070304@gmail.com> In-Reply-To: <20150420091920.GA31279@hashpling.org> On 04/20/2015 02:49 PM, Charles Bailey wrote: > On Mon, Apr 20, 2015 at 02:27:44PM +0530, Karthik Nayak wrote: > > Sorry, but I didn't get you, broken objects created using hash-object --literally do not work with cat-file without the --literally option. > > Perhaps an example would help: > > I cannot create a bad tree without --literally: > > $ echo total garbage | ./git hash-object -t tree --stdin -w > fatal: corrupt tree file > $ echo total garbage | ./git hash-object -t tree --stdin -w --literally > fa2905d47028d00baec739f6d73540bb2a75c6f7 > > but I can use cat-file without --literally to query the contents and > information about the object as it stands. > > $ ./git cat-file tree fa2905d47028d00baec739f6d73540bb2a75c6f7 > total garbage > $ ./git cat-file -t fa2905d47028d00baec739f6d73540bb2a75c6f7 > tree > $ ./git cat-file -s fa2905d47028d00baec739f6d73540bb2a75c6f7 > 14 > > As far as I could tell - and please correct me if I've misunderstood, > cat-file's literally is about dealing with unrecognized types whereas > hash-object's --literally is about both creating objects with bad types > and invalid objects of "recognized" types. This latter scenario is where > the option name "literally" makes the most sense. Yes. What you're saying is correct, but it also makes sense as we're asking "cat-file" to give us information about the object irrespective of the type of the object, hence asking it to literally print the information. Also it stays as a compliment to "hash-object --literally", which is already existing. > > Charles. >