Re: [PATCH v8 2/4] cat-file: teach cat-file a '--literally' option
- From
Charles Bailey <charles@hashpling.org>
- Date
- Apr 20, 2015, 09:19 UTC
- Message-ID
- <20150420091920.GA31279@hashpling.org>
- In-Reply-To
- <8CBC4DEB-EC50-4DD7-A687-443AA93A96A8@gmail.com>
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.
Charles.