Why do dates in refspecs require the reflog?
- From
- Robert Dailey <rcdailey.lists@gmail.com>
- Date
- Dec 30, 2014, 20:12 UTC
- Message-ID
- <CAHd499Cvy=zi=9utoZ2bEgdSUTjkveHMP2OvVFPBHq7W2MuoZQ@mail.gmail.com>
I was surprised to find today that the following didn't work as expected:
$ git show master@{"1 year ago"}:Path/To/File.hIt gave me the following warning which did not make the problem obvious at all: warning: Log for 'master' only goes back to Mon, 8 Sep 2014 12:08:44 -0500.
What it is trying to tell me (and I only found this out after a lot of poking and prodding around Google) is that I can't refer to a commit by date if it extends beyond the range of the reflog.
I don't understand why this requirement is in place. Each commit has a time stamp, so in theory it should be possible to calculate an absolute date from the duration specified in the refspec and grab the commit from `git log` from that.
I can only assume I'm oversimplifying things and that there is a good reason for this. If I can't get this to work, how can I view the contents of a file at a specified relative time frame as I have done above?