Subject: Re: Subject: Something like cat-file for the index?

From: Thomas Gummerer <[email-masked]>
Date: Fri, 10 Jan 2014 13:58:44 +0100

Hi,

Enno Weichert <[email-masked]> writes:
> Hi,
>
> I'd like to have a more technical look into the index file and what/how it
> stores data; call it educational spelunking.
>
> I know the index-format.txt but I'd really like to save me the work to
> implement a pretty-printed output based on it.
> I know ls-files but that's obviously not the whole thing.
>
> So: is there something like cat-file, that basically gives me a readable
> version of the information (version number and all...) in the index already
> implemented or did nobody care until now?

You can use `git ls-files --debug` and `git ls-files --stage` to get all
the information about the files in the index.  The meaning of the flags
is the only thing that's not shown by the command, and I don't think
there is a tool yet to examine them.

The undocumented --resolve-undo flag to git ls-files shows you the
resolve undo data that is stored in the index.

If you build git yourself, the `test-dump-cache-tree` helper can be used
to show all information about the cache-tree that is stored in the
index.

The you can get the version of the index either by using
`test-index-version` when you build git yourself, or by using `file
.git/index`, which in addition will give you the number of entries that
are in the index.

--
Thomas