Re: Git should preserve modification times at least on request
- From
- Peter Backes <rtc@helen.plasma.xg8.de>
- Date
- Feb 20, 2018, 21:05 UTC
- Message-ID
- <20180220210554.GA24474@helen.PLASMA.Xg8.DE>
- In-Reply-To
- <nycvar.QRO.7.76.6.1802201127140.31@ZVAVAG-6OXH6DA.rhebcr.pbec.zvpebfbsg.pbz>
Hi Johannes,
On Tue, Feb 20, 2018 at 11:46:38AM +0100, Johannes Schindelin wrote:
> If I were you [...]
It seems all pretty straight forward, except for
> I would probably invent a file format (`<mtime><TAB><path><LF>`)
I'm stuck there because of <path> being munged.
To obtain or set the mtime of the file, I need the unmunged path.
How to get it?
----
What follows is irrelevant for progress.
> I don't think that code was ever there. Maybe you heard about some file > mode being preserved overzealously (we stored the octal file mode > verbatim, but then decided to store only 644 or 755).
I'm not sure. I'm not able to find that source anymore, though.
Show 6 quoted lines
> As you can see from the code decoding a tree entry: > > https://github.com/git-for-windows/git/blob/e1848984d/tree-walk.c#L25-L52 > > there is no mtime at all in the on-disk format of tree objects. There is > the hash, the mode, and the file name.
I didn't comletely get the code in tree-walk.c since the parsing architecture seems to pass around pointers via global variables. It seems that in addition to hash, mode and file name, the on-disk format has at least the object type, see git cat-file -p master^{tree} Perhaps I got it wrong.
Best wishes Peter
-- Peter Backes, rtc@helen.PLASMA.Xg8.DE