Re: How to determine age of HEAD commit
- From
Philip Oakley <philipoakley@iee.email>
- Date
- Dec 8, 2019, 15:05 UTC
- Message-ID
- <74d4a783-6196-08ce-b600-2eb2cacecac7@iee.email>
- In-Reply-To
- <0a578dce37e8802b2022df80c336f61a264a33e3.camel@gammascience.co.uk>
Hi Roger,
On 08/12/2019 14:07, Roger Gammans wrote:
Show 24 quoted lines
> On Sun, 2019-12-08 at 12:09 +0000, Philip Oakley wrote:
>> Is there a command that does return the numeric agedness of a commit
>> (e.g. now - commit_date, in seconds)?
> Hi
>
> I don't know a specific command for the age. But `git cat-file commit
> HEAD`, will give you the commit's timestamps in seconds from the the
> epoch. (Plus some timezone info).
>
> I can construct a bash script, shown below (warning: only had the most
> rudimentary testing), which turns that into an age. For your use case
> you might be better getting yesterdays unix-timestamp from date, if GNU
> date is available, and directly comparing it to the commit timestamp.
>
> ------
> #!/bin/bash
>
> now=$(date +"%s")
> commit=$(git cat-file commit HEAD | grep committer)
> commit=${commit##*>}
> commit=${commit%%+*}
> echo $(( $now-$commit ))
> #--------------
>Thanks, That has spurred me into looking at a few other ideas. Unfortunately the script needs to run inside a DOS batch file as part of a Visual Studio pre-build step, hence the desire for a direct command.
That said I have now found, with a bit of rooting around, that
`git log -1 --format=format:"%ct" HEAD`
does appear to give the right form of answer. Just need to see if I can fit it into the DOS pre-build script now ;-) There may be extra tweaks needed.. (a merged pull has the pull date, but a fast forward pull has the original date)
Philip
Philip