Am 03.07.20 um 16:14 schrieb Мария Долгополова: > Hi! I would like to report the bug. > > I want to get commits that change specific lines in a specific file > and were made before a specific date. > > Steps: > 1) I apply filtering by date: --before="2016-11-18" > Result is in the picture FilteringByDate.png. Commit > 570778797effd69bd4536c51125b7d2e8f654c08 is presented. > > 2) I apply filtering by lines: > -L33,34:src/main/java/org/toradocu/translator/Subject.java > Result is in the picture FilteringByLines.png . Commit > 570778797effd69bd4536c51125b7d2e8f654c08 is presented. > > 3) Finally, I apply filtering by lines and by date: > --before="2016-11-18" > -L33,34:src/main/java/org/toradocu/translator/Subject.java > Result is in the picture FilteringByDatesAndLines.png . Commit > 570778797effd69bd4536c51125b7d2e8f654c08 is NOT presented. > > Expected Result: the commit is presented in filter 1 and in filter 2, > so it must be presented in filter “1 AND 2” > > Actual Result: the commit is NOT presented in filter “1 AND 2” > > Environment: git version 2.27.0.windows.1 > > I beg you to provide me with a workaround. I am doing research work > on analyzing commits in open source projects. Therefore, this > functionality is very important to me. You could do the date filtering on the output of git log, e.g.: git log -L33,34:src/main/java/org/toradocu/translator/Subject.java --date=short --color=always | awk -v before=2016-11-18 ' /^[^ ]*commit/ {state=1; header=""} /^[^ ]*Date:/ {if ($2 <= before) {state=2; printf "%s", header} else {state=0}} state == 1 {header = header $0 ORS} state == 2 {print} ' This command is a bit unwieldy, so you might want to put the AWK script into a file, then you could use it like this: git log -L33,34:src/main/java/org/toradocu/translator/Subject.java --date=short --color=always | awk -v before=2016-11-18 -f gitlogbefore.awk René