Which dates 'git log --since= --after=' compare?

3 messages, 2 authors, 2016-06-15 · open the first message on its own page

Which dates 'git log --since= --after=' compare?

From: Daniel <hidden>
Date: 2016-06-15 22:47:34

Hi,

I can see that 'git log --since= --after=' compares commit's dates,
not author's dates.How can I limit commits by Author's date?

$ git log --format="%aD %cD"

Mon, 5 Oct 2009 14:54:57 +0200 Thu, 8 Oct 2009 10:31:40 +0200
Mon, 21 Sep 2009 11:11:35 +0200 Thu, 8 Oct 2009 10:31:40 +0200
Mon, 21 Sep 2009 10:14:41 +0200 Thu, 8 Oct 2009 10:31:40 +0200
Wed, 16 Sep 2009 14:23:30 +0200 Thu, 8 Oct 2009 10:31:40 +0200
Wed, 16 Sep 2009 10:27:39 +0200 Thu, 8 Oct 2009 10:31:38 +0200
Wed, 16 Sep 2009 09:15:32 +0200 Thu, 8 Oct 2009 10:30:31 +0200
Wed, 16 Sep 2009 08:02:23 +0200 Wed, 16 Sep 2009 09:02:29 +0200

$ git log --format="%aD %cD" --since=2009-09-01 --until=2009-10-01
Wed, 16 Sep 2009 08:02:23 +0200 Wed, 16 Sep 2009 09:02:29 +0200

-- 
Daniel

Re: Which dates 'git log --since= --after=' compare?

From: Jeff King <hidden>
Date: 2016-06-15 22:47:35

On Mon, Oct 19, 2009 at 12:01:49PM +0200, Daniel wrote:
I can see that 'git log --since= --after=' compares commit's dates,
not author's dates.How can I limit commits by Author's date?
AFAIK, there is currently no way to do it with a simple option. In fact,
we don't even parse the author date when doing revision limiting.

So it would need a patch, but the "obvious" solution of just parsing and
storing the author date in a "struct commit" might not be acceptable; as
I recall, some performance tuning went into keeping the per-commit
memory footprint as small as possible, which had a noticeable speed
benefit (I'm not saying it couldn't be done, but care needs to be taken
in that regard).

If it's not something you need to do often, I'd consider something like:

  git log --format='%H %at' |
    perl -ane '
      BEGIN {
        use DateTime::Format::Natural;
        $max_age = DateTime::Format::Natural->new->parse_datetime(
                      "last friday"
                   )->epoch;
      }
      print $F[0], "\n" if $F[1] < $max_age;
  '

Of course that's awful to type, and it will be much slower than git
doing the revision limiting itself.

-Peff

Re: Which dates 'git log --since= --after=' compare?

From: Daniel <hidden>
Date: 2016-06-15 22:47:35

Jeff King [off-list ref] wrote:
On Mon, Oct 19, 2009 at 12:01:49PM +0200, Daniel wrote:
quoted
I can see that 'git log --since= --after=' compares commit's dates,
not author's dates.How can I limit commits by Author's date?
AFAIK, there is currently no way to do it with a simple option. In fact,
we don't even parse the author date when doing revision limiting.

So it would need a patch, but the "obvious" solution of just parsing and
storing the author date in a "struct commit" might not be acceptable; as
I recall, some performance tuning went into keeping the per-commit
memory footprint as small as possible, which had a noticeable speed
benefit (I'm not saying it couldn't be done, but care needs to be taken
in that regard).

If it's not something you need to do often, I'd consider something like:

  git log --format='%H %at' |
    perl -ane '
      BEGIN {
        use DateTime::Format::Natural;
        $max_age = DateTime::Format::Natural->new->parse_datetime(
                      "last friday"
                   )->epoch;
      }
      print $F[0], "\n" if $F[1] < $max_age;
  '

Of course that's awful to type, and it will be much slower than git
doing the revision limiting itself.

-Peff
Thanks.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help