On Mon, Aug 21, 2017 at 12:15:59AM +0530, Kaartic Sivaraam wrote: > Hello all, > > I tried to do a 'git blame' on a file and wanted to see the blame > before a particular revision of that file. I initially didn't know that > you could achieve that with, > > $ git blame <rev> <file> > > I thought I need to pass the revision as a parameter so I tried (before > looking into the documentation) the command found in the subject. It > worked but to my surprise it had the same result as, > > $ git blame -- <file> > > I was confused and came to know from the documentation that blame > doesn't have any '--before' option. That was even more surprising. Why > does blame accept an option which it doesn't identify? Shouldn't it > have warned that it doesn't accept the '--before' option? I guess it > should not accept it because it confuses the user a lot as the could > make it hard time for him to identify the issue. > > 'git blame' doesn't seem to be the only command that accepts options > not specified in the documentation there's 'git show' for it's company, > > $ git show --grep 'regex' > > But the good thing with the above command is it behaves as expected. I > suspect this should be documented, anyway. > > Thoughts ? > > -- > Kaartic Git blame takes options that are fed to git rev-list, to limit the commits being taken into account for blaming. The man page shows "[--since=<date>]", which is one such option, but before is valid as well. git blame -h shows: <rev-opts> are documented in git-rev-list(1) and man git-blame shows under specifying ranges (emphasis mine): When you are not interested in changes older than version v2.6.18, or changes older than 3 weeks, *you can use revision range specifiers similar to git rev-list*: So these options are not documented under git blame, but git rev-list. Perhaps the synopsis of man git-blame could be expanded so that that it's clear it accepts rev-list options. Kevin